Security WatchWindows의 PKI 기능 향상

John Morello

이 칼럼은 Windows Server 2008의 시험판 버전을 기준으로 작성되었습니다. 이 문서에 수록된 모든 정보는 변경될 수 있습니다.

Windows 2000 릴리스 이후 Windows에서는 플랫폼 전반에 걸쳐 PKI(공개 키 인프라)를 지원하고 있습니다. Windows 2000에는 네이티브 인증 기관 기능이 처음으로 포함되었고 자동 등록 기능이 도입되었으며 스마트 카드 인증이 지원되었습니다. Windows XP와 Windows Server 2003에서는

이러한 기능이 더욱 향상되어 버전 2 인증서 템플릿과 사용자 인증서 자동 등록 지원 등을 통해 더욱 유연한 등록 옵션을 제공합니다. Windows Vista®와 Windows Server® 2008(이전 코드 이름 "Longhorn")에서는 고급 알고리즘, 실시간 유효성 검사, 관리 효율성 향상을 통해 Windows® PKI 플랫폼이 한 차원 더 강화되었습니다. 이 칼럼에서는 Windows Vista와 Windows Server 2008의 새로운 PKI 기능에 대해 설명하고 이를 활용하여 비용을 절감하고 보안을 향상시키는 방법에 대해 알아보겠습니다.

Windows Vista와 Windows Server 2008의 PKI는 암호화, 등록, 관리 효율성, 해지의 네 가지 핵심 영역을 중심으로 기능이 향상되었습니다. 이러한 자체적 기능 향상 외에도 Windows PKI 플랫폼은 더욱 간편하게 새 CA(인증 기관)를 만들고 배포할 수 있게 해 주는 역할 관리자 등의 고급 운영 체제 기능도 활용합니다. 또한 Windows Vista에서 스마트 카드를 사용하여 EFS(파일 시스템 암호화) 키를 저장할 수 있는 것처럼 Windows의 다른 여러 영역에서도 PKI 플랫폼의 향상된 기능을 활용할 수 있습니다.

암호화

암호화는 두 가지 면에서 기능이 향상되었습니다. 첫째, Windows는 이제 CNG(차세대 암호화)를 통해 프로토콜에 독립적이며 플러그 가능한 암호화 기능을 제공합니다. 이 기능을 사용하면 개별 알고리즘을 프로그래밍 방식으로 더 쉽게 개발하고 액세스할 수 있습니다. 둘째, CNG는 2005년 NSA(미국 국가 안전 보장국)에서 채택한 Suite B 알고리즘을 지원합니다.

CNG는 Microsoft 제품의 새로운 핵심 암호화 인터페이스이며 향후 출시되는 Windows 기반 암호 인식 응용 프로그램의 API로 권장됩니다. CNG는 더욱 간편한 알고리즘 검색 및 대체 기능, 교체 가능한 난수 생성기, 커널 모드 암호화 API를 비롯하여 개발자를 위한 다양한 새 기능을 제공합니다. 뿐만 아니라 CNG는 이전 버전인 CryptoAPI 1.0에서 제공하는 일련의 알고리즘과도 완벽하게 호환됩니다. 현재 일부 플랫폼을 대상으로 한 FIPS(Federal Information Processing Standards) 140-2 Level 2 인증 및 공통 기준에 대한 CNG 평가가 진행 중에 있습니다.

CNG Suite B는 AES(모든 키 크기), SHA-2 계열의 해시 알고리즘(SHA-256, SHA-384 및 SHA-512), ECDH(Elliptic Curve Diffie-Hellman), NIST(미국 국립 표준 기술원) standard prime curves P-256, P-384, P-521의 ECDSA(Elliptic Curve Digital Signature Algorithm) 등 모든 필수 알고리즘을 지원합니다. NSA에서는 인증된 Suite B 암호화 알고리즘이 '최고 기밀(Top Secret)'과 '기밀(Secret)'로 분류된 정보, 그리고 과거에는 '중요하지만 기밀은 아님(Sensitive-But-Unclassified)'으로 명시되던 개인 정보를 보호하는 데 사용될 것이라 밝혔습니다. 모든 Suite B 알고리즘은 공개적으로 개발되었으며 일부 다른 국가의 정부에서도 이 알고리즘을 국가 표준으로 채택하는 방안을 검토하고 있습니다.

