คำอธิบายที่ยอมรับได้ของการเข้ารหัส Android และช่องโหว่


16

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


ฉันพยายามทำความเข้าใจขั้นตอนการเข้ารหัส Android และช่องโหว่ของมันมาระยะหนึ่งแล้ว

มีคำถามมากมายที่กล่าวถึงส่วนของหัวข้อนี้ในเว็บไซต์นี้และในเว็บไซต์น้องสาว ที่จะขับรถกลับบ้านจุดของฉัน, คำถามเหล่านี้อยู่บางส่วนและไม่ได้ทั้งหมด (เตือนความทรงจำของ " คนตาบอดและช้าง ?" :)

ความเข้าใจของฉัน (หรือเข้าใจผิด?)

  1. รหัสผ่านการเข้ารหัสเกิดจากการรวมกันของรหัสล็อคหน้าจอของผู้ใช้และอัลกอริทึมการเข้ารหัส (ในนั้นจะมีจุดอ่อนโดยธรรมชาติเนื่องจาก PIN มีความยาว จำกัด )
  2. สิ่งนี้จะถูกใส่เกลือและเก็บไว้ในตำแหน่งรูทซึ่งผู้ใช้ไม่สามารถเข้าถึงได้
  3. ใช้เพื่อสร้างรหัสผ่านจริงเพื่อเข้ารหัส / ถอดรหัสและรหัสผ่านจริงจะถูกเก็บไว้ใน RAM
  4. สิ่งนี้ได้รับการเสริมความแข็งแกร่งโดยการเชื่อมโยงขั้นตอนที่ 1 กับอุปกรณ์ SoC ( เวอร์ชั่น Android รุ่นใดองค์ประกอบของฮาร์ดแวร์ที่ระบุอุปกรณ์โดยไม่ซ้ำใครสามารถเปลี่ยนเป็นของปลอมได้หรือไม่ )
  5. ดังนั้นจึงเป็นไปไม่ได้ที่จะถอดรหัสข้อมูลโดยไม่ต้องใช้คีย์เข้ารหัสและอุปกรณ์ (สำหรับ SD ภายนอกเช่นกัน)
  6. วิธีการกู้คืนที่เป็นไปได้ - กำลังดุร้ายกำลังเก็บข้อมูล RAM (ขั้นตอนที่ 3) เพื่อรับคีย์
  7. อุปกรณ์ที่ได้รับการเจาะดูเหมือนจะมีความอ่อนไหวต่อการเข้าถึงข้อมูลขั้นตอนที่ 2 ผ่านการกู้คืนที่กำหนดเอง / อาจเป็นไปได้ว่า ROM และเคอร์เนลกะพริบ? ( ถ้าเป็นจริงทำไมสิ่งนี้ถึงไม่ถูกขนานนามว่าเป็นความเสี่ยงครั้งใหญ่ )
  8. แม้ว่าข้อมูลเหล่านี้จะได้รับฉันเดาว่ามันไม่น่ารำคาญความพยายามที่ชาญฉลาดในการสร้างรหัสผ่านที่แท้จริง
  9. Marshmallow สามารถใช้ SD ภายนอกเป็น "หน่วยความจำภายใน" หรือ "หน่วยความจำแบบพกพา" เหตุผลมันไม่ควรสร้างความแตกต่าง แต่ไม่แน่ใจ

มีช่องว่างในความเข้าใจของฉันอาจหายไปในด้านที่สำคัญอื่น ๆ เช่นกัน

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

  • กระบวนการเข้ารหัสทั้งหมด (รวมถึง SD ภายนอก)

  • รูปแบบการใช้งานข้ามเวอร์ชั่น Android - จาก KitKat ถึง Marshmallow (รวมถึงตัวเลือกคู่สำหรับ SD ภายนอกใน Marshmallow)

  • ช่องโหว่ในระดับผู้ใช้

บันทึก

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

  • ข้อได้เปรียบที่เป็นไปได้อาจเป็น"คำถาม"ในอนาคตเกี่ยวกับประเด็นที่เกี่ยวข้อง

  • คำตอบควรอยู่ที่ระดับผู้ใช้เป็นหลักแต่ด้วยคำอธิบายที่เพียงพอเพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้น การแบ่งคำตอบออกเป็นสองส่วนอาจเป็นวิธีที่เหมาะสม

  • ฉันจะทำให้การลงคะแนนตอบคำถามทำงานง่าย ๆ / ไม่เป็นทางการ / แก้ไขแพทช์เพื่อส่งเสริมคำตอบที่ครอบคลุม


1
ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท //นี่อาจเหมาะสำหรับความปลอดภัยมากกว่า ฉันคิดว่ามันกว้างเกินไปเพราะชิ้นส่วนที่ดีของสิ่งที่คุณถามขึ้นอยู่กับฮาร์ดแวร์เฉพาะและวิธีที่ผู้ผลิตใช้งาน
Matthew อ่าน

