Microsoft에서 서명 한 MSP430 USB 드라이버 가져 오기


11

USB 모듈이 내장 된 MSP430 마이크로 컨트롤러를 사용하는 제품을 개발 중입니다. Texas Instruments에서 PID를 가져 와서 해당 도구를 사용하여 설명자 및 .inf 파일을 생성하여 드라이버 소프트웨어를 설치했습니다. 분명한 문제는 이러한 파일의 사용자 지정 특성으로 인해 USB 케이블을 연결하면 드라이버가 서명되지 않았다는 경고 메시지가 팝업으로 표시됩니다 (Windows 7). 나는 Windows 8과 Windows 10을 믿기 때문에 단순히 그것을 차단하고 사용자에게 이것을 나타내지 않습니다.

회사에서 출시 할 예정인 모든 기능을 갖춘 제품이므로 고객에게 장치를 설치할 수 있도록 드라이버 인증서 (.cat 파일 형식으로 생각하십니까?)를 얻어야합니다. 문제없는 드라이버 소프트웨어.

나는 드라이버에 서명하기 위해 필요한 것을 파악하려고 노력 하는 Microsoft 문서 (대부분 이 문서 ) 를 상당히 많이 보았지만 불행히도 지금은 내 머리 위에 있습니다.

이것이 내가 지금까지 이해 한 것입니다.

  • 드라이버 (.inf 파일?)를 Microsoft 공인 인증 기관 (CA)에 제출해야합니다. 거기에는 여러 가지가 있으므로 드라이버에 서명하는 것을 찾아야합니다.
  • CA를 선택한 후에는 일반적으로 서비스에 대해 연간 요금 (가장 일반적으로 1, 2 또는 3 년)을 지불해야합니다. 이 기간 동안 생성 한 모든 드라이버는 서비스가 만료 된 후에도 영구적으로 서명됩니다. 서비스가 만료 된 후 드라이버를 변경하거나 새 드라이버를 만들려면 1 년, 2 년 또는 3 년 동안 추가 서비스를 구매해야합니다.
  • 수수료를 지불 한 후 CA는 .cat 파일을 생성합니다.이 파일은 내가 제공 한 드라이버가 변경되지 않도록하는 인증서입니다. 그렇지 않으면 더 이상 .cat 파일과 일치하지 않으며 설치 중에 오류가 나타납니다.

이 올바른지? 특정 CA에 대한 권장 사항을 찾고있는 것처럼 들릴 위험이 있습니다 (걱정하지 않습니다).이 인증을 수행 할 수있는 CA 목록은 어디에서 찾을 수 있습니까? 다른 서비스 기간 동안 웹 사이트 및 / 또는 가격이 더 좋을 것입니다. CA에서 서명 한 USB 마이크로 컨트롤러 기반 제품의 드라이버를 직접 경험 한 사람이 있습니까? 프로세스를 이해하고 처리하는 데 도움을 줄 수있는 사람이 있습니까? 이미 MSDN 포럼에 게시 했지만 거기에서 꽤 죽은 것 같습니다. 이틀이 지났고 스레드에는 소수의 견해 만 있습니다.


드라이버는 완전한 기능을 갖춘 것으로 커널 모드에서 코드를 실행해야합니까? 아니면 inf 파일입니까? 단지 inf 파일 인 경우 어떤 내장 드라이버 (.sys 파일)를로드합니까?
Jack B

이것은 내가 실패한 곳이며 PC의 내부 작동과 드라이버 작동 방식에 대해 잘 모릅니다. 내 장치는 내장 USB 모듈이있는 MSP430을 중심으로 설계되었습니다. 그것은이하는 모든 가상 COM 포트 열려 있으므로이 장치는 단순히 USB 연결을 통해 CDC 인터페이스를 가지고
DerStrom8

디자인이 현재 개발 보드에 있으며 .inf 파일을 사용하여 장치를 설치하려고하면 Windows 7에서 표준 오류가 발생합니다. davidegrayson.com/signing/img/win7_unverified_publisher.png . 테스트하는 동안 MSP430Ware 패키지의 CDC 예제 중 하나와 함께 제공된 .inf 및 .cat 파일을 사용했지만이 제품을 출시하면 더 이상 할 수 없습니다. 제가 잘못 본게 아니라면,이 커널 인 모드에서 코드를 실행하지 않습니다
DerStrom8

1
한마디로 : 당신은 내가 보았던 마지막으로 약 80 파운드 / 년의 가격으로 정상적인 코드 서명 인증서로 서명 할 수 있습니다. 모든 Microsoft 교차 서명이 필요하지 않습니다. 그러나 Windows 8.1 및 이전 버전에서는 신뢰성이 높지 않으므로 (EN61326을 통해 얻을 수 없었습니다) 대안을 줄 수도 있습니다. 아무도 나를 이길 수 없다면 저녁 식사 후에 답을 쓸 것이다.
Jack B

1
@AdamLawrence 나는 몇 시간 후에 돌아 왔고 답에 아무것도 추가해야한다는 것을 보지 못했습니다. 나도 괜찮아
Jack B

답변:


16

