Microsoft UEFI 서명의 모험

그가 쓴이 기사를 번역합니다 제임스 보 틀리, 기술 고문 리눅스 재단모으기 시작한, Linux를 부팅 할 수 있도록 사전 부트 로더.

이전 게시물에서 설명했듯이 Linux Foundation pre-bootloader에 대한 코드가 있습니다. 그러나 지연 Microsoft 서명 시스템에 액세스 할 수있었습니다.

할 첫 번째 문제는 Verisign에 $ 99 지불 (현재 시만텍) Verisign에서 키를 확인했습니다. 우리는 Linux Foundation을 위해 해냈고 그들이 원하는 것은 본사에 전화하여 확인하는 것입니다. 키는 브라우저에 설치된 URL로 반환되지만 표준 Linux SSL 도구를 사용하여 추출하고 일반적인 PEM 인증서 및 키를 만들 수 있습니다. UEFI 서명과는 아무런 관련이 없지만 시스템 유효성 검사에 사용됩니다. 시스템 개발 당신이 당신이라고 말하는 Microsoft. sysdev 계정을 만들기 전에 먼저 테스트해야합니다. 그들이 제공하는 실행 파일에 서명하고 업로드. 그들은 특정 Windows 플랫폼에서 서명하는 엄격한 요구 사항을 만들지 만 sbsign은 적어도 작동하고 bingo 계정이 생성되었습니다.

계정이 생성되면 먼저 서명을 위해 UEFI 바이너리를 업로드 할 수 없습니다. 서면 계약에 서명하다. 많은 제외 라이센스 (드라이버 용 모든 GPL 포함, 부트 로더 용 제외)를 포함하여 거래는 매우 번거 롭습니다. 가장 부담스러운 부분은 합의가 도래하는 것 같다는 것입니다. 서명 한 UEFI 개체를 넘어. Linux Foundation의 변호사들은 우리가 제품을 판매하지 않기 때문에 대부분 LF에 무해하지만 다른 회사에게는 역 겨울 수 있다고 결론지었습니다. Matthew Garrett에 따르면 Microsoft는 이러한 문제 중 일부를 완화하기 위해 배포판과 특별 거래를 협상 할 의향이 있습니다.

계약서에 서명하면 진짜 기술적 재미. UEFI 바이너리를 업로드하고 서명 할 수는 없습니다. 먼저해야합니다 .cab 파일로 포장. 다행히 lcab이라는 캐비닛 파일을 만들 수있는 오픈 소스 프로젝트가 있습니다. 그럼 당신은 Verisign 키로 .cab 파일에 서명. 다시 말하지만, 그렇게 할 수있는 또 다른 오픈 소스 프로젝트가 있습니다 : osslsigncode. 이러한 도구가 필요한 사람은 누구나 내 openSuse Build Service UEFI 저장소에서 사용할 수 있습니다. 마지막 문제는 파일 업로드 은빛이 필요합니다. 안타깝게도 달빛이 작동하지 않는 것 같고 버전 4 미리보기에서도 업로드 상자가 비어 있습니다. Windows 7을 사용할 시간입니다 kvm (커널 기반 가상 머신)에서. 그 부분에 도달하면 바이너리가 "서명되어야하고, GPLv3 또는 유사한 오픈 소스 라이선스에 따라 라이선스를 취득해서는 안됩니다.”. 핵심 공개에 대한 두려움 때문이라고 생각하지만 전혀 명확하지 않습니다 ( "유사한 오픈 소스 라이선스"와 동일).

업로드가 완료되면 XNUMX 단계에 걸쳐 캐비닛 파일이 중지됩니다. 불행히도 첫 번째 테스트 등반은 6 단계에 고정 (파일의 서명). 6 일 후 Microsoft에 무슨 일이 일어나고 있는지 묻는 지원 이메일을 보냈습니다. 대답 :“서명 과정에서 발생하는 오류 코드는 파일이 유효한 Win32 응용 프로그램이 아닙니다.. 유효한 Win32 응용 프로그램입니까?”. 답변 : 당연히 그렇지 않습니다. 유효한 64 비트 UEFI 바이너리입니다. 더 이상 답변이 없습니다...

나는 다시 시도했다. 이번에는 서명 된 파일에 대한 다운로드 이메일을 받았는데 게시판에 서명 실패. 나는 그것을 다운로드하고 확인했다. 바이너리는 보안 부팅 플랫폼에서 작동하며 키로 서명됩니다.

제목 = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / OU = MOPR / CN = Microsoft Windows UEFI 드라이버 게시자
발급자 = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / CN = Microsoft Corporation UEFI CA 2011

지원팀에 프로세스가 실패한 이유를 물었지만 유효한 다운로드를 받았으며 많은 이메일을 보낸 후 "파일은 사용하지 마십시오. 잘못 서명. 다시 올게요. " 여전히 문제가 뭔지 잘 모르겠지만 서명 키의 제목을 보면 Linux Foundation에 표시 할 키가 없습니다.따라서 문제는 바이너리가 Linux Foundation에 연결된 특정 (및 취소 가능한) 키 대신 일반 Microsoft 키로 서명된다는 것입니다.

그러나 이것은 상태입니다. Microsoft가 Linux Foundation에 서명되고 검증 된 사전 부트 로더를 제공 할 때까지 계속 기다릴 것입니다. 이 경우 모든 사람이 사용할 수 있도록 Linux Foundation 사이트에 업로드됩니다.

출처 : http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/

결론을 내리십시오. 그러나 이것은 시간이 걸릴 것입니다.


Google에서 선호하는 검색 엔진으로 추가