ความเป็นส่วนตัวและการเข้ารหัส
คำเหล่านี้ถูกใช้แบบหลวม ๆ ในคำอธิบายแอป และความแตกต่างระหว่างมันคือจุดที่มีคุณค่าอยู่จริง ๆ ซ่อนไม่ใช่ล็อก ล็อกไม่ใช่เข้ารหัส และกุญแจที่คนอื่นถืออยู่ก็ไม่ใช่ของคุณจริง ๆ
-
ChaCha20-Poly1305
-
อัลกอริทึมเข้ารหัสสมัยใหม่ที่ทั้งซ่อนข้อมูลและตรวจจับการปลอมแปลงมันได้ เร็วบนมือถือซึ่งไม่ได้มีตัวเร่งฮาร์ดแวร์สำหรับตัวเลือกรุ่นเก่าเสมอไป
ChaCha20 ทำหน้าที่เข้ารหัส ส่วน Poly1305 สร้างแท็กที่ยืนยันว่าข้อมูลไม่ถูกแก้ไข เมื่อรวมกันเรียกว่าการเข้ารหัสแบบยืนยันตัวตน — การถอดรหัสจะล้มเหลวอย่างชัดเจนบนไฟล์ที่ถูกแก้ไข แทนที่จะสร้างขยะที่ดูสมเหตุสมผล
มันคือโครงสร้างเดียวกับที่ใช้ใน TLS และในระบบส่งข้อความปลอดภัยสมัยใหม่ บนฮาร์ดแวร์ที่ไม่มีตัวเร่ง AES มันเร็วกว่า AES อย่างเห็นได้ชัด นี่คือเหตุผลที่มือถือมักเลือกใช้มัน
ดูเพิ่มเติม: At rest vs in transitKey wrapping
-
Key wrapping
envelope encryption -
เข้ารหัสไฟล์ด้วยกุญแจเดียว แล้วเข้ารหัสกุญแจนั้นแยกต่างหากด้วยแต่ละวิธีเข้าถึง การเปลี่ยนรหัสผ่านแค่ห่อกุญแจเล็ก ๆ ใหม่แทนที่จะเข้ารหัสทุกอย่างใหม่ทั้งหมด
ไฟล์ถูกเข้ารหัสครั้งเดียวด้วยกุญแจที่สร้างขึ้นบนอุปกรณ์ กุญแจนั้นจะถูกห่อ — เข้ารหัส — ด้วยรหัสผ่าน แล้วห่ออีกครั้งด้วยรหัสกู้คืน สองซองจดหมาย แต่ละซองมีกุญแจเดียวกันอยู่ข้างใน
ผลลัพธ์ทั้งหมดเป็นเรื่องปฏิบัติจริง การเปลี่ยนรหัสผ่านเขียนใหม่แค่ไม่กี่ร้อยไบต์แทนที่จะเข้ารหัสร้อยกิกะไบต์ใหม่ทั้งหมด การปลดล็อกด้วยไบโอเมตริกก็คือสำเนาห่ออีกชุดแทนที่จะเป็นระบบความปลอดภัยที่สอง และการทำซองจดหมายทุกซองหายไปคือการทำกุญแจหาย เพราะกุญแจนั้นไม่มีอยู่ที่ไหนอื่นเลย
ดูเพิ่มเติม: Recovery codeChaCha20-Poly1305
-
Recovery code
-
สตริงแบบใช้ครั้งเดียวที่ปลดห่อกุญแจหลักได้เมื่อลืมรหัสผ่าน ไม่มีใครออกใหม่ให้ได้ เพราะไม่มีใครเคยมีมันเลย — รวมถึงคนที่เขียนแอปด้วย
มันถูกแสดงครั้งเดียวตอนตั้งค่า และมันคือประตูที่สองของสองบาน จดไว้และเก็บไว้ที่อื่นนอกจากอุปกรณ์ มันเปลี่ยนการลืมรหัสผ่านให้เป็นแค่ความยุ่งยากเล็กน้อย
ถ้าลืมรหัสผ่านและทำรหัสกู้คืนหายด้วย ไม่มีใครถอดรหัสไฟล์เหล่านั้นได้เลย นี่ไม่ใช่นโยบายการสนับสนุนที่ต่อรองได้ มันคือความหมายของการไม่มีสำเนาของกุญแจนั้นอยู่เลย เก็บมันไว้ให้ดีเท่ากับที่ไฟล์เหล่านั้นสมควรได้รับ
ดูเพิ่มเติม: Key wrappingZero-knowledge
-
Decoy vault
plausible deniability -
รหัสผ่านที่สองที่เปิดตู้เซฟอีกใบที่ไม่มีพิษภัย คนที่ถูกบังคับให้ปลดล็อกแอปทำได้ และสิ่งที่เปิดออกมาไม่ใช่สิ่งที่พวกเขากำลังหา
รหัสผ่านทั้งสองเป็นของจริงและทั้งคู่เปิดตู้เซฟจริงทั้งคู่ ไม่มีอะไรบนหน้าจอบ่งบอกว่ามีอีกอันหนึ่งอยู่ และแอปก็ถูกถามไม่ได้ว่ากำลังแสดงอันไหนอยู่
มันมีอยู่สำหรับสถานการณ์ที่การปฏิเสธไม่ปลดล็อกไม่ใช่ทางเลือก — ด่านตรวจชายแดน คำเรียกร้อง คนที่ยืนคุมอยู่ข้างหน้าคุณ การเข้ารหัสอย่างเดียวไม่ช่วยตรงนั้น เพราะปัญหาไม่ใช่กุญแจ แต่คือการถูกบังคับให้ใช้มัน
ดูเพิ่มเติม: Recovery codeHidden vs encrypted
-
Keychain
-
ที่เก็บที่ได้รับการป้องกันของระบบสำหรับความลับขนาดเล็ก หนุนหลังด้วยฮาร์ดแวร์ความปลอดภัยของอุปกรณ์ นี่คือที่ที่กุญแจและโทเคนควรอยู่ และเป็นที่ที่ไม่ควรใส่อะไรขนาดใหญ่เข้าไป
รายการในนั้นมีเงื่อนไขได้: อ่านได้เฉพาะเมื่ออุปกรณ์ปลดล็อกแล้ว เฉพาะบนอุปกรณ์นี้เท่านั้น เฉพาะหลังยืนยันด้วยไบโอเมตริกหรือรหัสผ่าน เงื่อนไขเหล่านั้นถูกบังคับใช้โดยฮาร์ดแวร์ ไม่ใช่แค่แอปขอความร่วมมืออย่างสุภาพ
มันเก็บความลับ ไม่ใช่ข้อมูล กุญแจ โทเคน และวัสดุที่ห่อไว้ไปอยู่ที่นั่น ส่วนไฟล์ที่เข้ารหัสจริงอยู่บนดิสก์ ที่ที่ขนาดไม่ใช่ปัญหา
ดูเพิ่มเติม: Key wrappingAt rest vs in transit
-
At rest vs in transit
-
เข้ารหัสขณะพักหมายถึงอ่านไม่ได้บนดิสก์ เข้ารหัสขณะส่งผ่านหมายถึงอ่านไม่ได้บนเครือข่าย ทั้งสองเป็นการป้องกันแยกกัน และผลิตภัณฑ์หนึ่งอาจอ้างอย่างซื่อสัตย์ว่าทำอย่างหนึ่งโดยไม่ทำอีกอย่างเลยก็ได้
HTTPS คือการเข้ารหัสขณะส่งผ่าน: ปลอดภัยจากใครก็ตามที่กำลังสอดส่องเครือข่าย และอ่านได้เต็มที่โดยเซิร์ฟเวอร์ปลายทางเมื่อมันมาถึง การเข้ารหัสขณะพักเกี่ยวกับสำเนาที่ถูกจัดเก็บไว้ ซึ่งสำคัญเมื่ออุปกรณ์หายหรือดิสก์ถูกก็อปปี้ภาพไว้
การอ่านคำกล่าวอ้างเรื่องความเป็นส่วนตัวอย่างละเอียดมักหมายถึงการหาว่ามันพูดถึงข้อไหนในสองข้อนี้ "ข้อมูลของคุณถูกเข้ารหัส" โดยไม่มีคำใดคำหนึ่งติดอยู่ด้วย เป็นประโยคที่ถูกเลือกมาเพื่อไม่พูดอะไรเลย
ดูเพิ่มเติม: ChaCha20-Poly1305Zero-knowledge
-
Zero-knowledge
-
การออกแบบที่ผู้ให้บริการอ่านสิ่งที่ตัวเองเก็บไว้ไม่ได้ เพราะกุญแจไม่เคยออกจากอุปกรณ์ของผู้ใช้เลย การทดสอบง่าย ๆ คือ: พวกเขารีเซ็ตรหัสผ่านของคุณแล้วยังคืนข้อมูลให้คุณได้ไหม
ถ้าบริการสามารถกู้คืนการเข้าถึงได้หลังจากคุณลืมทุกอย่าง มันก็ถือครองบางสิ่งที่ปลดล็อกข้อมูลของคุณได้ — ซึ่งหมายความว่ามันถูกบังคับให้ใช้ได้ และใครก็ตามที่เจาะเข้าบริการก็ได้รับความสามารถเดียวกันนั้นไปด้วย
ข้อแลกเปลี่ยนนี้เป็นเรื่องจริงและควรพูดตรง ๆ แทนที่จะขายเป็นประโยชน์ล้วน ๆ: zero-knowledge ที่แท้จริงหมายถึงการสูญเสียการเข้าถึงจริง ๆ เมื่อกุญแจสุดท้ายหายไป ไม่มีทางเลือกที่สามที่ผู้ให้บริการช่วยกู้คุณได้แต่คนอื่นทำไม่ได้
ดูเพิ่มเติม: Recovery codeAt rest vs in transit
-
Biometrics
Face ID, Touch ID -
อุปกรณ์ ไม่ใช่แอป เป็นผู้ยืนยันว่าเป็นคุณ แอปแค่ถูกบอกว่าใช่หรือไม่ใช่ ไม่มีข้อมูลลายนิ้วมือหรือใบหน้าไปถึงแอปเลย และไม่มีสักอย่างที่เป็นรหัสผ่าน
การปลดล็อกด้วยไบโอเมตริกคือความสะดวกที่ห่อรอบความลับ ไม่ใช่สิ่งทดแทนความลับนั้น สิ่งที่มันป้องกันคือกุญแจที่ถูกเก็บไว้ นี่คือเหตุผลที่รหัสผ่านมีอยู่เสมอเบื้องหลังมัน — ไบโอเมตริกอาจล้มเหลวได้ และทางสำรองต้องเป็นสิ่งที่คุณจำได้
การเปรียบเทียบเกิดขึ้นภายในฮาร์ดแวร์เฉพาะและแม่แบบไม่เคยออกจากมันเลย แอปที่เสนอ Face ID กำลังถามคำถามระบบ ไม่ได้เก็บอะไรเลย
ดูเพิ่มเติม: KeychainKey wrapping
-
Anonymous analytics
-
การนับเหตุการณ์โดยไม่บันทึกว่าใครทำ คุณค่าของคำกล่าวอ้างนี้ขึ้นอยู่ทั้งหมดกับสิ่งที่แนบมากับแต่ละเหตุการณ์ — และชื่อไฟล์ เส้นทาง และ URL คือจุดที่คำสัญญาแบบนี้มักพังลง
การรู้ว่าหน้าจอถูกเปิดคือการนับ การรู้ว่าไฟล์ไหนถูกเล่นคือการอธิบายตัวบุคคล เส้นแบ่งระหว่างสองอย่างนี้ไม่ใช่คำว่า "ไม่ระบุตัวตน" แต่คือฟิลด์ไหนที่เหตุการณ์นั้นพกมาด้วย
คำกล่าวอ้างที่น่าเชื่อถือจะบอกสิ่งที่ *ไม่* ถูกส่งอย่างเจาะจงพอ ๆ กับสิ่งที่ถูกส่ง: ไม่มีชื่อไฟล์ ไม่มีเส้นทาง ไม่มี URL ไม่มีข้อมูลรับรอง ไม่มีตัวระบุที่อยู่รอดข้ามเซสชัน — และมีวิธีปิดมันทั้งหมดได้
ดูเพิ่มเติม: At rest vs in transit