Windows PKI 플랫폼의 하위 수준에 대한 이러한 개선 덕분에 개발자들은 더 안전하게 데이터를 보호할 수 있으며 시간이 지남에 따라 더 효율적으로 관리 및 개선할 수 있는 하위 시스템을 구축할 수 있습니다. CNG는 플러그 가능한 아키텍처이므로 필요에 따라 새 알고리즘을 추가할 수 있으며 CNG는 응용 프로그램 계층에서 이러한 알고리즘 공급자를 추상화합니다. 결론적으로 Windows Vista와 Windows Server 2008은 PKI 지원 응용 프로그램과 서비스를 개발하는 데 필요한 발전 가능한 고급 플랫폼을 제공하도록 설계되었습니다.

등록

Windows의 인증서 등록 환경은 새로운 마법사 방식의 등록 도구, 향상된 인증서 만료 처리 기능, 새로운 API "대신 등록" 기능, 자격 증명 로밍 등을 통해 크게 향상되었습니다. 이러한 향상된 기능을 통해 사용자에 미치는 영향을 최소화하면서 조직 전체에 인증서를 배포하는 과정을 중앙에서 더욱 간편하게 관리함으로써 PKI의 총 소유 비용을 절감할 수 있습니다.

등록 측면에서 가장 주목할 변화는 그림 12의 새로운 인증서 등록 사용자 인터페이스입니다. 이 사용자 인터페이스는 등록 프로세스에서 사용자의 데이터를 입력할 수 없었던 기존의 제한적 인터페이스를 대체합니다. 새 인터페이스에서는 관리자가 데이터 입력을 요구하도록 인증서 템플릿을 구성한 경우 사용자가 등록 중에 데이터를 입력할 수 있습니다. 또한 이 인터페이스에서는 사용자가 지정된 템플릿에 등록할 수 없을 경우 그 이유를 명확하게 설명합니다.

그림 1 사용 가능한 인증서 선택

그림 1** 사용 가능한 인증서 선택 **(더 크게 보려면 이미지를 클릭하십시오.)

그림 2 사용할 수 없는 인증서 상태 정보

그림 2** 사용할 수 없는 인증서 상태 정보 **(더 크게 보려면 이미지를 클릭하십시오.)

등록 인터페이스의 또 다른 중요한 개선은 인증서 만료를 처리하는 방식에 있습니다. 새 인터페이스에서는 어떤 인증서가 언제 만료되는지에 대한 명확한 정보를 제공하며 사용자가 쉽게 인증서를 갱신하거나 경고 알림을 해제할 수 있게 해 줍니다. 관리자가 자동 등록을 통해 인증서를 자동으로 새로 고칠 수도 있지만 이 경고 기능은 이따금 회사 네트워크에 로그온하는 모바일 사용자 또는 연결이 끊어진 사용자에게 인증서 만료 날짜가 가까워졌음을 알리는 경우에는 중요합니다.

인증서 등록 기능을 사용하여 작업하는 개발자는 ActiveX® 기반 컨트롤(xenroll.dll 및 scrdernl.dll)에 비해 훨씬 향상된 기능을 제공하는 새로운 API를 사용할 수 있습니다. 이 새로운 인증서 등록 API는 훨씬 쉽게 이해하고 코딩할 수 있는 잘 정의된 클래스 계층 구조를 제공합니다. 이 새로운 API는 Windows Vista와 Windows Server 2008에서 xenroll을 대체합니다.

이러한 API의 변화는 개발자와 IT 전문가 모두에게 영향을 주는데, 그 이유는 Windows Vista 클라이언트에서 Windows Server 2003의 웹 기반 등록 기능을 사용할 수 없기 때문입니다. 즉, Windows Server 2003의 등록 페이지(기본적으로 /certsrv라는 가상 디렉터리에 저장됨)에는 Windows Vista에서는 더 이상 제공되지 않는 xenroll 컨트롤이 사용되기 때문입니다. 기술 자료 문서 "Windows Vista에서 인증서 서비스 웹 등록 페이지를 사용하는 방법"(support.microsoft.com/kb/922706)에는 이 문제에 대한 해결 방법이 설명되어 있습니다. 한편, Windows Server 2003에서 Windows Vista로의 자동 등록은 영향을 받지 않습니다.

