Bürgerausweis v1 und v2: Was hat sich für Entwickler geändert?

Avatar
Autor

Für Entwickler mit dem Bürgerausweis v2 haben sich fünf Dinge geändert. Die Schlüssel wechselten von RSA zu ECDSA. [...]

Für Vorgänge im Kontaktmodus genügt in der Regel ein Middleware-Update ohne wesentliche Integrationsänderung. Kontaktlos erfordert dagegen neue SDK-Methoden. Alles, was Signaturen prüft oder die kryptografischen SDK-Methoden nutzt, braucht wegen ECDSA Aufmerksamkeit, und genau dort verlieren die meisten Entwickler mit dem Bürgerausweis v2 Zeit.

Der neue Bürgerausweis wird seit Juni 2024 ausgegeben, neu gestaltet nach den Sicherheits- und Formatvorgaben der Verordnung (EU) 2019/1157, die seit dem 2. August 2021 anwendbar war und am 9. Juli 2025 durch die Verordnung (EU) 2025/1208 ersetzt wurde. Alte, noch gültige Karten funktionieren weiter, weshalb Ihr Code dauerhaft beide handhaben muss, statt von einer zur anderen zu migrieren.

Juni 2024
Portugal beginnt mit der Ausgabe des Bürgerausweises v2
3.12.0
Erste Middleware-Version mit Unterstützung der neuen Karte: kontaktlose Schnittstelle und ECDSA
3.13.0
SDK-Modul für .NET 8/9, PteidToken unter macOS aktualisiert, Leistung beim kontaktlosen Signieren
3.14.0
Lesen von Reisedaten der neuen Karte und weiterer Dokumente nach ICAO Doc 9303
Wenn Ihre Integration vor Mitte 2024 entstanden ist, ist das wahrscheinliche Ergebnis kein Absturz. Es ist ein subtiler Fehler bei einigen Karten und nicht bei anderen.

Bürgerausweis v2 für Entwickler: was sich gegenüber v1 geändert hat

Schlüssel
RSA wird ECDSA
v1 nutzt RSA. v2 nutzt Schlüssel und Zertifikate auf Basis elliptischer Kurven. Die offizielle Dokumentation stellt ausdrücklich fest, dass dies in Anwendungen berücksichtigt werden muss, die die kryptografischen SDK-Methoden nutzen oder von der Karte signierte Daten prüfen.
Schnittstelle
Kontaktlos kommt hinzu
v2 unterstützt kontaktloses Lesen über ISO/IEC 14443. Der Kontaktmodus funktioniert nach einem Software-Update ohne wesentliche Integrationsänderung. Kontaktlos erfordert die neueren SDK-Methoden.
Physisch
Kontakte auf der Rückseite
Bei der neuen Karte liegen die Chipkontakte auf der Rückseite des Dokuments. Das erklärt einen Teil der Supportfälle, die niemand mit der Kartenversion in Verbindung bringt.
Vertrauenskette
Zwischenzertifizierungsstellen können fehlen
Werden v2-Karten mit dem PKCS#11-Modul genutzt, werden die Zwischenzertifizierungsstellen möglicherweise nicht zurückgegeben. Beziehen Sie sie im Vorfeld über die offizielle PKI-Seite oder zum Nutzungszeitpunkt über die AIA-Erweiterung.
Beide Versionen bleiben im Umlauf, weshalb Entwickler mit dem Bürgerausweis v2 auch v1 weiter unterstützen. Das Middleware-Update gewährleistet Kompatibilität mit dem neuen Modell und mit älteren, noch gültigen und genutzten Modellen.

Warum bricht ECDSA Code, der algorithmusunabhängig aussah?

Weil viel Code nicht so agnostisch ist, wie er sich liest. Es zeigt sich an vier Stellen: einem fest im Code hinterlegten Algorithmus-Identifikator in einer Signaturprüfroutine, geschrieben als RSA die einzige Option war; einer Validierungsbibliothek mit einer Liste erlaubter Algorithmen, die niemand überarbeitet hat; Annahmen zur Schlüssellänge in der Puffer-Behandlung oder in Datenbankspalten; und Testdaten, die nur RSA-signiertes Material enthalten.

