Open Source 2FA
Eine Bestandsaufnahme
Cornelius Kölbel, Kieler Linuxtage, 21.09.2019
Cornelius Kölbel
- 2FA seit 2005
- eToken, Smartcards, OTP
- Hardware-Security-Modules / PKI
- 2014
- privacyIDEA Projekt
- Gründung NetKnights GmbH
Zwei-Faktor-Authentifizierung
Wissen, Besitz, Eigenschaft
Was ist keine 2FA...?
Zwei Passwörter
Zwei Apps auf einem Smartphone!
Was ist kein Besitzfaktor...?
(Hinweis: i.d.R. wird hierfür eine eindeutige kryptographische Komponente verwendet)
SMS!
Was verwendet einen Hash-basierten Message Authentication Code (HMAC)?
HOTP, TOTP (RFC 4226, 6238)
Was verwendet asymmetrische Krypto wie RSA oder ECC?
Smartcards, U2F, FIDO2
Was nutzt starke, nicht gebrochene Hash-Algorithmen?
Passwörter
Was verwendet proprietäre Algorithmen?
Biometrie
Das Problem mit dem Google Authenticator
Blog Post
Das Problem mit proprietärer Software
Das Problem mit Biometrie
- Immer wieder brechbar (Schäubletest)
- Nicht änderbar
- Nicht OSS
Das Problem mit manchen Applikationen
- Wollt Ihr wirklich ein 2FA-Management bauen? (Nextcloud, FreeIPA, Keycloak)
- Selbst Microsoft macht das nicht im AD.
Das Problem with U2F / FIDO2
privacyIDEA Authentication System
- privacyIDEA 2.23: August 2018
- privacyIDEA 3.0: 28.04.2019
- privacyIDEA 3.1: 04.09.2019
- privacyIDEA 3.2: November 2019
Python 3
- Abhängigkeiten von Modulen - für Python 3 verfügbar?
- Distributionen mit 3.5, 3.6, 3.7 -> unterschiedliches Verhalten
- 25.000 Zeilen Code anpassen
- Seiteneffekte treten nicht notwendiger Weise bei Unittests zutage
privacyIDEA 3.0 hat 8 Monate gedauert. (2.23 -> 2.23.5)
privacyIDEA 3.0
- Benutzer-Zuordnung zu Tokens
- Push-Token
- Queue, um manche Dinge assynchron auszuführen
(Senden von Emails)
- Statistik-DB Basisklasse (SQL nur suboptimal für Zeitreihen)
- Im Audit-Log werden die verwendeten Policies aufgeführt
Fazit zu privacyIDEA 3.0
- Wir sind zukunftssicher,
- die Administrierbarkeit wird einfacher und
- Support-Anfragen sind leichter zu bearbeiten.
- Admin-Read policies für Config und Token
- Beliebige Attribute im Policy-Matching
(Erstes Modul: Benutzer-Attribute)
- Migration
Migration
- (passthru)
- auto-assign
- auto-pin
Fazit zu privacyIDEA 3.1
- Leichtere Migration,
- flexibilität in größeren Installationen,
- Bessere Mandantenfähigkeit
- Policies müssen nicht an kompletten Resolver gebunden sein.
UI
- Erhofft: Dashboard
- Bekommen: Kleineres Feedback zur Bedienbarkeit
Smartcards
- Erhofft: Projekte und Entwickler
- Bekommen: Angeregte Diskussion, Eindrücke für Notwendigkeit, aber keine nächsten Schritte.
privacyIDEA 3.2
November 2019
Event Handler
- Request Mangler
- Response Mangler
- Notification File Writer
Fazit: Bessere Workflows.
WebAuthN / FIDO2
Fazit: Besseres Marketing
File Audit
Audit Log kann gleichzeitig in SQL und in File
geschrieben werden.
Fazit: Bessere Einbindung in Splunk und Co.
privacyIDEA ist hoch-integrierbar.
privacyIDEA wird diese Führungsposition weiter ausbauen.
Successful 2FA is a matter of smooth workflows.
Push
The id3a
- Use the smartphone
- Use asymmetric crypto
- No need to type
- Keep it open
- Just another toketype
Google Firebase Push service
- No other open connections on smartphone
- Each privacyIDEA installation has it's own Firebase project
asymmetric crypto
- Smartphone generates it's own private key
- privacyIDEA has it's own private key
- Messages to and from the smartphone are digitally signed
Not typing - but swiping
- User simply approves authentication request
- Signed message is sent to privacyIDEA
Open - as in come in an join
- Specification: Github Wiki
- Server (privacyIDEA): AGPLv3
- Smartphone Apps / privacyIDEA Authenticator: Apache 2.0
Token Type
To privacyIDEA it is a normal token type,
- that works with any workflows and policies,
- and can be combined in any way.
Credits
- Nils Behlen
- Micha Preußer