วิธีการทริกเกอร์การทำลายตนเองของระบบด้วยรหัสผ่านที่แน่นอนถูกป้อน


46

ฉันจะกำหนดค่าระบบของฉันเพื่อทำลายข้อมูลส่วนบุคคลทั้งหมดเมื่อป้อนรหัสผ่านที่แน่นอนได้อย่างไร แรงจูงใจเบื้องหลังสิ่งนี้เป็นสิ่งที่ NSA

ฉันจินตนาการว่ามีสามกรณีการใช้งานหลัก

  1. เมื่อเข้าสู่ระบบการป้อนรหัสผ่านที่กำหนดไว้ล่วงหน้าจะทำให้เกิดการทำลายข้อมูลผู้ใช้
  2. เมื่อระบบตื่นนอน การป้อนรหัสผ่านที่กำหนดไว้ล่วงหน้าจะทำให้เกิดการทำลายข้อมูลส่วนบุคคล
  3. การป้อนคำสั่งพิเศษด้วยรหัสผ่านที่กำหนดไว้ล่วงหน้าจะทำให้เกิดการทำลายข้อมูลส่วนบุคคล

ฉันรู้ว่าสิ่งที่ชอบ

dd if=/dev/urandom of=/dev/$HOME

ควรเพียงพอสำหรับการทำลายข้อมูล อย่างไรก็ตามฉันไม่ทราบวิธีการที่เรียกใช้รหัสผ่านบางอย่าง

คะแนนโบนัสหากอนุญาตให้เข้าสู่ระบบในขณะที่ข้อมูลจะถูกลบ


9
หากคุณต้องการทำงานนี้จริงๆคุณควรเข้ารหัสฮาร์ดไดรฟ์ของคุณ นี่เป็นเพราะไม่มีการเข้ารหัสคุณจะต้องเขียนทับฮาร์ดไดรฟ์ทั้งหมด แต่ด้วยการเข้ารหัสคุณจะต้องเขียนทับส่วนหัว LUKS (หรืออะไรก็ตาม)
strugee

1
มีโมดูล pam_python ที่อาจทำให้การใช้งานในสิ่งที่คุณต้องการง่ายขึ้น: ace-host.stuart.id.au/russell/files/pam_python
เล่นซ้ำ

7
ถ้าเป็น NSA ที่คุณเป็นห่วงคุณจะdd if=/dev/urandom of=/dev/$HOMEไม่ทำอะไรให้ดี แม้จะสมมติว่าพวกเขาโง่พอที่จะใช้ระบบปฏิบัติการแทนการเอาดิสก์ออกและอ่านโดยตรง แต่ก็มี บริษัท กู้คืนนิติเวชที่สามารถรับข้อมูลจากดิสก์ที่ถูกเขียนทับและเขียนได้จริง
หยุดทำร้ายโมนิก้า

2
# 1 หาก NSA เป็นจริงหลังจากคุณพวกเขาได้ทำการสกัดข้อมูลของคุณอย่างเงียบ ๆ เมื่อสัปดาห์ที่แล้ว # 2 การเข้ารหัสข้อมูลของคุณให้สิทธิ์ตามกฎหมายของ NSA ในการเก็บข้อมูลของคุณตลอดไปหรือใช้เวลานานในการถอดรหัสข้อมูลแล้วแต่ว่าสิ่งใดจะถึงก่อน # 3 หลักฐานการทำลายหลักฐานมักเพียงพอที่ศาลจะให้คุณรับเรื่อง โปรแกรม 'การลบที่ปลอดภัย' ที่เติมศูนย์ของคุณด้วยศูนย์หรือการพูดพล่อยๆแบบสุ่มเป็นหลักฐานว่าคุณทำลายบางสิ่งและจะถูกนำขึ้นศาล
Ryan Ries

3
มันไม่ครอบคลุมทั้ง 3 กรณีของคุณ แต่ดูที่นี่: kali.org/how-to/emergency-self-destruction-luks-kali
faker

คำตอบ:


26

ความคิด # 1 - ระบบปฏิบัติการที่ซ่อนอยู่

ในฐานะที่เป็นวิธีทางเลือกที่คุณสามารถใช้ประโยชน์จากTrueCrypt ของ "ระบบปฏิบัติการที่ซ่อนอยู่" สิ่งนี้ช่วยให้คุณเข้าถึงระบบปฏิบัติการทางเลือกปลอมเมื่อใช้รหัสผ่านที่แน่นอนมากกว่าระบบปฏิบัติการหลัก

สิ่งที่สกัดมา

หากพาร์ติชันระบบหรือไดรฟ์ระบบของคุณเข้ารหัสโดยใช้ TrueCrypt คุณจะต้องป้อนรหัสผ่านการตรวจสอบสิทธิ์การบู๊ตล่วงหน้าในหน้าจอ TrueCrypt Boot Loader หลังจากที่คุณเปิดหรือรีสตาร์ทเครื่องคอมพิวเตอร์ อาจเป็นไปได้ว่าบางคนถูกคุณบังคับให้ถอดรหัสระบบปฏิบัติการหรือเปิดเผยรหัสผ่านการพิสูจน์ตัวตนก่อนการบู๊ต มีหลายสถานการณ์ที่คุณไม่สามารถปฏิเสธได้ (ตัวอย่างเช่นเนื่องจากการกรรโชก) TrueCrypt ช่วยให้คุณสร้างระบบปฏิบัติการที่ซ่อนอยู่ซึ่งไม่สามารถพิสูจน์ได้ว่ามีอยู่จริง (โดยมีแนวทางปฏิบัติตาม - ดูด้านล่าง) ดังนั้นคุณจะไม่ต้องถอดรหัสหรือเปิดเผยรหัสผ่านสำหรับระบบปฏิบัติการที่ซ่อนอยู่

