Virtual World Region Agent                                    M. Hamrick
Protocol                                           Linden Research, Inc.
Internet-Draft                                         February 12, 2010
Intended status: Informational
Expires: August 16, 2010


                     VWRAP: Introduction and Goals
                      draft-hamrick-vwrap-intro-00

Abstract

   The Virtual World Region Agent Protocol (VWRAP) defines interactions
   between hosts collaborating to create an shared, internet scale
   virtual world experience.  This document introduces the protocol, its
   objectives and requirements it imposes on hosts and users utilizing
   the protocol.  This document also describes the model assumed by the
   protocol (to the extent it affects protocol interactions.)

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on August 16, 2010.

Copyright Notice

   Copyright (c) 2010 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal



Hamrick                  Expires August 16, 2010                [Page 1]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the BSD License.


Table of Contents

   1.  Introduction and Motivation  . . . . . . . . . . . . . . . . .  4
     1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  7
   2.  Virtual World Region Agent Protocol Architecture . . . . . . .  7
     2.1.  Protocol Objectives  . . . . . . . . . . . . . . . . . . .  7
     2.2.  Structural Architecture and the Role of Domains  . . . . .  9
       2.2.1.  The Client Application . . . . . . . . . . . . . . . . 11
       2.2.2.  The Agent Domain . . . . . . . . . . . . . . . . . . . 11
       2.2.3.  The Region Domain  . . . . . . . . . . . . . . . . . . 13
         2.2.3.1.  Protocol Flows . . . . . . . . . . . . . . . . . . 14
     2.3.  Architectural Elements . . . . . . . . . . . . . . . . . . 15
       2.3.1.  Communicating Application State Using REST-Like
               Resource Accesses  . . . . . . . . . . . . . . . . . . 15
       2.3.2.  Bi-Directional Messaging with the VWRAP Event Queue  . 17
       2.3.3.  Using Capabilities to Simplify Inter-Domain Access
               Control  . . . . . . . . . . . . . . . . . . . . . . . 17
       2.3.4.  Using LLSD to Avoid Version Skew . . . . . . . . . . . 18
   3.  Services Defined by the Virtual World Region Agent Protocol  . 19
     3.1.  User Authentication  . . . . . . . . . . . . . . . . . . . 19
     3.2.  Presence in the Virtual World  . . . . . . . . . . . . . . 21
       3.2.1.  Establishing Presence with the Region Domain . . . . . 21
       3.2.2.  Moving Presence  . . . . . . . . . . . . . . . . . . . 23
     3.3.  User and Group Messaging . . . . . . . . . . . . . . . . . 23
       3.3.1.  Spatial Messaging  . . . . . . . . . . . . . . . . . . 23
       3.3.2.  User to User and User to Group Messaging . . . . . . . 24
     3.4.  Digital Asset Access and Manipulation  . . . . . . . . . . 25
       3.4.1.  Manipulating Digital Assets  . . . . . . . . . . . . . 25
       3.4.2.  Establishing Presence for Digital Assets . . . . . . . 26
   4.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 27
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 27
     5.1.  Capabilities . . . . . . . . . . . . . . . . . . . . . . . 28
     5.2.  User Authentication  . . . . . . . . . . . . . . . . . . . 28
     5.3.  Agent Domain to Region Domain Authentication . . . . . . . 28
     5.4.  Access Control for Digital Assets  . . . . . . . . . . . . 29
   6.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 29
     6.1.  Normative References . . . . . . . . . . . . . . . . . . . 29
     6.2.  Informative References . . . . . . . . . . . . . . . . . . 29



Hamrick                  Expires August 16, 2010                [Page 2]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   Appendix A.  Definitions of Important Terms  . . . . . . . . . . . 30
   Appendix B.  Acknowledgements  . . . . . . . . . . . . . . . . . . 31
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 31
















































Hamrick                  Expires August 16, 2010                [Page 3]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


1.  Introduction and Motivation

   Virtual Worlds are of increasing interest to the internet community.
   Innumerable examples of virtual world implementations exist; most
   using proprietary protocols.  With roots in games and social
   interaction, virtual worlds are now finding use in business,
   education and information exchange.  This document introduces the
   Virtual World Region Agent Protocol (VWRAP) suite.  This suite of
   protocols is intended to carry information about the virtual world:
   its shape, its residents and objects existing within it.  VWRAP's
   goal is to define an extensible set of messages for carrying state
   and state change information between hosts participating in the
   simulation of the virtual world.

   At its most basic level, the virtual world mirrors the reified world.
   It is inhabited by people and contains objects.  Objects and people
   have a distinct place in the world and respond to forces external to
   them.  The social construction of the virtual world is also similar
   to the reified world.  People may meet and interact with other
   people, either to complete work tasks or for simple enjoyment.
   People converse, share media, and even sing to each other.  A virtual
   world may allow commerce or enable building of virtual assets.
   Nearly the complete range of human interaction can be replicated in
   the virtual world.  Properly rendered, an experience in a virtual
   world can carry the same impact as one in consensus reality.

   To be relevant to the participant's experience, virtual worlds must
   retain some characteristics of the "real world."  Objects represented
   in the virtual world must be rendered so they are easily processed by
   the human visual cortex.  At the same time they must carry sufficient
   information to be consumed by participants with visual impairments.
   Though virtual, objects are familiar shapes and textures.  Though the
   virtual world's state is maintained by abstract collections of data,
   it is rendered as recognizable (though occasionally fantastical)
   physical objects.

   But virtual worlds are not complete mirrors for the world our
   physical bodies inhabit.  Virtual worlds are not limited by distance.
   Given appropriate network connectivity, two virtual world
   participants can interact even if they are on opposite sides of the
   earth.  Virtual worlds also allow participants to "play" with
   physical constraints.  They provide the subjective experience of
   things not possible in consensus reality: participants can fly, the
   effects of "death" are temporary, users may call items into
   existence, examine the International Space Station, examine DNA codon
   by codon, or interact with a massive works of art.  And they do these
   things with co-workers and friends.




Hamrick                  Expires August 16, 2010                [Page 4]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   The VWRAP suite assumes hosts, potentially operated by many
   organizations will collaborate to simulate the virtual world.  It
   also assumes that services originally defined for other environments
   (like the world wide web) will enhance the experience of the virtual
   world.  The virtual world is expected to be simulated using software
   from multiple sources; the definition of how these systems will
   interoperate is essential for delivering a robust collection of co-
   operating hosts and a compelling user experience.  VWRAP describes
   this definition.  It may be used to describe the interactions between
   large collections of systems simulating large virtual worlds, or
   small worlds operated for the benefit of one or a few persons.  It
   defines a trust model to allow hosts from multiple organizations to
   be used to simulate the same apparent virtual world.

   VWRAP presupposes a virtual world with the following characteristics:

   The Virtual World exists independent of the participating clients.

       This is in contrast to some systems which "call virtual worlds
       into being" as needed as a backdrop for social or task-oriented
       simulation.  VWRAP assumes the state virtual world is "always on"
       and does not require a specific protocol to establish new virtual
       worlds.

   Avatars have a single, unique presence in the virtual world.

       The avatar, or the digital representation of an end user in the
       virtual world, has an existence that mirrors the common physical
       world; avatars (like people) do not exist in two places at once.
       Further, the avatar has a single, persistent identity that may be
       used to render a user-specific avatar shape or as the basis for
       access control.

   The virtual world contains persistent objects.

       Objects in the virtual world are governed by a "rational" life-
       cycle.  They are created, persist and are (optionally) destroyed.

   The VWRAP suite assumes that multiple hosts will participate in
   simulating the virtual world.  Related to this assumption:

   The virtual world may be partitioned.

       The virtual world is envisioned as being large; so large that it
       is impractical for a single system or cluster of systems to
       manage avatar presence, object persistence and physics
       simulation.  The virtual world MAY therefore be partitioned to
       move services offered by different administrative domains onto



