디지털 서명 소프트웨어 - 자체 서명 인증서

디지털 서명 소프트웨어 - 자체 서명 인증서

소프트웨어 실행 파일에 서명하는 실험을 하고 싶습니다. 나에게서 벗어나는 뭔가가 있을까 두렵습니다.

CA로부터 인증서를 획득하는 단계에 이르게 되지만 그 전에 내가 무엇을 하고 있는지 알고 싶어서 테스트를 수행했습니다.

자체 서명된 인증서를 만들었습니다.

makecert -r -ss myPrivateCert -sk c:\test -n "CN=My Company Inc." testCert.cer

그런 다음 실행 파일에 서명했습니다.

signtool sign /v /s myPrivateCert /n "My Company Inc." /t http://timestamp.verisign.com/scripts/timstamp.dll c:\folder\my_installer.exe

두 명령 모두 성공했습니다.

3단계: "테스트 인증서 설치":http://msdn.microsoft.com/en-us/library/bb756995

성공.

(참고: 폴더에는 c:\testMicrosoft가 제안한 교차 인증서 목록에서 다운로드한 인증서를 배치했습니다. VeriSign Class 3 Public Primary Certification Authority - G5.cer- 그냥 그렇게 해야 한다고 추측합니다.)

난 달린다certmgr c:\folder\my_installer.exe

그리고 제목, 발급자, 일련 번호...(My Company Inc. 및 Verisign에서)를 포함하여 추가한 3개의 인증서 목록을 얻었으므로 모든 것이 정상인 것 같습니다.

그 후에도 설치 프로그램(또는 실행 파일)을 두 번 클릭하면 알 수 없는 게시자에 대한 UAC 메시지가 나타납니다...

그러면 해당 상자를 사라지게 하거나 "My Company Inc."라고 말하게 하려면 또 어떻게 해야 합니까? 프로듀서를 위해서? 그리고 그것은 모든 것을 수동으로 수행하는 로컬 시스템에만 해당됩니다.

실제 테스트를 위해 내 클라이언트가 VirtualBox 환경이라고 가정합니다. 그렇다면? 다음 단계: 설치 프로그램을 VirtualBox로 이동하고 실행하시겠습니까?

하지만 클라이언트에게 키나 인증서 등에 대해 어떻게 알릴 수 있습니까? exe와 함께 cer 파일을 복사합니까? 특별한 곳에 두어야 하나요? 다른 파일을 복사합니까? mmc를 다시 실행해야 하나요? 사용자 가 그런 일을 해야 합니까 ? 사용자 입장에서 보면 굉장히 복잡해 보이기 때문에... 매우 혼란스럽습니다...

예를 들어 Verisign에서 실제 인증서를 구매하면 웹을 통해 인증되며 다른 작업을 수행할 필요가 없다고 가정합니다(위의 두 명령 제외, -r 제외).

나는 웹에서 이것에 대한 많은 지침을 찾았지만 각각은 내가 시작했을 때처럼 나를 혼란스럽게 만들었습니다. 아마도 그들은 각각 사전 지식에 대한 가정을 가지고 있었을 것입니다...

답변1

"웹을 통해 인증"하지 않습니다(CRL(인증서 해지 목록) 확인 제외). 루트 CA는 운영 체제에 내장되어 있으며 Windows 업데이트 또는 OS 설치 디스크에 의해 설치됩니다. . 즉, (쉽게) 수정할 수 없는 하드 드라이브의 정적 데이터 세트입니다.

짜증나는 상자를 없애는 방법은 다음 중 하나입니다.

  • 귀하의 snakeoil 서명 CA를 신뢰하십시오(일반적으로 나쁜 생각이지만 작동할 것입니다). 또는
  • 공개적으로 신뢰할 수 있는 공식 루트 CA 또는 중간 CA 중 하나의 서명을 받으세요.

Verisign을 인용하셨습니다. 좋은. 이는 코드 서명 인증서를 제공하는 여러 제공업체 중 하나입니다. AFAIK, Windows는 모든 자체 서명 인증서에 대해 자동으로 경고를 표시하도록 프로그래밍되어 있기 때문에 상자가 계속 나타납니다. 자신이 만든 루트 CA를 기반으로 CSR을 생성하려는 경우 루트 CA를 신뢰하면 상자가 사라지게 할 수 있으며 이는 작동합니다. 그러나 클라이언트가 루트 CA를 신뢰하도록 해야 하는데, 이는 대부분의 상황에서 목적을 달성하지 못합니다. 따라서 공개 신뢰 네트워크가 가장 쉬운 경로입니다. 공급업체는 일반적으로 서비스 사용 방법과 코드 서명 방법에 대한 명시적인 지침도 제공합니다.

관련 정보