這是通過命令行加密的聊天!它是使用ncurs構建整個用戶界面完成的。我想做一個聊天的客戶端示例,也將從端到頭進行加密。
在接受新客戶端的連接後,服務器收到的第一條消息是客戶端的public key ,後來將其發送到所有偵聽插座(客戶端)。首先使用已記錄客戶端的public keys對消息進行加密,然後再將其發送回服務器。其他聆聽客戶將使用其private key未加密他們的消息。
該項目由3個主要部分組成,
在下面的GIF中,使用telnet(在Linux上安裝)打開了右終端,以展示不使用客戶端的人如何使用此項目客戶端查看用戶的消息。
| 官方客戶 | 使用telnet連接 |
|---|---|
![]() | ![]() |
下面的示例展示了兩個客戶端,這些消息是端到端加密的。
官方客戶A | 官方客戶B |
|---|---|
![]() | ![]() |
在Twitter上定位我|創建一個問題
我能說什麼,我喜歡ncurses,我想做一個需要加密的事情的例子,TCP聊天的想法是我想到的第一件事。
這只是一個因好奇而製成的項目,您可能會給該工具提供的用途自負。
此命令行TCP聊天是使用ncurses構建的。
服務器正在不斷運行,也可以在Raspberry Pi上與Ngrok結合使用。通過這樣做,您可以與其他同行打開聊天,並具有安全的消息傳遞方式。
客戶端具有一個不錯的UI,可在終端上使用。客戶端首先連接到服務器並將其public key發送到服務器。服務器檢索此信息,並使用此客戶端將其發送給所有用戶。
然後,每個客戶將使用其他偵聽客戶端的public keys加密他們的消息。然後,服務器將獲取每個相應的偵聽客戶端的消息並相應地發送。
一旦在其他客戶端接收到加密消息後,它就不會使用用戶的private key加密。
每次啟動時,客戶端都會更新其密鑰對。
安裝完成後,
根據默認,服務器連接到的端口為54000
啟動服務器(如果您正在運行服務器)
source silver_server啟動客戶
source silver_sniffle -a 127.0.0.1 54000 127.0.0.1和端口54000可以將其更改為您自己的TCP地址,如果您有一個地址。當然,服務器必須在該地址上運行。
sudo apt install libncurses5-dev libncursesw5-devsudo apt-get install libssl-devsudo apt-get -y install cmake 像這樣克隆這個存儲庫,
git clone https://github.com/edghyhdz/silver-sniffle.git一旦進入根項目文件夾silver-sniffle ,
# Lets start by creating the build directory
mkdir build && cd build
# cmake that guy
cmake ..
# Finally
source install.sh install.sh將運行最終安裝,該安裝將創建一個名為silver_server和silver_sniffle的Terimal快捷方式。
最終項目文件夾結構是以下內容,
.
├── ...
├── build # Directory were project was built
│ ├──silver_server # Server executable
│ ├── executable # Client executable location
│ │ └─── silver_sniffle # Client executable
│ └── certificates # key pair location
└── ...
如果一切都很好,您應該可以通過執行以下操作來運行服務器
source silver_server服務器啟動並運行後,您應該能夠像這樣運行客戶端,
source silver_sniffle -a 127.0.0.1 54000您始終可以將客戶端重新列為另一個地址。
最相關的參考文獻是以下
在代碼中可以找到更多參考。
埃德加·埃爾南德斯(Edgar Hernandez)