Ini adalah obrolan terenkripsi melalui baris perintah! Itu dilakukan dengan menggunakan ncurses untuk membangun seluruh antarmuka pengguna. Saya ingin melakukan contoh klien-server dari obrolan, juga pesan akan dienkripsi dari ujung ke ujung.
Setelah menerima koneksi klien baru, pesan pertama yang dimiliki server adalah public key dari klien, yang kemudian dikirim ke semua soket mendengarkan (klien). Pesan -pesan tersebut pertama kali dienkripsi menggunakan public keys klien yang dicatat sebelum dikirim ke kembali ke server. Klien mendengarkan lainnya akan tidak terenkripsi pesan mereka dengan menggunakan private key mereka.
Proyek ini terdiri dari 3 bagian utama,
Pada GIF di bawah ini, terminal yang tepat dibuka menggunakan telnet (instal di Linux) untuk menampilkan bagaimana seseorang yang tidak menggunakan klien akan melihat pesan dari pengguna menggunakan klien proyek ini.
| Klien resmi | Terhubung menggunakan telnet |
|---|---|
![]() | ![]() |
Contoh di bawah ini menampilkan dua klien, adalah pesan dienkripsi dari ujung ke ujung.
Klien resmi A | Klien resmi B |
|---|---|
![]() | ![]() |
Conntact saya di Twitter | Buat masalah
Apa yang bisa saya katakan, saya suka ncurses dan saya ingin melakukan contoh sesuatu yang membutuhkan enkripsi, gagasan obrolan TCP adalah hal pertama yang terlintas dalam pikiran saya.
Ini hanya proyek yang terbuat dari rasa ingin tahu, penggunaan yang mungkin Anda berikan pada alat ini adalah risiko Anda sendiri.
Obrolan TCP baris perintah ini dibangun menggunakan ncurses.
Server berjalan terus -menerus, dan juga dapat digunakan pada Raspberry Pi dalam kombinasi dengan Ngrok. Dengan melakukannya, Anda dapat membuka obrolan dengan rekan -rekan lain dan memiliki cara pengiriman pesan yang aman.
Klien memiliki UI yang bagus untuk digunakan di terminal. Klien pertama -tama terhubung ke server dan mengirimkan public key ke server. Server mengambil informasi ini dan mengirimkannya ke semua pengguna menggunakan klien ini.
Setiap klien kemudian akan mengenkripsi pesan mereka dengan public keys klien mendengarkan lainnya. Server kemudian akan mendapatkan setiap pesan klien mendengarkan yang sesuai dan mengirimkannya sesuai.
Setelah pesan terenkripsi diterima di sisi klien lain, tidak dienkripsi menggunakan private key pengguna.
Klien memperbarui pasangan kuncinya setiap kali Anda memulainya.
Setelah instalasi selesai,
Sesuai default, port tempat server terhubung ke 54000
Memulai server (jika Anda menjalankan server)
source silver_serverMemulai klien
source silver_sniffle -a 127.0.0.1 54000 127.0.0.1 dan port 54000 dapat diubah misalnya ke alamat TCP Anda sendiri jika Anda memilikinya. Tentu saja, server harus berjalan di alamat itu.
sudo apt install libncurses5-dev libncursesw5-devsudo apt-get install libssl-devsudo apt-get -y install cmake Klon repositori ini seperti begitu,
git clone https://github.com/edghyhdz/silver-sniffle.git Setelah berada di dalam folder proyek root silver-sniffle ,
# Lets start by creating the build directory
mkdir build && cd build
# cmake that guy
cmake ..
# Finally
source install.sh install.sh akan menjalankan instalasi terakhir yang akan membuat pintasan terimal bernama silver_server dan silver_sniffle .
Struktur folder proyek akhir adalah sebagai berikut,
.
├── ...
├── build # Directory were project was built
│ ├──silver_server # Server executable
│ ├── executable # Client executable location
│ │ └─── silver_sniffle # Client executable
│ └── certificates # key pair location
└── ...
Jika semuanya dilakukan dengan baik, Anda harus dapat menjalankan server dengan melakukan yang berikut,
source silver_serverSetelah server aktif dan berjalan, Anda harus dapat menjalankan klien seperti itu,
source silver_sniffle -a 127.0.0.1 54000Anda selalu dapat mengarahkan ulang klien ke alamat lain.
Referensi yang paling relevan adalah sebagai berikut,
Lebih banyak referensi dapat ditemukan di dalam kode.
Edgar Hernandez