क्या पासवर्ड के बजाय एक कुंजी फ़ाइल के साथ हार्ड डिस्क को एन्क्रिप्ट करना संभव है?


14

हार्ड डिस्क एन्क्रिप्शन में खोज। एक समाधान का उपयोग करने के लिए LUKS के साथ dm-crypt प्रतीत होता है। मैं पढ़ने के लिए एक डिस्क पूल में घुड़सवार कई स्वतंत्र हार्ड डिस्क के साथ काम करता हूं। इस मामले में, मुझे कई बार एक पासवर्ड टाइप करना होगा।

क्या मेरे लिए एक कुंजी फ़ाइल के साथ हार्ड डिस्क को एन्क्रिप्ट करने का एक तरीका है, हो सकता है कि इसे एक यूएसबी ड्राइव पर डाल दिया जाए और जब इसे कम में प्लग किया जाए?

जवाबों:


11

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

अपने प्रारूप /etc/crypttabको इस तरह बनाएं:

mapper-name /dev/disk/raw-device /var/lib/filename-containing-encrypted-key \
    luks,keyscript=/lib/cryptsetup/scripts/decrypt_opensc

डेबियन और डेरिवेटिव में, इनट्रामाफ़्स-टूल्स कीस्क्रिप्ट को नोटिस करेंगे और स्मार्ट कार्ड को स्वचालित रूप से इनट्रामाफ़्स में एक्सेस करने के लिए सभी आवश्यक टूल्स और डेमों की नकल करेंगे।

स्मार्ट कार्ड सेट करने और (और एन्क्रिप्ट करने) की कुंजी में जानकारी मिली है /usr/share/doc/cryptsetup/README.opensc.gz

आप इस उद्देश्य के लिए दूसरों के बीच एक Yubikey 4 या Yubikey NEO का उपयोग कर सकते हैं ।

कार्यान्वयन नोट : इस सुविधा में मोटे किनारे हैं और जाहिरा तौर पर बॉक्स से बाहर काम नहीं करता है इसलिए YMMV। पिछली बार जब मैंने इसे सफलतापूर्वक प्राप्त किया था, तो मुझे निम्नलिखित हैक जोड़ने पड़े:

  • अक्षम करें systemdक्योंकि यह विनाशकारी रूप से एन्क्रिप्ट किए गए उपकरणों को स्थापित करने की पूरी प्रक्रिया को संभालने की कोशिश करता है, /etc/crypttabलेकिन यह कुछ भी नहीं जानता है keyscriptजिसके बारे में एक बड़ी विफलता है। सौभाग्य से, डेबियन में, आप अभी भी बाहर निकल सकते हैं systemd
  • इस फिक्सर-ऊपरी स्क्रिप्ट को स्थापित करें /etc/initramfs-tools/hooks/yubipinक्योंकि अंतर्निहित फ़ीचर ने पर्याप्त रूप से स्थापित नहीं किया था ताकि येब्राइक को इनट्रैमर्फ्स से प्रयोग करने योग्य बनाया जा सके। आपको इसे समायोजित करने की आवश्यकता हो सकती है।

    #!/bin/sh
    
    PREREQ=cryptroot
    
    prereqs()
    {
        echo "$PREREQ"
    }
    
    case $1 in
    prereqs)
        prereqs
        exit 0
        ;;
    esac
    
    # /scripts/local-top/cryptopensc calls pcscd with the wrong path
    ln -s ../usr/sbin/pcscd ${DESTDIR}/sbin/pcscd
    mkdir -p "${DESTDIR}/usr/lib/x86_64-linux-gnu"
    # opensc-tool wants this dynamically, copy_exec doesn't know that
    cp -pL /usr/lib/x86_64-linux-gnu/libpcsclite.so.1 "${DESTDIR}/usr/lib/x86_64-linux-gnu/libpcsclite.so.1"
    mkdir -p "${DESTDIR}/lib/x86_64-linux-gnu"
    # without this, pcscd aborts with a pthread_cancel error
    cp -pL /lib/x86_64-linux-gnu/libgcc_s.so.1 "${DESTDIR}/lib/x86_64-linux-gnu/libgcc_s.so.1"
    # this gets copied as a dangling symlink, fix it
    rm "${DESTDIR}/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist"
    cp -pL /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist "${DESTDIR}/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist"
    # pcscd needs this to open the reader once it has found it
    cp -pL /lib/x86_64-linux-gnu/libusb-1.0.so.0 "${DESTDIR}/lib/x86_64-linux-gnu/libusb-1.0.so.0"
    
  • /etc/initramfs-tools/scripts/local-bottom/killpcscdसाफ करने के लिए एक और स्क्रिप्ट स्थापित करें :

    #!/bin/sh
    
    set -e
    
    PREREQ=cryptopensc
    
    prereqs()
    {
        echo "$PREREQ"
    }
    
    case $1 in
        prereqs)
            prereqs
            exit 0
            ;;
    esac
    
    # because cryptopensc does not do it properly
    killall pcscd
    

1
इसे प्राप्त करने के लिए स्मार्ट-कार्ड और कुडोस का उपयोग करने के लिए बहुत अच्छा प्रोत्साहन, लेकिन मैं कहूंगा कि एक वितरण-विशिष्ट विधि है जिसमें परिवर्तनशील init प्रणाली और तृतीय-पक्ष हैक स्क्रिप्ट्स को सिस्टम निर्देशिका में बिना पढ़े हुए पथों के साथ बदल दिया गया है, जिन्हें एक उत्तर के रूप में नहीं समझा जा सकता है कि कैसे पासकी फाइल प्रश्न का उपयोग करने के लिए। अविश्वसनीय गड़बड़ इन सॉफ्टवेयर, पर प्रकाश डाला गया है।
17

@dbanet, मैं पूरी तरह से सहमत हूं और मुझे उम्मीद है कि कोई और साथ आएगा और यह वर्णन करेगा कि किसी अन्य सरल तरीके से ऐसा कैसे किया जाए। तब ओपी अपना पसंदीदा चुन सकते हैं।
सेलडा

dbanet और @Celada, बिल्कुल मेरे विचार। यह अब तक बहुत जटिल है और अगर मैं ऐसा करने का प्रबंधन करता हूं, तो इसका मालिकाना अर्थ, एक अन्य विक्रेता के पास एक और तरीका होगा। :(
नितिन

3

फ़ाइल में बस लुक्स पासवर्ड को स्टोर करना संभव है।

मैं अपने घर के कंप्यूटर पर इसका उपयोग करता हूं; रूट फाइल सिस्टम एक नियमित ल्यूक वॉल्यूम पर रहता है जिसे मैं बूट पर अपने पासफ़्रेज़ के साथ अनलॉक करता हूं। अतिरिक्त ड्राइव में जनरेट किए गए पासवर्ड के साथ एक ल्यूक वॉल्यूम होता है।

यह अतिरिक्त वॉल्यूम एक पासवर्ड फ़ाइल द्वारा अनलॉक किया गया है जो एन्क्रिप्टेड रूट फ़ाइल सिस्टम पर रहता है। अगर रूट फाइल सिस्टम अनलॉक हो जाता है तो यह बूट के दौरान अपने आप अनलॉक हो जाता है।

मेरा /etc/crypttabऐसा दिखता है:

crypt-root UUID=c5a2cf25-0aae-457e-874f-fca7ea3d5742 none luks
crypt-data UUID=96d79323-246d-49e0-9149-ec3a4cfc1c1e /etc/crypt-data.key luks

तीसरा noneफाइल रूट फाइल सिस्टम के लिए कीफाइल है , लेकिन /etc/crypt-data.keyडेटा फाइल सिस्टम के लिए। /etc/crypt-data.keyपासवर्ड का पासवर्ड होता है:

Tm90IHJlYWxseSBteSBwYXNzd29yZC4K

ध्यान दें, पासवर्ड के हिस्से के रूप में एक नई लाइन या कोई अन्य सफेद स्थान लिया जाएगा! ध्यान रखें कि यह फ़ाइल बिना नई लाइन के अनुगामी नहीं है। यह भी सुनिश्चित करें कि इसकी सख्त अनुमति है:

-rw------- 1 root root 59 Sep 14 23:57 /etc/crypt-data.key

आपको कई संस्करणों के लिए इस दृष्टिकोण की नकल करने में सक्षम होना चाहिए (या तो अलग पासवर्ड या एक साझा पासवर्ड, आपकी पसंद के साथ)।


क्या आप यह भी उल्लेख कर सकते हैं कि पासवर्ड के बजाय कीफाइल का उपयोग करने के लिए LUKS को कैसे कॉन्फ़िगर करें?
नितिन

@ नितिन कीफाइल मेरे उदाहरण में तीसरा क्षेत्र है /etc/crypttab। मैंने यह स्पष्ट करने के लिए थोड़ा अतिरिक्त पाठ जोड़ा।
मार्सेल्म
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.