Frage

Ich brauche eine HTTPS-2-Wege-SSL-Verbindung von meiner iPhone-Anwendung auf den Server des Kunden zu etablieren. Allerdings sehe ich keinen sicheren Weg, um die clientseitige Zertifikate an die Anwendung (es ist eine E-Banking-Anwendung, so dass die Sicherheit ist wirklich ein Problem) zu liefern. Von dem, was ich bisher den einzigen Weg gefunden zu haben, dass der App der Lage wäre, das Zertifikat zuzugreifen, ist es zu schaffen, mit der Anwendung selbst vorge gebündelte oder eine URL aussetzen, von dem sie abgerufen werden können (IPhone App mit SSL-Client-Zertifikaten ).

Die Sache ist, dass weder diese auf zwei Arten verhindern eine dritte Partei um das Zertifikat zu erhalten, die als Risiko, wenn angenommen entfällt die Notwendigkeit für 2-Wege-SSL (da jemand das Client-Zertifikat haben kann).

Das gesamte Sicherheitsprotokoll sollte wie folgt aussehen:
- HTTPS 2-Wege-SSL zu authentifizieren, um die Anwendung
- OTP (Token) auf Basis der Benutzerregistrierung (Client-Schlüsselpaar bei diesem Schritt erzeugt)
- SOAP / WSS XML-Signatur (sig-Anfragen durch die Tasten erzeugt früher)

Jede Idee, wie die erste Schicht der Sicherheit zu schaffen (HTTPS)?

War es hilfreich?

Lösung

Ok, so meine eigene Frage zu beantworten ...

Es stellte sich heraus, dass die Sicherheit nicht Maßstab der Messung festgelegt hat. Die Sicherheitsanforderungen erfüllt werden, solange der Preis für das Bremssystem deutlich über dem Preis ist, dass man für so tun bekommen würde.

In meiner Situation sprechen wir über E-Banking-System, aber mit etwas niedrigen monatlichen Limit (paar Tausend USD). Wie ich in meiner Frage erwähnt es wäre eine weitere Sicherheitsebene über dem HTTPS sein, die WSS XML-Signaturen verfügen wird. Der Prozess der Anmeldung eines Benutzers und die seinen öffentlichen Schlüssel zu akzeptieren ist auch in mehreren Schritten. Im ersten Schritt sendet der Nutzer seine Telefonnummer zusammen mit einem Dorsch irgendwie von meinem Client abgerufen. Dann wird eine SMS an den Benutzer mit einem Bestätigungscode gesendet. Der Benutzer gibt den Bestätigungscode in einen Rechner, der OTP OTP-Code erzeugt, die den Benutzer identifizieren. Dann wird der öffentliche Schlüssel wird an den Server zusammen mit dem OTP-Code gesendet. Von hier an jeder Anfrage würde durch das private Gegenstück des öffentlichen Schlüssels an den Server gesendet früher unterschrieben werden.

So ist die größte Schwäche für den gesamten Prozess ist, dass jemand Reverse-Ingenieure die Anwendung und ruft das Client-Zertifikat für die SLL verwendet. Das einzige Problem, die sich daraus ergeben, dass jemand Benutzer-Transaktionen beobachten können. Um jedoch für jemanden, um eine Transaktion zu machen, das er den privaten Schlüssel des Benutzers benötigen würde, die erzeugt wird, verschlüsselt und in den Schlüsselbund gespeichert. Und der Preis für das Bremsen dieses Sicherheitsniveau ist sehr hoch.

Wir werden zusätzlich denken, wie die Daten der Benutzer auf einer höheren Ebene zu schützen (zum Beispiel unter Verwendung von WSS-Verschlüsselung), aber für den Start ich, was wir sind gut mit der aktuellen Lösung.

jede Meinung?

Bezug

Andere Tipps

https nicht wirklich auf diese Weise arbeiten. Auf dem Punkt gebracht, legen Sie auf einen sicheren Server, auf dem die Zertifikate, die von einer bekannten Stelle signiert sind.

Wenn Sie Äpfel (iPhone) Klassen für diese, werden sie nur ‚gute‘ Zertifikate akzeptieren. Durch gut, ich meine, was Apple als akzeptabel erachtet. Wenn Sie sie nicht benutzen (es gibt Alternativen im SDK), werden Sie nicht in der Lage sein, eine Verbindung (außer vielleicht, in dem Fall, dass Sie ein ‚Unternehmens‘ Entwickler haben lizenzieren - aber ich kann nicht sagen, dass mit 100% Sicherheit, wie ich in dieser Lizenz nicht sehe genug habe um sicher zu sein)

Um fortzufahren, verwenden Sie https-Verbindung zu Ihrem korrekt signiert Website und dann eine Art Login mit einem eingebauten Benutzername / Passwort-Institut oder Challenge / Response basierend auf der eindeutigen ID des iPhone (zum Beispiel) und Wechseltasten diese Verbindung.

Beachten Sie, dass dies bedeutet, dass Ihre Anwendung zu Abfrage für neue Zertifikate haben bei (jede Verbindung / alle X-Verbindungen / jeden Monat / Anmeldung angegebenen Intervalle), um sie auf dem neuesten Stand zu halten. Anschließend können Sie diese Zertifikate verwenden, um den sichereren Server zu verbinden.

[Bearbeiten]

Überprüfen Sie diese Post - können mehr Informationen haben über das, was du bist fragen zu tun

[/ edit]

[edit2]

Bitte beachten Sie, dass die Anfrage iphone, nicht OSX - App-Store-Zulassung ist ein Thema,

[/ edit2]

scroll top