현재 저는 측정 시작이 어떻게 작동하는지, 어떤 구성요소가 tpm2의 어떤 PCR에 무엇을 기록하는지 이해하려고 노력하고 있습니다.
uefi 보안 부팅이 활성화되고 tpm2가 kvm 가상 머신에 연결된 테스트 설정이 있습니다. 나는 tpm2_pcrread
합리적인 출력을 제공하는 tpm 지원 등을 사용하여 내 자신의 커널을 컴파일했습니다 . 이제 tpm 이벤트 내부를 살펴보고 싶습니다. 하지만 안돼요 /sys/kernel/security/tpm0
, 그러니 안돼요 binary_bios_measurement
. ubuntu 23.10 iso에서 라이브로 부팅하면 파일이 존재하며 tpm2_eventlog에서 읽을 수 있습니다. 그래서 우분투에서 커널을 가져와서 시스템을 부팅했지만 여기서도 작동하지 않습니다 /sys/kernel/security/tpm0
. 아니요, 이것을 노출하는 커널 모듈이 없는 것 같습니다. 또는 우분투에서 systemd가 이 경로를 생성합니다. 이에 대한 문서를 찾지 못했습니다. 이 경로/파일을 어디서, 누가 만들었는지 알아내는 방법을 모르겠습니다. 이것을 노출하는 방법을 아는 사람이 있나요 binary_bios_measurement
? 추신. 내 Linux에서는 systemd 대신 OpenRc를 사용합니다.
답변1
securityfs
가상 파일 시스템을 설치 하셨나요 ?
아무 것도 출력되지 않으면 grep ^securityfs /proc/mounts
설치되지 않은 것입니다. 수동 설치:
sudo mount -t securityfs none /sys/kernel/security
항상 설치되도록 하려면 파일에 다음 줄을 추가하세요 /etc/fstab
.
none /sys/kernel/security securityfs defaults 0 0
답변2
몇 시간의 시행착오와 커널 코드 읽기 끝에 우연히 해결책을 찾았지만 실제 원인은 찾을 수 없었습니다.
GRUB 2.06을 사용하고 있습니다. Ubuntu(2.12)와 함께 제공되는 GRUB 버전을 시도했을 때 디렉토리가 갑자기 tpm0
나타났습니다. 그래서 이 버전을 사용하여 GRUB를 직접 컴파일했는데 누락된 디렉터리가 존재했습니다.
GRUB이 2.06부터 측정 부팅을 지원한다는 내용을 읽고 조금 놀랐습니다. 그렇지 않더라도 부트로더는 이 경로를 노출하는 커널과 어떤 관련이 있습니까?
고쳐 쓰다
이제는 더욱 놀랐습니다. GRUB에 서명 sbsign
하고 PK, KEK, db를 설치했습니다 efivars
. 갑자기 디렉토리가 다시 사라졌습니다. BIOS에서 키를 지우면 디렉토리가 다시 나타납니다... 신비롭게요.