Re: [mmox] Permissions

Kajikawa Jeremy <belxjander@gmail.com> Mon, 23 February 2009 10:00 UTC

Return-Path: <belxjander@gmail.com>
X-Original-To: mmox@core3.amsl.com
Delivered-To: mmox@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 705013A6AF6 for <mmox@core3.amsl.com>; Mon, 23 Feb 2009 02:00:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.376
X-Spam-Level:
X-Spam-Status: No, score=-1.376 tagged_above=-999 required=5 tests=[AWL=-0.577, BAYES_00=-2.599, J_CHICKENPOX_42=0.6, J_CHICKENPOX_46=0.6, J_CHICKENPOX_66=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UtmA-hGaYw03 for <mmox@core3.amsl.com>; Mon, 23 Feb 2009 02:00:21 -0800 (PST)
Received: from wa-out-1112.google.com (wa-out-1112.google.com [209.85.146.178]) by core3.amsl.com (Postfix) with ESMTP id 04C4B3A6AFA for <mmox@ietf.org>; Mon, 23 Feb 2009 02:00:20 -0800 (PST)
Received: by wa-out-1112.google.com with SMTP id m33so998070wag.5 for <mmox@ietf.org>; Mon, 23 Feb 2009 02:00:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:in-reply-to :references:disposition-notification-to:content-type:date:message-id :mime-version:x-mailer; bh=nmK8Go8t8Ev1iuKQegSgPf6s8h0D+bttjgPDCOzbut0=; b=mAWevoBaO3JULlLWggw8gEaj7bfTBLZcDviWVvh36pO1BiEw8TzNEVr0++jyMIx2cK LUmml6F1dGFWmqbwnpHqSHCIMaMTRSRkXzzWJVGore92lRtGXfb1zsHoylmtKz2raiVI oMvFiEWatxfyuKAQGVdDHyYOb63MHamPj4BP0=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:in-reply-to:references:disposition-notification-to :content-type:date:message-id:mime-version:x-mailer; b=XenyMDV9XA6o6Fe8BHe6PF80YrXAbyXnkzxm/LjmQmTsi+Y6MRGnPVEYe2bc5UdMCq bdeghN6Oh+3HkHUIKAOXabyZ+JYyY0BG8vH8W9QlrcAr0Etp0iBF32ckSuuPu+9yD10e RMzOSVICiP92g3T25bRgWldG0I2rRIURwZ8Lg=
Received: by 10.114.102.20 with SMTP id z20mr1608137wab.53.1235383237583; Mon, 23 Feb 2009 02:00:37 -0800 (PST)
Received: from ?10.2.1.3? (p1012-ipbfp305tottori.tottori.ocn.ne.jp [114.155.20.12]) by mx.google.com with ESMTPS id g14sm6002108rvb.0.2009.02.23.02.00.35 (version=SSLv3 cipher=RC4-MD5); Mon, 23 Feb 2009 02:00:36 -0800 (PST)
From: Kajikawa Jeremy <belxjander@gmail.com>
To: "mmox@ietf.org" <mmox@ietf.org>
In-Reply-To: <53cd6c2e0902230118v12f271a5u2657a358821f4d09@mail.gmail.com>
References: <61dbdd7d0902230059u69e87ed3n3a85b905593c11@mail.gmail.com> <53cd6c2e0902230118v12f271a5u2657a358821f4d09@mail.gmail.com>
Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-xflyd5Ng14+76UaU6hVZ"
Date: Mon, 23 Feb 2009 18:55:18 +0900
Message-Id: <1235382918.6786.22.camel@localhost>
Mime-Version: 1.0
X-Mailer: Evolution 2.22.3.1
Subject: Re: [mmox] Permissions
X-BeenThere: mmox@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Massively Multi-participant Online Games and Applications <mmox.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/mmox>, <mailto:mmox-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmox>
List-Post: <mailto:mmox@ietf.org>
List-Help: <mailto:mmox-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmox>, <mailto:mmox-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Feb 2009 10:00:22 -0000

I had a very interesting chat about this with Gareth...

and this is what I came up with... based off existing Email and
FileFormat styles...

Im going to tag this for style within this message...

anything in <> is to be machine readable sections,
anything encoded within a tagged item as "<...>encoded-data</...>"
 is to be human OR machine readable (Im not defining that here).
and I will be marking commentary below this point with the C++ comment
prefix "//"

<OBJECT 0xDEADBEEF>
  // Object verification starts here
  <ATTR label="name">My Custom AV Crossgrid Mohawk</ATTR>
  <ATTR label="license">MIT</ATTR> // human readable
  <ATTR label="pgp-sign">...</ATTR>
  <ATTR label="copy"></ATTR>
  <ATTR label="exportable"></ATTR>
  <ATTR label="resale"></ATTR>
  <ATTR label="UUID">0000-0000-0000-0000-0001</ATTR>
  <ATTR label="prim">...</ATTR>
  <ATTR label="mesh">...</ATTR>
  // Object verifies to here
</OBJECT 0xDEADBEEF>

// Processing concepts...

any "object" as described above will have mixed attributes when
export/imported
 across systems,  it may *gain* attributes but transfer back to the
originating system
 will include an "update-check" mechanism and notification of author
when a tampered
 item is detected...

Yes it breaks any "complex" down into bare primitive parts for various
systems,
  and also translates into "asset+inventory" functions of SL being
merged when out
  of that ecosystem along with trusted transfer mechanisms being used
for adding
  attributes where the author permits or the author can be specific and
use system
  permission markers on multiple systems where editing becomes
available.

This does have an enabling feature in that an incomplete object can be
invalidated
  at point of transfer where limitation of connection makes enforcement
occur in
  similar to a fashion of international travel.
  (you are crossing a great divide of some kind with the object)...

The above is to be defined as an inflexible bottom layer (physical
format)
  similar to the "layered transport" mechanisms already in use...
  recognition and use of any particular attributes by human or machine
processes
  is to be done as a seperate layer on top of this "formatted"
datastream...

This allows for encoding to a file OR encoding for transfer across the
network,
  either whole or not at all (the encoding needs to have a complete
transfer)... 

anyone who does make a "damaged" system will have it as a compromised
  server,  not as client system for any particular server.

also existing systems as example uses already exist under both MS and
GPL
 licenses,  so there is existing code-base re-usable to this context...

I submit the above as potentially expanding on the MIME encoding
transport
 of Email already in use and the way that is "multipart message
boundary"
 marked for each piece of a message and loss of one part breaking the
message
 and invalidating it.

Sincerely,
  Jeremy

On Mon, 2009-02-23 at 10:18 +0100, Jesrad wrote:
> Imagine for a second that the cross-grid protocol mandate somehow that
> objects made on one grid be hosted and served to clients from this
> grid, and not transfered to other grid servers / simulators (though
> the owner may have the third-party possibility of exporting from one
> and importing to another so it is hosted multiple times and thus
> exists in multiple instances).
> 
> >From there any specific policy of "DRM" would purely be a matter of
> specific grid implementation. I would say that a lot of headaches and
> flames would be averted, saving us the trouble of directly addressing
> these matters in the MMOX scope itself and leaving them for
> grid-caretakers and their own customers to discuss and decide policy
> about.
> 
> Please, everyone, let me know what you think of this.
> 
> On Mon, Feb 23, 2009 at 9:59 AM, Gareth Nelson <gareth@litesim.com> wrote:
> > Just been talking to Adam about this and knocked out a very very rough
> > spec. It may be early in the game to discuss this issue, but it's one
> > that drives a lot of emotion in people on all sides of the debate.
> >
> > So, without further a-do, here's a rough spec for a DSL (Domain
> > Specific Language) for permissions to discuss (copied and pasted from
> > my vim session, excuse any formatting weirdness):
> > Original concept courtesy of Adam Frisby, see
> > http://www.adamfrisby.com/blog/2008/08/hypothetical-permissions/
> >
> > Very very rough thinking out loud
> >
> > Each asset has a set of metadata fields:
> >        Author
> >        Creation timestamp
> >        Last modified timestamp
> >        Logs of modifications? (TBD)
> >
> > Possible actions:
> >        Copy
> >        Modify
> >        Transfer
> >        Transfer for cash
> >
> > Each action attached to a simple function that returns a boolean value
> > if action is allowed.
> > Data types:
> >        Entity
> >                Describes a user, organisation, system or network
> >        Asset
> >                Describes an asset ;)
> >        Location
> >                Describes a virtual location, rather than a physical system
> >        Time
> >                Date and time :)
> >
> > Entity has these fields:
> >        Name
> >        UUID
> >        Class (person, organisation, system, network)
> > Optional fields for person entities:
> >        Agent domain? (TBD)
> >        System (what system is the user connecting from - may be withheld for
> > privacy reasons)
> >        Location (where in the metaverse are they?)
> > Optional fields for organisation entities:
> >        Organisation type (nonprofit/commercial/government etc)
> >        Company type (for corporations: LLC/Ltd/PLC/whatever)
> >        Address (i.e postal address)
> >        Technical contact (a person entity!)
> > Optional fields for system entities:
> >        Platform
> >        System hash (hash of various bits of hardware, HD serial and ethernet MAC etc)
> >        Network
> >        Current IP address
> > Optional fields for network entity
> >        Technical contact (heh, redundant)
> >        CIDR prefix
> >
> > Asset
> >        Name
> >        MIME type
> >        UUID
> >        Creator
> >        Creation time
> >        Last modified time
> >        Last modified by
> >
> > Location
> >        TBD (Obviously not the SL style Region/x/y/z)
> >
> > Time
> >        You need to ask? ok,
> >        Day
> >        Week
> >        Month
> >        Year
> >        Hour
> >        Minute
> >        Second
> >        All integers
> >
> > Simple comparision operators to match on what is passed to the functions
> > !=, ==, >, <, >=, <=, a few simple string functions, the usual suspects
> >
> > function prototypes:
> > copy(Entity src, Location location, Time time, Asset ass)
> >        src      == the user currently holding the asset who wishes to copy it
> >        location == the location the requesting user is inhabiting at present
> >        time     == the time the request was made at (just in case there's
> > batch processing or serious latency)
> >        ass      == the asset being copied
> > modify(Entity modifier, Asset ass, Time time, Location loc)
> >        modifier == the entity trying to modify
> >        ass      == the entity they're trying to modify
> >        time     == the current time
> >        loc      == where is our modifier while they're trying to modify?
> > transfer(Entity src, Entity dst, Location loc, Time time, Asset ass)
> >        Same as copy essentially
> > sell() is just transfer, but invoked for transfers in exchange for compensation
> >
> > The modify() function could probably do with a description (if
> > possible) of the modification being requested, for example in my own
> > work i'd want to prohibit modifications to the permissions in order to
> > enforce the GPL, others may have different requirements.
> >
> >
> > DANGER! DANGER! READ:
> >        Any system that can be proposed here can only be used to express
> > intent, it can express that intent very clearly using a DSL as i've
> > roughly
> >        spec'ed out above, but it will never be possible to actually
> > enforce it on systems that do not want to enforce it. I'll note that
> > personally I
> >        absolutely hate DRM for the most part, but if it's going to be a
> > reality it should be done right, and should allow any type of license
> > to be roughly
> >        expressed in a way that can be handled by automated systems. If for
> > no other reason than mere practicality, a decent DSL for specifying
> > what
> >        permissions an author of a copyrighted work has granted under
> > existing copyright law can be useful and saves having to pester the
> > author.
> > _______________________________________________
> > mmox mailing list
> > mmox@ietf.org
> > https://www.ietf.org/mailman/listinfo/mmox
> >
> _______________________________________________
> mmox mailing list
> mmox@ietf.org
> https://www.ietf.org/mailman/listinfo/mmox