ist es möglich POST / GET Daten an TLSv1.1 + gesicherte Seite ohne curl und wget?

8

Ich bin in dieser sehr unglücklichen Situation:

  • Meine Website verwendet veraltete Software (Sicherheitspatches werden angewendet) mit OpenSSL 0.9.8o 01 Jun 2010, die TLSv1.1 / 1.2 nicht unterstützt
  • Ich habe auch ein Zahlungs-Gateway, das PCI-DSS-konform ist, daher ist SSL und früher TLS dort deaktiviert

Meine Website verwendet, um Daten mit Payment-Gateway auszutauschen, aber wie TLSv1.0 gelöscht wird, kann ich nicht mehr PHP cURL-Bibliothek oder sogar file_get_contents() (oder wget / lynx / curl über Shell)

verwenden

Gibt es eine Problemumgehung, irgendeine Option, wie TLSv1.1 + gesicherter Server verbunden wird, ohne eingebaute Bibliotheken zu verwenden?

Ich weiß, dass in PHP einige Klassen existieren, wie phpseclib , was ein SSH-Client ist, ideal für Leute, die SSH2 Modul

Gibt es so etwas für PHP? Gibt es eine Möglichkeit, eine Verbindung zu meinem Gateway herzustellen?

Bis jetzt ist meine beste Idee Verbindung zu Gateway durch andere Server (mit aktualisierter Software)

    
Peter 15.05.2015, 08:41
quelle

6 Antworten

0

Ich habe eine andere Lösung gefunden.

Auf dem sicheren Server richte ich zwei VirtualHosts ein - 443 für TLSv1.2 und ein anderes für meine Website nur mit TLSv1.0 Unterstützung

Weitere Informationen hier: Ссылка

Danke für alle Antworten.

    
Peter 26.05.2015, 08:26
quelle
4

Sobald ich das Dienstprogramm stunnel für meinen Nicht-TLS-Client verwendet habe, zitiere von der Website:

  

Stunnel ist ein Proxy, der TLS-Verschlüsselungsfunktionen zu vorhandenen Clients und Servern ohne Änderungen im Programmcode hinzufügt. Die Architektur ist auf Sicherheit, Portabilität und Skalierbarkeit (einschließlich Lastenausgleich) optimiert und eignet sich daher für große Bereitstellungen.

    
dafyk 22.05.2015 08:29
quelle
3
  

Gibt es eine Problemumgehung, irgendeine Option, wie TLSv1.1 + gesicherter Server verbunden wird, ohne eingebaute Bibliotheken zu verwenden?

Ich kann mir fünf Workarounds vorstellen:

1) Es ist möglich (aber schwierig), mehrere Versionen von OpenSSL (oder sogar Curl) installiert zu haben. Sie können sogar LD_PRELOAD_LIBRARY verwenden, um eine vorhandene binäre Use-Bibliothek von einem anderen Ort aus zu erstellen. Ich denke, das ist ein chaotischer Weg, es zu tun.

2) Dies wäre mit Docker wirklich einfach. Leider benötigt es einen modernen Kernel, so dass Sie es wahrscheinlich nicht auf Ihrem Server installieren können. Sie könnten jedoch ein moderneres Betriebssystem installieren und Ihren Server dann in einem Docker-Container mit dem älteren Betriebssystem installieren. Aber das kann ungefähr genauso viel Arbeit sein wie das Verschieben Ihrer Website auf ein neueres Betriebssystem.

3) Anstelle von Docker verwenden Sie einfach chroot . Verwenden Sie in einer neueren Box "ldd", um alle Abhängigkeiten zu finden. Kopiere sie (plus Curl) in eine Chroot. Kopiere dieses Verzeichnis auf deinen Server und starte "chrooot dir curl". Die Binärdatei wird die neueren Bibliotheken sehen und funktionieren. Dies dauert nur ein paar Minuten, um jemanden einzurichten, der weiß, was er tut.

4) Verwenden Sie eine statisch verknüpfte Version von curl, in die ein neueres OpenSSL kompiliert wurde.

5) Verwenden Sie ein Programm, das OpenSSL nicht verwendet. Zum Beispiel verwenden einige go (lang) Programme ihre eigene Verschlüsselung und kompilieren zu einer statischen Binärdatei. Zum Beispiel: Ссылка

Die ersten 2 sind in Ihrem Setup vielleicht etwas unpraktisch, aber eines der letzten 3 funktioniert.

    
BraveNewCurrency 25.05.2015 07:15
quelle
2

Ich mochte Ihre ursprüngliche Idee der Proxys zu einem anderen Server, außer dass Sie die Sicherheitsbeschränkungen umgehen, die durch das Gateway auferlegt werden, und wenn Sie mit Zahlungsinformationen umgehen, ist das wahrscheinlich keine Idee.

Wenn Sie jedoch eine Vagrant-Instanz auf Ihrem eigenen Server mit aktualisierten Bibliotheken ausführen können, können Sie die unsichere Anfrage an die Vagrant-Instanz auf localhost weiterleiten und die Box und dann nicht die Vagrant-Instanz verlassen Aktualisierte Bibliotheken führen die sichere Kommunikation mit Ihrem Gateway durch.

    
Scott Jungwirth 20.05.2015 21:05
quelle
1

Ich wollte Stunnel vorschlagen. ABER dafyc gut bemerkt.

Diese PCI-Beschränkungen sind nicht implementiert, um Leute zu verlangsamen (nur .. lol). Sie existieren zum Schutz.

Sie werden Ihr Problem mit Stunnel lösen. Aber warum nicht den Website-Server aktualisieren?

Sie haben das SSL-Outdate ausfindig gemacht, aber als Server sind mehrere andere Bugs verfügbar.

Wenn sie eine andere Schwäche erforschen und Root-Zugriff erhalten, werden sie ein Stunnel-Passwort haben, um herauszufinden, was in der Pipe ist.

Das scheint also nicht gut genug zu sein, um die Zuverlässigkeit zu gewährleisten, die PCI von Ihnen verlangt.

    
LeoPucciBr 22.05.2015 20:53
quelle
1

Ich habe bereits eine Antwort gepostet, aber als ich Kommentare gelesen habe, kann man keine Tools auf dem Server installieren. Sie können PHP-eigene Funktionen namens PHP verwenden Streams . Dies ist ein Codebeispiel für die alte twitter-API:

%Vor%     
dafyk 25.05.2015 08:26
quelle

Tags und Links