มีความปลอดภัยในการใช้รหัส PIN สำหรับการเข้ารหัสหรือไม่


19

สำหรับ Android 4.0 (Samsung Galaxy Nexus) มีความเป็นไปได้ที่จะเข้ารหัสโทรศัพท์ ฉันพบสิ่งนี้เกี่ยวกับการเข้ารหัสบน Android 3.0 เป็นอัลกอริทึมแบบเดียวกันกับที่ใช้ใน Android 4 หรือไม่ http://source.android.com/tech/encryption/android_crypto_implementation.html

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

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


3
ใช่ แต่ถ้าฉันใช้รหัสผ่านฉันจะต้องใช้มันเพื่อปลดล็อคหน้าจอของฉัน ไม่สะดวกในการพิมพ์อักขระ 17 ตัวเพื่อโทรออกอย่างรวดเร็ว ดังนั้นผู้ใช้ส่วนใหญ่จะกำหนดหมายเลข PIN และนั่นจะเป็นสิ่งแรกที่ผู้โจมตีจะลอง วิธีการที่ดีกว่าอาจจะอนุญาตให้ข้อความรหัสผ่านสำหรับการเข้ารหัสดิสก์และอนุญาตให้มีหมายเลข PIN ง่าย ๆ บนหน้าจอล็อค เพื่อหลีกเลี่ยงการพยายาม bruteforce บน lockscreen อาจมีการรีบูตแรงหลังจาก 3 ครั้งที่ล้มเหลวซึ่งเป็นผลให้มีการร้องขอรหัสผ่าน
Christopher Käck

1
ฉันไม่รู้ว่าคนอื่นที่ไม่ใช่ Google สามารถบอกเหตุผลได้อย่างน่าเสียดาย คุณสามารถลองตัวติดตามบั๊กของ Androidเพื่อส่งคำขอคุณสมบัติได้ ดูเหมือนว่าเป็นไฟล์ที่เหมาะสม
eldarerathis

2
ใช่ต่อต้านการเข้าสู่ระบบบนหน้าจอปลดล็อค แต่ไม่ต่อต้านการถอดรหัสฮาร์ดไดรฟ์ นั่นคือสิ่งที่ฉันพยายามจะพูดการปลดล็อกหน้าจอไม่จำเป็นต้องมีตราบใดที่การเข้ารหัสฮาร์ดไดรฟ์ (ซึ่งต้องมีความยาวมากกว่า 4 ตัวเลข) และดังนั้นจึงไม่ควรถูกบังคับให้ใช้ทั้งคู่
Christopher Käck

1
+1, ฉันทั้งหมดอยู่กับคุณ @ ChristopherKäckการตัดสินใจนั้นไม่สมเหตุสมผลวิศวกร Google ควรรู้จักดีขึ้นหวังว่าพวกเขาจะแก้ไขในไม่ช้า
João Portela

1
@ คริสโตเฟอร์: แต่คุณกำลังตัดสินใจบนฐานที่ไม่ถูกต้องการเข้ารหัสบนดิสก์คือ AES 128 บิตไม่ใช่ PIN 4 หลัก การพิจารณาว่ารูปแบบนี้มีความปลอดภัยหรือมีข้อบกพร่องโดยเนื้อแท้ไม่ใช่ความเชี่ยวชาญของ Android.SE
Lie Ryan

คำตอบ:


4

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



1

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

  • คุณเพิ่มอักขระที่พร้อมใช้งานแล้ว
  • คุณได้นำความรู้ของผู้โจมตีเกี่ยวกับความยาว pw ของคุณออกไป

หากผู้โจมตีรู้รหัสผ่านของคุณคือ 14 ตัวอักษรจะปลอดภัยกว่ารหัสผ่านสี่หรือแปดตัว แต่สถิติทั่วไปใช้ช่วง (1-4, 1-8, 1-14) และไม่ใช่ความจริง (ซึ่งจะเป็นการคำนวณง่ายๆ ชุดค่าผสมที่มีความยาวหนึ่งความยาว)

ขณะนี้เป็นวิธีง่ายๆในการเข้าถึงข้อมูลในโทรศัพท์ของคุณ คุณยายของคุณมีความสามารถในการทำเช่นนั้น (ไม่มีความผิดกับคุณหรือครอบครัวของคุณ: P) ดังนั้นในขณะที่คุณขวาว่ามีข้อ จำกัด ของการเข้ารหัสนี้ 'ขาด' รุ่นทำงานมากดีกว่าข้อมูลที่ไม่ได้เข้ารหัสได้รับการฝึกฝนในปัจจุบัน

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


2
ใช่ แต่ฉันรู้สึกว่ามันจะเป็นทางออกที่ง่ายสำหรับปัญหาในการมีรหัสผ่านที่แตกต่างกันสำหรับการปลดล็อกหน้าจอและสำหรับการถอดรหัสอุปกรณ์ (ดังที่ฉันได้กล่าวถึงที่นี่android.stackexchange.com/questions/17086/ … ) เนื่องจากพวกเขาใช้ senarios และต้องมีคุณลักษณะที่แตกต่างกัน
Christopher Käck

1

