هذه دردشة مشفرة عبر سطر الأوامر! تم ذلك باستخدام ncurses لإنشاء واجهة المستخدم بأكملها. كنت أرغب في القيام بمثال خادم عميل للدردشة ، كما لو كانت الرسائل مشفرة من النهاية إلى النهاية.
عند قبول اتصال عميل جديد ، فإن الرسالة الأولى التي يحصل عليها الخادم هي public key من العميل ، والذي يتم إرساله لاحقًا إلى جميع مآخذ الاستماع (العملاء). يتم تشفير الرسائل لأول مرة باستخدام public keys للعميل المسجلة قبل إرسالها إلى الخادم. سيؤدي عملاء الاستماع الآخرين إلى إلغاء رسائلهم باستخدام private key .
يتكون المشروع من 3 أجزاء رئيسية ،
في GIFs أدناه ، تم فتح المحطة اليمنى باستخدام Telnet (تثبيت على Linux) لعرض كيف سيرى الشخص الذي لا يستخدم العميل الرسائل من المستخدمين الذين يستخدمون عميل هذا المشروع.
| العميل الرسمي | متصل باستخدام telnet |
|---|---|
![]() | ![]() |
يعرض المثال أدناه عميلًا ، هل تم تشفير الرسائل من النهاية إلى النهاية.
العميل الرسمي A | العميل الرسمي B |
|---|---|
![]() | ![]() |
الصلاحية لي على تويتر | إنشاء مشكلة
ما الذي يمكنني قوله ، أحب ncurses وأردت أن أفعل مثالًا على شيء يتطلب التشفير ، كانت فكرة دردشة TCP هي أول ما يظهر في ذهني.
كان هذا مجرد مشروع مصنوع بدافع الفضول ، والاستخدام الذي قد تعطيه لهذه الأداة على مسؤوليتك الخاصة.
تم تصميم خط الدردشة TCP لسطر الأوامر باستخدام ncurses.
يعمل الخادم باستمرار ، ويمكن استخدامه أيضًا على Raspberry Pi مع NGROK. من خلال القيام بذلك ، يمكنك فتح الدردشة مع أقرانهم الآخرين ولديك طريقة آمنة للرسائل.
لدى العميل واجهة مستخدم لطيفة لاستخدامها في المحطة. يتصل العميل أولاً بالخادم ويرسل 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 التثبيت النهائي الذي سيقوم بإنشاء اختصار terimal يدعى 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
└── ...
إذا تم كل شيء على allright ، فيجب أن تكون قادرًا على تشغيل الخادم عن طريق القيام بما يلي ،
source silver_serverبمجرد تشغيل الخادم ، يجب أن تكون قادرًا على تشغيل العميل مثل ذلك ،
source silver_sniffle -a 127.0.0.1 54000يمكنك دائمًا إعادة توجيه العميل إلى عنوان آخر.
المراجع الأكثر صلة هي ما يلي ،
يمكن العثور على مزيد من المراجع داخل الكود.
إدغار هيرنانديز