임민철 기자 imc@zdnet.co.kr 2011.10.31

 

윈도8용 새 보안 기술이 함께 설치된 리눅스 운영체제(OS) 부팅을 틀어막는 작용을 할 것으로 알려지자 오픈소스 진영이 대응에 나섰다. 앞서 마이크로소프트(MS)는 논란에 따라 그럴 걱정이 없다고 해명했지만 리눅스 커뮤니티에서는 이를 믿기 어렵다는 눈치다.

 

지난 28일 한 리눅스 전문 블로그는 리눅스업체 캐노니컬과 레드햇이 윈도8 '보안 부팅'의 부작용을 완화시킬 방안을 찾고 있다고 전했다. 미국 지디넷은 리눅스 재단이 '통합 확장 펌웨어 인터페이스(UEFI)'를 사용해 PC 보안을 강화하면서도 자유롭게 만들 것이라고 보도했다.

 

UEFI는 기존 바이오스(BIOS)를 대신해 IBM 호환PC와 OS를 소통케 해주는 소프트웨어 기술이다. MS는 이를 사용해 윈도8을 위한 보안 부팅 기능을 구현했다.

 

▲ 윈도8이 지원하는 UEFI 기술이 리눅스 배포판 설치와 부팅을 막는 보안 기능을 기본값으로 품고 나온다.
리눅스 재단과 오픈소스 진영은 앞서 커뮤니티에 속한 전문가들이 제기한 우려대로 윈도8 보안 부팅이 리눅스의 개방형 시스템을 시장에서 배척할 수 있다는 결론을 내렸다. MS의 해명처럼 해당 기술 자체에 그런 의도가 없으며 우회할 방법이 존재한다고 해도 마찬가지라고 덧붙였다.

 

리눅스 재단은 "만일 윈도8 파트너 업체들이 그런 설정 기능을 제공한다면 윈도8 인증마크를 부착하기 위한 기준에 들어맞으면서도 오픈소스OS와 완전히 호환될 것이다"고 밝혔다. MS가 윈도8 컴퓨터 제조사들에게 어떻게 나올 것인지 주목된다.

 

■윈도8과 UEFI 보안 부팅

 

지난 9월 MS는 UEFI를 윈도8 인증 방식 가운데 '기본값'으로 설정했다고 밝혔다. UEFI는 공개키 기반 구조(PKI)에 속하는 인증기관(CA) 전자서명을 확인해 부팅 과정의 보안을 강화할 수 있다는 게 당시 회사측 설명이다. 부팅 과정에 악성코드나 유해프로그램이 주요 시스템으로 침입하는 것을 막기 위해 '안전하다'고 확인된 소프트웨어만 작동하도록 허용한다는 얘기다.

 

다시 말해 윈도8로 인증된 시스템의 사용자가 어떤 파일을 실행하거나 드라이버를 설치하려면, 그 개발업체가 UEFI 비밀 키(Key)에 들어맞는 CA서명을 제공해야 한다. UEFI를 통해 소프트웨어가 알맞은 키로 서명되지 않은 것으로 판정되면, 리눅스같은 OS도 실행할 수 없게 만든다. 즉 부팅이 안 된다. 그리고 UEFI에 포함된 키로 서명되지 않은 하드웨어 드라이버는 개인 사용자뿐 아니라 그 하드웨어를 만든 제조사도 실행할 수 없게 된다.

 

당시 MS가 이를 채택했다는 얘기는 윈도8 인증이 된 PC에 CA 전자서명이 없는 리눅스 시스템을 설치할 수 없을 것이라는 추론을 낳았다. 특히 윈도8을 기본 탑재해 나오는 OEM PC의 경우 기본적으로 정품 인증이 된 상태로 출시되기 때문에 PC사용자의 OS선택권을 처음부터 제한한다는 지적이 잇따랐다.

 

■리눅스, UEFI 보안 부팅 왜 못하나

 

