Code Signing for Windows- and Mac-Software Based on Hardware-Protected Keys

Jan 08, 2019

Software companies can easily meet the current requirements regarding code signing for Windows or Mac software.

This article is currently only available in German.

Anyone selling software protects their products, internal designs and customers with digital certificates – as well as the value of their own brand. Indirectly, this also boost sales: Customers tend to download and install software more frequently, when a trusted manufacturer certificate is displayed. Current operating systems (Windows and Mac) also explicitly warn against the installation of software without or with insufficiently verified certificates. End users and professional developers appreciate trusted certificates that promise the authenticity of applications.


Key points:

  • Code signing is the most important way for software companies to certify the authenticity of their applications.
  • Since 2017, stricter requirements for the internal private key protection apply – they must be stored on cryptographic Hardware Security Modules (or HSMs).
  • Ergonomics puts these standards into practice for your software business based on nCipher solutions.
  • Code signing certificates are offered by virtually all public certificate authorities, such as SwissSign, Thawte, Entrust Datacard or Digicert.

High Security Modules schützen private Schlüssel auf Hardware-Ebene

Die Anforderungen an die Vertrauenswürdigkeit von Code steigen. Insbesondere sollen längst nicht mehr nur vollständige Downloads signiert werden, sondern beispielsweise auch einzelne Scripts, Plug-Ins, Libraries/Bibliotheken und andere Komponenten oder Werkzeuge. Während Nutzer gerade im professionellen Kontext Aktualisierungen, Erweiterungen oder Ergänzungen dieser Art erwarten und für ihre Arbeit benötigen, sind sie gleichzeitig umso mehr darauf angewiesen, sich auf die Sicherheit der Software zu verlassen./p>

Daher liegt es im Interesse jedes Unternehmens, seinen Code zu signieren – und die Signaturen zu schützen. Das können Unternehmen nur, indem sie ihren privaten Schlüssel sicher speichern und sich und ihre Kunden davor schützen, dass er von Angreifern missbraucht wird.

Code Signing Zertifikate werden von praktisch allen öffentlichen Certificate Authorities, wie zum Beispiel SwissSign, Thawte, Entrust Datacard oder Digicert angeboten.

Hohe Anforderungen an den Schutz privater Schlüssel für Code Signing

Wegen seiner grossen Bedeutung ist Code Signing häufiger Angriffspunkt für Attacken. Der private Schlüssel von legitimen Unternehmen, die ihre Software damit signieren, wird gestohlen und zur Verbreitung von bösartiger Software missbraucht.

Seit 2017 gelten daher durch das Certification Authority Security Council höhere Anforderungen an Unternehmen, die ihre Software signieren wollen. Statt Schlüssel wie früher nur lokal zu speichern, müssen sie nun auf geschützter Hardware verwahrt werden.

Genauer gilt: Alle privaten Schlüssel müssen auf FIPS 140-2 Level 2 HSMs (High Security Modules), einer gleichwertigen Hardware vor Ort oder in einem sicheren cloudbasierten Signaturdienst gespeichert werden. Zu diesen Anforderungen kommen Best-Practice-Empfehlungen, die sich in diversen Unternehmen als praktikabel erwiesen haben.

Spezifisch für diesen Zweck gebaute, sichere Hardwarekomponenten sind allgemein als kryptografische Hardware Security Modules oder HSMs bekannt. Diese Hardwaremodule können in Unternehmen ganz spezifisch auf die Anforderungen von Produktion und Verkauf der vertriebenen Softwarekomponenten ausgerichtet werden.

Sicherheit von Ergonomics durch nCipher HSM

Ergonomics entwickelt mit Ihnen die Managementprozesse und Kontrollfunktionen, die Sie benötigen, um in Ihrem Unternehmen kryptografische Hardwarelösungen einzusetzen und reibungslos zu verwenden. Wir setzen dabei auf nCipher HSMs.

Die nCipher stellt FIPS-zertifizierte HSMs her, die sich für den Schutz von privaten Keys in unterschiedlichen Anwendungsszenarien eignen: Vom einzelnen Arbeitsplatz bis zu High-Performance-Netzwerk-Entwicklungsumgebungen.

Entsprechend Ihrer Arbeitsweise setzen wir für Sie Lösungen um, die sich in Ihre tägliche Arbeit integrieren lassen und sicher sind.

Code-Signing-Sicherheit auf Hardwareebene für Unternehmen jeder Grösse

Praktikabilität ist unser wesentlicher Anspruch an die Sicherheitsmodule, zu denen wir Ihnen raten und bei deren Integration wir Sie unterstützen. Die richtige Lösung für ein mittelgrosses Team könnte die Arbeit eines unabhängig tätigen Entwicklers unnötig verkomplizieren, während sie für grosse Unternehmen keine ausreichenden Ressourcen bereitstellt.

Für einzelne Entwickler konfigurieren wir daher USB-basierte Hardwaremodule, die bei der gelegentlichen Zertifizierung von Software oder Software-Komponenten eingesetzt werden können. Darin enthalten ist der volle kryptografische Schutz der Schlüssel, ohne viel Raum oder Zeit in einem kleinen Unternehmen einzunehmen.

Arbeitsgruppen in Unternehmen mittlerer Grösse sind von der Arbeit an mehreren Entwicklungsstationen abhängig und benötigen deswegen netzwerkbasierte Zugriffsmöglichkeiten auf die Zertifizierungsfunktionen. Praktische Vorteile kurzer Wege sollen gleichzeitig aber nicht durch unnötige Komplikationen verloren gehen. Also wird keine zusätzliche „Kontrollebene“ eingefügt.

In grossen Unternehmen besteht eine zusätzliche Verwaltungsebene dagegen typischerweise und ist zur Funktion des gesamten Betriebs unabdingbar. Daher bieten wir hier Lösungen, die eine zentralisierte Verwaltung ermöglichen und auch Rechtevergabe und den Zugriff von ganz unterschiedlichen Arbeitsplätzen aus erlauben.

Welches Unternehmen möchte seine Software nicht vertrauenswürdig machen?

Neben formalen Anforderungen motiviert das natürliche Interesse zum Selbstschutz Unternehmen zu besseren Massnahmen gegen Angreifer.

Ein Unternehmen, das den Zugangs-Code 1234 verwendet, handelt schlicht fahrlässig. Bricht jemand ein und stiehlt Qualitätssiegel oder Produkte, liegt das natürlich in der Verantwortung des Verbrechers – das Ansehen des Unternehmens wird allerdings trotzdem Schaden nehmen. Denn: Es hätte sich schützen können.

Private Schlüssel zur Signierung von Software sind ebenso, wenn nicht sogar sensibler als Schlüssel in der „realen Welt“. Hier ist jedem mittlerweile bewusst, dass der Haustürschlüssel unter der Fussmatte ebenso wenig versteckt ist, wie der Autoschlüssel in der Sonnenblende. Genauso bewusst sollte Unternehmen heute sein, dass sie private Schlüssel zum Schutz von Software nicht ungeschützt oder rein softwarebasiert speichern dürfen.