<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Luciano Notarfrancesco wrote:
<blockquote TYPE=CITE>--- John.Maloney@disney.com wrote:
<br>> Luciano,
<br>>
<br>> How can you use #become: to write to an arbitrary
<br>> place in memory? I'm not quite seeing it...
<br>>
<p>Hmm... sorry John, I'm not seeing it neither. ;) I'm
<br>quite sure I had an idea to do this some months ago.
<br>Probably I just got confused.</blockquote>
It's possible to corrupt memory, but probably very difficult to exploit
the effect for anything else than a denial-of-service attack:
<br>Suppose you have classes A and B. A has one inst var called 'x', B
has none.
<br>The following method in A is able to write beyond the bounds of an
object, possible into the header of another object:
<p>!A methodsFor: 'dirty suff'!
<br>doDirtyStuffWith: anInstanceOfB
<br>&nbsp;&nbsp;&nbsp; self become: anInstanceOfB.
<br>&nbsp;&nbsp;&nbsp; x := 'dirty stuff'
<p>Hackers might be ingenious enough to find a way to exploit this. I currently
can't think of any, but my hacker skills are a bit rusty now :-)
<blockquote TYPE=CITE>>
<br>> Digital signatures are still useful to prove that
<br>> some bundle of bits came from a well-known agency,
<br>> such as Disney or Squeak Central. We may well use
<br>DSA
<br>> for system updates, VM distribution, etc.
<br>>
<p>Yes. That would be wonderful. As you point out, a full
<br>digital signature scheme for Squeak is impractical
<br>because it would require a big organization behind it.</blockquote>
In SCAN, I have implemented a scheme based on DSA which I believe is fairly
usable. It's missing a certificate mechanism, but I have already some approaches
in mind:
<ol>
<li>
An e-mail based approach, where the server accepting a user entry could
at least verify that the e-mail address given reaches the person having
the appropriate private key. This is similar to some mailing list subscription
mechanisms.</li>

<li>
A PGP-like approach where users issue certificates for others after verifying
their identity.</li>
</ol>
Probably the best thing would be to use the PGP key infrastructure and
implement OpenPGP (or some reasonable subset) functionality in Squeak.
I started that once but got distracted by other projects.
<p>Bye,
<br>Hans-Martin</html>