Hamrick                  Expires August 16, 2010                [Page 5]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


       distinct hosts.  Virtual space may also be partitioned so that
       different "regions" of the virtual world are simulated by
       distinct hosts.

   Presence, state and simulation happens on authoritative servers.

       The presence, location and physical behavior of virtual objects
       and avatars are maintained and simulated by a host authoritative
       for a portion of the virtual world.  This is in contrast to the
       "co-simulation" technique where each client maintains this
       information and communicates changes to each of its peers.

   Version skew between simulation hosts MUST be tolerable.

       The virtual world created by VWRAP is intended to be hosted on
       systems from several different administrative domains.  It is
       unrealistic to assume that each administrative domain will run
       precisely the same version of the protocol.  To protect against
       "brittleness" from version skew, the Virtual World Region Agent
       Protocol uses a flexible object representation system known as
       LLSD.  Used correctly, semantics of remote resource access may be
       maintained even when the participants in the protocol do not
       adhere to exactly the same revision of the protocol.

   VWRAP uses Representational State Transfer (REST) style interaction
   over HTTP.

       Much of the protocol interaction between systems participating in
       the virtual world simulation uses a request / response
       interaction style.  Rather than creating a new messaging
       framework, VWRAP layers much of it's protocol atop HTTP.
       Further, VWRAP uses Representational State Transfer (REST) like
       semantics when exposing a protocol interface.

   A persistent, ubiquitous identity accompanies requests between hosts
   involved in the virtual world simulation.

       As in the consensus physical reality, each item is assumed to
       have a (largely) non-mutable identity.  Unless acted upon by an
       external force, objects tend to retain their identifying
       characteristics (bricks remain bricks unless pulverized, etc.)
       Avatars too maintain an identity that allows the virtual world to
       properly render them.








Hamrick                  Expires August 16, 2010                [Page 6]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].


2.  Virtual World Region Agent Protocol Architecture

2.1.  Protocol Objectives

   The primary objective of the Virtual World Region Agent Protocol is
   to provide a stable, extensible, secure system for virtual world
   information interchange with the following characteristics:

   Identity is universal

       Many network services are provided anonymously; the nature of the
       service does not require identity authentication prior to it's
       use.  But with the increasing deployment of customizable services
       delivered on the internet, identity is increasingly important.
       Even services that contain information that might not be
       considered "sensitive" require a representation of digital
       identity if for no other reason than to match service requests
       with user preferences.  For example, a web page presenting
       current weather information may be enhanced by remembering
       locations of interest to each user.  Recent work with "web mash
       ups," where multiple personalized or sensitive resources are used
       in concert with one another points to the utility of a
       "universal" identity.  The representation of this universal
       identity enables independent services to cooperate to present the
       facade of a unified application to the service consumer.  This
       allows service aggregators to more easily integrate "best of
       breed" services into a consistent solution.

       Universal identity is critical to the virtual world.  To achieve
       an internet scale virtual world, user services must be
       distributed amongst multiple hosts.  To achieve a compelling
       experience, it must be easy for service providers to deliver
       their services in the virtual world.  To facilitate a compelling
       social experience in the virtual world, all users must have the
       ability evaluate identity information of other users.  Domains
       responsible for virtual world simulation MUST use a consistent
       representation of identity across all their hosts; simulation
       would otherwise be uncoordinated.  Service providers who deliver
       content into the virtual world MUST use a consistent
       representation of identity to maintain the persistence of the
       virtual manifestation of their service; virtual objects used in



Hamrick                  Expires August 16, 2010                [Page 7]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


       conjunction with these services might otherwise appear to change
       state without apparent cause.  Users depend on the persistent,
       universal identity of other users; if an avatar's identity
       changed unexpectedly, the result would be a suboptimal virtual
       world experience.

   Flexible presentation of protocol data

       While the primary purpose of the virtual world is to simulate a
       physical or social space, the tools used to access objects in the
       virtual world may be varied.  Using a "3d viewer" is the primary
       mode of interaction with the virtual world, but other tools may
       be better suited for some tasks.  For instance, it may be easier
       for a user to use a web browser to review avatar profile
       information, or to change details of virtual objects.  Further,
       virtual world "mash ups" may prove to be important to some
       communities.  To support the web (where XML and JSON are the
       lingua franca of information exchange) while also supporting
       tools where binary encodings are more appropriate, VWRAP was
       designed to be "presentation neutral."

       VWRAP protocol exchanges are described in terms of an abstract
       type system using an interface description language.
       Implementations may choose to instantiate actual protocol data
       units using the most appropriate presentation format.  Web-based
       applications may choose to use JSON or XML.  Server-to-server
       interactions may use the VWRAP specific binary serialization
       scheme if implementers and deployers view binary encoding to be
       advantageous.  The decision of which serialization scheme to use
       is ultimately that of the system implementer.  VWRAP has been
       designed to provide this flexibility to system implementers and
       those tasked with deploying VWRAP compatible systems.

   Flexible decomposition of concerns and ease of extension

       VWRAP has been designed to allow meaningful separation of
       concerns.  In other words, changes in one part of the protocol
       should not appreciably affect other parts.

       For example, the authentication portion of the protocol is
       independent of the part of the protocol that deals with instant
       messaging or instantiating objects in the virtual world.  In
       addition to defining messages for communicating application
       state, the specification also defines pre- and post-conditions.
       Should one particular authentication scheme be found to be
       lacking, it can be modified or replaced without affecting other
       systems.




