2008-10-10 8 views
8

Ich muss das Passwort des Benutzers in meiner iPhone App speichern.Passwort-Verschlüsselung in iPhone-Apps

Wenn ich eine App im App Store posten muss, muss ich Apple mitteilen, ob es in der App eine Verschlüsselung für den Export gibt.

Ich möchte nicht, dass meine App auf die USA beschränkt ist, aber ich möchte auch keine Passwörter im Klartext über das Internet speichern oder senden.

Im Grunde ist die Frage, kann ich Passwörter in einer Weise verschlüsseln, die meine App nicht eingeschränkt wird?

Antwort

5

Sieht aus wie die mitgelieferte crypt() Funktion kann für Passwörter verwendet werden:

Diese Bibliothek (FreeSec 1.0) wurde außerhalb der Vereinigten Staaten von Amerika als unbelastet Ersatz für die libcrypt Verschlüsselungsbibliothek U.S.only entwickelt. Programme, die mit der Schnittstelle crypt() verbunden sind, können nur dann aus den USA exportiert werden, wenn sie crypt() ausschließlich für Authentifizierungszwecke verwenden und die Verwendung der anderen oben aufgeführten Programmierschnittstellen vermeiden. In der Bibliothek wurde besonders darauf geachtet, dass Programme, die nur die crypt() - Schnittstelle verwenden, die anderen Komponenten nicht einbeziehen.

(vom iphone Dokumentation für crypt (3))

+0

Wenn sie crypt() ausschließlich zu Authentifizierungszwecken verwenden ... Ich glaube nicht, dass Sie die man-Seite richtig gelesen haben. Authentifizierung ist keine Verschlüsselung. Authentifizierung wurde nie eingeschränkt (IIRC) - nur Verschlüsselung. Zum Beispiel ein großer, fetter RSA-Modul: wenn er für eine RSA-Signatur verwendet wird, kein Problem. Verwenden Sie die gleichen großen Module für die Verschlüsselung, und Sie müssen sich an die Exportbestimmungen halten. BTW, wenn Sie eine symmetrische Chiffre haben, die 63-Bit-Schlüssel verwendet, sind Sie OK. Bei 64 Bit müssen Sie das Department of Commerce um eine Lizenz bitten - siehe http://www.bis.doc.gov/encryption/massmarket_keys64bitsnup.html. – jww

5

Erstens, wenn der Benutzername und das Passwort am Telefon verschlüsselt und entschlüsselt werden, dann ist der Entschlüsselungsschlüssel offensichtlich auch am Telefon und ziemlich wertlos. Ich würde mir keine Sorgen darüber machen, Benutzernamen und Kennwörter verschlüsselt auf dem Telefon zu speichern.

Für eine sichere Kommunikation sollten Sie SSL verwenden, das sich wahrscheinlich in einer Bibliothek befindet, die sich bereits auf dem Telefon befindet. Wenn Sie eine Bibliothek verwenden, die Teil des Telefonsystems ist, bedeutet das nicht, dass Ihre App "Verschlüsselung enthält".

Natürlich bin ich kein Anwalt. Wer weiß - das Gesetz könnte "Schwein Latein" als eine gültige Verschlüsselungstechnologie betrachten.

8

speichern Sie einfach das Passwort im Schlüsselbund. Es ist eine System-API, die Apple bereitstellt, und Sie müssen nichts über die Verschlüsselung wissen. Apple versendet es, ist ihre Verantwortung, die Einhaltung der System-Frameworks zu gewährleisten. Vermutlich verwenden sie eine schwächere (oder keine) Verschlüsselung, wenn sie das Gerät irgendwo verkaufen, wo es verboten ist, aber wenn Sie die verfügbaren APIs verwenden, werden Sie keinen exportbeschränkten kryptografischen Code in Ihrer Binärdatei versenden, und die einzige Art, wie Sie interpretiert werden könnten das würde bedeuten, dass Apple es mit jedem iPhone liefert.

Nachdem ich gesagt habe, dass ich kein Anwalt bin, empfehle ich, einen zu konsultieren, wenn Sie sich darüber Sorgen machen. Keine Menge anderer Ratgeber für Programmierer ist besonders relevant für das, was grundsätzlich eine Rechtsangelegenheit ist.

+2

Ich fragte, ob die Verwendung des Schlüsselbundes dazu führen würde, dass man beim Tech Talk letztes Jahr eine Verschlüsselung erklären müsse und die Antwort war: "wir wissen es nicht" – philsquared

Verwandte Themen