GlobalSign Blog

16 Jan 2017

Neue Anforderungen für Code-Signing-Zertifikate treten in Kraft

Was heißt das für Entwickler?

Im vergangenen Monat hat das Certification Authority Security Council (CASC) seine neuen Minimum Requirements für öffentlich vertrauenswürdige Code- Signing-Zertifikate offiziell bekannt gegeben. Zum ersten Mal sind Zertifizierungsstellen (CAs) damit an eine Reihe von standardisierten Ausstellungs- und Managementrichtlinien gebunden, die speziell für das Code Signing entwickelt wurden. Die kompletten Anforderungen hier zum Nachlesen: Minimum Requirements for the Issuance and Management of Publicly-Trusted Code Signing Certificates. Die Requirements gehen ausführlich auf CA-Richtlinien ein und behandeln Themen wie Zertifikatinhalte, Widerruf- und Statusprüfungen, Verifizierungspraktiken und vieles mehr. Zertifizierungsstellen haben hinter den Kulissen schon recht eifrig daran gearbeitet das Anforderungsprofil umzusetzen.

Was aber heißt das für die Benutzer? Wir wollen einen Blick darauf werfen, welche Anforderungen die User betreffen, die überhaupt Zertifikate zum Signieren von Code benutzen.

Private Schlüssel müssen auf kryptografischer Hardware gespeichert werden

Gemäß CASC ist eine der Hauptursachen für Code Signing-Attacken ein kompromittierter Schlüssel. Das heißt, ein potenzieller Angreifer kann auf den privaten Schlüssel eines legitimen, "guten" Herausgebers zugreifen und verwendet den Schlüssel, um eine schädliche Datei zu signieren. Dadurch wirkt diese Datei vertrauenswürdig und die Chancen steigen, dass sie tatsächlich heruntergeladen wird. Die übliche Methode vor den Requirements war es, den Schlüssel lokal zu speichern. Speichert man ihn aber stattdessen auf einer sicheren kryptografischen Hardware, wie beispielsweise einem USB-Token oder einem Hardware Security Module (HSM), ist es sehr viel unwahrscheinlicher, dass der Schlüssel kompromittiert wird.

Zertifizierungsstellen wie GlobalSign empfehlen schon seit längerem einen stärkeren Schutz des privaten Schlüssels - im Übrigen eine Voraussetzung für das Ausstellen von Extended Validation (EV) Code-Signing-Zertifikaten, seit sie 2014 eingeführt wurden. Unter den neuen Richtlinien wird diese Forderung aber für ALLE Code-Signing-Zertifikate verbindlich. Insbesondere müssen alle privaten Schlüssel auf FIPS 140-2 Level 2 HSM, einer gleichwertigen On-Premise-Hardware oder in einem sicheren cloudbasierten Signaturdienst gespeichert werden.

Alle neuen GlobalSign Code-Signing-Bestellungen nach dem 30. Januar 2017 enthalten ein USB-Token zum Speichern des Zertifikats und zum Schutz des privaten Schlüssels.

Standardisierte und strikte Identitätsverifizierung

Der andere Hauptgrund für Code-Signing-Attacken, so der CASC, ist, dass Zertifikate an potenzielle Angreifer ausgegeben werden. Die nutzen das Zertifikat dann zum Signieren von Viren oder Malware. Um das zu verhindern, umreißen die neuen Requirements spezielle Vorkehrungen, die Zertifizierungsstellen vor der Ausstellung treffen müssen. Dazu gehören:

  • eine strikte Identitätsverifizierung des Herausgebers, wie beispielsweise die rechtliche Identität, Adresse, Gründungsdaten und weitere mehr
  • ein Abgleich mit Listen von verdächtigen oder bereits bekannten Malware-Herausgebern, -Produzenten und -Vertreibern
  • die Pflege und der Abgleich einer internen Liste von Zertifikaten, die widerrufen wurden, weil sie zum Signieren von verdächtigen Code- und Zertifikatanforderungen verwendet wurden, und die zuvor von der CA zurückgewiesen wurden

