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


18

앞으로 새로운 노트북을 구입할 계획이며, 새롭고 멋진 울트라 북에 깊은 인상을 받았습니다. 오랜 GNU / Linux 사용자는 물론 내가 선택한 배포판을 설치합니다.

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

UEFI가 좋을 수 있습니다. BIOS를 종료해야 할 수도 있습니다. 나는 털이 많은 것이 Secure Boot 라고 생각합니다 .

내가 이해할 수있는 한 신뢰할 수있는 인증서가 펌웨어 등에 포함되어 커널 등에 포함 됩니다. 커널의 인증서 를 펌웨어 중 하나로 추적 할 수 있으면 커널이 부팅되고, 그렇지 않으면 UEFI에서 알려주고 부팅을 거부합니다. 이 프로세스는 인증되지 않은 소프트웨어가 부팅되는 것을 방지합니다. 비록 보이지 않지만 이점이있을 수 있습니다.

나는 오픈 소스는 이러한 키 중 하나를 획득하고 여전히 커널 수있는 방법을 궁금해 무료 . Red Hat 직원이 Linus Torvalds에게 PE 바이너리를 구문 분석하는 기능을 구현하는 변경 세트를 가져오고 커널 부팅을 보안 부팅 모드로 설정하기 위해 복잡한 조치를 취하도록 요청하는 Linux 메일 링리스트의 스레드를 읽었습니다 (내가 이해할 수있는 한) ). Microsoft는 PE 바이너리에만 서명하기 때문에이 작업을 수행하려고합니다. Mr. Torvalds는 이 변경 세트 를 친절하게 거부 하여 커널이 이미 PE가 아닌 표준을 구현하고 있다고 언급 했습니다 . RedHat 은이 코드를 커널에 푸시하려고 노력하므로 언젠가는 포크 할 필요가 없습니다.

이건 복잡한 일이야. 질문을하겠습니다 :

  • 개인 사용자로서 UEFI 및 Secure Boot를 사용하면 어떤 이점이 있습니까?
  • 방법이있다 서명 이루어 집니까?
  • 누가 서명 / 인증서를 얻을 수 있습니까? 지불됩니까? 공개 할 수 있습니까? (리눅스의 소스 코드에서 사용할 수 있어야합니까?)
  • 서명을 제공 할 수있는 유일한 권한은 Microsoft입니까? 그들에게 제공 할 독립적 인 기초가 없어야합니까?
  • 이것이 오픈 소스 및 무료 커널, 취미 / 학술 커널 개발자 등에 어떤 영향을 미칠까요 ? 예 :이 부팅이됩니까 ( 기본 부팅 섹터 코드 ) :

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

이 웹 사이트 의 뉴스 항목 은이 질문의 삽입이었습니다. Hispalinux 라는 스페인어 Linux 사용자 그룹 이 Europan Comission의이 주제에 대해 Microsoft에 대해 불만을 제기했습니다.

걱정해야합니까? 독점 소프트웨어 나 신탁 회사가 서명 한 소프트웨어를 사용하지 않습니다 . 나는 지금까지 그렇게했으며 계속하고 싶습니다. 미리 감사드립니다.


2
UEFI그 자체로는 큰 문제는 아니지만 안전한 부팅이 될 수 있습니다.
jordanm

3
보안 부팅을 비활성화 한 상태에서 언제든지 UEFI 부팅을 수행 할 수 있습니다.
jasonwryan

1
이 기사 에 따르면 Microsoft는 공급 업체가 Windows 8 호환 로고 사용 라이센스를 제공하기 위해 ARM 기반 장치에서 SecureBoot가 비활성화되는 것을 방지해야합니다.

1
나는 보지 못했지만 마더 보드에 플래시를 꽂을 수없고 여전히 작동합니다 (각 장치가 POST-OS 핸드 오버시 적절한 상태에 있음).별로 도움이되지 않습니다. 그리고 그래픽 카드 펌웨어가 있습니다. 하드 디스크 펌웨어? 건반? 그러나 이것은 명확화 요청보다 토론에 더 가까워지고 있습니다. (물론, 적어도 그 인용문은 UEFI 가 공동체 노력이며 특정 구현이 아니라고 주장 할뿐입니다 .)
CVn

1
UEFI 및 보안 부팅에 관한 Linux Foundation의 문서 를 살펴보십시오 .
vonbrand

