Ubuntu के लिए दो-कारक प्रमाणीकरण के साथ पूर्ण डिस्क एन्क्रिप्शन: कैसे?


9

पृष्ठभूमि की जानकारी

मैं हाल ही में विंडोज बंद एक लिनक्स नौसिखिया हूँ। मैं वर्तमान में पूर्ण डिस्क एन्क्रिप्शन के बिना Ubuntu 11.04 का उपयोग कर रहा हूं। केवल मेरी होम निर्देशिका एन्क्रिप्ट की गई है, और eCryptFS के साथ है। हाल ही में, मैंने नोटिस करना शुरू कर दिया है कि एन्क्रिप्शन उतना पारदर्शी नहीं है जितना होना चाहिए। उदाहरण के लिए, VMWare, कभी-कभी मेरे एन्क्रिप्टेड होम निर्देशिका में संग्रहीत आभासी मशीनों के लिए समस्याओं में चलता है, इसलिए मैंने बस वर्चुअल मशीनों को एक अनएन्क्रिप्टेड स्थान पर स्थानांतरित कर दिया और इसे अपने एन्क्रिप्टेड होम डायरेक्टरी से जोड़ा। लेकिन यह इस बिंदु के अलावा है: मैंने महसूस किया है कि सिस्टम को खुला रखने के लिए वास्तव में बहुत सुरक्षित नहीं है क्योंकि एक खुला स्रोत ऑपरेटिंग सिस्टम जैसे उबंटू को गुप्त रखने के लिए विभाजित करने वाली जानकारी को संशोधित करना बहुत आसान है।


लक्ष्य

मैं एक कुंजी डिवाइस और पूर्व-बूट प्रमाणीकरण के लिए एक पासवर्ड के साथ संयोजन में पूर्ण डिस्क एन्क्रिप्शन कार्य करने में सक्षम होना चाहता हूं।


आवश्यकताएँ / विवरण

  1. संपूर्ण डिस्क को एन्क्रिप्ट किया जाना चाहिए। कम से कम, डिस्क में अलग-अलग विभाजन होते हैं जो सभी एन्क्रिप्टेड होते हैं। यदि एन्क्रिप्शन के साथ विभाजन को भी छिपाना संभव है, तो मैं इसके लिए जाऊंगा। एन्क्रिप्शन जितना अधिक पारदर्शी होगा, उतना अच्छा होगा; मुझे अपने कंप्यूटर का उपयोग किसी अलग तरीके से नहीं करना चाहिए और न ही किसी अन्य चीज़ को कॉन्फ़िगर करना चाहिए।
  2. एन्क्रिप्टेड पार्टीशन को अनलॉक और बूट करने के लिए उपयोग किया जाने वाला डिवाइस एक छोटा बाहरी पोर्टेबल डिवाइस होना चाहिए। यह दो उद्देश्यों को पूरा करता है: बूट लोडर को दुर्भावनापूर्ण प्रयोजनों के लिए बदल दिए जाने की संभावना बहुत कम है क्योंकि यह उपयोग में न होने पर मेरे साथ रहेगा; और डिस्क को डिक्रिप्ट करने के लिए प्रमुख फाइलें किसी भी रूप में एन्क्रिप्टेड डिस्क पर कहीं भी नहीं मिलेंगी।
  3. कुंजी फाइलों को पासवर्ड से एन्क्रिप्ट किया जाना चाहिए। क्या मुझे अपना कंप्यूटर और USB डिवाइस खोना चाहिए, डेटा और ऑपरेटिंग सिस्टम अभी भी सुरक्षित रहेगा। अगर मैं USB कुंजी खो देता हूं या यह समझौता हो जाता है, तो मैं बैकअप से एक और स्वच्छ बना सकता हूं। किसी भी मामले में कोई सूचना नहीं दी गई है। बेशक, अगर मैं अपना कंप्यूटर खो देता हूं, तो यह असंगत है।

हां, मैंने कई स्थानों से गाइडों को देखा है, लेकिन समस्या यह है कि वे सभी आवश्यकताओं (विशेष रूप से संख्या 3) को संबोधित नहीं करते हैं। मुझे पूरा यकीन है कि मेरी आवश्यकताएं काफी सामान्य हैं जो किसी ने पहले ही इस तरह के सेटअप को लागू करने और सफलतापूर्वक लागू करने की कोशिश की है। मैं आभारी रहूंगा यदि कोई लिनक्स प्रो एक समाधान साझा कर सकता है।


2
पुन: "चूंकि उबंटू जैसे एक ओपन सोर्स ऑपरेटिंग सिस्टम को गुप्त रखने की सूचना को विभाजित करने के लिए संशोधित करना बहुत आसान है।" - आप आश्चर्यचकित होंगे कि बंद स्रोत OSes को ऐसा करने के लिए कितना आसान है । तथ्य यह है कि एक कार्यक्रम खुला-स्रोत है इसका मतलब स्थानीय हमलों के खिलाफ इसकी सुरक्षा या असुरक्षा के बारे में कुछ भी नहीं है
user1686

जवाबों:


2

