Microsoft Tarafından İmzalanan MSP430 USB Sürücüsünü Alma


11

Dahili bir USB modülüne sahip bir MSP430 mikrodenetleyici kullanan bir ürün geliştiriyorum. Texas Instruments'tan bir PID aldım ve tanımlayıcıları oluşturmak için araçlarını ve sürücü yazılımını yüklemek için bir .inf dosyasını kullandım. Açık olan sorun, bu dosyaların özel doğası nedeniyle, kullanıcıyı sürücünün imzalanmadığı konusunda uyaran USB kablosunu taktıktan sonra (Windows 7'de) bir açılır pencerenin sunulmasıdır. Windows 8 ve Windows 10'da sadece onu engellediğine ve bunu kullanıcıya hiç göstermediğine inanıyorum.

Bu, şirketimin piyasaya sürmeyi planladığı tam özellikli bir ürün olduğundan, cihazı yükleyebilmeleri için müşteriye sağlayabileceğimiz bir sürücü sertifikası (.cat dosyası biçimine inanıyorum?) Edinmeliyiz. sorunsuz sürücü yazılımı.

Ben bir sürücü imzalı almak için gerekli olan bir kavramaya çalışırken Microsoft belgelerinin (en önemlisi bu belge ) biraz üzerinden olmuştur , ama ne yazık ki bu şu anda kafamın üzerinde.

Şimdiye kadar anladığımı düşünüyorum:

  • Sürücümü (.inf dosyası?) Microsoft yetkili sertifika yetkilisine (CA) göndermem gerekiyor. Bunların bir kısmı var, bu yüzden sürücüleri imzalayan birini bulmalıyım.
  • Bir CA seçtikten sonra, genellikle hizmetleri için yıllık bir ücret (en yaygın olarak 1, 2 veya 3 yıl) ödemem gerekir. Bu süre zarfında oluşturduğum tüm sürücüler, hizmetin süresi dolduktan sonra bile kalıcı olarak imzalanacaktır. Hizmetin süresi dolduktan sonra sürücüyü değiştirmek veya yeni bir tane oluşturmak istersem, 1, 2 veya 3 yıl daha hizmet satın almam gerekecek.
  • Ücreti ödedikten sonra CA, onlara verdiğim sürücünün değiştirilmeyeceğine dair bir sertifika olan bir .cat dosyası oluşturur. Yaparsa, artık .cat dosyasıyla eşleşmez ve yükleme sırasında bir hata görünür

Bu doğru mu? Belirli CA'lar için öneriler arıyorum gibi gelme riski altındayım (umrumda değil), bu sertifikayı benim için yapabilen CA'ların bir listesini nerede bulabilirim? Hatta daha iyi web siteleri ve / veya farklı hizmet süreleri için fiyatları olurdu. Burada birisi CA tarafından imzalanmış bir USB mikrodenetleyici tabanlı ürün için sürücü alma konusunda doğrudan deneyime sahip miydi, bu da süreci anlamamıza ve geçmeme yardımcı olabilir mi? Zaten MSDN forumlarında yayınlanmıştır ama orada oldukça ölü görünüyor - İki gün oldu ve benim iş parçacığı sadece bir avuç görüş vardır.


Sürücünüz, çekirdek modunda kod yürütmesi gereken tam özellikli bir şey mi, yoksa yalnızca bir inf dosyası mı? Yalnızca bir inf dosyasıysa, hangi yerleşik sürücüleri (.sys dosyaları) yükler?
Jack B

Burası başarısız olduğum yer, PC'lerin iç işleri ve sürücülerin nasıl çalıştığı hakkında çok şey bilmiyorum. Cihazım yerleşik bir USB modülüne sahip bir MSP430 etrafında tasarlanmıştır. Bu cihazın USB bağlantısı üzerinden bir CDC arayüzü vardır, bu yüzden tek yaptığı sanal bir COM portu
açmaktır

Tasarım şimdi otururken, aslında bir geliştirme kartında ve .inf dosyasını kullanarak aygıtı yüklemeye çalıştığımda, standart hatayı Windows 7'den alıyorum: davidegrayson.com/signing/img/win7_unverified_publisher.png . Bu arada test için sadece MSP430Ware paketinden CDC örneklerinden biri ile sağlanan .inf ve .cat dosyalarını kullanıyorum, ancak bu ürünü serbest bıraktığımda bunu artık yapamayacağım. Yanılmıyorsam, bu çekirdek modunda kod yürütmez
DerStrom8

