อภิธานศัพท์

ความเป็นส่วนตัวและการเข้ารหัส

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

Hidden vs encrypted

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

โฟลเดอร์ที่ซ่อนไว้ยังคงเป็นโฟลเดอร์ธรรมดา อะไรก็ตามที่อ่านดิสก์โดยตรง — การสำรองข้อมูล ตัวจัดการไฟล์ เครื่องมือทางนิติวิทยาศาสตร์ แอปอื่นที่มีสิทธิ์เหมาะสม — เห็นสิ่งที่อยู่ในนั้นเป๊ะ เพราะไม่มีอะไรเกี่ยวกับไฟล์เปลี่ยนไปเลย

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

ดูเพิ่มเติม: At rest vs in transitChaCha20-Poly1305

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

หัวข้ออื่น ๆ