आधुनिक नेटवर्किंग में, डेटा ट्रांसमिशन को सुरक्षित करना सर्वोपरि है, और डेटा गोपनीयता और सुरक्षा सुनिश्चित करने के लिए सिक्योर सॉकेट लेयर (SSL) और ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) व्यापक रूप से उपयोग किए जाने वाले प्रोटोकॉल हैं। हालाँकि, ऐसे उदाहरण हैं जहाँ आपको समस्या निवारण, फोरेंसिक विश्लेषण या नेटवर्क मॉनिटरिंग के लिए एन्क्रिप्टेड ट्रैफ़िक का विश्लेषण करने की आवश्यकता हो सकती है। यह तकनीकी लेख आपको Wireshark और tcpdump, दो शक्तिशाली नेटवर्क विश्लेषण टूल का उपयोग करके SSL/TLS ट्रैफ़िक को डिक्रिप्ट करने के बारे में मार्गदर्शन करेगा। हम कवर करेंगे कि Wireshark और tcpdump क्या हैं, SSL और TLS एन्क्रिप्शन की व्याख्या करें, और प्री-मास्टर सीक्रेट कुंजी या RSA प्राइवेट कुंजी का उपयोग करके SSL ट्रैफ़िक को डिक्रिप्ट करने का तरीका प्रदर्शित करें।
वायरशार्क और टीसीपीडम्प क्या हैं? #
Wireshark #
वायरशार्क एक ओपन-सोर्स नेटवर्क प्रोटोकॉल एनालाइज़र है जो उपयोगकर्ताओं को कंप्यूटर नेटवर्क पर चल रहे ट्रैफ़िक को कैप्चर करने और इंटरेक्टिव रूप से ब्राउज़ करने में सक्षम बनाता है। यह आपको डेटा को बारीक स्तर पर निरीक्षण करने की अनुमति देता है, जिससे प्रोटोकॉल और संचारित किए जा रहे डेटा पैकेट में दृश्यता मिलती है। वायरशार्क का व्यापक रूप से नेटवर्क समस्या निवारण, प्रोटोकॉल विकास और सुरक्षा विश्लेषण के लिए उपयोग किया जाता है।
टीसीपीडम्प #
tcpdump एक कमांड-लाइन पैकेट विश्लेषक उपकरण है जो नेटवर्क ट्रैफ़िक को कैप्चर करता है और इसे वास्तविक समय में प्रदर्शित करता है। यह लाइव नेटवर्क से डेटा कैप्चर करने के लिए अत्यधिक कुशल है, जिससे आप बाद में विश्लेषण के लिए पैकेट को फ़ाइल (जिसे कैप्चर फ़ाइल के रूप में जाना जाता है) में सहेज सकते हैं। जबकि tcpdump में Wireshark के ग्राफ़िकल इंटरफ़ेस का अभाव है, यह त्वरित विश्लेषण, पैकेट फ़िल्टर करने और दूरस्थ सिस्टम पर डेटा एकत्र करने के लिए शक्तिशाली है।
एसएसएल एन्क्रिप्शन क्या है? #
SSL (सिक्योर सॉकेट लेयर) नेटस्केप द्वारा इंटरनेट के माध्यम से निजी दस्तावेज़ों को प्रसारित करने के लिए विकसित एक प्रोटोकॉल है। SSL एन्क्रिप्शन एल्गोरिदम का उपयोग करके यह सुनिश्चित करता है कि क्लाइंट (जैसे, एक वेब ब्राउज़र) और सर्वर के बीच भेजा गया डेटा किसी भी व्यक्ति के लिए अपठनीय है जो ट्रांसमिशन को बाधित करता है।
TLS (ट्रांसपोर्ट लेयर सिक्योरिटी) SSL का उत्तराधिकारी है और अधिक सुरक्षित है। जबकि TLS तकनीकी रूप से SSL से अलग है, SSL शब्द का इस्तेमाल अक्सर दोनों प्रोटोकॉल को संदर्भित करने के लिए किया जाता है।
SSL/TLS दो सिस्टम के बीच एक सुरक्षित संचार चैनल स्थापित करके काम करता है। SSL/TLS एन्क्रिप्शन में मुख्य अवधारणाएँ शामिल हैं:
- सममित एन्क्रिप्शन: डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए एक ही कुंजी का उपयोग किया जाता है।
- असममित एन्क्रिप्शन: दो कुंजियों (सार्वजनिक और निजी) का उपयोग किया जाता है; सार्वजनिक कुंजी से एन्क्रिप्ट किए गए डेटा को केवल संबंधित निजी कुंजी से ही डिक्रिप्ट किया जा सकता है।
- प्रमाणपत्र: SSL/TLS सर्वर और कभी-कभी क्लाइंट की पहचान सत्यापित करने के लिए प्रमाणपत्रों का उपयोग करता है।
- हैंडशेक: वह प्रक्रिया जिसमें क्लाइंट और सर्वर एक सुरक्षित कनेक्शन स्थापित करते हैं, कुंजियों का आदान-प्रदान करते हैं, तथा एन्क्रिप्शन विधियों पर सहमत होते हैं।
प्री-मास्टर सीक्रेट कुंजी के साथ SSL को डिक्रिप्ट करना #
प्री-मास्टर सीक्रेट कुंजी SSL/TLS हैंडशेक प्रक्रिया में एक महत्वपूर्ण घटक है। इस कुंजी का उपयोग सत्र कुंजी उत्पन्न करने के लिए किया जाता है, जिसका उपयोग नेटवर्क पर स्थानांतरित वास्तविक डेटा को एन्क्रिप्ट करने के लिए किया जाता है। प्री-मास्टर सीक्रेट कुंजी प्राप्त करके, आप सत्र डेटा को डिक्रिप्ट कर सकते हैं।
प्री-मास्टर सीक्रेट कुंजी के साथ SSL को डिक्रिप्ट करने के बुनियादी चरण #
प्री-मास्टर गुप्त कुंजी का उपयोग करके SSL ट्रैफ़िक को डिक्रिप्ट करने के लिए, इन चरणों का पालन करें:
1. लॉग फ़ाइल पर्यावरण चर सेट करें
2. tcpdump के साथ कैप्चर करें और लॉग फ़ाइल को सत्यापित करें
3. SSL डिक्रिप्शन के लिए Wireshark को कॉन्फ़िगर करें
लॉग फ़ाइल पर्यावरण चर सेट करें #
की स्थापना SSLKEYLOGFILE विंडोज पर #
विंडोज सिस्टम पर, आपको प्री-मास्टर सीक्रेट कुंजियों को लॉग फ़ाइल में संग्रहीत करने के लिए एक पर्यावरण चर सेट करना होगा। इस चर का नाम है SSLKEYLOGFILE, वह पथ परिभाषित करता है जहां ये कुंजियाँ सहेजी जाती हैं।
1. पर राइट क्लिक करके प्रारंभ करें मेरा कंप्यूटर और चयन गुण सिस्टम मेनू खोलने के लिए मेनू से चयन करें।
2. पर क्लिक करें उन्नत सिस्टम सेटिंग्स सिस्टम गुण विंडो खोलने के लिए बाईं ओर की सूची में क्लिक करें।
3. में उन्नत टैब पर, "पर्यावरण चर" बटन पर क्लिक करें।
4. के अंतर्गत उपयोगकर्ता चर, क्लिक करें नया… बटन पर क्लिक करें। आप इस वैरिएबल को नीचे भी बना सकते हैं सिस्टम चर यदि आप सिस्टम पर सभी उपयोगकर्ताओं के लिए SSL कुंजियाँ लॉग करना चाहते हैं। हालाँकि, आमतौर पर इसे अपनी प्रोफ़ाइल तक ही सीमित रखना सबसे अच्छा होता है।
5. में चर का नाम क्षेत्र, दर्ज करें SSLKEYLOGFILE.
में चर मान फ़ील्ड में, वह पथ दर्ज करें जहाँ आप लॉग फ़ाइल सहेजना चाहते हैं। वैकल्पिक रूप से, आप क्लिक कर सकते हैं फाइल खोजो… फ़ाइल पिकर का उपयोग करके पथ का चयन करने के लिए.
यदि आप इसे सिस्टम-वाइड वैरिएबल के रूप में सेट कर रहे हैं, तो सुनिश्चित करें कि फ़ाइल सभी उपयोगकर्ताओं के लिए सुलभ है, या वाइल्डकार्ड का उपयोग करें। उदाहरण के लिए, आप उपयोग कर सकते हैं %USERPROFILE%\AppData\ssl-keys.log or सी:\ssl-keys.log .
6. एक बार जब आप कर लें, तो क्लिक करें OK परिवर्तनों को लागू करने और अगले चरणों के साथ आगे बढ़ने के लिए।
की स्थापना SSLKEYLOGFILE लिनक्स या मैक पर #
लिनक्स और मैक पर, आपको सेट करना होगा SSLKEYLOGFILE पर्यावरण चर का उपयोग निर्यातउसी टर्मिनल में, आप निष्पादित कर सकते हैं टीसीपीडम्प और जब SSL कनेक्शन का पता चलेगा तो यह संकेतित कुंजी लॉग फ़ाइल उत्पन्न करेगा।
root@noid-01:~# export SSLKEYLOGFILE=~/.ssl-key.log root@noid-01:~# tcpdump ...
स्थायी पर्यावरण चर कॉन्फ़िगरेशन बनाए रखने के लिए, उपयोगकर्ता प्रोफ़ाइल को टेक्स्ट एडिटर जैसे से संपादित करें नैनोलिनक्स के लिए, यह चर संग्रहीत है ~ / .bashrc, और मैक पर, यह में बनाया गया है ~ / .bash_profile. फिर, जोड़ें निर्यात के लिए आदेश SSLKEYLOGFILE फ़ाइल के अंत में variable डालें और परिवर्तनों को सहेजें।
tcpdump के साथ कैप्चर करें और लॉग फ़ाइल को सत्यापित करें #
लॉग फ़ाइल निर्माण का परीक्षण करने के लिए, ब्राउज़र खोलने का प्रयास करें, टीसीपीडम्प या यह पुष्टि करने के लिए कि फ़ाइल ठीक से बनाई गई है, HTTPS सर्वर पर कर्ल कमांड लॉन्च करें।
उदाहरण के लिए, उसी टर्मिनल में जहां पर्यावरण चर बनाए गए थे, टीसीपीडम्प ट्रैफ़िक को कैप्चर करने के लिए और HTTPS सेवा के लिए एक कर्ल को डिक्रिप्ट करने के लिए लॉन्च किया जाएगा:
root@noid-01:~# export SSLKEYLOGFILE=~/.ssl-key.log root@noid-01:~# tcpdump -i कोई भी पोर्ट 443 -w ~/capture.pcap & root@noid-01:~# curl https://(फिर, tcpdump कमांड बंद करें)
सत्यापित करें कि लॉग फ़ाइल ~/.ssl-कुंजी.लॉग और यातायात पर कब्जा ~/कैप्चर.pcap उत्पन्न होते हैं। अंत में, वायरशार्क के साथ एन्क्रिप्टेड ट्रैफ़िक को देखने के लिए अंतिम चरण देखें।
अगर आप खोलें एसएसएल-कुंजी.लॉग फ़ाइल में आपको कुछ इस तरह दिखाई देगा:
root@noid-01:~# cat ~/.ssl-key.log CLIENT_HANDSHAKE_TRAFFIC_SECRET 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a db6f3d27b40b7c8e10ed415281b39e45ca6ef2b59468f943dbe6e81e1f82e0f0 SERVER_HANDSHAKE_TRAFFIC_SECRET 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a d819660e194d9439e7152ceac2a439b41584afbeb5d719663cecb3c63b5c2eb1 CLIENT_TRAFFIC_SECRET_0 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a 71d4806141cb1b247c1d1f3f7747a804fcc5e06c4192d8f53fc763a27b92316c SERVER_TRAFFIC_SECRET_0 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a 2ca17b0f7ff708fb3001be17a1c85163219221a4595462415e9e9e6653daf1fa EXPORTER_SECRET 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a 3f74b0cbe802d3e3dd3b5f6dee4114f928ec936a0cd388643d146cfb606f62a4
SSL डिक्रिप्शन के लिए Wireshark को कॉन्फ़िगर करें #
एक बार जब कैप्चर सिस्टम प्री-मास्टर कुंजियों को लॉग कर लेता है, तो आप वायरशार्क में SSL ट्रैफ़िक को डिक्रिप्ट करने के लिए कैप्चर किए गए पैकेट के साथ कुंजी लॉग फ़ाइल का उपयोग कर सकते हैं।
1. कुंजी लॉग और कैप्चर फ़ाइलों को उस सिस्टम में अपलोड करें जहां Wireshark स्थापित है।
2. Wireshark के साथ ट्रैफ़िक कैप्चर फ़ाइल खोलें.
3. SSL प्रोटोकॉल कॉन्फ़िगर करें. पर क्लिक करें संपादित करें, फिर चुनें प्राथमिकताएँप्राथमिकताएं संवाद खुल जाएगा, जिसमें बाईं ओर आइटमों की सूची दिखाई देगी। प्रोटोकॉल अनुभाग पर जाएं, नीचे स्क्रॉल करें और क्लिक करें एसएसएल. में एसएसएल प्रोटोकॉल विकल्प, लेबल वाले फ़ील्ड का पता लगाएं (प्री)-मास्टर-सीक्रेट लॉग फ़ाइल नाम. आपके द्वारा पहले सेट की गई लॉग फ़ाइल को ब्राउज़ करें, या पथ को सीधे इस फ़ील्ड में पेस्ट करें।
4. कॉन्फ़िगरेशन लागू करें। सेटिंग करने के बाद (प्री)-मास्टर-सीक्रेट लॉग फ़ाइल नामक्लिक करें, OK अपने परिवर्तनों को सहेजने और Wireshark पर वापस लौटने के लिए। अब आप कैप्चर किए गए ट्रैफ़िक को डिक्रिप्ट करने के लिए तैयार हैं। जब आप एन्क्रिप्टेड डेटा फ़्रेम चुनते हैं, तो पैकेट बाइट व्यू चेक करें। व्यू के नीचे, आपको एक टैब दिखाई देना चाहिए डिक्रिप्टेड SSL डेटा दूसरों के बीच में।
यदि सत्र डेटा अभी भी अपठनीय दिखाई देता है और आप कोई HTML नहीं देख पा रहे हैं, तो यह GZIP संपीड़न के कारण हो सकता है, जिसका उपयोग आमतौर पर Apache जैसे वेब सर्वर द्वारा किया जाता है। इस मामले में, क्लिक करें असम्पीडित निकाय निकाय टैब, जो केवल तब उपलब्ध होता है जब SSL डिक्रिप्शन सक्षम होता है। यहां, आप साइट के असम्पीडित स्रोत कोड को देख सकते हैं, जैसे कि सादे पाठ में डिफ़ॉल्ट अपाचे पेज का शीर्षक तत्व।
SSL को डिक्रिप्ट करने के लिए RSA कुंजी का उपयोग करना #
वायरशार्क एक ऐसी सुविधा प्रदान करता है जो आपको SSL ट्रैफ़िक को डिक्रिप्ट करने के लिए अपनी RSA कुंजी अपलोड करने की अनुमति देता है, लेकिन व्यवहार में, RSA कुंजी डिक्रिप्शन पुराना हो गया है।
उपयोग में यह गिरावट परफेक्ट फॉरवर्ड सीक्रेसी (PFS) को अपनाने के कारण है, जिसने पारंपरिक RSA कुंजी डिक्रिप्शन को अप्रचलित बना दिया है। PFS के साथ, डिफी-हेलमैन का उपयोग करके बातचीत किए गए सत्र सीधे RSA कुंजी पर निर्भर नहीं होते हैं। इसके बजाय, वे एक बार की कुंजी उत्पन्न करते हैं जो केवल RAM में संग्रहीत होती है और डिस्क पर कुंजी का उपयोग करके एन्क्रिप्ट की जाती है।
यदि आपने पहले ट्रैफ़िक को डिक्रिप्ट करने के लिए RSA कुंजी का उपयोग किया था और पाया कि यह अब काम नहीं करता है, तो संभवतः लक्ष्य मशीन डिफी-हेलमैन कुंजी एक्सचेंज का उपयोग कर रही है। आप Wireshark में SSL लॉगिंग सक्षम करके इसकी पुष्टि कर सकते हैं।
लॉगिंग सक्षम करने के लिए:
1. पर क्लिक करें संपादित करें टूलबार मेनू में और चुनें प्राथमिकताएँ.
2. इसका विस्तार करें प्रोटोकॉल बाईं ओर अनुभाग पर जाएं, नीचे स्क्रॉल करें और क्लिक करें एसएसएल.
3. क्लिक करके अपनी SSL लॉग फ़ाइल के लिए स्थान निर्धारित करें ब्राउज बटन.
लॉगिंग सक्षम होने के बाद, अपने SSL-सक्षम होस्ट के साथ एक सत्र कैप्चर करें और लॉग की जाँच करें। TLS हैंडशेक वार्ता फ़्रेम देखें; आपको संभवतः सिफर स्ट्रिंग में DHE (या ECDHE, एलिप्टिक-कर्व कुंजियों के लिए) प्रविष्टि दिखाई देगी, जो यह दर्शाती है कि डिफी-हेलमैन कुंजी एक्सचेंज उपयोग में हैं।
यदि आपको यह संदेश दिखाई देता है कि मास्टर सीक्रेट नहीं मिल पाया है, तथा RSA कुंजी डिक्रिप्शन विफल हो गया है, तो आपको डिक्रिप्शन के लिए प्री-मास्टर सीक्रेट विधि पर स्विच करना होगा।
जैसे-जैसे पीएफएस अधिक व्यापक होता जा रहा है, विशेष रूप से टीएलएस 1.3 के आगमन के साथ, पारंपरिक आरएसए कुंजी डिक्रिप्शन अप्रचलित हो गया है और अब इस पर भरोसा नहीं किया जाना चाहिए।
अधिक जानिए #
TLS के लिए SSLKEYLOGFILE प्रारूप #
RSI एसएसएलकीलॉगफ़ाइल प्रारूप एक टेक्स्ट फ़ाइल है जिसका उपयोग TLS कनेक्शन को डिक्रिप्ट करने के लिए प्री-मास्टर सीक्रेट कुंजियों को संग्रहीत करने के लिए किया जाता है। फ़ाइल UTF-8 में एन्कोड की गई है, जिसमें प्रत्येक पंक्ति में एक लेबल, एक क्लाइंट रैंडम मान और स्वयं सीक्रेट द्वारा पहचाना जाने वाला एक सीक्रेट होता है, जो सभी रिक्त स्थान द्वारा अलग किए जाते हैं। प्रारूप विभिन्न लाइन एंडिंग्स (CRLF, CR, LF) और से शुरू होने वाली पंक्तियों को स्वीकार करता है # टिप्पणियों के रूप में माना जाता है।
TLS 1.3 के लिए, कई लेबल कुंजी शेड्यूल के विभिन्न चरणों के अनुरूप होते हैं, जैसे CLIENT_HANDSHAKE_TRAFFIC_SECRET (क्लाइंट_हैंडशेक_ट्रैफिक_सीक्रेट) और SERVER_TRAFFIC_SECRET_0. TLS 1.2 और पहले के संस्करणों के लिए, क्लाइंट_रैंडम लेबल पहचानता है मास्टर गुप्त।
सुरक्षा संबंधी बातें:
इस तक पहुंच एसएसएलकीलॉगफ़ाइल TLS ट्रैफ़िक के डिक्रिप्शन की अनुमति देता है, जो एक महत्वपूर्ण सुरक्षा जोखिम पैदा करता है। अनधिकृत पहुँच या विशेषाधिकार वृद्धि को रोकने के लिए उचित पहुँच नियंत्रण आवश्यक हैं। लॉगिंग को केवल अधिकृत उपयोगकर्ताओं द्वारा ही सक्षम किया जाना चाहिए, और सख्त फ़ाइल अनुमतियाँ लागू की जानी चाहिए। लॉग किए गए रहस्य न केवल डिक्रिप्शन की अनुमति देते हैं, बल्कि हमलावरों को सक्रिय कनेक्शन में डेटा को संशोधित या इंजेक्ट करने में भी सक्षम कर सकते हैं, और कुछ मामलों में, एंडपॉइंट्स का प्रतिरूपण या संदेशों को जाली बना सकते हैं।
दो-तरफ़ा SSL हैंडशेक कैसे काम करता है? #
दो-तरफ़ा SSL हैंडशेक सर्वर और क्लाइंट दोनों को प्रमाणित करता है। प्रक्रिया इस प्रकार होती है:
1. क्लाइंट हैलो: क्लाइंट सर्वर को "क्लाइंट हैलो" संदेश भेजकर हैंडशेक आरंभ करता है। इस संदेश में क्लाइंट के समर्थित सिफर सुइट्स और TLS संस्करण संगतताएँ शामिल हैं।
2. सर्वर हैलोसर्वर "सर्वर हैलो" संदेश के साथ प्रतिक्रिया करता है, जिसमें सर्वर का सार्वजनिक प्रमाणपत्र और क्लाइंट के प्रमाणपत्र के लिए अनुरोध शामिल होता है।
3. क्लाइंट प्रमाणपत्र सत्यापन: क्लाइंट सर्वर के प्रमाणपत्र को सत्यापित करता है। यदि यह वैध है, तो क्लाइंट अपना प्रमाणपत्र सर्वर को वापस भेजता है।
4. सर्वर प्रमाणपत्र सत्यापन: सर्वर क्लाइंट के प्रमाणपत्र की जाँच करता है। यदि क्लाइंट का प्रमाणपत्र वैध है, तो सत्र स्थापना आगे बढ़ती है, जिससे दोनों पक्षों के बीच सुरक्षित संचार संभव होता है।
क्या निष्क्रिय रूप से सूँघे गए SSL/TLS ट्रैफ़िक को डिक्रिप्ट करना संभव है? #
हां, निष्क्रिय रूप से सूँघे गए SSL/TLS ट्रैफ़िक को डिक्रिप्ट करना संभव है, लेकिन ऐसा करने के लिए आपको RSA कुंजी की आवश्यकता होगी। यह कुंजी उचित प्राधिकरण के साथ वैध साधनों के माध्यम से प्राप्त की जा सकती है या, कम नैतिक रूप से, "मैन-इन-द-मिडल" हमले का उपयोग करके इसे रोककर प्राप्त की जा सकती है।