UEFI와 SecureBoot의 영향은 얼마나 심각합니까?

UEFI와 SecureBoot의 영향은 얼마나 심각합니까?

저는 앞으로 며칠 안에 새 노트북을 구입할 계획인데 새롭고 멋진 울트라북에 정말 감동받았습니다. 오랜 GNU/Linux 사용자로서 나는 물론 내가 선택한 배포판을 설치할 것입니다.

Windows 8이 사전 설치된 컴퓨터를 구입해야 할 가능성이 높습니다. UEFI를 실행하고 "보안 부팅" 기능이 있으며 서명되지 않은 커널은 부팅되지 않습니다.

UEFI는 괜찮을 수 있으며 BIOS를 폐기해야 할 수도 있습니다. 내 생각엔 모피가 그런 것 같아보안 부트.

내가 아는 한 일부는신뢰할 수 있는인증서는 펌웨어에 내장되어 커널에 포함됩니다.등.. 커널의 인증서인 경우모든 펌웨어로 추적 가능, 커널이 부팅됩니다. 그렇지 않으면 UEFI가 알려주고 부팅을 거부합니다. 이 프로세스는 인증되지 않은 소프트웨어가 실행되는 것을 방지합니다. 비록 내가 볼 수는 없지만 이것에는 이점이 있을 수 있습니다.

오픈 소스 커널이 어떻게 이러한 키 중 하나를 얻고 여전히 키를 사용할 수 있는지 궁금합니다.무료. 내가 읽고Linux 메일링 리스트의 스레드Red Hat 직원은 Linus Torvalds에게 PE 바이너리를 구문 분석하고 커널이 보안 부팅 모드에서 부팅되도록 하기 위해 복잡한 작업 세트를 수행하는 도구를 구현하는 변경 세트를 가져오도록 요청했습니다(제가 아는 한). Microsoft는 PE 바이너리에만 서명하기 때문에 그들은 이를 원합니다. 토발즈 씨는다정하게이 변경 세트는 거부되었습니다.커널은 이미 표준을 구현하지만 PE는 구현하지 않습니다.. RedHat은 이 코드를 커널에 푸시하여 언젠가 포크할 필요가 없도록 노력하고 있습니다.

보세요, 이것은 복잡한 일입니다. 내 질문을하겠습니다 :

  • 개인 사용자로서 UEFI 및 보안 부팅을 통해 어떤 이점을 얻을 수 있습니까?
  • 이건 어때징후완벽한?
  • 누가 서명/인증서를 받을 수 있나요? 유료인가요? 공개해도 되나요? (리눅스 소스코드에 있어야겠죠?)
  • Microsoft가 서명을 제공하는 유일한 회사인가요? 이를 제공할 수 있는 독립적인 재단이 있어야 하지 않을까요?
  • 이것이 오픈 소스 및 무료 커널, 취미/학술 커널 개발자에게 어떤 영향을 미칠까요?등.. 예를 들어, 이번 킥오프 미팅은 (매우 기본적인 부트 섹터 코드):

    hang:
       jmp hang
    times 510-($-$$) db 0
    db 0x55
    db 0xAA
    

소식 하나이 웹사이트에서이것이 이 질문의 영감이었습니다. 스페인 Linux 사용자 그룹은 다음과 같습니다.스페인Linux이 문제에 대해 유럽 위원회에 Microsoft를 상대로 불만 사항이 접수되었습니다.

걱정해야 할까요? 나는 독점 소프트웨어의 사용을 거부하거나믿다편집회사. 지금까지 이 일을 해왔고 앞으로도 계속하고 싶습니다. 미리 감사드립니다.

답변1

이 프로세스는 인증되지 않은 소프트웨어가 실행되는 것을 방지합니다. 비록 내가 볼 수는 없지만 이것에는 이점이 있을 수 있습니다.

하드웨어에서 부팅할 수 있는 것과 부팅할 수 없는 것을 제어하는 ​​새로운 보안 메커니즘이 있습니다. 안전 기능. 너무 늦을 때까지는 그것이 필요하다고 느끼지 않을 것입니다. 그러나 나는 빗나갔다.

