[Opensim-dev] User Authentication

Diva Canto diva at metaverseink.com
Wed Feb 25 03:54:16 UTC 2009


Thanks for all these ideas. As usual, talking throws everything up in 
the air, then it's up to whoever wants to act to pick up the interesting 
bits. Here's my summary and proposed action items.

User authentication / security is a critical thing in interoperability, 
and it requires a serious commitment from that cloudy component called 
"the viewer". Given the background of this project, we have 3 options:
a) reuse the LL Viewer as-is and hack the heck of out it;
b) write a new viewer designed for open VW systems from the onset;
c) use what we can from the LL Viewer and move the [security-critical] 
1D and 2D components out to more secure, possibly standard, clients 
which can then be accessed either through a regular Web browser or 
through the embedded browser;

As Stefan put it to me, we, as a community, need to do all of the above 
at the same time :-)
Option b), however, is the least actionable as a strategy, unless 
someone is willing to invest a lot of time/money. And even then... it's 
probably a better idea to do c) first.

So here's my plan, as user authentication and security goes:

* Within a few days: write a simple [optional] UserAuthenticationModule 
along the lines of option a) that does the following: upon a 
NewUserConnection, regions will check with the incoming user's User 
server that the declared user exists and is logged into the system. 
Furthermore, upon AddNewClient (which happens shortly after), regions 
will challenge the incoming client with 3 UDP Ping messages having 
random seq numbers, to which the incoming client must respond correctly 
(look at it as the Bridge of Death in Monty Python and the Holy Grail). 
This will prevent spoofing and other kinds of false impersonations to 
which OpenSim is vulnerable right now. This Authentication module will 
likely go away as we rethink the whole thing seriously around option c). 
But it will be a good exercise around the topic of authentication, while 
making things more secure right now.

* Within the next month: write wrapper modules around inventory and 
Scene.Inventory to implement the concept of the Suitcase. That is, at 
"home" (a concept which can be extended to many regions) the user can 
access inventory via the LL Viewer as normal; outside those regions, the 
user can only access a few folders. This is a simple idea whose 
implementation will require a serious incursion into option a), the art 
of hackery. But the good thing is that this general idea will also serve 
option c) well: once we have a web interface to the user's inventory, 
the user will be able to safely access the entirety of her inventory no 
matter where she is, via the embedded web browser. The Suitcase 
folder(s) can still be accessed via the LL Viewer, for convenience. So 
the user can do things like this: "Oh, shoot, I forgot to pack that 
object that I want to give you. Hold on. <Moves item from private folder 
to Suitcase folder via inventory web page> <Drags from Suitcase folder 
to friend on the LL Viewer> There you have it."

So, not the grand vision yet; just small feasible steps towards it.

Comments?

Crista





More information about the Opensim-dev mailing list