Überprüfen Sie den Pin, ohne den iOS Keychain zu verlassen

8

Ich habe einen User Pin im iOS Keychain gespeichert. Für jeden Pinversuch verwende ich SecItemCopyMatching , um den Referenzstift abzurufen, und führe dann den Vergleich durch.

Das Problem ist, dass der abgerufene Referenzstift für eine kurze Zeit in den Arbeitsspeicher der App gelangt. Wenn das Telefon kompromittiert ist, kann der Referenzstift möglicherweise ausgelesen werden.

Gibt es eine Möglichkeit, den PIN-Versuch an den Schlüsselbund zu übergeben und den Schlüsselbund in seiner sicheren Umgebung mit dem Referenzstift vergleichen zu lassen? (Kann das sichere Element solche Sachen machen?)

    
Randomblue 04.03.2015, 16:47
quelle

4 Antworten

2

Ich denke, das könnte Ihnen helfen, die endgültige Antwort zu erreichen, da 1Password mit demselben Problem konfrontiert ist.

Ссылка

Aber basierend auf dem, was ich lese, ist das, was Sie erreichen wollen, momentan nicht möglich. Die nächste Information, die ich finden konnte, war diese:

Was ist das? korrekte Methode zum Löschen vertraulicher Daten aus dem Speicher in iOS?

und dieser:

Sensible Daten im Speicher

Wo Sie lesen können:

  

Wenn Ihr Gegner beliebigen Code auf Ihrem Ziel ausführen kann   Maschine (mit den Debug-Privilegien, die benötigt werden, um ein Prozessabbild auszugeben),   Sie sind alle Arten von verschraubt.

Meine Antwort lautet also: Nein, Sie können die PIN nicht überprüfen, ohne den iOS-Schlüsselbund zu verlassen.

    
Mikael 07.04.2015, 11:04
quelle
6

Im Allgemeinen speichern Sie einen Einweg-Hash des Passworts mit einem Salt, nicht dem tatsächlichen Passwort. Fügen Sie zum Überprüfen das Salz hinzu, überprüfen Sie die Zeichenfolge, vergleichen Sie sie mit dem gespeicherten Hash, und wenn sie übereinstimmt, ist sie verifiziert.

Die Stärke ist dann die Stärke des Algorithmus, das Salz und das Passwort.

    
Marcus Adams 04.03.2015 20:38
quelle
3

Sie können ein Element als Hash-Pin benennen lassen. Dann können Sie überprüfen, ob die Elemente vorhanden sind, wenn der Benutzer nach dem Hashing einen Pin eingibt.

Sie müssen das Objekt möglicherweise vom Schlüsselbund reinigen, wenn sich der Stift ändert.

    
alpere 24.03.2015 18:45
quelle
2

Nein, es kann nicht so gemacht werden, wie Sie es vorschlagen. Der Schlüsselbund ist ein Speicher

aber ist es wirklich ein Problem, wenn das Element im flüchtigen Speicher ist?
Ich meine .. wenn der Schlüsselbund geöffnet ist, ist es bereits im Speicher (zumindest während der Überprüfung)

    
Daij-Djan 04.03.2015 16:52
quelle

Tags und Links