이전 버전의 Windows Server에서 등록 에이전트가 대신 등록할 수 있는 범위에는 제한이 없었습니다. 달리 말해, 등록 에이전트 기능을 부여받은 사용자는 포리스트에 있는 다른 모든 사용자를 대신하여 등록을 수행할 수 있었습니다. 물론 이것은 해당 사용자가 기존 사용자를 대신하여 등록하고 새로 생성된 인증서로 기존 사용자를 가장하는 방법으로 자신의 권한을 쉽게 상승할 수 있음을 의미합니다. 이러한 위험을 방지하기 위해 등록 에이전트 기능은 가장 신뢰할 수 있는 사용자에게만 제공되었습니다. 이러한 배포 모델을 사용하면 보안은 향상되는 반면에 다른 사용자를 대신하여 등록할 수 있는 기능이 소수의 사용자에게만 집중되므로 유연성이 낮아지는 결과를 초래합니다. 따라서 여러 지역에 분산되어 있는 대규모 조직에서는 스마트 카드의 경우와 같이 최종 사용자에게 인증서를 배포하는 작업이 더욱 복잡해졌습니다.

Windows Server 2008에서는 등록 에이전트를 훨씬 더 세밀한 수준으로 제한할 수 있습니다. 그림 3에서 볼 수 있듯이 대신해서 등록할 수 있는 사용자 또는 대신해서 등록할 수 있는 템플릿을 기준으로 제한을 설정할 수 있습니다. 예를 들어 조직에서는 특정 지역 사무실의 IT 전문가가 담당 지역의 모든 사용자를 대신하여 등록할 수 있지만 인사 부서의 사용자는 대신할 수 없도록 설정할 수 있습니다. 등록 에이전트의 기능을 이와 같이 세분화하면 조직 전반에 걸쳐 등록 기능을 더욱 안전하고 효과적으로 위임할 수 있습니다.

그림 3 등록 에이전트의 기능 제한

그림 3** 등록 에이전트의 기능 제한 **(더 크게 보려면 이미지를 클릭하십시오.)

PKI 관리에서 가장 까다로운 작업 중 하나는 조직 내 장치에 분산되어 있는 모든 키 쌍을 관리하는 것입니다. 어느 정도 복잡한 PKI 환경에서도 사용자가 로그온 위치에 관계없이 서로 다른 키 쌍(EFS, 무선 네트워크 인증, S/MIME 등의 용도)을 여러 개 사용할 수 있어야 하는 경우가 있습니다. 모바일 컴퓨팅과 터미널 서비스 사용이 점차 늘어나면서 로그온 위치에 관계없이 사용자가 사용할 수 있도록 이러한 키 쌍을 네트워크에 복제하는 것이 더욱 중요해지고 있습니다. 스마트 카드와 같이 사용자가 휴대하는 토큰은 이러한 문제의 일부를 해결하는 데 도움이 되지만 조직에는 이러한 카드가 없거나 인증서를 카드에 저장하지 않은 사용자들이 있게 마련입니다. 자격 증명 로밍을 사용하면 이러한 키 쌍과 인증서를 Active Directory®에 안전하게 저장하여 사용자의 로그온 위치에 관계없이 제공함으로써 이러한 문제를 해결할 수 있습니다.

Windows Server 2003 SP1에서 처음 제공된 자격 증명 로밍을 사용하면 로밍 사용자 프로필을 사용하지 않고도 컴퓨터 간에 인증서와 키를 안전하게 로밍할 수 있습니다. Windows Vista와 Windows Server 2008에는 이러한 기능이 기본적으로 포함되어 CSC(인증서 서비스 클라이언트) 서비스로 구현됩니다. 로밍할 수 있는 인증서와 충돌 조정 방법 등의 구성 옵션은 그룹 정책을 통해 관리됩니다. Windows Vista와 Windows Server 2008에서 CSC 서비스는 저장된 사용자 이름과 암호도 로밍할 수 있습니다. 자격 증명 로밍 기능은 Windows Vista에 기본으로 포함되어 있지만 Windows XP에서 Windows Server 2003 도메인 컨트롤러에 로그온하는 경우에도 완벽하게 지원됩니다(업데이트 배포 시 support.microsoft.com/kb/907247 참조). 즉, Windows Vista 배포가 완료될 때까지 기다리지 않아도 이 기술을 사용할 수 있습니다.

관리 효율성

Windows Server 2008에서는 CA(인증 기관) 서비스를 간편하게 구성 및 모니터링하고 가용성이 뛰어난 방식으로 실행하여 CA의 관리 효율성을 향상시키도록 하는 다양한 업그레이드가 이루어졌습니다. 첫째, CA 설정이 역할 관리자 도구에 통합되어 CA 서비스 설치 방법이 더욱 간결해졌습니다. 또한 프로세스의 각 단계에 기본값이 정의되어 이제 설정 작업을 무인 모드로 실행할 수 있습니다. 마지막으로 진단 기능이 향상되어 설정 과정에서 발생할 수 있는 오류 또는 문제를 더욱 쉽게 해결할 수 있습니다.

