[c#] 서명 된 응용 프로그램을 설치할 때 Win8에서 스마트 화면을 전달하는 방법은 무엇입니까?

우리는 개발자이며 디지털 서명 된 응용 프로그램 설치 프로그램이 있습니다. 이 응용 프로그램을 설치하면 설치 경험에 영향을 미치는 스마트 화면이 팝업됩니다. 그것은 말한다

Windows가 PC를 보호했습니다.

Windows SmartScreen이 인식 할 수없는 앱의 시작을 차단했습니다.이 앱을 실행하면 PC가 위험에 처할 수 있습니다.

Microsoft는 디지털 서명 외에 응용 프로그램을 확인하는 몇 가지 전략을 가지고 있다고 생각합니다. 누구든지이 문제에 대한 경험이 있으며이 문제를 해결할 수있는 단서를 제공합니까?



답변

CA에서 구입 한 인증서로 설치 프로그램에 서명 한 경우이 경고를 제거하기 위해 Microsoft와 함께 작업하지 못한 이유에 대한 설명을 위해 CA에 문의해야합니다.

인증서가 CA가 아니라 자체 서명 된 인증서 인 경우 CA에 의존해야합니다.

Microsoft는 이미 Windows 팀 블로그에 대부분의 정보를 게시했습니다.

https://blogs.msdn.microsoft.com/ie/2012/08/14/microsoft-smartscreen-extended-validation-ev-code-signing-certificates/

모범 사례

개발자는 이전 블로그 게시물에서 제안한 모범 사례를 따라야합니다. 이 지침에 Windows 스토어를 통해 앱을 배포하는 추가 옵션과 EV 코드 서명 옵션을 추가했습니다.

  • Windows 스토어를 통해 앱 배포

Windows 스토어 개발자 온 보딩 및 애플리케이션 검토 프로세스를 통과하려면 Windows 8 애플리케이션이 필요합니다. Windows 8 응용 프로그램은 Windows 8의 SmartScreen 응용 프로그램 평판 확인 또는 경고 범위에 포함되지 않습니다.

  • 프로그램에 디지털 서명 (표준 또는 EV 코드 서명)

평판이 생성되고 디지털 인증서와 특정 파일에 할당됩니다. 디지털 인증서를 사용하면 데이터를 집계하여 여러 개별 프로그램이 아닌 단일 인증서에 할당 할 수 있습니다. 필수는 아니지만 EV 코드 서명 인증서로 서명 된 프로그램은 해당 파일 또는 게시자에 대한 이전 평판이없는 경우에도 SmartScreen 평판 서비스로 평판을 즉시 설정할 수 있습니다. EV 코드 서명 인증서에는 인증서 갱신시 평판을보다 쉽게 ​​유지할 수있는 고유 식별자도 있습니다. Windows 루트 인증서 프로그램의 구성원 인 CA에서 발급 한 Authenticode 인증서 만 평판을 설정할 수 있습니다.

현재 시만텍과 DigiCert는 EV 코드 서명 인증서를 제공하고 있습니다.

  • 악성 코드에 서명하거나 배포하지 마십시오.

악성으로 탐지 된 코드를 배포하면 EV 코드 서명 인증서로 서명 된 경우에도 파일에서 평판이 제거되고 관련 디지털 인증서에서 평판이 제거됩니다.

  • Windows 로고 또는 Windows 8 데스크톱 앱 인증 신청

여기에서 이러한 프로그램에 대해 자세히 알아보십시오. Windows 8 데스크톱 앱 인증 (Windows 스토어 제출에 필요) Windows 로고 프로그램


답변

방금 이전 Authenticode 인증서에서 인증서로 이동하는 전체 프로세스를 거쳤습니다 (EV 인증서가 아니라 자동화 된 빌드 프로세스에서 사용할 수있는 일반 인증서).

Microsoft는 더 이상 기존 인증서에서 새 인증서로 평판을 이전하는 수단을 제공하지 않습니다. 그러니 그들의 지원을 요청하지 마십시오. 당신은 많은 시간과 에너지를 낭비하게 될 것입니다. 그리고 그들은 도울 수 없을 것입니다.

Microsoft는 이전 인증서와 새 인증서에 동일한 텍스트 콘텐츠가 있으면 명성이 더 빨리 확립된다고 주장합니다. 보다 구체적으로, SmartScreen® Filter의 Application Reputation 기능 지원 팀 으로부터받은 답변은 다음과 같습니다.

평판이 알려진 인증서를 갱신 할 때마다 갱신 된 인증서로 서명 된 파일을 처음 다운로드 할 때 몇 가지 경고가 표시 될 수 있습니다. 그러나 갱신 된 인증서에 대한 알려진 평판은 일반적으로 새 인증서보다 더 빠르게 설정됩니다. 갱신 된 인증서가 평판을 구축하는 동안 사용자는 계속 클릭하여 다운로드를 실행하거나 저장할 수 있습니다. 이를 위해 Actions | 더 많은 옵션 | 다운로드 관리자에서 실행하십시오.

SmartScreen이 사용자에게 경고하지 않도록하는 가장 좋은 방법 은 Windows SDK 다운로드에 포함되어야하는 WACK (Windows 앱 인증 키트 )를 실행하는 것입니다 .

Windows 앱 인증 키트

테스트를 실행 한 후 WACK은 진행 방법을 설명합니다.

최종 보고서-검증 통과

성공적인 애플리케이션 인증의 XML 결과를 https://sysdev.microsoft.com에 업로드합니다 . 며칠 후 SmartScreen은 인증 된 프로그램에 사용 된 디지털 서명을 인식하고 더 이상 다운로드시 사용자에게 경고하지 않습니다.

참고 Windows 8.1의 최신 업데이트에서 응용 프로그램을 인증 할 수 없었으며 모든 프로그램의 유효성을 검사하기 위해 WACK를 얻으려면 Windows 8.1을 새로 설치해야했습니다.


답변

한동안 검색해 왔으니 지금까지 찾은 내용을 공유하겠습니다.

Microsoft의 Windows 8에서이 기능에 대한 문서를 찾지 못했지만 잘못된 위치를 찾고있을 수 있습니다.

필자가 읽은 대부분의 기사에서는 SmartScreen 필터가 다음과 같이 작동한다고 설명합니다.

  • 다운로드 한 설치 프로그램 또는 실행 파일을 실행하기 전에 Windows 8은 데이터베이스를 참조합니다.
  • 데이터베이스는 해당 프로그램이 다음과 같은지 여부를보고 할 수 있습니다.
    • 악성 / 피싱으로보고되고 Microsoft 직원이 확인했습니다.
    • 많은 사람들이 사용 / 운영합니다.

충분한 사람들이 해당 설치 프로그램을 악의적이라고보고하지 않고 실행했다면 결국 해당 프로그램은 안전한 것으로 표시되고 다른 사용자는 성가신 메시지를받지 않게됩니다.

일부 출처 : ( 여기 ) ( 여기 )

사용자가 프로그램을 설치할 때 Microsoft로 전송되는 정보에는 IP 주소, 설치 관리자의 해시 및 디지털 서명, 응용 프로그램의 파일 이름이 포함됩니다. ( 여기 참조 )

Microsoft 직원은 데이터베이스에 직접 액세스하여 모든 Microsoft 응용 프로그램을 추가하고 안전하게 플래그를 지정할 수 있습니다.

아마도 Microsoft는 설치 프로그램을 사전 인증하는 방법을 설정했을 것입니다. 그렇지 않은 경우 충분한 사람들이 설치 프로그램을 실행할 때까지 기다려야 할 수도 있습니다. (하지만 얼마나 많은지 확실하지 않습니다).


답변

방금이 과정을 거쳤고 여기에 약간의 정보를 추가하겠습니다.

1) EV를 얻으십시오. 그것은 가치. 다음에 인증서를 업그레이드 할 때 EV 인증서로 업그레이드하십시오. 가격은 연간 약 $ 100 이상입니다. EV 인증서는 훔치기가 더 어렵 기 때문에 더 안전한 것으로 간주됩니다. 귀하에게 발급되면 서명을 완료하기 위해 하드웨어 토큰 장치가 발급됩니다. 불행히도 최종 신호는 자동화 된 빌드와 호환되지 않습니다.

