Wie stelle ich mithilfe von FTPS eine Datenverbindung mit derselben TLS-Sitzung her?
Die Aufrechterhaltung derselben TLS-Sitzung sowohl für Steuerungs- als auch für Datenverbindungen ist eine entscheidende Sicherheitsmaßnahme bei FTPS . Einige FTP-Server erzwingen diese Anforderung und verursachen Probleme, wenn die Datenverbindung versucht, eine separate TLS-Sitzung aufzubauen.
In Apache Commons Net kann dieses Problem aufgrund der Standardkonfiguration auftreten, die eine neue Sitzung für jeden Host voraussetzt /port-Kombination. Um dieses Problem zu beheben, ziehen Sie die folgenden Maßnahmen in Betracht:
-
Überprüfen Sie die Serverkonformität: Stellen Sie sicher, dass der FTPS-Server die gleichen TLS-Sitzungsanforderungen erzwingt. Überprüfen Sie die Serverdokumentation oder verwenden Sie zur Bestätigung einen Client wie FileZilla.
-
Apache Commons Net anpassen: Implementieren Sie einen benutzerdefinierten FTPSClient, der die Methode „_prepareDataSocket_“ überschreibt. Anleitungen zum Einrichten des TLS-Sitzungscachings und der Wiederverwendung finden Sie im FTPClient.java-Code von Cyberduck.
-
Spring Integration DefaultFtpsSessionFactory überschreiben: Erstellen Sie eine benutzerdefinierte Unterklasse von DefaultFtpsSessionFactory und überschreiben Sie „createClientInstance()“ "-Methode, um Ihre geänderte FTPSClient-Instanz zurückzugeben.
-
Deaktivieren Sie die erweiterte Master-Secret-Erweiterung (JDK 8u161 und höher): Fügen Sie Ihrem Code die folgende Zeile hinzu, um die erweiterte Master-Secret-Erweiterung zu deaktivieren Kompatibilitätsprobleme verursachen:
System.setProperty("jdk.tls.useExtendedMasterSecret", "false");
-
Verwenden Sie das Feld sessionByHostAndPort: Verwenden Sie für neuere Java-Versionen das Feld „sessionsByHostAndPort“ anstelle von „sessionHostPortCache“, um auf den TLS-Sitzungscache zuzugreifen.
-
SDK-Einschränkungen auf Android umgehen: Auf Android-Geräten müssen Sie möglicherweise umgehen SDK-Einschränkungen für den Zugriff auf private Felder mithilfe von Reflektion.
Durch die Implementierung dieser Maßnahmen können Sie Apache Commons Net ermöglichen, die TLS-Sitzung für die Datenverbindung wiederzuverwenden und so die Kompatibilität mit FTPS-Servern sicherzustellen, die dies erfordern.
Das obige ist der detaillierte Inhalt vonWie kann ich dieselbe TLS-Sitzung für Datenverbindungen in FTPS mit Apache Commons Net wiederverwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn