신뢰 플랫폼 모듈
1. 개요
신뢰 플랫폼 모듈(TPM)은 신뢰 컴퓨팅 그룹(TCG)에서 고안한 기술로, 하드웨어 장치 인증, 암호화 키 보호, 플랫폼 무결성 보장 등 다양한 기능을 제공한다. TPM은 ISO/IEC 11889:2009로 표준화되었으며, TPM 1.2와 TPM 2.0 두 가지 주요 사양 버전이 있다. TPM 2.0은 1.2에 비해 아키텍처, 알고리즘, 암호 기본 요소, 인증 방식 등에서 개선되었으며, PC 클라이언트, 모바일, 자동차 등 다양한 플랫폼을 지원한다. TPM은 플랫폼 무결성, 디스크 암호화, 디지털 권리 관리, 소프트웨어 라이선스 보호 등 여러 분야에서 활용되며, 개별 TPM, 통합 TPM, 펌웨어 TPM, 가상 TPM, 소프트웨어 TPM 등 다양한 형태로 구현될 수 있다.
| 유형 | 보안 암호 프로세서 |
|---|---|
| 표준 | ISO/IEC 11889:2015 |
| 약어 | TPM |
| 도메인 | 보안 암호 프로세서 |
| 웹사이트 | ISO/IEC 11889-1:2015 ISO/IEC 11889-2:2015 ISO/IEC 11889-3:2015 ISO/IEC 11889-4:2015 |
| 시작 연도 | 2009년 |
|---|---|
| 조직 | 신뢰 컴퓨팅 그룹, ISO/IEC JTC 1 |
-
신뢰 컴퓨팅 -
차세대 보안 컴퓨팅 기반
차세대 보안 컴퓨팅 기반(NGSCB)은 마이크로소프트가 설계한 하드웨어 및 소프트웨어 보안 아키텍처로, 개인 정보 보호, 보안 강화, 디지털 권리 관리를 목표로 커튼 메모리, 신뢰 플랫폼 모듈(TPM), Nexus 보안 커널을 활용하는 특징을 가지나, 다양한 비판에 직면하여 윈도우 비스타의 BitLocker 드라이브 암호화 기능으로 일부 축소 구현되었다. -
신뢰 컴퓨팅 -
컴퓨터 보안 평가 지침서
컴퓨터 보안 평가 지침서, 일명 "오렌지 북"은 미국 국방부가 1980년대에 발행한 컴퓨터 시스템 보안 평가 기준 문서로, 정책, 책임, 보증, 문서화의 네 가지 핵심 요소를 포함하며 초기 컴퓨터 보안 표준 역할을 했으나, 현재는 국제 공통 평가 기준(CC)으로 대체되었다. -
난수 발생기 -
/dev/random
/dev/random은 리눅스 커널에서 제공하는 난수 장치 파일로, 안전한 난수 생성을 위해 사용되며, 엔트로피 풀이 비어있을 경우 블로킹되는 특징을 가진다. -
난수 발생기 -
저불일치 수열
저불일치 수열은 수치적 적분 및 몬테카를로 방법에서 균등 분포에 가까운 점들을 생성하는 수열로, 데이터 포인트를 추가해도 기존 결과를 유지하며 무리수 활용, 판 데르 코르퓃 수열, 할턴 수열, 소볼 수열, 해머슬리 집합 등으로 구성되고 불일치도 평가를 위해 콕스마-흐와프카 부등식 등이 활용된다. -
암호 하드웨어 -
SIM 카드
SIM 카드는 이동통신 장치에서 가입자 정보를 저장하고 네트워크를 인증하는 스마트 카드로, 가입자 식별 정보, 인증 정보, 전화번호부 등을 저장하며, 최근에는 내장형 eSIM으로 발전하고 있다. -
암호 하드웨어 -
유비키
유비키는 2007년에 설립된 보안 키 회사로, 다양한 인터페이스와 보안 표준을 지원하며, 보안 강화를 위해 ModHex 문자를 사용하지만, 코드의 폐쇄 소스화 이후 보안 문제가 발생하기도 했다.
2. 역사
신뢰 컴퓨팅 그룹(TCG)이 신뢰 플랫폼 모듈(TPM) 기술을 처음 고안했다. 2009년, 국제 표준화 기구(ISO)와 국제 전기 기술 위원회(IEC)에 의해 ISO/IEC 11889:2009로 표준화되었다(TPM 1.2). TPM 주요 사양 버전 1.2는 개정을 완료하여 2011년 3월 3일에 최종 확정되었다.
2014년 4월 9일, 신뢰 컴퓨팅 그룹은 TPM 라이브러리 사양 2.0을 발표했다. 이 그룹은 정오표, 알고리즘 추가 및 새로운 명령을 통합하여 표준 작업을 계속했으며, 가장 최근 버전은 2019년 11월에 2.0으로 발표되었다. 이 버전은 ISO/IEC 11889:2015가 되었다.
3. 기능
신뢰 플랫폼 모듈(TPM)은 다음과 같은 기능을 제공한다.
* 하드웨어 난수 생성기를 통한 난수 생성
* 암호 키 생성 및 관리
* 제한된 용도로 암호 키를 안전하게 생성
* TPM 바인드 키(저장 키에서 파생된 고유한 RSA 키)를 사용한 데이터 바인딩(암호화)
* TPM에서만 해독 가능한 암호 키 생성 (키 래핑 또는 바인딩)
* TPM 자체 내에 저장되는 저장 루트 키 (마스터 래핑 키)
* 특정 사용자의 Windows 사용자 프로필과 함께 저장되는 사용자 수준 RSA 키 컨테이너를 통해 해당 사용자 ID로 실행되는 애플리케이션 정보 암호화 및 해독
* 원격 증명: 하드웨어 및 소프트웨어 구성에 대한 위조가 거의 불가능한 해시 키 요약 생성 및 변경 여부 확인
* 밀봉된 저장소: 해독(언실)할 데이터에 대한 TPM 상태 지정
* 기타 신뢰 컴퓨팅 기능
* 하드웨어 장치 인증: 각 TPM 칩에 고유하고 비밀스러운 보증 키(EK) 내장 (RSA 및 ECC 알고리즘 사용)
* TPM 제조업체는 일반적으로 TPM 비휘발성 메모리에 보증 키 인증서 제공 (TPM이 진본임을 주장)
* TPM 2.0부터 인증서는 X.509 DER 형식
* 제조업체는 일반적으로 웹 사이트에 자체 인증 기관 루트(및 중간) 인증서 제공
* AMD
* 인피니언(Infineon)
* 인텔
* NationZ
* 누보톤(Nuvoton)
* ST Micro
TPM은 RSA 암호 연산, SHA-1 해시 연산 등의 기능을 가지며, 칩 내에서 암호화·복호화, 디지털 서명의 생성·검증, 플랫폼의 완전성 검증을 수행할 수 있다. 또한 TPM 내부에서 RSA 키 페어(공개 키와 비밀 키)를 생성할 수 있다.
TPM의 사양은 TCG(Trusted Computing Group)라는 국제적인 산업 단체에서 제정되었으며, 최신 버전은 2.0이다. TPM 1.2는 RSA만 지원했지만, TPM 2.0은 AES나 ECDSA 등을 포함하여 다양한 암호 알고리즘을 칩 내에서 처리할 수 있게 되어, 소프트웨어가 암호 라이브러리를 부담할 필요가 대폭 줄어들어 암호 경계가 더욱 명확해졌다.
TPM은 노트북 PC뿐만 아니라 데스크톱 PC에도 탑재되어 있으며, Windows Vista에서 처음으로 정식 지원했다. Intel 칩을 탑재한 초기 Macintosh에도 TPM 칩이 탑재되었다.
TPM 기술은 계속 발전하고 있으며, 칩셋 등과의 연계를 강화한 Intel의 Trusted Execution Technology 기술이 있다. 또한, 가상 머신용 명령 사양 확장도 제안되고 있다.
임베디드 용도로는 SPI나 I2C 등의 인터페이스를 가진 TPM이 출시되고 있다. 핀 수가 줄어들어 비용이 절감될 뿐만 아니라, 인터페이스 단순화 등 공격 표면 축소(Attack surface reduction)의 개념과 궁합이 좋다는 장점이 있다. 최근 자동차 자율 주행 및 IoT 등에서 수요가 늘고 있다.
TCG는 디스크리트 TPM에 대해 요구되는 보안 수준을 고려할 때, 변조 방지 기능을 갖추어야 한다고 밝히고 있다.
TPM은 다음과 같은 기능을 제공한다.
* RSA
* 연산
* 키 생성
* 키 보관
* SHA-1 해시
* 해시값 계산
* 해시값 보관
* 난수 생성
TPM 1.2부터 다음과 같은 기능이 추가되었다.
* 카운터
* 단순 증가 카운터
* 틱 카운터
* 소유자 권한 위임 (비밀번호는 공개하지 않음)
* 비휘발성 스토리지 저장 기능
TPM 2.0은 기능과 개념이 일신되어, 다음과 같은 기능이 추가되었다.
* 시드와 객체의 개념
* 인증 형식 추가 (KDF에 의한 세션 키 생성, Policy 인증)
* 인증 및 비밀 통신의 고속화
* 알고리즘 대폭 추가
* 각종 해시 연산 (SHA256, SM3, HMAC, KDF 등)
* 타원 곡선 암호 (NIST curve P-256, SM2 등)
* AES (128bit~256bit, OFB, CTR 등의 각종 모드)
* 그룹 복제 (Key duplication)
* 비휘발성 카운터
* 비휘발성 비트 필드
TPM을 하드웨어에 탑재해도 시스템 전체의 보안이 즉시 확보되는 것은 아니다. TPM을 사용하는 시스템의 요구 사항 정의부터 애플리케이션 구현까지 모든 것을 고려해야만 쉽게 뚫릴 수 없는 시스템을 만들 수 있다. 예를 들어 OS의 부트로더가 변조되지 않았음을 인증하기 위해 TPM을 사용하더라도, OS 측에 취약성이 있다면 부팅 후에 데이터를 탈취당할 수 있다.
칩 자체의 스펙이 높지 않고, 내부 펌웨어가 안전하게 코딩되어야 하며, 인터페이스 속도가 느리기 때문에 수백 킬로바이트를 초과하는 데이터의 암호화/복호화에는 시간이 걸린다는 점에 유의해야 한다.
TPM의 펌웨어 리비전에 따라 대칭 키 암호화 명령(TPM2_EncryptDecrypt2)이 구현되지 않아 전송 경로에 노출되는 평문을 암호화할 수 없는 경우가 있다.
3.1. TPM 1.2와 TPM 2.0의 비교
TPM 2.0은 TPM 1.2와 하위 호환되지 않는다. 두 버전은 세부 사항에서 차이가 있다.
| 사양 | TPM 1.2 | TPM 2.0 |
|---|---|---|
| 아키텍처 | 전체 사양은 공통 3부 TPM 1.2 라이브러리를 참조하는 플랫폼별 보호 프로파일로 구성된다. PDA 및 이동 통신용 보호 프로파일은 출판되지 않았다. | 전체 사양은 공통 4부 TPM 2.0 라이브러리를 참조하는 플랫폼별 사양으로 구성된다. 플랫폼별 사양에는 PC 클라이언트, 모바일, 및 자동차-씬이 포함된다. |
| 알고리즘 | SHA-1 및 RSA가 필요하다. AES는 선택 사항이다. 트리플 DES는 TPM 1.2 버전 103에서 제거되었다. PKCS#1에 정의된 MGF1 해시 기반 마스크 생성 기능이 필요하다. | PC 클라이언트 플랫폼 TPM 프로파일(PTP) 사양은 해시의 경우 SHA-1 및 SHA-256을 요구한다. RSA, ECC는 NIST P-256 곡선을 사용하여 공개 키 암호화 및 비대칭 디지털 서명 생성 및 검증을 수행한다. 대칭 디지털 서명 생성 및 검증을 위한 HMAC, 128비트 AES가 사용된다. PKCS#1에 정의된 MGF1 해시 기반 마스크 생성 기능은 TCG PC 클라이언트 플랫폼 TPM 프로파일(PTP) 사양에서 요구한다. 트리플 DES는 TPM 2.0 라이브러리에 추가되었지만 약한 키를 거부하는 제한이 있다. |
| 암호 기본 요소 | 난수 생성기, 공개 키 암호화 알고리즘, 암호화 해시 함수, 마스크 생성 기능, 디지털 서명 생성 및 검증, 직접 익명 증명이 필요하다. 대칭 키 알고리즘 및 배타적 논리합은 선택 사항이다. 키 생성도 필요하다. | 난수 생성기, 공개 키 암호화 알고리즘, 암호화 해시 함수, 대칭 키 알고리즘, 디지털 서명 생성 및 검증, 마스크 생성 기능 및 배타적 논리합은 TCG PC 클라이언트 플랫폼 TPM 프로파일(PTP) 사양에서 요구한다. TPM 2.0 공통 라이브러리 사양은 키 생성 및 키 파생 함수를 요구한다. |
| 계층 구조 | 하나(저장소) | 세 개(플랫폼, 저장소 및 보증) |
| 루트 키 | 하나(SRK RSA-2048) | 계층 구조별 여러 키 및 알고리즘 |
| 인증 | HMAC, PCR, 로컬리티, 물리적 존재 | 암호, HMAC, 및 정책(HMAC, PCR, 로컬리티 및 물리적 존재 포함). |
| NVRAM | 비구조화된 데이터 | 비구조화된 데이터, 카운터, 비트맵, 확장, PIN 통과 및 실패 |
TPM 2.0은 TPM 1.2에 비해 더 다양한 암호화 알고리즘을 지원하며, 더 유연한 인증 메커니즘을 제공한다. TPM 1.2는 RSA와 SHA-1을 필수적으로 지원해야 했지만, TPM 2.0에서는 SHA-1 외에 SHA-256도 지원한다. TPM 2.0 정책 인증에는 TPM 1.2의 HMAC, 로컬리티, 물리적 존재 및 PCR이 포함되며, 비대칭 디지털 서명, 다른 인증 시크릿으로의 간접 참조, 카운터 및 시간 제한, NVRAM 값, 특정 명령 또는 명령 매개변수, 물리적 존재를 기반으로 인증을 추가하여 복잡한 인증 정책을 구성할 수 있다.
4. 활용
TPM은 디지털 권리 관리(DRM), 소프트웨어 라이선스 보호 및 관리, 암호 보호 등 다양한 암호화 응용 프로그램에서 활용될 수 있다.
TPM은 하드웨어 난수 생성기, 암호 키 생성, 원격 증명, 바인딩, 밀봉된 저장소 등의 기능을 제공한다. 이를 통해 플랫폼 무결성을 측정하고, OS나 애플리케이션 변조를 탐지하며, 공개 키 인증서를 이용한 단말 인증으로 위조를 방지하고, 데이터 암호화로 정보 유출을 막는다. 각 TPM 칩에는 고유하고 비밀스러운 보증 키(EK)가 내장되어 있어, 소프트웨어보다 강력한 하드웨어 장치 인증이 가능하다.
마이크로소프트의 비트로커는 TPM을 활용하여 하드 디스크 드라이브를 암호화하는 대표적인 예시이다. 윈도우 비스타 이후 버전에서 제공되며, TPM 사용은 선택 사항이다. 산업기술종합연구소의 Trusted HTTP-FUSE KNOPPIX는 TPM 플랫폼 검증 기술로 부트 시퀀스 위조를 감시하는 크노픽스 버전이다.
4.1. 플랫폼 무결성
TPM의 주요 범위는 부팅 시 플랫폼의 무결성을 보장하는 것이다. 여기서 "무결성"은 "의도한 대로 작동한다"는 의미이며, "플랫폼"은 운영 체제에 관계없이 모든 컴퓨터 장치를 의미한다. 이는 부팅 과정이 신뢰할 수 있는 하드웨어와 소프트웨어의 조합에서 시작하여 운영 체제가 완전히 부팅되고 응용 소프트웨어가 실행될 때까지 계속되도록 하기 위함이다.
TPM이 사용될 때 펌웨어와 운영 체제는 무결성을 보장하는 책임을 진다.
예를 들어, UEFI는 TPM을 사용하여 신뢰의 근원을 형성할 수 있다. TPM에는 보안 관련 메트릭의 안전한 저장 및 보고를 허용하는 여러 플랫폼 구성 레지스터(PCR)가 포함되어 있다. 이러한 메트릭을 사용하여 이전 구성에 대한 변경 사항을 감지하고 진행 방법을 결정할 수 있다. 이러한 사용 예시는 LUKS, BitLocker 및 PrivateCore vCage 메모리 암호화에서 찾을 수 있다.
TPM을 통한 플랫폼 무결성의 또 다른 예는 Microsoft Office 365 라이선스 및 Outlook Exchange의 사용이다.
TPM을 사용하여 플랫폼 무결성을 확보하는 또 다른 예는 TXT이며, 이는 신뢰 체인을 생성한다. 이는 컴퓨터가 지정된 하드웨어와 소프트웨어를 사용하고 있는지 원격으로 증명할 수 있다.
4.2. 디스크 암호화
마이크로소프트의 윈도우 비스타 얼티밋, 엔터프라이즈, 그리고 윈도우 서버 2008 운영 체제에서 제공되는 비트로커 드라이브 암호화와 같은 완전 디스크 암호화 응용 프로그램들은 TPM 기술을 사용하여 컴퓨터 운영 체제의 볼륨 암호화 키를 보호하고, 신뢰 시동 경로(바이오스, 시동 섹터 등)를 위한 통합 인증을 제공한다. dm-crypt와 같은 전체 디스크 암호화 유틸리티도 이 기술을 사용하여 컴퓨터 저장 장치 암호화 키를 보호하고, 펌웨어 및 부트 섹터를 포함하는 신뢰할 수 있는 부팅 경로에 대한 무결성 인증을 제공한다.
5. 구현
2006년부터 많은 노트북 컴퓨터에 TPM 칩이 내장되어 출시되기 시작했다. PC에서는 LPC 버스 또는 SPI 버스가 TPM 칩 연결에 사용된다.
TPM 마이크로컨트롤러는 다음 회사들이 생산하고 있다.
* Microchip Technology
* 브로드컴
* 인피니온
* 인텔
* ST마이크로일렉트로닉스
* Nuvoton
TPM 2.0 구현에는 다음 다섯 가지 유형이 있다. (가장 안전한 것부터 가장 덜 안전한 순서):
* 개별 TPM: 자체적인 변조 방지 반도체 패키지에서 TPM 기능을 구현하는 전용 칩이다. 소프트웨어 구현보다 안전하며, FIPS-140 레벨 3 물리적 보안 인증을 받았다.
* 통합 TPM: 다른 칩의 일부이며, 소프트웨어 버그에 저항하는 하드웨어를 사용하지만 변조 방지 기능은 필요 없다. 인텔은 일부 칩셋에 TPM을 통합했다.
* 펌웨어 TPM (fTPM): CPU의 신뢰된 실행 환경에서 실행되는 펌웨어 기반(예: UEFI) 솔루션이다. 인텔, AMD, 퀄컴이 펌웨어 TPM을 구현했다.
* 가상 TPM (vTPM): 하이퍼바이저에서 제공되며, 가상 머신 내부에서 실행되는 소프트웨어로부터 코드를 보호하기 위해 가상 머신 내의 소프트웨어로부터 숨겨진 격리된 실행 환경에 의존한다. 구글 클라우드 플랫폼이 vTPM을 구현했다.
* 소프트웨어 TPM: 운영 체제 내에서 일반 프로그램이 얻는 보호 외에 더 이상의 보호 없이 실행되는 TPM의 소프트웨어 에뮬레이터이다. 개발 목적으로 유용하다.
TCG는 인피니언, Nuvoton, ST마이크로일렉트로닉스에서 제조한 TPM 칩을 인증했으며, 여러 회사에 TPM 공급업체 신분증을 할당했다.
TPM은 여러 공급업체에서 구현된다.
* 인피니언은 TPM 칩과 TPM 소프트웨어를 모두 제공한다.
* 마이크로칩(구 Atmel)은 TPM 1.2 rev 116을 준수하는 TPM 장치를 제조하며, 다양한 인터페이스, 모드, 온도 등급 및 패키지를 제공한다.
* 누보톤은 PC 및 임베디드 시스템, IoT 애플리케이션용 TPM 장치를 제공한다. 윈본드가 생산한 TPM은 현재 누보톤의 일부이다.
* ST마이크로일렉트로닉스는 PC 플랫폼 및 임베디드 시스템용 TPM을 제공한다.
하이브리드 유형도 있다. 예를 들어 TPM은 이더넷 컨트롤러에 통합될 수 있으므로 별도의 마더보드 구성 요소가 필요하지 않다.
필드 업그레이드는 TPM 펌웨어를 업데이트하는 TCG 용어이다. 일부 공급업체는 1.2에서 2.0으로의 전환 횟수를 제한하거나 이전 버전으로의 롤백을 제한하기도 한다. HP Inc.와 같은 플랫폼 OEM은 업그레이드 도구를 제공한다.