Transparenz. Anpassbarkeit. Mobilität.

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 Architektur des Open-Source-Core

Die Architektur des Open-Source-Core

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

Der Network Layer ist als “Schnittstelle” des eID-Client zur Netzwerkseite zu betrachten. Er ist beispielsweise für die Kommunikation zwischen dem eID-Client und einem über das Internet verbundenen Rechner verantwortlich. Der Network Layer sich zusammen aus:

  • Webservice Dispatcher
  • PAOS Client
  • TLS1.1+
  • Local API Server

ISO 24727 Services

Der ISO 24727 Services bildet die Kernfunktion des eID-Client ab. Das Module besteht aus den Komponenten:

  • Management
  • SAL (Service Abstraction Layer)
  • IFD (Interface Device)
  • Protocol Service

Card Service

Der Card Service dient als “Schnittstelle” kartenseitig, in dem Fall zum nPA. Er ist für die Kommunikation zwischen dem eID-Client und dem nPA verantwortlich. Der Card Service setzt sich zusammen aus:

  • eCard Handler/ PACE
  • Transport Provider
  • PC/SC

Crypto-Algs

Das Modul Crypto-Algs (Cryptographic Algorithms) vereinheitlicht den Zugriff auf die kryptographischen Funktionen aus anderen Bestandteilen/Modulen eines eID-Clients.

GUI

Weiterhin wird im Rahmen des Projektes für die Basisversion des OS-Client eine rudimentäre Benutzungsschnittstelle zur Nutzung der eID-Funktion bereitgestellt. Der GUI-Layer dient der Visualisierung der Anwendung.

Misc (Sonstiges)

In dieser Rubrik werden alle weiteren Module bzw. Bereiche zusammengefasst. Im Rahmen des Projektes wird das Konfigurations-Modul umgesetzt. Es ermöglicht bestimmte Einstellung der Software anzupassen, wie z. B. das Einstellen der jeweiligen Verschlüsselungsstärke.

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.