최신 NI Linux Real-Time 업데이트는 Trusted Platform Module (TPM)에 대한 지원을 포함합니다. 이 문서에서는 TPM을 정의하고, TPM의 사용 사례를 설명하고, TPM을 사용하는 방법에 대해 설명합니다.
Trusted Platform Module (TPM)은 신뢰 루트로 사용되는 하드웨어 구성요소로, 암호화 키를 안전하게 생성, 저장, 사용하도록 설계되었습니다. TPM은 비밀을 저장하는 안전한 위치이며, 이는 다른 사람이 얻지 못하게 하려는 정보입니다. TPM은 암호화 키와 같은 중요한 정보를 저장할 때 몇 가지 장점을 제공합니다.
이러한 기능으로 TPM은 중요한 데이터 또는 데이터를 보호해야 하는 민감한 환경에서 작동하는 테스트 시스템에 매우 유용합니다.
TPM은 일반적으로 디스크 암호화, 디바이스 ID 및 인증, 펌웨어 구성 요소의 정품 확인(보안 부팅) 및 애플리케이션 비밀 보호에 사용됩니다. 이는 테스트 및 측정 어플리케이션의 경우, 시스템이 다음 예 중 하나에서 TPM을 사용할 수 있음을 의미합니다:
TPM 1.2은 2003년에 출시되었으며 RSA 및 SHA-1 암호화를 지원합니다. TPM 2.0은 TPM 표준의 2014 주요 재설계로, ECC, SHA-256 등의 최신 알고리즘을 포함합니다. TPM 2.0은 최신 표준이며 Windows 11에서 필요하며 일부 NI 하드웨어에서 사용됩니다.
NI Linux Real-Time에서 TPM에 접근하고 사용하는 것은 디바이스의 SSH 세션을 통해 이루어지며 Linux, NI Linux Real-Time 및 보안 개념에 대한 지식이 필요합니다. 안전한 어플리케이션을 위해 NI Linux Real-Time을 평가하는 개발자들에게 제공되는 정보는 여기에 기재되어 있습니다. 자세한 내용은 여기 언급된 각 라이브러리에 대한 최신 NI Linux Real-Time 문서와 공개 문서를 참조하십시오.
이 설명은 TPM이 있는 NI Linux Real-Time 디바이스에만 적용됩니다. TPM은 일부 PXI 컨트롤러 및 일부 CompactRIO 컨트롤러에서 사용할 수 있습니다. TPM이 포함된 PXI 컨트롤러 목록은 NI 컨트롤러용 TPM(Trusted Platform Module) 지원을 참조하십시오. TPM은 대부분의 CompactRIO 시스템에 포함되어 있지 않지만 NI cRIO-9048과 함께 주문할 수 있습니다. 이 문서에서는 TPM 옵션이 있는 NI cRIO-9048을 사용했습니다.
NILRT 11.5 (2026Q2) 버전은 사용자와 어플리케이션의 TPM 상호작용에 대한 강화된 지원을 도입했습니다. 이 문서는 시스템이 최소한 이 버전으로 업그레이드되었다고 가정합니다. 보안 시스템의 경우 최신 버전으로 업그레이드하는 것이 권장 사항입니다.
NI 하드웨어 관리자를 사용하여 타겟에 연결하고 펌웨어 업데이트 및 소프트웨어 관리 사이드바 대화 상자를 사용하여 OS 구성요소를 업그레이드합니다.
SSH 클라이언트를 사용하여 타겟 디바이스에 대한 쉘 연결을 엽니다. 명령 윈도우에서 SSH 세션을 엽니다.
NI MAX 또는 NI 하드웨어 관리자에서 설정한 대로 사용자 이름과 암호를 입력합니다. 기본 사용자 이름은 admin이고 기본 암호는 공백입니다.
디바이스에 TPM이 있는 경우, 부팅 시 하나 또는 두 개의 파일(tpm0과 tpmrm0)을 생성합니다. 디바이스가 있는 경우, 다음 명령을 실행합니다.
다음 정보를 리턴합니다.
디바이스에 TPM이 없는 경우, 응답은
NI Linux Real-Time의 2026 Q1 버전부터, TPM을 지원하는 모든 라이브러리를 설치하는 메타 패키지 설치 프로그램이 포함되어 있습니다.
이 명령은 여러 TPM 패키지를 설치합니다. 사용할 수 있는 도구는 다음과 같습니다:
tpm2-tools에는 TPM과 상호작용하는 100개 이상의 기능이 포함되어 있습니다. 유용한 명령은 “tpm2_pcrread”:
이렇게 하면 리스트에 있는 TPM 레지스터의 내용이 반환됩니다.
이러한 레지스터를 PCR (Platform Configuration Registers)라고 합니다. 처음 8 개의 PCR(0–7)은 BIOS 작성합니다. 이러한 해쉬 값은 직접 쓸 수 없습니다. 값은 시스템 측정값이 변경될 때에만 업데이트됩니다.
PCR 7에는 보안 부팅이 활성화되었는지, 어떤 제조업체 키가 사용되고 있는지 등과 같은 보안 부팅 상태가 포함되어 있습니다. 이 레지스터는 일반적으로 잠금 해제에 사용됩니다. 저장된 값이 현재 시스템 측정값과 일치하는 경우, 시스템은 동일하며 신뢰할 수 있습니다.
PCR 8과 9는 OS 부팅 로더(GRUB)로 컨트롤됩니다. PCR 8에는 부팅 설정의 부팅 로더가 수행한 측정값이 포함되어 있습니다. 이는 OS 부팅 관리자 구성요소, 커널 이미지, 부팅 관리자 이후, 전체 OS 런타임 전에 발생하는 OS 특정 측정을 포함할 수 있습니다.
PCR 9는 커널 명령 라인 파라미터, 런타임 동작에 영향을 주는 OS 설정 값, 부팅 중 측정된 정책 관련 OS 셋팅과 같은 OS 설정 데이터를 포함합니다. PCR 8과 9는 함께 로드된 OS와 해당 OS의 설정 방식을 측정합니다.
나머지 레지스터인 PCR 10-23은 부팅 후 발생하는 소프트웨어, 런타임 상태, 다이나믹 이벤트를 측정하는데 사용되는 OS 및 어플리케이션 컨트롤 PCR입니다. TPM을 사용하면 소프트웨어 어플리케이션이 이러한 PCR을 사용하는 방법을 결정할 수 있습니다. 일반적인 용도에는 데이터 저장 또는 전송을 암호화하는 TPM 밀폐 키, 원격 인증 키 저장, 런타임 변경 감지 및 기타 보안 트랜잭션이 포함됩니다.
부팅 중 모든 측정이 수행되는 로그를 보려면 tpm2_eventlog를 사용하여 securityfs 파일 시스템에서 tpm0 디바이스의 2진수_BIOS_측정 파일의 내용을 읽습니다.
이 명령은 로그 파일을 분석하여 TPM이 부팅 중에 수행하도록 지정한 PCR 측정을 보여줍니다. 이 로그를 사용하여 시스템 상태를 변경할 수 있는 이벤트를 포괄적으로 이해할 수 있습니다.
TPM PCR에 접근하면, 프로그램적으로 TPM을 읽고 쓸 수 있고 TPM 기능을 사용할 수 있습니다. TPM 함수의 자세한 사용은 이 문서의 범위를 벗어나지만, 수행할 수 있는 작업의 예는 다음과 같습니다.
Cryptsetup
Cryptsetup은 휴면 상태의 데이터에 대한 디스크 암호화를 제공합니다. cryptsetup을 사용하면, 암호화된 볼륨을 생성하고, 암호화된 볼륨을 마운트할 수 있도록 잠금 해제하고, 암호화된 볼륨을 잠그고, LUKS 키 슬롯을 관리하고, TPM 밀폐된 키를 통합할 수 있습니다. Cryptsetup은 디스크를 암호화하는 방법을 정의하고, clevis는 키를 제공하고 접근하는 방법을 정의합니다.
간단한 예로, 다음 단계에 따라 cryptsetup을 사용하여 디스크의 파일 내의 디스크 파티션을 암호화합니다.
1.디스크 이미지를 보유할 2진 파일을 생성합니다.
2.디스크 이미지 파일 안에 LUKS 암호화 파티션을 생성합니다.
3.사용자가 제공한 통과구문을 사용하여 암호화된 파티션을 열고, /dev/mapper 아래에 파티션의 암호화 해제 보기를 나타내는 버추얼 블록 디바이스를 생성합니다.
4.맵핑된 블록 디바이스에 파일 시스템을 생성합니다.
5.암호화된 파티션을 마운트합니다.
암호화된 파티션을 마운트한 후에는 다른 모든 파일 시스템과 마찬가지로 사용할 수 있습니다.
이와 비슷한 방법을 사용하여 선택한 이동식 스토리지 드라이브를 암호화할 수 있습니다. 단계 2의 luxFormat 명령을 OS에서 드라이브의 디바이스 경로를 가리키면 이렇게 할 수 있습니다.
cryptsetup을 사용하는 추가적인 암호화 옵션 또는 설정은 Cryptsetup Documentation 을 참조하십시오. LinuxRT OS 파티션의 암호화는 현재 지원되지 않습니다.
클레비스
Clevis를 사용하면 Linux Unified Key Setup (LUKS) 볼륨 해독 키 슬롯을 TPM PCR 상태에 연결할 수 있습니다. 다음 명령은 /dev/sdx에서 LUKS 파티션의 새 키 슬롯을 생성하며, 이는 PCR 7, 8, 9의 TPM 전류 측정값에 연결됩니다.
이 경우, 보안 부팅 및 OS 펌웨어 변경되지 않은 경우에만 LUKS 암호화 해제 키를 다음 부팅에서 읽을 수 있습니다.
clevis에 전달된 정책 문자열은 해독 키를 해제하는데 필요한 조건을 결정합니다.
커널이 변경될 경우 잠금을 해제하지만 펌웨어 동일해야 합니다. 이렇게 하면 OS가 업데이트될 수 있습니다.
OS가 변경되지 않고 PCR 11에 저장된 어플리케이션으로 컨트롤되는 측정값도 변경되지 않은 경우에만 잠금을 해제합니다.
LUKS 볼륨에 대해 여러 키 슬롯을 생성하여 여러 개의 잠금 해제 메소드를 제공할 수 있습니다. TPM PCR이 일치하는 경우, 한 슬롯이 자동 잠금 해제를 허용할 수 있습니다. 다른 슬롯에서는 TPM PCR에 저장된 값과 일치하는 경우, 통과 구문이 볼륨을 잠금해제할 수 있습니다. 다른 방법에서는 오프라인에 저장된 복구 키를 입력할 수 있습니다.
권장 방법 노트: TPM 상태를 사용하여 암호화된 디바이스의 잠금을 해제하더라도, 데이터를 잠금 해제하는 백업 방법으로 cryptsetup으로 설정한 원래 LUKS 암호화 통과상태를 유지하도록 권장합니다.
clevis luks 리스트를 사용하여 LUKS 디바이스의 잠금을 해제하는 디바이스 키를 확인합니다.
clevis 명령의 전체 리스트를 확인하려면, 도움말 함수 (-h)를 호출합니다.
이벤트 로그는 부팅 시퀀스에서 발생하는 문제를 이해하여 문제를 디버깅하는데 유용합니다. /sys/kernel/security 폴더에서 이 로그에 접근합니다. TPM이 존재하는 경우, 다음 명령:
tpm0/ 폴더가 생성되었음을 보여줍니다:
“tpm0/” 디렉토리 내에서 BIOS는 부팅 시퀀스의 정보를 “binary_bios_measurements”라는 파일에 기록합니다. 이 파일을 통해 부팅 문제를 확인합니다.
NI Linux Real-Time을 실행하는 TPM 활성화 디바이스를 사용하면, TPM의 기능을 활용하여 키를 저장하는 표준 Linux 라이브러리를 구현할 수 있습니다. 이 키는 디스크 암호화, 보안 부팅, 데이터 암호화, 디바이스 인증, 어플리케이션에 프로그래밍하는 기타 기능과 같은 보안 함수에 사용될 수 있습니다. TPM 디바이스에 저장된 키는 프로세서나 디바이스 메모리에 접근할 수 없도록 보호됩니다. TPM은 이러한 수준의 보호 기능을 제공하는 업계 표준이며, Windows 11에서 필요하며, 이제 NI Linux Real-Time 디바이스에서 사용할 수 있습니다.
Linux® 등록 상표는 전 세계에 상표권을 보유하고 있는 Linus Torvalds와 독점 라이센스 계약을 맺고 있는 LMI의 2차 라이센스에 따라 사용되었습니다.
Microsoft와 Windows는 Microsoft 그룹 회사의 상표입니다.