Hamrick                  Expires August 16, 2010                [Page 8]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


       This type of separation of concerns in the protocol specification
       also makes it easy to deploy "related solutions."  While VWRAP
       was designed primarily to communicate the state of the virtual
       world between servers and client applications, a number of
       related applications also exist.  E-Commerce web sites related to
       the virtual world and mobile chat clients allowing instant
       messaging between mobile networks and virtual world participants
       are just two examples of such applications.  Proper separation of
       concerns allows new services to be specified and deployed without
       the need to redefine existing protocol.

   Resilience in the face of version skew

       Core to the VWRAP protocol is the idea that different components
       and services may be operated by different administrative
       entities; identity management services might be operated one
       business while simulation services are operated by another.  In
       environments where many different organizations participate,
       version skew can be an important concern.  VWRAP was designed to
       "degrade gracefully" when two systems running different versions
       of the protocol attempt to communicate.

       VWRAP uses the LLSD abstract type system and the LLIDL interface
       description language to describe the structure and type semantics
       of elements in messages sent between systems.  Because LLSD makes
       extensive use of variable width, clearly delineated data fields,
       services which consume protocol messages may identify and extract
       only those message elements they know how to handle.  While this
       is not a guarantee that message semantics may be preserved in all
       version skew situations, it does eliminate one important cause of
       interoperability failures.

2.2.  Structural Architecture and the Role of Domains

   The Virtual World Region Agent Protocol assumes a division between
   systems offering user / avatar oriented services and systems offering
   virtual world simulation services.  VWRAP is intended to be used in
   an environment where services may be delivered by hosts in different
   administrative domains.  A VWRAP "domain" is a collection of network
   hosts with the same administrative authority.  "Services" are offered
   by domains and are comprised of collections of related RESTful
   resources.  Two special classes of domains are defined.  A domain
   that exposes a user authentication service is an "agent domain" while
   a domain exposing an object presence service is termed a "region
   domain."  The protocol allows, but does not require, the agent domain
   and region domain to be distinct; in other words, a user's identity
   may be managed by one organization while the virtual world they
   inhabit may be simulated by hosts owned by a completely different



Hamrick                  Expires August 16, 2010                [Page 9]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   organization.

   The motivation for this split is two-fold: First, it allows systems
   to scale along the two most independent axes (agent count and virtual
   world size.)  Second, it moves identity management out of the domain
   of virtual world simulation, allowing the same avatar to be easily
   used in virtual world simulations managed by different administrative
   domains.

   Each domain offers services to authenticated peers: user
   authentication, avatar and object presence, physics simulation,
   digital asset hosting, group messaging, etc.  User authentication and
   avatar presence define the agent domain; they are it's raison d'etre.
   Physics simulation and object presence define the region domain.
   Other services are assigned to the agent or region domain according
   to the expected scaling behavior, though their presence in a
   particular domain does not imply a hard and fast rule they may only
   exist in that domain.  Digital assets, for instance, are expected to
   generally be under the administrative control of an agent domain.
   The digital asset service is thought to be an "agent domain service."
   However, some deployers may find it convenient to define assets
   belonging to a specific region as being a "region domain service."

   It should also be noted that a client may consume services from
   multiple agent and region domains.  The agent domain responsible for
   a user's profile and presence information may delegate responsibility
   for digital asset services, group messaging or user to user voice
   communication to a third party domain.  It is expected that different
   parts of the same virtual world may be simulated on hosts from
   distinct region domains.





















Hamrick                  Expires August 16, 2010               [Page 10]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


                                      +--------------------------+
                                      | agent domain             |
                                      |                          |
                                      |  +----------------+      |
                                +------->| agent host     |-+    |
                                |     |  +----------------+ |-+  |
                                |     |    +----------- ^ --+ |  |
            +-------------+     |     |      +--------- | ----+  |
            |             |<----+     +---------------- | -------+
            |   client    |                             |
            | application |                             |
            |             |<----+     +---------------- | --------+
            +-------------+     |     | region domain   |         |
                                |     |                 v         |
                                |     |  +-----------------+      |
                                +------->| region host     |-+    |
                                      |  +-----------------+ |-+  |
                                      |    +-----------------+ |  |
                                      |      +-----------------+  |
                                      +---------------------------+


   Figure 1: Protocol Flows in VWRAP

2.2.1.  The Client Application

   VWRAP presumes the virtual world is simulated for the benefit of
   human users.  Whether that human is operating a "viewer" application
   to render the virtual world, or using a web interface to perform
   routine maintenance tasks, the user is expected to be operating
   software outside the administrative control of either the agent or
   region domain.  VWRAP makes no assumptions about client software save
   it adheres to the described protocol.

2.2.2.  The Agent Domain

   The Agent Domain is the administrative entity that operates systems
   managing information about agents (i.e. - people) and related
   concepts.  The agent domain is responsible for the following data and
   tasks:

   o  User and Avatar Profile and Identity Information

      Virtual worlds are social spaces, used to interact with people.
      Information like the avatar's name, online friends and co-workers,
      group membership, personal and public notes and a user's list of
      "interesting places" in the virtual world are examples of the
      types of avatar profile information.



Hamrick                  Expires August 16, 2010               [Page 11]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


      The agent domain may also wish to store information about the
      user: account name, contact information, billing information, etc.

   o  User Authentication

      The first step in interacting with the virtual world is to
      authenticate the user's credentials (thus proving the user's right
      to control the avatar.)

      Some system developers are interested in supporting completely
      anonymous avatars in the virtual world.  Support for this feature
      is an option left to individual agent domains, but it should be
      mentioned that even if an agent domain wishes to support
      anonymity, the "authentication" step is required.  In addition to
      demonstrating the user's right to control an avatar, the
      authentication step reserves server resources for use by the
      avatar. (see the discussion about seed capabilities later in this
      document.)  Even if an agent domain wishes to support anonymous
      avatars, there is still a need to provide session specific shared
      secrets to ensure that anonymous avatars may not be "hijacked" by
      malicious virtual world participants.

   o  Avatar Appearance Information

      Avatars in the virtual world are generally three dimensional
      figures represented using constructive geometry or polygon meshes.
      This information is of critical importance to client applications;
      without it, it cannot render the avatar.

   o  User Groups

      Because virtual worlds are (often) social spaces, many systems
      support user groups to facilitate messaging and permissions
      amongst avatars who share similar interests.

   o  Individual or Group Text and Voice Chat

      In keeping with the theme of virtual worlds being social spaces,
      agent domains may wish to support text, voice or even video chat
      between two users or amongst a group of users.

   o  Digital Assets at Rest

      The virtual world is filled with virtual objects: conference
      tables, houses, airships, dragons, etc.  These objects may or may
      not be instantiated in the virtual world.  When objects are "at
      rest" or not being simulated in the virtual world, objects that
      are owned by a particular user are stored in an asset server



Hamrick                  Expires August 16, 2010               [Page 12]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


      associated with the agent domain.

   o  Avatar Presence

      When a user authenticates themselves and wishes to interact with
      the virtual world, the user's avatar presence must be established.
      Simulating a user's avatar is a task shared by the agent domain,
      the region domain and the client application.  The agent domain is
      responsible for establishing the user's presence in the virtual
      world simulated by the region domain, and to provide information
      about the avatar so it may be properly rendered.

