ฉันได้ดูไปรอบ ๆ และไม่พบข้อมูลเกี่ยวกับวิธีการจัดการ Android ในการจัดเก็บรหัสผ่านบนอุปกรณ์ โดยเฉพาะรหัสผ่าน Gmail ฉันต้องการเรียนรู้วิธีที่ Android เข้ารหัสและจัดเก็บรหัสผ่านหรือไม่ มันใช้คีย์อะไรและจะเก็บคีย์นี้ไว้ที่ใดและใช้อัลกอริธึมการเข้ารหัสใด
ฉันได้ดูไปรอบ ๆ และไม่พบข้อมูลเกี่ยวกับวิธีการจัดการ Android ในการจัดเก็บรหัสผ่านบนอุปกรณ์ โดยเฉพาะรหัสผ่าน Gmail ฉันต้องการเรียนรู้วิธีที่ Android เข้ารหัสและจัดเก็บรหัสผ่านหรือไม่ มันใช้คีย์อะไรและจะเก็บคีย์นี้ไว้ที่ใดและใช้อัลกอริธึมการเข้ารหัสใด
คำตอบ:
แอปอย่างเป็นทางการของ Gmail ไม่ได้จัดเก็บรหัสผ่านไว้ในอุปกรณ์ของคุณ รหัสผ่านของคุณปลอดภัย 100% หากคุณใช้แอพนี้
นี่คือวิธีการทำงาน:รหัสผ่านถูกใช้โดยเซิร์ฟเวอร์การตรวจสอบความถูกต้องของ Google เป็นครั้งแรกเท่านั้น หลังจากการตรวจสอบสิทธิ์สำเร็จครั้งแรกAuth Token
จะมีการดาวน์โหลดไปยังอุปกรณ์ที่เก็บไว้ในaccounts.db
ไฟล์เป็นข้อความธรรมดา สำหรับการเข้าสู่ระบบที่ตามมาทั้งหมดนี้Auth Token
จะใช้ไม่ใช่รหัสผ่านเดิมของคุณ
ดังนั้นหากอุปกรณ์ของคุณถูกขโมยทุกคนสามารถได้รับAuth Token
ซึ่งจะไม่ถูกต้องเมื่อคุณเปลี่ยนรหัสผ่าน ดังนั้นคุณจะอยู่ในคำสั่งที่ดีที่สุด
เพื่อความปลอดภัยขั้นสูงสุดฉันขอแนะนำให้คุณเปิดใช้2-Factor Authentication
งานและสร้างDevice Specific Password
สำหรับอุปกรณ์ของคุณ หลังจากสูญเสียอุปกรณ์สิ่งที่คุณต้องทำก็คือปิดการใช้งานอุปกรณ์นั้น คุณไม่จำเป็นต้องเปลี่ยนรหัสผ่านหลักด้วยซ้ำ
หมายเหตุ:สิ่งเหล่านี้ไม่เป็นจริงหากคุณใช้แอพอีเมลบุคคลที่สามสำหรับ Gmail ได้แก่ แอปอีเมลสต็อกจดหมาย K-9 ฯลฯ โปรโตคอล IMAP หรือ POP ต้องใช้รหัสผ่านเดิมเพื่อตรวจสอบผู้ใช้ทุกครั้ง ดังนั้นจะต้องมีรหัสผ่านธรรมดาสำหรับแอปอีเมลก่อนที่จะส่งไปยังเซิร์ฟเวอร์ ดังนั้นแอปอีเมลส่วนใหญ่จึงจัดเก็บรหัสผ่านเป็นข้อความล้วน (การแฮช / การเข้ารหัสไม่มีประโยชน์เพราะคีย์การแฮช / การเข้ารหัสจะต้องเก็บไว้ในเครื่อง) ในกรณีนี้ฉันขอแนะนำให้คุณเปิดใช้2-Factor Authentication
งานและสร้างDevice Specific Password
สำหรับอุปกรณ์ของคุณ หลังจากสูญเสียอุปกรณ์สิ่งที่คุณต้องทำก็คือปิดการใช้งานอุปกรณ์นั้น
อัปเดต: ใน
ทางเทคนิคเป็นไปได้ที่จะเก็บรหัสผ่านไว้ในรูปแบบเข้ารหัส / แฮชโดยไม่ต้องมีคีย์เข้ารหัส / คีย์แฮชในข้อความธรรมดาในเครื่อง ขอบคุณ @JFSebastian ที่ชี้ให้เห็น น่าเสียดายที่การใช้งานดังกล่าวสำหรับ Android ยังไม่สามารถใช้งานได้ เริ่มต้น ICS Android ให้KeyChain APIโดยที่แอพสามารถเก็บรหัสผ่านไว้ในรูปแบบที่ปลอดภัย แอพที่ใช้ KeyChain API นั้นหายาก แต่แอพอีเมลสต็อกใช้งานได้ (ขอบคุณ @wawa สำหรับข้อมูลนี้) ดังนั้นรหัสผ่านของคุณจะปลอดภัยกับแอพอีเมลหุ้นตราบใดที่หน้าจอของคุณถูกล็อค โปรดจำไว้ว่า KeyChain ไม่ปลอดภัยหากอุปกรณ์ถูกรูทและไม่พร้อมใช้งานในอุปกรณ์ pre-ICS
รหัสผ่าน Android ที่ใช้กับแอปพลิเคชันอีเมลในตัวจะถูกเก็บไว้ในรูปแบบข้อความธรรมดาภายในฐานข้อมูล SQLite นี้เป็นในทางตรงกันข้ามกับGmailแอพลิเคชันที่ใช้การตรวจสอบสิทธิ์ราชสกุลที่อธิบายไว้ในคำตอบของชิน Sekhar
สำหรับ Jelly Bean ตำแหน่งฐานข้อมูลคือ:
/data/system/users/0/accounts.db
ตำแหน่งด้านบนจะแตกต่างกันไปตามรุ่น Android
ตำแหน่งบนอุปกรณ์ที่ไม่ได้รูทนี้จะปลอดภัยและได้รับการปกป้องโดยระบบปฏิบัติการ
บนอุปกรณ์ที่รูทแล้วผู้ใช้ได้ทำการถอดรหัสความปลอดภัยของตัวเองแล้วและแม้ว่ามันจะไม่ได้อยู่ในรูปแบบข้อความธรรมดา แต่ก็ยังมีความสำคัญในการถอดรหัสเนื่องจากคีย์ต้องมีอยู่ในอุปกรณ์เพื่อทำสิ่งนั้น
สมาชิกจากทีมพัฒนา Android โพสต์คำอธิบายว่าจนถึงวันนี้ยังคงใช้:
ตอนนี้เกี่ยวกับข้อกังวลนี้ สิ่งแรกที่ต้องทำความกระจ่างคือแอพ Email รองรับโปรโตคอลสี่โปรโตคอล ได้แก่ POP3, IMAP, SMTP และ Exchange ActiveSync และมีข้อยกเว้นที่ จำกัด น้อยมากซึ่งทั้งหมดนี้เป็นโปรโตคอลเก่าที่ต้องการไคลเอนต์แสดงรหัสผ่านไปยังเซิร์ฟเวอร์ ในทุกการเชื่อมต่อ โปรโตคอลเหล่านี้กำหนดให้เราเก็บรหัสผ่านไว้นานเท่าที่คุณต้องการใช้บัญชีในอุปกรณ์ โปรโตคอลที่ใหม่กว่าไม่ได้ทำสิ่งนี้ - นี่คือสาเหตุที่บางบทความขัดแย้งกับ Gmail เช่น โปรโตคอลที่ใหม่กว่าอนุญาตให้ไคลเอ็นต์ใช้รหัสผ่านหนึ่งครั้งเพื่อสร้างโทเค็นบันทึกโทเค็นและทิ้งรหัสผ่าน
ฉันขอให้คุณตรวจสอบบทความที่เชื่อมโยงกับในความคิดเห็นที่ 38ซึ่งเขียนได้ดีและให้ข้อมูลค่อนข้างมาก มันให้พื้นหลังที่ดีมากในความแตกต่างระหว่างรหัสผ่าน "ปิดบัง" และทำให้พวกเขา "ปลอดภัย" อย่างแท้จริง เพียงปิดบังรหัสผ่านของคุณ (เช่น base64) หรือเข้ารหัสด้วยคีย์ที่เก็บไว้ที่อื่นจะไม่ทำให้รหัสผ่านหรือข้อมูลของคุณปลอดภัยยิ่งขึ้น ผู้โจมตีจะสามารถเรียกคืนได้
(โดยเฉพาะมีการอ้างสิทธิ์บางอย่างเกี่ยวกับไคลเอนต์อีเมลอื่น ๆ ที่ไม่ได้จัดเก็บรหัสผ่านใน cleartext แม้ในกรณีที่เป็นจริงก็ไม่ได้ระบุว่ารหัสผ่านนั้นปลอดภัยมากขึ้นการทดสอบง่ายๆ: หากคุณสามารถบูทขึ้น อุปกรณ์และมันจะเริ่มรับอีเมลในบัญชีที่กำหนดค่าของคุณจากนั้นรหัสผ่านจะไม่ปลอดภัยอย่างแท้จริงพวกเขาจะสับสนหรือเข้ารหัสด้วยคีย์อื่นที่เก็บไว้ที่อื่น)
Aditionally เนื่องจากปัญหานี้ดูเหมือนจะรบกวนผู้ใช้ Android หลายท่านยังสามารถทำตามการสนทนานี้ที่Slashdot - Android รหัสผ่านข้อมูลที่เก็บไว้ในข้อความธรรมดา
accounts.db
ไฟล์จะถูกsystem
ป้องกันจากการอ่านโดยบัญชีอื่นที่ไม่ใช่