소리만큼 끔찍하지 않습니다. 자동화와 호환되는 실행 파일 (설치 프로그램 내부)에 서명하기위한 두 번째 인증서를 제공합니다. 설치 프로그램의 서명은 하드웨어 토큰과 함께 서명되어야합니다.

2) EV 인증서를 받고 싶지 않다면 평판이 필요합니다. 업그레이드하는 경우 Microsoft는 이전 인증서의 평판을 새 인증서로 전송합니다. MSDN 기술 지원에 문의해야하며 약 1 주일 후에 완료됩니다. 이전 및 새 인증서와 함께 이전 및 새 설치 프로그램을 제출하고 수정했습니다.

3) 이것이 첫 번째 인증서 인 경우 평판을 얻을 때까지 SmartScreen에 붙어 있습니다. sysdev.microsoft.com을 통해 앱 인증을 받아야 할 것입니다. 그러나 Microsoft에서 긍정적 인 평판을 얻기 전에 얼마나 많은 다운로드가 필요한지 실제로는 알 수 없습니다.

그것이 제 경험입니다.


답변

Windows 8.1이 나왔기 때문에.

  • Microsoft는 인터넷을 통해 PC에 다운로드하여 설치하려고 할 때 신뢰할 수있는 모든 표준 코드 서명 인증서를 비활성화했지만, USB 또는 CD-ROM을 통해 응용 프로그램을 배포하는 경우 표준 코드 서명 인증서 응용 프로그램이 작동합니다.

  • 를 사용하여 signtool.exe확인 하지 마십시오 ( signtool.exe verify /pa mysetup.exe성공을 표시하지만 다른 사용자가 다운로드하고 SmartScreen 팝업을 설치하려고하면 실패합니다. 팝업이 계속 표시됨)