2.2.3.  The Region Domain

   The Region Domain is the administrative entity that operates systems
   managing information about virtual land and related concepts.  The
   region domain is responsible for the following data and tasks:

   o  Object Presence

      The state of objects in the virtual world (landscapes, avatars,
      virtual "things") must be communicated to all participants.  It is
      the responsibility of the region domain to keep track of each
      object's state.  The landscape can change; clouds in the virtual
      sky may move and change shape; virtual people may move around and
      virtual "things" can undergo any number of state changes.  The
      region domain is responsible for receiving input from virtual
      world inhabitants, evaluating how that input changes the state of
      objects in the virtual world, and then communicating those state
      changes to other observers.

   o  Physics Simulation

      Simulating the physical behavior of objects in the virtual world
      is a core feature of any virtual world.  Regions may choose "earth
      like" conditions, or may modify gravity and atmospheric settings
      to create the experience of being on a different planet.  Still
      other options include simulating quantum effects seen at very
      small scales or the large scale relativistic effects seen on
      galactic scales.  Whatever the "physics" involved, it is the
      individual hosts in the region domain tasked with the simulation.

   o  Effects of Programmatic Changes

      (aka "scripting.")  Some virtual worlds allow users to modify the
      state of objects using simple programming languages.  The region
      domain is generally responsible for managing and executing scripts
      that modify the state of objects.



Hamrick                  Expires August 16, 2010               [Page 13]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   o  Region Specific Asset Storage

      Though most "assets at rest" are associated with an avatar, it is
      conceptually appropriate for some items to be associated with a
      region; textures associated with landscapes, for instance.  Or in
      some situations, the operator of a region may wish to bind
      "sensitive" resources to the location to ensure they do not follow
      region visitors to regions outside the originating region's
      administrative authority.

2.2.3.1.  Protocol Flows

   VWRAP defines protocol between the three architectural components
   above: the client application, the agent domain and the region
   domain.

       User authentication

       Before the agent or region domain expose service endpoints
       providing access to sensitive resources, the user operating the
       client application must be authenticated.  The VWRAP Trust Model
       and User Authentication [I-D.hamrick-vwrap-authentication]
       specification describes the process of authentication between the
       client application and the agent domain.

       Digital Asset Access

       Responsibility for digital assets is shared between the agent and
       region domains.  Digital assets "at rest" may be stored in an
       asset server associated with an agent domain.  The agent domain
       exposes an interface allowing an asset's owner to manipulate some
       of that asset's metadata.  The region host (or simulator) uses
       the same interface to retrieve the digital representation of the
       asset so it may be scheduled for simulation.  Though the
       interface is the same, the asset server may trust the region host
       with sensitive data that may not be exposed to the client
       interface.  After the asset is "rezzed" in world, the region host
       exposes an interface client applications use to receive a
       description of the asset and updates to its state.

       Avatar Placement and Movement

       After a user is authenticated, their avatar may be placed into
       the virtual world (a process described as "rezzing".)  After the
       avatar is "rezzed in-world", responsibility for its simulation
       may move from one region host to another.  Initial placement and
       movement in the virtual world is an intricate interaction between
       hosts in the agent domain (which maintain information about the



Hamrick                  Expires August 16, 2010               [Page 14]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


       avatar's presence) and hosts in the region domain (which simulate
       the avatar and communicate its actions to client applications.)
       Initial placement is initiated by the client application,
       communicated to the agent domain which then communicates the
       request to the region domain on the client's behalf.  Movement is
       usually initiated by the client and communicated to the region
       domain.  If an avatar moves out of the virtual world region
       managed by a particular simulator and into a new simulator, the
       client must initiate the transit to the new simulator.  The agent
       domain then contacts the new region, moves the avatar's presence
       there and removes it from the initial simulator.

       Object Update

       When an avatar initially enters a region, the agent domain
       provides it with an interface it may query on the region host to
       begin to construct the scene graph maintained by that simulator.
       Object state changes (movement, rotation, texture change, etc.)
       are communicated to the client application from the region host
       using a related interface.

2.3.  Architectural Elements

   VWRAP utilizes a number of "architectural motifs" or recurring design
   patterns.  Most notably they include:

   o  exposing application state via RESTful resources

   o  using URIs to represent the address of application resources

   o  using HTTP to "carry" message oriented protocol data

   o  defining application state transitions and accesses with an
      interface description language (called LLIDL)

   o  using an abstract type system (called LLSD) to define access
      semantics of fields in protocol messages

   o  using multiple "serializations" of the abstract type system to
      support different categories of consumers; defined serializations
      include XML, JSON and Binary.

2.3.1.  Communicating Application State Using REST-Like Resource
        Accesses

   Contrary to popular opinion, not ALL virtual world interactions must
   be real-time exchanges.  Many common activities like user
   authentication and texture and object transfer do not require "real



Hamrick                  Expires August 16, 2010               [Page 15]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   time" semantics in the same way that applications like video-
   conferencing and Voice Over IP (VOIP) do.  While it is generally a
   better experience if textures download quickly, if they are delayed,
   it does not have the same ramifications as if a voice packet in a
   VOIP system were delayed.  Additionally, some interactions with the
   virtual world are strongly reminiscent of the request / response
   semantics used by popular protocols (like HTTP, POP3, etc.)

   Because many protocol exchanges in the virtual world may be
   represented as non-real-time request / response interactions, VWRAP
   "reuses" the messaging semantics of HTTP.  The justification for this
   is simple.  Were VWRAP to not use HTTP, many of the features of HTTP
   would need to be re-invented or at least re-specified.  Features like
   the use of mime types to identify payload structure; the use of
   message headers to modify the request or response and the use of URIs
   to address and identify resources.  HTTP also has the benefit of
   being well supported by tools vendors and well understood by
   manufacturers of networking equipment.

   Protocol exchanges in VWRAP that utilize request / response semantics
   are described using the LLSD / LLIDL abstract type system
   [I-D.hamrick-vwrap-type-system].  LLSD defines type semantics for
   elements in a protocol data unit as well as rules for converting the
   data into a serialized form suitable for transmission across the
   network.  VWRAP defines HTTP (and HTTPS) as the transports for
   serialized messages.

   Addressable protocol endpoints in VWRAP are represented as URIs
   [RFC3986].  Protocol endpoints generally address RESTful resources.
   The VWRAP protocol uses HTTP verbs to provide read and write access
   to resources which represent the application state of the remote
   peer.

   To recap, the objective of VWRAP is to communicate application state
   about the virtual world to all participants.  VWRAP messages that
   communicate request / response style messages flow between clients
   and servers, using HTTP(S) as a message transport.  Application
   objects representing the application state expose a RESTful interface
   and are addressed unambiguously using URIs.  The VWRAP message
   formats are described using LLIDL, the interface description language
   defined as part of the LLSD abstract type system.  LLIDL defines
   RESTful resource accesses in terms of the LLSD abstract type system,
   which may be serialized using one of three well defined serialization
   mechanisms: XML, JSON and Binary.  Protocol participants decide
   before interacting which serialization mechanism is most appropriate
   or use the content negotiation mechanisms defined in HTTP.





Hamrick                  Expires August 16, 2010               [Page 16]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


