Webstart und Certificate Chains

05.07.2015

Ich habe nach den ersten theoretischen Vorüberlegungen begonnen, eine ernstgemeinte CA aufzusetzen. Bei den diversen Tests, die ich durchführte, um die korrekte Funktionsweise zu testen, stieß ich auf eine Schwierigkeit, die ich bisher noch nicht umschiffen konnte.

Die PKI

Als PKI setzte ich eine Root-CA auf, die vier untergeordnete CAs aufwies: eine zum Ausstellen von TLS (Server-) Zertifikaten, eine zum Ausstellen von EMail-Zertifikaten und eine zum Ausstellen von Code-Signing-Zertifikaten. Dazu kam noch eine intermediary CA, die ihrerseits weitere CAs erstellen konnte.

Damit war dann zunächst jedes Szenario abgedeckt, das ich mir im Vorhinein überlegt hatte: ich konnte TLS- EMail- und Code-Signing-Zertifikate ausstellen und auf einfache Art und Weise neue CAs aufsetzen, mit denen ich weitere Tests durchführen konnte.

Die Tests

Ich erstellte verschiedene EMail-Zertifikate, sicherte einen Server per TLS ab und stellte ein Code-Signing-Zertifikat aus. Mit diesem signierte ich sowohl die Plugins für dWb+ und sQLshell, als auch die Webstart-Versionen diverser Anwendungen.

Das Problem

Alle Tests funktionierten wie erwartet - bis auf die Webstart-Anwendungen: Beim Versuch, diese zu starten, erhielt ich die Meldung:
Running this application may be a security risk
Die mögliche Ursache stand gleich direkt darunter:
Unable to ensure the certificate used to identify this application has not been revoked
Als ich die Java-Einstellungen so änderte, dass für den Revocationtest nur das unmittelbare CA-Zertifikat und nicht die gesamte Kette benutzt wird, konnte die Anwendung plötzlich problemlos starten - das heißt, das der Revocationstatus von Zertifikaten, die durch die Code-Signing-CA ausgestellt wurden, sehr wohl von Webstart geprüft werden konnte. Lediglich der Revocationstatus von Zertifikaten, die von der Root-CA ausgestelllt wurden, konnte durch Webstart nicht bestimmt werden.

Auch nach Aktivieren aller Log. und Trace-ausgaben konnte ich keine Ursache dafür feststellen: Lediglich eine lapidare Meldung taucht dann dort auf:

security: Revocation Status Unknown
Vielen Dank, liebe Entwickler von Webstart!

Als eine mögliche Idee, den Grund dafür einzukreisen, fiel mir das Schreiben einer eigenen Java-Anwendung ein: Diese sollte anhand der Angaben über CRL-Quelle und Ort des Zertifikates des Ausstellers ausgehend von einem Endnutzer-Zertifikat die gesamte Kette bis zur Root-CA emporhangeln und die Gültigkeit jedes Zertifikats entlang des Wegs anhand der CRL-Informationen im jeweiligen CA-Zertifikat testen. Ergebnis: Es funktioniert!

Damit ist für mich klar, dass der Fehler irgendwo in Webstart liegt: entweder in der Implementierung oder der fehlerhaften oder lückenhaften Dokumentation, wenn es um Code signing für Webstart-Anwendungen geht.

Artikel, die hierher verlinken

TSA mit openssl im Eigenbau

06.03.2016

Ich habe nach den ersten theoretischen Vorüberlegungen begonnen, eine ernstgemeinte CA aufzusetzen. Beim Konfigurieren dieser Infrastruktur zum Anbieten der Dienstleistungen einer Timestamp Authority (TSA) stieß ich auf Schwierigkeiten, für deren Lösung ich erst in meinen Weihnachtsferien einen geeigneten Ansatzpunkt fand.

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Precision Time Protocol

    15.10.2021

    Durch meinen Neffen wurde ich neulich auf ein Video im Internet aufmerksam gemacht, aus dem ich von der Existenz des Protokolls PTP oder Precision Time Protocol erfuhr. Hier einige Gedanken dazu

    Weiterlesen

Neueste Artikel

  • Präsentation zum Thema: Certificate and Signature Use Cases

    Eine Präsentation, die einige der Gesichtspunkte beleuchtet, die man beachten sollte, wenn man sich für elektronische Signaturen und Zertifikate in der eigenen Anwendung entscheidet. Weiterhin werden Möglichkeiten zur Benutzung aufgezeigt, die etwas weiter vom Mainstream entfernt sind.

    Weiterlesen
  • LinkCollections 2026 XI

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2026 folgt hier gleich die nächste:

    Weiterlesen
  • HexInspector Komponente in Java

    Als ich diese Lösung zur Darstellunbg und Analyse von beliebigen strukturierten Daten fand (das Beispiel erledigt das für ASN.1 kodierte Informationen), fasste ich den Entschluss, dass ich eine entsprechende Komponente in Java realisieren wollte.

    Weiterlesen

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.