Windows Server 2008에서는 CA 서비스 모니터링 기능이 대폭 향상되었으며 Windows Vista에서도 인증서 진단 기능이 전반적으로 향상되었습니다. 전체 프로젝트에 관련되는 이벤트 생성 인프라의 유연성이 크게 향상된 것 외에도 기본 제공 모니터링 콘솔이 포함된 CA 서비스에서 Systems Center Operations Manager 2007(이전의 MOM)과 연결하여 엔터프라이즈 수준의 알림 기능을 제공합니다. 엔터프라이즈 PKI 모니터링 콘솔은 Windows Server 2003 AdminPak에 포함된 이전 버전보다 더욱 향상된 기능을 제공합니다. 이 새 콘솔은 제품 자체에 포함되어 이제 해당 포리스트의 모든 CA뿐만 아니라 OCSP(온라인 인증서 상태 프로토콜) URI를 모니터링합니다.

Operations Manager 관리 팩은 기본 제공되는 임계값 기반 알림 기능을 포함하여 조직의 PKI에 대한 패시브 모니터링 기능을 제공합니다. 예를 들어 이 관리 팩을 사용하면 CRL(인증서 해지 목록)의 해지 유효 시간을 모니터링하여 CRL이 해당 만료 날짜 이전의 특정 일 또는 시간에 도달할 때 PKI 관리자에게 알림을 보낼 수 있습니다. 마지막으로 CA 서비스 자체의 전반적 성능을 모니터링하여 문제를 해결하는 데 사용할 수 있는 새로운 성능 카운터가 다수 제공됩니다. 이러한 카운터는 초당 발급되는 인증서 수와 같은 데이터를 캡처하는 데 사용할 수 있습니다.

Windows Server 2008에서는 CA 서비스의 하드웨어 수준 클러스터링 지원이라는 새로운 기능이 제공됩니다. 이 클러스터 지원 기능은 표준 Microsoft Cluster Service(MSCS) 기술을 활용하며 2노드 액티브/패시브 구성을 지원합니다. 클러스터 지원 기능을 활용하면 발급 인프라의 가용성을 매우 높은 수준으로 유지할 수 있습니다. 클러스터 지원 기능은 지리적으로 다양하게 분산된 클러스터링 배포 환경에 사용할 수 있습니다. 클러스터링 지원 기능을 사용하려는 경우 단순히 CA를 클러스터링하는 것으로는 전체 PKI에 대한 가용성을 확보할 수 없다는 점에 주의해야 합니다. 클러스터링은 CA 자체의 가용성을 확보하는 데는 도움이 될 수 있지만 정상적으로 작동하는 PKI에는 CA에 직접적으로 의존하여 실행되지 않는 다른 구성 요소가 있을 수 있습니다. 예를 들어 CDP(CRL 배포 지점)와 OCSP 응답자의 가용성은 반드시 높은 수준으로 유지되어야만 해지가 올바르게 수행될 수 있습니다. 또한 HSM(하드웨어 보안 모듈), 특히 네트워크 기반의 HSM을 사용할 경우 이러한 모듈은 PKI에서 잠재적으로 장애 지점이 될 수 있습니다. 클러스터링은 인증 기관 자체의 가용성을 높일 수 있는 강력하고 새로운 기능이지만 전체 PKI 환경의 가용성까지 모두 높여줄 수 있는 만능의 처방은 아닙니다.

해지

CRL은 오랫동안 인증서의 유효성 검사에 사용되어 왔습니다. 이러한 CRL에는 아직 만료되지는 않았지만 더 이상 유효성을 신뢰할 수 없는 모든 인증서의 일련 번호가 들어 있습니다. 예를 들어 한 직원이 가진 인증서의 만료 날짜가 2008년 12월 31일인데, 이 직원이 2007년 9월 1일자로 퇴사한 경우 해당 인증서의 일련 번호는 CRL에 기록됩니다. 이 CRL은 HTTP 및 LDAP(Lightweight Directory Access Protocol) 경로와 같은 여러 CDP(CRL 배포 지점)에 제공됩니다.