1
Kısacası: Normal bir kod imzalama sertifikasıyla, son baktığımda yaklaşık 80 £ / yıl fiyatla imzalayabilirsiniz. Tüm Microsoft çapraz imzalama işlemlerine gerek yoktur. Ancak Windows 8.1 ve önceki sürümlerde süper güvenilir değildir (onunla EN61326'yı geçemedik), bu nedenle de alternatif bir seçenek isteyebilirsiniz. Kimse beni yenemezse, yemekten sonra bir cevap yazacağım.
Jack B

1
@AdamLawrence Birkaç saat sonra geri döndüm ve cevabınıza bir şey eklemem gerektiğini görmedim. Benim için çok iyi.
Jack B

Yanıtlar:


16

Aslında o kadar da kötü değil. Bunu birkaç kez işte, Microchip PIC24FJ64GB002 tabanlı USB CDC-ACM-I 2 C arayüzü için .INF / .CAT yazarak ve imzalayarak yaptım .

  • Sertifika yetkilisi ile ilişki kurun. Onlara doğrulayacakları bazı temel bilgileri vermeniz gerekecektir. Genişletilmiş Doğrulama'ya (EV) giderseniz çok daha fazlasını isteyeceklerdir, ancak bu kadar ileri gitmenize gerek yoktur. Thawte, Digicert ve Comodo CA'ların bazı örnekleridir.

  • CA'dan bir Authenticode kod imzalama sertifikası satın alın. .INF dosyanızla ilişkili olan .CAT dosyasını imzalamanız gerekir. Bu imza düzeyi için çekirdek modu sertifikasına ihtiyacınız yoktur.

  • Sertifikayı yükleyin (söylemeden geçer)

  • Gereken Microsoft araçlarını (katalog oluşturma ve imzalama) edinmek için Windows SDK çerçevesini ve Windows Sürücü Seti'ni indirin .

  • Sürücüleri paketleyin ve imzalayın:

    • .INF dosyasının katalog (.CAT) dosyasını oluşturmak için inf2cat komutunu kullanın
    • Katalog dosyasını imzalamak için signtool kullanın

Bu noktadan sonra bir tür sürücü yükleyicisi yapabilir veya temel kurulum otomasyonu için SDK'dan dpinst kullanabilirsiniz .

EDIT: Aşağıdaki çeşitli yorumlardan notlar:

  1. .INF dosyası oluşturma Usbser.sys edilir yük değil bir çekirdek modu sürücüsü oluşturarak - Eğer Usbser.sys (dahili imzalanan ve zaten güvenilir) kullanıyorsanız, yeni bir şey yaratmak değil - ve bu şekilde EV imza gerektirmez sertifika ve WHQL sertifikası. Tek gereken temel bir Authenticode sertifikasıdır.
  2. Windows 10'dan başlayarak, Windows USB CDC-ACM aygıtlarını (Class_02) otomatik olarak toplayacağından USBSER.SYS aygıtları için imzalı bir .INF'ye ihtiyacınız yoktur . Ayrıca sürücüyü sıfırdan yeniden yazdılar ve şimdi çok daha iyi çalışıyor (hatta büyük bir artı olan sanal COM portunu kilitlemeden beklenmedik cihaz kaldırma ve yeniden ekleme işlemlerini bile gerçekleştiriyor !). Bununla birlikte, gerçekten isterseniz imzalı sürücü yaklaşımını kullanabilirsiniz - imzalı sürücü hala 'çalışacaktır'. Hala Win 8.1 / 8/7 ve daha eski makineler var, bu yüzden imzalı bir sürücüye sahip olmak USB CDC-ACM cihazları için hala biraz önemlidir.

Sorularınızda daha fazla genişleme:

  • CA'ya imzalamak için hiçbir şey göndermezsiniz - kod imzalama sertifikasını satın alır, bir makineye kurar ve .INF doğrulamasını yapar ve kendiniz imzalarsınız.
  • Sen bir yıllık ücret ödemek gerekmez se başına - ancak, satın sertifika ya bir 1-, 2- ya da 3 yıllık geçerlilik süresi olacak. Sertifikanın süresi dolduğunda, imzalamaya devam edebilmek için yeni bir tane satın almanız gerekir - önceden imzalanmış herhangi bir şey geçerli kalır, ancak yeni şeyler imzalama yeteneğini kaybedersiniz.
  • .CAT, .INF için bir karmadır. .F dosyasında yapılan değişiklikler algılanacak ve sertifika artık geçerli olmayacaktır, yani .INF imzasız gibi davranacaktır.

4
Daha fazla detay: Adafruit Windows Sürücüler ve Yürütülebilirler Nasıl İmzalanır .
CL.

4
Bu mükemmel bir cevap, gerçekten çok yardımcı. Kesinlikle beklediğimden daha kolay ses çıkarıyorsunuz. Bunu araştıracağım. Bu arada, verilen net ve anlaşılır adımlar nedeniyle bu cevabı kabul edeceğim. Şerefe!
DerStrom8

2
@ poizan42 Bu bir çekirdek modu sürücüsü değil. Bu, yalnızca sanal bir COM bağlantı noktası açan basit bir USB CDC aygıtıdır. Çekirdek modu kod yürütme gerçekleştirilmez.
DerStrom8

1
Sadece takip etmek istedim. Bu adımlar sadece bir uyarı ile mükemmel çalıştı: inf2cat.exe Windows SDK ile birlikte gelmiyor, Windows Sürücü Kiti'ni (WDK) de yüklemeniz gerekiyor : docs.microsoft.com/en-us/windows-hardware/drivers/ … . Yardımınız için çok teşekkür ederim, şimdi sürücü yazılımımı herhangi bir uyarı yapmadan yükleyebiliyorum - şirketimi beklendiği gibi yayıncı olarak gösteriyor
DerStrom8

2
Yanıt değiştirildi. Açık olanı işaret ettiğiniz için teşekkür ederiz (alet zincirlerini taktığımdan birkaç yıl geçti)
Adam Lawrence
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.