क्या अधिक उन्नत एलयूकेएस महत्वपूर्ण योजनाएं हैं, उदाहरण के लिए 2 से 3 कुंजी की आवश्यकता है?


4

ऐसा लगता है कि दो मुख्य LUKS एन्क्रिप्शन विकल्प हैं:

  1. USB कीफ़ाइल (देखें https://superuser.com/questions/149578/how-can-i-use-a-keyfile-on-a-removable-usb-drive-for-my-encrypted-ro-in-debian )
  2. एक पासवर्ड में टाइपिंग

इन दोनों में कमजोरियां हैं। सबसे पहले USB ड्राइव को चोरी करके दूर किया जा सकता है। दूसरे मामले में, एक keylogger का उपयोग किया जा सकता है, या मुझे पासवर्ड देने के लिए मजबूर किया जा सकता है।

क्या ऐसी एन्क्रिप्शन स्कीम बनाना संभव होगा जो दोनों विकल्पों की आवश्यकता हो? फिर, अगर मुझे पासवर्ड प्रदान करने के लिए एक इंजेक्शन दिया गया था, तो मैं यूएसबी ड्राइव को नष्ट कर सकता था (उदाहरण के लिए इसे स्टोवटॉप पर जलाएं); इसके विपरीत, यदि कोई मेरी USB ड्राइव चुराता है, तो उन्हें मेरा पासवर्ड भी प्राप्त करना होगा।

ऐसा लगता है मौजूद LUKS कुंजी स्लॉट विचार यह है कि के लिए एक महत्वपूर्ण उपलब्ध कराने के किसी भी कुंजी स्लॉट डिवाइस अनलॉक हो जाएगा, नहीं है कि एक के लिए एक महत्वपूर्ण प्रदान करने के लिए है सब , या कहते हैं कि कुंजी स्लॉट "3 का 2" (iirc बाद में पूरा किया जा सकता एक गैल्वेनिक क्षेत्र का उपयोग करके क्रिप्टोग्राफिक रूप से सुरक्षित तरीके से)।

(इसके अलावा, मैं एक OpenSuSE प्रणाली पर होना चाहता हूं, इसलिए कृपया उत्तर-अज्ञेयवादी या ऐसी कोई चीज़ रखें जो SuSE पर काम कर सके।)


IANAL, लेकिन इसका उत्पादन करने के लिए एक सबपोना प्राप्त करने के बाद कुंजी को नष्ट करने से आपको गंभीर संकट में पड़ने की संभावना है।
cjm

@ cjm, हालांकि यह साबित करना कठिन होगा। मैं इसे पहले "खो" सकता था।
गतोतिग्रादो

जवाबों:


3

मुझे नहीं लगता कि ऐसा कुछ बॉक्स के ठीक बाहर मौजूद है, लेकिन यह संभव होना चाहिए। मैं आपके लिए कुछ संदर्भ रखूंगा।

पहले वहाँ / etc / crypttab - आम तौर पर आप तीसरे स्लॉट में एक कुंजी फ़ाइल या पासवर्ड निर्दिष्ट करते हैं, लेकिन कुछ डिस्ट्रोस आपको चौथे क्षेत्र में एक विकल्प निर्दिष्ट करने की अनुमति देते हैं keyscript(डेबियन और ओपनस्यूज़ सपोर्ट इस: http://linux.frank4dd.com /en/man5/crypttab.htm )। यह स्क्रिप्ट (जो "/ lib / cryptsetup / स्क्रिप्ट" iirc में होनी चाहिए) एक तर्क के रूप में तीसरे क्षेत्र का उपयोग कर सकती है (जो सामान्य रूप से सिर्फ कीफाइल या पासवर्ड होगा)। कीस्क्रिप्ट का काम वास्तविक डिक्रिप्शन कुंजी को स्टडआउट में भेजना है, जो क्रायसिपेटअप तब सामान्य फैशन में लुक्स कुंजी के रूप में उपयोग करता है।

दूसरा यह है कि आपको कीस्क्रिप्ट लिखने की आवश्यकता होगी। netkeyscript(github में) एक कीस्क्रिप्ट का एक उदाहरण है जो पासवर्ड के लिए UDP मल्टीकास्ट सॉकेट पर सुनता है; यहाँ एक कस्टम कुंजी स्क्रिप्ट का एक और विस्तृत उदाहरण है, जिसमें एक कार्यान्वयन के साथ पूरा किया गया है sh: http://wejn.org/how-to-make-passwordless-cryptsetup.html । आप कैसेस्क्रिप्ट (जिसे मैं अभी कॉल करूंगा multifactor) को कोड करता हूं। मैं आपको एक अभ्यास के रूप में छोड़ता हूं;)

तीसरा है गुप्त विभाजन। आप एक खुले स्रोत उपकरण का उपयोग कर सकते हैं जिसे "ssss" (गूगल "ssss- विभाजन") कहा जाता है, आपके द्वारा वर्णित तरीके से ल्यूक पासवर्ड को विभाजित करने के लिए। मान लीजिए कि आप इसे 3 टुकड़ों (ए, बी, सी) में विभाजित करते हैं और उनमें से किसी 2 की आवश्यकता होती है। "a" को usb ड्राइव पर, "b" को तिजोरी में, और "c" को आप कंप्यूटर (अनएन्क्रिप्टेड पार्टीशन), या जो कुछ भी स्टोर करते हैं। बेशक, आप "ग" को उजागर नहीं करना चाहते हैं, इसलिए इसे अपनी पसंद की एक योजना के साथ एन्क्रिप्ट करें जिसे आप याद कर सकते हैं, और उस पासफ़्रेज़ को कॉल कर सकते हैं, और c0एन्क्रिप्ट किया गया " c" आपकी डिस्क पर है " c'"। अब आपका crypttab कुछ इस तरह दिखेगा

root  /dev/disk/<blah blah>  /dev/<usb>:/path/to/a+$/dev/<blah>:/path/to/c'  keyscript=multifactor

तीसरे क्षेत्र के लिए आपके पास वास्तव में क्या होगा यह इस बात पर निर्भर करेगा कि आपकी कीस्क्रिप्ट स्वीकार करने के लिए तैयार है

आदर्श रूप से कीस्क्रिप्ट यह निर्धारित करने में सक्षम होना चाहिए कि उसे आपके इनपुट को एक या अधिक कुंजियों को डिक्रिप्ट करने की आवश्यकता है (उदाहरण: c'-> cइस मामले में), लेकिन आप तीसरे फ़ील्ड का उपयोग वांछित के रूप में निर्दिष्ट करने के लिए कर सकते हैं। ऊपर दिए गए मेरे उदाहरण में, मैंने इसका $संकेत देने के लिए एक अग्रणी का उपयोग किया ।

मुझे यकीन नहीं है कि अगर इनपुट के लिए कीस्क्रिप्ट को संभव बनाना संभव है, तो संभवत: stderr पर, क्योंकि stdout पर किसी भी आउटपुट को luks पासवर्ड के रूप में लिया जाता है। अच्छा होगा अगर कोई समझदार कमबैक करे।

वैसे भी, अच्छी किस्मत और खुश हैकिंग :)


2

संक्षिप्त उत्तर: नहीं।

आपके पास अलग-अलग स्लॉट में कई कुंजियाँ हो सकती हैं, लेकिन यह आपके प्रश्न से संबंधित नहीं है।

सुरक्षा के लिए d मैं ramdisks के लिए एक चेकसम बनाए रखता हूं और cryptsetup सांख्यिकीय रूप से जुड़ा हुआ है maintain और मैं उन्हें स्वचालित रूप से हर बार बूट करता हूं।

अपडेट करें

चेकसम एन्क्रिप्टेड एफएस पर संग्रहीत है, आप इसे तब तक संशोधित नहीं कर सकते जब तक आप उस विभाजन को माउंट नहीं करते।

यही है, जब तक कि आप दूरस्थ रूप से शोषित न हों या आपके द्विआधारी कार्यक्रम, जैसे कि रूटफिक्स पर ramdisk / cryptsetup को संशोधित किया जा रहा हो, सुरक्षित है। (बीटीडब्ल्यू: मेरे रूटफ़्स एन्क्रिप्ट किए गए हैं, केवल कर्नेल / रैमडिस्क वहां नग्न है, इसलिए मैं उन्हें केवल जांचता हूं, लेकिन धीमी सीपीयू / एचडीडी के साथ धीमी लोडिंग गति के लिए तैयार करता हूं)


"मैं रामदिस्क के लिए एक चेकसम रखता हूं ... और मैं उन्हें हर बार बूट करता हूं।" किसी को "अपेक्षित" चेकसम मान को बदलने से रोकने के लिए क्या है, अगर वे पहले से ही एक अंगूठे ड्राइव को चोरी करने या आपको (अनजाने में) बनाने की परेशानी से गुजर चुके हैं?
एक सीवीएन

@ MichaelKjörling ने अपडेट किया, कृपया देखें
daisy

मैं यह नहीं देखता कि ओपी की चिंता के बारे में पता कैसे चलता है, जो हमलावर के लिए महत्वपूर्ण सामग्री के अनैच्छिक प्रकटीकरण के कारण होता है। यदि आप पासफ़्रेज़ का उपयोग करते हैं और उन्होंने एक keylogger स्थापित किया है, तो अगले रीबूट के बाद उनका पासफ़्रेज़ आपके पास होगा और एन्क्रिप्टेड फ़ाइल सिस्टम तक पहुँचने के लिए इसका उपयोग करने से आपको अधिक परेशानी नहीं होगी।
एक CVn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.