커뮤니티측 엔지니어들은 윈도8을 탑재해 나올 컴퓨터 대부분이 기본적으로 MS의 '키'를 쓸 것이라고 예상한다. UEFI 보안 기능에 따라 리눅스를 쓸 수 없게 되는 이유다.

 

▲ 윈도8 UEFI 보안 부팅. ①리눅스를 포함해 '알려지지않은 OS 로더'를 차단 ②커널이 부팅전 악성코드를 막는 'ELAM'을 돌리고 허용된 드라이버, 앱 실행 ③TPM에 기록된 시스템 상태를 점검 ④컴퓨터가 안전하다고 확인되면 유해방지SW가 TPM점검 결과를 보내 원격 인증

우선 윈도8 기반PC 제조사들이 리눅스를 포함해 다른 OS환경에 맞는 CA전자서명을 굳이 포함해야 할 이유가 없다. 그 대신 리눅스 배포판 업체들이 자사 OS를 위한 CA서명을 스스로 배포하고 사용하려면 그에 맞는 키가 수많은 제조사 시스템에도 일일이 포함돼 있어야 한다.

 

이에 MS는 지난달말 윈도8 공식 블로그를 통해 해당 관측을 부정했다. 리눅스를 윈도8 인증을 받은 메이커 PC에도 설치할 수 있다고 반박한 것이다. 또 UEFI 보안 부팅은 다양한 윈도8 보안 부팅 설계구조의 일부일 뿐, 필수나 강제가 아니라고 해명했다.

 

회사측은 "OEM 제조사들이 만드는 윈도8 플랫폼에서 인증서나 보안 정책을 관리하는 수준을 필요에 따라 조정할 수 있다"며 "MS가 윈도 말고 다른 OS에 대한 펌웨어 설정을 규정하거나 통제하진 않는다"고 설명했다.

 

■리눅스 진영 대응은…

 

이런 MS측 설명에만 기댈 경우 리눅스 진영이 딱히 우려감을 표할 이유는 없지만 리눅스 진영 입장은 이와 달라 보인다.

 

우선 MS가 OEM 협력사들에게 UEFI 보안 부팅을 강제하지 않는다 해도 윈도8 PC를 만드는 쪽에서 시스템 안정성이나 통제력을 강화할 목적으로 그 '기본값'을 유지하기로 결정하면 손 쓸 도리가 없다. 또한 모든 하드웨어 업체가 서명이 없는 코드를 실행하는 펌웨어를 제공한다고 기대하기도 어렵다.

 

캐노니컬과 레드햇은 '리눅스에 미치는 UEFI 보안 부팅의 영향'이라는 백서를 통해 나름대로 해법을 제시했다. 어떤 것이든 OEM 업체들에 광범위한 협력이 필요할 것으로 보인다.

 

우선 기본값으로 설정된 보안 부팅 기능을 쉽게 꺼버릴 수 있는 '사용자 친화적 인터페이스'를 새로 출시되는 PC에 탑재시키는 방법을 고려할 수 있다. 간단하지만 UEFI의 보안성과 빠른 부팅 등 이점을 누리긴 어려워진다.

 

다른 방식은 기존 사용자들이 스스로 '허가 목록'을 통해 UEFI 환경에서도 리눅스와 부가 프로그램 등을 돌릴 수 있게 해주는 것이다. 이 경우 UEFI의 장점을 살리면서 윈도8과 리눅스를 함께 쓰는 것도 가능하다.

 

이를 위해 리눅스 재단은 모든 이해관계자가 인증서를 발급해 해서 향후 출시될 UEFI 펌웨어가 기본으로 허용 목록에 포함시킬 수 있는 키를 내놓도록 하자고 제안하기에 이른다. CA전자서명에 맞는 '교환키(KEK)'를 제조사들의 UEFI 장치 펌웨어에 탑재시키는 방안을 강구한다는 것이다.

 

http://www.zdnet.co.kr/news/news_view.asp?artice_id=20111031093934