Countering Trusting Trust through Diverse Double-Compiling
An Air Force evaluation of Multics, and Ken Thompson's famous Turing award lecture "Reflections on Trusting Trust," showed that compilers can be subverted to insert malicious Trojan horses into critical software, including themselves. If this attack …
Authors: David A. Wheeler
+1*0".&*$.1/0&*$.1/00%.+1$%&2"./"+1("+),&(&*$
5J=8 .<99@9F
7<=2=>=./8;./.7<.7*5B<.<
-@1..5.;2-*8;0
/0. 0
7 2; 8;,. .?*5>*=287 8/ >5=2,< *7- .7
%1869<87E</*68><%>;270*@*;-5.,=>;.C#./5.,=287<
87 %;><=270 %;><=D <18@.- =1*= ,86925.;< ,*7 +.
<>+?.;=.- =8 27<.;= 6*52,28>< %;83*7 18;<.< 27=8
,;2=2,*5 <8/=@*;. 27,5>-270 =1.6<.5?.< / =12< *==*,4
08.< >7-.=.,=.- .?.7 ,8695.=. *7*5B<2< 8/ * ;,. ,8-. @255 78= /27- =1. 6*52,28>< ,8-. =1*= 2<
;>77270 *7- 6.=18-< /8; -.=.,=270 =12< 9*;=2,>5*;
*==*,4 *;. 78= @2-.5B 478@7 %12< 9*9.; -.<,;2+.< *
9;*,=2,*5 =.,172:>. =.;6.- -2?.;<. -8>+5.,86925270
=1*= -.=.,=< =12< *==*,4 *7- <86. ,86925.;
-./.,=< *< @.55
$2695B ;.,86925. =1. <8>;,. ,8-.
=@2,. 87,. @2=1 * <.,87- =;><=.- ,86925.; *7-
*0*27 ><270 =1. ;.<>5= 8/ =1. /2;<= ,86925*=287 / =1.
;.<>5= 2< +2=/8;+2= 2-.7=2,*5 @2=1 =1. >7=;><=.- +27*;B
=1.7 =1. <8>;,. ,8-. *,,>;*=.5B ;.9;.<.7=< =1. +27*;B
%12< =.,172:>. 1*< +..7 6.7=287.- 27/8;6*55B +>= 2=<
2<<>.< *7- ;*62/2,*=287< 1*?. 78= +..7 2-.7=2/2.- 8;
-2<,><<.- 27 * 9..;;.?2.@.- @8;4 78; 1*< * 9>+52,
-.687<=;*=287 +..7 6*-. %12< 9*9.; -.<,;2+.< =1.
=.,172:>. 3><=2/2.< 2= -.<,;2+.< 18@ =8 8?.;,86.
9;*,=2,*5,1*55.70.<*7--.687<=;*=.<2=
*0.+!1 0&+*
$5BMDFC8I7HG97IF=HM9J5@I5H=CBG9L5A=B9GCIF79
7C89 IB89F H<9 5GGIADH=CB H<5H H<9 GCIF79 7C89
577IF5H9@M F9DF9G9BHG H<9 DFC8I7H 69=B; 9L5A=B98
%5PJ9 89J9@CD9FG DF9GIA9 H<5H H<=G 75B 69 5GGIF98
G=AD@M 6M F97CAD=@=B; H<9 GCIF79 7C89 HC G99 =: H<9
G5A96=B5FMF9GI@HG
,B:CFHIB5H9@M =: 5B 5HH57?9F 75B AC8=:M H<9
6=B5FM :=@9 C: H<9 7CAD=@9F H<=G =G =BGI::=7=9BH B
5HH57?9F K97H 5 +FC>5B 5B 5B
IGH=:M
H<5H H<9 GCIF79 7C89 69=B; 9L5A=B98 577IF5H9@M
F9DF9G9BHG H<9 :=@9G 69=B; 9L97IH98SM9H H<=G 5HH57?
GI6J9FHG H<5H J9FM 7@5=A
BH9FB9H *97IF=HM *MGH9AWG
5J=8 $5MBCF 5F;I9G H<5H H<9 F=G? C: H<9G9 ?=B8G C:
5HH57?G =G =B7F95G=B; 2323 "5F;9F 5B8 *7<9@@ BCH98
H<=G K5G GH=@@ 5 DFC6@9A =B
23 5B8 GCA9
H97IGH=:M=B;
=HG
9::97H=J9B9GG
CF
8=G7IGG=B; =HG F5A=:=75H=CBG B 588=H=CB H<9F9 =G BC
DI6@=7 9J=89B79 H<5H <5G 699B HF=98 CF 5 89H5=@98
89G7F=DH=CB C: IGH=:=75H=CB :CF =HG 9::97H=J9B9GG
+<9 B9LH G97H=CBG
8=G7IGG 5B
5BIGH 5 8=::9F9BH J9FG=CB 9 8C9G BCH9 H<9 J5@I9 C:
F97CAD=@=B; T9J9FMH<=B;U HC 7<97? =H 23 B89FGCB
BCH9G H<5H 7FCGG7CAD=@5H=CB 8C9G BCH <9@D =: H<9 5HH57?
=G =B H<9 7CAD=@9F 23 $C5B
97H7C89
5=;CBWG TCBGHF5=B98 )5B8CA +9GH=B;U 89H97HG
7CAD=@9F
89:97HG
6M
7F95H=B;
A5BM
F5B8CA
H9GH
DFC;F5AG 7CAD=@=B; H<9A K=H< 5 7CAD=@9F IB89F H9GH
5B8 5 F9:9F9B79 7CAD=@9F 5B8 89H97H=B; =: FIBB=B;
H<9A DFC8I79G 8=::9F9BH F9GI@HG 2
3 +<=G =G 9LHF9A9@M
IB@=?9@MHC:=B8H<9+FC>5B5B
97HG G=B79
957< 7CAD=@9F H<9M 5HH57? =B=H=5@@M CF HC 588 B9K
HF=;;9FG 5B8 D5M@C58G =B7F95G9G H<9 F=G? C: 8=G7CJ9FM
CK9J9F G=B79 H<9G9 5HH57?G 75B 5@@CK 5B 5HH57?9F HC
899D@M D9B9HF5H9 GMGH9AG ;9B9F5H98 K=H< H<9 7CAD=@9F
A5@=7=CIG 7CAD=@9FG A5?9 =H 95G=9F :CF 5B 5HH57?9F HC
F99BH9F
5
DF9J=CIG@M
D9B9HF5H98
89J9@CDA9BH
9BJ=FCBA9BH HC F9:F9G< 5 6=B5FM K=H< B9K HF=;;9FG 5B8
D5M@C58G +5B
IGH=:M H<=G H97+5.
,86925.
<
CAD5F95BF9;9B9F5H9
$.5/;.0.7.;*=.
7<
DFC6@9AG IB@9GG < K5G 89G=;B98 HC 69 DCFH56@9 BM
89:97H =B + 75B 5@GC 75IG9 DFC6@9AG H5B 5B 5B 5B
5J57 7CAD=@9F 9 5@GC GH5H98 H<5H <9 :9@H H<5H
H<=G K5G 5 6I; BCH=B; H<5H H<=G 69<5J=CF A589 DCFH
J5@=85H=CB9LHF9A9@M8=::=7I@H23
H A5M 69 8=::=7I@H HC 7CAD=@9 < IG=B; 9L=GH=B;
HFIGH98 7CAD=@9FG +<5B?:I@@M H<9F9 5F9 A5BM DCGG=6@9
GC@IH=CBG =: < 75BBCH 69 7CAD=@98 6M 5 ;=J9B HFIGH98
7CAD=@9F B 9L=GH=B; HFIGH98 7CAD=@9F 7CI@8 69
AC8=:=98 9 ; HC 588 9LH9BG=CBG GC =H 75B 7CAD=@9 <
BCH<9F 5@H9FB5H=J9 =G HC 7F95H9 5 HFIGH98 DF9DFC79GG
GH9D H<5H =G 5DD@=98 HC < DCGG=6@M 8CB9 6M <5B8 5G 5
F9GI@H + KCI@8 69 89:=B98 5G 69=B; H<9 DF9DFC79GG GH9D
D@IG H<9 HFIGH98 7CAD=@9F +FIGH98 7CAD=@9F + 7CI@8 69
7F95H98 6M IG=B; 5B 9L=GH=B; HFIGH98 7CAD=@9F 6IH CB9
H<5H 75BBCH 7CAD=@9 < 8=F97H@M HC 7CAD=@9 5BCH<9F
9L=GH=B; HFIGH98 7CAD=@9F H<5H 75B 7CAD=@9 < = 9 H<9
:=FGH HFIGH98 7CAD=@9F =G IG98 HC 6CCHGHF5D 5BCH<9F
7CAD=@9F H =G DCGG=6@9 HC KF=H9 5 B9K HFIGH98 7CAD=@9F
:FCA G7F5H7< G=B79 D9F:CFA5B79 =G =FF9@9J5BH 5B8 =H
CB@M B998G HC 69 56@9 HC 7CAD=@9 CB9 DFC;F5A H<=G
A5M BCH 69 8=::=7I@H B C@8 J9FG=CB C: 7CI@8 69
IG98 5G + 6IH H<5H =G :5F @9GG 8=J9FG9 GC H<9 F9GI@HG 5F9
:5F@9GG7CBJ=B7=B;5B8F=G?GTDCDIDU5HH57?G
TDCDIDU 5HH57? 5G 89:=B98 =B H<=G D5D9F =G
K<9F9 5B 5HH57?9F =B7@I89G 5 G9@:D9FD9HI5H=B; 5HH57? =B
CB@M GCA9 J9FG=CBG C: H<9 GCIF79 7C89 K<9F9 H<9
5HH57? TDCDG IDU K=H< H<9 =895 H<5H 89:9B89FG A5M BCH
9L5A=B9 H<9 GCIF79 7C89 C: H97H 69;5B 5G H<9
&6:IG75H98 +=BM CAD=@9F &+ 5 J9FM GA5@@
7CAD=@9F 9@@5F8 KFCH9 HC
K=B H<9 BH9FB5H=CB5@
&6:IG75H98 C89 CBH9GH & =B
9
H<9B 9LD5B898 H<=G GA5@@ 7CAD=@9F GC H<5H =H BCK
GIDDCFHG 5@@ C: %* ACGH C: H<9 B9K9F *&
GH5B85F8 5B8 A5BM %, 9LH9BG=CBG =B7@I8=B;
=B@=B9 5GG9A6@M
+<9 7CAD=@9F H77 5DD95F98 HC A99H
H<9 F9EI=F9A9BHG ;=J9B 56CJ9
B 588=H=CB H77 <58
699B IG98 HC 7F95H9 TH776CCHU 5 #=BIL 8=GHF=6IH=CB H<5H
:=FGH 6CCH98 H<9 7CAD=@9F 5B8 H<9B F97CAD=@98 H<9
9BH=F9?9FB9@5GD5FHC:=HG6CCHDFC79GG +<=G75D56=@=HM
HC 7CAD=@9 5@ACGH 5@@ 7C89 5H 6CCH H=A9 7CI@8 69 J9FM
IG9:I@ :CF :IHIF9 F9@5H98 KCF? 5B8 GI;;9GH98 H<5H H<9
7CAD=@9FK5GF9@5H=J9@M89:97H:F99
+<9
:C@@CK=B;
G97H=CBG
89G7F=69
H<9
H9GH
7CB:=;IF5H=CB H<9 DFC79GG DFC6@9AG K=H< 75GH=B;
6=H J5@I9G 5B8 @CB; 8CI6@9 7CBGH5BHG 5B8 :=B5@
F9GI@HG
"/0 +*#&$1.0&+*
@@ H9GHG F5B CB 5B L GMGH9A FIBB=B; )98 5H
98CF5 CF9 +<=G =B7@I898 #=BIL ?9FB9@ J9FG=CB
4 5B8 ;77 J9FG=CB
:7
;77
K5G 6CH< H<9 6CCHGHF5D 7CAD=@9F 5B8 H<9 HFIGH98
7CAD=@9F :CF H<=G H9GH H77 K5G H<9 G=AI@5H98 DCH9BH=5@@M
A5@=7=CIG7CAD=@9F
=FGH 5 HF58=H=CB5@ 7<5=B C: F97CAD=@5H=CBG K5G
D9F:CFA98 IG=B; H77 J9FG=CBG
5B8
:H9F 6CCHGHF5DD=B; 5 7CAD=@9F KCI@8 69
ID85H98 5B8
IG98
HC
7CAD=@9 =HG9@:
+<9=F
;N=D
7CADF9GG98 H5F :=@9G <5J9 H<9 :C@@CK=B; * J5@I9G
DFCJ=898GCCH<9FG75BF9D95HH<=G9LD9F=A9BH
G =G IGI5@ 5BM GI7< G9EI9B79 AIGH GH5FH K=H<
GCA9 GCFH C: 6CCHGHF5D C: H<9 7CAD=@9F ;77 K5G IG98 HC
6CCHGHF5D H77
75IG=B; 5 A=BCF 7<5@@9B;9 ;77
KCI@8 BCH 7CAD=@9 H77
8=F97H@M 6975IG9
;77 58898 588=H=CB5@ 7<97?G BCH DF9G9BH =B C@89F
J9FG=CBG C: ;77 B H77
GCA9 :IB7H=CBG 5F9
897@5F98@=?9H<=GIG=B;5;779LH9BG=CBHC
*$
$)#%(&*$
%
#(
$'(
((& )(&%&"
6IH H<9 89:=B=H=CBG C: H+5.,86925.
H77
CAD5F9
7IB?U 6MH9G 9B8 ID 89D9B8=B;
CB H<9 IB89F@M=B; 9BJ=FCBA9BH 75IG=B; J5F=5H=CBG =B
H<9 CIHDIH 23
B BCFA5@ CD9F5H=CB H<9G9 6MH9G 5F9
=;BCF985B8H5=2,< $.,>;2=B
?*5>*=287 '>57.;*+252=B 7*5B<2< *+) -C@
( @97HFCB=7G *MGH9AG =J=G=CB 5BG7CA $ !IB9
DD
2
3
+72,*=287< 8/ =1. -C@
%C DF DD
9 <,2,;B9= DF
A
8>;7*5
*95HH@9
.
!5BI5FM
CIFB5@ 7CA
5FH=7@9
23 "5F;9F '5I@ 5B8 )C;9F ) *7<9@@ T+<=FHM 095FG #5H9F
#9GGCBG :FCA H<9 $I@H=7G *97IF=HM J5@I5H=CBU $ *9D
;7*5 8/ 7/8;6*=287 (*;/*;. -C@ %C
DD
!IB9
5B CFG9G 5B8 +FIGHM 57?9FGU
866>72,*=287< 8/ =1. -C@
%C %CJ D
23 $79FACHH !C5B
CFG9G
:FCA
=;<
&F89F
#5B;I5;9GU ";8, 8/ =1.
=1 *=287*5 869>=.; $.,>;2=B
87/.;.7,.5@H=ACF9$&7H DD
2
3 #99 #5KF9B79 T)9 )9:@97H=CBG CB +FIGH=B; +FIGHU
27>A $.,>;2=B >-2=270 6*25270 52<=
!IB9
A
6*25270 52<= !I@M
A
6*25270
52<=
!I@M
A
6*25270 52<= !I@M
;. 8=.< 27 869>=.; $,2.7,.
-C@
97
DD
2
3 9@@CJ=B *H9J9B $=7<59@ '.;2/2*+5B 8;;.,= 8-.
.7.;*=287 &<270 ";.-2,*=. %;*78;6.;< 9DH C: CADIH9F
*7=9B79 ,B=J9FG=HM C: %CFH< 5FC@=B5 5H <5D9@ =@@ 97
2
3 C9F=;? .C@:;5B; T&B +FC>5B CFG9G =B CAD=@9F
AD@9A9BH5H=CBGU
";8,
-.<
(8;4<189<
$2,1.;1.2=
>7-
)>?.;5*<<204.2=<8/=@*;.+*<2.;=.;$B<=.6.
2
3 C9F=;? .C@:;5B; TCAD=@9F -9F=:=75H=CB )9J=G=H98U
869>=.; 2-.- #.*<87270 *<. $=>-2.<
"@IK9F
7589A=7'I6@=75H=CBG
2
3 99F 5B )969775 579 '9H9F IHA5BB '9FFM $9HN;9F
<5F@9G ' ':@99;9F !C;2=B %1. 8<= 8/ 878985B CADIH9F 5B8
CAAIB=75H=CBG B8IGHFM GGC7=5H=CB *9D
= 5B8 5J=8 7?@9M
TI=@8=B; =J9FG9 CADIH9F *MGH9AGU
";8, 8/ =1. =1
(8;4<189 87 8= %892,< 27 !9.;*=270 $B<=.6<
CADIH9F*C7=9HM'F9GG#CG@5A=HCGDD
2
3 CK5B F=GD=B 95H<9F =BHCB 5@HCB 'I 5B8 !CB5H<5B
.5@DC@9 T+<9 F57?9F '5H7< ;2=B 87/.;.7,. 5@H=ACF9 $
!IB9
72,*=287< 8/ =1. -C@ %C !IB9
FB@
$
)9:@97H=CBG
9G<
<9FI?IF=
T*9@:%CBG9@:
=G7F=A=B5H=CB
=B
5
CADIH9FU ";8, 8/ =1.
$B698<2>6 87 #.<.*;,1
27$.,>;2=B*7-";2?*,B
2
3
5=;CB
F=9@
%.<=270
/8;
).;8
>0<
5B CFG9 FI79
'9F9BGU #8+><= !9.7 $8>;,. 6*25270 52<= CD9BGCIF79 5H
7G@ GF= 7CA9GH56@=G<986M'9H9F %9IA5BB%CJ
23 .=@@=5A $ $7"99A5B !5A9G ! CFB=B; 5B8 5J=8
.CFHA5B 86925.; .7.;*=8; 'F9BH=795@@ B;@9KCC8
@=::G%!
2
3 *D9B79F 9BFM DF=J5H9 7CAAIB=75H=CB I;IGH
23 #=6F5 TFCGG 7CAD=@=B; 7CAD=@9F F99B =@@G *C:HK5F9
CB :F99 GC:HK5F9 =B H<9 A=@=H5FMU 27>A (..45B .@< DF
5B CFG9 FI79
'9F9BGU #8+><= !9.7 $8>;,. 6*25270 52<= CD9BGCIF79 5H
7G@ GF= 7CA9GH56@=G<986M'9H9F %9IA5BB%CJ
23 #CF8 +CA T)9 &: CIBH=9G 5B8 $9F79B5F=9GU 0,,
6*25270 52<= DF
6+.;<
$5M
*0.
B8 8=H=CB 'F9BH=79 5@@ '+)
$5F
23 *&
%1. $=*7-*;- 7,8;98;*=270 %.,172,*5
8;;20.7->6
*&
!C
Original Paper
Loading high-quality paper...
Comments & Academic Discussion
Loading comments...
Leave a Comment