सुरक्षित रूप से btrfs फाइल सिस्टम पर फ़ाइलें हटाएं


22

कभी-कभी, फ़ाइल सिस्टम में फ़ाइल को हटाने की आवश्यकता होती है, और सुनिश्चित करें कि फ़ाइल वास्तव में चली गई है। एक फ़ाइल जिसमें संवेदनशील पासवर्ड होते हैं, उदाहरण के लिए, डिस्क से आसानी से मिटा दिया जाना चाहिए।

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

कई फ़ाइल सिस्टम पर, श्रेड प्रोग्राम इस तरह के सुरक्षित विलोपन को सक्षम करता है। हालाँकि, btrfs जैसे CoW फ़ाइल सिस्टम पर, यह दृष्टिकोण बेकार है । समस्या को इस तथ्य से बढ़ा दिया गया है कि फ़ाइल वॉल्यूम स्नैपशॉट पर मौजूद हो सकती है।

क्या btrfs फाइल सिस्टम पर फ़ाइल को सुरक्षित रूप से हटाने का कोई तरीका है ? क्या सभी बिंदुओं (सभी संस्करणों पर) को हटाना और शून्य स्थान को खाली करना पर्याप्त है ?


2
अच्छा सवाल, मैंने पहले उस मुद्दे के बारे में नहीं सोचा था। उस मुद्दे के आसपास काम करने का एक तरीका ऐसी फ़ाइलों को एन्क्रिप्ट करना होगा। आप पूरी डिस्क को एन्क्रिप्ट भी कर सकते हैं, लेकिन अगर कोई हमलावर रनिंग सिस्टम तक रूट एक्सेस प्राप्त करता है, तो यह आपकी मदद नहीं करेगा ...
mreithub

@ मैरिथब वास्तव में, इस तरह की फ़ाइलों को एन्क्रिप्ट करना हमेशा पहली जगह में एक अच्छा विचार है, जैसा कि एफडीई है। यह सभी उपयोग के मामलों पर विचार नहीं कर सकता है, हालांकि (उदाहरण के लिए एक एम्बेडेड सिस्टम - हालांकि यह यकीन है कि अगर इस तरह की प्रणाली वैसे भी btrfs चल रही होगी ...)। मैं वास्तव में यह पूछ रहा हूँ क्योंकि मैं संवेदनशील फ़ाइलों को कॉपी करने से पहले एन्क्रिप्शन सेटअप करना भूल गया था, लेकिन मैं पूरे विभाजन को पोंछने से बचना चाहता हूँ
जनकॉप्लॉप

जवाबों:


9

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

ध्यान दें कि शून्य के साथ मिटना यादृच्छिक बाइट्स के साथ मिटाने के रूप में अच्छा है, और आपको कई पास की आवश्यकता नहीं है। जीरो के साथ इरेज़िंग ने अवशिष्ट डेटा छोड़ा जो 1980 की हार्ड डिस्क प्रौद्योगिकियों के साथ प्रयोगशाला स्थितियों में आंशिक रूप से पुनर्प्राप्त किया जा सकता था; यह आज लागू नहीं है। देखें कि हार्ड ड्राइव पर शून्य (या यादृच्छिक डेटा) क्यों लिख रहा है, यह एक बार करने से बेहतर है?

आप डिस्क पर सब कुछ एन्क्रिप्ट करके क्लीयरटेक्स्ट गोपनीय डेटा से छुटकारा पा सकते हैं। उस फाइलसिस्टम पर एक ई- क्रिप्टो वॉल्यूम सेट करें और अपनी सभी (गोपनीय) फ़ाइलों को उसमें स्थानांतरित करें। फिर फाइल सिस्टम के सभी अप्रयुक्त स्थान को अधिलेखित करें। आप फ़ाइल सिस्टम को भरकर इसका अधिकांश भाग मिटा सकते हैं cat /dev/zero >zero। अभी भी कुछ जानकारी अधूरी ब्लॉक में बची रह सकती है (ऐसे ब्लॉक जिनमें फाइल का आखिरी हिस्सा होता है, उसके बाद कुछ कचरा होता है - जिसे गोपनीय फाइल से छोड़ा जा सकता है)। यह सुनिश्चित करने के लिए कि कोई अपूर्ण ब्लॉक नहीं हैं, फाइल सिस्टम पर सब कुछ को स्थानांतरित करने के लिए ecryptfs (ecryptfs की फाइलें पूरे ब्लॉक का उपयोग करती हैं, कम से कम विशिष्ट सेटअपों पर जहां ब्लॉक 4kB हैं)। इसे सभी संस्करणों पर लागू करना और सादे स्नैप गोपनीय डेटा वाले सभी स्नैपशॉट को मिटाना सुनिश्चित करें।

पत्रिका में अभी भी कुछ जानकारी शेष हो सकती है। मैं नहीं जानता कि कैसे रगड़ना है।

SSD पर, ब्लॉक रीकैलोकेशन के कारण, ऐसा डेटा छोड़ा जा सकता है जिसे सामान्य सॉफ़्टवेयर साधनों द्वारा नहीं पढ़ा जा सकता है, लेकिन फ़र्मवेयर को हैक करके या भौतिक पहुँच के साथ पुनर्प्राप्त किया जा सकता है। वहां आपका एकमात्र सहारा एसएसडी का पूर्ण सफाया है।


