मैं एक अंगूठे ड्राइव की सामग्री को सुरक्षित रूप से कैसे हटा सकता हूं ताकि डेटा पुनर्प्राप्त नहीं किया जा सके।


32

मैं जानना चाहूंगा कि यदि संभव हो तो डेटा पुनर्प्राप्त नहीं किया जा सकता है तो टर्मिनल के माध्यम से यूएसबी फ्लैश ड्राइव को कैसे हटाएं।


31
एक फ्लैश ड्राइव? खुली हुई चीज़ को क्रैक करें, सभी चिप्स को ग्रीन सर्किट बोर्ड चीज़ से हटा दें, और उन्हें इट्टी बाइट चमकदार छोटे टुकड़ों में मैश कर दें, फिर एक और खरीद लें। शारीरिक विनाश वास्तव में सुनिश्चित करने का एकमात्र तरीका है, 'सभी पहनने-समतल करने और सामान रखने का कॉस। भविष्य में, फुल-डिस्क एन्क्रिप्शन का उपयोग करें और जब आप इसे अब नहीं चाहते हैं तो पासवर्ड खो दें।
ब्लैकलाइट शाइनिंग

1
@ ब्लेकलाइट शाइनिंग - यह एकमात्र वास्तविक उत्तर है। सस्ते स्टिक के बहुत सारे रीसायकल भी हैं।
mikeserv

1
@BlacklightShining इसे प्लाज्मा में बदलना भी अच्छी तरह से काम करता है।
PyRulez

3
यदि आपके लिए यह महत्वपूर्ण है कि डेटा अप्राप्य है, तो एकमात्र "सुरक्षित" समाधान भौतिक विनाश है। यदि यह केवल पुनर्प्राप्त करने के लिए मुश्किल होने के लिए पर्याप्त है, तो वास्तव में प्रारूप / अधिलेखित से अधिक प्रारूप की आवश्यकता नहीं है।
सब्रीक

इसे चारकोल की आग में जलाएं, जिससे सभी हिस्से लाल गर्मी तक पहुंच सकें।
बेन

जवाबों:


47

टीएल / डीआर: सुनिश्चित करें कि आपको सही डिवाइस नाम मिलता है, सुनिश्चित करें कि यह माउंट नहीं किया गया है, और जितना आप कर सकते हैं उतने यादृच्छिक ओवरराइट करें। यदि आप हाल ही में पर्याप्त वितरण पर हैं, तो आप फ्लैश हार्डवेयर के लिए डिज़ाइन किए गए इरेज़ कमांड द्वारा इसका अनुसरण कर सकते हैं। इन जांचों में, हमेशा ड्राइव का उपयोग करें (जैसे / dev / sd h ) और विभाजन नाम नहीं (जो / dev / sd h1 होगा )

# dmesg|grep sdXX
[3600.000001] sd 6:0:0:0: [sdXX] 125106176 512-byte logical blocks: (64.0 GB/59.6 GiB)
# blkid|grep sdXX
/dev/sdXX1: PARTUUID="88a03bb2-ced8-4bb2-9883-0a51b4d460a8"
# df|grep /dev/sdXX
# shred -vzn8 /dev/sdXX
shred: /dev/sdXX: pass 1/9 (random)...
shred: /dev/sdXX: pass 1/9 (random)...46MiB/3.8GiB 1%
...
shred: /dev/sdXX: pass 9/9 (000000)...3.8GiB/3.8GiB 100%
# blkdiscard -s /dev/sdXX
blkdiscard: /dev/sdXX: BLKSECDISCARD ioctl failed: Operation not supported
# blkdiscard /dev/sdXX
blkdiscard: /dev/sdXX: BLKDISCARD ioctl failed: Operation not supported
#

सिद्धांत रूप में, शून्य के साथ ओवरराइटिंग ddठीक है। हालाँकि, फ्लैश ड्राइव के इंटर्नल कैसे बनाए जाते हैं, अगर आप सिंगल ओवरराइट पास का उपयोग करते हैं, तो वास्तविक ब्लॉक के पीछे छिपे डेटा की कई परतें हो सकती हैं जो अभी भी बचे हुए जानकारी को संग्रहीत कर रही हैं।