Bruce Schneierครอบคลุมประสิทธิภาพของการใช้งานเหล่านี้ ( ระบบไฟล์ที่ปฏิเสธได้ดังนั้นคุณอาจต้องการตรวจสอบเพิ่มเติมก่อนที่จะดำน้ำ

ความคิดทั้งหมดของการเข้ารหัสแบบปฏิเสธได้นั้นเป็นเวิร์มหนึ่งกระป๋องดังนั้นโปรดระมัดระวังในการใช้งานในบางสถานการณ์ที่ต้องคิดให้ดีล่วงหน้า

แนวคิด # 2 - เพิ่มสคริปต์ลงใน / etc / passwd

คุณสามารถแทรกสคริปต์สำรองลงในรายการของผู้ใช้ใน/etc/passwdไฟล์

ตัวอย่าง

# /etc/passwd
tla:TcHypr3FOlhAg:237:20:Ted L. Abel:/u/tla:/usr/local/etc/sdshell

คุณสามารถตั้งค่าบัญชีของผู้ใช้เพื่อให้เรียกใช้สคริปต์เช่น/usr/local/etc/sdshellที่จะตรวจสอบเพื่อดูว่ามีรหัสผ่านอะไร หากเป็นรหัสผ่านเวทมนต์ที่กระตุ้นการลบมันอาจเริ่มต้นกระบวนการนี้ (แบ็คกราวน์คู่) และวางลงในเชลล์หรือทำอย่างอื่น

หากรหัสผ่านที่ให้ไม่ใช่รหัสผ่านที่มีมนต์ขลังให้ใช้เชลล์ปกติ/bin/bashต่อไป

ที่มา: 19.6.1 การรวมรหัสผ่านแบบครั้งเดียวกับ Unix


2
ความคิด # 2 จะไม่ทำงาน เชลล์จะถูกเรียกใช้เมื่อป้อนรหัสผ่านที่ถูกต้องเท่านั้น (ตามที่กำหนดไว้ใน / etc / shadow) แม้ว่ามันจะใช้งานได้ แต่ก็ไม่มีทางที่สคริปต์จะตรวจสอบว่ามีการป้อนรหัสผ่านใดเมื่อเข้าสู่ระบบ
ขนม

@faker - วิธีนี้ใช้รหัสผ่านเพียงครั้งเดียวในระบบยูนิกซ์ดังนั้นฉันเชื่อว่ามันจะใช้งานได้ อาจไม่รวมกับรหัสผ่าน / etc / shadow ของระบบโดยตรง แต่สามารถใช้การได้
slm

@slm จากหน้าเว็บที่คุณเชื่อมโยงกับ: This puts two passwords on the account: the traditional account password followed by the one-time password.แน่นอนคุณสามารถตรวจสอบสคริปต์เพื่อหารหัสผ่านทำลายได้ แต่หลังจากที่คุณป้อนรหัสผ่านบัญชีที่ถูกต้องเท่านั้น โดยพื้นฐานแล้วคุณมี 3 รหัสผ่าน รหัสผ่านบัญชีทั่วไปรหัสผ่านขั้นตอนที่ 2 ที่ถูกต้องและรหัสผ่านขั้นตอนการทำลายตนเองขั้นตอนที่ 2 ไม่ได้ดีมากและน่าสงสัยสวย ...
กุขึ้น

@ faker: slm ถูกต้อง - ฉันจะไม่ติดตามลิงก์ทีละขั้นตอน แต่จะใช้งานได้ มันจะยังคงลิงก์ไปยังเชลล์หรือสคริปต์อื่น ฉันเห็นเหตุผลว่าทำไมมันไม่ถูกต้อง
Josh

@Josh มันใช้งานได้หากคุณคิดว่าต้องจำรหัสผ่าน 3 รหัสให้เป็นปกติ มิฉะนั้นมันจะไม่ทำงาน
ขนม

16

แนวทางของฉันสำหรับสิ่งนี้คือการทำให้การทำลายตนเองในโมดูลแพม มีกลไกในการจับรหัสผ่านด้วยสคริปต์ตรวจสอบว่าเป็น "พิเศษ" และเริ่มกระบวนการทำลายตนเอง

เขียนบรรทัดของคุณ/etc/pam.d/common-authเป็นบรรทัดแรกเช่นนี้:

auth    optional        pam_exec.so debug expose_authtok /etc/security/suicide.sh

(หรือยกตัวอย่างเช่นใน/etc/pam.d/gdmถ้าคุณเพียงแค่ต้องการให้มีการตรวจสอบการทำงานผ่านทางgdm) expose_authtokทำให้เกิดpam_exec.soโมดูลเพื่อส่งมอบรหัสผ่านทางstdin/etc/security/suicide.shสคริปต์การเข้าสู่ระบบที่เรียกว่า สคริปต์นี้จะทำงานด้วยสิทธิ์พิเศษรูทและตัวอย่างเช่นนี้:

#!/bin/bash
# read the users password from stdin (pam_exec.so gives the provided password 
# if invoked with expose_authtok)
read password

# if its an authentication and it's the user "user" and the special password
if [ "$PAM_TYPE" == "auth" ] && [ "$PAM_USER" == "user" ] && [ "$password" == "magic" ]; then
  # do whatever you want in the background and the authentication could continue
  # normally as though nothing had happened
  exit 0
else
  exit 0
fi

มันจะทำงานแม้ว่าคุณจะเปลี่ยนรหัสผ่านของผู้ใช้ "ปกติ"


8

เพียงแค่คุณทราบว่าใครจาก gov ฯลฯ จะคว้าคอมพิวเตอร์ของคุณสิ่งแรกที่พวกเขาจะทำคือการคัดลอกไดรฟ์บิตสำหรับบิตและทำงานคัดลอก สิ่งเดียวกันจะเกิดขึ้นทุกครั้งที่มีคนทำคอมพิวเตอร์นิติวิทยาศาสตร์ดังนั้นหากคุณเสียหายในขณะที่วิเคราะห์ไดรฟ์

ดังนั้นสมมติว่า NSA ที่ไม่ดีขนาดใหญ่ใช้คอมพิวเตอร์ของคุณและวางนิ้วโป้งของคุณไว้ในตำแหน่งรองเพื่อให้คุณบอกรหัสผ่านแก่พวกเขา เมื่อคุณให้รหัสผ่านผิดพวกเขาก็จะลบสำเนาและไม่ใช่ต้นฉบับ ตอนนี้พวกเขารู้ว่าคุณกำลังยุ่งกับพวกเขา

ดังนั้นการใช้คำฆ่าผ่านจะมีผลก็ต่อเมื่อคุณเรียกใช้ก่อนที่ใครก็ตามจะได้รับระบบของคุณ ดังนั้นสิ่งที่ควรทำคือให้วิธีที่ซับซ้อนในการดำเนินการบางอย่างที่คุณสามารถทำได้ด้วยนามแฝง


6

หากคุณต้องการทำลายข้อมูลของคุณจริงๆ คุณต้องแน่ใจก่อนว่าไม่มีใครทำสำเนาข้อมูลของคุณ (เช่นดิสก์ทั้งหมด) ในตอนแรก แต่นี่เป็นไปไม่ได้ในระดับระบบปฏิบัติการ

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


ฉันเป็นห่วงมากที่สุดสำหรับสถานการณ์ที่มีคนบังคับให้ฉันป้อนรหัสผ่านหรือคว้าคอมพิวเตอร์เมื่อฉันป้อนรหัสผ่าน
Josh

3
หากมีคนบังคับให้คุณป้อนรหัสผ่านคุณเพียงแค่ป้อนรหัสผ่าน "อื่น ๆ " ซึ่งจะปลดล็อคข้อมูลที่ไม่มีอันตราย - ดังนั้นคุณสามารถเป็นไปได้ที่จะปฏิเสธการมีอยู่จริงของข้อมูล - หากฉันจริงจังเกี่ยวกับการรับข้อมูลของคุณฉันจะไม่ยอมให้คุณสัมผัสคอมพิวเตอร์ แต่ทำสำเนาทุกอย่างก่อน
michas

6

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

ฉันสงสัยว่านี่ไม่สามารถใช้งานได้จริง


0

คุณสามารถมีสคริปที่จะทิ้งไดเรคทอรี่ / โฮมไดเร็กตอรี่ของผู้ใช้หลัก (รวมถึง / var, / tmp และทุก ๆ ที่ที่คุณมีข้อมูลแบบสายตาเท่านั้น) ถ้าคุณล็อกอินด้วยชื่อผู้ใช้อื่น ... สคริปต์จะเริ่มต้นที่ เข้าสู่ระบบจากนั้นโหลดสิ่งที่หลอกลวงผู้สังเกตการณ์โดยอัตโนมัติโดยการทำบางสิ่งที่มีประโยชน์ หากระบบของคุณล้มเหลวโดยไม่หลอกลวงผู้สังเกตการณ์พวกเขาอาจดึงปลั๊กและป้องกันการวางแผนที่ดีที่สุดของคุณจากการทำงาน ที่ยังช่วยให้คุณเข้าสู่ระบบในขณะที่กำลังดำเนินการ ... แม้ว่าฉันจะให้ผู้ใช้ TRASHME ในไดรฟ์ที่แตกต่างกันสำหรับไดรฟ์ที่ถูกทิ้งในถังขยะจะค่อนข้างยุ่งและดังนั้นจึง pokey


1
ไม่อยู่ในข้อ จำกัด ที่ระบุไว้
Josh

0

ฮาร์ดไดรฟ์ที่มีความปลอดภัยหรือแฟลชไดรฟ์สำหรับเรื่องนั้นคืออ๊อกซิโมรอน วิธีเดียวที่จะรักษาความปลอดภัยข้อมูลของคุณคือการใช้ระบบปฏิบัติการเสมือนที่ทำงานในหน่วยความจำและระเหยเมื่อคุณปิดเครื่องด้วยข้อมูลใด ๆ ที่จำเป็นต้องบันทึกไว้ในสื่อภายนอกที่คุณสามารถซ่อนหากคุณต้องการ มีลินุกซ์ "สด" จำนวนมากที่ช่วยให้คุณทำเช่นนั้นได้ ด้วยความพยายามเพียงเล็กน้อยคุณสามารถสร้างแผ่นซีดีหรือดีวีดีใหม่และปรับแต่งให้เหมาะกับความต้องการของคุณมากที่สุด นอกจากนี้โปรดทราบว่าข้อมูลพฤติกรรมส่วนใหญ่ของคุณจะถูกส่งผ่านโดยเบราว์เซอร์ของคุณและสำหรับการค้นหาใด ๆ ที่คุณเชื่อว่ามีความเสี่ยงคุณควรใช้เบราว์เซอร์ที่ปลอดภัยเช่น Tor


ไม่ใช่คำขอของฉัน ฉันตระหนักดีว่าการรักษาความปลอดภัยที่สมบูรณ์แบบนั้นใช้ไม่ได้ ฉันไม่ได้ขอวิธีที่สมบูรณ์แบบ
Josh

0

หากคุณต้องการรักษาความปลอดภัยให้เข้าใจว่าไม่มีสิ่งใดเป็นความปลอดภัยที่สมบูรณ์แบบและความปลอดภัยนั้นไม่ได้เป็นเพียงการแลกเปลี่ยนการยอมรับหลังจากการประเมินความเสี่ยงที่ถูกต้อง

สำหรับการเริ่มต้นทำไมต้องทำลายทุกสิ่ง ดูครั้งแรกที่การลดความสะดวกในการเข้าถึง สร้างช่องว่างอากาศ ซื้อกล่อง bcheaap เพื่อซื้อของออนไลน์และทุกอย่างที่คุณต้องการส่งจากกล่องหลักของคุณที่นั่นโดยวิธีการแอบ ใช้การเข้ารหัสที่ดีเช่น Scrypt Truecrypt และอื่น ๆ มีวันที่น่าเคารพนับถือ

มีกลยุทธ์อื่น ๆ อีกมากมายที่คุณสามารถจ้างได้โดยมีพื้นที่ไม่พอที่จะเข้าไปที่นี่และตรงไปตรงมาฉันไม่มีเวลาพอที่จะเข้าไปในพวกเขา ฉันคิดว่าคุณได้ค้นพบเส้นทางการเรียนรู้ใหม่ทั้งหมด


ไม่อยู่ในบริบทที่ระบุ
Josh

0

ดังที่ได้ชี้ให้ฉันเห็นและให้ความสำคัญกับ Phoronix, Kali Linux ได้สร้างวิธีการทำเช่นนี้เช่นกัน เมื่อมองไปที่โค้ดบางตัวจะมีจุดอ่อนที่จะทำให้แพทช์พ่ายแพ้ได้ แต่มันจะต้องใช้เวลานานในการอนุญาตให้ใช้รหัสผ่านในการทำลายตนเองได้อย่างมีประสิทธิภาพ จุดอ่อนคือความพิเศษของฮาร์ดแวร์ที่เกี่ยวข้องกับการ zeroing out ข้อมูล - เครื่องมือของผู้ผลิตสามารถกู้คืนข้อมูลที่เป็นศูนย์และการเขียนทับตำแหน่งสำคัญบนสื่อควรทำด้วยตัวสร้างตัวเลขสุ่มหลายครั้งเพื่อให้มั่นใจในการตรวจสอบข้อมูล

เชื่อมโยงที่นี่: http://www.kali.org/how-to/emergency-self-destruction-luks-kali/


0

ใช่คุณต้องทำลายพื้นผิวของไดรฟ์ แนะนำให้ใช้ thermite grenade (นั่นคือสิ่งที่พวกเขาสอนเรา) คุณสามารถสร้างของคุณเองด้วยไฟสตาร์ท (บล็อกแมกนีเซียม) และแหล่งกำเนิดไฟ ... เป้าหมายคือการสร้างไฟ D คลาส .... เป็นไปไม่ได้ที่จะดับ .


ฉันไม่คิดว่า OP กำลังพูดถึงการทำลายล้างร่างกาย ...
don_crissti
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.