답변:


9

이 프로세스는 인증되지 않은 소프트웨어가 부팅되는 것을 방지합니다. 비록 보이지 않지만 이점이있을 수 있습니다.

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

Red Hat 직원이 Linus Torvalds에게 PE 바이너리를 구문 분석하는 기능을 구현하는 변경 세트를 가져오고 커널 부팅을 보안 부팅 모드로 허용하는 복잡한 일련의 조치를 취하도록 요청하는 Linux 메일 링리스트의 스레드를 읽었습니다 (내가 이해할 수있는 한) ).

GPU 펌웨어와 같은 드라이버는 보안 부팅에 따라 서명해야합니다. 그렇지 않으면 다른 루트킷 일 수 있습니다. 현상은 해당 드라이버가 PE 형식으로 서명되어 있다는 것입니다. 어쨌든 커널은 부팅 할 수 없지만 하드웨어는 작동하지 않습니다. 커널에서 PE 형식을 파싱하는 것은 모든 하드웨어 공급 업체에 각 배포판에 대한 Blob에 서명하도록 요청하거나이를 수행하기 위해 사용자 공간 프레임 워크를 설정하는 것보다 기술적으로 더 간단한 선택입니다. Linus는 Microsoft의 거시기를 빨지 않기로 결정합니다. 그것은 기술적 인 주장이 아닙니다.

개인 사용자로서 UEFI 및 Secure Boot를 사용하면 어떤 이점이 있습니까?

가장 눈에 띄는 기능은 UEFI 빠른 부팅입니다. 여러 Windows 8 로고 데스크톱을 사용하고 있는데 부팅 메뉴가 너무 빠르기 때문에 너무 빨리 부팅됩니다. 인텔과 OEM은 이에 대해 약간의 엔지니어링을 수행했습니다.

열정으로 팽만감코드 복제 를 싫어하는 Linux 사용자의 경우 펌웨어 수준에서 멀티 부트를 관리하고 부트 로더를 완전히 제거 할 수도 있습니다. UEFI는 커널로 직접 부팅 하거나 펌웨어 메뉴를 사용하여 다른 OS를 부팅하도록 선택할 수 있는 부팅 관리자 를 제공 합니다. 땜질이 필요할 수도 있지만.

또한 부팅시 및 펌웨어 메뉴에서 더 멋진 그래픽. 부팅 중 보안 강화 (보안 부팅) 다른 기능 (IPv4 / 6 netboot, 2TB + 부팅 장치 등)은 대부분 기업 사용자를위한 것입니다.

어쨌든 Linus가 말했듯 이 BIOS / UEFI는 "OS를로드하고 지옥에서 빠져 나올 것"으로 가정하고 UEFI는 확실히 빠른 부팅을 가진 가정용 사용자에게 나타납니다. 확실히 BIOS보다 더 많은 일을하지만 가정 사용자에 대해 이야기한다면 그들은 신경 쓰지 않을 것입니다.

이 서명은 어떻게 이루어 집니까?

이론적으로 바이너리는 개인 키로 암호화되어 서명을 생성합니다. 그런 다음 공개 키로 서명을 확인하여 개인 키의 소유자가 이진을 서명 한 다음 이진을 확인할 수 있습니다. Wikipedia에서 더보기 .

기술적으로 이진의 해시 만 서명되고 서명은 PE 형식 및 추가 형식 twiddling을 사용하여 이진에 포함됩니다.

절차 적으로 공개 키는 OEM에 의해 펌웨어에 저장되며 Microsoft에서 제공합니다. 두 가지 선택이 있습니다.

  1. 자신의 키 쌍을 생성하고, 안전하게 관리 펌웨어에 자신의 공개 키를 설치 하고 (자신의 개인 키를 사용하여 바이너리를 서명 sbsign 우분투에서, 또는 pesign 페도라에서), 또는
  2. 바이너리를 Microsoft에 보내서 서명하도록하십시오.

누가 서명 / 인증서를 얻을 수 있습니까? 지불됩니까? 공개 할 수 있습니까? (리눅스의 소스 코드에서 사용할 수 있어야합니까?)

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

서명을 제공 할 수있는 유일한 권한은 Microsoft입니까? 그들에게 제공 할 독립적 인 기초가 없어야합니까?

