[MUD-Dev] distributed objects
KevinL
darius at bofh.net.au
Tue Jul 25 11:25:08 CEST 2000
(Wow, an old post ;)
markm at caplet.com wrote:
>
> --<cut>--
> Note: This message was written via the list web archives. There is
> no guarantee that the claimed author is actually the author.
> --<cut>--
> Original message: http://www.kanga.nu/archives/MUD-Dev-L/2000Q1/msg00378.php
>
> On Wed, 16 Feb 2000 21:42:28 -0800
> Kevin Littlejohn <darius at connect.com.au> wrote:
> > > ... don't the solutions outlined at www.erights.org for
> > > implementing secure "purses" also fit the bill for combat systems ?
> >
> > For anyone who hasn't read it:
> > http://www.erights.org/elib/capability/ode/ode-capabilities.html#simple-money
> >
> > Neat system.
>
> Thanks.
>
> > There's still reliance on a bunch of things, that may not be immediately
> > evident, though, to achieve this security. One of them that doesn't apply
> > in Moebius (nor, I believe, in any distributed architecture, where the 'bad
> > guys' have total control over the objects)
>
> I'm not sure I understand your security assumptions, or that you understand
> ours. Please read the "Cypherpunk Reference Scenario" (and variant #3 if you
> wish) at http://www.erights.org/elib/capability/conspire.html#revokability .
> Briefly, Alice is assumed to have total control over the objects running on
> Alice's machine, and Bob is assumed to have total control over objects
> running on Bob's machine, but Alice only has control over objects on Bob's
> machine to the extent that objects on Alice's machine have been given such
> control. See also
> http://www.erights.org/elib/capability/ode/ode-protocol.html#subj-aggregate .
> In a decentralized mutually suspicious world, beware of statements about
> "*the* bad guys" or "*the* objects". There are only particular bad guys and
> particular objects.
Ya. The problem I was looking at at the time, tho, was how do I put all the
attributes for an object in the object, and then trust that the object will
handle it's attributes correctly. Any of the solutions that come out of E
rely on moving the data that needs to be kept secure to a "trusted" place - be
it a bank, or a central server, or whatever.
Put another way, if Alice has total control over Alice's machine, then
anything put on Alice's machine is subject to breakage by her. Thus, you
don't store her purse with her, you store it at a central bank, which is
trusted.
[ Big Snip ]
> > End result - you drag more and more stuff back to the server for
> > verification, until you end up driving the objects data and methods on the
> > server from a remote point.
>
> Yup. That's what we do. It works. But it doesn't centralize any more than
> any other working on-line secure money protocol does. If you know of a way
> to do secure money with a less centralized protocol, that'd be worth a paper
> at FC01 ;)
Fully agreed, it's what you need to do. The reason I've snipped the rest is
because it was an explanation that, once you move the purses to the Bank
machine, you're safe - which I wholeheartedly agree with.
The problem I was facing at the time was that, in my system, I have
potentially one server, where all objects exist and all code runs.
Theoretically, the owner of any object could subvert their own object, replace
their own methods with other methods. I was (foolishly) attempting to find a
way to mix different levels of security to allow _players_ the ability to
write, for example, their own "look" method, which they could then replace the
existing one with. Basically, pretend everyone owns one machine, and has
control over one machine, then run all the E mechanisms on that machine - the
security goes right out the window ;)
I believe E definitely outlines some neat stuff - but it wasn't clear to me
immediately from reading the money example, for instance, what the
pre-requirements were to get security (and lack of clarity can kill security).
The overriding sense I got off E was that it was very good, very well thought
out, but overly obfuscated in explanation - most of the concepts outlines
therein are actually simple concepts, just applied generically, with (for me)
unfamiliar terms.
> > Caveat: I may be wrong, but I can't see where... As EQ and others have
> > demonstrated, people will quite happpily step "out of band" to break these
> > systems
>
> Please show me an out of band attack that threatens E. I'm not saying there
> aren't any, but I'd like to understand what kind of attack you have in mind.
Stretching my memory, but at the time I believe I was thinking in terms of
running E systems on wabi/wine-type virtual machines in debug mode - where you
could take to everything with a good debugger, change values on the fly, etc.
etc. Either that, or the traditional "analysis of traffic patterns" type
attacks to figure out what's happening. I don't think I had anything specific
in mind.
> > I thought replacing the tiles with transparent ones was good, but
> > staggering lag on packets back to the server boggles me.
>
> I haven't read the thread -- only the above message -- so this last comment
> boggles me ;). If it's relevant to our current discussion, please explain
> or point me at something. Otherwise, feel free to drop.
Those two were particular tricks employed in cheating on some games - people
replaced the local tiles for walls in UO with transparent tiles, so when the
server said "a wall here", they got a transparent wall - handy for seeing
people hiding round the corner (and a similar trick was once employed in
Quake, with transparency on water when 3D cards first started getting
sophisticated). Staggering lag was one of the latest Quake hacks, when Quake
went OS - if you lag your packets just enough, you can wait to see if the
server tells you you've been hit, then send a stream of packets to account for
the last few seconds of you moving in the opposite direction.
The other one that's worth mentioning is the person who figured out that the
maps for Quake are CRC-checked locally, and the wall collisions are checked
locally, so he wrote a new map for each level, made the CRC match by adding
and removing junk until it was right, then distributed those as a way to walk
through walls.
Hey, anyone noticed yet that Diablo2 distributes big chunks of map around you
in one go? Good for pre-mapping dungeons and seeing inside buildings outside.
Surprised there's not a "patch" out there to update the overhead map yet...
>
> Hope this clarifies things.
Oh, definitely - I'd missed that purses should be stored on the bank, and had
been trying to solve holding the purses locally. Still haven't, incidentally
;)
KevinL
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
http://www.kanga.nu/lists/listinfo/mud-dev
More information about the mud-dev-archive
mailing list