คำตอบ:


3

ฉันจินตนาการว่ามันใช้งานได้เช่นนี้

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

เคล็ดลับใหญ่ที่นี่คือการเข้ารหัสแบบไม่ตรงกันของคีย์หลัก เมื่อ Android มีคีย์หลักมันจะสามารถแลกเปลี่ยนข้อมูลกับที่เก็บข้อมูลได้ เฉพาะเมื่อผู้ใช้เข้าสู่ระบบเท่านั้นที่จะทราบรหัสหลักนั้น การเข้ารหัสแบบอะซิงโครนัสคือสิ่งที่เรียกว่าการเข้ารหัสคีย์สาธารณะ สิ่งที่เกิดขึ้นคือกุญแจสาธารณะเข้ารหัสข้อมูล (รหัสหลักในกรณีนี้) และกุญแจส่วนตัวถอดรหัสข้อมูล เพื่อไม่ให้สับสนกับการเข้ารหัสที่เก็บข้อมูลที่นี่ ที่เก็บข้อมูลเป็นเพียงการเข้ารหัสแบบซิงโครนัส มีคีย์เดียวกันที่ใช้ในการเข้ารหัสและถอดรหัส แต่การค้นพบ / เรียกคืนคีย์ "มาสเตอร์" นั้นเป็นเรื่องใหญ่ หมายความว่าหากถึงจุดหนึ่งคุณมีวิธีการเข้าสู่ระบบที่อ่อนแอเช่นสำหรับ intance "1234" เป็น pincode และคุณเปลี่ยนใจและเปลี่ยน pincode เป็น "5364" ซึ่งยากต่อการคาดเดาเว้นแต่ว่าก่อนหน้านี้ "1234 " ถูกขโมยไปสอดแนมที่จุดใดก็ตามความปลอดภัยก็ดีขึ้น ข้อตกลงเดียวกันเมื่อเปลี่ยนวิธีการเข้าสู่รหัสผ่านเต็มรูปแบบที่เป็นไปไม่ได้ที่จะเดาหรือโจมตีพจนานุกรม ที่เก็บข้อมูลนั้นไม่จำเป็นต้องเข้ารหัสซ้ำอีกเลย ทุกอย่างเกี่ยวกับการซ่อนคีย์หลักนั้นไว้ภายใน ผู้ใช้ไม่เคยเห็นคีย์หลักนั้นเพราะอาจเป็นเพียงแค่รหัสแฮชแบบแปลก ๆ - ไม่มีอะไรที่จะ "ค้นหา" หรือ "เดา" รหัสแฮชนั้น ไม่แม้แต่ NSA หรือองค์กรรักษาความปลอดภัยอื่น ๆ ในโลกก็ไม่สามารถหากุญแจที่ตรงกันได้ เวกเตอร์การโจมตีเพียงอย่างเดียวกำลังหวังว่าจุดอ่อนของผู้ใช้ บางทีผู้ใช้อาจเลือกการล็อกอินแบบ pincode หากเป็นตัวเลข 4 หลักแสดงว่าเป็นจำนวนรหัสได้สูงสุด 10,000 รหัส ระบบปฏิบัติการอาจ "บล็อก" อุปกรณ์หลังจากลองใช้งานในระยะเวลาอันสั้น วิธีแก้ปัญหาคือ "แฮ็ค" ระบบปฏิบัติการเพื่อที่จะเป็นไปได้ที่จะลองใช้ pincode ที่เป็นไปได้ทั้งหมดโดยไม่ต้องมีระบบปฏิบัติการแทรกแซงและบล็อกอุปกรณ์ ฉันเชื่อว่านี่เป็นวิธีที่ FBI เข้าถึงโทรศัพท์ของอาชญากรได้ในที่สุด บริษัท บุคคลที่สาม (บริษัท อิสราเอลบางแห่งจากสิ่งที่ฉันจำได้) ทำการแฮ็คสำหรับ FBI ที่ฉันคิด พวกเขาข้ามขีด จำกัด การลองแบบ pincode หากการเข้าสู่ระบบเป็นรหัสผ่านเต็มรูปแบบและหากผู้ใช้เลือกรหัสผ่านที่คาดเดายากและคุณกำลัง ไม่ได้อยู่ในชีวิตพร้อมกับพลังซีพียูทั้งหมดบนโลกนี้ที่จะแฮ็คข้อมูลนั้นในหนึ่งล้านปี ฉันไม่ได้ซื้อ NSA ใด ๆ ที่สามารถถอดรหัสข่าวลืออะไรก็ได้ ฉันคิดว่าคนเหล่านั้นดูหนังผู้ชายในชุดดำมากเกินไป สิ่งที่ต้องทำคือดูที่เอกสารทางวิทยาศาสตร์เกี่ยวกับอัลกอริธึมการเข้ารหัสที่หลากหลาย (เช่น AES) และคุณจะรู้ว่าการแฮ็คจะไม่เกิดขึ้น ยกเว้นในสมัยก่อนเมื่อมี 40 บิตคีย์ วันเหล่านั้นหายไปนาน AES128 ไม่มีใครสามารถเอาชนะได้ฉันคิดว่าและถ้าใครเป็นห่วงการกระโดดไปที่ AES256 จะทำให้มันปลอดภัยยิ่งขึ้นด้วยขนาดของจักรวาลค่อนข้างมาก บางทีคอมพิวเตอร์ควอนตัมหนึ่งวันอาจถอดรหัสได้ แต่ฉันไม่เชื่อ ไม่แน่ใจว่าเป็นไปได้หรือไม่ที่จะมีระบบความน่าจะเป็นเพียงแค่เน้นวิธีแก้ปัญหา เราจะเห็นเกี่ยวกับสิ่งนั้นในที่สุด บางทีนั่นอาจเป็นช่วงเวลาชั่วชีวิต ไม่มีอะไรต้องกังวลในตอนนี้

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


