Zero-Knowledge Encryption คืออะไร? คู่มือฉบับง่าย
Zero-knowledge encryption หมายความว่า provider ไม่สามารถเข้าถึงข้อมูลของคุณได้
การเข้ารหัสแบบ Zero-Knowledge เป็นสถาปัตยกรรมที่ผูกมัดกับผู้ให้บริการ โดยที่บริการไม่ได้เก็บคีย์ที่จำเป็นในการถอดรหัสเนื้อหาของผู้ใช้ที่เก็บไว้ ไม่เหมือนกับการเข้ารหัสบนคลาวด์มาตรฐานที่ผู้ให้บริการควบคุมคีย์เนื้อหา การเข้ารหัสฝั่งไคลเอ็นต์สามารถรักษาความสามารถนั้นไว้ในอุปกรณ์ของผู้ใช้ได้ คำขอทางกฎหมาย การละเมิด หรือบุคคลภายในอาจยังคงเปิดเผยข้อความเข้ารหัส บันทึกบัญชี ข้อมูลการรับส่งข้อมูล หรือข้อมูลเมตาอื่น ๆ ที่ผู้ให้บริการเก็บไว้ คำแนะนำการจัดการคีย์ของ NIST ทำให้การดูแลคีย์เป็นศูนย์กลางในการเข้าถึง แต่แอปไคลเอนต์ ระบบปฏิบัติการ และอุปกรณ์ที่ปลดล็อคยังคงเป็นส่วนหนึ่งของขอบเขตความน่าเชื่อถือ
Zero-Knowledge Encryption ทำงานอย่างไร
อุปมาที่ง่ายที่สุด: ตู้เซฟในโรงแรมที่มีเพียงคุณเท่านั้นที่ตั้ง combination และโรงแรมไม่เคยรู้ หากคุณลืม combination โรงแรมไม่สามารถเปิดตู้เซฟให้คุณได้ นั่นไม่ใช่ข้อบกพร่องในการออกแบบ นั่นคือการออกแบบ
ในทางเทคนิค zero-knowledge encryption ทำงานผ่านสามขั้นตอน:
การสืบทอดคีย์บนอุปกรณ์ ผู้ใช้ระบุข้อมูลรับรอง เช่น รหัสผ่าน ข้อความรหัสผ่าน หรือรูปแบบ ฟังก์ชันการรับคีย์ที่ใช้รหัสผ่านจะรวมเข้ากับเกลือเพื่อสร้างคีย์บนอุปกรณ์ของผู้ใช้ การออกแบบที่แยกกันอย่างดีสามารถใช้คีย์นั้นเพื่อปลดล็อกคีย์เข้ารหัสเนื้อหาแบบสุ่ม แทนที่จะเข้ารหัสทุกไฟล์โดยตรงด้วยข้อมูลรับรองของมนุษย์
การเข้ารหัสก่อนการส่ง ข้อมูลทั้งหมดถูกเข้ารหัสบนอุปกรณ์โดยใช้ derived key ก่อนที่จะออกจากอุปกรณ์ไปยัง cloud storage หรือการสำรองข้อมูล ciphertext ที่เข้ารหัสแล้วคือสิ่งที่ถูก upload
ผู้ให้บริการไม่ได้รับคีย์เนื้อหาข้อความธรรมดา คีย์เนื้อหาจำเป็นต้องมีอยู่ในหน่วยความจำไคลเอนต์ระหว่างการใช้งาน และอาจจัดเก็บไว้ในเครื่องหรือระยะไกลภายในซองจดหมายเข้ารหัสที่ได้รับการรับรองความถูกต้อง ผู้ให้บริการสามารถจัดเก็บไซเฟอร์เท็กซ์และคีย์ที่รวมไว้โดยไม่ต้องเก็บความลับของผู้ใช้ที่จำเป็นในการเปิด ข้อมูลเมตาของบัญชี การจราจร ขนาดบันทึก และเวลาอาจยังคงมองเห็นได้
Zero-Knowledge Encryption เทียบกับการเข้ารหัสประเภทอื่น
| ประเภท | ใครถือ Key | Provider อ่านข้อมูลได้ | รอดจาก Provider Breach | ตัวอย่าง |
|---|---|---|---|---|
| ไม่มีการเข้ารหัส | N/A | ใช่ | ไม่ | Dropbox (tier มาตรฐาน) |
| การเข้ารหัสระหว่างส่ง (TLS) | Provider | ใช่ (ขณะพักบนเซิร์ฟเวอร์) | ไม่ | Google Photos |
| Server-side encryption ขณะพัก | Provider | ใช่ (ถือ decryption key) | บางส่วน | iCloud (มาตรฐาน) |
| การเข้ารหัสฝั่งไคลเอ็นต์ที่ปกปิดโดยผู้ให้บริการ | ผู้ใช้เท่านั้น | ไม่ เป็นไปไม่ได้ทางคณิตศาสตร์ | ใช่ | ห้องนิรภัยที่เข้ารหัสและระบบสำรองข้อมูล |
Zero-Knowledge Encryption สำคัญอย่างไร
การ breach ข้อมูลเปิดเผยบันทึกหลายพันล้านรายการต่อปี เมื่อ provider ที่ถือ encryption key ถูก breach ผู้โจมตีอาจได้รับทั้งข้อมูลที่เข้ารหัสและ key เพื่อถอดรหัส สถาปัตยกรรม zero-knowledge ขจัดความเสี่ยงนี้โดยสมบูรณ์
ผู้ให้บริการสามารถกำหนดให้เปิดเผยข้อมูลที่พวกเขาเก็บไว้ได้ การออกแบบที่ปกปิดโดยผู้ให้บริการสามารถจำกัดการตอบสนองต่อข้อความไซเฟอร์เท็กซ์และบัญชีที่มีอยู่ ปริมาณการใช้งาน การเรียกเก็บเงิน หรือข้อมูลเมตาของบริการได้ เนื่องจากผู้ให้บริการไม่ได้เก็บคีย์เนื้อหาข้อความธรรมดาไว้ ฝ่ายอื่นสามารถรับข้อมูลรับรองผู้ใช้ ใช้ประโยชน์จากไคลเอ็นต์ หรือบังคับให้เปิดเผยได้หรือไม่ เป็นคำถามแยกต่างหาก Apple เปิดตัวการปกป้องข้อมูลขั้นสูงใน iOS 16.2 เป็นตัวเลือกการขยายการเข้ารหัสจากต้นทางถึงปลายทาง iCloud ข้อมูล
Vaultaire ใช้งานการแยกคีย์ของผู้ให้บริการอย่างไร
Vaultaire คือแอป vault สำหรับ iPhone ที่สร้างบนสถาปัตยกรรม zero-knowledge
ที่มาของคีย์ ผู้ใช้วาดลวดลายบนตารางขนาด 5x5 จำนวน 25 จุด PBKDF2-HMAC-SHA512 รวมลำดับนั้นเข้ากับอุปกรณ์เดียว Keychain เกลือสำหรับการวนซ้ำ 600,000 ครั้งเพื่อรับคีย์ vault 256 บิต คีย์ห้องนิรภัยจะตรวจสอบความถูกต้องของดัชนีที่เข้ารหัสและล้อมคีย์หลัก 256 บิตแบบสุ่มแยกต่างหาก ข้อมูลการกู้คืน รวมถึงรูปแบบ จะถูกจัดเก็บไว้ใน AES-GCM เข้ารหัส Keychain ฐานข้อมูลมากกว่าไฟล์ข้อความธรรมดาหรือบัญชี Vaultaire
ศูนย์ทรัพยากรการโจรกรรมข้อมูลประจำตัวรายงานการละเมิดข้อมูล 3,205 ครั้งในสหรัฐอเมริกาในปี 2566 ส่งผลกระทบต่อบุคคลประมาณ 353 ล้านคน เมื่อผู้ให้บริการเก็บคีย์เนื้อหาไว้ การละเมิดหนึ่งครั้งอาจเปิดเผยทั้งข้อมูลที่เก็บไว้และเส้นทางในการถอดรหัส การเข้ารหัสลับของผู้ให้บริการจะแยกทรัพย์สินเหล่านั้นออกจากกัน: การละเมิดเซิร์ฟเวอร์อาจยังคงเปิดเผยไซเฟอร์เท็กซ์และข้อมูลเมตา แต่ไม่ใช่คีย์เนื้อหาข้อความธรรมดาที่ผู้ให้บริการเป็นเจ้าของ การคาดเดาข้อมูลรับรองและการประนีประนอมกับลูกค้ายังคงเป็นความเสี่ยงที่แยกจากกัน
ไม่มี vault registry ไม่มี database ที่แสดง vault, vault names หรือ vault counts Pattern ทุก pattern เปิด vault ที่ต่างกัน แอปเองไม่สามารถระบุได้ว่ามี vault กี่ vault อยู่ ดูสถาปัตยกรรมความปลอดภัยฉบับเต็ม
วิธีบอกว่าแอปใช้ Zero-Knowledge Encryption จริงหรือไม่
เริ่มต้นด้วยการทดสอบสั้นๆ สามครั้ง จากนั้นตรวจสอบสถาปัตยกรรมที่เผยแพร่:
แบบทดสอบการลืมรหัสผ่าน หากการรีเซ็ตอีเมลเพียงอย่างเดียวสามารถกู้คืนข้อมูลที่อ่านได้ ให้สอบถามกลไกที่ผู้ให้บริการถือครองซึ่งกู้คืนคีย์เนื้อหาที่มีประสิทธิภาพ วลีการกู้คืนที่ผู้ใช้ระงับ การอนุมัติอุปกรณ์เก่า และการรีเซ็ตที่ควบคุมโดยผู้ให้บริการนั้นมีการออกแบบที่แตกต่างกัน
การทดสอบอุปกรณ์ใหม่ หากอุปกรณ์ใหม่กู้คืนเนื้อหาที่อ่านได้ ให้ระบุอุปกรณ์ลับหรือที่เชื่อถือได้ที่อนุญาต การเข้าสู่ระบบบัญชีเพียงอย่างเดียวจะแนะนำเส้นทางการกู้คืนที่ควบคุมโดยผู้ให้บริการ วลีการกู้คืนพร้อมบันทึกการสำรองข้อมูลที่เข้ารหัสสามารถรักษาการแยกคีย์ผู้ให้บริการได้
การทดสอบบัญชี ที่อยู่อีเมลหรือหมายเลขโทรศัพท์เชื่อมโยงข้อมูลประจำตัวกับข้อมูลเมตาของบริการ แต่ไม่ได้พิสูจน์ด้วยตัวเองว่าผู้ให้บริการสามารถถอดรหัสเนื้อหาได้ ตรวจสอบลำดับชั้นคีย์ การออกแบบการกู้คืน รหัสไคลเอ็นต์หรือการตรวจสอบ นโยบายเมตาดาต้า และดูว่าไซเฟอร์เท็กซ์ที่ผ่านการรับรองความถูกต้องอนุญาตให้มีการตรวจสอบข้อมูลประจำตัวแบบออฟไลน์หรือไม่
การทดสอบเหล่านี้เป็นตัวกรอง ไม่ใช่หลักฐานด้านความปลอดภัย ข้อกำหนดที่สอดคล้องกันควรตั้งชื่อคีย์เนื้อหา คีย์ปลดล็อค เกลือ พารามิเตอร์การสืบทอด รูปแบบการเข้ารหัสที่ได้รับการรับรองความถูกต้อง กฎ nonce ซองการกู้คืน พื้นที่เก็บข้อมูลลับในเครื่อง ข้อมูลเมตาบนคลาวด์ และจุดที่มีคีย์ข้อความธรรมดาอยู่ การทบทวนโดยอิสระเป็นหลักฐานที่ชัดเจนกว่าฉลากผลิตภัณฑ์
คำถามที่พบบ่อย
Zero-knowledge encryption เหมือนกับ end-to-end encryption หรือไม่?
ทั้งสองมีความทับซ้อนกันแต่ไม่เหมือนกัน End-to-end encryption (E2EE) หมายความว่าข้อมูลถูกเข้ารหัสบนอุปกรณ์ของผู้ส่งและถอดรหัสเฉพาะบนอุปกรณ์ของผู้รับ Zero-knowledge encryption หมายความว่า provider ไม่สามารถเข้าถึงข้อมูลได้ Zero-knowledge encryption เป็น standard ที่เข้มงวดกว่า
จะเกิดอะไรขึ้นถ้าฉันลืมรหัสผ่านด้วย zero-knowledge encryption?
ห้องนิรภัย เป็นห้องนิรภัยเข้ารหัสฝั่งไคลเอ็นต์สำหรับ iPhone. ในแง่ผลิตภัณฑ์ที่มักวางตลาดว่า "ความรู้เป็นศูนย์" เอกสารคำกล่าวอ้างที่แคบกว่านั้นก็คือ Wraxle ไม่ได้รับเนื้อหา vault แบบข้อความธรรมดาหรือคีย์ที่จำเป็นในการถอดรหัส ต่อไปนี้คือวิธีการใช้งานและขอบเขตความน่าเชื่อถือที่เหลืออยู่ในแต่ละเลเยอร์
Zero-knowledge encryption ช้ากว่าการเข้ารหัสปกติหรือไม่?
การเข้ารหัสไฟล์ แต่ละไฟล์ที่นำเข้าจะถูกเข้ารหัสด้วย AES-256-GCM ใต้มาสเตอร์คีย์แบบสุ่ม CryptoKit สร้างกล่องปิดผนึกที่ผ่านการรับรองความถูกต้องด้วย nonce ใหม่ และรูปแบบการสตรีมจะได้รับ nonce ที่แตกต่างกันสำหรับแต่ละชิ้นที่สั่งซื้อ
สรุป
การเข้ารหัสแบบ Zero-Knowledge ถือเป็นการอ้างสิทธิ์การแยกคีย์ของผู้ให้บริการได้ดีที่สุด: บริการไม่มีคีย์ข้อความธรรมดาที่จำเป็นในการถอดรหัสเนื้อหาที่เก็บไว้ ซึ่งแข็งแกร่งกว่าการเข้ารหัสฝั่งเซิร์ฟเวอร์ภายใต้คีย์ที่ผู้ให้บริการควบคุม แต่ไม่ได้อ้างว่าคีย์มีอยู่ในหน่วยความจำเท่านั้น ข้อมูลเมตาหายไป หรือไคลเอ็นต์และอุปกรณ์ทุกตัวถูกโจมตีจะพ่ายแพ้ ตัดสินผลิตภัณฑ์ตามลำดับชั้นที่สำคัญ การออกแบบการกู้คืน การนำไปปฏิบัติ และการตรวจสอบโดยอิสระ
การค้นพบห้องนิรภัย อินเทอร์เฟซปกติไม่แสดงรายการห้องนิรภัย รูปแบบในเครื่องจะจัดเก็บไฟล์ดัชนีที่เข้ารหัสไว้ 1 ไฟล์สำหรับแต่ละห้องนิรภัย และรหัสการบำรุงรักษาสามารถระบุไฟล์เหล่านั้นได้ ผู้ที่มีสิทธิ์เข้าถึงคอนเทนเนอร์แอปจึงสามารถนับดัชนีที่เข้ารหัสได้ แม้ว่าชื่อไฟล์จะไม่เปิดเผยรูปแบบ ชื่อ หรือเนื้อหาข้อความธรรมดาก็ตาม ดูแบบเต็มๆ สถาปัตยกรรมความปลอดภัย และ คำอธิบายการเข้ารหัสรูปแบบ.