🛡️ [클래식] Reflections on Trusting Trust - 신뢰하는 신뢰: 컴파일러 백도어의 고전 (1984)

2026-09-02 · 카테고리: Research (클래식 보안 논문)

논문 정보

제목: Reflections on Trusting Trust
저자: Ken Thompson (Kenneth Lane Thompson, AT&T Bell Labs) — UNIX 공동 창시자, 1983년 튜링상 수상
발표: Communications of the ACM, 27(8): 761–763, 1984년 8월 (1983 Turing Award Lecture)
분야: 소프트웨어 신뢰, 컴파일러 보안, 공급망 공격, 백도어
Semantic Scholar 인용: 759회 (K. Thompson, 1984)

연구 배경 — "직접 완전히 만들지 않은 코드는 신뢰할 수 없다"

이 논문은 Ken Thompson이 1983년 튜링상 수상자로서 발표한 단 3페이지짜리 강연문이다. UNIX와 C 언어의 창시자가 던진 질문은 충격적으로 단순하다. 소스 코드를 아무리 철저히 검토해도, 그 소스를 기계어로 바꿔주는 컴파일러가 악의적이라면 우리는 무엇을 믿는 것일까? 소스 코드에 백도어를 직접 심는 방법은 코드 리뷰에 금방 걸린다. Thompson은 컴파일러라는 더 깊은 층위를 공격해 어느 소스 파일에서도 흔적을 찾을 수 없는 완전한 트로이 목마를 만드는 3단계 방법을 보여줬다. 이 한 편의 강연은 이후 40년간 이어지는 공급망 보안 논쟁의 원형(原型)이 되었다.

핵심 내용 — 3단계 컴파일러 백도어

"You can't trust code that you did not totally create yourself. (No amount of source-level verification or scrutiny will protect you from using untrusted code.)" — Ken Thompson

보안 시사점

결론

40년 전 발표된 3페이지 분량의 수상 강연은 오늘날까지 보안 분야에서 가장 많이 인용되는 고전 중 하나다. "컴파일러를 컴파일하는 컴파일러"라는 자기참조적 사고실험은 소프트웨어 공급망의 취약성이 코드 품질이 아니라 신뢰 체인(chain of trust)의 시작점에 있음을 보여준다. 코드를 만드는 도구가 코드를 배신할 수 있다는 사실을 처음으로 대중화한 논문으로, 소프트웨어를 신뢰한다는 것의 의미를 다시 묻게 만든다.

원문: ACM Digital Library — Reflections on Trusting Trust (DOI: 10.1145/358198.358210) · Wikipedia

목록으로 돌아가기