Dies ist ein verschlüsselter Chat über die Befehlszeile! Es wurde verwendet, um die gesamte Benutzeroberfläche zu erstellen. Ich wollte ein Client-Server-Beispiel für einen Chat machen, wenn auch die Nachrichten von Ende zu Ende verschlüsselt würden.
Nach Annahme der Verbindung eines neuen Clients ist die erste Nachricht, die der Server erhält, der public key des Clients, der später an alle Hörstecke (Clients) gesendet wird. Die Nachrichten werden zunächst mit public keys des protokollierten Clients verschlüsselt, bevor sie an den Server zurückgesandt werden. Andere Hörkunden werden ihre Nachrichten nicht verkürzen, indem sie ihren private key verwenden.
Das Projekt besteht aus 3 Hauptteilen,
In den folgenden GIFs wurde das rechte Terminal mit Telnet (Installation unter Linux) geöffnet, um zu zeigen, wie eine Person, die den Client nicht verwendet, die Nachrichten von Benutzern den Client dieses Projekts sehen.
| Offizieller Kunde | Mit Telnet verbunden |
|---|---|
![]() | ![]() |
Das folgende Beispiel zeigt zwei Clients, da die Nachrichten von Ende zu Ende verschlüsselt sind.
Offizieller Kunde A | Offizieller Kunde B |
|---|---|
![]() | ![]() |
Conntact mich auf Twitter | Ein Problem erstellen
Was kann ich sagen, ich liebe Ncurses und ich wollte ein Beispiel für etwas tun, das Verschlüsselung erforderte. Die Idee eines TCP -Chats war das erste, was mir in den Sinn kam.
Dies war nur ein Projekt, das aus Neugier hergestellt wurde. Die Verwendung, die Sie diesem Tool geben könnten, ist auf eigenes Risiko.
Diese Befehlszeile TCP -Chat wurde mit NCurses erstellt.
Der Server wird ständig ausgeführt und könnte auch für einen Himbeer -PI in Kombination mit NGROK verwendet werden. Auf diese Weise können Sie Ihren Chat mit anderen Kollegen öffnen und eine sichere Art der Nachrichten haben.
Der Kunde hat eine nette Benutzeroberfläche, die am Terminal verwendet werden kann. Der Client stellt zuerst eine Verbindung zum Server her und sendet seinen public key an den Server. Der Server ruft diese Informationen ab und sendet sie mit diesem Client an alle Benutzer.
Jeder Kunde verschlüsselt dann seine Nachrichten mit den public keys der anderen Hörkunden. Der Server erhält dann jede entsprechende Nachricht des Hörclients und sendet sie entsprechend.
Sobald die verschlüsselte Nachricht auf der Seite der anderen Clients empfangen wurde, ist sie mit dem private key des Benutzers unverschlüsselt.
Der Kunde erneuert seine wichtigsten Paare jedes Mal, wenn Sie ihn starten.
Sobald die Installation durchgeführt wurde,
Gemäß der Standardeinstellung beträgt der Port, zu dem der Server eine Verbindung herstellt, 54000
Starten des Servers (falls Sie den Server ausführen)
source silver_serverDen Kunden starten
source silver_sniffle -a 127.0.0.1 54000 127.0.0.1 und der Port 54000 können beispielsweise in Ihre eigene TCP -Adresse geändert werden, wenn Sie eine haben. Natürlich müsste der Server an dieser Adresse ausgeführt werden.
sudo apt install libncurses5-dev libncursesw5-devsudo apt-get install libssl-devsudo apt-get -y install cmake Klonen Sie dieses Repository so,
git clone https://github.com/edghyhdz/silver-sniffle.git Einmal im Root Project Ordner silver-sniffle ,
# Lets start by creating the build directory
mkdir build && cd build
# cmake that guy
cmake ..
# Finally
source install.sh install.sh wird die endgültige Installation ausführen, die eine Terimal -Verknüpfung namens silver_server und silver_sniffle erstellt.
Die endgültige Projektordnerstruktur ist die folgende,
.
├── ...
├── build # Directory were project was built
│ ├──silver_server # Server executable
│ ├── executable # Client executable location
│ │ └─── silver_sniffle # Client executable
│ └── certificates # key pair location
└── ...
Wenn alles in Ordnung gemacht wurde, sollten Sie den Server durch Folgendes ausführen können.
source silver_serverSobald der Server in Betrieb ist, sollten Sie den Client so ausführen können.
source silver_sniffle -a 127.0.0.1 54000Sie können den Kunden jederzeit an eine andere Adresse umleiten.
Die relevantesten Referenzen sind die folgenden.
Weitere Referenzen finden Sie im Code.
Edgar Hernandez