Der vierte kostet am meisten Zeit, denn er erzeugt einen grünen Build und ein fehlerhaftes System. Wenn Ihre Testdaten vor Mitte 2024 erhoben wurden, enthalten sie keine einzige ECDSA-Karte.

Was ist die CAN, und was macht PACE?

Zwei verschiedene Dinge, die häufig verwechselt werden. Die Card Access Number ist ein sechsstelliger Code, aufgedruckt unten rechts auf der neuen Karte, und sie soll unbefugtes kontaktloses Lesen verhindern. Sie ist keine PIN. Sie unterscheidet sich von den PINs für Authentifizierung, Signatur und Adresse und ist nicht in gleicher Weise geheim: Wer die Karte in der Hand hält, kann sie lesen. Sie belegt physischen Besitz, keine Zustimmung. Ein Umsetzungsdetail: Beim Aufruf von C_Login über PKCS#11 im kontaktlosen Modus mit einer v2-Karte wird die CAN als PIN-Parameter übergeben, was der Parametername nicht andeutet.

PACE ist das Authentifizierungsprotokoll, das die kontaktlose Nutzung schützt, beschrieben in Teil 11 des ICAO-Dokuments 9303. Die Zugriffskontrolle auf die Daten des kontaktlosen Chips erfolgt über PACE anhand von Daten aus der maschinenlesbaren Zone des Dokuments oder wahlweise, bei Karten, über die CAN. Die Sicherheit wird zusätzlich durch passive Authentifizierung der Datengruppen sowie durch Chip-Authentifizierung mittels Active Authentication und Chip Authentication gewährleistet.

Die drei Dinge, die Sie für v2 bauen müssen
CAN-Erfassung
Sechs Ziffern von der Karte, erforderlich für kontaktloses Lesen. Entscheiden Sie bewusst, ob Sie sie zwischenspeichern
PACE-Handhabung
Reisedokumenttechnik, nicht nationale eID-Technik. Planen Sie Lernzeit ein, wenn das Team nie mit elektronischen Pässen gearbeitet hat
Versionserkennung
Keine PKCS#11-API meldet Kartentyp oder Modus. Versuchen Sie die Initialisierung ohne PIN oder CAN und wiederholen Sie mit der CAN
Das ist aus einem praktischen Grund wichtig: Es ist Reisedokumenttechnik. Hat Ihr Team schon mit elektronischen Pässen gearbeitet, ist es vertraut. Wenn nicht, hat die Lernzeit nichts mit dem Bürgerausweis selbst zu tun.

Ein Detail der Nutzererfahrung, das Gestaltung verdient. Die Desktop-Anwendung fragt die CAN bei der ersten kontaktlosen Nutzung ab und fragt bei weiteren Nutzungen derselben Karte nicht erneut, mit der Option, sie nicht zu speichern. Wenn Sie Ihren eigenen Ablauf bauen, entscheiden Sie bewusst, ob Sie die CAN zwischenspeichern, denn Bequemlichkeits- und Sicherheitsargument weisen in entgegengesetzte Richtungen, und die Entscheidung gehört dem Produktverantwortlichen und nicht der Person, die den Dialog schreibt.

Sie haben eine Integration, die älter als die neue Karte ist, und niemand weiß, was sie bei v2 tut?
Sprechen Sie mit unserem Team

Was ändert sich in der Zertifikatskette?

Dies ist die Änderung, die am ehesten unentdeckt in Produktion gelangt, weil sie davon abhängt, welche Schnittstelle Ihr Code nutzt. Der Aufbau der Kette wird Ihre Aufgabe, statt etwas, das Ihnen das Modul liefert. Code, der annahm, dass eine vollständige Kette vom Token kommt, wird bei v2 die Validierung nicht bestehen und bei v1 weiterlaufen, genau das Muster, das als defekte Karte diagnostiziert wird.