3
जीरो का नुकसान यह है कि उन्हें संकुचित किया जा सकता है या पूरी तरह से छोड़ा जा सकता है (एक SSD शून्य लिखने के बजाय TRIM हो सकता है, क्योंकि जब आप उन्हें पढ़ते हैं तो TRIM'd सेक्टर शून्य हो जाते हैं)। जो आजकल जीरो को असुरक्षित बनाता है। रैंडम डेटा का उपयोग करके फाइलसिस्टम और डिस्क को वास्तव में डेटा को लिखने के लिए मजबूर करता है।
फ्रॉस्ट्सचुट्ज़

@frostschutz 0ठीक होने के अलावा कोई भी चरित्र लिखेंगे , और TRIMing के अधीन नहीं, 1बजाय सभी लिखने के ? या कुछ ड्राइव सब पर संपीड़न का उपयोग करते हैं?
Xen2050

@frostschutz यदि आप शून्य के साथ एक ecryptfs मात्रा भर रहे हैं (जो कि मुझे लगा कि उत्तर यहां प्रस्तावित है, हालांकि, आगे के निरीक्षण पर, मुझे लगता है कि उनका वाक्यांश वास्तव में अस्पष्ट है), तो आप अनिवार्य रूप से यादृच्छिक लिखेंगे (असंवेदनशील / uncheatable) डिस्क पर डेटा, नहीं?
जेम्स दिवालीवूड

@JamesTheAwesomeDude नहीं, मैं अनएन्क्रिप्टेड भाग को शून्य लिखने का प्रस्ताव कर रहा था, लेकिन मैंने उल्लेख किया कि यह SSD पर नीचे पर्याप्त नहीं था।
गिल्स एसओ- बुराई को रोकें

6

हम्म, btrfs सभी सामान्य कतरन तरीकों को हराने के लिए लगता है ...

  • एक माउंट विकल्प कहा जाता है, nodatacowलेकिन यह पहले से मौजूद फ़ाइलों को प्रभावित नहीं करता है।
  • जैसा कि आपके पास पहले से ही आपकी डिस्क पर समझदार फाइलें हैं, यह btrfs FAQ प्रविष्टि आपको मदद नहीं करेगी।
  • तो फिर वहाँ है debugfs। यह केवल एक्सट्रीम फाइल सिस्टम के लिए है, लेकिन इसके लिए एक पैच है जो काम कर सकता है। आप प्रभावित ब्लॉक पते का पता लगाने के लिए इसका इस्तेमाल कर सकते हैं और फिर उन्हें सीधे / dev / sdXY पर लिख सकते हैं। लेकिन यह बहुत खतरनाक है और काम नहीं कर सकता है (खासकर अगर फ़ाइल के अधिक स्नैपशॉट हैं)
  • एक btrfs पैच लिखें जो एक को modifiy (या shred) विशिष्ट स्नैपशॉट या एक पूरी फ़ाइल की अनुमति देता है
  • सबसे साफ प्रयास (वास्तव में संवेदनशील डेटा के लिए) निम्नलिखित होगा:

    • एक और डिस्क खरीदें (जब तक कि आपको पहले विभाजन पर प्रभावित विभाजन की एक प्रति के लिए पर्याप्त खाली स्थान न मिल जाए)
    • सेटअप पूर्ण डिस्क एन्क्रिप्शन और उस पर आपकी फ़ाइल सिस्टम
    • डिस्क से b तक सब कुछ कॉपी करें
    • सिस्टम b में बूट करें और पूरे डिस्क को श्रेड करें ...

    यह सबसे सस्ता तरीका नहीं हो सकता है, लेकिन आज की कम भंडारण लागत और आपके द्वारा अन्य विकल्पों के साथ होने वाली परेशानी को देखते हुए यह वास्तव में सबसे सस्ता (श्रम घंटों के संदर्भ में) हो सकता है।


nodatacowनई बनाई गई फ़ाइलों के Cलिए ध्वज की डिफ़ॉल्ट स्थिति सेट करता है । निश्चित रूप से एक बस और फिर यह हो सकता है? chattr +C ~/.browser/logins.sqliteshred
जेम्स दिवालीवूड

-6

नहीं है shred(1)(अपने वितरण के संकुल में होना चाहिए) यूनिक्स / लिनक्स के लिए। मैं ईएफएफ की सिफारिश करता हूं ।


3
यदि आप प्रश्न को
दोबारा जांचते

मुझे लगता है कि सभी संवेदनशील फ़ाइलों के एन्क्रिप्शन का उपयोग करने के लिए सुझाव हैं, जिस कारण से आप उल्लेख करते हैं।
वॉनब्रांड

2
"कई फ़ाइल सिस्टम पर, श्रेड प्रोग्राम इस तरह के सुरक्षित विलोपन को सक्षम करता है। हालांकि, कॉट फाइल सिस्टम जैसे कि btrfs पर, यह दृष्टिकोण बेकार है।" वहाँ दो लिंक भी है।
गॉनकालॉप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.