Nach einem Tag der Suche nach SSL und HTTPS, bin ich völlig verwirrt, wie man etwas sehr einfaches tut. Ich habe eine kleine App, die keine Art von Benutzerauthentifizierung hat. Alle Benutzer sehen eine einfache App.Sicherung von API-Schlüssel in HTTP-Anfrage
Ich versuche, Google Translate API dafür zu verwenden. Ich habe einen Übersetzungs-API-Schlüssel, aber ich weiß nicht, wie ich ihn schützen soll. Ich möchte Google Translate direkt über meine iOS-App aufrufen, und gemäß der API-Dokumentation (https://cloud.google.com/translate/docs/reference/rest) wird der apiKey als Anforderungsparameter "Schlüssel" bereitgestellt. Die API-Dokumentation sagt auch, dass Google Translate SSL unterstützt, aber offensichtlich mache ich keine SSL-Prüfungen in meiner iOS-App, um die Identität zu bestätigen. Meine Frage ist, wie kann ich einen MITM-Angriff stoppen, der meinen translate API-Schlüssel erhalten und missbrauchen kann? Ich habe versucht, Charles zu benutzen, und ich bin eindeutig in der Lage zu sehen, dass der Schlüssel durchgelassen wird.
Jede Ressource, die ich im Internet gelesen habe, sagt, dass sie SSL verwenden, und alles ist gut. Aber es gibt keine Beispiele dafür, wie SSL in iOS-Apps mit beliebten Diensten wie Google verwendet werden kann.
Irgendwelche Ideen, wie ich diese einfache GET-Anfrage machen kann und verhindern, dass mein Schlüssel gestohlen wird?
EDIT:
SSL Pinning ist ein Overkill für diese. Ich denke nicht über die Verwendung von SSL nach, aber ich habe keine Ahnung, wie das mit iOS und einer Entität wie Google funktioniert (wie unten mit @pvg diskutiert).
Sie können versuchen, Ihr eigenes SSL-Pinning zu implementieren, aber es ist ein vollständiger Overkill für Ihren Translate-API-Schlüssel.Es ist nicht wertvoll genug für jemanden, um zu stehlen, oder es ist schwer zu ersetzen. – pvg
Genau, das Implementieren von SSL-Pinning ist ein kompletter Overkill. Ich muss meinen eigenen Server einrichten, ein eigenes SSL-Zertifikat kaufen usw. Der Grund, warum mein API-Schlüssel für die Übersetzung wertvoll ist, ist, dass jemand das leicht bekommen und es mit der alleinigen Absicht missbrauchen könnte, mir Geld zu kosten. – user1056585
Nein, Sie brauchen keinen eigenen Server und kein Zertifikat, aber niemand wird Ihren API-Schlüssel stehlen, und wenn, dann werden Sie wahrscheinlich nicht für die Nutzung haftbar sein. Sie können dies mit Google aufnehmen, wenn Sie super paranoid sind, aber zu diesem Zeitpunkt ist es nicht wirklich eine Programmierfrage. Es ist nicht viel von einer Programmierfrage, wie es ist. – pvg