Und wenn Sie die Zwischenzertifikate zur Laufzeit über AIA beziehen, haben Sie eine Netzwerkabhängigkeit in einen Prüfpfad eingebaut. Entscheiden Sie, ob das akzeptabel ist, und wenn nicht, laden Sie sie vorab und zwischenspeichern Sie sie mit einem Aktualisierungsplan. Die Dokumentation der Desktop-Anwendung enthält einen Abschnitt zur Fehlerbehebung bei der neuen Vertrauenskette, ein hinreichendes Zeichen, dass dies keine theoretische Sorge ist.

Was ist die kürzeste Migrationsliste für den Bürgerausweis v2?

Aktualisieren Sie die Middleware auf 3.12.0 oder höher, und dokumentieren Sie, gegen welche Version Sie zertifiziert sind.
Durchsuchen Sie Ihren Code nach RSA-Annahmen: Algorithmus-Identifikatoren, Listen erlaubter Algorithmen, Konstanten für Schlüssellängen.
Ergänzen Sie Ihre Testdaten um ECDSA-Material. Ohne das ist nichts anderes auf der Liste überprüfbar.
Setzen Sie eine ausdrückliche Versionserkennung um und testen Sie sie, mit Protokollierung. Wenn ein Supportfall beschreibt, dass es nicht funktioniert, ist die erste nützliche Frage, welche Kartenversion und welche Schnittstelle, beantwortet aus Protokollen und nicht durch Rückfrage beim Nutzer.
Korrigieren Sie den Kettenaufbau für den Fall, dass Zwischenzertifikate nicht zurückgegeben werden, und entscheiden Sie zwischen Vorabladen und AIA-Abruf.
Planen Sie kontaktlose Funktion nur, wenn Sie sie brauchen. Die neuen SDK-Methoden, die CAN-Erfassung in Ihrer Oberfläche und eine Entscheidung zum Zwischenspeichern. Der reine Kontaktmodus braucht davon nichts.

Es gibt einen Testmodus, und er ist wichtiger, als er klingt. Die SDK-Dokumentation beschreibt seine Konfiguration im Abschnitt zum kontaktlosen Zugriff. PIN-Codes sperren nach drei Fehlversuchen, die Entsperrung erfordert einen persönlichen Besuch mit dem PIN-Brief, und Entwickler, die Signaturabläufe gegen echte Karten testen, haben sie gesperrt. Finden Sie diesen Abschnitt vor Ihrem ersten Signaturtest, nicht danach.

Der sechste Punkt ist die einzige wirklich neue Entwicklungsarbeit. Die ersten fünf sind ein Vormittag Lesen des eigenen Codes und anschließend Beheben, was man findet, und sie unterscheiden eine Integration, die auf beiden Karten läuft, von einer, die auf den Karten läuft, die Ihr Entwickler zufällig besitzt. Wenn Sie neu anfangen statt zu migrieren, behandelt unser Leitfaden zur Integration des Bürgerausweises in private Anwendungen das Terrain vor diesem Beitrag.

Weiterführende Beiträge

Integration des Bürgerausweises in private Anwendungen Der Ausgangsbeitrag. Welcher der drei Integrationswege passt, und was die Leseschicht kostet.
Welche Sektoren müssen die EUDI-Wallet bis 2027 akzeptieren? Die Pflicht, die neben der Karte entsteht, und die zwei Bedingungen, die entscheiden, ob sie für Sie gilt.
Leitfaden zur eIDAS-2.0-Umsetzung Geschrieben aus der Sicht eines Teams, das seit 2011 nationale eID-Middleware pflegt.
Wie Kap Verde digitale Identität für einen Archipel gebaut hat eID-Middleware, ausgelegt für Offline-Fähigkeit und Fernaktivierung.
eID Box Das Middleware-Produkt, das auf dieser Arbeit aufbaut.

Häufige Fragen