2.3.2.  Bi-Directional Messaging with the VWRAP Event Queue

   Not all protocol interactions are easily represented by HTTP's
   request / response semantics.  When the server has a message for the
   client, there is no widely deployed technique for the server to
   initiate a HTTP request to the client.  It is interesting to note
   that this is the same problem developers of "rich web applications"
   see when deploying their applications.  Though VWRAP is not targeted
   for implementation exclusively in web browsers, we can utilize some
   of the techniques common in COMET applications.

   Work is ongoing to define a general solution for "reverse HTTP," but
   many of these solutions require the definition of new protocol and
   deploying new code to web servers.  The current best practice for
   COMET-style interaction is the use of the "long poll."

   To avoid "technology lock in," VWRAP defines an Event Queue
   abstraction that represents the flow of messages from the server to
   the client.  The Event Queue is expected to be implemented using the
   long poll technique.  When additional options such as Reverse HTTP or
   web sockets are specified and in general deployment, the Event Queue
   may be re-implemented using these techniques.  However, the interface
   defined by the Event Queue in the VWRAP Foundation document
   [I-D.lentczner-vwrap-foundation] should not change.

2.3.3.  Using Capabilities to Simplify Inter-Domain Access Control

   Simulated objects and services delivered by VWRAP compliant systems
   will require some level of access control.  Unfortunately,
   distributed access control is a notoriously difficult problem.  VWRAP
   seeks to minimize the drawbacks of distributed access control by use
   of capabilities.  In this context, a capability is an opaque URL,
   some portion of which contains a securely generated,
   cryptographically unguessable sequence of digits.  Capabilities are
   used to define service endpoints and are intended to only be in the
   possession of trusted parties.

   For example, a system may export the capability:

   http://www.example.org/s/B2A2A445-D234-463A-BE6D-6C54E5854FE4/

   This URL defines the protocol endpoint used to communicate
   application state changes (or query application state) for a specific
   application object by a specific user (or delegate.)

   Capabilities are required to be effectively unguessable as they
   represent the right to perform a set of operations on a particular
   resource.  Additionally, they must be kept "secret."  While the task



Hamrick                  Expires August 16, 2010               [Page 17]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   of maintaining the confidentiality of a number of web resource
   addresses may be a burden, it does have the advantage of simplifying
   access delegation.  If a subject wishes to delegate access to a third
   party, they simply communicate the capability.

   To reduce the likelihood of successful guessing attacks, inadvertent
   disclosure of a capability and "time of check, time of use" attacks,
   capabilities in VWRAP have a fixed lifetime, after which they expire.
   Systems SHOULD pick capability lifetimes commensurate with their
   security requirements and MUST NOT respond to protocol requests
   directed at a capability's URL after it has expired.  Additionally,
   VWRAP capabilities may be "single use" or "one shot," meaning that
   they may only be used once before expiring.

   Because capabilities are randomly generated with a short lifetime,
   VWRAP defines a mechanism for securely communicating capabilities and
   re-requesting expired capabilities.

   It is important to note that capabilities do not completely replace
   traditional access control models.  Systems may still use traditional
   Subject-Permission-Object schemes to represent access control for
   objects under their control.  Capabilities provide a mechanism for
   communicating access control decisions among loosely coupled trusted
   systems.

2.3.4.  Using LLSD to Avoid Version Skew

   It is a common practice in large, complicated software systems to
   divide the system into smaller, more manageable pieces.  The precise
   nature of this partitioning is beyond the scope of this protocol.
   However, practical experience has demonstrated that services
   distributed across multiple co-operating hosts MUST contend with the
   issue of version skew.  Simply stated, version skew is the condition
   where multiple versions of a service are interoperating
   simultaneously.

   There are many reasons why version skew may be introduced.  In VWRAP,
   agent domain hosts and region domain hosts may be operated by
   different organizations with different deployment schedules.  Or
   perhaps a domain operator is required to support an obsolete version
   of a particular service endpoint for a small number of customers.
   Whatever the cause of version skew, it has, in the past introduced
   difficulties in deploying distributed services.

   VWRAP does not seek to eliminate version skew, but it does attempt to
   reduce it's impact.  VWRAP services are defined in using the LLIDL
   interface description language.  LLIDL defines the type semantics of
   fields inside a protocol message using the LLSD abstract type system.



Hamrick                  Expires August 16, 2010               [Page 18]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   Each of the abstract types defined in LLSD has a default value, and
   common conversions between conformable types are defined.  LLSD
   specifies three standard techniques for serializing a protocol
   message prior to transmission across the network.  Each of the three
   serialization techniques renders protocol messages into a collection
   of variable length fields.  Protocol content is identified by JSON
   syntax, binary tags or XML element semantics, not by it's position in
   the message.  LLIDL does not support the concept of a "required
   field."  If a field defined in a protocol interaction is not present
   in the serialized message, it is semantically equivalent to the field
   being present and containing the default value for the field's type.

   Careful construction of service endpoints allows them to consume
   messages described using LLIDL without fear that version skew induced
   format differences may cause the semantics of the message to be
   unclear.  If a message arrives at a service endpoint with extra
   fields (fields defined in a later revision of the protocol exchange),
   the consumer can still extract those fields it understands.  If a
   message arrives lacking a field described in the protocol exchange,
   the service endpoint SHOULD interpret it as if the field was present
   and contained the default value for it's type.  This implies the
   message consumer cannot depend on the format of the message to
   determine validity, but must examine the contents of the message,
   converting missing fields to present fields with default values, and
   then determine if sufficient information is present to imply
   semantics about the protocol exchange.

   This technique will not eliminate all ramifications of version skew,
   but carefully constructed service descriptions should be able to
   avoid the most common problems found when services interoperate with
   minor revision differences.  While the Virtual World Region Agent
   Protocol itself does not mandate this style of message
   interpretation, it does require that messages be constructed so that
   service endpoints may do so.


3.  Services Defined by the Virtual World Region Agent Protocol

3.1.  User Authentication

   User Authentication in the Virtual World Region Agent Protocol is
   intended to verify the user's authorization to control their avatar
   in the virtual world and associated services.  VWRAP currently
   defines three methods for authenticating a user, as well as
   recommendations for integrating some third party authentication
   schemes.  The inputs to authentication are an avatar or account
   identifier and a related authentication token.  Assuming the token is
   successfully authenticated, the output of authentication is a seed



