다음을 통해 공유


ClickOnce 배포 및 Authenticode

업데이트: 2007년 11월

Authenticode는 응용 프로그램 게시자의 인증을 확인하는 디지털 인증서를 통해 응용 프로그램 코드에 서명하는 데 업계 표준 암호화를 사용하는 Microsoft 기술입니다. 응용 프로그램 배포에 Authenticode를 사용하면 ClickOnce에서 악의적인 제3자가 바이러스나 다른 해로운 프로그램을 신뢰할 수 있는 확인된 소스에서 가져온 올바른 프로그램으로 속이는 "트로이 목마" 현상을 방지할 수 있습니다. 모든 ClickOnce 배포는 디지털 인증서를 사용하여 서명해야 합니다.

다음 단원에서는 Authenticode에 사용되는 다양한 형식의 디지털 인증서, CA(인증 기관)를 사용하여 인증서의 유효성을 검증하는 방법, 인증서의 타임스탬프 역할 및 인증서에 사용할 수 있는 저장 방법에 대해 설명합니다.

Authenticode 및 코드 서명

디지털 인증서는 인증서가 발행되는 게시자 및 인증서를 발행하는 에이전시를 설명하는 메타데이터와 함께 암호화 공개/개인 키 쌍이 포함되는 파일입니다.

다양한 형식의 Authenticode 인증서가 있으며 각 인증서는 서로 다른 서명 형식에 대해 한 번 구성됩니다. ClickOnce 응용 프로그램의 경우 코드 서명에 유효한 Authenticode 인증서가 있어야 하며 디지털 전자 메일 인증서 같은 다른 형식의 인증서로 ClickOnce 응용 프로그램에 서명하려고 하면 응용 프로그램이 작동하지 않습니다. 자세한 내용은 Introduction to Code Signing(https://msdn.microsoft.com/library/default.asp?url=/workshop/security/authcode/intro\_authenticode.asp)을 참조하십시오.

다음과 같은 세 가지 방법 중 하나로 코드 서명용 인증서를 얻을 수 있습니다.

  • 인증서 공급업체에서 인증서를 구입합니다.

  • 디지털 인증서를 만드는 작업을 담당하는 조직의 그룹에서 인증서를 받습니다.

  • .NET Framework SDK(Software Development Kit)에 포함된 MakeCert.exe를 사용하여 자체 인증서를 생성합니다.

인증 기관 사용이 사용자에게 도움이 되는 방식

  • MakeCert.exe 유틸리티를 사용하여 생성된 인증서는 일반적으로 "자체 인증서" 또는 "테스트 인증서"라고 합니다. 이런 종류의 인증서는 .NET Framework에서 .snk 파일이 작동하는 방식과 동일한 방식으로 작동하며 공개/개인 암호화 키 쌍으로만 구성되고 게시자에 대한 안정성을 확인할 수 있는 정보는 포함하지 않습니다. 자체 인증서를 사용하여 인트라넷에서 높은 신뢰 수준으로 ClickOnce 응용 프로그램을 배포할 수 있지만 이러한 응용 프로그램이 클라이언트 컴퓨터에서 실행되면 ClickOnce는 이러한 응용 프로그램을 "알 수 없는 게시자"에서 들어오는 것으로 식별합니다. 기본적으로 자체 인증서로 서명되고 인터넷을 통해 배포된 ClickOnce 응용 프로그램은 신뢰할 수 있는 응용 프로그램 배포를 사용할 수 없습니다.

  • 이와 다르게 인증서 공급업체나 엔터프라이즈 내의 부서와 같은 CA에서 인증서를 받을 경우 해당 인증서는 사용자에게 보다 강력한 보안을 제공합니다. 이 인증서는 서명된 소프트웨어의 게시자를 식별하고 인증서에 서명한 CA를 통해 확인하여 해당 ID를 확인합니다. CA가 루트 기관이 아닌 경우 Authenticode는 다시 루트 기관으로 "체인"되어 해당 CA가 인증서를 발행하도록 인증되었는지 확인합니다. 보다 강력한 보안을 위해 가능하면 항상 CA가 발행한 인증서를 사용해야 합니다.

자체 인증서 생성에 대한 자세한 내용은 인증서 작성 도구(Makecert.exe)를 참조하십시오.

타임스탬프를 통해 의도하지 않은 만료를 방지하는 방법

인증서가 더 강력한 보안을 제공하더라도 권한이 없는 사용자가 올바른 소유자로부터 인증서 및 해당 암호를 얻을 수 있습니다. 기본적으로 CA가 발생한 인증서는 12개월 동안만 유효합니다. 따라서 인증서 소유자는 CA를 통해 ID를 다시 확인하여 손상된 인증서가 짧은 기간 동안만 사용되도록 합니다.

일반적으로 인증서 만료는 12개월마다 ClickOnce 응용 프로그램에 다시 서명해야 함을 의미합니다. Authenticode에서는 타임스탬프를 지원하는 이러한 필요성을 줄입니다. 인증서를 사용하여 ClickOnce 배포에 서명하면 ClickOnce는 서명 날짜 및 시간을 기록하고 이 기록을 배포의 디지털 서명에 포함합니다. 인증서가 아직 유효할 때 배포에 서명한 경우에만 나중에 인증서가 만료되더라도 ClickOnce를 통해 응용 프로그램을 실행할 수 있습니다.

ClickOnce 배포, Mage.exe 및 MageUI.EX를 만드는 Visual Studio 및 Windows SDK(소프트웨어 개발 키트) 도구는 모두 타임스탬프를 지원합니다.

인증서 저장

  • 인증서를 .pfx 파일로 파일 시스템에 저장하거나 키 컨테이너 내부에 저장할 수 있습니다. Windows 도메인의 사용자는 여러 개의 키 컨테이너를 가질 수 있습니다. 대신 .pfx로 저장하도록 지정하지 않으면 기본적으로 MakeCert.exe는 인증서를 개인 키 컨테이너에 저장합니다. ClickOnce 배포를 만드는 Windows SDK 도구인 Mage.exe 및 MageUI.exe를 통해 두 가지 방식으로 저장된 인증서를 사용할 수 있습니다.

참고 항목

개념

ClickOnce 배포 개요

ClickOnce 배포 및 보안

신뢰할 수 있는 응용 프로그램 배포 개요

참조

매니페스트 생성 및 편집 도구(Mage.exe)