Bürgerausweis v2 für Entwickler: was sich geändert hat

Was hat sich zwischen Bürgerausweis v1 und v2 geändert?
Die seit Juni 2024 ausgegebene v2-Karte nutzt ECDSA-Schlüssel und -Zertifikate anstelle von RSA, unterstützt kontaktloses Lesen über ISO/IEC 14443 mit Schutz durch das PACE-Protokoll, führt einen sechsstelligen CAN-Code für den kontaktlosen Zugriff ein und trägt die Chipkontakte auf der Rückseite des Dokuments. Die Middleware-Unterstützung beginnt mit Version 3.12.0. Die Änderungen sind dokumentiert im Projekt-Repository und in den offiziellen Handbüchern.
Funktioniert Code für den alten Bürgerausweis weiter?
Für Vorgänge im Kontaktmodus genügt in der Regel ein Software-Update ohne wesentliche Integrationsänderung. Kontaktlos erfordert neue SDK-Methoden. Code, der Signaturen prüft oder die kryptografischen SDK-Methoden nutzt, muss überarbeitet werden, weil die neue Karte ECDSA verwendet und Zwischenzertifizierungsstellen bei v2 über PKCS#11 möglicherweise nicht zurückgegeben werden.

CAN und Versionserkennung

Was ist die CAN auf dem portugiesischen Bürgerausweis?
Die Card Access Number ist ein sechsstelliger Code, aufgedruckt unten rechts auf dem neuen Bürgerausweis. Sie wird für kontaktloses Lesen benötigt und unterscheidet sich von den PINs für Authentifizierung, Signatur und Adresse. Bei Nutzung von C_Login über PKCS#11 im kontaktlosen Modus wird die CAN als PIN-Parameter übergeben.
Wie erkennt man, ob eine Karte v1 oder v2 ist?
Das müssen Sie selbst umsetzen. Derzeit gibt es keine dedizierte PKCS#11-API, um den Kartentyp oder den kontaktlosen Modus abzufragen, weshalb Entwickler eine eigene Strategie umsetzen müssen. Ein dokumentierter Ansatz ist, die Initialisierung ohne PIN oder CAN zu versuchen und bei Fehlschlag mit der CAN zu wiederholen.

Zertifikate und Tests

Warum scheitert die Zertifikatsprüfung bei der neuen Karte und nicht bei der alten?
Weil Zwischenzertifizierungsstellen möglicherweise nicht zurückgegeben werden, wenn v2-Karten mit dem PKCS#11-Modul genutzt werden. Beziehen Sie sie im Vorfeld über die offizielle PKI-Seite oder zum Nutzungszeitpunkt über die in jedem Zertifikat enthaltene Erweiterung Authority Information Access. Code, der eine vollständige Kette vom Token annahm, scheitert nur bei v2.
Können Signaturabläufe getestet werden, ohne echte Karten zu sperren?
Die SDK-Dokumentation beschreibt die Konfiguration eines Testmodus, und es lohnt sich, ihn vor dem ersten Signaturtest zu finden. PIN-Codes sperren nach drei Fehlversuchen, und die Entsperrung erfordert einen persönlichen Besuch bei einer IRN-Stelle mit Karte und PIN-Brief.
Caixa Mágica Software
Team Caixa Mágica
Caixa Mágica Software ist ein portugiesisches Softwareunternehmen mit über 20 Jahren Erfahrung in maßgeschneiderter Softwareentwicklung, KI-Lösungen und Nearshore-Entwicklungsteams für europäische Unternehmen. Wir arbeiten seit über einem Jahrzehnt an nationaler eID-Middleware.
eID Box · Caixa Mágica Software
Migrieren Sie eine Integration, die älter als die neue Karte ist?
Nennen Sie uns die Middleware-Version, die Sie einsetzen, und wo Sie Signaturen prüfen. Wir arbeiten seit über einem Jahrzehnt an nationaler eID-Middleware, deshalb ist dieses Gespräch kurz.