Hamrick                  Expires August 16, 2010               [Page 19]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   capability or "seed cap."

   Like most VWRAP protocol exchanges, authentication protocol data is
   represented as LLSD serialized data carried over a secure HTTPS
   transport.  The use of TLS with VWRAP authentication is recommended
   for all deployers who do not employ some other network security
   scheme (IPSec, link encryption, etc.)  Implementers are advised that
   in addition to user's password (or other credential,) the seed
   capability returned after successful authentication is also
   considered "sensitive" and should be protected with appropriate
   network security measures.

   The three authentication schemes defined in the VWRAP Trust Model and
   User Authentication [I-D.hamrick-vwrap-authentication] specification
   use a cryptographic hashes to demonstrate the user is in possession
   of the shared secret associated with their account.  Recommendations
   also exist for using transport authentication mechanisms (such as TLS
   client certificates) in place of shared secrets.  Also, work is
   currently underway to define protocol messages for use with Secure
   Remote Password (SRP).

   The authentication mechanisms described above are believed to be
   sufficient at the time of this writing.  It is an unfortunate truth,
   however, that cryptographic primitives are occasionally shown to be
   less secure than originally believed.  For this reason, VWRAP
   Authentication was designed to be extensible; allowing future users
   to define new authentication schemes without invalidating other
   authentication components.  A further benefit of flexibility is the
   ability to integrate other authentication schemes into an VWRAP
   context.  OpenID and SAML, for instance, are popular identity and
   user authentication technologies that are defined outside the IETF.
   VWRAP's flexible authentication system allows organizations
   responsible for these standards to define their use with VWRAP
   without having to change the text of the VWRAP Authentication
   standard.

   A typical flow of events for user authentication follows.  This is a
   simplified version; readers with an interest in authentication are
   referred to the VWRAP Trust Model and User Authentication
   [I-D.hamrick-vwrap-authentication] specification.

   1.  The end user presents their account identifier (either avatar
       name or account name) and an authenticator to the authentication
       services of the agent domain.  Endpoints for user authentication
       protocol messages are typically well defined, public URLs.

   2.  The authentication service authenticates the authenticator.  If
       the credentials cannot be authenticated, an error condition is



Hamrick                  Expires August 16, 2010               [Page 20]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


       returned.

   3.  The authentication service generates a seed capability and
       returns it to the user.

   4.  The user queries the "seed cap," requesting capabilities for
       other services the user is authorized to use.

   It is important to note that in the last step listed above, the
   client is free to request a subset of services offered by the agent
   domain.  This allows the same authentication service to be used by
   restricted clients (for instance, a group-chat only client) as well
   as traditional 3d viewers.

3.2.  Presence in the Virtual World

   "Presence" in VWRAP refers to at least two related concepts: account
   presence and avatar presence.  "Account Presence" describes the
   readiness for interaction between a user and an agent domain.  A
   client applications signals the user's readiness for interaction with
   an agent domain's services by initiating (and completing) user
   authentication.  Once authenticated, the user is "present."  But an
   agent domain may export more services than interacting with the
   virtual world.  It is conceivable a user may simply wish to
   manipulate their profile data, reorganize their digital assets, or
   make use of messaging services exported by the agent domain.
   Interacting with these services requires only "account presence."
   This type of presence implies only a client application presented
   legitimate credentials to the agent domain's authentication service.

   When a user wishes to interact with the virtual world, their avatar
   must be placed or "rezzed" there.  Placing an avatar requires the
   cooperation between the agent domain and the region domain
   controlling the system with authority for the target virtual
   location.  The quality of the system describing this interaction is
   "avatar presence."

3.2.1.  Establishing Presence with the Region Domain

   Once authenticated with the agent domain, the client application has
   established "account presence."  Once in possession of a valid seed
   capability, the client application may request a set of capabilities
   representing services offered by the agent domain: digital asset
   management, instant message and voice chat support as well as placing
   the user's avatar into the virtual world.

   Placing an avatar in the virtual world begins with the client
   exercising the "place my avatar in a region" capability.  As part of



Hamrick                  Expires August 16, 2010               [Page 21]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   this transaction, the client provides the URI representing a region.
   Upon receipt of this request, the agent domain determines the
   validity of the URL provided, and if the URL resolves to a trusted
   region domain begins the protocol between the agent domain and the
   region domain to place the user's avatar in the region.

   The precise exchange of messages between each party is beyond the
   scope of this document, but is described in the VWRAP Teleport
   specification But a few important points should be noted:

   o  The protocol endpoint at the agent domain the client application
      uses to place the user's avatar in a region is provided to the
      client as a capability following successful authentication.  It is
      not a publicly defined, fixed URL.

   o  The region the client wishes the agent domain to place their
      avatar in is represented as a URI.  This URI may be a URN, in
      which case the agent domain SHOULD have the ability to convert the
      URN into a URL.  If the target region is identified by a URL, it
      MUST use the HTTP [RFC2616] or HTTPS [RFC2817] URI schemes.

   o  The agent domain MAY apply a local policy to the URI and reject
      the request before attempting to connect with the region domain.
      (a "behind the firewall" agent domain may limit clients connecting
      to it to systems known to be inside the local intranet, for
      instance.)

   o  The agent domain MAY apply a local policy and reject the request
      after it makes an initial communication request with the remote
      region. (for example, if the region domain is operating servers
      with expired TLS certificates, or if those certificates are issued
      by a certifying authority the agent domain does not trust, it may
      reject the request.)

   o  The process of placing the avatar in the region results in
      capabilities from the region being communicated back to the agent
      domain for controlling the avatar.  The agent domain SHOULD
      forward these capabilities to the client application.

   o  The process also results in the agent domain issuing capabilities
      to the region domain, allowing it limited access to information
      about the avatar such as the avatar's shape and appearance.

   After an avatar is "placed" in a region, the agent domain is
   responsible for maintaining it's presence.  That is to say, after the
   avatar has been successfully been placed in the region, the agent
   domain MUST refuse to allow a second region to "take" the avatar's
   presence without removing the avatar from its current region.



Hamrick                  Expires August 16, 2010               [Page 22]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


3.2.2.  Moving Presence

   When an avatar moves between regions, special care must be taken that
   the agent domain and both the source and destination regions end the
   process with the same understanding as to the avatar's location.

   Moving between regions is typically initiated by the client.  The
   process is largely the same as the initial avatar placement, but with
   the important added step of removing the avatar from it's source
   location before rezzing it in it's destination.  (In fact, the
   initial placement of an avatar can be thought of as a transfer from
   "nowhere.")

   The process of moving between regions is described in the VWRAP
   Teleport specification, thought implementers should keep the
   following important considerations in mind:

   o  The client signals to the agent domain it's desire to move from
      one region to another by accessing the same capability as is used
      for initial placement of the avatar.

   o  The agent domain must again check that local policy allows
      movement to the new destination, and MUST receive a capability for
      placing the client into the new region before it removes the
      avatar from it's current location.

   o  The agent domain MUST also remove the avatar from it's current
      location before placing the avatar in the destination location.
      Capabilities granted to the current region MUST be revoked as part
      of this process.

   o  The location of the avatar MUST be unambiguous and the agent
      domain MUST NOT represent the avatars location as being in two
      places at once.  If required, for the short period between
      removing the avatar from one region and placing it in another, the
      avatar's location may be "in transit."

3.3.  User and Group Messaging

3.3.1.  Spatial Messaging

   Besides the presence of a fully articulated 3-dimensional
   representation of the user, the most important feature of the virtual
   world is interaction.  The virtual world is a social space;
   communication with other users is important.  Because the virtual
   world simulates features of consensus reality, "proximity chat" or
   "spatial messaging" is an important function.  This mode of
   interaction allows users to "hear" text messages that are spatially



