แรงบันดาลใจในการเขียนบล็อกตอนนี้ก็มาจากการที่ผมอยากทำเท่ ล้างข้อมูลในฮาร์ดดิสก์ WD My Passport Ultra for Mac 4TB แบบเนี๊ยบๆ ชนิดกู้ข้อมูลคืนไม่ได้ ก็เลยจัดการเสียบกะเครื่อง MacBook แล้วใช้ Disk Utility ในการลบข้อมูลในฮาร์ดดิสก์ โดยเลือกเป็นแบบ Most secure ที่ใช้มาตรฐาน US Department of Defense (USDoD) 5220-22 M กันเลยทีเดียว ซึ่งมันจะเป็นการลบข้อมูลแล้วเขียนข้อมูลทับกลับไปกลับมา 7 รอบ … ผลน่ะเหรอ ต้องรอไป 4 วันครับ หึหึ คำถามมันก็เลยมีอยู่ว่า ต้องรอนานขนาดนี้เลยเหรอ แล้วจะทำไปเพื่ออะไร แค่ Delete หรือ Format มันไม่พออีกเหรอ?
รู้ป่าวเนี่ย ว่าการลบด้วย Delete มันไม่ได้ลบจริงๆ หรอก
เชื่อว่าคุณคงจะเคยลบไฟล์ใดๆ ในเครื่องคอมพิวเตอร์ (Window, macOS หรือ Linux) ด้วยการกดปุ่ม Delete ใช่ป่ะ แต่มันก็จะไม่ได้ลบไฟล์ทิ้งจริงๆ ถูกปก มันแค่เอาไฟล์ย้ายไปที่ Recycle bin หรือถังขยะ ซึ่งเราสามารถกลับเข้าไปดู แล้วก็เลือกกู้ไฟล์ที่ลบเอาไว้กลับมาได้ นั่นก็หมายความว่า การลบไฟล์มันไม่ได้ลบจริงๆ ใช่ไหมล่ะ มันแค่ย้ายที่

และต่อให้เป็นการกด Shift + Delete ที่ระบบปฏิบัติการมันจะถามว่า แน่ใจนะว่าจะลบโดยถาวร มันก็ไม่ได้เป็นการลบโดยถาวรแต่อย่างใดหรอกนะครับ เพราะโดยหลักการแล้ว การลบไฟล์ ไม่ว่าจะในระบบปฏิบัติการอะไรก็ตาม จริงๆ มันก็แค่การลบ Pointer ที่ชี้ไปยังข้อมูลที่ถูกลบทิ้ง และทำการแปะป้ายเอาไว้ว่าพื้นที่ที่มีข้อมูลนี้อยู่ สามารถเขียนข้อมูลทับได้ ก็เท่านั้นเอง

พวกโปรแกรมกู้ข้อมูลทั้งหลายแหล่เนี่ย มันมีความสามารถในการสแกนฮาร์ดดิสก์ เพื่อหาดูว่ามีไฟล์อะไรที่ถูกลบ Pointer และถูกแปะป้ายว่าเขียนทับได้เลยจ้า และสามารถกู้ข้อมูลกลับมาได้โดยการเอาป้ายที่แปะเอาไว้ออก แล้วก็สร้าง Pointer ขึ้นมาใหม่ นั่นเอง และก็เพราะเหตุผลนี้แหละ ถ้าเราเผลอลบข้อมูลไป แต่ยังไม่มีการเขียนข้อมูลใหม่เพิ่มเข้าไป โอกาสที่จะกู้ข้อมูลกลับมาได้จึงมีสูงไง

