TPM

덤프버전 :



1. 개요
2. 설명
3. 종류
3.1. Discrete TPM
3.2. Integrated TPM
3.3. Firmware TPM
3.3.1. 라이젠의 fTPM 스터터링 문제
4. 용도
5. PC에서 TPM 지원 여부 확인 방법
6. Windows 11 업그레이드 관련


1. 개요[편집]


Trusted Platform Module / 신뢰할 수 있는 플랫폼 모듈

TPM은 하드웨어적으로 다양한 보안 기능을 제공하기 위한 모듈이다.


2. 설명[편집]


파일:TPM 이미지.svg
TPM 1.2의 구성도. TPM 2.0에서는 이 이외의 기능들이 더 추가되어있다.
이는 암호화 알고리즘 엔진과 암호화키 생성기(RSA, ECC), 해시 엔진(SHA-1, SHA-2 256), 난수 생성[1] 등의 기능을 제공하고 이 암호화 키를 저장하기 위한 비휘발성 메모리(Non-Volatile Memory)의 저장 공간을 제공한다.

TPM의 버전으로는 주로 1.2와 2.0으로 나뉘는데, 2.0에서는 공개키 암호화 알고리즘으로 기존 RSA에 ECC가 추가되고 대칭키 암호화 방식인 AES와 256비트 해시 기능인 SHA-2가 추가되었다.

저장 공간 관리에도 있어서 TPM 1.2에서는 제품 출하 시에 정해진 보증키(Endorsement Key, EK)[2]와 저장소 루트 키(Storage Root Key, SRK)를 한 계층으로만 관리했었는데, TPM 2.0에서는 이를 3계층으로 나누어서 보증키를 저장하는 보증 계층(Endorsement Hierarchy, EH)과 저장 계층(Storage Hierarchy, SH)으로 분리하고 제조업체나 운영 체제가 별도로 사용할 수 있는 저장 공간인 플랫폼 계층(Platform Hierarchy, PH)을 추가하였다.[3]