Linux 메일링 리스트에서 Red Hat 직원이 Linus Torvalds에게 PE 바이너리를 구문 분석하고 복잡한 작업 세트를 수행하여 커널을 안전하게 부팅 모드 시작하도록 하는 도구를 구현하는 변경 세트를 가져오라고 요청한 스레드를 읽었습니다(제가 아는 한). ).

드라이버(예: GPU 펌웨어)는 보안 부팅에 따라 서명되어야 합니다. 그렇지 않으면 다른 루트킷일 수 있습니다. 현재 상황은 이러한 드라이버가 PE 형식으로 서명되어 있다는 것입니다. 어쨌든 커널은 이것들 없이 부팅할 수 있지만 하드웨어는 작동하지 않습니다. 커널에서 PE 형식을 구문 분석하는 것은 각 하드웨어 공급업체가 각 배포에 대한 Blob에 서명하도록 요구하거나 이를 위해 사용자 공간 프레임워크를 설정하는 것보다 기술적으로 더 간단한 옵션입니다. Linus는 더 이상 Microsoft의 거시기를 빨지 않기로 결정했습니다. 이것은 기술적인 주장이 아닙니다.

개인 사용자로서 UEFI 및 보안 부팅을 통해 어떤 이점을 얻을 수 있습니까?

가장 눈에 띄는 기능은 UEFI 빠른 부팅입니다. Windows 8 로고가 있는 몇 대의 데스크탑은 너무 빨리 부팅되어 부팅 메뉴 팝업을 놓치는 경우가 많습니다. 인텔과 OEM은 이 분야에서 많은 작업을 수행했습니다.

당신이 짜증나는 Linux 사용자 중 하나라면부종그리고코드 복제열정적으로 펌웨어 수준에서 멀티부트를 관리하고 부트로더를 완전히 제거하고 싶을 수도 있습니다. UEFI는부트 매니저당신은 그것을 사용할 수 있습니다커널로 직접 부팅또는 펌웨어 메뉴를 사용하여 다른 운영 체제를 부팅하도록 선택합니다. 약간의 땜질이 필요할 수도 있지만.

또한 시작 시 및 펌웨어 메뉴의 그래픽이 더 좋습니다. 시작 시 보안이 강화되었습니다(보안 부팅). 기타 기능(IPv4/6 네트워크 부팅, 2TB+ 부팅 장치 등)은 주로 기업 사용자를 대상으로 합니다.

아무튼 리누스처럼설명하다, BIOS/UEFI는 "OS를 로드하고 그대로 사용"하도록 되어 있으며 빠른 부팅 기능을 갖춘 일반 사용자의 경우 UEFI가 바로 그렇습니다. BIOS 이상의 기능을 수행하지만 가정용 사용자에 대해서는 신경 쓰지 않을 것입니다.

이 서명은 어떻게 이루어지나요?

이론적으로 바이너리는 개인 키를 사용하여 암호화되어 서명을 생성합니다. 그런 다음 공개 키로 서명을 확인하여 개인 키 소유자가 바이너리에 서명했음을 증명한 다음 바이너리를 확인합니다.위키피디아에서 더 보기.

기술적으로는 바이너리의 해시만 서명되며 서명은 PE 형식 및 추가 형식 회전으로 바이너리에 내장됩니다.

프로그래밍 방식으로 공개 키는 OEM에 의해 펌웨어에 저장되며 Microsoft에서 제공됩니다. 두 가지 옵션이 있습니다:

  1. 나만의 키 쌍을 생성하고 안전하게 관리하세요.자신의 공개 키를 펌웨어에 설치하십시오., 자신의 개인 키로 바이너리에 서명합니다(징후우분투에서 또는설계Fedora에서) 또는
  2. 바이너리를 Microsoft로 보내고 서명을 받으세요.

누가 서명/인증서를 받을 수 있나요? 유료인가요? 공개해도 되나요? (리눅스 소스코드에 있어야겠죠?)