실제로 그렇게 나쁘지 않습니다. 직장에서이 작업을 몇 차례 수행하여 Microchip PIC24FJ64GB002 기반 USB CDC-ACM-to-I 2 C 인터페이스 용 .INF / .CAT를 작성하고 서명했습니다 .

  • 인증 기관과의 관계를 설정하십시오. 그들에게 검증 할 몇 가지 기본 정보를 제공해야합니다. EV (Extended Validation)를 원한다면 더 많은 것을 요구할 것입니다. 그러나 멀리 갈 필요는 없습니다. Thawte, Digicert 및 Comodo가 CA의 예입니다.

  • CA에서 Authenticode 코드 서명 인증서를 구매하십시오. .INF 파일과 관련된 .CAT 파일에 서명해야합니다. 이 수준의 서명에는 커널 모드 인증서가 필요하지 않습니다.

  • 인증서 설치 (말하지 않고)

  • Windows SDK 프레임 워크Windows 드라이버 키트 를 다운로드하여 필요한 Microsoft 도구 (카탈로그 생성 및 서명)를 받으십시오.

  • 드라이버를 패키지하고 서명하십시오.

    • inf2cat 을 사용 하여 .INF 파일의 카탈로그 (.CAT) 파일을 생성하십시오.
    • signtool 을 사용 하여 카탈로그 파일에 서명하십시오.

이 시점에서 일종의 드라이버 설치 프로그램을 만들거나 SDK의 dpinst 를 사용 하여 기본 설치 자동화를 수행 할 수 있습니다.

편집 : 아래 다양한 의견의 메모 :

  1. USBSER.SYS를로드하기 위해 .INF 파일을 생성하면 커널 모드 드라이버가 생성 되지 않습니다. USBSER.SYS (내장, 서명 및 신뢰)를 사용하여 새로운 것을 생성하지 않으므로 EV 서명이 필요하지 않습니다. 인증서 및 WHQL 인증. 기본 인증 코드 인증서 만 있으면됩니다.
  2. Windows 10부터는 USBSER.SYS 장치에 대해 서명 된 .INF가 전혀 필요하지 않습니다. Windows는 자동으로 USB CDC-ACM 장치 (Class_02)를 선택합니다 . 또한 처음부터 드라이버를 다시 작성하고 지금은 훨씬 더 작동 (그것도입니다 가상 COM 포트, 최대 잠그지 않고 예기치 않은 장치 제거 및 재 삽입을 처리하는 거대한 플러스를!). 즉, 원하는 경우 서명 된 드라이버 방식을 계속 사용할 수 있습니다. 서명 된 드라이버는 여전히 '작동'합니다. 아직 Win 8.1 / 8 / 7 및 이전 시스템이 많이 있으므로 USB CDC-ACM 장치에는 서명 된 드라이버가 여전히 중요합니다.

질문에 대한 추가 확장 :

  • CA에 서명 할 내용은 제출하지 마십시오. 코드 서명 인증서를 구매하여 컴퓨터에 설치 한 후 .INF 유효성 검사 및 서명을 직접 수행하십시오.
  • 당신은 연회비 지불 할 필요가 없습니다 그 자체를 - 그러나, 당신이 구입 인증서 중 하나 1, 2 또는 3 년의 유효 기간이있을 것이다. 인증서가 만료되면 서명을 유지하려면 새 인증서를 구입해야합니다. 이전에 서명 한 항목은 유효하지만 새 항목에 서명하는 기능은 손실됩니다.
  • .CAT는 .INF의 해시입니다. .INF에 대한 모든 변경 사항이 감지되고 인증서가 더 이상 유효하지 않으므로 .INF는 서명되지 않은 것처럼 동작합니다.

4
자세한 내용 : 그리고 Adafruit가의 윈도우 드라이버 및 실행 파일을 서명하는 방법 .
CL.

4
이것은 훌륭한 답변이며 실제로 도움이됩니다. 당신은 확실히 내가 예상했던 것보다 훨씬 쉽게 들리게합니다. 이것에 대해 살펴 보겠습니다. 그 동안 제공된 명확하고 간단한 단계 때문에이 답변을 수락하겠습니다. 건배!
DerStrom8

2
@ poizan42 이것은 커널 모드 드라이버가 아닙니다. 이것은 가상 COM 포트만 여는 간단한 USB CDC 장치입니다. 커널 모드 코드 실행이 수행되지 않습니다.
DerStrom8

1
후속 조치를 원했습니다. 이 단계는 하나의 경고만으로 완벽하게 작동했습니다. inf2cat.exe는 Windows SDK와 함께 제공되지 않으므로 Windows 드라이버 키트 (WDK)도 설치해야합니다. docs.microsoft.com/en-us/windows-hardware/drivers/ ... . 도움을 주셔서 감사합니다. 이제 경고없이 드라이버 소프트웨어를 설치할 수 있습니다. 예상대로 회사를 회사로 표시합니다.
DerStrom8

2
답변이 수정되었습니다. 명백한 점을 지적 해 주셔서 감사합니다 (툴체인을 설치 한 지 몇 년이 지났습니다)
Adam Lawrence
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.