Für die Code-Signatur von Windows-Binärdateien ist ein HSM-Zertifikat erforderlich, oder gibt es andere (in dieser Situation) bessere Alternativen.
Ein Hardware Security Module (HSM) ist nur ein Hardwaretool für kryptografische Operationen wie Schlüsselverwaltung, Schlüsselaustausch, Verschlüsselung, Verifizierung und sichere Aufbewahrung. Es gibt kein HSM-Zertifikat, aber es gibt Zertifikate, die von einem HSM generiert werden.
Ich habe selbst kein HSM verwendet, aber ich würde mich bei Schlüsseln, die von einer solchen Hardware generiert werden, nicht sorgen. Sie können für den internen Gebrauch geeignet sein, für den externen Gebrauch müssen Sie jedoch Zertifikate verwenden, die von einer bekannten Zertifizierungsstelle (Certificate Authority, CA) erstellt wurden.
Let's Encrypt ist eine kostenlose Zertifizierungsstelle, die häufig verwendet wird. In meiner Organisation haben wir es vorgezogen, für den Vertrieb unserer Software eine bekannte Zertifizierungsstelle zu bezahlen.
Welche Möglichkeiten gibt es, ein Zertifikat an Entwickler zu verteilen? Die Verwendung von AD wäre schön, da sie bereits weltweit vorhanden ist.
Sie können AD verwenden, dies kann jedoch für einige Programmierer ein Overkill sein. Ich würde es nur für das Entwicklungszertifikat verwenden, während das Veröffentlichungszertifikat sehr sicher bleibt, möglicherweise selbst in einem verschlüsselten Container und unter der vollen und nicht gemeinsam genutzten Kontrolle nur einer vertrauenswürdigen Person (und möglicherweise einer Sicherungsperson).
Weitere Informationen finden Sie unter:
- Verteilen von Zertifikaten an Clientcomputer mithilfe von Gruppenrichtlinien
- Wie stellen Sie signierte Zertifikate mithilfe von Gruppenrichtlinienobjekten auf Clientcomputern bereit?
Wäre es in einem verteilten Setup möglich, das Signaturzertifikat geheim zu halten?
Nein, in dem Moment, in dem ein Geheimnis geteilt wird, ist es kein Geheimnis mehr. Bewahren Sie das Verteilungszertifikat wie oben beschrieben auf.
Wenn es jemals ausläuft, wird Ihr Zertifikat von allen Browsern und Anti-Virus-Produkten in einer schwarzen Liste aufgeführt, so dass Ihre gesamte verteilte Software unbrauchbar wird. Halten Sie es sicher, als ob Ihr Leben davon abhängt (zumindest Ihr kommerzielles Leben).
Wäre die doppelte Signatur eine Option zur Erhöhung der Sicherheit? (Eine Signatur, um das Antivirus während des Tests zu schlagen, eine andere für die tatsächliche Sicherheit der freigegebenen Software.)
Sicher, und ich würde es als Ihre einzige Möglichkeit ansehen. Das Entwicklungszertifikat kann auslaufen, aber es ist Ihnen egal, da die Personen, die es auslaufen würden, auch diejenigen sind, die in der Lage sind, die unsignierten Module auszuliefern.
Haben Sie eine bessere Lösung für uns?
Scheint so, als hättest du tief über das Thema nachgedacht. In Ihrer Situation hätte ich mich auch für eine solche Doppelzertifikatlösung entschieden.