Authenticode 는 업계 표준 암호화를 사용하여 애플리케이션 게시자의 신뢰성을 확인하는 디지털 인증서로 애플리케이션 코드에 서명하는 Microsoft 기술입니다. 애플리케이션 배포에 Authenticode를 사용하면 ClickOnce가 트로이 목마의 위험을 줄일 수 있습니다. 트로이 목마는 악성 제3자가 신뢰할 수 있는 소스에서 온 합법적인 프로그램인 것처럼 위장한 바이러스 또는 기타 유해한 프로그램입니다. 디지털 인증서를 사용하여 ClickOnce 배포에 서명하는 것은 어셈블리와 파일이 변조되지 않았는지 확인하는 선택적 단계입니다.
다음 섹션에서는 Authenticode에 사용되는 다양한 유형의 디지털 인증서, CA(인증 기관), 인증서의 타임스탬핑 역할 및 인증서에 사용할 수 있는 스토리지 방법을 사용하여 인증서의 유효성을 검사하는 방법에 대해 설명합니다.
Authenticode 및 코드 서명
디지털 인증서는 인증서가 발급된 게시자 및 인증서를 발급한 기관을 설명하는 메타데이터와 함께 암호화 공개/프라이빗 키 쌍을 포함하는 파일입니다.
다양한 유형의 Authenticode 인증서가 있습니다. 각 서명 유형은 서로 다른 형식으로 구성됩니다. ClickOnce 애플리케이션의 경우 코드 서명에 유효한 Authenticode 인증서가 있어야 합니다. 디지털 전자 메일 인증서와 같은 다른 유형의 인증서로 ClickOnce 애플리케이션에 서명하려고 하면 작동하지 않습니다. 자세한 내용은 코드 서명 소개를 참조하세요.
다음 세 가지 방법 중 하나로 코드 서명용 인증서를 가져올 수 있습니다.
인증서 공급업체에서 구입합니다.
디지털 인증서 만들기를 담당하는 조직의 그룹에서 하나를 받습니다.
New-SelfSignedCertificate PowerShell cmdlet을 사용하거나 Windows SDK(소프트웨어 개발 키트)에 포함된 MakeCert.exe사용하여 사용자 고유의 인증서를 생성합니다.
인증 기관을 사용하여 사용자를 돕는 방법
New-SelfSignedCertificate 또는 MakeCert.exe 유틸리티를 사용하여 생성된 인증서를 일반적으로 자체 인증서 또는 테스트 인증서라고 합니다. 이러한 종류의 인증서는 .NET Framework에서 .snk 파일이 작동하는 것과 거의 동일한 방식으로 작동합니다. 퍼블릭/프라이빗 암호화 키 쌍으로만 구성되며 게시자에 대한 확인 가능한 정보가 없습니다. 자체 인증서를 사용하여 인트라넷에 대한 신뢰가 높은 ClickOnce 애플리케이션을 배포할 수 있습니다. 그러나 이러한 애플리케이션이 클라이언트 컴퓨터에서 실행되면 ClickOnce는 알 수 없는 게시자에서 온 것으로 식별합니다. 기본적으로 자체 인증서로 서명되고 인터넷을 통해 배포된 ClickOnce 애플리케이션은 신뢰할 수 있는 애플리케이션 배포를 활용할 수 없습니다.
반면 인증서 공급업체 또는 엔터프라이즈 내 부서와 같은 CA에서 인증서를 받는 경우 인증서는 사용자에게 더 많은 보안을 제공합니다. 서명된 소프트웨어의 게시자를 식별할 뿐만 아니라 서명된 CA를 확인하여 해당 ID를 확인합니다. CA가 루트 기관이 아닌 경우 Authenticode는 루트 기관에 다시 "연결"하여 CA가 인증서를 발급할 권한이 있는지 확인합니다. 보안을 강화하려면 가능하면 CA에서 발급한 인증서를 사용해야 합니다.
자체 인증서 생성에 대한 자세한 내용은 New-SelfSignedCertificate 또는 MakeCert를 참조하세요.
타임 스탬프
ClickOnce 애플리케이션에 서명하는 데 사용되는 인증서는 특정 기간(일반적으로 12개월) 후에 만료됩니다. 새 인증서로 애플리케이션을 지속적으로 다시 서명할 필요가 없도록 ClickOnce는 타임스탬프를 지원합니다. 애플리케이션이 타임스탬프로 서명되면 타임스탬프가 유효한 경우 만료 후에도 해당 인증서가 계속 수락됩니다. 이렇게 하면 만료된 인증서가 있지만 유효한 타임스탬프가 있는 ClickOnce 애플리케이션을 다운로드하고 실행할 수 있습니다. 또한 만료된 인증서가 있는 설치된 애플리케이션에서 업데이트를 계속 다운로드하고 설치할 수 있습니다.
애플리케이션 서버에 타임스탬프를 포함하려면 타임스탬프 서버를 사용할 수 있어야 합니다. 타임스탬프 서버를 선택하는 방법에 대한 자세한 내용은 방법: 애플리케이션 서명 및 배포 매니페스트를 참조하세요.
만료된 인증서 업데이트
이전 버전의 .NET Framework에서는 인증서가 만료된 애플리케이션을 업데이트하면 해당 애플리케이션의 작동이 중지될 수 있습니다. 이 문제를 해결하려면 다음 방법 중 하나를 사용합니다.
.NET Framework 버전 3.5 이상을 업데이트합니다.
애플리케이션을 제거하고 유효한 인증서를 사용하여 새 버전을 다시 설치합니다.
인증서 저장
- 인증서를 파일 시스템에 .pfx 파일로 저장하거나 키 컨테이너 내에 저장할 수 있습니다. Windows 도메인의 사용자는 여러 키 컨테이너를 가질 수 있습니다. 기본적으로 MakeCert.exe 인증서를 .pfx 에 저장하도록 지정하지 않는 한 개인 키 컨테이너에 저장합니다. ClickOnce 배포를 만들기 위한 Windows SDK 도구인 Mage.exe 및 MageUI.exe사용하면 두 가지 방식으로 저장된 인증서를 사용할 수 있습니다.