
TCP/UDP सममित एन्क्रिप्शन टनल रैपर
CryptHook एक मॉड्यूलर कार्यान्वयन है जो मौजूदा अनुप्रयोगों को सममित ब्लॉक सिफर एन्क्रिप्शन के साथ सुरक्षित करता है। यह नेटवर्क संचार के लिए आधार सिस्टम कॉल send/sendto और recv/recvfrom को हुक करके काम करता है। Crypthook उन किसी भी मौजूदा अनुप्रयोग के साथ काम करेगा जो इन सिस्टम कॉल्स पर निर्भर करता है।
CryptHook 256 बिट कुंजी का उपयोग करके GCM मोड में AES पर निर्भर करता है। कुंजियाँ PBKDF2 का उपयोग करके पासफ़्रेज़ से उत्पन्न की जाती हैं। IV का निर्माण मौके पर ही यादृच्छिक डेटा बाइट्स का उपयोग करके किया जाता है, और ओवरहेड को न्यूनतम रखने के लिए प्राप्त करने वाले छोर पर इनिशियलाइज़ेशन वेक्टर का पुनर्निर्माण करने के लिए उसी कुंजी व्युत्पत्ति तकनीक का उपयोग किया जाता है। प्रत्येक पैकेट का प्रमाणीकरण भी सत्यापित किया जाता है।
यदि आप इसे किसी भी उचित रूप से सुरक्षित उद्देश्य के लिए उपयोग करने जा रहे हैं तो निम्नलिखित विशेषताओं को बदला जाना चाहिए। सभी कॉन्फ़िगरेशन को 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
Server
$ LD_PRELOAD=./crypthook.so CH_KEY=donthackmebro ncat -l -p 5000
Client
$ LD_PRELOAD=./crypthook.so CH_KEY=donthackmebro ncat server 5000