การ Format ฮาร์ดดิสก์ ก็ไม่ได้ลบข้อมูลแต่อย่างใด
สำหรับการ Format ฮาร์ดดิสก์ ก็ไม่ใช่การลบข้อมูลอีกเช่นกันนะครับ อย่าเข้าใจผิด การ Format มันเป็นแค่การปรับไฟล์ระบบเท่านั้นครับ คือ เป็นการล้างไฟล์ระบบเดิมออก แล้วใส่ไฟล์ระบบใหม่เข้าไป ที่มันเหมือนกับว่าข้อมูลโดนลบไปนั่นเพราะว่า ไฟล์ระบบมันทำหน้าที่บอกกับระบบปฏิบัติการว่าข้อมูลถูกเก็บไว้ตรงไหนนั่นเอง
Quick format vs Format
เวลาที่เราจะ Format ฮาร์ดดิสก์ มันจะมีตัวเลือกว่าจะทำ Quick format ไหม หรือว่าจะ Format แบบปกติไป ความแตกต่างของมันก็แค่ว่า…
ถ้าทำ Quick Format มันก็จะแค่เป็นการลบไฟล์ระบบเก่าทิ้งแล้วเขียนไฟล์ระบบใหม่ขึ้นมาตามที่เราเลือก
ถ้าทำ Format แบบปกติ (เรียกว่า Full format) นอกจากจะลบไฟล์ระบบเก่าทิ้งแล้วเขียนใหม่แล้ว ในระหว่างนั้นมันก็จะทำการเช็กฮาร์ดดิสก์ดูว่ามี Bad sectors ไหม ด้วย เลยใช้เวลานานกว่าไง เพราะต้องสแกนฮาร์ดดิสก์ทั้งหมด
ฉะนั้น ก็ไม่ต่างอะไรจากการลบไฟล์แบบปกติครับ พวกโปรแกรมกู้ข้อมูลก็ยังสามารถสแกนข้อมูลในฮาร์ดดิสก์ และกู้ข้อมูลมาได้อยู่ดี (แต่ถ้ามีการเขียนข้อมูลทับไปแล้ว โอกาสที่จะกู้ข้อมูลได้ 100% ก็น้อยลง
แล้วการลบข้อมูลในฮาร์ดดิสก์แบบไม่กะให้กู้ได้เลย จะทำยังไง แล้วทำไมถึงต้องทำ?
โดยปกติแล้ว เราไม่จำเป็นต้องทำอะไรแบบนี้หรอกครับ แต่เราควรทำ (และผู้ใช้งานในระดับองค์กรควรทำอย่างยิ่ง) ก็ตอนที่เรากะว่าจะเอาฮาร์ดดิสก์ตัวนั้นไปให้คนอื่นใช้ครับ แล้วเผอิญว่าฮาร์ดดิสก์ลูกนั้นมีข้อมูลที่เป็นความลับของเรา ไม่อยากเปิดเผยให้คนอื่นรู้ ไม่ไว้ใจ กลัวคนที่ได้ไปใช้ต่อไปแอบกู้ข้อมูลกลับมา อะไรแบบนี้ … แต่ถ้าข้อมูลในนั้นไม่ใช่ข้อมูลความลับสำคัญอะไร ก็ไม่ต้องทำหรอกครับ เสียเวลาเปล่าๆ … เอ้า! นี่พูดจริงๆ
การลบข้อมูลในฮาร์ดดิสก์แบบไม่กะให้กู้ได้เลย หลักการมันก็ง่ายๆ ครับ ผมขอยกตัวอย่างของ USDoD 5220-22M ก็แล้วกันนะครับ ซึ่งตามมาตรฐานแล้ว จะประกอบไปด้วยการเขียนข้อมูลทับสามรอบครับ คือ
- รอบแรก เขียนข้อมูลทับด้วยเลข 0 (ฐานสอง)
- รอบสอง เขียนข้อมูลทับด้วยเลข 1 (ฐานสอง)
- รอบสาม เขียนข้อมูลทับด้วยบิตสุ่ม

ในกรณีของระบบปฏิบัติการ macOS นั้น มันจะมีโปรแกรม Disk Utility ให้เราสามารถสั่ง Erase ฮาร์ดดิสก์ได้ ซึ่งจะสามารถเลือกได้ 4 ระดับ และระดับสูงสุดนี่คือ ตามมาตรฐาน USDoD 5220-22M แต่จะทำการเขียนข้อมูลทับถึง 7 รอบ เพื่อให้ชัวร์

ส่วนถ้าเป็นระบบปฏิบัติการ Windows ต้องไปหาโปรแกรมเพิ่มเอาเองนะครับ แต่ข่าวดีคือ มันมีโปรแกรมฟรีให้เลือกเยอะ ซึ่งผมขอแนะนำโปรแกรมชื่อ Eraser ครับ เพราะมันสามารถเลือกได้ว่าจะลบข้อมูลตามมาตรฐานไหน (วิธีการไหน) และสามารถเลือกได้แบบ ลบทั้งฮาร์ดดิสก์ ลบเฉพาะโฟลเดอร์ หรือลบเฉพาะไฟล์ด้วย
ส่วนถ้าเป็นระบบปฏิบัติการ Linux ละก็ ไม่ต้องไปหาโปรแกรมอะไรเลยครับ สั่งเอาจาก Command line กันได้เลยครับ โดยใช้คำสั่งตามนี้ครับ เริ่มจากการ Unmount ไดร์ฟก่อน โดยแทนที่ X ด้วย Drive letter และ Y ด้วย Partition
sudo umount /dev/sdXY -l
จากนั้นก็ปูพรมเติม 0 เข้าไปในฮาร์ดดิสก์ด้วยคำสั่งด้านล่าง แทนที่ X ด้วย Drive letter ที่เป็นเป้าหมาย
sudo dd if=/dev/urandom of=/dev/sdX bs=10M
สำหรับ Linux นี่แอบวุ่นเนอะ (ฮา)
แต่ถ้าเป็น Solid State Drive (SSD) นี่จะใช้วิธีที่ว่ามาไม่ได้เลยนะ
แต่ถ้าใครใช้ SSD ละก็ อย่าล้างข้อมูลในนั้นด้วยวิธีที่ผมว่าด้านบนล่ะ เพราะว่ามันจะมีผลต่ออายุการใช้งานของ SSD ครับ เนื่องจากอายุการใช้งานของมันขึ้นอยู่กับจำนวนครั้งที่เขียนข้อมูลลง SSD ดังนั้น หากดันทุรังไปใช้วิธีล้างข้อมูลด้วยการเขียนข้อมูลทับๆ ซ้ำๆ ไปบนฮาร์ดดิสก์ ก็ย่อมส่งผลต่ออายุการใช้งานแน่นอน จริงไหมล่ะ
ในกรณีของ SSD เนี่ย ดูเอาเลยครับว่าเราใช้ยี่ห้ออะไรอยู่ แล้วเราก็ดาวน์โหลดเครื่องมือของยี่ห้อนั้นๆ มา เลย เช่น
แหล่งข้อมูลอ้างอิง
- Why Deleted Files Can Be Recovered, and How You Can Prevent It
- Everything You Need to Know About the DoD 5220.22-M Wiping Standard & Its Applications Today
- How to secure erase SSD data
- How to Securely Erase Your SSD Without Destroying It
- How to wipe a hard drive clean in Linux
- How to Wipe a Hard Drive on Any Operating System