Diesen Monat ist D-Links in den News – da private Schlüssel für Code Signing aus Versehen öffentlich publiziert wurden. Es zeigt, wie wichtig es ist, dafür zu sorgen, dass Sicherheitsmaßnahmen für den Schutz von privaten Schlüsseln getroffen werden.
D-Link, ein taiwanesisches Networking-Unternehmen, das als Hersteller von Wireless-Routern, Netzwerk-Switches, und Sicherheitskameras bekannt ist, veröffentlichte versehentlich einen seiner privaten Schlüssel für Code Signing in einem Firmware-Download. Dies wurde von einem Benutzer von Tweakers, einer niederländischen Nachrichtenagentur, entdeckt.
Fox IT, ein Sicherheitsunternehmen, sagte Threatpost “Der Fehler ist vermutlich jemandem unterlaufen, der den Quellcode für die Veröffentlichung verpackt hat. Das Code Signing Zertifikat war nur in einem der ausgelagerten Code-Pakete in einer spezifischen Version vorhanden". Die Version über und unter dem spezifischen Paket enthielt nicht den Ordner, in dem sich die Code-Signing-Zertifikate befanden. Soweit ich das erkennen konnte, war es ein einfacher Fehler beim Ausschließen von Ordnern."
Sicherheitsrisiko von ungeschützten Schlüsseln
Es ist nicht das erste Mal, dass jemand versehentlich seine privaten Schlüssel durchsickern ließ oder seine Schlüssel schlecht geschützt hatte, die dann gestohlen wurden. Wenn der private Schlüssel eines Code Signing-Zertifikats nicht richtig geschützt ist, kann ein Angreifer diesen nutzen, um damit eine Anwendung zu signieren, die bösartigen Code und Viren enthält. Diese sieht so aus, als käme sie von einer vertrauenswürdigen Quelle, da sie mit einem legitimen (aber gestohlenen) Zertifikat signiert ist.
Viele Softwareentwickler schützen die Umgebungen nicht ausreichend, in denen sie ihre Code Signing-Zertifikate und privaten Schlüssel speichern. Diese befinden sich im einfachsten Fall lokal auf einem Computer des Entwicklers und diese haben keine angemessenen Sicherheitsvorkehrungen getroffen, um die Schlüssel auf dem lokalen Computer zu schützen.
Maßnahmen zum Schutz Ihrer privaten Schlüssel
Die sicherste Methode, um private Schlüssel sicher zu halten, besteht darin, diese auf einem sicher aufbewahrten kryptografischen Hardwaregerät zu sichern, wie z.B.
- USB-Token
- Smartcard
- Hardware Security Modul (HSM)
Diese Gerätearten sind weniger anfällig für Kompromittierung und beinhalten Multi-Faktor-Authentifizierung, die eine zusätzliche Authentifizierung erfordert (z.B. einen PIN-Code), wenn das Gerät verloren geht oder gestohlen wurde.
Verlegen von Zertifikaten auf ein sicheres Hardwaregerät
Die meisten Zertifizierungsstellen, wie GlobalSign, bieten die Möglichkeit, standardmäßige Code Signing-Zertifikate auf verschiedenen Hardwaretypen zu installieren. Darüber hinaus können Softwareentwickler Extended Validation (EV) Code Signing-Zertifikate kaufen, die standardmäßig direkt von der CA auf sicheren kryptografischen USB-Token ausgestellt werden, und damit mehr Sicherheit bieten.
Wenn ein Code Signing-Zertifikat auf einem kryptografischen Token gespeichert ist, erschwert es böswilligen Dritten den privaten Signaturschlüssel zu kopieren oder zu stehlen. Es wird schwerer, Schadsoftware unter der Identität des eigentlichen Zertifikatinhabers zu verteilen.
Sicherheitsvorteile von EV Code Signing-Zertifikaten
- Zertifikat ist auf einem kryptografischem USB-Token gespeichert (FIPS 140-2 Level 2 konform)
- Token erfordert Multi-Faktor-Authentifizierung per Passwort. Darüber hinaus können Sie die Anzahl fehlgeschlagener Anmeldeversuche festlegen, bevor das Token automatisch gesperrt und der Inhalt gelöscht wird
- Schlüssel wird auf dem Token generiert und kann nicht exportiert werden
EV Code Signing-Zertifikate sind eine tolle Option für alle Softwareentwickler, die die Sicherheit ihres Codes verbessern wollen und die eventuell kein dediziertes Hardware Security Module (HSM) nutzen möchten. EV Code Signing-Zertifikaten haben viele weitere Vorteile, z.B. sofortige Zuverlässigkeit im Microsoft Smartscreen und erweiterte Validierungsanforderungen.