आमतौर पर फ्लैश स्टोरेज का एक हिस्सा दोषपूर्ण होता है, और निर्माण के दौरान इसे चिह्नित किया जाता है। ऐसे अन्य बिट्स भी हैं जो गलत हो सकते हैं (अपरिवर्तनीय, अस्थिर, या अस्वच्छ हो जाते हैं), इन भागों को जीवन भर के दौरान दोषपूर्ण रूप से चिह्नित किया जाना चाहिए। यह जानकारी आपके डेटा के समान आरक्षित स्थान पर संग्रहीत की जाती है। यह कई कारणों में से एक है 4GB थंब ड्राइव 2 ^ 32 बाइट्स क्षमता नहीं दिखा रहा है।

फ्लैश स्टोरेज को आंतरिक रूप से बड़े ब्लॉकों में भी व्यवस्थित किया जाता है, कभी-कभी ड्राइव पर काम करने वाले फाइल सिस्टम की तुलना में बहुत बड़ा होता है। एक विशिष्ट फाइलसिस्टम ब्लॉक का आकार 4KB है, और एक ही बार में मिटाए जाने वाले फ्लैश सेगमेंट 64KB से लेकर कई मेगाबाइट तक हो सकते हैं। इन बड़े ब्लॉकों को केवल पूरे में ही मिटाया जा सकता है, जो सभी ब्लॉक को एक ज्ञात स्थिति (सभी 1s या सभी 0s) पर रीसेट करता है। बाद में एक डेटा राइट किसी भी बिट्स को बदल सकता है (डिफ़ॉल्ट 1s को 0 एस में बदल दें जहां आवश्यक हो, या डिफ़ॉल्ट 0 एस को 1 एस में बदल दें), लेकिन केवल एक बार । किसी भी बिट को डिफ़ॉल्ट में वापस बदलने के लिए , सभी सेगमेंट को फिर से मिटाने की आवश्यकता है!

इसलिए, जब आप एक 4KB ब्लॉक बदलना चाहते हैं (फाइलसिस्टम को फाइल के बीच में एक ही कैरेक्टर बदलने के लिए कहा जाता है), फ्लैश कंट्रोलर को पुराने डेटा के सभी 64KB को पढ़ना और बफर करना होगा, यह सब मिटाना होगा, और नई सामग्री वापस लिखें। यह बहुत धीमी गति से होगा, मिटाने वाला सेगमेंट सबसे धीमा ऑपरेशन है। इसके अलावा, एक सेगमेंट केवल एक सीमित समय (दसियों हज़ार विशिष्ट है) द्वारा मिटाया जा सकता है, इसलिए यदि आप किसी एकल फ़ाइल में बहुत अधिक बदलाव करते हैं, तो यह ड्राइव को जल्दी से खराब कर सकता है।

लेकिन यह नहीं है कि यह कैसे किया जाता है। बुद्धिमान फ्लैश कंट्रोलर केवल 4KB नए डेटा को कहीं और लिखते हैं, और पुराने ब्लॉक के बीच में डेटा के इस 4KB पर रीडायरेक्ट करने के लिए एक नोट बनाते हैं। उन्हें कुछ और जगह की आवश्यकता है, जिसे हम रीडायरेक्ट के बारे में इस जानकारी को स्टोर करने के लिए नहीं देख सकते हैं। वे यह सुनिश्चित करने का भी प्रयास करते हैं कि वे डेटा को संग्रहीत करने के लिए सभी सुलभ खंडों से गुजरते हैं, इसे वियर लेवलिंग कहा जाता है ।

इसका मतलब है कि आम तौर पर पुराना डेटा अभी भी कहीं न कहीं ड्राइव पर है! यदि आपने सभी सुलभ ब्लॉकों को साफ़ कर दिया है, तो सभी छिपे हुए ब्लॉक अभी भी डेटा का एक हालिया संस्करण रखते हैं। क्या यह किसी ऐसे हमलावर के लिए सुलभ है जिसे आप चाहते हैं कि आपका डेटा सुरक्षित रहे, यह एक अलग सवाल है।

यदि आपके पास हाल ही में पर्याप्त वितरण है, और USB ड्राइव को यह प्रकट करने के लिए प्रोग्राम किया गया है कि यह एक फ्लैश ड्राइव है, blkdiscardतो अंतर्निहित TRIMऑपरेशन का उपयोग कर सकता है , जो कि उस खंड को मिटा देता है जिसके बारे में हमने ऊपर बात की थी। यह सुनिश्चित करने के लिए एक अतिरिक्त ध्वज भी है कि हार्डवेयर द्वारा अदृश्य छिपा हुआ डेटा पूरी तरह से मिटा दिया गया है:

# blkdiscard -s /dev/myusbdevice