Viele CAs nutzen bereits die meisten dieser Prozesse. Aber eine Standardisierung erschwert es einem böswilligen Herausgeber, sich nach einer CA mit schwächeren Prüfverfahren umzusehen, wenn er von einer anderen bereits abgelehnt wurde.

Melden von und Reagieren auf Zertifikatmissbrauch oder verdächtigen Code

Zu verhindern, dass solche Zertifikate überhaupt ausgestellt werden ist die eine Seite. Die Requirements legen aber zusätzlich fest, dass CAs ein "Certificate Problem Reporting" -System betreiben Hier können Dritte (z. B. Anti-Malware-Anbieter, vertrauenswürdige Parteien, Softwareanbieter)  Zitat: eine "vermutete Kompromittierung eines privaten Schlüssels, Zertifikatmissbrauch, Zertifikate, die zum Signieren von verdächtigem Code verwendet wurden, Takeover-Attacken oder andere Arten von möglichen Betrug, Kompromittierung, Missbrauch, unangemessenem Verhalten oder anderen Dingen im Zusammenhang mit Zertifikaten" melden.

Das hat auch für die CAs Folgen, denn sue müssen sich an sehr strenge Standards hinsichtlich der Reaktion auf solcherart gemeldete Probleme halten. Beispielsweise müssen sie innerhalb von 24 Stunden mit der Untersuchung beginnen und alle Vorfälle rund um die Uhr melden. Es gibt zudem strenge Richtlinien und einen Zeitrahmen hinsichtlich des Widerrufs, für den Fall, dass Malware oder eine andere Art von Missbrauch vermutet wird.

Hier können Sie GlobalSign ein Problem melden

Die neuen Meldesysteme sorgen dafür, dass selbst dann, wenn ein böswilliger Herausgeber den Verifizierungsprozess übersteht33, sein Zertifikat umgehend gemeldet, untersucht und widerrufen werden kann.

Alle CAs müssen Zeitstempel haben

Eine weitere Anforderung, die besonders für Entwickler von Interesse sein kann, ist, dass alle CAs jetzt eine RFC-3161-kompatible Timestamp Authority (TSA) betreiben müssen. Und sie muss für alle Code-Signing-Kunden verfügbar sein. So kann man jeder Signatur einen vertrauenswürdigen Zeitstempel zugordnen.

(Hinweis: GlobalSign hat seinen Code-Signing-Kunden immer schon Zeitstempel zur Verfügung gestellt)

Der Hauptvorteil eines Zeitstempels liegt darin, dass die Signatur nicht abläuft, wenn das Zertifikat abläuft. Das würde normalerweise ohne den Zeitstempel passieren. Stattdessen können Signaturen für die Lebensdauer des Zeitstempelzertifikats gültig bleiben, laut den Requirements bis zu 135 Monaten. Es gibt aber noch ein Szenario, das von einer Zeitstempelung profitiert: Wenn ein Schlüssel kompromittiert wurde und das Zertifikat widerrufen wird. Wenn ein Schlüssel beispielsweise dazu verwendet wurde, legitimen Code zu signieren, dann aber kompromittiert und zum Signieren von bösartigem Code verwendet wurde, kann man das Widerrufsdatum zwischen die beiden Ereignisse legen. Auf diese Weise ist der legitime Code weiterhin vertrauenswürdig, der schädliche Code aber nicht.

Eine sicherere Zukunft für Code Signing

Die neuen Standards und Requirements tragen ganz entscheidend dazu bei Code- Signing-Angriffe zu reduzieren. Microsoft ist der erste Anbieter von Anwendungssoftware, der die Richtlinien übernimmt und am 1. Februar 2017 damit beginnt sie umzusetzen.

Alle GlobalSign Code-Signing-Zertifikate erfüllen die neuen Anforderungen noch vor diesem Datum.

Wenn Sie Fragen zu den Änderungen haben, zögern Sie nicht, uns zu kontaktieren. Wir empfehlen zusätzlich ein CASC-Whitepaper mit weiteren Details zu Code-Signing-Standards und Best Practices: Code Signing White Paper: What It Is, Best Practices, and Why It’s Important.

von Lea Toms

Artikel teilen