หากคุณพยายามถอดรหัสการเข้ารหัสดิสก์โดยไม่ขึ้นกับอุปกรณ์ที่เหลือในสถานการณ์ที่คุณมีอุปกรณ์ที่ปิดอยู่หรือเพียงแค่ชิปหน่วยความจำนี่เป็นเวคเตอร์การโจมตีที่แตกต่างจากที่ใช้ในการเปิดเครื่อง อุปกรณ์ป้องกันด้วยรหัสผ่านที่คีย์ถอดรหัสอาจถูกเก็บไว้ในหน่วยความจำ (นำไปสู่ช่องโหว่ที่ใช้โดยสิ่งต่างๆเช่นตัวเข้ารหัสคีย์ Firewire เข้ารหัสบนพีซีที่ใช้ซอฟต์แวร์เข้ารหัส FDE รุ่นเก่าและไม่ใช่โมดูลประเภท TPM) หรือหน้าจอปลดล็อค ถูกบังคับ (หรือมีช่องโหว่ของตนเอง)

หากคุณโจมตีดิสก์โดยตรงในกรณีนี้คุณไม่ได้โจมตี PIN 4 หลักหรือรหัสผ่านผู้ใช้ที่เข้ารหัสอุปกรณ์สิ่งที่คุณกำลังโจมตีคือคีย์ AES 128 บิต:

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

จากจุดที่ 4 ภายใต้ " การเปิดใช้งานการเข้ารหัสบนอุปกรณ์ " ของNotes ในการใช้งานการเข้ารหัสใน Android 3.0ที่คุณเชื่อมโยง

(กำลังจะแสดงความคิดเห็น แต่จบลงนานเกินไป)


1
ขอบคุณสำหรับความคิดเห็นที่ดีนี้! สิ่งหนึ่งที่แม้ว่า; ฉันไม่ได้มองหารหัสผ่านผู้ใช้ (ซึ่งส่วนใหญ่อาจจะเป็น 4 หลักพินเพราะคุณถูกบังคับให้ใช้กุญแจร่วมกับการปลดล็อกหน้าจอและสิ่งอื่นจะทำให้ยุ่งยากในการพิมพ์เพื่อโทรออก) เพื่อถอดรหัส 128 บิต คีย์ AES (แทนที่จะค้นหากุญแจโดยตรง) หากฉันแฮช 10,000 พินทั้งหมดด้วยฟังก์ชั่น PBKDF2 + เกลือจะมีเพียง 10,000 ครั้งเท่านั้นที่ฉันพยายามจะถอดรหัส?
Christopher Käck

@Melpomene " Rainbow table Attack" ที่พวกเขาพูดถึงคือที่ที่คุณเข้ารหัสล่วงหน้าทั้งหมด 10,000 ชุดเพื่อดูสิ่งที่พวกเขาดูเหมือนเข้ารหัสแล้วเปรียบเทียบสิ่งที่อยู่บนดิสก์กับสิ่งที่อยู่ในตารางรุ้งของคุณ " เกลือแบบสุ่ม " คือสิ่งที่ใช้เพื่อช่วยป้องกันปัญหานี้โดยการสร้างชุดค่าผสมมากกว่า 10,000 ชุดที่คุณต้องคาดเดา (เว้นแต่คุณจะจัดการกับ "เกลือ" ก่อน)
GAThrawn

1
สายรุ้งเป็นวิธีที่ชาญฉลาดในการจัดเก็บรหัสผ่านที่เข้ารหัสใช่ และถ้ามีการใช้เกลือมันอาจจะต้องมีการสร้างเป็นพิเศษสำหรับการถอดรหัสรหัสผ่านด้วยเกลือนั้น นี่ไม่ใช่การดำเนินการที่ยากมากเมื่อมีเพียง 10,000 รหัสผ่านให้เลือก โปรดทราบว่า Salt นั้นถูกพิจารณาว่าเป็นที่รู้จักกันดีของผู้โจมตี (เนื่องจากดูเหมือนว่าจะอ่านจาก / dev / urandom ในเอกสารนี้เป็น likley ส่วนใหญ่ที่เก็บไว้ในข้อความที่ชัดเจนหรือเข้ารหัสด้วยรหัสผ่านผู้ใช้) วิธีใดก็ตามที่รหัสผ่านผู้ใช้เป็นลิงก์อ่อน
Christopher Käck

แต่ฉันไม่จำเป็นต้องสร้างรุ้งกินน้ำเลยตั้งแต่จัดเก็บ (หรือคำนวณ) 10,000 แฮชนั้นไม่ยากสำหรับหน่วยความจำของฉัน (โปรเซสเซอร์)
Christopher Käck

การใช้ฟังก์ชั่นการรับกุญแจเช่น PBKDF2 ดูเหมือนจะเป็นข่าวดี แต่พิน 4 หลักทั่วไปยังคงเป็นเพียง 10,000 ชุดค่าผสมที่เป็นไปได้
João Portela

1

วิธีแก้ปัญหาที่เป็นไปได้วิธีหนึ่งคือใช้whispercoreแต่ต้องการให้คุณรูทอุปกรณ์ของคุณ

ฉันยังเต็มไปด้วยความคำขอคุณลักษณะที่หน้าโครงการหุ่นยนต์


0

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


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

@ Robert ฉันไม่คุ้นเคยกับการล้างข้อมูลจากระยะไกล ถ้ามันทำผ่านการแลกเปลี่ยนโทรศัพท์จะต้องอยู่ในช่วงเวลาเดียวกันกับคำสั่งการลบจากระยะไกลหรือไม่? ความคิดของฉันคือถ้าฉันสามารถลบการล้างข้อมูลจากระยะไกลภายใน 30 นาทีหรือมากกว่านั้นสำหรับการทำโทรศัพท์หายดีพอสำหรับฉัน แต่ฉันไม่มีข้อมูลทางการเงินข้อกังวลหลักของฉันคืออีเมลทำงาน GMail ของฉัน
โอกาส

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