Intel SGX 2013

42
!"#$%& ()*#+,-$ ./,-0 12#$"34)"35!"#$%& (.678 !"3#-/9#4)"3 ,"0 :-);-,<<4"; =)0$% !"#$% '()**$+ ,-.# /-*0#$1"234(5+ /-*0 6*"*$72$+ 8#"-29 :27#9+ ;*13.#9 <5#$=52>?*+ @1#. <#3#>#2$%#" A?$* BC+ BDEF

Transcript of Intel SGX 2013

Page 1: Intel SGX 2013

!"#$%&'()*#+,-$'./,-012#$"34)"35!"#$%&'(.678'!"3#-/9#4)"3',"0':-);-,<<4";=)0$%

!"#$%&'()**$+ ,-.#&/-*0#$1"234(5+&/-*0&6*"*$72$+&8#"-29&:27#9+&;*13.#9&<5#$=52>?*+&@1#.&<#3#>#2$%#"

A?$*&BC+&BDEF

Page 2: Intel SGX 2013

!"#$%&'()*%$(+",)!>?@A=BC!@>'!>'CD!('E@FG=1>C'!(':A@H!E1E'!>'F@>>1FC!@>'I!CD'!>C1J':A@EGFC(K'>@'J!F1>(18'16:A1(('@A'!=:J!1E8'LM'1(C@::1J'@A'@CD1AI!(18'C@'B>M'!>C1JJ1FCGBJ':A@:1ACM'A!.DC('!('.AB>C1E'LM'CD!('E@FG=1>CK'16F1:C'B(':A@H!E1E'!>'!>C1JN('C1A=('B>E'F@>E!C!@>('@?'(BJ1'?@A'(GFD':A@EGFC(8'!>C1J'B((G=1('>@'J!BL!J!CM'IDBC(@1H1A'B>E'!>C1J'E!(FJB!=('B>M'16:A1(('@A'!=:J!1E'IBAAB>CM8'A1JBC!>.'C@'(BJ1'B>EO@A'G(1'@?'!>C1J':A@EGFC('!>FJGE!>.'J!BL!J!CM'@A'IBAAB>C!1('A1JBC!>.'C@'?!C>1(('?@A'B':BAC!FGJBA':GA:@(18'=1AFDB>CBL!J!CM8'@A'!>?A!>.1=1>C'@?'B>M':BC1>C8'F@:MA!.DC'@A'@CD1A'!>C1JJ1FCGBJ':A@:1ACM'A!.DCK'

B'P=4334)"'F-4#49,%'BQQ%49,#4)"P'43',"R',QQ%49,#4)"'4"'+S49S'*,4%/-$')*'#S$'!"#$%':-)0/9#'9)/%0'-$3/%#8'04-$9#%R')-'4"04-$9#%R8'4"'Q$-3)",%'4"T/-R')-'0$,#SK'(D@GJE'M@G':GAFDB(1'@A'G(1'!>C1JN(':A@EGFC('?@A'B>M'(GFD'=!((!@>'FA!C!FBJ'B::J!FBC!@>8'M@G'(DBJJ'!>E1=>!?M'B>E'D@JE'!>C1J'B>E'!C('(GL(!E!BA!1(8'(GLF@>CABFC@A('B>E'B??!J!BC1(8'B>E'CD1'E!A1FC@A(8'@??!F1A(8'B>E'1=:J@M11('@?'1BFD8'DBA=J1(('B.B!>(C'BJJ'FJB!=('F@(C(8'EB=B.1(8'B>E'16:1>(1('B>E'A1B(@>BLJ1'BCC@A>1M(N'?11('BA!(!>.'@GC'@?8'E!A1FCJM'@A'!>E!A1FCJM8'B>M'FJB!='@?':A@EGFC'J!BL!J!CM8':1A(@>BJ'!>UGAM8'@A'E1BCD'BA!(!>.'!>'B>M'IBM'@GC'@?'(GFD'=!((!@>'FA!C!FBJ'B::J!FBC!@>8'ID1CD1A'@A'>@C'!>C1J'@A'!C('(GLF@>CABFC@A'IB('>1.J!.1>C'!>'CD1'E1(!.>8'=B>G?BFCGA18'@A'IBA>!>.'@?'CD1'!>C1J':A@EGFC'@A'B>M'@?'!C(':BAC(K'

!"#$%'<,R'<,V$'9S,";$3'#)'3Q$94*49,#4)"3',"0'Q-)0/9#'0$39-4Q#4)"3',#',"R'#4<$8'+4#S)/#'")#49$K'E$34;"$-3'</3#'")#'-$%R')"'#S$,W3$"9$')-'9S,-,9#$-43#493')*',"R'*$,#/-$3')-'4"3#-/9#4)"3'<,-V$0'P-$3$-X$0P')-'P/"0$*4"$0PK'!"#$%'-$3$-X$3'#S$3$'*)-'*/#/-$'0$*4"4#4)"',"0'3S,%%'S,X$'")'-$3Q)"34W4%4#R'+S,#3)$X$-'*)-'9)"*%49#3')-'4"9)<Q,#4W4%4#4$3',-434";'*-)<'*/#/-$'9S,";$3'#)'#S$<K'CS$'4"*)-<,#4)"'S$-$'43'3/WT$9#'#)'9S,";$'+4#S)/#'")#49$K'E)'")#'*4",%4Y$','0$34;"'+4#S'#S43'4"*)-<,#4)"K'

CS$'Q-)0/9#3'0$39-4W$0'4"'#S43'0)9/<$"#'<,R'9)"#,4"'0$34;"'0$*$9#3')-'$--)-3'V")+"',3'$--,#,'+S49S'<,R'9,/3$'#S$'Q-)0/9#'#)'0$X4,#$'*-)<'Q/W%43S$0'3Q$94*49,#4)"3K'F/--$"#'9S,-,9#$-4Y$0'$--,#,',-$',X,4%,W%$')"'-$Z/$3#K'

F)Q4$3')*'0)9/<$"#3'+S49S'S,X$',"')-0$-'"/<W$-',"0',-$'-$*$-$"9$0'4"'#S43'0)9/<$"#8')-')#S$-'!"#$%'%4#$-,#/-$8'<,R'W$')W#,4"$0'WR'9,%%4";'[\]^^\_`]\`ab_8')-';)'#)c S##QcOO+++K4"#$%K9)<O0$34;"O%4#$-,#/-$KS#<

>)'9)<Q/#$-'3R3#$<'9,"'Q-)X40$',W3)%/#$'3$9/-4#R'/"0$-',%%'9)"04#4)"3K'L/4%#\4"'3$9/-4#R'*$,#/-$3',X,4%,W%$')"'3$%$9#'!"#$%&'Q-)9$33)-3'<,R'-$Z/4-$',004#4)",%'3)*#+,-$8'S,-0+,-$8'3$-X49$3',"0O)-',"'!"#$-"$#'9)""$9#4)"K'A$3/%#3'<,R'X,-R'0$Q$"04";'/Q)"9)"*4;/-,#4)"K'F)"3/%#'R)/- 3R3#$<'<,"/*,9#/-$-'*)-'<)-$'0$#,4%3K

#S$'GK(K',"0O)-')#S$-'9)/"#-4$3K'@#S$-'",<$3',"0'W-,"03'<,R'W$'9%,4<$0',3'#S$'Q-)Q$-#R')*')#S$-3K'!"#$%&'9)<Q4%$-38',33)94,#$0'%4W-,-4$3',"0',33)94,#$0'0$X$%)Q<$"#'#))%3'<,R')-'<,R'")#')Q#4<4Y$'#)'#S$'3,<$'0$;-$$'*)-'")"\!"#$%'<49-)Q-)9$33)-3'*)-')Q#4<4Y,#4)"3'#S,#',-$'")#'/"4Z/$'#)'!"#$%'<49-)Q-)9$33)-3K CS$3$')Q#4<4Y,#4)"3'4"9%/0$'!"#$%&'(#-$,<4";'(!=E'12#$"34)"3'b'5!"#$%&'((1b78'!"#$%&'(#-$,<4";'(!=E'12#$"34)"3'd'5!"#$%&'((1d78',"0'(/QQ%$<$"#,%'(#-$,<4";'(!=E'12#$"34)"3'd'5!"#$%&'(((1d7'4"3#-/9#4)"'3$#3',"0')#S$-')Q#4<4Y,#4)"3K !"#$%'0)$3'")#';/,-,"#$$'#S$',X,4%,W4%4#R8'*/"9#4)",%4#R8')-'$**$9#4X$"$33')*',"R')Q#4<4Y,#4)"')"'<49-)Q-)9$33)-3'")#'<,"/*,9#/-$0'WR'!"#$%K =49-)Q-)9$33)-\0$Q$"0$"#')Q#4<4Y,#4)"3'4"'#S43'Q-)0/9#',-$'4"#$"0$0'*)-'/3$'+4#S'!"#$%'<49-)Q-)9$33)-3KF)QR-4;S#'e'b^[d'!"#$%&'F)-Q)-,#4)"

b

Page 3: Intel SGX 2013

-./%(0"

:-)W%$<'(#,#$<$"#B##,9V'(/-*,9$',"0'@X$-X4$+:-);-,<<4";'$"X4-)"<$"#(R3#$<'Q-);-,<<4";'X4$+E,R'4"'#S$'%4*$')*',"'$"9%,X$

(.6'Q-)#$9#$0'<$<)-R'Q,;4";1X49#4)"3J),03

@**'FS4Q'Q-)#$9#4)"3(/<<,-R

d

Page 4: Intel SGX 2013

12+3./"&'"4(*")&5,.)/62,/789

G"434-*>*1&821*

/HH

I

J)

`

Page 5: Intel SGX 2013

/HH

12+3./"&'"4(*")&5,.)/62,/789

G"434-*>*1&821*

/HH

I

J)

I I

`

Page 6: Intel SGX 2013

/HH'#-4(42?9/HH

12+3./"&'"4(*")&5,.)/62,/789

G"434-*>*1&821*

/HH

I

J)

I I

#&K#-4(42?9&#HH&*0H-24L9&#&M-#N&L2&>#4$&M?--&H"434-*>*9&#$1&L5*$&L#KH*"9&N4L5&L5*&J<&2"&2L5*"&#HH9

:33)&02/&3,2/"*/";&<,2+&3,(4(%"#";&*2;"&$//$*=)

,##,9V

6#1821*

`

Page 7: Intel SGX 2013

G"20. G"20. G"20.

O#"1N#"*

;''

J<

/HH /HH /HH

/LL#(%&9?"M#(*&L21#.

A$0/9$0',##,9V'3/-*,9$'+4#S'!"#$%&'(.6

B##,9V'(/-*,9$

a

Page 8: Intel SGX 2013

/HH-4(#L42$&>#4$9&#=4-4L.&L2&1*M*$1&4L9&2N$&9*("*L9<K#--*9L&#LL#(%&9?"M#(*&P/HH&Q&H"2(*992"R'#-N#"*&L5#L&9?=3*"L9&J<S;''+&6,J<+&T"43*"9&&*L(U&(#$$2L&9L*#-&#HH&9*("*L9

G"20. G"20. G"20.

O#"1N#"*

;''

J<

/HH /HH /HH

/LL#(%&9?"M#(*&N4L5&,$L*-V&<WI

II

A$0/9$0',##,9V'3/-*,9$'+4#S'!"#$%&'(.6

B##,9V'(/-*,9$

]

Page 9: Intel SGX 2013

/HH-4(#L42$&>#4$9&#=4-4L.&L2&1*M*$1&4L9&2N$&9*("*L9<K#--*9L&#LL#(%&9?"M#(*&P/HH&Q&H"2(*992"R'#-N#"*&L5#L&9?=3*"L9&J<S;''+&6,J<+&T"43*"9&&*L(U&(#$$2L&9L*#-&#HH&9*("*L9

!#K4-4#"&1*3*-2HK*$LS1*=?><4$>-*&#HH-4(#L42$&*$34"2$K*$L6?4-1&2$&*049L4$>&*(29.9L*K&*0H*"L49*

G"20. G"20. G"20.

O#"1N#"*

;''

J<

/HH /HH /HH

II

A$0/9$0',##,9V'3/-*,9$'+4#S'!"#$%&'(.6

B##,9V'(/-*,9$

f

/LL#(%&9?"M#(*&N4L5&,$L*-V&<WI

Page 10: Intel SGX 2013

G"20. G"20. G"20.

O#"1N#"*

;''

J<

/HH /HH /HH

II

A$0/9$0',##,9V'3/-*,9$'+4#S'!"#$%&'(.6

B##,9V'(/-*,9$

[^

/HH-4(#L42$&>#4$9&#=4-4L.&L2&1*M*$1&4L9&2N$&9*("*L9<K#--*9L&#LL#(%&9?"M#(*&P/HH&Q&H"2(*992"R'#-N#"*&L5#L&9?=3*"L9&J<S;''+&6,J<+&T"43*"9&&*L(U&(#$$2L&9L*#-&#HH&9*("*L9

!#K4-4#"&1*3*-2HK*$LS1*=?><4$>-*&#HH-4(#L42$&*$34"2$K*$L6?4-1&2$&*049L4$>&*(29.9L*K&*0H*"L49*

!#K4-4#"&1*H-2.K*$L&K21*-X"?9L*1&#HH-4(#L42$9&(#$&=*&149L"4=?L*1&#$1&?H1#L*1&=.&#HH&1*3*-2H*"9&#9&$**1*1

!"#$#%$&'(&")*+,-'.+,/+0'1#+0(,*&#1'&02+*301&0,

/LL#(%&9?"M#(*&N4L5&,$L*-V&<WI

Page 11: Intel SGX 2013

1"9%,X$1"9%,X$5EJJ7

>?@&A,2#,$++(0#&B04(,20+"0/

4*3,&",&5'&6&"),+30'&02+*301&0,'&1%&55&5'+0'#'7*3"&((

BQQ'F)0$

BQQ'E,#,

@(1"9%,X$'F)0$1"9%,X$'E,#,

I4#S'4#3')+"'9)0$',"0'0,#,

G3$-':-)9$33

:-)X40$'F)"*40$"#4,%4#R

:-)X40$'4"#$;-4#R

I4#S'9)"#-)%%$0'$"#-R'Q)4"#3

I4#S'*/%%',99$33'#)',QQ'<$<)-R

CF('5g"7 (/QQ)-#4";'</%#4Q%$'#S-$,03

Y$(-#3*

h

Page 12: Intel SGX 2013

G-#LM2"K

>?@&C(#7D%"4"%&CEF>E&A(*/.,"

1:F=1:F

(.6=)0/%$

(.6'G3$-A/"#4<$

1"9%,X$

!"3#-/9#4)"31FA1BC11BEE116C1>E1!>!C1LJ@Fi

(.6'G3$-A/"#4<$

1"9%,X$

!"#$%&'&$(')*+'*),!&)"#&),-*.'/0,1223/+&'/4.5($%&'&$6')*+'*),

BQQ%49,#4)"1"X4-)"<$"#

:-4X4%$;$01"X4-)"<$"#

12Q)3$0D,-0+,-$

!"3#-/9#4)"3116!C1.1Ci1M1A1:@AC11>C1A1A1(G=1

:,;$'#,W%$3

1CABFi1IL1JE1:B1A1=@H1

a

Page 13: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.!"#$%&'()$%*#%+,%-,()./$

3%"'*

4

Page 14: Intel SGX 2013

!"#$%&'()**# +,&-.

5675)85(97&:;.<

/012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

!"#$%&'()$%*#%+,%-,()./$3%"'*

5/6>(

A:@&'"*

A:@&'"*

A:@&'"*

4

A:@&'"*

Page 15: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

B?&*(6?*.CD&$&

!"#$%&'()$%*#%+,%-,()./$3%"'*

5675)85(97&:;.<5/6>(

A:@&'"*

A:@&'"*

A:@&'"*

4

+56+!&'"*E+56+

>75F6B)!5

Page 16: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

5)DD(96?,1(/&;.<

!"#$%&'()$%*#%+,%-,()./$3%"'*

/'&":$.G$(6?*.CD&$&

5675)85(97&:;.<5/6>(

A:@&'"*

A:@&'"*

A:@&'"*

4

+56+!&'"*E+56+

>75F6B)!5

Page 17: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

H,*&$.(/85

5)DD(96?,1(/&;.<

!"#$%&'()$%*#%+,%-,()./$3%"'*

/'&":$.G$(6?*.CD&$&

6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<

5/6>(

!&'"*EADE(B)

A:@&'"*

A:@&'"*

4

+56+!&'"*E+56+

>75F6B)!5

Page 18: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

5)DD(96?,1(/&;.<

!"#$%&'()$%*#%+,%-,()./$3%"'*

6?*.CD&$&6?*.CD&$&

/'&":$.G$6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<

5/6>(

!&'"*EADE(B)

A:@&'"*

!&'"*EADE(B)

4

+56+!&'"*E+56+

>75F6B)!5

/'&":$.G$(6?*.CD&$&

Page 19: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

!"#$%&'()$%*#%+,%-,()./$3%"'*

6?*.CD&$&6?*.CD&$&

/'&":$.G$6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<55I85FD

5/6>(

!&'"*EADE(B)

A:@&'"*

!&'"*EADE(B)

4

+56+!&'"*E+56+

>75F6B)!5

Page 20: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

!"#$%&'()$%*#%+,%-,()./$3%"'*

5AFA8

6?*.CD&$&6?*.CD&$&6?*.CD&$&6?*.CD&$&

/'&":$.G$6?*.CD&$&/'&":$.G$6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<55I85FD

5/6>(

!&'"*EADE(B)

A:@&'"*

!&'"*EADE(B)

4

+56+!&'"*E+56+

>75F6B)!5

Page 21: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

!"#$%&'()$%*#%+,%-,()./$3%"'*

5AFA8

6?*.CD&$&6?*.CD&$&6?*.CD&$&6?*.CD&$&

/'&":$.G$6?*.CD&$&

/'&":$.G$6?*.CD&$&/'&":$.G$6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<55I85FD

5/6>(

!&'"*EADE(B)

A:@&'"*

!&'"*EADE(B)

4

+56+!&'"*E+56+

>75F6B)!5

Page 22: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

!"#$%&'()$%*#%+,%-,()./$3%"'*

6?*.CD&$&6?*.CD&$&6?*.CD&$&6?*.CD&$&

55F857 /'&":$.G$6?*.CD&$&

/'&":$.G$6?*.CD&$&/'&":$.G$6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<

5AFA855I85FD

5/6>(

!&'"*EADE(B)

A:@&'"*

!&'"*EADE(B)

4

+56+!&'"*E+56+

>75F6B)!5>75F6B)!5

Page 23: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

!"#$%&'()$%*#%+,%-,()./$3%"'*

6?*.CD&$&6?*.CD&$&6?*.CD&$&6?*.CD&$&

/'&":$.G$6?*.CD&$&

/'&":$.G$6?*.CD&$&/'&":$.G$6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<

5AFA855F857

55I85FD

5/6>(

!&'"*EADE(B)

A:@&'"*

!&'"*EADE(B)

4

+56+!&'"*E+56+

>75F6B)!5>75F6B)!5

Page 24: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

!"#$%&'()$%*#%+,%-,()./$3%"'*

6?*.CD&$&6?*.CD&$&6?*.CD&$&6?*.CD&$&

/'&":$.G$6?*.CD&$&55IA8

/'&":$.G$6?*.CD&$&/'&":$.G$6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<

5AFA855F857

55I85FD

5/6>(

!&'"*EADE(B)

A:@&'"*

!&'"*EADE(B)

4

+56+!&'"*E+56+

>75F6B)!5>75F6B)!5

Page 25: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

!"#$%&'()$%*#%+,%-,()./$3%"'*

6?*.CD&$&6?*.CD&$&6?*.CD&$&6?*.CD&$&

/'&":$.G$6?*.CD&$&

/'&":$.G$6?*.CD&$&/'&":$.G$6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<

5AFA855F85755IA8

55I85FD

5/6>(

!&'"*EADE(B)

A:@&'"*

!&'"*EADE(B)

4

+56+!&'"*E+56+

>75F6B)!5>75F6B)!5

Page 26: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

/'&":$.G$6?*.CD&$&

!"#$%&'()$%*#%+,%-,()./$3%"'*

6?*.CD&$&6?*.CD&$&6?*.CD&$&6?*.CD&$&

/'&":$.G$6?*.CD&$&

/'&":$.G$6?*.CD&$&/'&":$.G$6?*.CD&$&

5675)85(97&:;.<5)DD(96?,1(/&;.<

5AFA855F85755IA8

55I85FD

5/6>(

!&'"*EADE(B)

A:@&'"*

!&'"*EADE(B)

4

+56+!&'"*E+56+

>75F6B)!5>75F6B)!5

Page 27: Intel SGX 2013

!"#$%&'()**# +,&-. /012"-&'()**# +,&-.

+12$.=(>.=?#1

5:-'&@.(/&;.(6&-0.

!"#$%&'()$%*#%+,%-,()./$3%"'*

5675)85(97&:;.<5)DD(96?,1(/&;.<

5AFA855F85755IA8575>J!5

55I85FD

5/6>(

A:@&'"*

A:@&'"*

A:@&'"*

4

A:@&'"*

>75F6B)!5

Page 28: Intel SGX 2013

>?@&A$#(0#&G0/,2;.*/(20A$Z/4-$<$"#cA$<)X$',"'1:F'Q,;$',"0'Q%,9$'4"#)'/"Q-)#$9#$0'<$<)-RK'J,#$-'-$3#)-$'4#K:,;$'</3#'<,4"#,4"'3,<$'3$9/-4#R'Q-)Q$-#4$3'59)"*40$"#4,%4#R8',"#4\-$Q%,R8',"0'4"#$;-4#R7'+S$"'-$3#)-$0

>$+'!"3#-/9#4)"3c1ILc'1X49#'1:F'Q,;$'#)'<,4"'<$<)-R'+4#S'9-RQ#);-,QS49'Q-)#$9#4)"31JELO1JEGc'J),0'Q,;$'*-)<'<,4"'<$<)-R'#)'1:F'+4#S'9-RQ#);-,QS49'Q-)#$9#4)"31:Bc'B%%)9,#$',"'1:F'Q,;$'*)-'S)%04";'X$-34)"31LJ@Fic'E$9%,-$',"'1:F'Q,;$'-$,0R'*)-'$X49#4)"1CABFic'1"3/-$',00-$33'#-,"3%,#4)"3'S,X$'W$$"'9%$,-$0

bd

Page 29: Intel SGX 2013

A$#"D2./&BH$+3%"

SECS

EnclavePage

1"9%,X$:,;$

EnclavePage

EWB

BUILD

EPC System Memory

b`

VA Page

Page 30: Intel SGX 2013

A$#"D2./&BH$+3%"

SECS

EnclavePage

1"9%,X$:,;$

EnclavePage

EWB

B0*,83/";A$#"

1IL':,-,<$#$-3c

:)4"#$-'#)'1:F'Q,;$'#S,#'"$$03'#)'W$'Q,;$0')/#

:)4"#$-'#)'$<Q#R'X$-34)"'3%)#

:)4"#$-3')/#340$'1:F'%)9,#4)"

BUILD

EPC System Memory

A1I'

b`

Page 31: Intel SGX 2013

A$#"D2./&BH$+3%"

SECS

EnclavePage

EnclavePage

EWB

VER

B0*,83/";A$#"

1IL':,-,<$#$-3c

:)4"#$-'#)'1:F'Q,;$'#S,#'"$$03'#)'W$'Q,;$0')/#

:)4"#$-'#)'$<Q#R'X$-34)"'3%)#

:)4"#$-3')/#340$'1:F'%)9,#4)"

1IL'@Q$-,#4)"

A$<)X$'Q,;$'*-)<'#S$'1:F

:)Q/%,#$'X$-34)"'3%)#

I-4#$'$"9-RQ#$0'X$-34)"'#)')/#340$

I-4#$'<$#,\0,#,8':F=E

BUILD

EPC System Memory

A1I'

b`

Page 32: Intel SGX 2013

A$#"D2./&BH$+3%"

SECS

EnclavePage

EnclavePage

EWB

VER

B0*,83/";A$#"

1IL':,-,<$#$-3c

:)4"#$-'#)'1:F'Q,;$'#S,#'"$$03'#)'W$'Q,;$0')/#

:)4"#$-'#)'$<Q#R'X$-34)"'3%)#

:)4"#$-3')/#340$'1:F'%)9,#4)"

1IL'@Q$-,#4)"

A$<)X$'Q,;$'*-)<'#S$'1:F

:)Q/%,#$'X$-34)"'3%)#

I-4#$'$"9-RQ#$0'X$-34)"'#)')/#340$

I-4#$'<$#,\0,#,8':F=E

B%%'Q,;$38'4"9%/04";'(1F(',"0'H$-34)"'B--,R'9,"'W$'Q,;$0')/#

BUILD

EPC System Memory

A1I'

b`

Page 33: Intel SGX 2013

A$#"D(0&BH$+3%"

SECS

EnclavePage

1"9%,X$:,;$

ELD

VER

B0*,83/";A$#"

BUILD

EPC System Memory

I'

b_

?-$$'1"9%,X$:,;$

Page 34: Intel SGX 2013

A$#"D(0&BH$+3%"

1JE':,-,<$#$-3c

1"9-RQ#$0'Q,;$

?-$$'1:F'Q,;$

(1F('5*)-',"'$"9%,X$'Q,;$7

:)Q/%,#$0'X$-34)"'3%)#

SECS

EnclavePage

1"9%,X$:,;$

ELD

VER

B0*,83/";A$#"

BUILD

EPC System Memory

I'

b_

?-$$'1"9%,X$:,;$

Page 35: Intel SGX 2013

A$#"D(0&BH$+3%"

1JE':,-,<$#$-3c

1"9-RQ#$0'Q,;$

?-$$'1:F'Q,;$

(1F('5*)-',"'$"9%,X$'Q,;$7

:)Q/%,#$0'X$-34)"'3%)#

1JE'@Q$-,#4)"

H$-4*R',"0'0$9-RQ#'#S$'Q,;$'/34";'X$-34)"

:)Q/%,#$'#S$'1:F'3%)#

=,V$'W,9V\Q)4"#$-'9)""$9#4)"'54*',QQ%49,W%$7

?-$$\/Q'X$-34)"'3%)#

SECS

EnclavePage

1"9%,X$:,;$

1"9%,X$:,;$

ELD

B0*,83/";A$#"

BUILD

EPC System Memory

I'

b_

VA Page

?-$$'1"9%,X$:,;$

Page 36: Intel SGX 2013

A,2/"*/(20&4)J&I"+2,8&>0223(0#&://$*=)

82"*9

8#(5*

<.9L*K&'*K2".

8G@&G#(%#>*

bh

Page 37: Intel SGX 2013

A,2/"*/(20&4)J&I"+2,8&>0223(0#&://$*=)

EU <*(?"4L.&H*"4K*L*"&49&L5*&8G@&H#(%#>*&=2?$1#".

82"*9

8#(5*

<.9L*K&'*K2".

8G@&G#(%#>*

bh

Page 38: Intel SGX 2013

A,2/"*/(20&4)J&I"+2,8&>0223(0#&://$*=)

EU <*(?"4L.&H*"4K*L*"&49&L5*&8G@&H#(%#>*&=2?$1#".

BU T#L#&#$1&(21*&?$*$(".HL*1&4$941*&8G@&H#(%#>*82"*9

8#(5*

<.9L*K&'*K2".

8G@&G#(%#>*

bh

Page 39: Intel SGX 2013

A,2/"*/(20&4)J&I"+2,8&>0223(0#&://$*=)

EU <*(?"4L.&H*"4K*L*"&49&L5*&8G@&H#(%#>*&=2?$1#".

BU T#L#&#$1&(21*&?$*$(".HL*1&4$941*&8G@&H#(%#>*

FU T#L#&#$1&(21*&2?L941*&8G@&H#(%#>*&49&*$(".HL*1&#$1S2"&4$L*>"4L.&(5*(%*1

CU Y0L*"$#-&K*K2".&"*#19&#$1&=?9&9$22H9&9**&2$-.&*$(".HL*1&1#L#

82"*9

A(2F-%9ZF[N*?D(N*\H24ZZ][3]DN*8#(5*

<.9L*K&'*K2".

/'YI^&FBFC_EFC`]C_Ba]aC

8G@&G#(%#>*

<$22H

<$22H

bh

Page 40: Intel SGX 2013

>?@&5"*70(*$%&>.++$,8:-)X40$3',"R',QQ%49,#4)"'#S$',W4%4#R'#)'V$$Q','3$9-$#:-)X40$'9,Q,W4%4#R'/34";'"$+'Q-)9$33)-'4"3#-/9#4)"3BQQ%49,#4)"'9,"'3/QQ)-#'</%#4Q%$'$"9%,X$3

:-)X40$3'4"#$;-4#R',"0'9)"*40$"#4,%4#RA$343#3'S,-0+,-$',##,9V3:-$X$"#'3)*#+,-$',99$338'4"9%/04";'Q-4X4%$;$0'3)*#+,-$',"0'(==

BQQ%49,#4)"3'-/"'+4#S4"'@('$"X4-)"<$"#J)+'%$,-"4";'9/-X$'*)-',QQ%49,#4)"'0$X$%)Q$-3@Q$"'#)',%%'0$X$%)Q$-3

A$3)/-9$3'<,",;$0'WR'(IDI'9)<Q)"$"#3',-$'3/QQ)-#$0'4"','0-4X$-')-'@(

ba

Page 41: Intel SGX 2013

CS,"V'M)/

b]

Page 42: Intel SGX 2013