Architektur
Die Architektur der Open-Source-Software-Bibliothek für die Online-Ausweisfunktion des neuen Personalausweises ist an den technischen Richtlinien des BSI ausgerichtet. Die folgende Abbildung zeigt einen groben Überblick über die Architektur mit den darin verankerten Modulen. Jedes Modul ist in sich geschlossen und kommuniziert über wohldefinierte und dokumentierte APIs mit den anderen Modulen. Dadurch ist es möglich, Module einzeln weiterzuentwickeln oder gar zu ersetzen, ohne dass Anpassungen an anderen Modulen nötig wären. Die Architektur besteht aus vier wesentlichen Blöcken:
- Basisbibliothek
- GUI-Layer bzw. Benutzerschnittstelle
- Crypto-Layer
- Misc
Die Basisbibliothek enthält alle Module zur Bereitstellung der eID-Funktionalität. Sie benötigt Kommunikationsmodule für den Datenaustausch mit dem eID-Server (TLS) und mit der Smartcard (z.B. PC/SC). Ein weiterer wichtiger Bestandteil der Basisbibliothek ist der lokale API-Server. Dadurch wird die eID-Funktionalität auf der Zielplattform anderen Programmen zur Verfügung gestellt. Dies sind u.a. Web-Browser und Anwendungen unter Verwendung von Webprotokollen, ohne das für diese eine separate Erweiterung benötigt wird. Der Block zur Benutzungsschnittstelle (Graphical User Interface – GUI) beinhaltet alle Module, die zur Interaktion zwischen Endnutzer und Basisbibliothek genutzt werden. Dies umfasst u.a. die Benutzerführung, Anleitungen, Eingabehilfen und die/das PIN-Abfrage/Management. Der Crypto-Layer stellt den Basisbibliotheken die nötigen kryptographischen Algorithmen zur Verfügung, z.B. zur Verschlüsselung und digitalen Signatur.
Erläuterung des Grundaufbaus
Die Grundarchitektur der Basisversion besteht aus dem Core- und GUI-Bereich, wobei die GUI vollständig vom Core getrennt ist. Damit kann eine GUI eigenständig und unabhängig vom Core entwickelt werden. Core und GUI kommunizieren über eine entsprechende Schnittstelle.
Die im Rahmen des Projektes ausgelieferte lauffähige Codebasis umfasst:
Network Layer
- Webservice Dispatcher
- PAOS Client
- TLS1.1+
- Local API Server
ISO 24727 Services
- Management
- SAL (Service Abstraction Layer)
- IFD (Interface Device)
- Protocol Service
Card Service
- eCard Handler/ PACE
- Transport Provider
- PC/SC
Crypto-Algs
GUI
Misc (Sonstiges)
Qualitätssicherung im Projekt PersoApp
Eine Umsetzung funktionaler und nicht-funktionaler Anforderungen an die Open-Source-Software-Bibliothek wie auch ihre Integration in eID-Clients bzw. Anwendungen wird durch die Umsetzung der folgenden drei Maßnahmen unterstützt:
- Aufstellung und Systematisierung von Qualitätskriterien
- Entwicklung von indirekten und direkten Messgrößen zur quantitativen Bewertung der Softwarequalität
- Festlegung von Prozessen und Methoden zur Beurteilung der Erfüllung von Qualitätskriterien.
Methoden und Mechanismen zur Entwicklung sicherer IT-Systeme unterstützen eine Einhaltung von Sicherheitseigenschaften. Das Fraunhofer SIT bietet dazu Handlungsempfehlungen für die Etablierung und Dokumentation einer Sicherheitsarchitektur sowie für die sichere Integration von Open-Source-Komponenten mit dem Ziel, Sicherheit und das jeweilige Schutzniveau in Open-Source-Software-Entwicklungen bereits während des Design- und Entwicklungsprozess zu etablieren. So werden zur Sicherung der Qualität des Codes regelmäßige Code-Reviews durch Community-Mitglieder angesetzt und durchgeführt. Die Qualitätssicherung für Design / Architektur erfolgt über ein Peer-Review. Der vom Konsortium bereitgestellte BSI-TR-Konforme Demo- und Testdienst wird der Community zu Testzwecken für die gesamte Projektlaufzeit kostenfrei zur Verfügung gestellt. Damit kann die Community ihre Eigenentwicklungen auch ausgiebig während der Entwicklungszeit testen.
Dokumentation wird als integraler Bestandteil der Open-Source-Software-Bibliothek und deren Integration verstanden. Die Ausarbeitung der Dokumentation ist organisatorisch und technisch eng an die Modulentwicklung gekoppelt. Um möglichst zeitnah die Vollständigkeit und Aktualität der Dokumentation zu gewährleisten, werden beteiligte Community-Mitglieder umgehend über alle Softwareänderungen informiert. Dies erfolgt über eine automatische Änderungsbenachrichtigung.
Release-Zyklus
Im Rahmen der Projektlaufzeit sind fünf große Veröffentlichungen mit Aktualisierungen (Major-Release-Updates) der Open-Source-Software-Bibliothek vorgesehen. Nach der Bereitstellung der Basisversion durch das Kernentwicklungsteam können durch die Community Patches (Fehlerbereinigungen) oder Feature Requests (Anfragen zur Implementierung neuer Funktionen) über das PersoApp-Internetportal eingereicht werden. Es wird ein sechs-monatiger Releasezyklus für die Software angestrebt. Dieser unterteilt sich in einen Zeitraum zur Einreichung von Patches und Features von fünf Monaten und einen Entwicklungs- und Testzeitraum von einem Monat. Den Beginn jedes Testzeitraumes markiert ein Feature Freeze, ab dem keine neuen Funktionalitäten mehr in die neue Version aufgenommen werden. Somit gibt es alle sechs Monate eine neue Version, die einem Review unterzogen wurde. Diese Regelmässigkeit der Releases und deren Reviews unterstützt fortlaufend eine Einhaltung der grundlegenden Qualitätskriterien für die Open-Source-Software-Bibliothek und damit ihrer Implementierung der Online-Ausweisfunktion des neuen Personalausweises.







