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

  • 8TB Raid5 mit Raspberry Pi

    25.04.2020

    Ich habe mir neulich überlegt, ob man einen Pi als Raid benutzen könnte - aber nicht mit dem ewig gleichen Setup mit 4 USB-Sticks...

    Weiterlesen...

Neueste Artikel

  • Watch David Byrne Lead a Massive Choir in Singing David Bowie’s “Heroes”

    Durch die Seite Open Culture bin ich auf diesen spektakulären Auftritt aufmerksam geworden:

    Weiterlesen
  • Zufälliges Füllen der Ebene

    Ich fand neulich einen sehr interessanten Artikel Zum Thema der algorithmischen Erzeugung von dekorativen (obwohl - das liegt im Auge des Betrachters) Bildern.

    Weiterlesen
  • Sicherheit beim Fernzugang per SSH

    Ich habe vor einiger Zeit bereits zwei Vorträge gestaltet und dafür meine Ideen zur unkomplizierten Erstellung von Präsentationen genutzt - nun ist ein weiterer hinzugekommen.

    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.