HTTP Zweifaktor-Authentifizierung

Reality

Top Contributor
Hi an alle,
das ist eine spezielle Sicherheitsfrage und das Thema scheint auch heute noch so fremd zu sein, sodass es dafür keine eigene deutschsprachige Forum-Community zu geben scheint. Hier gibt es nicht mal eine eigene Rubrik...
Ich würde gerne im Intranet und später auch über das Internet eine Zweifaktor-Authentifizierung implementieren. Über das Wie gibt es nur wage Vorstellungen. Es sollte jedenfalls komfortabel bedienbar sein, wodurch bspw. SMS rausfällt.

Es gibt zwei Use Cases:
1. Einmal kommuniziert ein embedded Gerät mit einem Server. Das Gerät schickt Resultate an den Server.
2. Der Anwender möchte über den Browser die Resultate einsehen.

Das Konzept sieht für die Embedded-Server-Kommunikation vor, dass ein eigenes SSL-Schlüssel mit Zertifikat generiert wird. Soweit ich das verstanden habe, kriegt der Client einen privaten Key, so wie ein Zertifikat, das vom Root-Zertifikat abgeleitet ist. Der Client authentifiziert sich mit dem privaten Key und der Server verifiziert das.

Bei der Browser-Server-Kommunikation kann gleich vorgegangen werden. Hierfür musst das Client-Zertifikat über den Browser importiert werden.

Meine Frage: Ist das Konzept gut?
Muss ich das Zertifikat zwingend bei einer Authentifizierungsbehörde signieren lassen? Meine Bedenken sind, dass die ja zeitlich limitiert sind. Das wäre ein Problem, wenn die Infrastruktur eben bei verschiedenen Kunden im Intranet sitzt, wo ich mal nicht eben die Zertifikate alle 12-24 Monate aktualisieren kann (die Geräte werden über eine Firma vertrieben. Teilweise weiß ich nicht mehr wer die Kunden sind), weswegen ich gerne davon absehen würde, falls das kein Sicherheitsproblem darstellen würde.

EDIT: Mit der Webcrypto API soll ebenfalls eine Zweifaktor-Authentifizierung möglich sein. Allerdings konnte ich dazu keine praktischen Informationen finden. Weiß das jemand Bescheid?

Wie sind eure Gedanken dazu?

Danke im Voraus!
Reality
 

truesoul

Top Contributor
Hallo.


https://github.com/thibauts/node-castv2/issues/2

Ich würde mal schauen wie es Dongles machen wie zum Beispiel Google Chromecast (Siehe Link). Aber ansich würde ich sagen das dein UseCase für Embedded zu Server in Ordnung ist.

Aber bei der Browser zu Server Kommunikation wäre es sinnvoller Signieren zu lassen. Und es ist nicht komfortabel Zertifikate auf ein Client zu installieren.

Bei den Zwei Faktor Authentifizierung kenn ich nur SMS, Google Authenticator und Fingerprint (Wobei das letztere noch nicht implementiert habe). Kenne somit nichts was komfortabeler ist :)

Muss das Embedded sich noch verifizieren?
 

AndyJ

Bekanntes Mitglied
Es gibt drei Factoren der Authentifizierung:

1) Etwas, das der Nutzer weiss (Passwort, etc.)
2) Etwas, das der Nutzer hat (Smartphone, smart card, etc.)
3) Etwas, das der Nutzer ist (Fingerabdruck, etc.)

Wenn du zwei davon zusammen verwendest, hast du Zweifaktor-Authentifizierung. Client-Zertifikate fallen unter 1, etwas wissen - ist sozusagen nur ein erweitertes Passwort. Fuer Smartcards (2) brauchts einen Reader, also auch nicht jedermanns Sache. SMS gilt als nicht mehr sicher, aber ich denke es kommt drauf an. Man kann's wohl noch verwenden (oder muss, weil es nicht viele Alternativen gibt). Hardware-basierte RSA Token gaebe es da noch.
Biometrie klingt erstmal supersicher, hat aber auch so seine Probleme. Ein Fingerabdruck kann z.B. leicht gefaelscht/kopiert werden (der CCC hat's mal demonstriert), aber der Nutzer kann seinen Fingerabdruck nicht aendern wie z.B. ein Passwort.

Cheers,
Andy
 

Ähnliche Java Themen

Neue Themen


Oben