Re: cap patterns in 1ml
Matt Rice <[email protected]> Tue, 19 Jan 2016 19:45:24 -0800
| Newsgroups | gmane.comp.capabilities.general |
|---|---|
| Message-ID | <CACTLOFo34R4WupD0TA=X-xwVg-+JKCR0SRaiB5rBPCjh6eDMFQ@mail.gmail.com> |
--===============4143957067158934932== Content-Type: multipart/alternative; boundary=001a11c2eb5aed7cd60529bbd02d --001a11c2eb5aed7cd60529bbd02d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Sat, Jan 16, 2016 at 6:11 PM, Matt Rice <[email protected]> wrote: > hi so i've been trying to apply cap patterns to 1ml, > I posted a repository of various things here.. > > https://gitlab.com/ratmice/1ml-stuff/tree/master > https://gitlab.com/ratmice/1ml-stuff > > currently just includes attenuation (in ref.1ml) > and the sealer/unsealer thing i'd posted earlier... > > but there is some other non-cap stuff like a type for value discriminatio= n, > and other random junk > the prototype 1ml compiler and papers are available from > > https://www.mpi-sws.org/~rossberg/1ml/ > so, I'm going to attempt to describe my thoughts on 1ml and how it relates to cap's as it is almost certainly not the object capability model.. "In a system where designation and authority are inseparable, this common type of confused deputy problem =E2=80=93 in which a malicious party design= ates a resource they are not supposed to access =E2=80=93 simply cannot occur." "If designators are inseparable from authorities, any request for access must necessarily include the authority" from the capability myths demolished, 1ml differs in that It doesn't exactly have objects in the traditional sense of a pair of state and behaviour which are inseparable... It has a primitive reliance on synergy where a value of some type gives no authority except to have it. similarly a function which accepts a parameter of some type, is not callable without a value of that type, and thus gives no authority. so through synergy on types and functions accepting things of those types you get the state/behaviour pair... It should be obvious that this doesn't really extend to cases where you have multiple values sharing types. which is certainly something to be wary of. using some terms from here: http://cap-lore.com/CapTheory/term.html types being values, the general local scoping allows for veiling and defending I believe.. I haven't quite gotten to factories yet, but my theory is that the holes in a factory, are quite reminiscent of what 1ml calls 'large types', and so by bringing together two large types, or opaque types, together with a translucent interface to the type, through currying... Not quite there yet honestly, the basic file metaphor of source files makes it a bit odd to express disjoint environments, without separate compilation= . and FWIW, the descrim type and the descrim key from keykos don't really match up, it seems like the keykos descrim implemented in this descrim would be something that if it type checks returns true (not particularly more useful than just a normal type annotation) --001a11c2eb5aed7cd60529bbd02d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo= te">On Sat, Jan 16, 2016 at 6:11 PM, Matt Rice <span dir=3D"ltr"><<a hre= f=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>><= /span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px = 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir= =3D"ltr"><div>hi so i've been trying to apply cap patterns to 1ml,<br><= /div>I posted a repository of various things here..<br><div><div><br><a hre= f=3D"https://gitlab.com/ratmice/1ml-stuff/tree/master" target=3D"_blank">ht= tps://gitlab.com/ratmice/1ml-stuff/tree/master</a><br><a href=3D"https://gi= tlab.com/ratmice/1ml-stuff" target=3D"_blank">https://gitlab.com/ratmice/1m= l-stuff</a><br><br></div><div>currently just includes attenuation (in ref.1= ml) <br>and the sealer/unsealer thing i'd posted earlier...<br><br></di= v><div>but there is some other non-cap stuff like a type for value discrimi= nation,<br>and other random junk<br>the prototype 1ml compiler and papers a= re available from<br><br><a href=3D"https://www.mpi-sws.org/~rossberg/1ml/"= target=3D"_blank">https://www.mpi-sws.org/~rossberg/1ml/</a><br></div></di= v></div></blockquote><div><br></div><div>so, I'm going to attempt to de= scribe my thoughts on 1ml and how it relates to cap's<br></div><div>as = it is almost certainly not the object capability model..<br><br>"In a = system where designation and authority are inseparable,=20 this common type of confused deputy problem =E2=80=93 in which a malicious party designates a resource they are not supposed to access =E2=80=93 simply cannot occur."<br><br>"If designators are inseparable from= authorities, any request for access must necessarily include the authority= "<br><br></div><div>from the capability myths demolished,<br><br></div= ><div>1ml differs in that It doesn't exactly have objects in the tradit= ional sense of a pair of state and behaviour which are inseparable... It ha= s a primitive reliance on synergy<br>where a value of some type gives no au= thority except to have it.<br><br></div><div>similarly a function which acc= epts a parameter of some type, is not callable without a value of that type= , and thus gives no authority.<br></div></div><br></div><div class=3D"gmail= _extra">so through synergy on types and functions accepting things of those= types you get the state/behaviour pair... It should be obvious that this d= oesn't really extend to cases<br></div><div class=3D"gmail_extra">where= you have multiple values sharing types.=C2=A0 which is certainly something= to be wary of.<br></div><div class=3D"gmail_extra"><br>using some terms fr= om here:<br><a href=3D"http://cap-lore.com/CapTheory/term.html">http://cap-= lore.com/CapTheory/term.html</a><br><br></div><div class=3D"gmail_extra">ty= pes being values, the general local scoping allows for veiling and defendin= g I believe..<br><br></div><div class=3D"gmail_extra">I haven't quite g= otten to factories yet, but my theory is that the holes in a factory, are q= uite reminiscent of what 1ml calls 'large types', and so by bringin= g together two large types, or opaque types, together with a translucent in= terface to the type, through currying...<br></div><div class=3D"gmail_extra= ">Not quite there yet honestly, the basic file metaphor of source files mak= es it a bit odd to express disjoint environments, without separate compilat= ion.<br><br></div><div class=3D"gmail_extra">and FWIW, the descrim type and= the descrim key from keykos don't really match up, it seems like the k= eykos descrim implemented in this descrim<br></div><div class=3D"gmail_extr= a">would be something that if it type checks returns true (not particularly= more useful than just a normal type annotation)<br></div></div> --001a11c2eb5aed7cd60529bbd02d-- --===============4143957067158934932== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ cap-talk mailing list [email protected] http://www.eros-os.org/mailman/listinfo/cap-talk --===============4143957067158934932==--