Forum: PC-Programmierung Wie Windows Treiber & Programm Signieren


von Dirk (Gast)


Lesenswert?

Hi.

Ich wollte ein Programm was ich für Windows geschrieben haben Signieren.
Also damit es nicht mehr diese unschönen Windowsmeldungen gibt.
Es geht hier um noch nicht veröffentliche Freeware.

Da ich nicht gerade im Geld schwimme, muss das mehr als billig sein.
Alles was ich bis jetzt gefunden habe kostet gleich >400€ / Jahr.
Allerdings werde ich auch nicht immer schlau aus dem was die da 
verkaufen.
Meistens ist nur von SSL die rede aber das brauche ich doch nicht.


Hat jemand mit dem Signieren von Treiber/Programmen Erfahrung?
Kann jemand mir eine günstige Lösung empfehlen?

Vielen Dank,
Dirk

von Christian R. (supachris)


Lesenswert?

Du brauchst eine Code Signing Signatur. Wir haben eine von 
Verisign/Symantec, es gibt aber auch preiswertere, z.B. von GlobalSign.
Treiber signieren ist allerdings nicht ganz so einfach, denn Kernel Mode 
Treiber müssen von MS signiert werden, damit sie komplett ohne Warnung 
installiert und gestartet werden können. Speziell Treiber, die beim 
Booten geladen werden (müssen), benötigen eine embedded Signatur, 
jedenfalls unter x64.

von Arc N. (arc)


Lesenswert?

https://www.startssl.com/?app=39
wäre eine andere günstige Möglichkeit.
Wie es dann weitergeht bzw. wenn mit selbst erzeugten Zertifikaten 
gearbeitet wird z.B.
http://stackoverflow.com/questions/84847/how-do-i-create-a-self-signed-certificate-for-code-signing-on-windows/16027204

von Dirk (Gast)


Lesenswert?

Verisign/Symantec war der teuerste den ich finden konnte.
Das kann ich mir beim besten willen nicht leisten.

ksoftware ist gerade so noch bezahlbar.

Hat jemand Erfahrung mit denen?

Was bedeutet pro Jahr?
Bedeutet das das Programm nach 2 Jahren wieder die Meldung Ausgibt oder 
kann ich nur nicht mehr eine neue Version erstellen?

von Agnostiker (Gast)


Lesenswert?

Du kannst dann keine neue Version mehr signieren.

Achtung: Treiber signieren geht NUR mit dem Zertifikat von 
Verisign/Symantec!

von Daniel (Gast)


Lesenswert?

Agnostiker schrieb:
> Achtung: Treiber signieren geht NUR mit dem Zertifikat von
> Verisign/Symantec!

kann man die nicht mit einem selbst erzeugten Zertifikat zertifizieren?
Ich dachte die selbst erzeugten erzeugen dann auch quasi das rote 
Fenster das der Author nicht verifiziert werden konnte?

von Arc N. (arc)


Lesenswert?

Agnostiker schrieb:
> Du kannst dann keine neue Version mehr signieren.
>
> Achtung: Treiber signieren geht NUR mit dem Zertifikat von
> Verisign/Symantec!

Es geht auch mit anderen Anbietern

http://msdn.microsoft.com/en-us/library/windows/hardware/dn170454%28v=vs.85%29.aspx

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Arc Net schrieb:
> https://www.startssl.com/?app=39
> wäre eine andere günstige Möglichkeit.

Das ist ein Anbieter für SSL-Zertifikate, die aber lassen sich nicht für 
die Treibersignierung verwenden.

(Beim kostenlosen Zertifikat StartCom-Zertifikat müsste dann auch der 
damit signierte Treiber im Jahresturnus erneuert werden, denn das ist 
die Lebensdauer dieser Zertifikate)

von Dirk (Gast)


Lesenswert?

SSL ist nicht ganz das was ich brauche.

Also wenn ich das jetzt richtig verstanden habe ist die Zeitbegrenzung 
nur auf das erstellen bezogen. Was auch Sinn machen würde. Wäre doch 
echt blöd wenn ich eine alte Version nochmal installieren will und es 
kommen nur Meldungen.

Treiber müssen leider sein. Geht nicht anders, da es zum Programm auch 
Hardware geben soll.


Wenn jemand mit Zertifikaten von ksoftware Erfahrung hat würde es mir 
helfen.
Der Preis von den ist halt gerade so akzeptabel.

von Arc N. (arc)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Arc Net schrieb:
>> https://www.startssl.com/?app=39
>> wäre eine andere günstige Möglichkeit.
>
> Das ist ein Anbieter für SSL-Zertifikate, die aber lassen sich nicht für
> die Treibersignierung verwenden.


Siehe den verlinkten MSDN-Artikel zum Thema: "Cross-Certificates for 
Kernel Mode Code Signing" in dem auch StartCom d.h. StartSSL aufgeführt 
ist.
Gibt auch einige Threads dazu in deren Forum z.B.
https://forum.startcom.org/viewtopic.php?f=15&t=1654
Ebenso bietet StartSSL Timestamping an, damit die Programmsignatur nicht 
mit Ablauf des Zertifikats ungültig wird.
http://www.startssl.com/timestamp

> (Beim kostenlosen Zertifikat StartCom-Zertifikat müsste dann auch der
> damit signierte Treiber im Jahresturnus erneuert werden, denn das ist
> die Lebensdauer dieser Zertifikate)

Auch die teuren Zertifikate von Verisign müssen verlängert werden...