서명/인증서는 바이너리에 포함되어 있으므로 모든 사용자가 이를 받아야 합니다. 누구나 자신의 CA를 설정하고 인증서를 생성할 수 있습니다. 그러나 Microsoft가 귀하를 위해 인증서를 생성하도록 하려면 Verisign을 통해 귀하의 신원을 확인해야 합니다. 절차 비용은 $99입니다. 공개 키는 펌웨어에 있습니다. 개인 키는 Microsoft의 금고에 있습니다. 인증서는 서명된 바이너리에 있습니다. 소스 코드는 포함되지 않습니다.

Microsoft가 서명을 제공하는 유일한 회사인가요? 이를 제공할 수 있는 독립적인 재단이 있어야 하지 않을까요?

기술적 측면은 PKI 관리, 신원 확인, 알려진 모든 OEM 및 하드웨어 공급업체와의 조정 프로세스에 비해 매우 사소합니다. 이는 비용이 많이 듭니다. Microsoft는 수년간의 인프라(WHQL)와 경험을 보유하고 있습니다. 그래서 그들은 바이너리에 서명하겠다고 제안했습니다. 어떤 독립 재단이라도 동일한 서비스를 제공할 수 있지만 지금까지 어느 재단도 그렇게 한 적이 없습니다.

IDF 2013의 UEFI 컨퍼런스에서 Canonical이 일부 태블릿 펌웨어에도 자체 키를 추가하기 시작하는 것을 보았습니다. 따라서 Canonical은 Microsoft를 통하지 않고도 자체 바이너리에 서명할 수 있습니다. 그러나 그들은 귀하가 누구인지 모르기 때문에 귀하를 위해 바이너리에 서명할 가능성이 없습니다.

이것이 오픈 소스 및 무료 커널, 취미/학술 커널 개발자 등에 어떤 영향을 미칠까요?

사용자 정의 커널은 서명되지 않았기 때문에 보안 부팅으로 부팅되지 않습니다. 하지만 끌 수 있습니다.

Secure Boot의 신뢰 모델은 커널의 특정 측면을 잠급니다. 지금 루트 사용자라도 /dev/kmem에 기록하여 커널을 손상시킬 수는 없습니다. 재개 시 커널 이미지가 부트킷으로 변경되지 않도록 할 수 있는 방법이 없기 때문에 디스크(업스트림 작업)에서 최대 절전 모드로 전환할 수 없습니다. 커널이 충돌하면 kdump(kexec) 메커니즘을 사용하여 부트킷을 부팅할 수 있으므로(업스트림에서도 작동) 코어를 덤프할 수 없습니다. 이는 논란의 여지가 있으며 Linus에 의해 메인라인 커널에 승인되지 않았지만 일부 배포판(Fedora, RHEL, Ubuntu, openSUSE, SUSE)은 어쨌든 자체 보안 부팅 패치와 함께 제공됩니다.

개인적으로 보안 부팅 커널에 필요한 모듈 시그니처를 빌드하는 데는 10분이 걸리지만 실제로 컴파일하는 데는 5분 밖에 걸리지 않습니다. 모듈 서명을 끄고 ccache를 켜면 커널 빌드에 1분밖에 걸리지 않습니다.

UEFI는 BIOS와 완전히 다른 부팅 경로입니다. UEFI 펌웨어는 모든 BIOS 부팅 코드를 호출하지 않습니다.

Hispalinux라는 스페인 Linux 사용자 조직은 이 문제에 대해 유럽 위원회에 Microsoft를 상대로 불만을 제기했습니다.

위에서 언급했듯이 Microsoft 외에는 누구도 공공 서비스를 수행하지 않습니다. 마이크로소프트가 이를 악의적으로 의도했다는 증거는 없지만, 마이크로소프트가 사실상의 독점 지위를 남용하는 것을 막을 수는 없습니다. 따라서 FSF 및 Linux 사용자 그룹은 실용적이지 않고 실제로 앉아서 문제를 건설적으로 해결하지 않을 수 있지만 Microsoft에 압력을 가하고 결과를 경고해야 할 강력한 필요성이 있습니다.

걱정해야 할까요? 나는 독점 소프트웨어나 신뢰할 수 있는 회사가 서명한 소프트웨어의 사용을 거부합니다. 지금까지 이 일을 해왔고 앞으로도 계속하고 싶습니다.

