Ich schreibe Client für meine Webapplikation, und ich signierte Release-Jar mit meinem Entwickler-Zertifikat, wie kann ich überprüfen, dass Anfrage auf Rest-Service war von meinem signierten Glas?Verify HTTP-Anfragen von signierten Jar
7
A
Antwort
6
Sie können nicht. Die Signierung dient zur Validierung der Ausführung, dh sie befindet sich auf der Serverseite. Sie möchten jedoch die Signatur auf der HTTP/Ruheanforderung auf der Clientseite überprüfen. Client-Seite hat keine solche Validierung.
Sie können der Antwort selbst etwas hinzufügen und sie auf der Clientseite validieren, aber wiederum verhindert nichts, dass ein anderer Server den gleichen Wert sendet, und gibt so vor, Ihr Server zu sein.
Sie können auch einige Verhaltensmerkmale zu Ihrem jar hinzufügen (wie Sitzungscookies), aber wiederum verhindert nichts, dass andere jars es emulieren.
Verwandte Themen
- 1. java.io.IOException in der Generierung von signierten APK
- 2. Android - Erstellen von signierten APK mit Proguard
- 3. SHA256withRSA Zeichen von PHP verify von JAVA
- 4. RESTful Verify Password Service
- 5. LDAP-Verbindung Problem mit selbst signierten Zertifikat
- 6. php SSL3_GET_SERVER_CERTIFICATE: Zertifikat verify
- 7. Sicherstellen der Hygiene in Abwesenheit von Verify
- 8. arangodb verify _users password
- 9. Moq Verify mit Objektparameter
- 10. Spezifikation von signierten Binärdateien unter OS X
- 11. Extract Signatur-Details von signierten PDF
- 12. LinqPad Zugriff auf Interna von signierten Assemblies
- 13. ld-linux --verify exit codes
- 14. Verify Facebook X-Hub-Signatur
- 15. git verify-Pack und Powershell
- 16. Arbeiten notify/verify ohne Senden?
- 17. Verify Anruf auf statische Methode
- 18. Simple Injector Verify() im Produktionscode
- 19. Verify Pixel mit Koord (iOS)
- 20. Berechnen eines zweidimensionalen signierten Distanzfeldes
- 21. mac verify failure using Knoten mit ssl Zertifikat
- 22. "JNLPSigningException [Validierung des Signierens der Startdatei fehlgeschlagen]" beim Starten eines von der Vorlage signierten JNLP
- 23. Konvertieren von jar-Datei
- 24. Aufrufklasse von jar
- 25. exclude jar von Kompilieren
- 26. erhalten Datei von JAR
- 27. Richtlinien für die Verwendung von Assert versus Verify
- 28. Moq Verify ohne es - welche Art von vergleichen?
- 29. auf der Suche nach C# Entsprechung von php password-verify()
- 30. Verify die Version von Ubuntu läuft in einem Docker-Container
Sie können nicht. Jede Person, die Ihr signiertes Glas besitzt, kann es zerlegen und daher herausfinden, wie solche Anfragen gefälscht werden können. Sie können es durch statische oder dynamische Verschleierung schwieriger machen, aber das erhöht nur die Hürde ein wenig. Wenn Sie andererseits versuchen, sich gegen Angreifer ohne Zugang zu Ihrem Jar zu verteidigen, kann dieser Jar einen privaten Schlüssel enthalten, der zum Signieren der Rest-Service-Anfragen verwendet wird. – mkl
Was ist das zugrunde liegende Problem, das Sie versuchen zu lösen? Wenn Sie Ihre Frage bearbeiten, um sie einzuschließen, können wir möglicherweise eine alternative Lösung vorschlagen. – merlin2011
@ mkl ist richtig. Jeder Dienst, der öffentlich erreichbar ist und für den jemand einen Client erhalten kann, kann reverse-engineered sein, und mit dem Client in der Hand gibt es keine Möglichkeit, jemanden daran zu hindern, Ihren privaten Schlüssel oder einen anderen Geheimhaltungsmechanismus zu finden. Versuchen Sie sich im Allgemeinen nicht zu sehr darum zu kümmern, welche * Anwendung * Anfragen an Ihren Dienst sendet; Sorgen Sie sich, was * Benutzer * ihnen sendet. Wenn ich eingeloggt und authentifiziert bin, sollte es keinen Unterschied machen, ob ich Ihren benutzerdefinierten Client oder Telnet verwende. –