19

Secure Compilation of a Multi-Tier Web Language (TLDI)

Embed Size (px)

DESCRIPTION

Presentation from TLDI '09

Citation preview

Page 1: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !�"#$%&'()&#*#+(, ')&-.&�!/�01(*2 (2�34566789:;5<=4>4?<48@ABCDDAEFGCHIBJBKHBELMHFMCNFCMFKOPQ��R�����S������TU476=V4WXV7=YZ6[W\V]:94W[46W4_`7aW484=b\8\5WaYcd>\876e56f?5f\]\87f656[3_><\_\6=5=746ghij5=?W[5dkU56?5Wdlmklhhno������pq����R��� �����Q��R������������ ����r�S�������

Page 2: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !"#!$%%&'#($'#)$#�*+,**)�*-./.012.340536789.:8;673<<677.=8;626/>/38?6.?460.536789.:8;6:[email protected]:126/[email protected]@BAA9:C4B:C3BC67DE:6A378/6FGHHIGJKGLMNOPHQMRHGHSNTPSTGK8.2@9866U6:8@9U9B4B??49<B89.:7DVORGLSNWGOMKOSQWXYZ69[6@68B4D>\]]_;60B8B6a<;B:C60/68266:8;609b6@6:8896@7.=8;67BA6B??49<B89.:.=86:<.A679:9:<.A?B89/467;B?67B:0=.@AB87DcGWPJMQdJGIMGFK;61@6539@6068B9460e:.2460C6.=8;64B:C3BC6.:6B<;896@Df������gh����i��� �����j��i������������ ����k�l�������

