Ceci est un chat crypté via la ligne de commande! Cela a été fait à l'aide de NCURSES pour construire toute l'interface utilisateur. Je voulais faire un exemple de serveur client de chat, si les messages seraient cryptés de bout en bout.
En acceptant la connexion d'un nouveau client, le premier message que le serveur reçoit est la public key du client, qui est ensuite envoyée à toutes les prises d'écoute (clients). Les messages sont d'abord cryptés à l'aide public keys du client enregistré avant d'être envoyés pour retourner au serveur. D'autres clients à écouter désarrêteront leurs messages en utilisant leur private key .
Le projet se compose de 3 pièces principales,
Dans les GIF ci-dessous, le bon terminal a été ouvert à l'aide de Telnet (Installer sur Linux) pour montrer comment une personne n'utilisant pas le client verrait les messages des utilisateurs à l'aide du client de ce projet.
| Client officiel | Connecté à l'aide de Telnet |
|---|---|
![]() | ![]() |
L'exemple ci-dessous met en valeur deux clients, si les messages sont cryptés de bout en bout.
Client officiel A | Client officiel B |
|---|---|
![]() | ![]() |
Connectacte-moi sur Twitter | Créer un problème
Que puis-je dire, j'aime les ncurses et je voulais faire un exemple de quelque chose qui nécessitait un cryptage, l'idée d'un chat TCP a été la première chose qui m'est venue à l'esprit.
Ce n'était qu'un projet en curiosité, l'utilisation que vous pourriez donner à cet outil est à vos propres risques.
Ce chat TCP de ligne de commande a été construit à l'aide de NCurses.
Le serveur s'exécute constamment et pourrait également être utilisé sur un Raspberry Pi en combinaison avec Ngrok. Ce faisant, vous pouvez ouvrir votre chat à d'autres pairs et avoir une façon sécurisée de messagerie.
Le client a une belle interface utilisateur à utiliser sur le terminal. Le client se connecte d'abord au serveur et envoie sa public key au serveur. Le serveur récupère ces informations et les envoie à tous les utilisateurs à l'aide de ce client.
Chaque client cryptera ensuite ses messages avec les public keys des autres clients à écouter. Le serveur recevra ensuite chaque message du client d'écoute correspondant et l'enverra en conséquence.
Une fois le message crypté reçu du côté des autres clients, il n'est pas crypté en utilisant la private key de l'utilisateur.
Le client renouvelle ses paires clés à chaque fois que vous le démarrez.
Une fois l'installation terminée,
Selon défaut, le port auquel le serveur se connecte est 54000
Démarrage du serveur (au cas où vous exécutez le serveur)
source silver_serverDémarrer le client
source silver_sniffle -a 127.0.0.1 54000 127.0.0.1 et le port 54000 pourrait être modifié par exemple dans votre propre adresse TCP si vous en avez un. Bien sûr, le serveur devrait fonctionner sur cette adresse.
sudo apt install libncurses5-dev libncursesw5-devsudo apt-get install libssl-devsudo apt-get -y install cmake Cloner ce référentiel comme tel,
git clone https://github.com/edghyhdz/silver-sniffle.git Une fois à l'intérieur du dossier Root Project silver-sniffle ,
# Lets start by creating the build directory
mkdir build && cd build
# cmake that guy
cmake ..
# Finally
source install.sh install.sh exécutera l'installation finale qui créera un raccourci térimal nommé silver_server et silver_sniffle .
La structure du dossier du projet final est la suivante,
.
├── ...
├── build # Directory were project was built
│ ├──silver_server # Server executable
│ ├── executable # Client executable location
│ │ └─── silver_sniffle # Client executable
│ └── certificates # key pair location
└── ...
Si tout a été fait, vous devriez pouvoir exécuter le serveur en faisant ce qui suit,
source silver_serverUne fois le serveur en cours d'exécution, vous devriez pouvoir exécuter le client comme ainsi,
source silver_sniffle -a 127.0.0.1 54000Vous pouvez toujours recourir le client à une autre adresse.
Les références les plus pertinentes sont les suivantes,
Plus de références peuvent être trouvées dans le code.
Edgar Hernandez