ฉันคิดว่าคุณหมายถึง "สมมาตร" และ "ไม่สมมาตร" ไม่ใช่ "แบบซิงโครนัส" และ "แบบอะซิงโครนัส"
Jay Sullivan

1

เนื่องจากการอัปเดตเป็นประจำวิธีการจัดการการเข้ารหัสบนโทรศัพท์ (ระบบปฏิบัติการ Android) สามารถเปลี่ยนจากบิลด์หนึ่งเป็นบิลด์ถัดไป ดังนั้นความกังวลหลักไม่ได้มาพร้อมกับการเข้ารหัส แต่เป็นกระบวนการที่กำลังทำงานอยู่ และหากแพลตฟอร์มนั้นมีช่องโหว่ความแข็งแกร่งของอัลกอริธึมการเข้ารหัสเองก็มีความสำคัญเพียงเล็กน้อยหรือไม่มีเลย

โดยทั่วไปเมื่ออุปกรณ์ของคุณถอดรหัสไฟล์พวกเขาจะสามารถเข้าถึงได้โดยตรงโดยกระบวนการที่มีสิทธิ์ Super User กระบวนการนี้สามารถเข้าถึงอุปกรณ์ของคุณโดยใช้จุดอ่อนใน ROM (Android OS) ด้วยตัวเอง (นี่เป็นข่าวเมื่อเร็ว ๆ นี้เนื่องจากข้อบกพร่องบางอย่างถูกเปิดเผยโดย WikiLeaks)

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

ก่อนรูท : ในการรูทอุปกรณ์คุณต้องใช้เครื่องมือภายนอกซึ่งทั้งหมดสามารถเข้าถึงโครงสร้างภายในของอุปกรณ์ได้ เครื่องมือเหล่านี้บางส่วนได้รับการคอมไพล์ล่วงหน้าและไม่ใช่โอเพ่นซอร์ส พวกเขามีเว็บไซต์ "เป็นทางการ" แต่ใครคือคนเหล่านี้ (ตัวอย่างเช่น twrp.me, supersu.com แต่มีคนอื่นเช่น KingoRoot) เราสามารถไว้วางใจพวกเขาได้จริงเหรอ? ฉันเชื่อใจมากกว่าคนอื่น ตัวอย่างเช่น KingoRoot ติดตั้งโปรแกรมบนพีซีของฉันซึ่งทำงานในลักษณะคล้ายไวรัส (ต้องใช้ดูอัลบูตเพื่อลบมัน)

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

การเข้ารหัสอุปกรณ์เต็มรูปแบบปกป้องข้อมูลของฉันจาก Google และรัฐบาลหรือไม่

Google - ใช่ มันไม่มีกุญแจในการปลดล็อค

รัฐบาล (หรือแฮ็กเกอร์) - ไม่ เนื่องจากรัฐบาลหรือแฮ็กเกอร์สามารถใช้ประโยชน์จากช่องโหว่ซึ่งจะตัดไฟล์ตามที่ฉันได้กล่าวไว้ข้างต้น

ความซับซ้อนของขั้นตอน / อัลกอริธึมการรักษาความปลอดภัยนั้นมีการใช้งานเพียงเล็กน้อยหากสามารถถูกดักจับและข้ามได้

แก้ไข: เป็นมูลค่าการกล่าวขวัญว่า Google มีความสามารถในการดาวน์โหลดและติดตั้ง / อัปเดตแอปลงในอุปกรณ์ Android ของคุณโดยไม่ต้องขออนุญาตจากคุณหรือแจ้งให้คุณทราบว่ามีการอัปเดต และแม้กระทั่งบนอุปกรณ์ที่รูทเครื่องดูเหมือนจะไม่มีทางที่จะปิดกั้นสิ่งนี้โดยไม่สูญเสียฟังก์ชั่นหลัก (Play Store, Maps, Sync, ฯลฯ )

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