2 Stimmen

Sicherheit von Webdiensten (auf Amazon) für die iOS-Nutzung

Ich frage mich, ob jemand Erfahrung mit Java-Webdiensten hat, die auf Tomcat bereitgestellt werden und in Amazons EC2 laufen, in Bezug auf die Sicherheit, wenn es um den Zugriff auf die Webdienste durch iOS-Geräte geht. REST und SOAP.

Gibt es eine Best Practice oder einen Leitfaden, wie der Webdienst den Aufrufer validieren kann, um sicherzustellen, dass er von der Anwendung (und dem Benutzer) aufgerufen wird, die ihn aufrufen soll, und nicht von einem anderen Programm? Welche Klassen/Komponenten, Protokolle oder Techniken würden Sie empfehlen? Ist AWS Identity and Access Management eine Option, und wenn ja, wie würden Sie es verwenden?

Danke fürs Teilen und für jeden Tipp!

1voto

rbeede Punkte 303

Ich verstehe Ihre Frage so, dass Sie möchten, dass nur Ihre iOS-App den Webdienst nutzt (Tomcat über REST/SOAP). Sie wollen nicht, dass jemand ein benutzerdefiniertes Programm schreibt, das vorgibt, Ihre App zu sein.

Am besten stellen Sie sicher, dass Ihre iOS-App den Domänennamen und das Zertifikat der SSL-Verbindung verifiziert, um zu verhindern, dass jemand mithört und sich irgendwelche "Das ist die eigentliche App"-Kennungen schnappt.

Einige gängige Techniken, die ich verwendet habe, um sicherzustellen, dass nur die iOS-App (und nicht ein benutzerdefiniertes Programm) kommuniziert, bestehen darin, den Plattformnamen und die Version zusammen mit einer benutzerdefinierten Identifizierungszeichenfolge wie "MyApp ABC123F3" in den Programmcode einzubetten. Eine andere Möglichkeit ist eine mathematische Routine, die eine rotierende Schlüsselzahl sendet, die nur der Server überprüfen kann. Eine weitere Möglichkeit wäre ein clientseitiges SSL-Zertifikat, das in die Anwendung eingebettet ist, aber das ist vielleicht einfacher zu finden.

Wenn jemand die Binärdateien nimmt und sie zurückentwickelt, kann er natürlich die geheime Zeichenkette/den geheimen Algorithmus bekommen und sie emulieren. Es gibt nicht viel, was man dagegen tun kann, außer es zeitaufwendig und schwierig zu machen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X