Ich mache erste, grobe Konzepte einiger Ideen für Bitcoin-fähige Dienste, die ich im Sinn habe.
Eine Sache, die ich mich frage, ist, gibt es einen Best-Practice-Ansatz zum Ausführen von Bitcoin auf einem anderen Server, der als Backend für einen bestimmten anderen Server fungiert?
Ich dachte an sowas:
Ich habe einen vServer A und einen einfachen PHP-Webspace auf einem anderen Host B .
A führt meinen Bitcoin-Deamon aus und erlaubt nur RPC-Aufrufe von Bs IP.
B führt seine RPC-Aufrufe an A in einem Server-Prozess durch, der nicht von einem Client/Website-Besucher ausgelöst wurde.
Wie sicher würden Sie ein solches Szenario gewährleisten? Ist es möglich, dass Knoten, die mit meinem vServer A verbunden sind, anhand der Transaktionen den Zweck des Servers erkennen und versuchen, ihn anzugreifen?
Selbst wenn sie dies tun, müssten sie einen MiM-Angriff verwenden, da A nur die IP von B akzeptiert.
Was kann ich noch tun, um die Kommunikation sicherer zu machen? HTTP-Authentifizierung, SSL?
Ist es möglich, dass Knoten, die mit meinem vServer A verbunden sind, anhand der Transaktionen den Zweck des Servers erkennen und versuchen, ihn anzugreifen?
Ja, wenn sie genug vom Netzwerk sehen können, können sie herausfinden, ob Sie eine Transaktion veranlassen oder nur weiterleiten. Es ist jedoch einfacher herauszufinden, dass Sie RPC durch einen Port-Scan ausführen.
Es gibt Möglichkeiten, um zu verhindern, dass ein Port-Scan dies findet, z. B. die Verwendung von iptables (Ctrl-F 'außer'). Seien Sie vorsichtig, denn nur die Verwendung DROP
wird Angreifern immer noch sagen, dass dieser Port etwas Besonderes ist.
Wenn Sie auf beiden Maschinen SSH-Zugriff haben, können Sie einfach einen SSH-Tunnel von Maschine B zu A erstellen und Port 8332 durch ihn weiterleiten. Auf diese Weise ist das Verhalten so, als wäre Bitcoin auf beiden Maschinen installiert, der Datenverkehr zwischen den beiden Maschinen wird mit SSH verschlüsselt und Bitcoin muss nur auf die Loopback-Schnittstelle lauschen und wäre nicht vom Netzwerk aus zugänglich.
Ich verstehe die anfängliche Logik, Bitcoin & Wallets auf einen separaten Server zu legen, aber denken Sie darüber nach ... wenn Ihr Webserver kompromittiert wird, spielt es keine Rolle, wo sich Ihr Bitcoin befindet ... es ist auch kompromittiert.
Beispiel; Bitcoind ist auf Server A, Webserver ist auf Server B. Webserver B sendet Anfragen -> an Bitcoind Server A . . Antworten -> zurück zu Webserver A.
Wenn ich also Ihren Webserver B kompromittiere, kann ich ihn anweisen, eine Nachricht an den Bitcoin-Server zurückzusenden, die lautet: sendtoaddress [myhackeraddress], und das war's. Geld weg.
Gündon