Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CQPToolkit — إطار عمل للتحكم في أجهزة QKD وإدارة المفاتيح المتناظرة. انظر [صفحة المشروع هنا](https://qcomms.gitlab.io/cqptoolkit/) | Kitploit
أدوات/GitLabGitLab/qcomms/cqptoolkit
أمان الأنظمة المدمجةأدوات التشفير/فك التشفيرأمن الشبكاتالتشفيرأمن الأجهزة
GitLabqcomms/cqptoolkit

CQPToolkit

إطار عمل للتحكم في أجهزة QKD وإدارة المفاتيح المتناظرة. انظر [صفحة المشروع هنا](https://qcomms.gitlab.io/cqptoolkit/)

عرض المستودع
6113منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

CQP Tool kit

يوفر النظام مكونات متنوعة لدمج QKD في نظام أمني. وهو مكتوب بلغة C++11 ولكنه يستخدم واجهات [GRPC][] مما يسمح بالدمج مع الكثير من اللغات المختلفة.

بداية سريعة

لتشغيل البرنامج محليًا، إما:

  • تنزيل وتثبيت حزم دبيان لنظام أوبونتو أو
  • استنساخ المصدر مع ضمان تحديث الوحدات الفرعية وبناء البرنامج محليًا

لاستنساخ المصدر بما في ذلك الوحدات الفرعية:```bash git clone --recurse-submodules [email protected]:QComms/cqptoolkit.git

> إذا قمت بالاستنساخ دون استخدام `--recurse-submodules`، يمكن تحديث الوحدات الفرعية عن طريق تشغيل `git submodule update --init` من داخل المجلد المصدر.

فيما يلي قائمة بالتبعيات التي تحتاجها لتجميع المشروع (يرجى القراءة أدناه لمزيد من التفاصيل حول التثبيت):```bash
sudo apt install pkg-config ca-certificates file build-essential cmake ninja-build libusb-1.0-0-dev libcurl4-openssl-dev \
	libcrypto++-dev libcap-dev uuid-dev libssl-dev libsqlite3-dev libprotobuf-dev libgrpc++-dev \
	libssl-dev protobuf-compiler protobuf-compiler-grpc checkinstall
mkdir build-cqptoolkit
cd build-cqptoolkit
cmake -G Ninja ../cqptoolkit && ninja

اختبار سريع

من مجلد البناء، لتشغيل موقعين (على نفس الكمبيوتر المحلي) كل منهما مزود بجهاز QKD ، قم أولاً بتشغيل الموقع "A" عن طريق بدء site agent وتوصيل Alice "dummy driver" به: (إذا تم تثبيت الملفات الثنائية، فاحذف المسارات إلى الأوامر من التعليمات.)```bash ./src/Tools/SiteAgentRunner/SiteAgentRunner -p 8000 & ./src/Drivers/DummyQKDDriver/DummyQKDDriver -r localhost:8000 -a

Please provide the Markdown content to translate.```bash
./src/Tools/SiteAgentRunner/SiteAgentRunner -p 8001 &
./src/Drivers/DummyQKDDriver/DummyQKDDriver -r localhost:8001 -b

لن يبدأ هذا في إنتاج المفتاح فورًا حيث أن هذا النظام مصمم ليكون تحت سيطرة نظام إدارة، يجب إنشاء الاتصال باستخدام الأمر SiteAgentCtl.

  • أولاً، يمكنك التحقق من قائمة الأجهزة المتاحة باستخدام:```bash ./src/Tools/SiteAgentCtl/SiteAgentCtl -d -c localhost:8000
والذي يجب أن ينتج شيئًا مشابهًا لهذا افتراضيًا، إذا تم إطلاق *SiteAgentRunner* و *DummyQKDDriver* دون تحديد وسيطة ملف سلسلة تكوين JSON:```json
{
 "url": "<hostname>:8000",
 "devices": [
  {
   "config": {
    "id": "dummyqkd__0__16_alice",
    "kind": "dummyqkd"
   },
   "controlAddress": "<hostname>:34219"
  }
 ]
}

و يجب أن يُنتج المنفذ 8001 شيئًا مشابهًا لـ```json { "url": ":8001", "devices": [ { "config": { "id": "dummyqkd__0__16_bob", "side": "Bob", "kind": "dummyqkd" }, "controlAddress": ":38367" } ] }

- الآن، يمكن الآن إجراء الاتصال عن طريق الاستدعاء:```bash
./src/Tools/SiteAgentCtl/SiteAgentCtl -c localhost:8000 -j localhost:8001

سيؤدي هذا إلى إنشاء قفزة واحدة من موقع إلى آخر، ويمكن تعريف مسارات أكثر تعقيدًا باستخدام الخيار -a مع سلسلة JSON تحدد المسار.

بعد بضع ثوانٍ، يجب أن يكون هناك مفتاح متاح يمكن اختباره عن طريق طلب مفتاح.

ملاحظة: يجب أن تكون المعلمة -k هي عنوان URL الموضح في تفاصيل الموقع الثاني، وليس "localhost:8001"```bash ./src/Tools/SiteAgentCtl/SiteAgentCtl -c localhost:8000 -k hostname:8001

يمكن إيقاف الرابط باستخدام أمر unjoin:```bash
./src/Tools/SiteAgentCtl/SiteAgentCtl -c localhost:8000 -u localhost:8001

لاحظ أن المفتاح لا يزال متاحًا على الرغم من توقف التوليد، طالما أن عوامل الموقع قيد التشغيل. يمكن طلبه باستخدام أمر طلب المفتاح نفسه أعلاه.

مثال التشفير

بعد تشغيل عوامل الموقع وبرامج التشغيل على نفس الكمبيوتر المحلي كما هو موضح أعلاه وبعد بدء رابط تبادل المفاتيح، يمكن أيضًا اختبار ميزات التشفير.

  • أولاً، ابدأ جانبًا واحدًا من "VPN" على البوب الذي سيستمع على المنفذ 9010 ويتصل بمخزن مفاتيح بوب:``` ./src/Tools/QTunnelServer/QTunnelServer -p 9010 --keystore-url=hostname:8001
الآن ابدأ جانب Alice من VPN، مع تعريف النفق المراد إنشاؤه. سيتم فتح منفذين، واحد لكل جانب على 9000 و9001، أي شيء يدخل هذه المنافذ سيتم تشفيره، ونقله إلى الجانب الآخر، وفك تشفيره وإخراجه على المنفذ الآخر.```
./src/Tools/QTunnelServer/QTunnelServer --keystore-url=`hostname`:8000 --remote=localhost:9010 --start-node=tcpsrv://0.0.0.0:9000 --end-node=tcpsrv://0.0.0.0:9001

أي شيء يستخدم اتصالات tcp يمكنه بعد ذلك استخدام هذا المنفذ، netcat هو برنامج بسيط سيرسل البيانات عبر المنافذ، ابدأ واحدًا على جانب واحد:``` nc localhost 9000

وواحد على الآخر:```
nc localhost 9001

أي شيء يُكتب في أحد الجانبين سيظهر على الجانب الآخر عند الضغط على Enter. فحص الحزم التي تمر عبر المنفذين 9000 و 9001 باستخدام أداة مثل Wireshark سيُظهر البيانات المشفرة ومعرف المفتاح المستخدم.

يمكن إنشاء أشكال أخرى من الاتصال بدلاً من tcpserv:

| مثال | الوصف | | ============================= | ===================================================== | | tcpserv://0.0.0.0:1234 | يتم إنشاء منفذ استماع على المنفذ 1234 | | tcp://127.0.01:1234 | يتم إنشاء اتصال بمنفذ TCP 1234 على المضيف المحلي | | udp://0.0.0.0:1234 | يتم إرسال حزم UDP من هذا المنفذ | | tun://192.168.101.1/?netmask=255.255.255.0 | يتم إنشاء جهاز نفق على مستوى IP بعنوان IP | | tap://192.168.101.1/?netmask=255.255.255.0 | يتم إنشاء جهاز نقر على مستوى الإيثرنت | | eth://eth0/?level=tcp | إنشاء مأخذ توصيل خام، يمكن أن يكون المستوى tcp أو ip أو eth. |

التقدم

الميزات المخطط لها والمكتملة

  • برامج تشغيل الأجهزة
    • برامج تشغيل التوافق لـ IDQ Clavis 2
      • ردود فعل الجهاز
    • برامج تشغيل التوافق لـ IDQ Clavis 3
    • جهاز الفضاء الحر المحمول بجامعة بريستول
    • جهاز على شريحة بجامعة بريستول
  • المعالجة اللاحقة
    • المحاذاة للأنظمة غير المتزامنة
    • الغربلة للأنظمة المتزامنة
    • تصحيح الأخطاء
    • تضخيم الخصوصية
  • إدارة المفاتيح متعددة المواقع (وكلاء الموقع)
    • التحكم بأجهزة QKD لتبادل المفاتيح
    • توفير مفتاح مشترك مسبقًا على واجهة قياسية: cqp::remote::IKey
      • يمكن تقييد المفاتيح للاستخدام من قبل مستخدمين محددين
    • إنشاء مفتاح غير مباشر بناءً على XOR لمفاتيح من مواقع أخرى
    • التكوين عبر ملف الإعدادات، وسيطات سطر الأوامر أو واجهة الشبكة.
    • اكتشاف وكلاء الموقع تلقائيًا باستخدام [Zeroconf][]
    • حل المفاتيح عبر الروابط بين المواقع الموثوقة (القضية رقم 8)
  • إدارة الشبكة لوكلاء الموقع
    • يمكن التحكم بالمواقع عبر الواجهات
    • التحكم الثابت/الديناميكي بوكلاء الموقع لإنشاء مفاتيح بين المواقع بناءً على قواعد
  • وحدة تحكم النفق المشفر (مثل stunnel)
    • يستخدم واجهة IKey للحصول على المفاتيح المشتركة.
    • إعداد أنفاق التشفير باستخدام
      • مأخذ TCP/UDP
      • جهاز TUN/TAP (المعروف أيضًا باسم VPN)
      • واجهة فعلية مخصصة
    • التكوين عبر ملف الإعدادات، وسيطات سطر الأوامر أو واجهة الشبكة.
    • اكتشاف وكلاء الموقع ووحدات تحكم النفق تلقائيًا باستخدام [Zeroconf][]
  • منصات متعددة
    • لينكس
    • ويندوز (انظر القضية رقم 2)

نأمل أن يكون هذا المشروع مفيدًا لكل من العمل البحثي العلمي والمشاريع الكبيرة. يمكن العثور على مزيد من التفاصيل حول المشروع في هذه الورقة.

للمساهمة في هذا المشروع، يُرجى الاطلاع على ملف المساهمة.

التثبيت

النظام يعمل حاليًا على لينكس - ويندوز مخطط له في المستقبل. أسهل طريقة حاليًا هي البناء من المصدر

صورة Docker

توجد صورة Docker جاهزة للتشغيل في [سجل gitlab][]. يمكنك تشغيلها باستخدام sudo docker run -it --rm registry.gitlab.com/qcomms/cqptoolkit/runtime. أضف أمرًا في النهاية لتشغيل شيء مباشرة، على سبيل المثال لتشغيل محاكاة لتوليد مفاتيح QKD باستخدام QKDSim:```bash sudo docker run -it --rm registry.gitlab.com/qcomms/cqptoolkit/runtime AlignmentTests

### Ubuntu 18.04+
تنزيل الأداة