Windows XP(2003/R2) 부터 Vista(2008) 까지는 TPM 1.2만 작동하고, 7과 Server 2008 R2는 별도의 핫픽스[4]를 적용하지 않는 이상에는 TPM 2.0이 작동하지 않는다. Windows 8 & 8.1과 이후 운영체제의 경우 TPM 2.0과 TPM 1.2 둘 다 정상적으로 작동한다. 그리고 Windows 11부터는 TPM 2.0를 필수적으로 요구한다. 다만 8월 27일, Microsoft에서 TPM 1.2 환경이어도 iso로 클린 설치를 하면 막지 않겠다고 했고(#), 정식 출시 후에 TPM 1.2 환경이어도 우회해 설치할 수 있는 방법을 공개하였다.(문서 참고).

그러나 만약 우회 설치를 하더라도 업데이트 등의 지원은 없다는 경고문이 뜨게 되어있었는데, TPM 2.0이 있는 환경에서 CPU 등의 일부 사양[5]이 요구사항에 미달하여 클린 설치를 하거나 TPM 1.2가 있는 상태[6]에서 공식 우회방법으로 업그레이드한 경우 CPU 세대에 상관 없이 지원이 되고 있다. 하지만 TPM 1.2 등의 최소 요구 사항을 전부 씹어버리고 비공식 우회 방법으로 구형 시스템에 설치한 경우에 설치는 되지만 업데이트 등의 지원이 되지 않는다.

2022년 11월에 Quarkslab이란 기업에서 CryptParameterDecryption라는 함수에 out of bounds 취약점이 있다는 걸 발견해 이들 취약점은 CVE-2023-1017과 CVE-2023-1018이란 이름을 받았다.

우분투 리눅스는 23.10부터 TPM 2.0을 지원한다.

3. 종류[편집]


TPM은 크게 별도 IC칩으로 추가 장착하는 형식의 Discrete TPM과, 칩셋에 통합되어 기능이 제공되는 Integrated TPM, 메인보드 UEFI 펌웨어에서 지원하는 Firmware TPM으로 분류할 수 있다.


3.1. Discrete TPM[편집]


파일:TPM모듈.png
물리적으로 나누어진 별도의 칩과 비휘발성 저장공간을 가지고 있는 모듈 형태로 제공된다. 조립 PC에서 주로 보이는데 일반적으로 이 모듈을 장착할 수 있는 TPM 포트가 달려 있어 이 TPM 포트에 Discrete TPM을 추가로 장착할 수 있다.

코어2 시리즈(2006년)부터 TPM 1.2 모듈이 등장한 것으로 보이며 2010년대 들어서 AMD FX 시리즈와 인텔 4세대 하스웰 시기부터 TPM 2.0 모듈이 등장했지만 메인보드 제조사 마다 핀 개수가 제각각이라서 보통 윈도우 11이 나오기 전에는 일반인들이 TPM 모듈을 따로 구매하여 장착한 경우가 적었다.# TPM 모듈 장착한 모습

그래서인지 메인보드 TPM 모듈 핀 개수가 다르다는 점을 고려해 자작한 사람도 있었다. 물론 인텔 5세대와 AMD 라이젠 시리즈부터는 CPU 자체적으로 Firmware TPM이 지원하게 되어 일반인들이 Discrete TPM(모듈식 TPM) 구입하여 메인보드에 장착한 사례는 더욱 드물어 졌다.


3.2. Integrated TPM[편집]


메인보드 자체에 칩셋을 따로 추가하여 내장된 TPM 기능으로 주로 브랜드 PC용 메인보드에 처음부터 장착된 경우가 많았다. 특히 비즈니스용 노트북이나 데스크탑에 들어간 경우가 많았는데 2006년부터 TPM 1.2가 처음으로 적용되었으며 2010년대 이후에는 TPM 1.2에서 2.0으로 적용된 빈도가 늘어났었다. 물론 이후 인텔 5세대 및 AMD 라이젠 시리즈부터는 CPU에도 자체적으로 TPM을 내장(Firmware TPM)하게 되어 현재는 비즈니스용 노트북과 데스크탑이 아닌 일반 고사양 노트북이나 데스크탑에도 자체적으로 사용할 수 있게 되어 현재 Integrated TPM의 경우 산업용 등의 특수한 사양에서 보이는 것으로 추정된다.

Integrated TPM을 사용한 브랜드 PC 중에 HP 등의 일부 제조사에서는 구형 PC를 사용하지만 기존 TPM 1.2에서 2.0으로 올리거나 반대로도 사용 중에 문제가 발생하여 다운그레이드가 가능한 펌웨어를 배포하기도 했다.[7] 그럴 수 밖에 없는게 데스크탑은 몇몇 보안이 중요한 기업이나 관공서가 아닌 이상에는 필요성이 덜하지만 노트북의 경우 지문 인식 등의 보안 기능이 하드웨어 적으로 제공되는 노트북이 늘어나면서 필요성이 늘어났기 때문이다. 지문 정보나 사용자 인식 정보를 하드웨어 레벨에서 인증하기 위해서 지문이나 패스워드 등을 암호화하고 이를 저장하는 용도로 TPM이 사용된다.

Apple의 경우는 T 시리즈 칩에서 유사한 기능을 제공한다. Intel 프로세서가 장착된 Mac에 도입된 보조 칩이며 Apple Silicon 이주 후에는 AP 내장 보안 프로세서인 Secure Enclave로 통합되었다. Apple T 시리즈 문서 참고.


3.3. Firmware TPM[편집]


가장 일반적인 TPM으로 메인보드 UEFI 펌웨어에서 인텔 코어i 시리즈 또는 AMD 라이젠 시리즈 CPU의 신뢰 실행 환경(Trusted Execution Environment)을 이용해 지원하는 TPM 기능으로 인텔 브로드웰(Broadwell, 5세대) 이후, AMD 라이젠 시리즈 이후 모든 프로세서에서 fTPM 사용이 가능하다. 별도의 모듈 구매 없이 TPM 기능을 간편하게 사용할 수 있기 때문에 가장 흔한 방식으로 사용한다.

Firmware TPM의 암호화된 정보를 저장하는 공간은 별도 저장 공간을 제공하는 Discrete TPM과 달리 메인보드 UEFI 펌웨어와 같은 SPI 플래시 메모리이다.

AMD 계열의 메인보드에서는 'fTPM'이라는 명칭으로 제공되고 Intel 계열의 메인보드에서는 'Intel Platform Trust Technology'(Intel PTT)라는 명칭으로 기능이 제공되어 Firmware TPM의 기능을 사용하기는 위해서 UEFI 펌웨어 설정에서 기능을 활성화할 필요가 있다.

fTPM은 메인보드 UEFI에 있는 모듈이 CPU의 신뢰 실행 환경으로 동작하는 방식이기 때문에, TPM을 사용하고 있는 운영 체제 환경에서 PC를 교환하거나 업그레이드를 하면 TPM의 보증키가 변경되어 암호화된 정보에 접근할 수 없는 문제를 일으킨다. 이 경우 복구 키를 입력해야 암호화를 해제할 수 있다. 이러한 문제 때문에 윈도우 11 이후의 운영 체제에서는 하드웨어 업그레이드 시 TPM과 관련된 사항에 대해 주의를 기울일 필요가 있을 것이다.


3.3.1. 라이젠의 fTPM 스터터링 문제[편집]


AMD 메인보드 fTPM 활성화시 스터터링이 생기는 현상이 보고되었다.#, #1,#2 Windows 11 때문에 뒤늦게 이슈가 됐지만, Windows 11이 문제의 원인은 아니다. fTPM 활성화 후 Windows Hello나 코어 격리, 메모리 무결성, 비트라커 기능 등을 사용하면 Windows 10에서도 같은 문제가 생기고, 리눅스와 BSD는 더 심하다고 한다. Windows 11은 Windows Hello와 가상화 기반 보안(Virtualization-based Security)으로 사용하는 코어 격리, 메모리 무결성 기능이 기본으로 활성화 되어 있어서 TPM을 요구하기 때문에 문제가 발생한 것이다.(심지어 메인보드와 펌웨어 버전에 따라서는 Windows 11 대응하기 위해 기본으로 fTPM을 켜 놓도록 설정해 놓은 것도 있다고 한다.) Windows 10, 리눅스, BSD에선 그냥 fTPM을 끄고 안 쓰면 된다. 실제로 Windows 11 출시 전 펌웨어 버전 기준으론 거의 모든 보드의 fTPM 기본 설정이 비활성화이다.

AMD는 2022년 6월 14일 AGESA 1.2.0.7에서 공식적으로 해결했다고 발표했고 실제로 해결되었다는 사례도 있는 반면, 그대로거나 줄어들었을 뿐 해결되지는 않았다는 사례도 있다.#
  • 보드나 시스템에 따라 남아있는 문제가 있는 듯. 이 경우 윈도우 11을 새로 설치하거나 메이저 업데이트를 할 때만 fTPM 활성화하고 다시 끄고 쓰던가[8] Discrete TPM 모듈을 사서 설치하던가 해야 한다.
  • 참고로 업데이트 전 기존 세팅을 쓸 수 없는 보드가 많으니[9] 메모리 타이밍 등 세세한 설정을 해둔 사용자는 업데이트를 하기 전에 따로 기록해둬야 한다.#
  • 2023년 7월 리누스 토발스는 AMD 시스템에서 성능저하 문제로 난수 생성에 쓰이는 리눅스의 엔트로피 소스에 fTPM을 사용하지 않겠다는 입장을 공식적으로 밝혔다.#, AMD, 리눅스에서 fTPM 버그 해결 작업 시작


4. 용도[편집]


Windows에서 TPM의 용도로 대표적으로 비트라커가 있다.

또한 Windows Hello를 TPM과 함께 이용하면 인증 암호화 데이터가 로컬 디스크가 아닌 TPM 내부 저장 장치에 저장되어 보안성을 강화할 수 있다.

그리고 Windows 10 1803 이상 사용자는 TPM으로 Windows가 제공하는 가상화 기반 보안 기능들 중 코어 격리 기능과 메모리 무결성 기능을 사용할 수 있다. 코어 격리 기능은 핵심 시스템 프로세스와 보안 프로세스의 메모리 영역을 격리(Isolation)해 악성 프로그램이 접근할 수 없도록 보호하는 기능이고, 메모리 무결성 기능은 낮은 권한의 악성 프로그램이 높은 권한의 프로세스에 접근할 수 없도록 보호하는 기능이다.

그외에도 Windows Defender Credential Guard 기능도 있으나 Windows 10 Enterprise 이상의 제품에서만 제공하고 있다.

TPM은 소프트웨어적인 복호화에서 그치지 않고 하드웨어적으로도 보안성을 한층 강화하는 방법이기 때문에 제대로만 관리하면 매우 강력한 암호화 능력을 자랑한다. 공격자 입장에서 TPM으로 잠겨있는 암호화 디스크는 TPM을 실제로 손에 넣지 않는 이상은 거의 복호화 작업을 할 수 없게 되기 때문에 방어자가 TPM을 분리해 숨기거나 파괴하면 엄청나게 골치가 아파진다.

이러다 보니 중국[10]이나 러시아 등 일부 국가에선 사용이 제한될 정도.[11]


5. PC에서 TPM 지원 여부 확인 방법[편집]


Windows 운영 체제 환경에서 TPM을 확인하는 방법은 여러가지이다.

  1. 장치 관리자의 '보안 장치' 분류에서 '신뢰할 수 있는 플랫폼 모듈 2.0/1.2'가 존재하는지 확인하기.
  2. 윈도우 보안(ms-settings:windowsdefender)의 장치 보안(Device Security) 메뉴의 보안 프로세서 (Security Processor)에서 확인하기.
  3. tpm.msc
    에서 확인
{{{#!wiki style="margin: -5px -10px"
파일:Win10 TPM Check.jpg}}} ||
윈도우 10의 TPM 관리 화면
  1. 위와 같은 3번의 화면이 뜨지 않으면, 일부 메인보드 펌웨어(UEFI)에서는 공장 초기값인 기본값(Default)설정에서 TPM을 꺼 놓기도 하므로, 펌웨어 설정을 잘 살펴봐야 한다. 메인보드 펌웨어에서 TPM 설정을 찾아서 켜주고 펌웨어 설정값을 저장하고 재부팅한 후, 1, 2, 3번 과정 중 하나를 수행해서 체크해본다(3번이 가장 간편하다).
그렇게까지 했음에도 위와 같은 화면이 뜨지 않으면 자신의 PC에서 TPM을 아예 지원하지 않거나[12], 사용자가 TPM을 켜는 방법을 몰라서 있어도 못 쓴다는 뜻이다.

6. Windows 11 업그레이드 관련[편집]


TPM 1.2만 지원하는 메인보드이면 Windows 11 클린 설치만 된다. 개발 초기에는 TPM 1.2도 가능했는데, 개발중기에 TPM 2.0만 가능하도록 바뀌었고, 2021년 8월 27일, 마이크로소프트는 TPM 1.2만 지원하더라도 클린 설치는 가능하다고 발표했다.# 즉, TPM 2.0 칩을 별도로 설치하거나 메인보드를 바꿔야 클린설치가 아닌 업그레이드를 할 수 있는 것이다. 이에 따라 향후 상당 기간에[13] TPM 2.0 모듈이 내장되었거나 장착이 가능한 컴퓨터만 사용할 수 있게 되었다.

이미 윈도우 11 관련 특수를 노린 되팔이들이 TPM 2.0 모듈을 싹쓸이하고 있으며, 온라인 시장에서 가격이 폭등하고 있다(참고 기사(영문)).

허나 2010년대 중반에 구매한 컴퓨터라면 TPM 2.0 기능이 이미 메인보드CPU에 탑재되어 있을 가능성이 높으니, 괜히 웃돈 주고 TPM 2.0 모듈을 구매하기 전에 UEFI(BIOS) 업데이트나 셋업을 잘 살펴보아야 한다.

가장 좋은 방법은 자신이 사용하는 메인보드의 모델명을 찾아 인터넷에서 TPM 2.0 탑재 여부를 검색해보는 것이다. 만약 모델명을 모를 경우 컴퓨터 부팅 중에 UEFI 셋업으로 들어가 고급 메뉴(Advanced)나 주변장치(Peripherals/peripherls device)에 PCH-FW Configuration 등 플랫폼 컨트롤러 허브 관련 메뉴에서 TPM Device 관련 설정이나 Intel Platform Trust Technology[14]을 찾아보자. 이 설정이 있다면, "Enable"로 설정해주면 TPM 모듈이 활성화된다.[15] 대개 최근 4~5년 사이, 즉 2010년대 중반에 출시된 메인보드/CPU라면 TPM 2.0 기능이 내장되어 있을 가능성이 높다고 한다.[16] 데스크탑은 인텔 6세대, AMD 라이젠 1세대부터 TPM 2.0이 기본적으로 탑재되어 지원하며, 모바일은 일부 5세대 노트북부터 TPM 2.0을 지원한다. 일부 메인보드의 경우 업데이트로 TPM 옵션이 활성화되니 그것도 살펴봐야 한다.

Microsoft가 배포하는 PC 상태 검사[17] 프로그램 등 윈도우 11 업그레이드 가능 여부를 진단해주는 프로그램들은 메인보드에 TPM 2.0 기능이 내장되어 있는지 확인해주지 않는다. 기능이 있더라도 비활성화된 상태라면 윈도우 11로 업그레이드할 수 없다는 메시지만 보여준다. 업그레이드 불가로 진단되더라도, UEFI 셋업에서 TPM 메뉴를 찾아 활성화시켜준 후 다시 진단하면 업그레이드 가능으로 나온다.

국내에서 TPM 2.0 표준 칩을 활용하여 모듈을 직접 제작해 컴퓨터에 장착 및 인식에 성공한 사례가 있다. 관련자료 하지만, 메인보드 자체적으로 펌웨어 차원에서 TPM 1.2 이하 밖에 지원하지 않거나, 메인보드 제조사나 완제품 PC의 제조업체에서 펌웨어 업데이트를 내놨을 때 TPM 버전을 2.0으로 올리는 게 포함되지 않는다면 2.0 칩을 꽂으려 해도 버전업이 불가능 하다고 한다.


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-04 02:24:00에 나무위키 TPM 문서에서 가져왔습니다.

[1] 난수 생성은 CPU로도 할 수 있는데 왜 TPM이 지원하는지 의문이 들 수 있겠지만, CPU는 난수를 간단하게 만들 수 없다. 오직 정해진 값에 따라 정해진 값을 내주기 때문에 사람처럼 무의식적인 혹은 우연에 의한 선택을 할 수 없다. 따라서 특정한 방법을 쓰거나 시드(Seed)를 초기값으로 하여 여러 계산 과정을 거쳐서 마치 임의의 값처럼 만드는 방식인데 이를 '의사 난수'(Pseudo random)라 부른다. 의사 난수는 완전한 난수가 아니므로 보안 취약점이 있다.[2] RSA 공개키 암호화 기반으로 암호화를 위하는 공개키(EKPub), 복호화를 위하는 비밀키(EKPriv), 공개키의 유효성 체크를 위하는 인증서(EKCert)를 관리한다. 모든 제품마다 각각 다른 키를 갖고 있고 변경할 수 없다.[3] Windows 11에서 TPM 1.2가 아닌 TPM 2.0 이상으로 제한이 걸린 이유가 Windows 11이 로컬 디스크가 아닌 이 TPM의 플랫폼 저장 공간에 암호화 정보를 저장하는 용도로 사용하기 때문으로 보인다.[4] 현재 해당 핫픽스는 MS의 업데이트 서버에서 삭제된 상태라 구글 검색으로 찾아야 한다.[5] CPU에 자체적으로 TPM이 포함된 코어 i 시리즈 5세대 ~ 7세대 및 RYZEN 1000 시리즈가 대표적이다. 그 외에 TPM 2.0 모듈을 메인보드에 장착할 경우 인텔 4세대 하스웰, AMD FX 시리즈도 추가로 포함된다. 실제로 하스웰 CPU에 TPM 2.0 모듈을 장착한 사례가 있다.[6] 일부 브랜드 PC 제조사의 경우 2006년부터 TPM 1.2를 메인보드에 자체적으로 장착하기도 했으며 코어 2 듀오 및 이후 세대의 조립 PC용 메인보드들의 경우 대부분 TPM 1.2 모듈 장착이 가능하며 비교적 최근에 생산된 메인보드들의 경우 TPM 2.0 모듈도 장착이 가능하다.[7] 일부 업무용 모델 한정.[8] 이렇게 쓰면 당연히 비트라커의 TPM 연동 등 관련 보안 기능은 못 쓴다[9] 최소한 ASUS AMD 보드는 전 제품 해당하는 듯하며 해당하는 보드는 USB 메모리 등에 세팅을 저장하는 기능이 있어도 업데이트 후에 불러오면 제대로 적용되지 않는다[10] 실제로 중국에서 TPM칩 탑재 장비 판매가 금지되어 있으며#, 1999년부터 자체 개발했다고 주장하는 기술인 TCM을 대체제로 쓰고 있다.[11] 그래서 윈도우 11의 최소 사양에서 일부 특수 목적 시스템에선 없어도 허용되는 특수 이미지나 특별주문인 경우 없어도 될 거란 조항과, 중국 및 러시아등의 TPM 금지 국가를 연관 짓는 추측이 있기도 했다. #[12] 예를 들어 일부 대기업 완제품 데스크탑 메인보드에 TPM 칩을 꽂을 수 있을 것으로 보이는 핀 배열을 새겨놓은 곳에 TPM 포트가 제거되어 있는 경우도 있다. 노트북이야 비즈니스 업무 때문에 서양 기준으로 2006년부터 들어가기 시작해서 2009년 이후엔 넷북 빼면 대부분 들어가던 것과 별개로, 개인 사용자의 경우에는 윈도우 11의 TPM 의무화 발표 전까진 크게 별 관심을 받지 못했고 PC 제조 업체는 아무래도 수익성 문제로 데스크탑보다는 노트북을 더 신경 쓰는 경우가 많으며, 그정도 보안이 필요할 공공기관은 컴퓨터가 중소기업자간경쟁제품이라 못 주문하니 #, 일부 대기업의 메인보드 커스텀 과정에서 단가 때문에 TPM 포트를 제거한 경우가 간혹 있었다. 물론 Discrete TPM 포트가 없는 경우 Firmware TPM로 대체할 수도 있으며, 실제로 fTPM가 출시된 게 2013년이라 이걸 TPM으로 사용할 수 있다. 문제는 그게 TPM 2.0을 지원하지 않으면(=1.2나 그 이하 까지만 지원한다면) 소용이 없다. 메인보드를 개조해서 칩을 꽂아 버전업을 하겠다는 위험한 선택을 하지 않으면 사실상 사용 불가나 다름이 없다. 게다가 이 경우 윈도우 프리도스가 아닌 이상 운영 체제가 완제품에 들어가는 OEM 제품인 경우가 대부분인데, 이게 제품 키가 메인보드에 귀속된 경우가 대부분이라 메인보드를 교체하면 인증권이 소멸되는 경우도 있다. 만약 메인보드가 TPM 2.0 지원을 막아서 Windows 11를 설치하는데 메인보드 교체가 반드시 필요한 경우라면, 마이크로소프트 계정에 등록되었으면 메인보드 교체를 우회할 여지도 있으나 그런 경우마저도 아니라면 메인보드 교체 때문에 운영 체제도 새로 사야할 수 있다.[13] 즉, TPM 다음 버전이 나오거나 다른 기술이 표준으로 선택될 때까지. Microsoft는 TPM 2.0의 연장선상에서 Microsoft Pluton 칩을 개발한 상태이다.[14] 일부 ASUS 보드는 TPM Device Selection에서 Enable Firmware TPM을 선택하면 활성화된다.[15] 일부 메인보드에선 intel bios guard technology를 먼저 Enable 한 후 저장 및 종료한 후에 다시 UEFI 셋업에 들어가야 TPM(혹은 TTM) 옵션이 표시되는 경우가 있음으로 참고하길 바란다.[16] AMD의 fTPM, 인텔의 PTT가 개발된 것이 2013년이므로 그보다 뒤에 제작된 메인보드/CPU라면 TPM 2.0이 이미 탑재되었을 가능성이 있다.[17] 한때 된다/안 된다 정도만 알려줬고, CPU는 최소 사항을 만족해도 권장 사항급이 아니면 칼같이 불가 판정을 내려서 일반 사용자가 참고하기 어려웠던 이유로 배포가 중단되었다가 언젠가부터 어느 부분이 지원 미달인지 나오게 업데이트되어서 다시 배포되었다.