การตรวจสอบรหัสผ่าน
การตรวจสอบรหัสผ่านเป็นคุณสมบัติที่จับคู่รหัสผ่านที่จัดเก็บไว้ในพวงกุญแจการป้อนรหัสผ่านอัตโนมัติของผู้ใช้กับรายการที่อัปเดตและดูแลอย่างต่อเนื่องของรหัสผ่านที่ทราบว่ามีการรั่วไหลจากองค์กรออนไลน์ต่างๆ ถ้าเปิดใช้คุณสมบัตินี้อยู่ โปรโตคอลการตรวจสอบจะจับคู่รหัสผ่านพวงกุญแจการป้อนรหัสผ่านอัตโนมัติของผู้ใช้กับรายการที่ดูแลอย่างต่อเนื่อง
วิธีการทำงานของการตรวจสอบ
อุปกรณ์ของผู้ใช้จะทำการตรวจสอบรหัสผ่านของผู้ใช้แบบวนซ้ำอย่างต่อเนื่อง โดยค้นหาช่วงเวลาที่ไม่ขึ้นกับรหัสผ่านของผู้ใช้หรือรูปแบบการใช้ตัวจัดการรหัสผ่าน วิธีนี้จะช่วยให้มั่นใจว่าสถานะการตรวจสอบยืนยันอัปเดตตรงกันกับรายการที่ดูแลในปัจจุบันของรหัสผ่านที่มีการรั่วไหล ในการช่วยป้องกันการรั่วไหลของข้อมูลที่เกี่ยวข้องกับจำนวนรหัสผ่านจำนวนมากที่ไม่ซ้ำกันของผู้ใช้ คำขอจะถูกแบ่งเป็นกลุ่มแล้วดำเนินการแบบคู่ขนาน การตรวจสอบแต่ละครั้งจะมีการตรวจสอบยืนยันรหัสผ่านในจำนวนที่แน่นอนควบคู่กัน และหากผู้ใช้มีน้อยกว่าจำนวนนี้ รหัสผ่านแบบสุ่มจะถูกสร้างขึ้นและเพิ่มลงในข้อความค้นหาเพื่อสร้างความแตกต่าง
รหัสผ่านจับคู่กันได้อย่างไร
รหัสผ่านจะจับคู่กันโดยผ่านกระบวนการสองส่วน รหัสผ่านที่รั่วไหลที่พบบ่อยที่สุดจะอยู่ภายในรายการภายในเครื่องบนอุปกรณ์ของผู้ใช้ ถ้ารหัสผ่านของผู้ใช้อยู่ในรายการนี้ ผู้ใช้จะได้รับการแจ้งเตือนในทันทีโดยไม่มีการโต้ตอบภายนอกใดๆ สิ่งนี้ได้รับการออกแบบมาเพื่อให้แน่ใจว่าจะไม่มีข้อมูลอยู่รั่วไหลเกี่ยวกับรหัสผ่านของผู้ใช้ ซึ่งเป็นรหัสผ่านที่มีความเสี่ยงมากที่สุดเนื่องจากการละเมิดรหัสผ่าน
ถ้ารหัสผ่านไม่อยู่ในรายการที่ใช้บ่อยที่สุด ระบบจะจับคู่รหัสผ่านนั้นกับรหัสผ่านที่รั่วไหลน้อยที่สุด
การเปรียบเทียบรหัสผ่านของผู้ใช้กับรายการที่ดูแล
การตรวจสอบยืนยันว่าไม่มีรหัสผ่านในรายการภายในเครื่องเป็นการจับคู่รหัสผ่านที่เกี่ยวข้องกับการโต้ตอบบางส่วนกับเซิร์ฟเวอร์ Apple เพื่อช่วยให้แน่ใจว่ารหัสผ่านของผู้ใช้ที่ถูกต้องไม่ส่งไปที่ Apple รูปแบบของอินเทอร์เซกชั่นของชุดการเข้ารหัสแบบส่วนตัวถูกใช้งานโดยเปรียบเทียบรหัสผ่านของผู้ใช้กับชุดของรหัสผ่านที่รั่วไหลจำนวนมาก สิ่งนี้ได้รับการออกแบบมาเพื่อให้แน่ใจว่าสำหรับรหัสผ่านที่มีความเสี่ยงในการละเมิดน้อยลง จะมีการแชร์ข้อมูลเพียงเล็กน้อยกับ Apple สำหรับรหัสผ่านของผู้ใช้ ข้อมูลนี้จะจำกัดคำนำหน้า 15 บิตของแฮชการเข้ารหัส การเอารหัสผ่านที่รั่วไหลบ่อยที่สุดออกจากกระบวนการโต้ตอบโดยใช้รายการภายในเครื่องของรหัสผ่านที่รั่วไหลบ่อยที่สุดจะช่วยลดส่วนที่แตกต่างที่สัมพันธ์กับความถี่ของรหัสผ่านในกลุ่มบริการเว็บ ซึ่งทำให้เป็นไปไม่ได้ในเชิงปฏิบัติที่จะอนุมานรหัสผ่านของผู้ใช้จากการค้นหาเหล่านี้
โปรโตคอลที่รองรับจะแบ่งพาร์ติชั่นรายการของรหัสผ่านที่เรียบเรียงซึ่งประกอบด้วยรหัสผ่านประมาณ 1.5 พันล้านรหัสในแต่ละครั้งที่มีการเขียนนี้ โดยแบ่งออกเป็นกลุ่มต่างๆ 215 กลุ่ม กลุ่มที่รหัสผ่านอยู่จะอิงตาม 15 บิตแรกของค่าแฮช SHA256 ของรหัสผ่าน นอกจากนี้ รหัสผ่านที่รั่วไหลแต่ละรายการจะมี pw ที่เชื่อมโยงกับจุดที่เป็นเส้นโค้งรูปไข่บนเส้นโค้ง NIST P256 ดังนี้: Ppw = ⍺·HSWU(pw) โดย ⍺ คือกุญแจแบบสุ่มที่เป็นความลับที่มีเพียง Apple ที่ทราบ และ HSWU คือฟังก์ชั่น Oracle แบบสุ่มที่เทียบผังรหัสผ่านกับจุดที่เป็นเส้นโค้งโดยอิงจากวิธีการ Shallue-van de Woestijne-Ulas การแปลงข้อมูลนี้ออกแบบมาเพื่อซ่อนค่าของรหัสผ่านในเชิงคำนวณและช่วยป้องกันไม่ให้เปิดเผยรหัสผ่านที่รั่วไหลใหม่ผ่านการตรวจสอบรหัสผ่าน
ในการคำนวณอินเตอร์เซกชั่นของชุดการเข้ารหัสแบบส่วนตัว อุปกรณ์ของผู้ใช้จะกำหนดกลุ่มที่รหัสผ่านอยู่โดยใช้ λ ซึ่งเป็นคำนำหน้า 15 บิตของ SHA256(upw) โดยที่ upw จะเป็นส่วนหนึ่งของรหัสผ่านของผู้ใช้ อุปกรณ์จะสร้างค่าคงที่แบบสุ่มของตัวเอง นั่นคือ β แล้วส่งจุด Pc = β·HSWU(upw) ไปยังเซิร์ฟเวอร์พร้อมกับคำขอของกลุ่มที่สอดคล้องกันกับ λ ที่เซิร์ฟเวอร์นี้ β จะซ่อนข้อมูลเกี่ยวกับรหัสผ่านของผู้ใช้และจำกัด λ ในการเปิดเผยข้อมูลที่อยู่ในรหัสผ่านกับ Apple สุดท้าย เซิร์ฟเวอร์จะรับจุดที่ส่งจากอุปกรณ์ของผู้ใช้แล้วคำนวณ ⍺Pc = ⍺β·HSWU(upw) จากนั้นส่งค่าคืนพร้อมกับกลุ่มของจุดที่เหมาะสม Bλ={ Ppw | SHA256(pw) ซึ่งขึ้นต้นด้วยคำนำหน้า λ} ไปยังอุปกรณ์
ข้อมูลที่ส่งคืนจะทำให้อุปกรณ์คำนวณ B’λ={β·Ppw | Ppw∈Bλ} แล้วตรวจสอบให้แน่ใจว่ารหัสผ่านของผู้ใช้รั่วไหลหาก ⍺Pc ∈B'λ