CRL은 여전히 널리 사용되고 있지만 몇 가지 중요한 단점을 갖고 있습니다. 첫째, CRL은 CA에 의해 주기적으로(일반적으로 하루 1~2회) 게시됩니다. 클라이언트는 이 CRL을 다운로드하여 다음 게시 기간까지 캐시합니다. 그런데 이 캐시된 기간 중에 인증서가 해지될 경우 클라이언트는 다음 게시 때까지는 최신 상태를 알 수 없게 됩니다. 둘째, 규모가 매우 큰 조직의 경우 CRL의 크기도 매우 커질 수 있습니다(경우에 따라 100MB 이상). 이러한 크기의 파일을 널리 분산된 대규모 네트워크에 배포하는 작업은 쉽지 않을 뿐만 아니라, 특히 대역폭이 제한되어 있는 지역 사무실 등의 환경에서는 배포가 불가능할 수도 있습니다.

이러한 문제를 해결하기 위해 OCSP가 개발되어 RFC 2560으로 정의되었습니다. OCSP는 인증서의 상태를 실시간으로 검사하는 방법을 제공합니다. OCSP 클라이언트는 리프 인증서의 유효성을 검사해야 하는 컴퓨터에서 실행됩니다. 그런 다음 클라이언트 소프트웨어는 OCSP 응답자를 참조하여 리프 인증서의 유효성 상태를 문의하는 메시지를 보냅니다. 응답자는 해당 인증서의 유효성을 검사하여 결과를 클라이언트에 실시간으로 알려 줍니다. 이 방식을 사용하면 캐싱 및 배포 문제를 피할 수 있습니다.

Windows Vista에서 처음으로 제공되는(이전에는 타사 소프트웨어가 필요했음) OCSP 클라이언트 기능은 그룹 정책을 통해 구성할 수 있습니다. 기본적으로 Windows는 OCSP를 사용하려고 시도하며 응답자를 사용할 수 없는 경우에는 표준 CRL 조회 방식으로 변경합니다.

Windows Server 2008에서는 OCSP 응답자가 제공되어 이러한 요청에 응답합니다. 응답자는 역할 관리자를 통해 설치되며 Operations Manager 2007 관리 팩으로 모니터링할 수 있습니다. 클라이언트와 응답자 모두 OCSP 표준을 따르기 때문에 이와 유사한 표준 기반의 타사 구성 요소를 사용하는 기존 OCSP 환경에 쉽게 통합할 수 있습니다. 예를 들어 Windows Vista 클라이언트가 타사 응답자를 대상으로 인증서 상태를 확인하고 Windows Server 2008 응답자가 타사 클라이언트 응용 프로그램의 쿼리에 응답하는 기능이 모두 완벽하게 지원됩니다. 또한 Windows OCSP 응답자는 모든 표준 호환 CA에서 발급한 인증서 요청에 응답할 수 있습니다. 반드시 Windows Server 2008 CA(일반적으로 Windows 기반 CA)가 필요하지는 않습니다.

결론

Windows Vista와 Windows Server 2008의 PKI 플랫폼은 더욱 적은 비용으로 더욱 안전하게 PKI를 배포하고 운용할 수 있게 해 주는 몇 가지 새로운 기능과 수많은 향상된 기능을 제공합니다. 개발자들은 새로운 CNG API를 기반으로 더욱 손쉬운 프로그래밍 환경을 구현하고 새로운 암호화 표준 지원할 수 있습니다. 등록 기능 개선을 통해 조직에서는 간편하게 대량으로 인증서를 제공할 수 있고 조직 전반에 걸쳐 안전하게 키를 로밍할 수 있습니다. 또한 새로운 관리 팩과 CA 클러스터링 기능을 통해 더욱 편리하게 CA의 상태를 모니터링하고 가용성을 높은 수준으로 유지할 수 있습니다. 마지막으로, 향상된 해지 검사 기능을 통해 CRL 배포에 대역폭을 낭비할 필요 없이 표준 기반의 방식으로 인증서의 유효성을 실시간으로 검사할 수 있습니다. 결과적으로 Windows Vista와 Windows Server 2008은 Windows PKI 플랫폼을 한 차원 더 높은 수준으로 발전시켰습니다.

PKI 기능 향상 리소스

John Morello는 2000년부터 Microsoft에서 일했습니다. 수석 컨설턴트로서 Fortune 100대 기업과 미국 민간 및 군사 부문 고객을 위한 보안 솔루션을 설계하였으며, 현재는 Windows Server 그룹의 수석 프로그램 관리자로 보안 및 원격 액세스 기술을 담당하고 있습니다. Morello가 속한 팀의 블로그(blogs.technet.com/WinCAT)도 살펴보시기 바랍니다.

© 2008 Microsoft Corporation 및 CMP Media, LLC. All rights reserved. 이 문서의 전부 또는 일부를 무단으로 복제하는 행위는 금지됩니다..