PKI 관리, ID 확인, 모든 알려진 OEM 및 하드웨어 공급 업체와의 조정 프로세스와 비교할 때 기술 측면은 사소합니다. 이것은 비용이 든다. Microsoft는 수년간 인프라 (WHQL)와 경험을 보유하고 있습니다. 그래서 그들은 이진 서명을 제안합니다. 독립적 인 재단이라면 누구나 같은 것을 제공 할 수 있지만 아직까지는 아무도하지 않았습니다.

IDF 2013의 UEFI 세션에서 Canonical은 일부 태블릿 펌웨어에 자체 키를 추가하기 시작했습니다. 따라서 Canonical은 Microsoft를 거치지 않고도 자체 바이너리에 서명 할 수 있습니다. 그러나 그들은 당신이 누구인지 모르기 때문에 바이너리를 서명하지 않을 것입니다.

이것이 오픈 소스 및 무료 커널, 취미 / 학술 커널 개발자 등에 미치는 영향

사용자 정의 빌드 커널은 서명되지 않았기 때문에 보안 부팅에서 부팅되지 않습니다. 그래도 끌 수 있습니다.

보안 부팅의 신뢰 모델은 커널의 일부 측면을 잠급니다. 루트가 되어도 / dev / kmem에 쓰면 커널을 파괴 할 수 없습니다. 다시 시작할 때 커널 이미지가 부트 킷으로 변경되지 않도록 할 수있는 방법이 없기 때문에 업스트림에서 작동하는 디스크로 최대 절전 모드를 설정할 수 없습니다. kdump (kexec) 메커니즘을 사용하여 부트 킷을 부팅 (업스트림으로 작업) 할 수 있으므로 커널 패닉이 발생하면 코어를 덤프 할 수 없습니다. 이것들은 논란의 여지가 있으며 Linus가 기본 커널로 받아들이지 않지만 일부 배포판 (Fedora, RHEL, Ubuntu, openSUSE, SUSE)은 자체 보안 부팅 패치와 함께 제공됩니다.

보안 부팅 커널을 만드는 데 필요한 모듈 서명은 실제로 10 분이 걸리지 만 실제 컴파일에는 5 분이 걸립니다. 모듈 서명을 끄고 ccache를 켜면 커널 구축에 1 분 밖에 걸리지 않습니다.

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

Hispalinux라는 스페인어 Linux 사용자 그룹이 Europan Comission의이 주제에 대해 Microsoft에 대해 불만을 제기했습니다.

위에서 말한 것처럼 Microsoft 이외의 다른 사람은 공공 서비스를 수행하지 않았습니다. 현재 마이크로 소프트가이 일에 악의를 범한다는 증거는 없지만, 마이크로 소프트가 사실상 독점을 남용하고 전력 트립을하지 못하도록 막을 방법도 없다. 따라서 FSF와 Linux 사용자 그룹은 실용적으로 보이지 않고 실제로 문제를 건설적으로 해결하기 위해 앉지 않았지만 사람들은 Microsoft에 압력을 가하고 그 영향에 대해 경고해야합니다.

걱정해야합니까? 독점 소프트웨어 나 신뢰할 수있는 회사가 서명 한 소프트웨어를 사용하지 않습니다. 나는 지금까지 그렇게했으며 계속하고 싶습니다.

보안 부팅을 채택해야하는 이유 :

  • 실제 보안 공격 경로를 제거합니다.
  • 하드웨어를보다 자유롭게 제어 할 수있는 기술 메커니즘입니다.
  • Linux 사용자는 보안 부팅 메커니즘을 이해하고 Microsoft가 보안 부팅 정책 독점에 너무 앞서 가기 전에 적극적으로 행동해야합니다 .

2
이 상세하고 멋진 답변에 감사드립니다! 매우 포괄적입니다. UEFI는 코드를 사용하거나 작성하지 않았지만 아주 멋지게 들립니다.

1
정말 좋은 대답입니다. 단 두 가지 : 1) 일반적으로 자신의 키를 UEFI에로드 할 가능성이 있습니다. 이렇게하면 자신이 서명 한 모든 것을 안전하게 부팅 할 수 있습니다. 2) 보안 부팅은 UEFI를 신뢰하는 지점까지만 안전합니다. 악의적 인 펌웨어 업데이트를 사용하는 경우 신뢰 체인이 손상됩니다. 그리고 그것은 상상할 수 없습니다 .
peterph 2016 년

