2013-07-02 2 views
2

인증서가있는 PowerShell 스크립트에 서명 할 때 this 게시물을 읽었습니다. 이것은 VeriSign (또는 유사)의 외부 인증서를 사용하여 PowerShell 스크립트 내에서 개발 한 코드를 인코딩하고 보호하는 데 더 유용합니다.외부 CA가있는 Powershell 스크립트에 서명

나는 이것이 실제로 작동하는지 알아 내려고하고 있습니다. 나는 과정으로 갈 기대 :

  1. 내 컴퓨터에 인증서를 설치 베리사인에서
  2. 구매 코드 서명 인증서는
  3. 원하는 장치에서 스크립트를 실행 파워 쉘 스크립트
  4. 서명

이 스크립트는 외부 CA와 서명되므로 Windows가 VeriSign 루트 CA를 신뢰하기 때문에 인증서를 인증 할 수 없습니까? 내 생각 엔 Windows가 VeriSign의 루트 CA를 이미 가지고 있기 때문에 신뢰할 수 있습니다. 인터넷 액세스를 허용하지 않는 시스템에서 인증서가 계속 검증되고 실행되도록 허용한다면 어떻게 될까요?

+0

Windows는 특정 기간 동안 인증서 해지 상태를 캐시합니다. 시스템에 인터넷에 액세스 할 수없는 경우 CRL을 어떻게 업데이트합니까? 그것이 중요한지 나는 모른다. 당신은 시스템을 연결 해제하고,'certutil -urlcache * delete'을 실행하고 서명 된 스크립트를 실행하려고 시도 할 수 있습니다 ... – mousio

+0

당신은 그것을 시도 했습니까? 시도해 보시고 효과가 있는지 알려 주시기 바랍니다. 작동에 문제가 있으면 이러한 문제가 무엇인지 알려주세요. –

+0

3 년간의 인증서를 구매하고 사용하지 않으려 고 노력하고 싶지 않기 때문에 시도하지 않았습니다. –

답변

1

그래야합니다. 나는 그것을 시도한 적이 없지만, 당신의 논리가 이치에 맞습니다.

2

내 Win7 시스템의 cert 저장소를보고 "Verisign Class 3 Code Signing 2010 CA"가 발행 한 Oracle 코드 서명 인증서가 있습니다. 해당 CA는 중간 CA입니다. 루트 CA는 "Verisign Class 3 Public Primary Certification AUthority - G5"입니다. 해당 루트 CA는 Windows의 신뢰할 수있는 루트 CA 저장소에 있습니다. 그래서 나는이에서 수집하는 것은 :

  1. 네 당신이 그것을 할 수있는 - 오라클을 수행

  2. Verisign은 인증서 표시를 서명 문제 코드를 않지만, 그들은 중간 캘리포니아로 서명 이것은 Windows가이 인증서를 어떻게 든 구해야한다는 것을 의미합니다. Verisign 중간 인증서에는 이 Windows가 중간 인증서를 검색 할 수있는 한 가지 방법 인 "기관 정보 액세스"필드가 있습니다. 그러나 기기는 인터넷에 접속할 수 있어야합니다.

    • 다른 방법 (인터넷에 연결할 수없는 경우)은 사용자의 컴퓨터에 중간 인증서를 설치하는 것입니다. 설치 프로그램의 일부일 수 있습니다. 내가 그 오라클이 인증 코드 EXE를 들어 내 컴퓨터

    • 에 한 일을해야합니다 생각, 다른 대안은 (기계 인터넷에 액세스 할 수없는 경우) 확인 중간 인증서가 EXE에서 Authenticode 서명에 포함 된 확인하는 것입니다. 그러나 나는 Powershell이 ​​그것을 지원할 것인지 여부를 모른다. 지지를 확인하기 위해 전화 할 수있는 다른 확인/이메일 베리사인으로

.

0

원하는 장치에서 스크립트를 실행하려면 실행 정책을 해당 장치의 AllSigned 이상으로 설정해야합니다. 인증서를 장치 또는 도메인에 추가하지 않는 한이 게시자를 신뢰하려면 계속 질문을 받게됩니다. here을 참조하십시오.

+0

예. PowerShell 스크립트에 서명하는 주요 목적은 코드를 암호화하여 읽을 수 없게 만드는 것입니다. –

+1

PS 코드에 서명해도 암호화되지 않습니다. "서명"은 소비자가 신뢰할 수있는 출처에서 온 것임을 보증합니다. 그러나 CA의 정책에 따라 이러한 보증은 제한적입니다. 일반적으로 CA는 귀하가 인증서의 "발급자"필드에 입력 한 도메인 이름을 소유하고 있다는 증거를 요구합니다. 큰 규모의 게시자의 경우 또는 조직 내에서 소프트웨어를 게시하는 경우 또는 소비자가 이미 충분히 좋은 고객 인 경우 하지만 내가들은 적이없는 게시자로부터 다운로드 한 스크립트는 믿을 수 없습니다. 난독 화를 원한다면 PS는 나쁜 선택입니다. 대신 C#, Java 등을 사용하십시오. –

+0

@Lars, "신뢰할 수없는 게시자"프롬프트를 건너 뛸 수있는 방법이 있습니까? 방금 Comodo에서이 경고를 제거하겠다는 잘못된 가정하에 인증서에 서명하는 코드를 구입했습니다. 서명 된 스크립트를 기본적으로 신뢰할 수있는 다른 인증 기관 (또는 방법 또는 절차)이 있습니까? – skataben

관련 문제