Hamrick                  Expires August 16, 2010               [Page 23]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   proximal to the user's avatar, while ignoring other messages.  The
   assumption being that avatar's whose users share a common interest
   will congregate in specific locations in the virtual world.  Or they
   may find their avatars in the company of other users' avatars who are
   engaging in interesting conversation.  Either use case is possible;
   emulating the consensus reality feature that people can hear
   conversations close to them, but not hear more distant conversations
   is an important feature of the virtual world.

   Spatial messaging is managed by the region domain, and may be
   initiated by users' client applications or by the region itself.  It
   is associated with an object in the virtual world (either an avatar
   or a "plain" object) and occurs at a particular location.  The host
   in the region domain responsible for managing spatial chat applies a
   proximity algorithm to the chat to determine which avatars or objects
   are close enough to hear it.  Those objects are all sent messages
   with the contents of the message.

   Client initiated chat begins when the client application posts a
   message to the capability created by the region for an avatar's
   outgoing chat messages.  This capability is given to the client after
   successfully establishing presence in the region.  Incoming spatial
   chat messages are posted to the event queue established between the
   client and the region.

   Complicating matters somewhat, spatial chat may occur near region
   boundaries.  When this occurs, the host managing a region's messaging
   must have a mechanism to communicate chat messages to it's peers.
   Hosts responsible for spatial chat in a region must establish event
   queues with their peers in order to receive chat messages that
   originated near the region's borders.

3.3.2.  User to User and User to Group Messaging

   Instead of speaking on the "public" spatial chat channel (remember,
   each avatar within a defined range will be able to hear these chat
   messages,) users may send private user to user messages.  These
   messages are managed by the user's agent domain.  After
   authentication, a client may request a capability for establishing a
   instant messaging sessions.  The client then accesses this
   capability, providing a unique identifier for the target user.  If
   the agent domain is able to successfully establish a session with the
   target user, the message originator is provided a capability to which
   outgoing messages are posted.

   User to Group messaging is similar, but groups are used as the target
   for a message.




Hamrick                  Expires August 16, 2010               [Page 24]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   Incoming user to user or user to group messages will arrive in the
   event queue shared by the client application and the agent domain.

3.4.  Digital Asset Access and Manipulation

   The virtual world contains multiple digital objects; they have a
   position and an orientation as well as a shape and potentially a
   texture and other features applied to them.  VWRAP defines formats
   for describing objects and avatar shapes, but more importantly it
   describes the mechanism by which those digital asset descriptions are
   transferred between client applications, agent domains and region
   domains.  VWRAP also defines a trust model and a basic permissions
   system, describing which users or groups have the ability to make
   changes to any given object.

   Digital assets may be "at rest" or "in world."  Objects "at rest"
   exist only as a description of the object, maintained by a network
   addressable server and accessible via a unique URL.  When an object
   is "rezzed in world," its representation is transferred to a
   simulation host in a region domain and it becomes viewable by avatars
   and other objects in that region.

   Several classes of digital assets are defined: primitive shapes,
   textures, sound and animations for example.  In addition to the data
   describing the asset, metadata my be applied to objects.  Unique
   identifiers for creators, owners and affiliated groups may be
   maintained by an object.  Permission metadata may be added to an
   object to limit it's distribution to remote systems or to define the
   allowable operations by given users or classes of users.  Object
   name, description and tag values may be applied and should help with
   indexing and searching for objects.  Creation and modification dates
   may be applied to assist systems that cache assets.  Recent
   discussions regarding open content licenses implies an interest in
   license metadata.  Such metadata could be of use to consumers of
   digital assets; allowing them to more clearly interpret the creators
   intent with respect to sharing.

3.4.1.  Manipulating Digital Assets

   A number of useful manipulations of digital assets "at rest" are
   defined by VWRAP.  Where appropriate, asset metadata may be altered
   by directly communicating with the network host with authority for
   that asset.  This host may be part of the user's agent domain, or in
   the case of region-specific assets, it could be associated with a
   region domain.  It is important to note, however, that not all
   metadata is modifiable by all users, even the asset's owner.
   Specifically, the semantics of the creator metadata do not allow the
   owner to change the creator's identity.  Group membership may carry



Hamrick                  Expires August 16, 2010               [Page 25]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   some rights like the ability to manipulate the size, shape and
   texture of an asset, but not an asset's owner.

   The ability to access or manipulate digital assets is based on the
   accessor's identity.  Accessing and manipulating digital assets is
   performed via capabilities which expose the state of the asset to an
   authorized client.  This requires positive identification of the
   accessor prior to access.  In the case where an asset server is owned
   by the same authority as the agent domain, this access may be as
   simple as providing the proper capability after user authentication.
   In cases where the asset server is owned by a different authority,
   systems for deferred authentication may be necessary.  Work is
   currently underway to integrate OAuth and SAML into VWRAP for this
   purpose.

   At a gross level, the types of resources exposed by a digital asset
   server would include:

   o  a resource for searching an agent's inventory

   o  a resource for iterating across an agent's inventory

   o  a resource for accessing or manipulating a digital asset's
      metadata

   o  a resource for uploading new digital assets, or changes to an
      existing asset.

   o  a resource for removing a digital asset from the authority of the
      asset server's domain

   o  a resource for transferring the asset or a copy of the asset to a
      remote asset server

   o  a resource for instantiating an object "in world"

3.4.2.  Establishing Presence for Digital Assets

   Digital assets are intended to be used "in world," meaning there must
   be a way for a user to direct a simulation host to take an asset from
   an asset store and imbue it with presence in the virtual world.  The
   separation between agent based services and region based services is
   fundamental to VWRAP and implies the authority for the system
   maintaining the asset "at rest" may be distinct from that which
   simulates the asset "in world."  In practical terms, a region
   simulator may need to communicate with an asset server owned by a
   different person or company.  In situations like this, trust is
   paramount.  Because an asset's metadata may limit the owner's right



Hamrick                  Expires August 16, 2010               [Page 26]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   to make copies of an asset, the agent domain MUST be able to trust
   the region domain will honor that metadata.

   There are two levels of trust defined when working with digital
   assets: host-based trust and user-based trust.  The former represents
   one system's expectation that the other will honor the metadata
   regarding ownership, creatorship and rights and restrictions implied
   by these concepts.  Host based trust is carried by X.509 / PKIX
   certificates and implies a managed PKI.  User-based trust represents
   the expectation the asset server will expose sensitive resources only
   to users with the right to access such resources.

   Provided trust is established between the asset server and a
   simulation host, and the simulation host can demonstrate it is acting
   on behalf of a user with rights to access a particular resource,
   VWRAP defines a protocol for transferring a representation of the
   digital asset for simulation.  As part of this protocol, access to a
   digital asset may be restricted while the object exists "in world."
   This is the case for objects whose creators or owners specify that
   only one copy of the asset may exist at a time.