-s, --secure एक सुरक्षित त्याग करें। एक सुरक्षित त्याग एक नियमित रूप से त्यागने के समान है सिवाय इसके कि त्याग किए गए ब्लॉकों की सभी प्रतियां जो संभवतः कचरा संग्रह द्वारा बनाई गई थीं, उन्हें भी मिटा दिया जाना चाहिए। इसके लिए डिवाइस से समर्थन की आवश्यकता होती है।

यह जरूरी काम नहीं करेगा, जैसा कि मैंने ऊपर दिखाया। यदि आप प्राप्त करते हैं Operation not supported, तो आपकी कर्नेल, आपकी उपयोगिताओं, या यूएसबी गेटवे चिप (जो फ्लैश नियंत्रक को यूएसबी के माध्यम से ड्राइव की तरह दिखने की अनुमति देता है) पासिंग TRIMकमांड का समर्थन नहीं करता है । (फ्लैश कंट्रोलर को अभी भी अपने सेगमेंट को मिटाने में सक्षम होना चाहिए)। यदि यह आपके ड्राइव के विक्रेता द्वारा समर्थित है, तो यह सबसे सुरक्षित तरीका है।

एक और कम सुरक्षित तरीका यह सुनिश्चित करने के लिए कि आप पुराने डेटा को कम करने की अनुमति दे रहे हैं कहीं आसपास घूमने के लिए, इसे कई बार ओवरराइड करना है, यदि संभव हो तो यादृच्छिक मानों के साथ।

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

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

यदि आप डेटा को यादृच्छिक, अप्रत्याशित मानों के साथ अधिलेखित कर रहे हैं, तो ये अनुकूलन असंभव हैं। इसलिए ड्राइव को यह सुनिश्चित करना होगा कि डेटा फ्लैश चिप्स के अंदर जमा हो जाए। लेकिन आप अभी भी इस बात से इंकार नहीं कर पाएंगे कि पहले से इस्तेमाल किए गए कुछ सेक्टर्स अभी भी आपके कुछ पुराने डेटा के साथ मौजूद हैं, लेकिन ड्राइव ने इसे अभी तक मिटाना महत्वपूर्ण नहीं समझा, क्योंकि यह सामान्य रूप से सुलभ नहीं है। केवल वास्तविक TRIMआदेश ही इसकी गारंटी दे सकते हैं।

यादृच्छिक मानों के साथ ओवरराइटिंग को स्वचालित करने के लिए, आप इसका उपयोग करना चाह सकते हैं shred, जैसे:

# shred -vzn88 /dev/myusbdrive

उपयोग किए गए विकल्प:

  • -v बनाने के लिए यह प्रगति दिखाते हैं
  • अंतिम चरण के रूप में शून्य करने के लिए -z
  • -88 ओवरराइट्स के 8 रैंडम पास करना है

यदि संभव हो तो, दोनों का उपयोग करें blkdiscardऔर shred, यदि blkdiscard -sआपकी ड्राइव द्वारा समर्थित है , तो यह इष्टतम समाधान है, लेकिन shredफर्मवेयर की गलतियों को नियंत्रित करने के लिए पहले से करने के लिए चोट नहीं पहुंचा सकता है।

ओह, और हमेशा उस डिवाइस को डबल-ट्रिपल-चेक करें जिसे आप साफ़ करने की कोशिश कर रहे हैं! dmesg यह देखने के लिए मदद कर सकता है कि सबसे हाल ही में डाला गया डिवाइस क्या था, और यह भी डिवाइस नाम की जांच करने के लिए लायक है जिसे आप ls -alउपकरणों के नोड नंबर के साथ, और blkidआउटपुट को देखने का इरादा रखते हैं और यह देखने के लिए कि क्या विभाजन उपलब्ध हो सकता है जो आपने नहीं किया। साफ़ करना चाहते हैं।

इन आदेशों का उपयोग कभी भी आंतरिक ड्राइव पर न करें जिसे आप उपयोग करना चाहते हैं - blkdiscardकेवल ठोस राज्य ड्राइव पर काम करेगा, लेकिन यह डेटा खोने की कोशिश करने के लायक नहीं है!

जैसे-जैसे तकनीक आगे बढ़ती है, डेटा को सुरक्षित रूप से साफ़ करने के अन्य तरीके भी हो सकते हैं।

