이 프로세스는 인증되지 않은 소프트웨어가 부팅되는 것을 방지합니다. 비록 보이지 않지만 이점이있을 수 있습니다.
하드웨어에서 부팅 할 수있는 것과 부팅 할 수없는 것을 제어하는 새로운 보안 메커니즘이 있습니다. 보안 기능. 너무 늦을 때까지 필요하다고 느끼지 않습니다. 그러나 나는 산만하다.
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에서 제공합니다. 두 가지 선택이 있습니다.
- 자신의 키 쌍을 생성하고, 안전하게 관리 펌웨어에 자신의 공개 키를 설치 하고 (자신의 개인 키를 사용하여 바이너리를 서명 sbsign 우분투에서, 또는 pesign 페도라에서), 또는
- 바이너리를 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가 보안 부팅 정책 독점에 너무 앞서 가기 전에 적극적으로 행동해야합니다 .
UEFI
그 자체로는 큰 문제는 아니지만 안전한 부팅이 될 수 있습니다.