これは、コマンドラインを介した暗号化されたチャットです! NCURSESを使用して、ユーザーインターフェイス全体を構築しました。私はチャットのクライアントサーバーの例をやりたかったのですが、メッセージが端から端まで暗号化されることもあれば。
新しいクライアントの接続を受け入れると、サーバーが取得する最初のメッセージはクライアントからのpublic keyであり、後ですべてのリスニングソケット(クライアント)に送信されます。メッセージは、サーバーに戻るために送信される前に、ログに記録されたクライアントのpublic keysを使用して最初に暗号化されます。他のリスニングクライアントはprivate keyを使用してメッセージを暗号化しません。
プロジェクトは3つの主要な部品で構成されています。
以下のGIFでは、Telnet(Linuxにインストール)を使用して右ターミナルが開かれ、クライアントを使用していない人がこのプロジェクトのクライアントを使用しているユーザーからのメッセージが表示される方法を紹介しました。
| 公式クライアント | Telnetを使用して接続します |
|---|---|
![]() | ![]() |
以下の例は、メッセージがエンドツーエンドから暗号化されているという2つのクライアントを示しています。
公式クライアントA | 公式クライアントB |
|---|---|
![]() | ![]() |
Twitterで私をconntact |問題を作成します
私は言えば、私はncursesが大好きで、暗号化を必要とする何かの例をやりたかったのですが、TCPチャットのアイデアは私の頭に浮かぶ最初のものでした。
これは単なる好奇心で作られたプロジェクトであり、このツールに提供する可能性のある使用はあなた自身の責任です。
このコマンドラインTCPチャットは、ncursesを使用して構築されました。
サーバーは絶えず実行されており、ngrokと組み合わせてRaspberry Piで使用することもできます。そうすることで、他の仲間とチャットを開き、メッセージングの安全な方法を持つことができます。
クライアントには、端末で使用される素敵な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 、たとえば、1つを持っている場合、独自のTCPアドレスに変更できます。もちろん、サーバーはそのアドレスで実行している必要があります。
sudo apt install libncurses5-dev libncursesw5-devsudo apt-get install libssl-devを開きますsudo 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という名前のテリマルショートカットを作成する最終インストールを実行します。
最終的なプロジェクトフォルダー構造は次のとおりです。
.
├── ...
├── 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いつでもクライアントを別のアドレスに再ルーティングできます。
最も関連性の高い参照は次のとおりです。
コード内にはその他の参照があります。
エドガー・ヘルナンデス