Sign-with-Hidy
- Zeitraum
- 07/2025 - 09/2025
- Rolle
- Bachelorand
- Umsetzung
- Eigenständig
- Kontext
- Bachelorarbeit
- Sprachen
- TypeScript
- Tech-Stack
- React, Material-UI, Node.js, Express, WebSockets, node-forge, pdf-lib/SignPDF, Zod
Steckbrief
Software zur digitalen Signatur mittels einer EUDI-Wallet
Im Rahmen meiner Bachelorarbeit habe ich eine Software zur digitalen Signatur beliebiger Dateitypen mittels einer EUDI-Wallet erstellt. Die Nutzenden dieser Software haben die Möglichkeit, sich mittels eines Verifiable Credentials (VC) ein X.509-Zertifikat ausstellen zu lassen, um Dateien zu signieren.
Architektur
Die Software besteht aus einem Frontend und einem Backend.
- Frontend: Benutzerschnittstelle, auf der die Signatur der Dateien und die Prüfung von Signaturen erfolgen
- Backend: Kommuniziert mit dem Frontend, prüft Verifiable Credentials und übermittelt signierte Zertifikate
Frontend
Die Benutzer interagieren mit der Software über das Frontend. Hier werden Dateien ausgewählt, Prüfsummen gebildet und Signaturen getätigt. Dabei gibt es zwei Arten von Signaturen. Zum einen können speziell PDF-Dateien mit einer eingebetteten Signatur versehen werden, welche im PDF-Standard definiert ist. Zum anderen wurde für dieses Projekt ein neuer Signaturstandard entwickelt, der die Signatur beliebiger Dateitypen zulässt. Dabei ist es auch möglich, dass die Datei von mehreren Identitäten unterzeichnet wird. Signaturen werden so zu einem Block zusammengefasst.
Im Frontend können auch Signaturen geprüft werden. Dabei wird verifiziert, ob das Zertifikat, auf dessen Schlüssel die Signatur basiert, selbst von der Certificate Authority des Backends signiert wurde. Das Frontend verwaltet ebenfalls die Kommunikation mit dem Backend, um ein signiertes Zertifikat zu erhalten.
Backend
Das Backend besteht hauptsächlich aus der Certificate Authority. Diese enthält den Schlüssel zum Signieren von Nutzerzertifikaten. Nutzer können über das Frontend mittels WebSockets mit dem Backend kommunizieren. Im ersten Schritt werden sie aufgefordert, eine bestimmte Art von Verifiable Credential zu präsentieren. In der aktuellen Version ist dies die digitale Version des Studierendenausweises der Hochschule Mittweida. Ist dies geschehen, wird ein X.509-Zertifikat mit den entsprechenden Daten von der Certificate Authority signiert und an das Frontend gesendet.