Edit:
ksoftware sollte funktionieren, da sie ein DigiCert-Reseller sind, 
welche wiederum in dem MSDN-Artikel aufgeführt sind.

: Bearbeitet durch User
von Max D. (max_d)


Lesenswert?

Ich würde mir mal überlegen das den Aufwand wert ist sich durch den 
Zertifikatdschungel zu schlagen. Ich gehe mal davon aus, dass deine hw 
über USB Verbunden wird (alles andere lohnt ich nur für sehr exotische 
ideen). Da kann man die Steuerung und kleine Datentransfers gut über HID 
schieben (so scheinen es zumindest die anderen zu machen) und größere 
Datenmassen werden entweder per Massenspeicher Emulation (so machen das 
viele Bootloader gerne) oder per emuliertem Netzwerk verschoben. das mit 
dem Emu netzwerk hat den Vorteil, dass man eine netzwerkfähige "upgrade" 
version der hw anbieten kann auf der hald dann noch ein Lan-Controller 
drauf ist.

von Max D. (max_d)


Lesenswert?

Je nachdem wie groß dein Projekt ist kann man auch einen ganzen Raspi 
oder etwas in der art integrieren der mit dem PC redet (da dann über 
LAN) und an der Gegenseite dein device einbindet (via eines 
signierungsfreien Linux-Systems), so hat z.B. unsere Uni einen 
3D-Drucker gemacht (der ist in Richtung Client einfach nur ein 
passwortgeschützter Fileserver auf den man die zu druckenden files 
draufschiebt)....

von Chris (Gast)


Lesenswert?

Bitte korrigieren wenn nicht Wahr, mir ist es unter Vista passiert.
Eine signierte Applikation konnte nicht installiert werden, weil die 
Signatur
abgelaufen war. Wie ist es, ist das Programm dann  nur 1 Jahr gültig, 
bzw
ev. auch 2/4/5 Jahre und danach lässt es sich nicht mehr Installieren ?

von Max D. (max_d)


Lesenswert?

Mir fällt grade so etwas auf: Wie ist das mit der Integrität beim 
signieren ?
Muss man da seinen code an die Stelle schicken ?
Wenn ich das als Linuxer richtig seh, dann ist die Signierung ja eine 
Art Beglaubigung, dass der Treiber Virusfrei ist. Wie stellen die das 
sicher? Man kann doch sicher irgendwie mit Tricks Dinge in dem Code 
verstecken...

von Reinhard Kern (Gast)


Lesenswert?

Max D. schrieb:
> Muss man da seinen code an die Stelle schicken ?

Bei Kernel Mode an Microsoft. Die testen natürlich nicht nur auf Viren, 
sondern ob der Treiber zuverlässig läuft. Dementsprechend kostet das 
dann auch.

Verisign testet nichts, das Zertifikat bestätigt nur, wer den Mist 
verbrochen hat, damit man jemand hat bei dem man sich beschweren kann.

Gruss Reinhard

von Stefan R. (srand)


Lesenswert?

Max D. schrieb:
> Wenn ich das als Linuxer richtig seh, dann ist die Signierung ja eine
> Art Beglaubigung, dass der Treiber Virusfrei ist.

Das siehst du falsch. Die Signierung beglaubigt, daß der Virus von dir 
stammt.

von Christian R. (supachris)


Lesenswert?

Bei "normalen" Anwendungen ist das eigentlich alles zielich einfach und 
geht mit preiswerten Signaturen zu machen die für Core Signing sind. Bei 
Treibern kommts drauf an. Wenn du z.B. den WinUSB Triber nimmst, musst 
du lediglich die cat Datei signieren, das geht ohne Intervention von MS. 
Dann kommt nur noch "Wollen Sie dem Hersteller vertrauen?" Auch einen 
PCI Treiber für unsere alte Hardware konnte ich so signieren. Aber z.B. 
den CyUSB Treiber von Cypress kann man damit nicht signieren, den muss 
man dann per WHQL machen lassen. Das ist echt viel Aufwand, man braucht 
nämlich mehrere Testrechner bzw. einen Rechner mit MultiBoot für alle zu 
testenden OS, dazu einen Steuerrechner, der mit Windows Server in 
Englisch laufen muss usw. Und wenn man dann endlich lokal alle Tests 
bestanden hat (dauert ewig, auch wegen der vielen Standby-Resume 
Zyklen), dann darf man den Treiber samt pdb Debug Infos und den 
(signierten) Testergebnissen zu MS schicken, bezahlen und nach einer 
Weile kriegt man den WHQL signierten Treiber zurück.
Für USB kann man sich den Quatsch aber sparen, entweder WinUSB (kann man 
mittlerweile sogar ohne Inf machen...OS descriptor) oder LibUSB-win32, 
der ist schon per embedded signatur signiert. Damit geht dann auch 
richtig BULK Transfer bis zu USB 3.0 SuperSpeed ohne Verrenkungen über 
schneclenlangsamen HID oder MSD Simulation.

: Bearbeitet durch User
von Dirk (Gast)


Lesenswert?

So ich werde wohl bei ksoftware mein Geld los.

Muss jetzt nur noch klären ob das Zertifikat dann von November 2013 ab 
gilt oder ob 2013 als Jahr hier den Startzeitpunkt angibt.

Vielteich warte ich auch bis Januar mit dem Kauf. Mich drängt hier zum 
Glück keiner.

von Christian R. (supachris)


Lesenswert?

Die Laufzeit startet zum Zeitpunkt der Zuweisung, wenn alle Formalitäten 
durch sind.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.