UEFI 보안 부팅에 대한 오픈 소스 대안이 있습니까? [폐쇄]

UEFI 보안 부팅에 대한 오픈 소스 대안이 있습니까? [폐쇄]

내가 아는 한 UEFI와 보안 부팅에는 심각한 문제가 있으며 확실히 앞으로 나아갈 길이 아닙니다.

바라보다:https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#비판

반품여기그것은 말한다:

SecureBoot의 경우 서명 확인이 필요한 UEFI 시스템은 오픈 소스가 아닙니다. 오픈 소스라고 해서 서명에 사용하는 키가 시스템에 사전 설치되어 제공되는 것은 아닙니다.

UEFI Secure Boot의 오픈 소스 버전이 있는지 묻고 싶습니다.

답변1

가장 가까운 UEFI 대안은 다음과 같습니다.핵심 지침.

답변2

실제로 보안부트 서명을 확인하는 부분은열려 있는. Intel TianoCore의 일부입니다. 문제는 기성품 하드웨어를 구입할 때 하드웨어 공급업체가 실제로 무엇을 넣었는지 확인할 방법이 없다는 것입니다. 하지만 이는 보안 부팅 자체가 아닌 PC 펌웨어의 일반적인 문제입니다.

오픈 소스 운영 체제 자체(예: Linux 또는 FreeBSD)의 보안 부팅의 시스템 측면도 완전히 오픈 소스입니다.

보안 부팅에는 문제가 있습니다. 서명 구성표는 매우 나쁩니다. 그러나 "개방성 부족"은 그 중 하나가 아닙니다.

답변3

이것은 실제로 직접적인 대체가 아니며 원하는 것이 아닐 수도 있지만 TPM(신뢰할 수 있는 플랫폼 모듈)이 필요한 유사한 솔루션을 "신뢰할 수 있는 부팅" 또는 tboot라고 합니다. 몇 가지 주요 방식은 다르지만 최종 목표는 동일합니다. 즉, 부팅 체인과 시스템 상태에 대한 신뢰 수준을 구축하는 것입니다.

Tboot 자체는 실제로 MLE(또는 측정된 부팅 환경)라는 개념의 오픈 소스 구현입니다. 간단히 말해서 Intel TXT를 실행하고 활용하여 시스템을 권한 있고 신뢰할 수 있는 상태로 설정한 다음 운영 체제 및 관련 구성 요소의 측정(TPM 1.2의 SHA-1 해시)을 허용하는 이진 코드 덩어리입니다. 안전한 저장을 위해 TPM으로 푸시합니다. 예를 들어, Linux에서는 커널이 로드되기 직전에 tboot가 실행되도록 설정할 수 있습니다. 그러면 커널 바이너리, 커널 매개변수 및 initramfs 이미지의 해시가 생성되어 각각 TPM으로 전송됩니다.

또한 TPM 및 호환 마더보드/BIOS를 사용하면 부팅 프로세스 초기에 BIOS 이미지 자체, 사용자 정의 BIOS 설정, PCI 카드 펌웨어(GPU, NIC 등), 부트 ​​로더(예: 땅벌레) 등 이러한 측정이 어떤 용도로 사용되는지 궁금하십니까? 글쎄, 그 자체로는 많지 않습니다. 대신, 이러한 측정값이 특정 값인 경우에만 TPM을 사용하여 TPM NVRAM 읽기/쓰기 또는 TPM만 해독할 수 있는 키 해독과 같은 많은 작업을 수행할 수 있습니다. 또한 이러한 측정값은 다른 당사자에게 안전하게(원할 경우 익명으로) 전송되어 해당 당사자가 원격으로 신뢰를 구축할 수 있습니다. 결과적으로 TPM의 PCR에 특정 측정값이 있는 경우 시스템은 특정 소프트웨어만 실행하거나 실행하도록 설계할 수 있습니다. 즉, 특정 소프트웨어 세트를 실행합니다. 즉, 무결성을 제공합니다.

기본적으로 TPM과 tboot를 결합하면 API를 사용하여 원하는 콘텐츠를 TPM에 저장함으로써 거의 모든 것을 측정/해시하도록 확장할 수 있는 광범위한 시스템 범위를 제공합니다. 주목해야 할 중요한 점 중 하나는 해시가 단순히 TPM에 직접 로드되지 않는다는 것입니다. 대신, 해시 값이 TPM의 내부 레지스터(PCR 또는 플랫폼 구성 레지스터)에 저장될 때 레지스터의 이전 값과 연결되어 Blob을 해시하고 결과를 레지스터에 저장합니다. 결과적으로 각 레지스터는 상태를 누적하고, 그 과정에서 차이가 있으면 최종 값이 변경됩니다. 이것을 tpm "확장"이라고 합니다.

기본적으로 TPM과 tboot는 보안 부팅 이상의 기능을 제공한다고 생각합니다. TPM은 보안 저장소, RNG, 다른 호스트에 시스템 상태 보고(증명) 등에 사용할 수 있는 범용 암호화 보조 프로세서입니다.

서명을 활용하고 서명이 체크아웃되지 않은 경우 부팅 프로세스를 중지하는 보안 부팅과 달리 TPM/tboot는 서명을 사용하지 않으며 부팅 순서를 직접 중지하지 않습니다. 대신, TPM이 특정 작업을 수행하도록 요구하여 시작 오류를 방지하도록 시스템을 설계해야 합니다. 이 작업은 시스템이 정의된 상태(필요한 경우)에 있을 때만 수행됩니다.

오픈 소스 비트와 그 투명성에 대한 우려에 관해서는 tboot/TPM도 암묵적 신뢰 수준으로 내려갑니다. 실제로 모든 소프트웨어가 오픈 소스가 아닌 한 이는 피할 수 없는 믿음의 도약인 것 같습니다. 하드웨어 및 하드웨어 회로도를 이해합니다. tboot 및 TPM의 경우 이러한 암시적 신뢰는 칩셋과 프로세서 자체까지 확장됩니다. 공개 키 체크섬은 칩셋에 내장되어 있으며 프로세서 마이크로코드에서 신뢰 체인을 시작하는 데 사용됩니다. 이 체크섬은 제가 가지고 있는 텍스트에 완전히 설명되어 있지 않지만 설명된 것은 BIOS ACM for SRTM(DRTM용 SINIT ACM이라고 함)이라는 BIOS 이미지의 코드 블록에 있는 프로세서 마이크로코드에 의해 서명이 확인된다는 것입니다. 물론 서명을 확인하려면 공개 키를 사용해야 하며, 공간상의 이유로 공개 키가 ACM에 내장되어 앞서 언급한 하드웨어 상주 체크섬과 비교하여 확인되는 것으로 추측됩니다.

관련 정보