Page 3: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !"#!$%&'()�')$*"+*,�� !,(-./0120134546748991:7/8:7.873;<=>?=@ABCBADEFGHIJHKLLMNJOKNJPKJEQRKQSILGMOETQISIUEVTGOMQFEQDEENEKSRIWQREQMEHTIWKDEFKGGOMSKQMINX�����MTKTQHINJOYQYGEUVLPOQMZQMEHVWPNSQMINKOGHIJHKLLMNJOKNJPKJEWIHQREDEF[\IIGEHEQKOXV] _abcd[eEHHKNIEQKOXV] _MTKeSRELEZFKTEUOKNJPKJEWIHSHEKQMNJMNQEHKSQMfEKGGOMSKQMINTKSHITTQREDEFabMOUKVghiVjklVhmnoXp������qr����s��� �����t��s������������ ����u�v�������

Page 4: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !�"#$%&'%(�!$)*+,$-.$+,% � /01234353678379:2;<=;>?@A@?B9362CD3C:C28EE1FC23EF17F3BB:67B1G95CD3C3H2CF3IC2JF1BCD9G9C3:521JCD951K9FL59M95I1G9C1KD:IDCD953678379:2I1BE:59GNOF:6I:E591JP18FI9LQ329GR93216:67P9I8F:C4EF1E9FC:921JI1BE:59GI1G92D185GJ1551KJF1BF9M:9K1JCD9218FI9I1G936G:C2218FI9L59M9529B36C:I2NS������TU����V��� �����W��V������������ ����X�Y�������

Page 5: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !"#$%&'()*'(&+, -./0123./14/3561789.:;9:1</09/=>?81@>1./>;8/=@/=1A97</A92/=3.<7B</3A=.:23./=.;9/=3.<3./0128=1./<=C1D/01<123./=.;9/=3.<9A13?1./328=1./>9.=?;89@/=3.EFGHIJ'()I,K8836LMNOPQRSPMTLUVQVW973;/XOYRQZRQMP[PUZWPTXL9//01LUOPNMYM\MYE]&_'(&+, 1?A3?3<1/39??8B9;/01./=29/1C1.2AB?/=3./3283<;A1</3a4/01<1?A3781><Eb������cd����e��� �����f��e������������ ����g�h�������

Page 6: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !"#$%&'������"()*�(�#+,+"-#�����./0/.12345642789:0335;45<03=7>5:03:=3=/?.6@AB/65:30//CDE<03=7/FGBB72B7/7H6.HI?7;20I7/JK@7�����/4/671./:033780/0LMN2BGIB0196G2BG:7//0HOKKPB7Q=7/60H82BG8=:70HCDEB7/2GH/7JR=/7B.H67B0:6.HI?.6@6@7/4/67197S7:=67/6@72BGIB01;4TUVTWXUYXVZ[\]:0H_X_abXUa:0Hc bdeWfbUgZhifXVXVJj������kl����m��� �����n��m������������ ����o�p�������

Page 7: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !"#$#%�!!"�&'(�)*+�'"#, -./012345617890:5;;<=>?@>?AB CDEFGHI6345617<JKLMNNMOPQRNSQTRQTTNKNUVWQNQXQYVZ [\] -./;766E3:_C7<=>?@>?Aa @b?90:5;;cdefghfidjk l-m?n6oGD;10ICEcdpqrstuhvgfwxquyeez{dI7E|G9cd}~��d�� l01EEGD���>cderq�vid��12l�01EEGD�� l�-m?n�,� [,,,B ;766E3\B< ����������������� ��������������������� ��������������

Page 8: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !�"#$%&$"#'()**+,-*../01.2)323-*204**536732*83.3-*.76209:6/:;/1<472201.0-6/1;.3-*43.*=>*1:08*8?3601<@/2)2)*/-1*:*..3-A.7--0718/1<:012*+2?/1203:012/1732/01.2-/1<BC0-*+3D,6*?2)**+,-*../01EFGHIJKLMNOEIPQQR3601<@/2)2)**15/-01D*12STUVWXYZ>[\]T_ YZ aXWUXbac<*2.*1:08*8/120defgFhdijFklImnoPpKLGiqrrsrGPtuvrndwuxyz(0)3:;2)*3,,6/:32/01@*:317.*2)*.3D**+,-*../01@/2)3D08/{*8*15/-01D*12STUVWXYZ|}\]T_ YZ aXWUXbac@)/:)<*2.*1:08*8/120defgFhdijFklImnoPpKLGiqrrsrGPtuvrndw~��z����������������� ��������������������� ��������������

Page 9: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !"#$%&'%!"(#)*�$#+,#�$%-�-./0122134567189: ;<=>?@<A><BC=B=2D12EFD5GHE013GIFJ6557K5HH5HE01L5KM1N5OP Q><=RBS<T?B<U>TBVIWF56X56H121K87IHEW8E0N13GIFJ6557K5HH5HE01L5KM1N5OY AS=?U<BS<AZ?B>Z;[Z\IW2D5M6IN617K8HEF3IX56E0N10J06513D1KG5WJ032EI0D5GHE013GIFJ65]I63I0F26J32E0N3IJ0256W5E265J5F2F_������ab����c��� �����d��c������������ ����e�f�������

Page 10: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������� !"�#$ #% &!! �'(�#!)*+,--./,/0.-12334567,-8494:67*,;+-.<.=>?/,/0.-,@10A-0B<,-<+C/*+D,E+?1+8/.+F>E+111,G+/D>E.>+E/0+1HI+1,D,-4JK5433LM:L332N4/.=+,-/*,/O*+-+;+E,-,11+E/0.-2334567.<<?E10-,-+F+<?/0.-P/*+E+01,>E+;0.?1.<<?EE+-<+O0/*0-/*++F+<?/0.-.G,-+;+-/494:67HQF,=>@+<.EE+1>.-8+-<+R>E./+</0-A/*+>E0<+ST494:6RUE0<+V1R>E0<+SSHHH233456RUE0<+V1R;,@?+SSW������XY����Z��� �����[��Z������������ ����\�]�������

Page 11: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !"#$%"&'!()*�*)!+,-./0123450/617185..5-15809::;<=38>02>.?385-..@.A653080B5-.C.D1EE23A15308B13241576853F.GH.41I5-151C.D1EE23A15308JKLM34NOPQRSTUVRWX3B18?082I3B5-.7.341E700BC35-385-.5IE.Y18?Y.Z.A54I45.F5-15/3>[email protected]/.Z.A5G[@1FE2.4\] 385_abcad_ 45738/e-5F2f,-34341E1/.eg-5F2f @F24.22h5eE73A.385fijke7@F2fijD6I e>126.385l?DE14445738/fim73A.n4o>126.pjke7@F2fijq������rs����t��� �����u��t������������ ����v�w�������

Page 12: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������� !�"#$%�&'%�()**"$�%+!*,-�."/ 0123456789:4;6<=>?@3A9BB6B>C<=DEFGC<H;IBJ89:4;KLM7C6NO:EFLP QRS345J89:4;?@3A9BBK0TUVTUFW X00TUYGC<H;IBJ89:4;KZ[ <=>\]O:J89:4;K_ abccbdefgchfigfiiccjklfcfmfnko Lpq 012B;::r>67AC<H;6<=>EFLM7C6NO:EFLs QRSB;::r>JAC<H;K0TUVTUFt VXU@3A9BBuvwxyzx{vZ/| TVTSYGC<H;IBJAC<H;KZ// 7Q}U~:6]=B43O<>uv������z�yx�����ww��vO;>�]@uv����vE/P 734>>]=Y��Tuvw����{vE�457�34>>]=E/W 7�Q}U~E/[ L/o/p B;::r>J[PK ����������������� ��������������������� ��������������

Page 13: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !"#$%& '()*(+,-.,)//(.012,+3,)3)*4506/(7.(8(.009:(*;+.<50*58:3(8(.0+05-.5.06(:/+,05,+309:(,6(,=(/>?@A B*(/C(/58:3(8(.05.DE��F�����5*8-<(33(<+*+G).,05-.G/-8HIIJ/(K)(*0*0-LMN/(*:-.*(*5.>?@O '(D5C(+*(8+.05,*G-/06(PQRSTRUTVWXYZWZSQRQV[S-G�����\90/+.*3+05.D+:/-C+\39*+G(E��F�����4(\+::35,+05-.]_0-+.>?(a:/(**5-.bb]_cc@d '(<(*,/5\(-)/PZefUZVWXYZWZSQRQV[S*0/+0(D9+*+*58:3(8-<57,+05-.-G06(*0+.<+/<58:3(8(.0+05-.@g h9+::(+30-06(U[ifPQjPRkZQljiljQlXVSmQnZ[UZW-G>?4(:/-C(06+0-)/*(,)/(0/+.*3+05-.5**+G(46(.(C(/505*:3+,(<45065.+.9-::-.(.0,-.0(a0@o������pq����r��� �����s��r������������ ����t�u�������

Page 14: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ � !"#$%& '#(#)* +,-./01203456789 :;.+<=01>3?@>AB :C<D+<=03EF?5@A1G@F?HI +,-./012034JKG8L :MN.O<=F?5@A1E/012034JKGG@F?P :Q.R+<=F?5@A1S :TU.=<=01V :W<UOMN.O<=03EF?5@A1G@F?*X** +,-./012034Y6Z[338/012034567\/012034JKG]������ _������� �����a�� ������������ ����b�c�������

Page 15: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !"�#$% �"&%�$#'()*+,-././+01./20+-32-4/50+671-+8/+7892.:-+82;<+-.12;2;=99/*+>6=?./-=8/12;.@32-4.=;791;A.288:--1;B1;/*+.2:-8+=;7B+;+-=/+.:1/=?9+7=/=/50+.32--+0-+.+;/1;B/*+41;CDEF+;+-=/+4:/:=995-+8:-.1<+3:;8/12;91./+;+-.GHIJKL+=8*82--+.02;71;B/2/*+892.:-+./*=/M+-+B+;+-=/+70-+<12:.95EC1;=995@/-=;.9=/+/*+/209+<+9M+?.+-<+-91./+;+-ENOPQRSPTUVQWOVXYZ[\UQNUQ]UQ_RTV`YZ[\aaUQbcde+/YZ[\aa?+/*+CD427:9+2?/=1;+73-24YZ[\?582;8=/+;=/1;B/*+/50+=;73:;8/12;7+,;1/12;.f,g+77=/=/50+.LB+;+-=/+77=/=/50+.LB+;+-=/+73:;8/12;.L/209+<+9M+?.+-<+-3:;8/12;Eh������ij����k��� �����l��k������������ ����m�n�������

Page 16: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !�"!�"� #$��%& &'��$() *+,-+./0120340353657897:;30<;=> ?@,.A3BC,AD EF+,5GHI0;JKKKL EMNO,5PQH29Q2;JR ?@,.APQH2BC,AST58;JUST8Q2VW *+,-+.UST5060I4ST;5Q2X62X3YI8QY2X;=Z[\]_ abcded[fT ?@,.AQ2XBC,AghJi *+,1jk9l1:m229:3YP0=0KST1jk90KSTl1:m2290KST:3YP0Cn)o ?@,.A1jkBC,A)) ES)58;JUS)85:3YP09l1:m22;)> KKK)D @npUS)5060I4S);k=Z[qrebrca]e]stuvsuewca]eabcded[f)L ?@,.AkBC,A54mQj09l1:m22;J)R @OO+-,5x3YP0y254mQj0;;z)V YIX{H|}Q4mQj0 {~0PQH2j3030:3020IXmXYHIj202mlmXmXk:0PHI2X3jPXH3��m::QY0lXHm30PH3lK����������������� ��������������������� ��������������

Page 17: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ !�"!#$%&#"'($()�#&�* +,-.,/012314514647689:8;<41=<>? @A-/B4CD-BE FG,-6HIJ1<KLLLMNO9P?P FQRS-6TU;V:W3<KO @A-/B6TV1TXMYZ1[MNZ1[TU;V<CD-BN\69<KMN\9W3] LLL^ A_ MNO6171J5NO<[>abcdefgheijkfklgmhhnilofpijkfbq\ +,-2r[>1LNO2r[D_s @A-/B[CD-B6;4UT1<K*t +,-u2;v33>wxyz{y|wD_** ,},_-6~4UT1�36;4UT1<<�*? +,-TWN\>N\6�N\2r[>2r[�N\u2;v33>u2;v33�N\;4UT1>;4UT1�<D_*E +,-TU;V>�vX1MYZ1[MNZ1[TWN\D_*P �R.@�+,@6TU;V:��<����������������� ��������������������� ��������������

Page 18: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������� !"#$%&'$()*&+,$-./&0*+0&1&,-*%$(/$*+0&1/$231*2-$4(,2*/&*+,5*%&*+*+2.(22+)1$*(.$/6(/42(3/0$7)&2$-2$03/+*8&,&182+2+,&431*+7*+$/9$)./(5/&44+,51&,53&5$:;(63/*%$/'&1+-&*$(3/&../(&0%<9$%&'$+4.1$4$,*$-)(*%&*8.$7&,-7$=$0*0%$0>$/&,-(3/2$03/$*/&,21&*+(,./(-30+,5$?$03*&)1$2$4&,*+02+,@A<*%&*0&,6(/4.&/*(6&0$/*+B$-9$)2$/'$/:CDDEFGGHHHIJKIJLMILJINOGPQRSTUGVWXYZ[\]_������ a����b��� �����c��b������������ ����d�e�������

Page 19: Secure Compilation of a Multi-Tier Web Language (TLDI)

����������� ��������������������������� ������������������������������������������������������������ �!"#$%&'()*++,-./0)12345-6/7)8945-./934:);955+,)123<=>[email protected]@82BC+DBE2-.=)F3GHIJKLMNOPPQRSTUNVWXYZSXPMS[XRNS[\]_ NURa_NSGNM_[\HPXYNQUVNMIN_ NSPSXU[SQJbcPOXU/1d*0)0,[email protected]@/ghhi)()j-2k-./8)0lCD5B-/934m)n2-.A93)[email protected]@o2BCl2.l5-=/B.293@5-=934.-lB93@5-=)F3pHqINSVPMPSOP/ghhr)j)0-..93+/()m955-=2+/934s)1+2B=lC)t+,>9593@D9@-u+.,[email protected]@BC-o-?g)h)F3JJL]qvwxyKIN_ [SRNSXNXYPz{UXvIH]Z|Lqv}U_ NURa_NSJbcPOX~NMRPSXPQMNTM[__RSTUUXP_U�\[STa[TPU�[SQ[ \RO[XRNSU/,9@-=�������/d-o;+.</d;/�0�/ghhi)�*j)����������������� ��������������������� ��������������