보안 부팅을 사용하는 이유:

  • 실제 보안 공격 벡터를 제거합니다.
  • 이는 사용자에게 하드웨어를 더 자유롭게 제어할 수 있는 기술적 메커니즘입니다.
  • Linux 사용자는 Microsoft가 보안 부팅을 더 독점하기 전에 보안 부팅을 이해하고 조치를 취해야 합니다.정책.

답변2

저는 최근에 Windows 8과 UEFI 보안 부팅이 탑재된 노트북을 구입했고 이 과정을 거쳤습니다. 많은 시간과 연구 끝에 다음 질문에 답할 수 있습니다.

  • "가정 사용자" 범주에 속하지 않는 것 같습니다.

일반 사용자가 알아차릴 UEFI의 이점은 화면에서 가장 먼저 보게 되는 것이 Microsoft/공급업체 브랜드의 UEFI 부트로더 디스플레이라는 것입니다. 이것들 중 아무것도 아닌무서운예를 들어, "설정하려면 Del을 누르고, 부팅 장치를 선택하려면 F11을 누르세요." 등이 있습니다.

그런 다음 Microsoft 커널/부트로더 대기 화면으로 원활하게 전환됩니다. 이는 "프롬프트의 힘" Microsoft 테마 경험을 제공합니다. 이것이 실용성이라면 취향의 문제인 것 같아요. 시작할 때 표시할 것으로 기대하는 일반적인 정보를 얻지 못해서 짜증이 납니다. 예를 들어 공급업체가 기본 UEFI/Bios 설정에 들어가기 위해 표준 키를 사용하지 않는다면 행운을 빕니다.

아, 이론적으로는 부트 섹터 바이러스를 막거나 적어도 작성자가 누군가의 ID를 생성/도용하고 Verisign에 99달러를 지불하게 할 수 있습니다(RedHat Fedora 경로. Google에서 검색).

아, 질문 하나 더. 누구나 어떤 키를 사용하여 코드에 서명할 수 있습니다. 문제는 시스템이 신뢰할 수 있는 인증 키로 서명된 코드만 실행한다는 것입니다. 키의 공개 키는 공장에서 시스템 UEFI 코어에 설치되며 개인 키로 서명된 UEFI 프로그램(부팅 코드)의 서명을 확인하는 데 사용됩니다.

공장에서 누구의 공개 키가 설치되었는지 추측해 보세요. 기본적으로 보안 부팅을 활성화하도록 요청한 사람은 누구일까요?

모든 시스템 제조업체는 분명히 Microsoft의 키를 여기에 배치합니다. 그들을할 수 있다Canonical(Ubuntu) 키, Red Hat 키, Apple 키 등도 넣어주세요. 그러나 키가 많을수록 침해 지점이 많아지고 저장할 수 있는 키 수에는 물리적인 한계가 분명히 있습니다.

당신과 같은 반항적인 컴퓨터 사용자를 위한 솔루션은 무엇입니까?

  • 시스템 공급업체에서 시스템 시작 구성에 액세스할 수 있기를 바랍니다.

  • 보안 부팅을 끌 수 있기를 바랍니다. 보안 부팅이 없으면 Windows 시작 코드가 계속 실행됩니다.

  • 운이 좋다면 시스템 공급업체에서 자체 인증 기관 키를 입력하고 서명할 수 있도록 허용할 것입니다. 이는 보안 부팅을 시도하려는 경우에만 실제로 필요합니다.

내 MSI 노트북을 사용하면 위의 모든 작업을 수행할 수 있습니다.

나는 누구나 무료로 Linux 배포판을 받고 운영 체제를 변경할 수 있는 세상을 보고 싶습니다. 이것이 안전 부팅 이전의 것입니다. 또한 부트 섹터 바이러스도 많이 있습니다. 시스템 구성에서 보안 부팅을 비활성화해야 하는 것은 운영 체제를 설치할 수 있는 능력이 있는지 또는 설치하는 사람을 알고 있는지 확인하기에 충분히 작은 장애물일 수 있습니다.

제조업체에 따라 전원을 끌 수 없는 것은 나쁜 것입니다. 제조업체가 보안 부팅 비활성화를 방지하도록 "설득"하지 않는 한 Microsoft를 비난하지 마십시오.

관련 정보