본문 바로가기
IT

TPM(Trusted Platform Module)

by Dblog 2021. 6. 25.
728x90

TPM(Trusted Platform Module)

TCG(Trust Computing Group)에서 정의한, 컴퓨팅 환경에서 암호화 키를 저장할 수 있는 보안 암호 처리자를 기록한 규격 이름, 하드웨어 인증을 위해 호스트 시스템에 특정한 RSA 암호화 키를 저장하는 엔드 포인트 장치의 특수 칩셋

즉, 암호키를 안전하게 보관할 수 있는 키 금고입니다.

여기서 의문점은 하드웨어를 왜 암호화하는 이유, 그리고 암호키를 굳이 따로 칩셋 모듈까지 붙여가면서 안전하게 보관하려는 이유에 대해 궁금증이 생깁니다.

 

먼저 하드웨어를 암호화 한다는 의미를 살펴보면 보통의경우 평문으로 전달되는 데이터를 하드웨어가 보호한다라는 의미로 생각할 수 있습니다.

또 소프트웨어 보안은 프로그램이기 때문에 하드웨어 보안에 비해 보안 공격에 하드웨어보다 취약할 수 밖에 없습니다. 하드웨어도 보안에 완벽하진 않지만 보통의 경우 소프트웨어 보안보다는 높은 보안 수준을 제공하기 때문에 보다 안전하다고 할 수 있습니다.

TPM 모듈은 2003년 이후 대부분의 노트북에 장착되어 출시되고 있습니다. 좋은 예시로 노트북의 지문인식 로그인 방식에 지문 암호는 TPM모듈에 저장되어 관리됩니다.

재밌는 예시로 하드디스크 하나 전체를 TPM으로 암호화 하면 하드디스크를 훔쳐서 다른 PC에 연결해도 데이터를 읽을수 없습니다. TPM 암호는 절때 모듈 밖에서 저장하지 않기 때문에 로컬 TPM이 없으면 해당 하드디스크는 포멧하는 방법 밖에 없습니다.

 

TPM구조(https://ko.wikipedia.org/wiki/%EC%8B%A0%EB%A2%B0_%ED%94%8C%EB%9E%AB%ED%8F%BC_%EB%AA%A8%EB%93%88)

 

TPM침에는 EK, SRK, PCR, AIK... 의 굉장히 다양한 Key들이 있습니다. (TPM에서 K로 끝나는 것 들은 대부분 Key)

EK,SRK
각 TPM 칩에는 EK(Endorsement Key)라는 고유한 RSA Key pair가 저장되어 있는데 소프트웨어는 이 Key를 절때로 Access할 수 없게 설계되어 있습니다. EK는 user/admin이 시스템에 owner가 되면 그 때 SRK(Storage Root Key)를 생성하기 위해 사용됩니다.

AIK(Attenstation Identity Key)
TPM이 장착된 자입에서 다른 장비와 통신하기 위해 다른장비가 신뢰할 수 있는 장비인지 확인하려면 TPM이 가지고 있는 EK를 확인해야 합니다. 그러나 EK가 자주 노출되는 것이 보안에 상당히 좋지 않습니다. 유출되는것을 막기위해 TPM에 익명성을 부여하고 일반 저장공간에 저장도 안하는데 노출빈도가 높지 않아야 보안에 좋습니다.
그래서 나온 개념이 AIK입니다. 하나의 TPM은 여러개의 AIK를 가질 수 있으며 인증 받는 상대방(다른 장비)에 따라 AIK를 다르게 생성할 수도 있습니다. TPM은 다양한 PCR값을 생성해서 가지고 있는데 서로 신뢰 할 수 있는 장비임을 입증하기 위해 PCR값을 확인하는 것으로 신뢰 상태를 검증합니다. 
AIK는 TPM의 PCR을 서명하는데 사용되는 키로 활용될 수 있습니다. 

PCR
8~24개로 구성된 컴퓨터의 상태 정보, 외부에서 직접 쓰기가 불가능하고 정해진 절차에 의해 값을 extend한다.

 

TPM 구조 (https://ettrends.etri.re.kr/ettrends/112/0905001383/23-4_048_060.pdf)

Non-Volatile Storage
비 휘발성 메모리이며 SRK, EK가 저장된다

Volatile Storage
휘발성 메모리이며 PCR, AIK가 저장된다

Random Number Generator
NIST SP 80022의 표준을 따르며 128혹은 256bit의 난수를 생성한다. NXP보드에서는 HSM모듈을 통해 생성한다.

 

Key Tree (https://ettrends.etri.re.kr/ettrends/112/0905001383/23-4_048_060.pdf)

 

Example

TPM 플랫폼 무결성을 인증하기 위해 사용하는 예시 하나는 신뢰 체인(Chain Of Chain)을 적용하는 것 입니다. 

Chain Of Trust (https://ettrends.etri.re.kr/ettrends/112/0905001383/23-4_048_060.pdf)

728x90

'IT' 카테고리의 다른 글

MYSql Server8.0.17~19 'member' 예약어 이슈  (0) 2021.07.07
CPU scheduling, 노예의 탄생  (0) 2021.07.06
RPC, IPC 그리고 gRPC  (0) 2021.06.14
gRPC 테스트 C++  (0) 2021.06.07
gRPC 테스트 python  (0) 2021.06.01

댓글