`/sys/kernel/security/tpm0/binary_bios_measurements`는 언제 어떻게 공개되나요?

`/sys/kernel/security/tpm0/binary_bios_measurements`는 언제 어떻게 공개되나요?

현재 저는 측정 시작이 어떻게 작동하는지, 어떤 구성요소가 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에서 키를 지우면 디렉토리가 다시 나타납니다... 신비롭게요.

관련 정보