왜 `head -c 2 /dev/hwrng`가 작동하지 않습니까?

왜 `head -c 2 /dev/hwrng`가 작동하지 않습니까?

내 컴퓨터에 Atmel 97SC3201이 있고 커널에 다음을 설정했습니다.

  • CONFIG_HW_RANDOM_TPM
  • CONFIG_TCG_TPM
  • CONFIG_TCG_ATMEL

/devtpm0이 있지만 hwrng이를 실행하면 다음이 반환됩니다.

head -c 2 /dev/hwrng

산출:

head: error reading ‘/dev/hwrng’: Input/output error

dmesg다음 메시지 에 나타납니다.

tpm_atmel tpm_atmel: A TPM error (2048) occurred attempting get random

추가로 시도하면 다음 메시지가 생성됩니다.

tpm_atmel tpm_atmel: A TPM error (6) occurred attempting get random

왜 실패했거나 더 나은지, 어떻게 작동하게 만들 수 있는지에 대한 아이디어가 있습니까?

답변1

RNG는신뢰할 수 있는 플랫폼 모듈. 컴퓨터가 대규모 조직 조직에 속하지 않는 한, TPM은 잘못 구성된 경우 컴퓨터를 부팅할 수 없게 만들고 컴퓨터를 더 쉽게 추적할 수 있도록 기본적으로 비활성화됩니다.

RNG를 사용하려면 BIOS에서 이를 활성화해야 합니다. 이것씽크패드 위키Thinkpad에 대한 자세한 지침이 있습니다. 다른 모델이 있는 경우에도 조정에 도움이 될 수 있습니다. BIOS에서 TPM을 활성화하는 것만으로도 충분한지, 아니면 Linux에서 부팅할 때 초기화해야 하는지 잘 모르겠습니다. Linux 지원이 필요한 경우 설치하십시오.바지(대부분의 배포판에는 패키지가 있어야 합니다).

TPM의 다른 기능, 주로 보안 부팅을 사용할 수 있습니다(따라서 컴퓨터에 대한 루트 액세스 권한이 있는 사람이라도 부트로더를 감염시켜 루트킷²을 심을 수 없도록 함). 당신은해야합니다믿을 수 있는 땅벌레보안 부팅에 사용됩니다.

Linux에는 우수한 암호화 품질의 의사 난수 생성기가 내장되어 있으며 PRNG 시드에 대한 엔트로피를 수집하는 데 능숙합니다. 따라서 하드웨어 RNG의 이점은 매우 제한적입니다.

정확하게 말하면, TPM은 쉽게 거부할 수 없는 스푸핑하기 어려운 ID를 컴퓨터에 제공합니다. 이것은 주요 개인 정보 보호 문제가 될 수 있지만 실제로는 일반적으로 생각되는 것보다 훨씬 적은 문제입니다. TPM을 올바르게 사용하는 소프트웨어는 컴퓨터의 ID를 원격 당사자에게 전송하지 않고 대신 TPM을 다시 추적할 수 없는 응용 프로그램별 키를 사용합니다. 따라서 이는 타사 계정을 갖는 것과 같습니다. TPM을 잘못 사용하는 소프트웨어는 개인 정보를 노출할 수 있지만 모든 소프트웨어도 마찬가지입니다. 브라우저는 사용자에 대한 많은 정보를 유출하는 것으로 알려져 있습니다. 일상적인 웹 검색으로 인한 위험은 TPM으로 인한 위험보다 훨씬 큽니다.
²그러나 루트킷이 성장할 수 있는 다른 장소도 있다는 점에 유의하십시오. TPM은 시스템을 너무 많이 잠가서 추가 소프트웨어를 설치하기 어려운 경우에만 실제로 보호 기능을 제공합니다.

답변2

Thinkwiki 사이트에서 TPM을 활성화하는 단계는 다음과 같습니다.

Linux에서 TPM 사용

에서 발췌내장형 보안 하위 시스템ThinkWiki 웹사이트에서

  • 이 섹션은 매우 불완전하지만 시작하기 위한 몇 가지 지침은 다음과 같습니다. 2.6.23 이상의 커널을 컴파일하고 ThinkPad 모델에서 tpm 칩용 드라이버를 활성화합니다.
  • securityfs를 얻으려면 CONFIG_SECURITY를 활성화하고 eCryptfs TPM 지원을 사용하려면 CONFIG_KEYS를 활성화해야 합니다.
  • TCPA 로그에 액세스하려면 tpm_bios를 활성화해야 합니다.
  • /sys/kernel/securitytpm_bios 데이터(TCPA ​​로그)에 액세스 하려면 securityfs 파일 시스템이 마운트되어 있는지 확인하십시오 .
  • 임시 키로 암호화된 스왑 파티션을 가지려면 dm-crypt를 사용해야 합니다.
  • TCPA 로그는 securityfs 디렉터리에서 찾을 수 있으며 BIOS와 부트로더가 PCR을 사용하는 방법을 이해하는 데 도움이 될 수 있습니다. 로그에 있는 각 이벤트의 첫 번째 숫자는 해당 이벤트에 의해 확장된 PCR 레지스터의 번호입니다.
  • TPM을 사용하여 TPCA 로그 읽기 이외의 작업을 수행하려면 최신 버전의 TrouSerS 소프트웨어 스택이 필요합니다.
  • TPM을 사용하여 파일 시스템 키를 저장하려면 최신 eCryptfs 사용자 공간(TPM 지원 컴파일 포함)이 필요합니다.
  • TPM을 PKCS11 토큰으로 사용할 수 있지만 이것이 얼마나 안전한지는 모르겠습니다. 이를 위해서는 빈(잘 알려진) SRK가 필요하기 때문입니다.
  • Trusted-grub을 사용하면 Linux가 로드되기 전에 PCR을 처리하여 Linux 커널을 체크섬하고 해당 데이터로 PCR을 확장할 수 있습니다.
  • /sys/bus/platform/devices/tpm*/pcrsPCR은 sysfs를 통해 읽을 수 있으며 TPM 칩의 TPM 드라이버 파일 아래에 있습니다 .
  • TrouSerS 0.3.1 tpm_getpubek은 잘 작동하지 않는 것 같습니다. T43의 NSC TPM 칩에서 PUBEK 속성을 잘못 가져옵니다(그러나 핵심 데이터 자체는 정확합니다). 비교하여 sys/bus/platform/devices/tpm*/pubek확인해보세요.

관련 정보