
लिनक्स मेमोरी क्रिप्टोग्राफिक कुंजी निकालने वाला

गुण:
निर्भरताएं:
सीमाएं:
आपने शायद पहले ही मेरे AES-REX प्रोजेक्ट के बारे में सुना या उसका उपयोग किया होगा जो लगभग वही काम करता है, लेकिन अलग तरीके से। जहाँ AES-REX रजिस्टरों से क्रिप्टोग्राफ़िक कुंजियाँ निकालता है, वहीं CryKeX उन्हें अस्थायी मेमोरी (RAM) से निकालेगा।
कुछ कार्य DRAM के भीतर क्रिप्टोग्राफ़िक कुंजियों की सुरक्षा के विषय पर पहले ही प्रकाशित हो चुका है। मूल रूप से, हमें ऐसी चीज़ खोजने की आवश्यकता है जो एक कुंजी (एंट्रोपिक और विशिष्ट लंबाई) जैसी दिखती हो और फिर उसके चारों ओर मेमोरी संरचना (C डेटा प्रकार) का विश्लेषण करके इसकी प्रकृति की पुष्टि करें।
विचार यह है कि किसी प्रक्रिया की लाइव मेमोरी को डंप करें और संभावित कुंजियाँ खोजने के लिए उन तकनीकों का उपयोग करें, क्योंकि मेमोरी मैपिंग नहीं बदलती। शुक्र है, इस उद्देश्य के लिए उपकरण मौजूद हैं।
स्क्रिप्ट न केवल पहले से चल रही प्रक्रियाओं में इंजेक्ट करने में सक्षम है, बल्कि नई प्रक्रियाओं को अलग से लॉन्च करके और उसके तुरंत बाद इंजेक्ट करके उन्हें रैप भी कर सकती है। यह इसे सिस्टम पर लगभग किसी भी प्रक्रिया/बाइनरी से कुंजियाँ डंप करने में सक्षम बनाता है।
बेशक, मेमोरी तक पहुँच कर्नेल द्वारा सीमित है, जिसका अर्थ है कि आपको अभी भी किसी प्रक्रिया के लिए विशेषाधिकारों की आवश्यकता होगी।
लिनक्स डिस्क एन्क्रिप्शन (LUKS) इस समस्या को कम करने के लिए एंटी-फोरेंसिक तकनीक का उपयोग करता है, हालांकि, पूरी मेमोरी से कुंजियाँ निकालना अभी भी संभव है।
Firefox ब्राउज़र किसी तरह समान मेमोरी प्रबंधन का उपयोग करता है, इसलिए यह प्रभावित नहीं होता प्रतीत होता है।
PGP/GPG के लिए भी यही बात लागू होती है।
दुर्भाग्य से, Ansible जैसे समाधान प्रभावित होते हैं।
आप eForensics से अधिक विवरण पढ़ सकते हैं।
निर्भरताएँ स्थापित करना:
sudo apt install gdb aeskeyfind rsakeyfind || echo 'have you heard about source compiling?'
OpenSSL AES कुंजियों के लिए एक इंटरैक्टिव उदाहरण:
openssl aes-128-ecb -nosalt -out testAES.enc
एक पासवर्ड दो बार दर्ज करें, फिर कुछ टेक्स्ट और समाप्त करने से पहले:
CryKeX.sh openssl
अंत में, Ctrl+D तीन बार दबाएँ और परिणाम जाँचें।
OpenSSL RSA कुंजियाँ:
openssl genrsa -des3 -out testRSA.pem 2048
जब पासफ़्रेज़ के लिए संकेत दिया जाए:
CryKeX.sh openssl
सत्यापित करें:
openssl rsa -noout -text -in testRSA.pem
SSH से कुंजियाँ निकालते हैं:
echo 'Ciphers [email protected]' >> /etc/ssh/sshd_config
ssh user@server
CryKeX.sh ssh
OpenVPN से:
echo 'cipher AES-256-CBC' >> /etc/openvpn/server.conf
openvpn yourConf.ovpn
sudo CryKeX.sh openvpn
TrueCrypt/VeraCrypt भी प्रभावित है: VeraCrypt में "veracrypt" फ़ाइल चुनें, पासवर्ड "pass" से माउंट करें और:
sudo CryKeX.sh veracrypt
क्रोमियम-आधारित ब्राउज़र (गूगल को धन्यवाद):
CryKeX.sh chromium
CryKeX.sh google-chrome
इस तथ्य के बावजूद कि Firefox स्पष्ट रूप से प्रभावित नहीं है, Tor Browser Bundle अभी भी टनलिंग के कारण संवेदनशील है:
CryKeX.sh tor
जैसा कि कहा, आप प्रक्रियाओं को भी रैप कर सकते हैं:
apt install libssl-dev
gcc -lcrypto cipher.c -o cipher
CryKeX.sh cipher
wrap
cipher
बेझिझक योगदान दें और अन्य अनुप्रयोगों का परीक्षण करें।
"दृढ़ता की कुंजी प्रतिरोध द्वारा बंद सभी दरवाजे खोलती है"
John Di Lemme