신뢰할 수 있는 컴퓨팅 기반
Trusted computing base컴퓨터 시스템의 신뢰할 수 있는 컴퓨팅 기반(TCB)은 TCB 내부에서 발생하는 버그나 취약성이 전체 시스템의 보안 속성을 위태롭게 할 수 있다는 점에서 보안에 중요한 모든 하드웨어, 펌웨어 및/또는 소프트웨어 구성요소의 집합이다.이와는 대조적으로, TCB 외부의 컴퓨터 시스템의 부품들은 보안 정책에 따라 그들에게 부여된 것보다 더 많은 특권을 누설하는 방식으로 잘못 다루어서는 안 된다.
시스템의 신뢰할 수 있는 컴퓨팅 기반의 신중한 설계와 구현은 시스템의 전체적인 보안에 있어 가장 중요하다.현대의 운영체제는 (수동 또는 컴퓨터 보조 소프트웨어 감사나 프로그램 검증을 통한) 코드 베이스의 철저한 검사가 실현 가능하도록 TCB의[not verified in body] 크기를 줄이기 위해 노력한다.
정의 및 특성화
신뢰할 수 있는 컴퓨팅 기반이라는 용어는 운영 체제 커널과 신뢰할 수 있는 프로세스의 조합으로 정의한 [1]존 러쉬비에게 거슬러 올라간다.후자는 시스템의 접근 제어 규칙을 위반할 수 있는 프로세스를 말한다.분산 시스템의 인증: 이론 및 실습[2] 램프슨 등에서는 컴퓨터 시스템의 TCB를 단순한 것으로 정의한다.
- 보안에 의존하고 있으며 보안에 영향을 주지 않고 잘못된 행동을 할 수 있는 훨씬 더 많은 양과 구별되는 소량의 소프트웨어 및 하드웨어
두 정의는 명확하고 편리하지만 이론적으로 정확하지도 않고 의도하지도 않다. 예를 들어 UNIX와 유사한 운영체제 하에서 네트워크 서버 프로세스가 보안 침해의 희생자가 되어 시스템 보안의 중요한 부분을 손상시킬 수도 있지만, 운영체제의 TCB에는 속하지 않는다.또 다른 고전적인 컴퓨터 보안 문헌인 Orange Book은 따라서 컴퓨터 시스템의 TCB에 대한 보다 공식적인 정의를 다음과[3] 같이 제공한다.
- 컴퓨터 보안 정책 시행을 담당하는 하드웨어, 펌웨어 및 소프트웨어를 포함한 하드웨어, 펌웨어 및 소프트웨어를 포함한 그 안에 있는 보호 메커니즘의 전체성.
즉, 신뢰할 수 있는 컴퓨팅 기반(TCB)은 하드웨어, 소프트웨어 및 제어 장치를 함께 사용하여 보안 정책을 시행하는 신뢰할 수 있는 기반을 형성하는 것이다.
오렌지 북은 더 나아가 다음과 같이 설명한다.
- [t]통합 보안 정책을 정확하게 시행하는 신뢰할 수 있는 컴퓨팅 기반에 대한 그의 능력은 신뢰할 수 있는 컴퓨팅 기반 내의 메커니즘의 정확성, 정확성을 보장하기 위한 메커니즘의 보호 및 보안 정책과 관련된 매개변수의 올바른 입력에 달려 있다.
즉, 주어진 하드웨어 또는 소프트웨어의 일부가 컴퓨터 시스템에 보안을 제공하는 메커니즘의 일부로 설계된 경우에만 TCB의 일부분이다.운영 체제에서는 일반적으로 커널(또는 마이크로커널)과 선택된 시스템 유틸리티 집합(예: UNIX 시스템의 setuid 프로그램 및 데몬)으로 구성된다.Java, E와 같이 보안 기능을 설계한 프로그래밍 언어에서 TCB는 언어 런타임과 표준 라이브러리로 구성된다.[4]
특성.
보안 정책을 기반으로 함
위의 Orange Book 정의의 결과로, TCB의 경계는 보안 정책이 어떻게 구체화되는가에 따라 밀접하게 좌우된다.위의 네트워크 서버 예에서, 예를 들어, 다중 사용자 애플리케이션을 서비스하는 웹 서버는 운영 체제의 TCB에 속하지 않지만, 사용자가 서로의 ID와 권한을 침해할 수 없도록 접근 제어를 수행할 책임이 있다.이러한 의미에서, 그것은 UNIX 서버, 사용자의 브라우저 및 웹 응용 프로그램을 구성하는 더 큰 컴퓨터 시스템의 TCB의 일부임에 틀림없다. 다시 말하면, 예를 들어, 버퍼 오버플로가 운영 체제의 적절한 타협으로 간주되지 않을 수 있지만, 그것은 확실히 해로운 착취에 해당된다.웹 응용 프로그램.
TCB 경계의 이러한 근본적인 상대성은 공통 기준 보안 프로세스에서 '평가 대상'('TOE')의 개념으로 예시된다. 공통 기준 보안 평가 과정에서, 반드시 실시해야 할 첫 번째 결정 중 하나가 앞으로 나올 시스템 구성요소 목록 측면에서 감사의 경계다.면밀한 조사를 받고
보안의 전제 조건
설계의 일부로서 신뢰할 수 있는 컴퓨팅 기반이 없는 시스템은 자체적인 보안을 제공하지 않는다. 즉, 외부 수단에 의해 보안이 제공되는 경우에만 보안이 된다(예: 네트워크 연결 없이 잠긴 방에 앉아 있는 컴퓨터는 실행하는 소프트웨어와 관계없이 정책에 따라 보안이 확보된 것으로 간주될 수 있다).이것은 David J. Farber 등이 말했듯이 [[5]i]컴퓨터 시스템에서는 하위 계층의 무결성이 일반적으로 상위 계층에 의해 자명하게 취급되기 때문이다.컴퓨터 보안에 관한 한, 컴퓨터 시스템의 보안 속성에 대해 논하는 것은 그것이 할 수 있는 것, 그리고 더 중요한 것은 할 수 없는 것에 대해 건전한 가정을 할 수 있어야 한다는 것을 필요로 한다. 그러나 달리 믿을 어떠한 이유도 배제하고, 컴퓨터는 일반 폰 노이만 기계가 할 수 있는 모든 것을 할 수 있다.여기에는 기밀로 유지되어야 하는 전자 메일이나 암호를 누설하는 것과 같이 가장 단순한 보안 정책 이외의 모든 것과 반대되는 것으로 간주되는 작업이 분명히 포함된다. 그러나 시스템 아키텍처에 특별한 규정이 없다면 컴퓨터가 이러한 바람직하지 않은 작업을 수행하도록 프로그래밍될 수 있다는 것을 부인할 수 없다.
이러한 특별 조항은 어떤 종류의 조치가 실행되지 않도록 하는 것을 목적으로 하는 것으로, 본질적으로 신뢰할 수 있는 컴퓨팅 기반을 구성한다.이러한 이유로 Orange Book(2007년[update] 현재 보안 운영 체제 설계에 대한 참조)은 주로 TCB의 구조와 보안 특징 측면에서 규정하는 다양한 보안 보증 수준을 특징으로 한다.
TCB의 소프트웨어 부분이 스스로를 보호해야 함
앞서 언급한 Orange Book에서 요약한 바와 같이, 신뢰할 수 있는 컴퓨팅 기반의 소프트웨어 부분은 어떤 영향을 미치더라도 변조로부터 스스로를 보호할 필요가 있다.이는 사실상 모든 현대 컴퓨터들에 의해 구현된 폰 노이만 아키텍처 때문이다: 머신 코드는 단지 다른 종류의 데이터로서 처리될 수 있기 때문에, 이후에 TCB의 일부로 취급되어야 하는 특별한 메모리 관리 조항을 제외한 어떤 프로그램에서도 읽고 덮어쓸 수 있다.구체적으로, 신뢰할 수 있는 컴퓨팅 기반은 적어도 자체 소프트웨어가 작성되는 것을 방지해야 한다.
현대의 많은 CPU에서, TCB를 호스팅하는 메모리의 보호는 운영체제가 프로그램할 수 있는 MMU(메모리 관리 단위)라는 특수한 하드웨어에 추가함으로써 달성된다. MMU는 실행 중인 프로그램에 대한 시스템 메모리의 특정 범위에 대한 액세스를 허용하고 거부한다.물론 운영체제는 다른 프로그램들에 대한 그러한 프로그래밍을 허용하지 않을 수도 있다.이 기법은 감독자 모드라고 불린다. 더 조잡한 접근방식(예: TCB를 ROM에 저장하거나 하버드 아키텍처를 사용하는 것)에 비해 신뢰할 수 있는 컴퓨팅 기반에 대한 안전한 업그레이드는 그것의 부스트랩 문제를 야기하지만, 보안에 중요한 소프트웨어를 현장에서 업그레이드할 수 있는 이점이 있다.wn.[6]
신뢰할 수 있는 것과 신뢰할 수
위에서 말한 것처럼, 컴퓨터 시스템의 보안을 확인하는 데 진전이 있으려면 신뢰할 수 있는 컴퓨팅 기반에 대한 신뢰가 필요하다.즉, 신뢰할 수 있는 컴퓨팅 기반이 반드시 신뢰할 수 있는 것이 아니라 신뢰해야 한다는 의미에서 무엇보다도 "신뢰"된다.실제 운영 체제는 일상적으로 보안에 중요한 버그를 발견하며, 이는 그러한 신뢰의 실질적인 한계를 증명한다.[7]
대안은 수학적 증명 기법을 이용해 버그가 없음을 보여주는 정식 소프트웨어 검증이다.NICTA와 그것의 스핀아웃 오픈 커널 랩의 연구자들은 최근 L4 마이크로커널 계열의 멤버인 seL4에 대해 이처럼 공식적인 검증을 수행하여 커널의 C 구현의 기능적 정확성을 증명하고 있다.[8]이로써 seL4는 수학적 입증에 오류가 없다고 가정할 때 신뢰도와 신뢰성의 격차를 해소하는 최초의 운영체제 커널이 된다.
TCB 크기
전술한 바와 같이 공식적인 검증이나 수동 검토와 같은 값비싼 기법을 적용해야 하기 때문에, TCB의 크기는 TCB 보증 프로세스의 경제성과 결과 제품의 신뢰도에 즉각적인 영향을 미친다(검증이나 재검증 중에 발견되지 않은 버그 수의 수학적인 기대치 측면에서).그러므로 비용 및 보안 위험을 줄이기 위해 TCB는 가능한 한 작게 유지되어야 한다.이것은 단일 커널보다 마이크로커널을 선호하는 토론의 핵심 논거다.[9]
예
AIX는 신뢰할 수 있는 컴퓨팅 기반을 설치시간 패키지 관리 시스템의 선택적 구성요소로 구체화한다.[10]
참고 항목
참조
- ^ Rushby, John (1981). "Design and Verification of Secure Systems". 8th ACM Symposium on Operating System Principles. Pacific Grove, California, US. pp. 12–21.
- ^ B. 램프슨, M. 아바디, M. 버로우스, E.Wawber, 분산 시스템의 인증: 이론과 실천, 컴퓨터 시스템의 ACM 거래 1992(6페이지)
- ^ 국방부는 컴퓨터 시스템 평가 기준 DoD 5200.28-STD, 1985를 신뢰했다.항목 아래에 있는 용어집에서 TCB(Trusted Computing Base)를 참조하십시오.
- ^ M. 밀러, C.모닝스타와 B.Frantz, 문단 Original Aggregation의 Capability-based Financial Instruments(그래노베터 도표의 Ode)이다.
- ^ W. Arbaugh, D.파버와 J. 스미스는 "애기스 논문"으로도 알려져 있는, 안전하고 믿을 수 있는 부트스트랩 아키텍처, 1997년.
- ^ 안전하고 신뢰할 수 있는 부트스트랩 아키텍처, op. cit.
- ^ 브루스 슈나이어, 보안 패치 러닝머신(2001)
- ^ Klein, Gerwin; Elphinstone, Kevin; Heiser, Gernot; Andronick, June; Cock, David; Derrin, Philip; Elkaduwe, Dhammika; Engelhardt, Kai; Kolanski, Rafal; Norrish, Michael; Sewell, Thomas; Tuch, Harvey; Winwood, Simon (October 2009). "seL4: Formal verification of an OS kernel" (PDF). 22nd ACM Symposium on Operating System Principles. Big Sky, Montana, US. pp. 207–220.
- ^ 앤드루 S. 타넨바움, 타넨바움-토발즈 논쟁, 파트 2 (2006년 5월 12일)
- ^ AIX 4.3 보안 요소, 2000년 8월 6장