4.  IANA Considerations

   This memo includes no request to IANA.


5.  Security Considerations

   As mentioned previously, the concept of a persistent, ubiquitous
   identity in the virtual world is core to the user experience.
   Keeping agent based services distinct from region or object based
   services has advantages for scalability and flexibility.  However, it
   does have ramifications for the security of the virtual world as a
   whole.

   Most notably, this structure puts the agent domain in the role of a
   trust broker.  That is, the agent domain is trusted both by the set
   of users who operate client applications and by the set of users who
   administer peer domains.  A transitive trust relationship exists
   between the peer domains and end users by way of the agent domain.
   The administrators of the peer domain trusts the agent domain to
   properly identify end users, and potentially to ensure they are
   members of a particular class.  The end users trust the agent domain
   to properly identify peer domains and to potentially limit the
   transfer of digital assets to only those domains that have explicitly
   agreed to honor asset permissions meta-data.




Hamrick                  Expires August 16, 2010               [Page 27]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   VWRAP does not REQUIRE domains to adhere to any preset policy,
   however.  It instead provides a mechanism for communicating identity
   information so that such a policy MAY be enforced.

5.1.  Capabilities

   VWRAP makes extensive use of RESTful resources accessed via HTTP.
   Application state is communicated and changed by accessing web based
   resources.  One characteristic of such resources is they have a well
   defined URL, many of which are formatted as URL-based capabilities.
   [I-D.lentczner-vwrap-foundation] Capabilities have the characteristic
   that possession of the URL implies the right to access the resource
   it identifies.  It is important that capability URLs are shared only
   with trusted participants.  The VWRAP Base document defines the
   characteristics of URL-based capabilities, including the requirement
   that they include an unpredictable random component in the URL.
   Implementers need also ensure that these URLs are protected using
   suitable mechanisms (such as TLS, IPSec or link encryption.)

5.2.  User Authentication

   Prior to granting an end user access to any agent domain managed
   sensitive resource, the agent domain MUST authenticate the end user.
   The VWRAP Authentication specification defines three techniques for
   using shared secrets to authenticate end users.  The agent_login
   resource used for end user authentication provides an extensible
   mechanism, allowing the development and use of additional
   authentication techniques (SRP, TLS Client Certificates, SASL, etc.)

   Again, it should be noted that VWRAP as currently defined does not
   REQUIRE an agent domain to support a particular authentication scheme
   (shared secret, public key, secure remote password, etc.)  But it
   does define the mechanism for three shared secret options.

   Once a user is successfully authenticated, their client application
   is passed a seed capability (as described in the VWRAP Base
   specification.)  This seed capability is used by the client
   application to request access to resources and services managed by
   the agent domain (including services like "place my avatar in the
   virtual world.")

5.3.  Agent Domain to Region Domain Authentication

   Agent Domain authentication, or the process of authenticating an
   agent host to a region host uses a X.509 PKI.  Prior to
   communicating, the agent domain generates a key pair for a particular
   agent host under their control and requests a certificate from each
   the region domain with which they wish to interact.  The region



Hamrick                  Expires August 16, 2010               [Page 28]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


   domain returns a signed certificate to the agent domain which the
   agent domain uses in subsequent communication with the region.

5.4.  Access Control for Digital Assets

   In addition to security characteristics addressing traditional
   network and user security issues, the raison d'etre of VWRAP is to
   communicate state concerning items inhabiting a virtual world.  Some
   of these items may have access control restrictions within the scope
   of the applications used to simulate and render the virtual world.
   VWRAP defines an extensible permissions model which allows
   permissions meta-data to be associated with virtual items.


6.  References

6.1.  Normative References

   [I-D.hamrick-vwrap-authentication]
              Chu, T., Hamrick, M., and M. Lentczner, "VWRAP Trust Model
              and User Authentication",
              draft-hamrick-vwrap-authentication-00 (work in progress),
              February 2010.

   [I-D.hamrick-vwrap-type-system]
              Brashears, A., Hamrick, M., and M. Lentczner, "VWRAP :
              Abstract Type System for the Transmission of Dynamic
              Structured Data", draft-hamrick-vwrap-type-system-00 (work
              in progress), February 2010.

   [I-D.lentczner-vwrap-foundation]
              Lentczner, M., "Virtual World Region Agent Protocol:
              Foundation", draft-lentczner-vwrap-foundation-00 (work in
              progress), February 2010.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

6.2.  Informative References

   [RFC1822]  Lowe, J., "A Grant of Rights to Use a Specific IBM patent
              with Photuris", RFC 1822, August 1995.

   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

   [RFC2817]  Khare, R. and S. Lawrence, "Upgrading to TLS Within



Hamrick                  Expires August 16, 2010               [Page 29]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


              HTTP/1.1", RFC 2817, May 2000.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, January 2005.


Appendix A.  Definitions of Important Terms

       agent domain

       The agent domain is the administrative authority responsible for
       managing services related to avatars and users.  Identity
       management, group membership, avatar appearance, profile
       information, user authentication and group messaging are examples
       of services and information maintained by the agent domain.

       agent host

       A network host maintained by the agent domain is called an "agent
       host."

       avatar

       The avatar is the representation of a user in the virtual world.
       The avatar's shape and appearance are used by other users to
       render a graphical representation of the inhabited virtual world.
       The user's view of the virtual world is rendered from the
       perspective of their avatar.

       client application

       A client application is any application that is operated for the
       benefit of the user.  Common client applications might include a
       "viewer" that renders the virtual world on the user's workstation
       or a web application used to manipulate the user's digital
       assets.  VWRAP does not provide a canonical list of client
       application categories, but if an application is not a part of an
       agent domain or a region domain and it is manipulating user data
       or an avatar on behalf of a user, with the user's permission, it
       is a client application.

       region domain

       The region domain is the administrative authority responsible for
       managing services related to presence in the virtual world and
       it's simulation.  Typical services exposed by a region domain
       would include physics simulation, avatar presence and virtual



Hamrick                  Expires August 16, 2010               [Page 30]


Internet-Draft        VWRAP: Introduction and Goals        February 2010


       object presence lifecycle management (i.e. - the creation,
       manipulation and destruction of objects in the virtual world.)

       region host

       A network host maintained by the region domain is called a
       "region host", though the historical term "simulator" is still
       very common.

       user

       The entity controlling an avatar in world is the "user".


Appendix B.  Acknowledgements

   The author gratefully acknowledges the contributions of: Mark
   Lentczner, David Levine, David Crocker, Larry Mastiner, Joshua Bell,
   Barry Leiba, Joe Hildebrand, Chris Newman, Katherine Mancuso and Jon
   Peterson.


Author's Address

   Meadhbh Siobhan Hamrick
   Linden Research, Inc.
   945 Battery St.
   San Francisco, CA  94111
   US

   Phone: +1 650 283 0344
   Email: infinity@lindenlab.com



















Hamrick                  Expires August 16, 2010               [Page 31]