Smart Card, OTP und andere Verfahren im Vergleich

Ich stelle mich auch mal in unseren Speakers’ Corner und lasse all Eure Antworten und Kommentare auf mich einprasseln. Und starte hier mit dem Thema Authentisieren.

Vor allem müssen die User die Verfahren akzeptieren, nutzen und nicht als lästig empfinden. Aber ich will hier vor allem die technische Seite diskutieren und jeder ist eingeladen, auch seine Argumente mit einzubringen. Deshalb werde ich hier und da etwas übertreiben, provozieren und hoffen, dass es so viel Feedback gibt. Streiten im besten Sinne.

Meine Post-Reihe zum Thema Authentisieren wird wohl drei Teile lang werden. Smart Cards, OTP und ein anderes Verfahren – ein bisschen BIO muss ja heutzutage sein. Wenn dann gewünscht, tauchen wir tiefer in die Kryptografie ein. Mal sehen, wer dann bis zur Zahlentheorie durchhält. Ich verspreche, dass das multiplikative Inverse einer abelschen Gruppe sehr mächtig ist.

OK, aber zurück zum Thema – Smart Cards.


Warum Smart Cards?

Unter Smart Cards verstehe ich hier richtige SC im Checkkarten-Format oder als USB-Tokens – also kein pfx auf einem Speicherstick.

Primär wird so eine Smart Card zur Authentisierung am Rechner oder VPN / Remote Access-Portalen verwendet. Insbesondere bei der Anmeldung an einem Windows-Rechner erhöht die zertifikatsbasierte Variante die Sicherheit des Kerberos-Protokolls. Auch Mimikatz hat es dann nicht mehr so leicht.

Email-Signatur: Wenn man die Aufgaben an den Benutzer überträgt, besteht die Aufgabe, die Verschlüsselung zu enforcen. Aber das ist vor allem abhängig von der Verfügbarkeit des Public Keys des Empfängers. Hier ist oft eine Gateway-Lösung, vor allem auch durch die richtlinienbasierten alternativen Verschlüsselungen, ein Vorteil. Aber auch hier gehören die Private Keys auf eine „Smart Card“ oder besser ein Hardware Security Module – HSM.


Was ist cool an Smart Cards?

Einfach gesagt, ist es für mich die Kryptografie. Ob nun RSA (klassisch private and public mit Primzahlen) oder ECC (elliptic curve cryptography) ist mir persönlich egal, aber ja man sollte langsam zu ECC wechseln. Gerade in der mobilen Welt und auch WhatsApp nutzen ECC, das muss doch gut sein – oder? Den Part der Kryptologie, ob ECC so gut ist, überlassen wir der Kryptoanalyse.

Das Wichtige ist, dass die Smart Card am Mann oder der Frau bleibt (beim nächsten Mal kommen die Frauen zuerst, für die Gleichberechtigung, versprochen).

Also Token an das Schlüsselbund und die Karte mit einem Cardholder an die Leine legen. Besser ist noch die Kombination mit anderen Funktionen, Corporate Identity, Secure Printing, Payment oder Gebäudezutritt. Wenn das liebe Geld auf der Karte ist, lassen es nur noch wenige rumliegen.

Aber das Wertvolle für die IT-Sicherheit ist der Smart Card Chip. Kryptografische Operationen müssen auf dem Chip erfolgen, denn der private Schlüssel sollte einmalig sein und nur im Zugriff für eine Person.


Private Key und Public Key

Der Private Key und der Public Key sollten on Chip generiert werden, da echte Zufallszahlen nur mit Hardware gerechnet werden können. Anschliessend wird der Private Key im Kryptochip der SC gespeichert, wo er auch bleiben soll. Jede Operation wird mit der Eingabe des PINs bzw. der Passphrase geschützt. Anderer Prozess gleich erneute PIN / Passphrase Eingabe, damit keine Malware oder sonst ein ungewollter Prozess eine kryptografische Operation auslösen kann.

Man kann auch die Keys auf einem HSM generieren und diese dann auf die SC importieren. Das ist sicher besser, da die Möglichkeiten der Zufallszahlerzeugung grösser sind, und es ändert am Prinzip wenig. Es ist dann zufälliger, aber 2048 Bit Keys kann man heute auch auf den Chips generieren. Wenn dann nicht gerade so etwas wie ROCA zuschlägt (CVE-2017-15361), ist alles gut. Wenn man „PIN caching“ oder ähnliche Verfahren nutzt, dann werden teilweise grundlegende Prinzipien zu Gunsten der Usability geopfert.


Der heilige Gral: Private Key

Der Private Key ist heilig. Und das aus meinem Munde – ok aus meinen Fingern. Wenn man davon abweicht, dann braucht es dafür gute Gründe, die es durchaus gibt – aber meist ist es die Usability, und man muss den daraus resultierenden Risiken mit zusätzlichem Aufwand begegnen. Wenn man jeden Chip mit einem eigenen Key (initialization key / admin key / PUK) der Organisation oder Firma initialisieren würde, wäre das hohe Sicherheit und würde den Inhalt also die Zertifikate auf der Karte schützen. Eigentlich ein Muss, setzt aber sinnvollerweise ein Smart Card Management voraus.

Aber alle Wünsche in Richtung Key Archiving oder Ähnlichem negieren das Prinzip Private Key und müssen sehr gut überlegt sein.


Symmetrische und asymmetrische Verschlüsselung

Sichere Verschlüsselung basiert meist auf gleich zwei Verschlüsselungen. Symmetrischer Verschlüsselung, heute meist AES, mit dem Data Encryption Key und einer asymmetrischen Verschlüsselung des DEK mit dem Public Key. Für die Entschlüsselung brauchen wir den Private Key, um an den DEK zu kommen und mit diesem dann an die Daten. Wie das nun gerechnet wird, lassen wir heute Mal aussen vor. Aber wie gesagt, gern später mal mehr zu Primzahlen und Modulo-Operationen.


Und was ist jetzt am besten?

Smart Cards sind sicherer als OTP-Hardware Token. Hier muss man den Chip «aufhobeln», um an die Informationen zu kommen. Das geht, machen aber wenige. Es ist ja kein HSM, bei dem wir extra Sensoren und entsprechendes Wipen für physische Angriffe vorsehen. Bei OTP-Verfahren kann man den Token Code oder sogar den Passcode telefonisch weitergeben. Token-Seeds können gestohlen werden, das haben wir ja schon erlebt. APT at RSA -2011 nachzulesen bei schneier.com. Und heute macht man das (OTP) ja auf dem Smartphone, was die Sicherheit wiedermal zu Gunsten der Usability reduziert, auch wenn die Apps einiges für die Security tun. Software ist keine Hardware. Von SMS sprechen wir hier erst gar nicht. Deshalb ist für mich die Smart Card AuthN sicherer.

So, hier mal der oberflächliche Start zum Thema certificate based authentication und warum Smart Cards als Zertifikatsträger ein Muss sind.

Wer Smart Cards hacken will, schaue hier beim CCC vorbei: 35C3 –  In Soviet Russia Smart Card Hacks You – deutsche Übersetzung. Das nächste Mal OTPs.

Security token otp generation

More hacking stuff