Format eines Zertifikates
Prinzipiell kann ein Zertifikat ein beliebiges Format haben. Im Internet werden
in der Regel X.509-Zertifikate verwendet.
Ein X.509-Zertifikat wird beispielsweise an
eine E-Mail-Adresse oder einen DNS-Namen
gebunden. Ein Erweiterungs-Feld des
X.509-Zertifikats enthält den Verwendungszweck (KeyUsage). Damit kann überprüft
werden, ob das Zertifikat überhaupt für einen
entsprechenden Zweck eingesetzt werden
darf. So muss zum Beispiel ein Wurzelzertifikat
die Berechtigung „Certificate Sign“ besitzen.
Zertifikate und der private
Schlüssel
Nicht selten findet man den Satz „Dann
unterschreibt man dies mit seinem Zertifikat“. Genaugenommen ist dies falsch. Man
unterschreibt mit seinem privaten Schlüssel
und legt seinen mit einem Zertifikat beglaubigten öffentlichen Schlüssel bei. Der private
Schlüssel ist kein Bestandteil des Zertifikats.
Allerdings gibt es Dateiformate, bei denen ein
Zertifikat und der zugehörige private Schlüssel
in einer Datei transportiert werden.
CodeMeter bietet die Möglichkeit, einen
privaten Schlüssel sicher in einem CmContainer
zu speichern. Der private Schlüssel bleibt
im CmContainer. Der zu unterschreibende
Fingerabdruck wird per CodeMeter-API an
den CmContainer geschickt und dort signiert.
Im Falle eines CmDongles erfolgt dies im
SmartCard-Chip des Dongles. Im Falle einer
softwarebasierten CmActLicense erfolgt dies
in der CodeMeter Runtime, die als Dienst oder
Dämon läuft und gegen Auslesen von Daten
und Debuggen entsprechend geschützt ist.
Das Zertifikat kann entweder im CmContainer
selber, in einem auslesbaren Teil oder als Datei
auf dem PC gespeichert werden.
Beispielzertifikat
Zum Schutz von Software gegen Manipulationen verwendet Wibu-Systems ein eigenes
proprietäres und kompaktes Format für Zertifikate. Der Grund dafür ist, dass X.509 sowohl
viele Ressourcen benötigt als auch langsam ist.
Zwei Dinge, die gerade auf kleinen Embedded
Devices nicht vorhanden sind. Auch werden
zusätzliche Informationen benötigt, die in
X.509 nicht definiert sind. Im Grundprinzip
sind der Aufbau und die Sicherheit des WibuSystems-eigenen Formates vergleichbar mit
einem X.509-Zertifikat.
CodeMeter kann auch Standard-X.509-Zertifikate speichern und ist somit kompatibel
mit allen standardkonformen Anwendungen.
Es wird lediglich eine PKI Middleware (CSSI)
benötigt, die CodeMeter mit den Standardschnittstellen (PKCS#11 / Microsoft CSP)
verbindet.
Zertifikate sind nicht an bestimmte
Verschlüsselungsalgorithmen gebunden. Als
Fingerabdruck können beispielsweise MD5,
SHA1 oder SHA256 verwendet werden, als
Signaturalgorithmus RSA oder ECDSA.
Was passiert, wenn ich ein
Zertifikat verliere?
Wenn man ein Zertifikat verliert, dann passiert
gar nichts, da in einem Zertifikat keine
geheimen Informationen stehen. Aber es kann
fatale Folgen haben, wenn man den privaten
Schlüssel zu einem Zertifikat verliert oder
wenn jemand diesen Schlüssel unberechtigt in
die Hände bekommt. Dann kann diese Person
in meinem Namen Dinge unterschreiben und
das entsprechende Zertifikat verwenden, um
meinen öffentlichen Schlüssel zu beglaubigen.
Dies ist einer der Gründe, warum Stuxnet
sein Ziel erreicht hat. Softwareanbieter unterschreiben ihre Software, vor allem Treiber, mit
ihrem privaten Schlüssel. Durch ein Zertifikat
wird von einer vertrauenswürdigen ZertiCertificate
Signing
Request
fizierungsstelle der öffentliche Schlüssel
bestätigt. Virenscanner arbeiten anhand
eines Punktesystems. Software, die von einem
bekannten Hersteller unterschrieben wurde,
erhält Bonuspunkte. Bei Stuxnet wurden die
privaten Schlüssel von zwei namhaften Anbietern von Treibern gestohlen und der Virus
damit unterschrieben. Dies hat dazu geführt,
dass der Virus von den Antivirenprogrammen
nicht erkannt wurde und sich somit stillschweigend und weit verbreiten konnte.
Für einen solchen Fall gibt es Zertifikatssperrlisten
(Certificate Revocation List – CRL). Eine Sperrliste enthält die Serien