
غلاف نفق تشفير متماثل TCP/UDP
CryptHook هو تطبيق معياري لتأمين التطبيقات الحالية باستخدام تشفير الكتل المتناظر. يعمل عن طريق ربط استدعاءات النظام الأساسية للاتصال الشبكي send/sendto و recv/recvfrom. سيعمل Crypthook مع أي تطبيق حالي يعتمد على هذه الاستدعاءات النظامية.
يعتمد CryptHook على AES في وضع GCM باستخدام مفتاح 256 بت. يتم توليد المفاتيح من عبارات المرور باستخدام PBKDF2. يتم إنشاء IVs بشكل ديناميكي باستخدام وحدات بايت عشوائية من البيانات، ونفس تقنية اشتقاق المفتاح لإعادة بناء متجه التهيئة على جهة الاستقبال لتقليل العبء إلى الحد الأدنى. كما يتم التحقق من مصادقة كل حزمة.
يجب تغيير الخصائص التالية إذا كنت ستستخدم هذا لأي شيء آمن بشكل معقول. يمكن تغيير جميع الإعدادات في ملف crypthook.c باستخدام التعريفات التالية #defines.
#define KEY_SALT "changeme"
#define IV_SALT "changeme"
#define ITERATIONS 1000
#define PASSPHRASE "Hello NSA"
يتم استخدام KEY_SALT و ITERATIONS في عملية اشتقاق المفتاح لتحويل عبارة المرور النصية العادية إلى مفتاح 256 بت.
يتم استخدام IV_SALT و ITERATIONS في عملية اشتقاق IV لتحويل 8 بايت من البيانات العشوائية إلى IV كامل لاستخدامه مع الخوارزمية.
PASSPHRASE هي ببساطة عبارة المرور الافتراضية إذا لم يتم توفيرها عبر متغير البيئة CH_KEY.
$ make
الخادم
$ LD_PRELOAD=./crypthook.so CH_KEY=donthackmebro ncat -l -p 5000
العميل
$ LD_PRELOAD=./crypthook.so CH_KEY=donthackmebro ncat server 5000