WACK (Windows 앱 인증 키트) 사용

여기에 이미지 설명 입력

  • 이 표준 코드 서명 인증서는 죽었습니다. 표준 코드 서명 인증서가있는 경우 Windows 앱 인증 키트 (WACK)가 경고와 함께 PASS를 표시하더라도 100 % 확인 성공을 의미하지는 않지만 과거와 같이 더 이상 안정적으로 작동하지 않습니다.

여기에 이미지 설명 입력

EV 인증서 ( https://www.globalsign.com/en/code-signing/) 를 구매해야합니다. )

따라서 100 % 성공하려면 스푼 피드를 따르세요.

1 단계 : https://sysdev.microsoft.com 으로 이동 로그인합니다.

a) 회사 계정 만들기> 다음

b) Microsoft에서 제공하는 zip 파일 인 winqual.exe 파일을 다운로드하고 이제 표준 인증서 또는 EV 인증서로 winqual.exe에 서명 한 다음 다음을 클릭하여 유효성 검사를 위해 파일을 업로드합니다.

제 경우에는 Microsoft가 더 이상 허용하지 않는 표준 인증서가 있기 때문에 실패했습니다. 따라서 지금해야 할 일은 EV 라이센스를 구입하는 것입니다. 그렇지 않으면 실수로이 문제를 단서없이 해결하는 데 평생을 보낼 수 있습니다.

여기에 이미지 설명 입력


답변

EV cert 솔루션을 테스트했으며 작동합니다.

안타깝게도 EV 인증서는 서비스 컨텍스트에서 서명을 실행하는 TeamBuild와 호환되지 않는다는 점도 언급하겠습니다. EV 인증서에는 모든 공인 EV 인증서 공급 업체 (VeriSign 및 DigiCert)와 함께 사용하기 위해 SafeNet, Inc에서 제공하는 암호화 서비스 제공 업체와 인터페이스하는 하드웨어 토큰이 필요합니다.

서명이 발생하면 Safenet의 드라이버는 서비스 컨텍스트에서 실행하는 것과 다소 호환되지 않는 암호를 입력하라는 메시지를 표시합니다. 또한 Safenet은 실제 콘솔이 아닌 다른 곳에서 서명하는 것을 방지하는 보호 기능을 제공합니다. 원격 데스크톱 세션 내에서도 서명 할 수 없습니다. 따라서 Teambuild 내에서 서명하는 것은 기껏해야 문제가되고 최악의 경우에는 불가능합니다.

저는 Microsoft와 함께 일했지만 서명에 대한 해결 방법이나 SmartScreen에서 즉각적인 평판을 얻을 수있는 다른 방법을 제공 할 수 없었습니다.


답변

불행히도 위의 답변 중 하나에 대해 간단히 언급 할 충분한 담당자가 없습니다. 그러나 게시 된 앱에 부분 신뢰를 지정하고 (인터넷 영역 선택) 코드 서명 인증서가있는 경우 스마트 화면 경고가 표시되지 않습니다 (Win10에서 확인 됨).