그렇다면 GNU / Linux 배포판은 FastBoot / QuickBoot를 사용합니까? 왜 그렇게하기 어려운지 알 수 없지만 정보를 찾을 수는 없습니다. 그러나 최종 사용자에게 가시적 인 기능으로 언급되었으므로 최종적으로 사용 된 것 같습니다.
Hi-Angel

9

방금 Windows 8과 함께 제공되는 최신 노트북 구매 및 UEFI 보안 부팅 으로이 작업을 수행했습니다. 많은 시간과 연구 끝에 다음과 같이 대답 할 수 있습니다.

  • '가정용 사용자'카테고리에 맞는 것 같지 않습니다.

일반 사용자가 알게되는 UEFI의 장점은 화면에 가장 먼저 나타나는 것이 Microsoft / Vendor 브랜드의 UEFI 부트 로더 디스플레이라는 것입니다. "설치를 위해 Del을 누르고 부팅 장치를 선택하려면 F11을 누르십시오"등과 같은 무서운 것은 없습니다 .

그런 다음 Microsoft 커널 / 부트 로더 대기 화면으로 전환됩니다. 이는 Microsoft 테마 경험을 '촉구하는 힘'을 나타냅니다. 그것이 실제 이익이라면 보는 사람의 눈에 있다고 생각합니다. 부팅 할 때 볼 것으로 예상되는 일반적인 정보가 없다는 사실에 꽤 진지했습니다. 예를 들어, 공급 업체가 표준 키를 사용하여 기본 UEFI / Bios 설정에 들어 가지 않는 경우 행운을 빕니다.

아, 그리고 이론은 이것이 부트 섹터 바이러스를 막거나 최소한 제작자가 누군가의 ID를 만들거나 훔치 게하고 Verisign (RedHat Fedora 경로, 구글)에 99 달러를 지불하게 할 것이라는 이론이다.

아, 그리고 문지름이 있습니다. 누구나 어떤 키로도 코드에 서명 할 수 있습니다. 문제는 컴퓨터가 신뢰할 수있는 기관 키로 서명 한 코드 만 실행한다는 것입니다. 키의 공개 절반은 출하시 시스템 UEFI 코어에 설치되며 개인 키로 서명 된 UEFI 프로그램 (부트 코드)의 서명을 확인하는 데 사용됩니다.

공장에 누가 공개 키가 설치되어 있는지 맞춰보세요? 기본적으로 보안 부팅을 활성화해야하는 사람은 누구입니까?

모든 시스템 제조업체는 분명히 Microsoft의 열쇠를 거기에 넣을 것입니다. 그들은 또한 캐 노니 컬의 (우분투) 키에 넣어 등 레드햇의 주요 애플의 키보다 키 수단 위반에 대한 더 많은 포인트를하지만, 그들은 저장할 수 얼마나 많은에 물리적으로 한계가 분명히있다.

반란군 컴퓨터 사용자를위한 솔루션은 무엇입니까?

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

  • 보안 부팅을 해제 할 수 있기를 바랍니다. Windows 부팅 코드는 보안 부팅없이 계속 실행됩니다.

  • 운이 좋으면 시스템 공급 업체에서 자체 인증 기관 키를 입력하고 자신의 서명을 할 수 있습니다. 이것은 보안 부팅으로 놀고 싶을 때만 필요합니다.

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

누구나 Linux Distro를 무료로 받아 OS를 교체 할 수있는 세상을보고 싶습니다. 이것이 보안 부팅 이전에 있었던 것입니다. 또한 부트 섹터 바이러스가 많았습니다. 시스템 구성에서 보안 부팅을 비활성화해야하는 것은 아마도 OS를 설치할 수있는 능력이 있는지 또는 누군가를 아는 사람인지 알기에 충분히 작은 장애물 일 것입니다.

전원을 끌 수없는 것은 나쁜 일이며 이는 제조업체의 책임입니다. 보안 부팅 비활성화를 막기 위해 제조업체를 '설득'하지 않는 한 Microsoft를 비난하지 마십시오.


환영합니다. 감사합니다. 매우 멋진 답변이지만 다른 사람들의 생각을보고 싶어서 수락하기 전에 조금 더 기다릴 것입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.