उल्लिखित एक अन्य तरीका एटीए SECURITY ERASEकमांड है जिसे कमांड के माध्यम से जारी किया जा सकता है hdparm। मेरे अनुभव में, यह वास्तव में फ्लैश ड्राइव पर समर्थित नहीं है। यह एंटरप्राइज़ हार्ड ड्राइव के लिए डिज़ाइन किया गया था, और यह सुविधा हमेशा सबसे कम लागत वाले भंडारण उपकरणों में लागू नहीं की जाती है।

TRIM/ DISCARDऑपरेशन की तुलना में काफी नया है SECURITY ERASEआदेश, और फ्लैश सुविधाओं के जवाब में बनाया गया था, तो यह लागू किया जा रहा, सस्ते यूएसबी ड्राइव में भी का एक बहुत उच्च मौका है, लेकिन यह अभी भी हर जगह नहीं है। यदि आप USB डोंगल में एक SD / माइक्रो SD कार्ड को मिटाना चाहते हैं, और blkdiscardयह समर्थित नहीं है, तो आप एक अलग डोंगल / कार्ड रीडर आज़माना चाहते हैं, और / या सीधे SD / MMC स्लॉट वाली मशीन में कर सकते हैं। ।


अत्याधुनिक जानकारी के लिए धन्यवाद। blkdiscardडेबियन जेसी में है, और केवल उबंटू के सबसे हाल के दो रिलीज में, लेकिन उबंटू एलटीएस 14.04 नहीं। blkdiscardपैकेज util-linuxसंस्करण 2.23 में जोड़ा गया था ।
रॉबर्ट जे

क्या आप जानते हैं कि @zhenech द्वारा एक अन्य टिप्पणी में समाधान की blkdiscardतुलना कैसे की जाती है (विशेष रूप से लिंक: ata.wiki.kernel.org/index.php/ATA_Secure_Erase )। hdparm
रॉबर्ट जे

यकीन नहीं होता है कि फ्लैश ड्राइव के मामले में भी यही है, लेकिन यह पढ़ने लायक हो सकता है howtogeek.com/234683/…
hhaslam11

1
@RobertL बराबर, बुरे तरीके से। अधिकांश सस्ते फ्लैश ड्राइव न तो एटीए सिक्योर इरेज़ और न ही टीआरआईएम को लागू करते हैं, इसलिए दोनों तरीके संभवतः विफल हो जाएंगे।
डस्कवफ

27

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


5
यदि यह एक सस्ता, बदली फ्लैश ड्राइव है, तो निश्चित रूप से भौतिक विनाश के साथ जाना चाहिए। यदि आप एक हथौड़ा का उपयोग करते हैं, तो सुनिश्चित करें कि आपको वास्तविक भंडारण चिप मिलती है। मैंने कुछ हफ़्ते पहले मस्ती के लिए एक पुरानी फ्लैश ड्राइव खोली, और इसकी अधिकांश भौतिक मात्रा वास्तव में मामला और हवा थी।
ब्लैकलाइट शाइनिंग

1
मेरे जवाब के अलावा, मैं पूरी तरह से सहमत हूं - उन्हें ssh एक्सेस के माध्यम से टुकड़ों में तोड़ना मुश्किल है :) यह देखते हुए कि ये डोंगल डेटा स्टोरेज के लिए कितने अविश्वसनीय हैं, वास्तव में उन्हें उसी डेटा से छुटकारा पाना आश्चर्यजनक रूप से मुश्किल है।
chexum

सहमत - यदि आपके लिए यह महत्वपूर्ण है कि डेटा अप्राप्य है, तो भौतिक विनाश एकमात्र विकल्प है। इस पर डेटा के वाणिज्यिक मूल्य की तुलना में, इसका सामना करना पड़ता है, यहां तक ​​कि सबसे महंगी ड्राइव भी शायद उतना महत्वपूर्ण नहीं है। यदि यह महत्वपूर्ण नहीं है कि लगभग कोई भी वाइप / ओवरराइट 'काफी अच्छा' है।
Sobrique

1
यह विधि न केवल सबसे प्रभावी है, बल्कि सबसे मजेदार भी है। स्लेजहेमर का उपयोग करने और इसके लिए भुगतान करने का अवसर कभी न दें।
zetetic

2

लगभग सभी उपलब्ध सुरक्षित-डिलीट फ़ंक्शन को चुंबकीय मीडिया को कताई के लिए डिज़ाइन किया गया था, जहां कंप्यूटर आमतौर पर फ़ाइल के लिए उपयोग किए जाने वाले ब्लॉक का भौतिक स्थान [1] निर्धारित कर सकता है और उन्हीं ब्लॉकों पर लिख सकता है। सॉलिड-स्टेट स्टोरेज कंट्रोलर चिप्स सिस्टम से डेटा के भौतिक स्थान को सार करते हैं और इसे चारों ओर ले जाना पसंद करते हैं।

