Re: Securing and taming an existing language
Marc Stiegler <[email protected]> Tue, 24 Feb 2015 10:29:03 -0700
| Newsgroups | gmane.comp.lang.e.general |
|---|---|
| Message-ID | <CAK=cCVW+bUqsGswgmTUP9EH5-qR7SvtzeRrXhZYr0DTjx=S=Vw@mail.gmail.com> |
--===============2049351619745878266== Content-Type: multipart/alternative; boundary=001a11423caef01048050fd8da49 --001a11423caef01048050fd8da49 Content-Type: text/plain; charset=UTF-8 For a taste of taming, the taming of the OCaml library for Emily is quite small and simple, see a very brief description of it at http://www.hpl.hp.com/techreports/2006/HPL-2006-116.pdf But the taming effort that is really informative is the one we did for E. I have been told by a couple of people that they really came to understand what taming was about by reading the tables supplied with E that specify which methods and constructors are allowed, and which are disallowed. Markm can tell you where to look to see that list. YMMV. --marcs On Mon, Feb 23, 2015 at 1:45 PM, Mark S. Miller <[email protected]> wrote: > > > On Mon, Feb 23, 2015 at 10:41 AM, Bruce Mitchener < > [email protected]> wrote: > >> Hopefully this is the right list for this question or set of questions ... >> >> I help maintain the Dylan language, http://opendylan.org/. It is >> similar to Scheme, but with a CLOS-style object system, and was originally >> designed by various Common Lisp folks at Apple, CMU and Harlequin in the >> early 1990s. >> >> I'm interested in seeing what we could do to become friendly to object >> capabilities. >> > > Awesome! I remember Dylan fondly. > > >> >> I've following along with E over the last 17 years off and on and some of >> the other efforts. I've read the slides for >> http://dynamic-languages-symposium.org/dls-07/program/media/MarkMiller_2007_TradeoffsInRetrofittingSecurityAnExperienceReport_Dls.pdf >> ... I've also skimmed the paper on taming Pict >> >> I'm curious if there's a good place to start reading for how to: >> >> 1) subset a language to remove ambient authority >> 2) tame unprincipled libraries >> >> I realize that these are big, complicated tasks, but I'd like to evaluate >> whether or not this is a feasible direction for Dylan to move in. >> > > We've now done this successfully a number of times, for very different > languages and libraries < > http://wiki.erights.org/wiki/Object-capability_languages>, so we should > more concrete lessons we could write down as a record independent of any > one of these efforts. I'm embarrassed to say that we have not made any such > record -- it is all folklore and experience, transmitted through > conversation. Where are you located (feel free to respond privately to > [email protected])? It would probably be good to assemble a group > together for such conversations. > > > >> >> Along with the usual issues, Dylan has another interesting complication >> in that it is using the CLOS model of OO which is very different from that >> of Java, Smalltalk and C++. In the CLOS model, multiple dispatch is used >> and the methods (generic functions) don't "belong" to objects or classes. >> (It isn't really a message-passing OO.) >> >> Has there been any consideration of that sort of object system and model >> in the past with respect to object capabilities? >> > > For CLOS itself, I'd say it is rather hopeless. But IIRC, Dylan has a > module system that forms an encapsulated scope, similar to Java's package > scope. Does this, or can this, for a basis for secure encapsulation? If so, > there's an implicit rights amplification hazard that can lead to confused > deputies, but not in a way that's necessarily fatal. I would start from > there. > > -- > Cheers, > --MarkM > > _______________________________________________ > e-lang mailing list > [email protected] > http://www.eros-os.org/mailman/listinfo/e-lang > > --001a11423caef01048050fd8da49 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div><div>For a taste of taming, the taming of the OCaml l= ibrary for Emily is quite small and simple, see a very brief description of= it at<br><a href=3D"http://www.hpl.hp.com/techreports/2006/HPL-2006-116.pd= f">http://www.hpl.hp.com/techreports/2006/HPL-2006-116.pdf</a><br><br></div= >But the taming effort that is really informative is the one we did for E. = I have been told by a couple of people that they really came to understand = what taming was about by reading the tables supplied with E that specify wh= ich methods and constructors are allowed, and which are disallowed. Markm c= an tell you where to look to see that list. YMMV.<br><br></div>--marcs<br><= /div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, Feb = 23, 2015 at 1:45 PM, Mark S. Miller <span dir=3D"ltr"><<a href=3D"mailto= :[email protected]" target=3D"_blank">[email protected]</a>></span> wr= ote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border= -left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><br><div class=3D"g= mail_extra"><br><div class=3D"gmail_quote"><span class=3D"">On Mon, Feb 23,= 2015 at 10:41 AM, Bruce Mitchener <span dir=3D"ltr"><<a href=3D"mailto:= [email protected]" target=3D"_blank">[email protected]</a>&= gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px = 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);bord= er-left-style:solid;padding-left:1ex"><div dir=3D"ltr">Hopefully this is th= e right list for this question or set of questions ...<div><br></div><div>I= help maintain the Dylan language, <a href=3D"http://opendylan.org/" target= =3D"_blank">http://opendylan.org/</a>.=C2=A0 It is similar to Scheme, but w= ith a CLOS-style object system, and was originally designed by various Comm= on Lisp folks at Apple, CMU and Harlequin in the early 1990s.</div><div><br= ></div><div>I'm interested in seeing what we could do to become friendl= y to object capabilities.</div></div></blockquote><div><br></div></span><di= v>Awesome! I remember Dylan fondly.</div><span class=3D""><div>=C2=A0</div>= <blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-= left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p= adding-left:1ex"><div dir=3D"ltr"><div><br></div><div>I've following al= ong with E over the last 17 years off and on and some of the other efforts.= I've read the slides for=C2=A0<a href=3D"http://dynamic-languages-symp= osium.org/dls-07/program/media/MarkMiller_2007_TradeoffsInRetrofittingSecur= ityAnExperienceReport_Dls.pdf" target=3D"_blank">http://dynamic-languages-s= ymposium.org/dls-07/program/media/MarkMiller_2007_TradeoffsInRetrofittingSe= curityAnExperienceReport_Dls.pdf</a> ... I've also skimmed the paper on= taming Pict</div><div><br></div><div>I'm curious if there's a good= place to start reading for how to:</div><div><br></div><div>1) subset a la= nguage to remove ambient authority</div><div>2) tame unprincipled libraries= </div><div><br></div><div>I realize that these are big, complicated tasks, = but I'd like to evaluate whether or not this is a feasible direction fo= r Dylan to move in.</div></div></blockquote><div><br></div></span><div>We&#= 39;ve now done this successfully a number of times, for very different lang= uages and libraries <<a href=3D"http://wiki.erights.org/wiki/Object-capa= bility_languages" target=3D"_blank">http://wiki.erights.org/wiki/Object-cap= ability_languages</a>>, so we should more concrete lessons we could writ= e down as a record independent of any one of these efforts. I'm embarra= ssed to say that we have not made any such record -- it is all folklore and= experience, transmitted through conversation. Where are you located (feel = free to respond privately to <a href=3D"mailto:[email protected]" target=3D= "_blank">[email protected]</a>)? It would probably be good to assemble a gr= oup together for such conversations.</div><span class=3D""><div><br></div><= div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0= px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-le= ft-style:solid;padding-left:1ex"><div dir=3D"ltr"><div><br></div><div>Along= with the usual issues, Dylan has another interesting complication in that = it is using the CLOS model of OO which is very different from that of Java,= Smalltalk and C++. In the CLOS model, multiple dispatch is used and the me= thods (generic functions) don't "belong" to objects or classe= s. (It isn't really a message-passing OO.)</div><div><br></div><div>Has= there been any consideration of that sort of object system and model in th= e past with respect to object capabilities?</div></div></blockquote><div><b= r></div></span><div>For CLOS itself, I'd say it is rather hopeless. But= IIRC, Dylan has a module system that forms an encapsulated scope, similar = to Java's package scope. Does this, or can this, for a basis for secure= encapsulation? If so, there's an implicit rights amplification hazard = that can lead to confused deputies, but not in a way that's necessarily= fatal. I would start from there.</div></div><span class=3D"HOEnZb"><font c= olor=3D"#888888"><div><br></div>-- <br><div>=C2=A0 =C2=A0 Cheers,<br>=C2=A0= =C2=A0 --MarkM</div> </font></span></div></div> <br>_______________________________________________<br> e-lang mailing list<br> <a href=3D"mailto:[email protected]">[email protected]</a><br> <a href=3D"http://www.eros-os.org/mailman/listinfo/e-lang" target=3D"_blank= ">http://www.eros-os.org/mailman/listinfo/e-lang</a><br> <br></blockquote></div><br></div> --001a11423caef01048050fd8da49-- --===============2049351619745878266== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ e-lang mailing list [email protected] http://www.eros-os.org/mailman/listinfo/e-lang --===============2049351619745878266==--