Sichere Identifikation mit Android

Kurz um, es geht um folgendes :

ein User hat eine Login-Maske, auf seinem Rechner liegt ein ID-File welches auch dem Server bekannt ist (und auch übereinstimmen muss !) und das ganze soll jetzt noch durch ein zweites System gesichert werden.

Die Login-Maske zeigt einen QR an, welcher dann von einem Android-Gerät gelesen werden muss (sinniger weise Smartphone) um so den Auth-Code zu erhalten der zusätzlich eingegeben werden muss.
Dabei wird der Auth-Code mit einem zweiten ID-File, nämlich dem der Android-App, “verschlüsselt” (mit ist kein besserer Begriff eingefallen) womit sichergestellt wird das der richtige Auth-Code auch nur von dem User gelesen werden kann.
Dabei müsste man mal testen ob man bei den ID-Files eher auf symetrisch (wie AES) geht oder eher a-symetrisch (wie RSA).

Jetzt kommen aber gewisse Probleme :

  1. wenn eines (oder beide) der ID-Files verloren geht ist der Zugang unweigerlich verloren > Neuerzeugung aller ID-Files (sowohl Client- als auch Server-seitig nötig) > wie in diesem Fall den “rechtmäßigen” User korrekt authentifizieren ?
  2. mir fällt kein wirklich praktikables Pattern ein wie man die Daten vor Manipulation schützen könnte (völlig egal ob einfaches Kopieren oder bewusstes Ändern um Zugriff auf andere Accounts zu erhalten)

Prinzipiell gibt es sowas schon : SteamGuard

Es wird ein eindeutiger Key für jeden Client erzeugt den der Auth-Server mit den zugelassenen vergleicht. Wird ein neue Key gefunden so wird per Mail der Auth-Code versand.

Dieses Prinzip würde ich halt gerne auf QR und Android-Smartphone umlagern.

Bevor Einwände wie “Ausschluss mehrerer User-Gruppen” oder ähnliche kommen : das ganze soll erstmal proof-of-concept werden und lässt sich später auf weitere Systeme erweitern.

Es geht eher weniger um das “Wie erzeuge ich QR und lese sie mit Android?” sondern eher um “Macht das ganze so überhaupt Sinn?”.

Mich würden mal eure Ideen dazu interessieren. Vielleicht kann man ja das eine oder andere noch verbessern.

Wo ist das Problem?

Wenn ich meinen Rechner neu installiere, kennt Steam mich auch nicht mehr und schickt mir einen neuen Auth-Key zu. Das Rechner kaputt gehen oder man mal eine ID “verliert” passiert. dagegen kann man nichts machen.

Erzeugt eine zufällige ID und speichert die auf dem Gerät. Das die ID ausgelesen wird, bzw. werden kann, ist eine Tastsache (bei entsprechend krimineller Energie).