कोल्ड बूट अटैक: Difference between revisions
No edit summary |
No edit summary |
||
| Line 26: | Line 26: | ||
=== बिटलॉकर === | === बिटलॉकर === | ||
बिटलॉकर अपने पूर्व निर्धारित कंप्यूटर की व्यवस्था के प्रारूप में एक विश्वसनीय प्लेटफ़ॉर्म मॉड्यूल का उपयोग करता है, जिसे डिस्क को डिक्रिप्ट करने के लिए न तो पिन की आवश्यकता होती है और न ही बाहरी कुंजी की। जब ऑपरेटिंग सिस्टम बूट होता है, तो बिटलॉकर बिना किसी उपयोगकर्ता सहभागिता के TPM से कुंजी प्राप्त करता है। तथा इसके परिणाम स्वरूप एक आक्रमण करने वाला केवल मशीन को चालू कर सकता है, ऑपरेटिंग सिस्टम को बूट करने के लिए प्रतीक्षा करें और फिर कुंजी को पुनः प्राप्त करने के लिए मशीन के विपरीत एक कोल्ड बूट अटैक को निष्पादित करे। तथा इसके कारण द्वि-कारक प्रमाणीकरण, जैसे प्री-बूट पिन या एक टीपीएम के साथ एक स्टार्टअप कुंजी युक्त एक हटाने योग्य USB उपकरण का उपयोग पूर्व निर्धारित बिटलॉकर कार्यान्वयन में इस भेद्यता के आसपास काम करने के लिए किया जाना चाहिए।<ref name="bitlockerOverview2008">{{cite web|url=https://technet.microsoft.com/en-us/library/cc732774.aspx|title=बिटलॉकर ड्राइव एन्क्रिप्शन तकनीकी अवलोकन|publisher=[[Microsoft]]|year=2008|access-date=2008-11-19|ref={{harvid|Bitlocker Technical Overview, 2008}}}}</ref><ref name="bitlocker2008"/> हालाँकि, यह वैकल्पिक हल किसी आक्रमण करने वाले को मेमोरी से संवेदनशील आँकड़ा प्राप्त करने से नहीं रोकता है, न ही मेमोरी में कैश की गई कूटबद्ध कुंजियों को पुनर्प्राप्त करने से रोकता है। | |||
=== अल्पीकरण === | === अल्पीकरण === | ||
चूंकि कोल्ड बूट | चूंकि कोल्ड बूट अटैक से क्रियान्वित मेमोरी को आसानी से खराब किया जा सकता है, रैम में संवेदनशील आँकड़ा का भंडारण, जैसे पूर्ण डिस्क कूटलेखन के लिए कूटबद्ध कुंजी असुरक्षित होती है। रैंडम-एक्सेस मेमोरी के अतिरिक्त अन्य क्षेत्रों में कूटबद्ध कुंजियों को संग्रहीत करने के लिए कई समाधान प्रस्तावित किए गए हैं। जबकि ये समाधान पूर्ण डिस्क कूटलेखन को तोड़ने की संभावना को कम कर सकते हैं, तथा वे मेमोरी में संग्रहीत अन्य संवेदनशील आँकड़ा की कोई सुरक्षा प्रदान नहीं करते हैं। | ||
==== रजिस्टर-आधारित कुंजी भंडारण ==== | ==== रजिस्टर-आधारित कुंजी भंडारण ==== | ||
कूटबद्ध कुंजियों को मेमोरी से बाहर रखने का एक समाधान रजिस्टर-आधारित कुंजी संग्रहण होता है। तथा [[ TRESOR |ट्रेसर]]<ref name="tresor-usenix">[http://www1.informatik.uni-erlangen.de/tresorfiles/tresor.pdf TRESOR USENIX paper, 2011] {{webarchive|url=https://web.archive.org/web/20120113062139/http://www1.informatik.uni-erlangen.de/tresorfiles/tresor.pdf |date=2012-01-13 }}</ref> और लूप-एम्नेसिया इस समाधान के कार्यान्वयन होते हैं। <ref name="loopamnesia-acsac">{{Cite conference| publisher = ACM| doi = 10.1145/2076732.2076743| isbn = 978-1-4503-0672-0| conference = Proceedings of the 27th Annual Computer Security Applications Conference| pages = 73–82| last = Simmons| first = Patrick| title = भूलने की बीमारी के माध्यम से सुरक्षा: डिस्क एन्क्रिप्शन पर कोल्ड बूट हमले के लिए एक सॉफ्टवेयर-आधारित समाधान| access-date = 2018-11-06| date = 2011-12-05| url = https://www.ideals.illinois.edu/bitstream/handle/2142/18862/amnesia.pdf?sequence=2&isAllowed=y}}</ref> ये दोनों कार्यान्वयन एक ऑपरेटिंग सिस्टम के [[ कर्नेल (ऑपरेटिंग सिस्टम) |कर्नेल (ऑपरेटिंग सिस्टम)]] को संशोधित करते हैं ताकि CPU रजिस्टर ट्रेसर की स्थिति में x86 डिबग रजिस्टर और लूप-एम्नेसिया की स्थिति में AMD64 या EMT64 प्रोफाइलिंग रजिस्टर का उपयोग रैम के अतिरिक्त कूटलेखन कुंजियों को संग्रह करने के लिए किया जा सके। इस स्तर पर संग्रहीत कुंजियों को आसानी से उपयोक्ता स्थान से पढ़ा नहीं जा सकता {{citation needed|date=December 2015}} और किसी भी कारण से कंप्यूटर के पुनः प्रारंभ होने पर खो जाते हैं। ट्रेसर और लूप-एम्नेसिया दोनों को इस तरीके से क्रिप्टोग्राफ़िक टोकन संग्रह करने के लिए उपलब्ध सीमित स्थान के कारण ऑन-द-फ्लाई राउंड [[ मुख्य कार्यक्रम |मुख्य कार्यक्रम]] की जनरेशन का उपयोग करना चाहिए। सुरक्षा के लिए एन्क्रिप्शन या डिक्रिप्शन करते समय सीपीयू रजिस्टरों से मेमोरी में लीक होने से महत्वपूर्ण जानकारी को रोकने के लिए दोनों प्रदर्शन करते हैं, और दोनों कंप्यूटर प्रोग्राम का पुनर्निरीक्षण या प्रोफाइल रजिस्टरों तक पहुंच को अवरुद्ध करते हैं। | |||
भंडारण कुंजी के लिए आधुनिक x[[ 86 |86]] प्रोसेसर में दो संभावित क्षेत्र हैं। | भंडारण कुंजी के लिए आधुनिक x[[ 86 |86]] प्रोसेसर में दो संभावित क्षेत्र होते हैं। [[ स्ट्रीमिंग SIMD एक्सटेंशन |स्ट्रीमिंग SIMD एक्सटेंशन]] जो प्रभावी रूप से सभी SSE निर्देशों का प्रदर्शन करके विशेषाधिकार प्राप्त किए जा सकते हैं। और आवश्यक रूप से उन पर विश्वास करने वाले किसी भी कार्यक्रम और कंप्यूटर प्रोग्राम का पुनर्निरीक्षण रजिस्टर जो बहुत छोटे होते थे लेकिन ऐसे मुद्दे नहीं थे। | ||
SSE रजिस्टर विधि के आधार पर पैरानोइक्स नामक अवधारणा वितरण का एक प्रमाण विकसित किया गया है।<ref name="muller2010">{{Cite web| publisher = RWTH Aachen University| last = Müller| first = Tilo| title = लिनक्स कर्नेल में एईएस का कोल्ड-बूट प्रतिरोधी कार्यान्वयन| location = Aachen, Germany| date = 2010-05-31| url = https://faui1-files.cs.fau.de/filepool/thesis/diplomarbeit-2010-mueller.pdf}}</ref> डेवलपर्स का दावा है कि [[ AES-NI |AES-NI]] का समर्थन करने वाले 64-बिट सीपीयू पर ट्रेसर चलाना, AES के सामान्य कार्यान्वयन की तुलना में कोई प्रदर्शन दंड नहीं होता है।<ref name="tresorBlog">{{Cite web| last = Friedrich-Alexander-Universität Erlangen-Nürnberg| title = Tresor / Trevisor / Armored: TRESOR सुरक्षित रूप से RAM के बाहर एन्क्रिप्शन चलाता है / TRESOR Hypervisor / Android-संचालित उपकरणों के लिए| access-date = 2018-11-06| url = https://www.cs1.tf.fau.de/research/system-security-and-software-protection-group/tresor-trevisor-armored/}}</ref> और कुंजी पुनर्गणना की आवश्यकता के अतिरिक्त मानक एन्क्रिप्शन की तुलना में थोड़ा तेज़ चलता है<ref name="tresor-usenix" /> ट्रेसर की तुलना में लूप-एम्नेसिया का प्राथमिक लाभ यह होता है, कि यह कई कूटबद्ध ड्राइव के उपयोग का समर्थन करता है। प्राथमिक नुकसान 32-बिट x86 के लिए समर्थन की कमी और AES-NI का समर्थन नहीं करने वाले सीपीयू पर खराब प्रदर्शन होता हैं। | |||
==== कैश-आधारित कुंजी भंडारण ==== | ==== कैश-आधारित कुंजी भंडारण ==== | ||
Revision as of 21:36, 13 December 2022
कंप्यूटर सुरक्षा में, एक कोल्ड बूट अटैक(आक्षेप) या कुछ हद तक एक प्लेटफ़ॉर्म रीसेट अटैक एक प्रकार का साइड चैनल अटैक होता है, जिसमें कंप्यूटर पर भौतिक पहुंच वाला एक अटैक करने वाला कंप्यूटर की रैंडम-एक्सेस मेमोरी (RAM) को मेमोरी खराब करता है। प्रदर्शन मशीन का हार्ड रीसेट करके सामान्य रूप से कोल्ड बूट अटैक का उपयोग दुर्भावनापूर्ण या आपराधिक खोजी कारणों से चल रहे ऑपरेटिंग सिस्टम से कूटलेखन कुंजियों को पुनः प्राप्त करने के लिए किया जाता है।[1][2][3] यह अटैक गतिशील रैंडम-एक्सेस मेमोरी (DRAM) और स्थिर रैंडम-एक्सेस मेमोरी (SRAM) की आँकड़ा अवशेष गुण पर निर्भर करता है। ताकि भंडारण सामग्री को पुनः प्राप्त किया जा सके। जो पावर स्विच-ऑफ के बाद सेकंड से मिनट तक पढ़ने योग्य रहती है।[2][4][5]
चल रहे कंप्यूटर तक भौतिक पहुंच वाला एक अटैक सामान्य रूप से मशीन को कोल्ड-बूट करके और एक फ़ाइल में प्री-बूट भौतिक भंडारण की सामग्री को खराब करने के लिए एक हटाने योग्य डिस्क से एक हल्के ऑपरेटिंग सिस्टम को बूट करके एक कोल्ड बूट अटैक को अंजाम देता है।[6][2] एक आक्रमण करने वाला तब कुंजी खोज अटैकों के विभिन्न रूपों का उपयोग करते हुए कुंजी जैसे संवेदनशील आँकड़ा को खोजने के लिए मेमोरी से खराब किए गए आँकड़ा का विश्लेषण करने के लिए स्वतंत्र है।[7][8] चूंकि कोल्ड बूट हमले रैंडम-एक्सेस मेमोरी को लक्षित करते हैं, पूर्ण डिस्क कूटलेखन योजनाएं, यहां तक कि स्थापित एक विश्वसनीय प्लेटफ़ॉर्म मॉड्यूल के साथ भी इस तरह के अटैक के विपरीत अप्रभावी होते हैं।[2] ऐसा इसलिए है, क्योंकि समस्या मूल रूप से एक हार्डवेयर असुरक्षित भंडारण है और सॉफ़्टवेयर समस्या नहीं होती है। हालांकि, रैंडम-एक्सेस मेमोरी में संवेदनशील आँकड़ा को संग्रहीत करने से बचने के लिए भौतिक पहुंच को सीमित करके और आधुनिक तकनीकों का उपयोग करके दुर्भावनापूर्ण पहुंच को रोका जा सकता है।
तकनीकी विवरण
DIMM मेमोरी मॉड्यूल धीरे-धीरे समय के साथ आँकड़ा खो देते हैं, क्योंकि वे बिजली खो देते हैं, लेकिन बिजली खो जाने पर तुरंत सभी आँकड़ा नहीं खोते हैं।[2][9] तापमान और पर्यावरण की स्थिति के आधार पर मेमोरी मॉड्यूल संभावित रूप से कम से कम कुछ आँकड़ा को शक्ति खोने के बाद 90 मिनट तक बनाए रख सकते हैं।[9] कुछ मेमोरी मॉड्यूल के साथ एक अटैक के लिए समय खिड़की को फ्रीज स्प्रे से ठंडा करके घंटों या हफ्तों तक बढ़ाया जा सकता है। इसके अतिरिक्त चूंकि बिट समय के साथ मेमोरी में गायब हो जाते हैं, तथा उनका पुनर्निर्माण किया जा सकता है, क्योंकि वे पूर्वानुमेय तरीके से मिट जाते हैं।[2] इसके परिणाम स्वरूप एक आक्रमण करने वाला कोल्ड बूट अटैक को अंजाम देकर अपनी सामग्री का मेमोरी खराब कर सकता है। कोल्ड बूट अटैक को सफलतापूर्वक निष्पादित करने की क्षमता अलग-अलग प्रणालियों, मेमोरी के प्रकारों, मेमोरी निर्माताओं और मदरबोर्ड के गुणों में लगभग भिन्न होती है, और सॉफ्टवेयर-आधारित तरीकों या DMA अटैक से अधिक जटिल हो सकती है।[10] जबकि वर्तमान शोध का ध्यान डिस्क कूटलेखन पर होता है, मेमोरी में रखा गया कोई भी संवेदनशील आँकड़ा अटैक के प्रति संवेदनशील होता है।[2]
आक्रमण करने वाला कोल्ड बूट आक्रमणों को बलपूर्वक और अचानक नियोजित यंत्र को पुनः प्रारम्भ करके और पुनः USB फ्लैश ड्राइव, CD-ROM या नेटवर्क बूट पर पहले से स्थापित ऑपरेटिंग सिस्टम को बूट करके करते हैं।[3] ऐसे परिस्थितियों में जहां नियोजित यंत्र को हार्ड रीसेट करना प्रयोगात्मक नहीं होता है, एक आक्रमण करने वाला वैकल्पिक रूप से मूल सिस्टम से मेमोरी मॉड्यूल को भौतिक रूप से हटा सकता है और जल्दी से आक्रामक के नियंत्रण में एक संगत यंत्र में रख सकता है, जिसे मेमोरी तक पहुंचने के लिए बूट किया जाता है।[2] इसके बाद रैम से खराब किए गए आँकड़ा के खिलाफ आगे का विश्लेषण किया जा सकता है।
मेमोरी से आँकड़ा निकालने के लिए भी इसी तरह के अटैक का उपयोग किया जा सकता है, जैसे कि DMA अटैक, जो फायरवायर जैसे उच्च गति विस्तार द्वार के माध्यम से भौतिक मेमोरी तक पहुंचने की अनुमति देता है।[3] कुछ स्थितियों में कोल्ड बूट अटैक को प्राथमिकता दी जा सकती है, जैसे कि जब हार्डवेयर क्षति का उच्च जोखिम हो। उच्च गति विस्तार द्वार का उपयोग कुछ स्थितियों में लघु परिपथ या भौतिक रूप से हार्डवेयर को नुकसान पहुंचा सकता है।[3]
उपयोग
कोल्ड बूट अटैकों का प्रयोग सामान्य रूप से अंकीय फोरेंसिक जांच, चोरी जैसे दुर्भावनापूर्ण उद्देश्यों और आँकड़ा पुनः प्राप्ति के लिए किया जाता है।[3]
अंकीय फोरेंसिक
कुछ स्थितियों में कोल्ड बूट अटैक का उपयोग अंकीय फोरेंसिक के अनुशासन में आपराधिक सबूत के रूप में मेमोरी में निहित आँकड़ा को फोरेंसिक रूप से संरक्षित करने के लिए किया जाता है।[3] उदाहरण के लिए जब अन्य माध्यमों से मेमोरी में आँकड़ा को संरक्षित करना प्रयोगात्मक नहीं होता है।, तो रैंडम-एक्सेस मेमोरी में निहित आँकड़ा को खराब करने के लिए कोल्ड बूट अटैक का उपयोग किया जा सकता है। उदाहरण के लिए कोल्ड बूट अटैक का उपयोग उन स्थितियों में किया जाता है, जहां एक सिस्टम सुरक्षित होता है परन्तु कंप्यूटर तक पहुंचना संभव नहीं होता है।[3] जब हार्ड डिस्क को पूर्ण डिस्क कूटलेखन के साथ कूटबद्ध किया जाता है और डिस्क में संभावित रूप से आपराधिक गतिविधि के सबूत होते हैं, तो कोल्ड बूट अटैक भी आवश्यक हो सकता है। कोल्ड बूट अटैक मेमोरी तक पहुंच प्रदान करता है, जो उस समय सिस्टम की स्थिति के बारे में जानकारी प्रदान कर सकता है। जैसे कि कौन से प्रोग्राम चल रहे हैं।[3]
दुर्भावनापूर्ण के उद्देश्य
कोल्ड बूट अटैक का उपयोग आक्रमण करने वालों द्वारा कूटबद्ध जानकारी जैसे कि वित्तीय जानकारी या दुर्भावनापूर्ण मंशा के लिए व्यापार रहस्य तक पहुंच प्राप्त करने के लिए किया जा सकता है।[11]
पूर्ण डिस्क कूटलेखन को परिचालित करना
कोल्ड बूट अटैकों का एक सामान्य उद्देश्य सॉफ़्टवेयर-आधारित डिस्क कूटलेखन को गतिरोध उत्पन्न करना होता है। कोल्ड बूट अटैकों को जब प्रमुख खोज अटैकों के साथ संयोजन में उपयोग किया जाता है, तो विभिन्न विक्रेताओं और ऑपरेटिंग सिस्टमों की पूर्ण डिस्क कूटलेखन योजनाओं को गतिरोध उत्पन्न करने का एक प्रभावी साधन साबित हुआ है, यहां तक कि जहां एक विश्वसनीय प्लेटफॉर्म मॉड्यूल (TPM) सुरक्षित क्रिप्टोप्रोसेसर का उपयोग किया जाता है।[2]
डिस्क कूटलेखन अनुप्रयोगों की स्थिति में जिन्हें प्री-बूटिंग व्यक्तिगत पहचान संख्या दर्ज किए बिना या हार्डवेयर कुंजी मे उपस्थित होने के बिना ऑपरेटिंग सिस्टम को बूट करने की अनुमति देने के लिए कंप्यूटर की व्यवस्था का प्रारूप किया जा सकता है। उदाहरण के लिए बिटलॉकर एक साधारण विन्यास संरूपण में जो दो-कारक प्रमाणीकरण पिन के बिना टीपीएम का उपयोग करता है या USB की अटैक की समय सीमा बिल्कुल भी सीमित नहीं होती है।[2]
बिटलॉकर
बिटलॉकर अपने पूर्व निर्धारित कंप्यूटर की व्यवस्था के प्रारूप में एक विश्वसनीय प्लेटफ़ॉर्म मॉड्यूल का उपयोग करता है, जिसे डिस्क को डिक्रिप्ट करने के लिए न तो पिन की आवश्यकता होती है और न ही बाहरी कुंजी की। जब ऑपरेटिंग सिस्टम बूट होता है, तो बिटलॉकर बिना किसी उपयोगकर्ता सहभागिता के TPM से कुंजी प्राप्त करता है। तथा इसके परिणाम स्वरूप एक आक्रमण करने वाला केवल मशीन को चालू कर सकता है, ऑपरेटिंग सिस्टम को बूट करने के लिए प्रतीक्षा करें और फिर कुंजी को पुनः प्राप्त करने के लिए मशीन के विपरीत एक कोल्ड बूट अटैक को निष्पादित करे। तथा इसके कारण द्वि-कारक प्रमाणीकरण, जैसे प्री-बूट पिन या एक टीपीएम के साथ एक स्टार्टअप कुंजी युक्त एक हटाने योग्य USB उपकरण का उपयोग पूर्व निर्धारित बिटलॉकर कार्यान्वयन में इस भेद्यता के आसपास काम करने के लिए किया जाना चाहिए।[12][5] हालाँकि, यह वैकल्पिक हल किसी आक्रमण करने वाले को मेमोरी से संवेदनशील आँकड़ा प्राप्त करने से नहीं रोकता है, न ही मेमोरी में कैश की गई कूटबद्ध कुंजियों को पुनर्प्राप्त करने से रोकता है।
अल्पीकरण
चूंकि कोल्ड बूट अटैक से क्रियान्वित मेमोरी को आसानी से खराब किया जा सकता है, रैम में संवेदनशील आँकड़ा का भंडारण, जैसे पूर्ण डिस्क कूटलेखन के लिए कूटबद्ध कुंजी असुरक्षित होती है। रैंडम-एक्सेस मेमोरी के अतिरिक्त अन्य क्षेत्रों में कूटबद्ध कुंजियों को संग्रहीत करने के लिए कई समाधान प्रस्तावित किए गए हैं। जबकि ये समाधान पूर्ण डिस्क कूटलेखन को तोड़ने की संभावना को कम कर सकते हैं, तथा वे मेमोरी में संग्रहीत अन्य संवेदनशील आँकड़ा की कोई सुरक्षा प्रदान नहीं करते हैं।
रजिस्टर-आधारित कुंजी भंडारण
कूटबद्ध कुंजियों को मेमोरी से बाहर रखने का एक समाधान रजिस्टर-आधारित कुंजी संग्रहण होता है। तथा ट्रेसर[13] और लूप-एम्नेसिया इस समाधान के कार्यान्वयन होते हैं। [14] ये दोनों कार्यान्वयन एक ऑपरेटिंग सिस्टम के कर्नेल (ऑपरेटिंग सिस्टम) को संशोधित करते हैं ताकि CPU रजिस्टर ट्रेसर की स्थिति में x86 डिबग रजिस्टर और लूप-एम्नेसिया की स्थिति में AMD64 या EMT64 प्रोफाइलिंग रजिस्टर का उपयोग रैम के अतिरिक्त कूटलेखन कुंजियों को संग्रह करने के लिए किया जा सके। इस स्तर पर संग्रहीत कुंजियों को आसानी से उपयोक्ता स्थान से पढ़ा नहीं जा सकता[citation needed] और किसी भी कारण से कंप्यूटर के पुनः प्रारंभ होने पर खो जाते हैं। ट्रेसर और लूप-एम्नेसिया दोनों को इस तरीके से क्रिप्टोग्राफ़िक टोकन संग्रह करने के लिए उपलब्ध सीमित स्थान के कारण ऑन-द-फ्लाई राउंड मुख्य कार्यक्रम की जनरेशन का उपयोग करना चाहिए। सुरक्षा के लिए एन्क्रिप्शन या डिक्रिप्शन करते समय सीपीयू रजिस्टरों से मेमोरी में लीक होने से महत्वपूर्ण जानकारी को रोकने के लिए दोनों प्रदर्शन करते हैं, और दोनों कंप्यूटर प्रोग्राम का पुनर्निरीक्षण या प्रोफाइल रजिस्टरों तक पहुंच को अवरुद्ध करते हैं।
भंडारण कुंजी के लिए आधुनिक x86 प्रोसेसर में दो संभावित क्षेत्र होते हैं। स्ट्रीमिंग SIMD एक्सटेंशन जो प्रभावी रूप से सभी SSE निर्देशों का प्रदर्शन करके विशेषाधिकार प्राप्त किए जा सकते हैं। और आवश्यक रूप से उन पर विश्वास करने वाले किसी भी कार्यक्रम और कंप्यूटर प्रोग्राम का पुनर्निरीक्षण रजिस्टर जो बहुत छोटे होते थे लेकिन ऐसे मुद्दे नहीं थे।
SSE रजिस्टर विधि के आधार पर पैरानोइक्स नामक अवधारणा वितरण का एक प्रमाण विकसित किया गया है।[15] डेवलपर्स का दावा है कि AES-NI का समर्थन करने वाले 64-बिट सीपीयू पर ट्रेसर चलाना, AES के सामान्य कार्यान्वयन की तुलना में कोई प्रदर्शन दंड नहीं होता है।[16] और कुंजी पुनर्गणना की आवश्यकता के अतिरिक्त मानक एन्क्रिप्शन की तुलना में थोड़ा तेज़ चलता है[13] ट्रेसर की तुलना में लूप-एम्नेसिया का प्राथमिक लाभ यह होता है, कि यह कई कूटबद्ध ड्राइव के उपयोग का समर्थन करता है। प्राथमिक नुकसान 32-बिट x86 के लिए समर्थन की कमी और AES-NI का समर्थन नहीं करने वाले सीपीयू पर खराब प्रदर्शन होता हैं।
कैश-आधारित कुंजी भंडारण
जमे हुए कैश (कभी-कभी कैश के रूप में रैम के रूप में जाना जाता है),[17] एन्क्रिप्शन कुंजियों को सुरक्षित रूप से संग्रहीत करने के लिए उपयोग किया जा सकता है। यह CPU के L1 कैश को अक्षम करके काम करता है और इसे कुंजी भंडारण के लिए उपयोग करता है, हालांकि, यह अधिकांश उद्देश्यों के लिए बहुत धीमी होने के बिंदु पर समग्र सिस्टम प्रदर्शन को महत्वपूर्ण रूप से कम कर सकता है।[18][better source needed]
गुआन एट अल द्वारा एक समान कैश-आधारित समाधान प्रस्तावित किया गया था। (2015)[19] आँकड़ा को कैश में रखने के लिए डब्ल्यूबी (राइट-बैक) कैश मोड को नियोजित करके, सार्वजनिक कुंजी एल्गोरिदम के संगणना समय को कम करता है।
छुई मुई[20] IEEE S&P 2015 में कोल्ड-बूट अटैक और DMA अटैक के विरुद्ध सार्वजनिक-कुंजी क्रिप्टोग्राफ़िक संगणनाओं के लिए अधिक व्यावहारिक समाधान प्रस्तुत किया। यह हार्डवेयर ट्रांसेक्शनल मेमोरी (HTM) को नियोजित करता है जिसे मूल रूप से बहु-थ्रेडेड अनुप्रयोगों के प्रदर्शन को बढ़ावा देने के लिए सट्टा मेमोरी एक्सेस तंत्र के रूप में प्रस्तावित किया गया था। एचटीएम द्वारा प्रदान की गई मजबूत परमाणु गारंटी का उपयोग संवेदनशील आँकड़ा वाले मेमोरी स्पेस में अवैध समवर्ती पहुंच को हराने के लिए किया जाता है। RSA निजी कुंजी को AES कुंजी द्वारा मेमोरी में एन्क्रिप्ट किया गया है जो TRESOR द्वारा सुरक्षित है। अनुरोध पर, एक एचटीएम लेनदेन के भीतर एक आरएसए निजी-कुंजी गणना की जाती है: निजी कुंजी को पहले मेमोरी में डिक्रिप्ट किया जाता है, और फिर आरएसए डिक्रिप्शन या हस्ताक्षर किया जाता है। क्योंकि एक सादा-पाठ RSA निजी कुंजी केवल HTM लेनदेन में संशोधित आँकड़ा के रूप में दिखाई देती है, इन आँकड़ा के लिए कोई भी रीड ऑपरेशन लेनदेन को रद्द कर देगा - लेनदेन अपनी प्रारंभिक स्थिति में वापस आ जाएगा। ध्यान दें कि, आरएसए निजी कुंजी प्रारंभिक अवस्था में एन्क्रिप्ट की गई है, और यह राइट ऑपरेशंस (या एईएस डिक्रिप्शन) का परिणाम है। वर्तमान में एचटीएम को कैश या स्टोर-बफर में लागू किया गया है, जो दोनों सीपीयू में स्थित हैं, बाहरी रैम चिप्स में नहीं। इसलिए कोल्ड-बूट अटैक को रोका जाता है। मिमोसा उन अटैक के खिलाफ हारता है जो मेमोरी से संवेदनशील आँकड़ा (कोल्ड-बूट अटैक, डीएमए अटैक और अन्य सॉफ़्टवेयर अटैक सहित) को पढ़ने का प्रयास करते हैं, और यह केवल एक छोटे से प्रदर्शन ओवरहेड का परिचय देता है।
एन्क्रिप्टेड डिस्क को हटाना
सर्वोत्तम अभ्यास किसी भी एन्क्रिप्टेड, गैर-सिस्टम डिस्क का उपयोग नहीं होने पर डिस्माउंट करने की सिफारिश करता है, क्योंकि अधिकांश डिस्क एन्क्रिप्शन सॉफ़्टवेयर को उपयोग के बाद मेमोरी में कैश की गई कुंजियों को सुरक्षित रूप से मिटाने के लिए डिज़ाइन किया गया है।[21] यह एक अटैक करने वाला के जोखिम को कम करता है जो कोल्ड बूट हमले को अंजाम देकर मेमोरी से एन्क्रिप्शन कुंजियों को बचाने में सक्षम होता है। ऑपरेटिंग सिस्टम हार्ड डिस्क पर एन्क्रिप्टेड जानकारी तक पहुंच को कम करने के लिए, एक सफल कोल्ड बूट हमले की संभावना को कम करने के लिए उपयोग में नहीं होने पर मशीन को पूरी तरह से बंद कर देना चाहिए।[2][22] हालांकि, मशीन में भौतिक रैम डिवाइस के आधार पर दस सेकंड से लेकर कई मिनट तक आँकड़ा अवशेष, संभावित रूप से कुछ आँकड़ा को एक अटैक करने वाला द्वारा मेमोरी से पुनर्प्राप्त करने की अनुमति देता है। स्लीप मोड का उपयोग करने के बजाय अप्रयुक्त होने पर ऑपरेटिंग सिस्टम को बंद या हाइबरनेट करने के लिए कॉन्फ़िगर करना, एक सफल कोल्ड बूट हमले के जोखिम को कम करने में मदद कर सकता है।
प्रभावी प्रतिकार
भौतिक पहुंच को रोकना
आमतौर पर, एक अटैक करने वाला की कंप्यूटर तक भौतिक पहुंच को सीमित करके या हमले को करने के लिए इसे तेजी से कठिन बनाकर एक कोल्ड बूट हमले को रोका जा सकता है। एक विधि में मदरबोर्ड पर डीआईएमएम में टांकने की क्रिया या ग्लूइंग शामिल है, इसलिए उन्हें आसानी से अपने सॉकेट्स से हटाया नहीं जा सकता है और एक अटैक करने वाला के नियंत्रण में दूसरी मशीन में डाला जा सकता है।[2]हालांकि, यह अटैक करने वाला को पीड़ित की मशीन को बूट करने और हटाने योग्य USB फ्लैश ड्राइव का उपयोग करके मेमोरी खराब करने से नहीं रोकता है। यूनिफाइड एक्स्टेंसिबल फ़र्मवेयर इंटरफ़ेस # सिक्योर बूट या समान बूट सत्यापन दृष्टिकोण जैसे एक भेद्यता प्रबंधन एक अटैक करने वाला को एक कस्टम सॉफ़्टवेयर वातावरण को बूट करने से रोकने में प्रभावी हो सकता है ताकि सोल्डर-ऑन मुख्य मेमोरी की सामग्री को खराब किया जा सके।[23]
पूर्ण मेमोरी एन्क्रिप्शन
रैंडम-एक्सेस मेमोरी (रैम) को एन्क्रिप्ट करने से एक अटैक करने वाला को कोल्ड बूट हमले के माध्यम से मेमोरी से कुंजी (क्रिप्टोग्राफी) या अन्य सामग्री प्राप्त करने में सक्षम होने की संभावना कम हो जाती है। इस दृष्टिकोण के लिए ऑपरेटिंग सिस्टम, एप्लिकेशन या हार्डवेयर में बदलाव की आवश्यकता हो सकती है। Microsoft Xbox (कंसोल) में हार्डवेयर-आधारित मेमोरी एन्क्रिप्शन का एक उदाहरण लागू किया गया था।[24] एएमडी से नए x86-64 हार्डवेयर पर कार्यान्वयन उपलब्ध हैं और विलो कोव में इंटेल से समर्थन आने वाला है।
सॉफ़्टवेयर-आधारित पूर्ण मेमोरी एन्क्रिप्शन CPU-आधारित कुंजी संग्रहण के समान है क्योंकि कुंजी सामग्री कभी भी मेमोरी के संपर्क में नहीं आती है, लेकिन अधिक व्यापक है क्योंकि सभी मेमोरी सामग्री एन्क्रिप्ट की जाती हैं। सामान्य तौर पर, ऑपरेटिंग सिस्टम द्वारा केवल तत्काल पृष्ठों को डिक्रिप्ट किया जाता है और फ्लाई पर पढ़ा जाता है।[25] सॉफ़्टवेयर-आधारित मेमोरी एन्क्रिप्शन समाधानों के कार्यान्वयन में शामिल हैं: PrivateCore का एक व्यावसायिक उत्पाद।[26][27][28] और RamCrypt, Linux कर्नेल के लिए एक कर्नेल-पैच जो मेमोरी में आँकड़ा को एन्क्रिप्ट करता है और CPU रजिस्टरों में एन्क्रिप्शन कुंजी को TRESOR के समान तरीके से संग्रहीत करता है।[13][25]
संस्करण 1.24 के बाद से, VeraCrypt कुंजी और पासवर्ड के लिए RAM एन्क्रिप्शन का समर्थन करता है।[29] हाल ही में, सुरक्षा-संवर्धित x86 और ARM कमोडिटी प्रोसेसर की उपलब्धता पर प्रकाश डालते हुए कई पेपर प्रकाशित किए गए हैं।[30][31] उस कार्य में, ARM Cortex A8 प्रोसेसर का उपयोग सब्सट्रेट के रूप में किया जाता है, जिस पर एक पूर्ण मेमोरी एन्क्रिप्शन समाधान बनाया जाता है। प्रोसेस सेगमेंट (उदाहरण के लिए, स्टैक, कोड या हीप) को व्यक्तिगत रूप से या संरचना में एन्क्रिप्ट किया जा सकता है। यह कार्य सामान्य-उद्देश्य वाले कमोडिटी प्रोसेसर पर पहले पूर्ण मेमोरी एन्क्रिप्शन कार्यान्वयन को चिन्हित करता है। सिस्टम कोड और आँकड़ा की गोपनीयता और अखंडता दोनों सुरक्षा प्रदान करता है जो सीपीयू सीमा के बाहर हर जगह एन्क्रिप्ट किए जाते हैं।