ClickOnce 및 Authenticode
Authenticode는 응용 프로그램 게시자의 인증을 확인하는 디지털 인증서를 통해 응용 프로그램 코드에 서명하는 데 업계 표준 암호화를 사용하는 Microsoft 기술입니다.응용 프로그램 배포에 Authenticode를 사용하면 ClickOnce에서 트로이 목마 공격의 위험이 감소합니다. 트로이 목마는 악의적인 제3자가 신뢰할 수 있는 확인된 소스에서 가져온 올바른 프로그램으로 속이는 바이러스나 다른 해로운 프로그램입니다.필요에 따라 어셈블리 및 파일이 훼손되지 않았음을 확인하기 위해 디지털 인증서로 ClickOnce 배포에 서명할 수 있습니다.
다음 단원에서는 Authenticode에 사용되는 다양한 형식의 디지털 인증서, CA(인증 기관)를 사용하여 인증서의 유효성을 검증하는 방법, 인증서의 타임스탬프 역할 및 인증서에 사용할 수 있는 저장 방법에 대해 설명합니다.
Authenticode 및 코드 서명
디지털 인증서는 인증서가 발행되는 게시자 및 인증서를 발행하는 에이전시를 설명하는 메타데이터와 함께 암호화 공개/개인 키 쌍이 포함되는 파일입니다.
Authenticode 인증서의 유형은 다양합니다.각 유형은 다양한 서명 형식에 맞게 구성됩니다.ClickOnce 응용 프로그램의 경우 코드 서명에 유효한 Authenticode 인증서가 있어야 합니다. 디지털 전자 메일 인증서 등의 다른 형식의 인증서로 ClickOnce 응용 프로그램에 서명하려고 하면 작업이 실패합니다.자세한 내용은 Introduction to Code Signing을 참조하십시오.
다음과 같은 세 가지 방법 중 하나로 코드 서명용 인증서를 얻을 수 있습니다.
인증서 공급업체에서 인증서를 구입합니다.
디지털 인증서를 만드는 작업을 담당하는 조직의 그룹에서 인증서를 받습니다.
Windows SDK(소프트웨어 개발 키트)에 포함되어 있는 MakeCert.exe를 사용하여 고유한 인증서를 생성합니다.
인증 기관 사용이 사용자에게 도움이 되는 방식
MakeCert.exe 유틸리티를 사용하여 생성된 인증서는 일반적으로 자체 인증서 또는 테스트 인증서라고 합니다.이 유형의 인증서는 .NET Framework에서 .snk 파일이 작동하는 것과 매우 유사한 방식으로 작동합니다.이 인증서에는 공개/비밀 암호화 키 쌍만 포함되고 게시자에 대한 확인 가능한 정보는 포함되지 않습니다.자체 인증서는 인트라넷에서 높은 신뢰 수준으로 ClickOnce 응용 프로그램을 배포하는 데 사용할 수 있습니다. 그러나 이러한 응용 프로그램이 클라이언트 컴퓨터에서 실행되면 ClickOnce에서는 해당 프로그램의 출처가 알 수 없는 게시자인 것으로 식별합니다.기본적으로 자체 인증서로 서명되고 인터넷을 통해 배포된 ClickOnce 응용 프로그램은 신뢰할 수 있는 응용 프로그램 배포를 사용할 수 없습니다.
이와 다르게 인증서 공급업체나 엔터프라이즈 내의 부서와 같은 CA에서 인증서를 받을 경우 해당 인증서는 사용자에게 보다 강력한 보안을 제공합니다.이 인증서는 서명된 소프트웨어의 게시자를 식별하고 인증서에 서명한 CA를 통해 확인하여 해당 ID를 확인합니다.CA가 루트 기관이 아닌 경우 Authenticode는 다시 루트 기관으로 "체인"되어 해당 CA가 인증서를 발행하도록 인증되었는지 확인합니다.보다 강력한 보안을 위해 가능하면 항상 CA가 발행한 인증서를 사용해야 합니다.
자체 인증서 생성에 대한 자세한 내용은 Makecert.exe(인증서 작성 도구)를 참조하십시오.
타임스탬프
ClickOnce 응용 프로그램 서명에 사용되는 인증서는 특정 기간(일반적으로 12개월)이 지나면 만료됩니다.새 인증서로 응용 프로그램을 계속 서명하지 않아도 되도록 ClickOnce에서는 타임스탬프를 지원합니다.응용 프로그램이 타임스탬프로 서명된 경우 해당 타임스탬프가 유효하면 만료 이후에도 인증서가 계속 적용됩니다.따라서 인증서는 만료되었지만 타임스탬프가 유효한 ClickOnce 응용 프로그램에서 다운로드 및 실행이 가능합니다. 또한 만료된 인증서가 있는 설치된 응용 프로그램이 계속 업데이트를 다운로드하여 설치할 수 있습니다.
응용 프로그램 서버에 타임스탬프를 포함하려면 타임스탬프 서버를 사용할 수 있어야 합니다.타임스탬프 서버를 선택하는 방법에 대한 자세한 내용은 방법: 응용 프로그램 및 배포 매니페스트 서명을 참조하십시오.
만료된 인증서 업데이트
이전 버전의 .NET Framework에서 인증서가 만료된 응용 프로그램을 업데이트하면 해당 응용 프로그램이 작동하지 않을 수 있습니다.이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.
.NET Framework를 Windows XP에서 버전 2.0 SP1 이상으로 업데이트하거나 Windows Vista에서 버전 3.5 이상으로 업데이트합니다.
응용 프로그램을 제거하고 유효한 인증서를 사용하여 새 버전을 다시 설치합니다.
인증서를 업데이트하는 명령줄 어셈블리를 만듭니다.이 프로세스에 대한 단계별 정보는 Microsoft 지원 문서 925521에서 확인할 수 있습니다.
인증서 저장
- 인증서를 .pfx 파일로 파일 시스템에 저장하거나 키 컨테이너 내부에 저장할 수 있습니다.Windows 도메인의 사용자는 여러 개의 키 컨테이너를 가질 수 있습니다.대신 .pfx로 저장하도록 지정하지 않으면 기본적으로 MakeCert.exe는 인증서를 개인 키 컨테이너에 저장합니다.Windows SDK 배포를 만드는 ClickOnce 도구인 Mage.exe 및 MageUI.exe를 통해 둘 중 하나의 방식으로 저장된 인증서를 사용할 수 있습니다.