पूर्ण डिस्क एन्क्रिप्शन करने का एक सरल तरीका है जिसमें किसी विशेष अंगूठे ड्राइव और बूट करने के लिए आपके पासवर्ड की उपस्थिति की आवश्यकता होती है।

आप जो भी करते हैं वह आपके पूरी तरह से एन्क्रिप्ट की गई हार्ड ड्राइव से LUKS हेडर को अलग कर देता है और उसे आपके थंब ड्राइव पर स्टोर कर देता है।

मुझे लगता है कि आपके पास पहले से ही निम्न सेटअप है:

# /dev/sda1 is the boot partition (100MB)
# /dev/sda2 is the encrypted partition
parted /dev/sda mklabel msdos
parted /dev/sda -- mkpart primary ext2 1M 200M
parted /dev/sda -- mkpart primary ext4 200M -100M
cryptsetup luksFormat /dev/sda2

लुक्स हेडर की एक प्रति बनाएँ और इसे स्थानीय डिवाइस से मिटाएँ:

mkdir /media/ramdisk && mount -t tmpfs -osize=20m,rw tmpfs /media/ramdisk
cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file /media/ramdisk/header.img
dd if=/dev/urandom of=/dev/sda2 bs=1M count=2

यदि आप उच्च-बजट एजेंसी का लक्ष्य हैं, तो अंतिम चरण को कई बार चलाएँ। मैंने हेडर को अस्थायी रूप से पकड़ने के लिए एक रैमडिस्क भी बनाया है ताकि बाद में यह आपके आसपास न रहे।

/ Us / sdb में अपने USB डिवाइस के साथ, एक 2MB विभाजन बनाएं और उस पर हेडर लोड करें:

parted /dev/sdb -- mklabel MSDOS
parted /dev/sdb -- mkpart primary 1M 3M
dd if=/media/ramdisk/header.img of=/dev/sdb1

अभी, / dev / sda2 में सब कुछ यादृच्छिक डेटा की तरह दिखता है, और आपके पास / dev / sdb1 में आपका हेडर है। एन्क्रिप्टेड ड्राइव को मैन्युअल रूप से उपयोग करने के लिए:

cryptsetup luksOpen --header /dev/sdb1 /dev/sda2 rootfs
mount /dev/mapper/rootfs /target

अगला कदम यह है कि आपकी बूट प्रक्रिया को बूट पर डालने के लिए पेनड्राइव मांगे। मैंने पाया कि यह मान लेना आसान है कि यह वहीं होगा और अन्यथा विफल। सबसे पहले, अपने उपकरणों की आईडी और UUID का पता लगाएं:

find -L /dev/disk/by-id/ -samefile /dev/sdb1
/dev/disk/by-id/usb-Generic-_Compact_Flash-part1
find -L /dev/disk/by-id/ -samefile /dev/sda2
/dev/disk/by-id/scsi-SATA_ST3320820AS_5QF28W6V-part2

blkid /dev/sdb1
/dev/sdb1: UUID="63347546-2db3-4bc1-9414-1142739a4c9f" TYPE="crypto_LUKS"

अगला /etc/crypttabइस तरह दिखने के लिए अपनी लाइन संपादित करें :

root /dev/disk/by-id/scsi-SATA_ST3320820AS_5QF28W6V-part2 none luks,header=/dev/disk/by-id/usb-Generic-_Compact_Flash-part1

( विकल्प के लिए समर्थन पाने के लिए आपको इस पैच की आवश्यकता हो सकती headerहै crypttab)

अंतिम लेकिन कम से कम, अपने initram को अपडेट न करें:

update-initramfs -u

आप इसे एक कदम आगे ले जा सकते हैं और वास्तव में पूरे बूट विभाजन को USB ड्राइव पर लोड किया जा सकता है । इस लेख के लेखक इस साइट पर एक फॉलो-अप कर रहे थे ।

कई अलग-अलग दृष्टिकोण हैं जिन्हें आप अलग-अलग डिग्री के साथ सुरक्षा और आश्वस्तता के साथ ले सकते हैं

सुरक्षा के बारे में एक विशेष नोट: यदि आपका पासफ़्रेज़ समझौता किया गया है, तो हेडर की एक प्रति वाला कोई भी व्यक्ति डेटा को डिक्रिप्ट कर सकेगा, भले ही आप पासफ़्रेज़ को बाद में बदल दें।


1

मुझे पता है कि ट्रू क्रिप्ट OSX, विंडोज और लिनक्स के लिए उपलब्ध है। आप संपूर्ण ड्राइव के लिए एन्क्रिप्शन के दो स्तर करने में सक्षम हैं। मैंने इसे एईएस पूर्ण डिस्क एन्क्रिप्शन के साथ डेबियन पर उपयोग किया है। हार्ड ड्राइव पर डेटा तक पहुंचने के लिए बूट पर पासवर्ड की आवश्यकता होती है।


3
मुझे लगा कि TrueCrypt फुल डिस्क एन्क्रिप्शन केवल विंडोज के साथ काम करता है।
केविन ली

two levels of encryption for the whole drive! =two factor auth
GnP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.