आपका प्रश्न वास्तव में इस बात पर निर्भर करता है कि आपके डेटा के बाद कौन जा रहा है। यदि आप यादृच्छिक नुकसान या आकस्मिक चोरी के बारे में चिंतित हैं तो एक नियमित प्रारूप ठीक रहेगा। यदि आप अपने निपटान [2] में पर्याप्त संसाधनों के साथ एक उच्च प्रेरित, तकनीकी रूप से सक्षम उपयोगकर्ता द्वारा लक्षित होने के बारे में चिंतित हैं, तो बस ड्राइव को बाधित करें और एक नए पर $ 10 खर्च करें।

  1. हां, लॉजिकल ब्लॉक मैपिंग है। लेकिन तार्किक ब्लॉक ए हमेशा भौतिक ब्लॉक बी का नक्शा देगा।

  2. यह व्यक्ति ड्राइव को खोलेगा, कार्ड से मेमोरी चिप को खींचेगा और नियंत्रक को दरकिनार करते हुए सीधे फ्लैश मेमोरी को पढ़ेगा


1

सबसे आसान और तेज़ तरीका मुझे पता है कि पूरी ड्राइव के लिए शून्य (0) लिखना है:

dd if=/dev/zero of=/dev/sdX

/dev/sdXआपके थंबड्राइव का डिवाइस नोड कहां है।

कुछ अधिक पुनरावृत्तियों और अन्य पैटर्न के साथ अधिक गहन प्रक्रिया का सुझाव देते हैं। ऐसा करने के लिए विशिष्ट उपयोगिताओं उपलब्ध हैं। GNU कोरुटिल्स पैकेज में shredविशेष रूप से इस उद्देश्य के लिए कमांड शामिल है । बहुत से लोग उपयोग भी करते हैं badblocks -w, जो e2fsprogs पैकेज का हिस्सा है। FreeBSD पर shredउपयोगिता कहा जाता है gshredऔर /usr/ports/sysutils/coreutilsया तो /usr/ports/sysutils/fileutilsबंदरगाहों में उपलब्ध होना चाहिए ।


यह वास्तव में एक सुरक्षित वाइप करने के लिए पर्याप्त नहीं है। मैं रैंडम स्टफ के कम से कम 20 सीरीज़ के राइट्स के लिए जाऊंगा। सभी के सर्वश्रेष्ठ मैं सुरक्षित मिटाएँ जैसे shred के लिए एक उपकरण का उपयोग करेगा। हालांकि कुछ लोगों का कहना है कि इसका कोई मतलब नहीं है और यह शून्य पर्याप्त है - मुझे इस पर भरोसा नहीं होगा।
मोनसून

4
@ मोनसून यह सिर्फ एक शहरी किंवदंती है। हालांकि कुछ मानकों की आवश्यकता होती है , लेकिन कोई व्यावहारिक हमला नहीं लगता है।
गिल्स एसओ- बुराई को रोकना '

फ्लैश ड्राइव पहनने के लिए लेवलिंग का उपयोग करते हैं ताकि फ्लैश सेल बहुत तेजी से नष्ट न हो। इसे ऐसे समझें: ड्राइव में 1200 सेल हैं लेकिन केवल आपको यह बताता है कि इसमें 1000 हैं और कंट्रोलर सेलेक्ट करता है कि यह वास्तव में किस सेल को लिखता है। इसलिए dd के बाद आपने 1000 कोशिकाओं को मिटा दिया है, लेकिन 200 को आरक्षित में नहीं रखा है और जिन्हें वास्तविक फ़्लैश को रिजर्व के बिना कंट्रोलर के साथ जोड़कर पढ़ा जा सकता है। मैं dd के बाद एक सुरक्षित मिटा देने का सुझाव दूंगा, लेकिन सभी फ़्लैश मीडिया इसका समर्थन नहीं करते हैं।
जेनेच

@zhenech, "सुरक्षित मिटा" क्या है?
राबर्टएल


0

यदि आप इसे पुन: उपयोग करने की योजना बनाते हैं, तो यह आपके फ्लैश ड्राइव को सुरक्षित रूप से पोंछने में सक्षम होना चाहिए: http://linux.die.net/man/1/scrub यदि नहीं तो इसे पिघलाएं ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.