สถาปัตยกรรมความปลอดภัยของ Cryptile ทีละชั้น
Cryptile เข้ารหัสทุกไฟล์ ภาพขนาดย่อ และดัชนีด้วย AES-256-GCM โดยใช้กุญแจที่สร้างขึ้นบนโทรศัพท์ของคุณจากรูปแบบที่คุณวาด ไม่มีบัญชี ไม่มีเซิร์ฟเวอร์ และผู้พัฒนาไม่เคยถือกุญแจ
ดาวน์โหลด Cryptile บน App Store
สรุปแบบเข้าใจง่ายอยู่ที่หน้าความปลอดภัย
ควรรู้อะไรบ้าง?
- รูปแบบของคุณคือต้นทางของทุกกุญแจ ถ้าไม่มีรูปแบบ ไม่มีอะไรที่อ่านได้ถูกเก็บไว้
- ขนาดและจำนวนห้องนิรภัยถูกทำให้คลุมเครือ ไฟล์ถูกเติมขนาด และช่องลวงซ่อนว่ามีห้องนิรภัยกี่ห้อง
- คุณตรวจสอบได้ แกนหลักของการเข้ารหัสเปิดเผยให้ใครก็ตรวจสอบได้ (source-available) พร้อมแบบจำลองภัยคุกคามและเวกเตอร์ทดสอบ: github.com/jasonbrelsford/cryptile-core
รูปแบบกลายเป็นกุญแจได้อย่างไร?
- รูปแบบถูกเขียนเป็นขนาดตาราง ตามด้วยจุดที่คุณแตะตามลำดับ
- นำไปผสมกับความลับของอุปกรณ์ขนาด 32 ไบต์ ที่เก็บใน Keychain ของ iPhone สำหรับอุปกรณ์นี้เท่านั้น
- PBKDF2-HMAC-SHA512 ทำงาน 600,000 รอบกับข้อมูลนั้น การเดาแต่ละครั้งต้องใช้งานเท่านั้น
- HKDF-SHA256 แบ่งผลลัพธ์เป็นกุญแจค้นหาและกุญแจห่อหุ้ม
- กุญแจค้นหาระบุชื่อไฟล์ดัชนีของห้องนิรภัย กุญแจห่อหุ้มใช้เปิดไฟล์นั้น
ภายในดัชนีมีกุญแจหลักแบบสุ่มขนาด 256 บิตของห้องนิรภัย HKDF สร้างกุญแจย่อยแยกกันจากกุญแจหลักนี้สำหรับไฟล์ ภาพขนาดย่อ และดัชนี ไม่มีกุญแจใดถูกใช้สองหน้าที่
ไฟล์ถูกเข้ารหัสอย่างไร?
รายการขนาดเล็ก เช่น ภาพขนาดย่อและดัชนี ถูกปิดผนึกเป็นชิ้นเดียวด้วย AES-256-GCM และ nonce แบบสุ่ม
ไฟล์ขนาดใหญ่ใช้โครงสร้าง STREAM แบ่งเป็นชิ้นละ 1 MB แต่ละชิ้นมี nonce ของตัวเอง และบันทึกตำแหน่งและว่าเป็นชิ้นสุดท้ายหรือไม่ การตัด สลับลำดับ หรือสลับชิ้นจะทำให้ถอดรหัสไม่สำเร็จ
GCM ยังยืนยันความถูกต้องของทุกส่วนหัว ไฟล์ที่ถูกแก้ไขจึงถูกปฏิเสธแทนที่จะแสดงผล
ขนาดและจำนวนห้องนิรภัยถูกซ่อนอย่างไร?
ทุกก้อนข้อมูลขนาดเล็กและทุกชิ้นสุดท้ายของไฟล์ถูกเติมขนาดให้เป็นจำนวนเท่าของ 64 KiB คนที่คัดลอกไปเห็นแค่ขนาดคร่าว ๆ ไม่ใช่ขนาดที่แน่นอน
ไม่มีรายการห้องนิรภัย แอปเก็บช่องที่มีรูปทรงเหมือนดัชนีอย่างน้อย 8 ช่อง ทั้งจริงและลวง และสุ่มช่องลวงใหม่ทุกครั้งที่เขียนข้อมูล รูปแบบที่ไม่ตรงกับช่องใดจะเปิดห้องนิรภัยที่ว่างเปล่า
การกู้คืนทำงานอย่างไร?
แต่ละห้องนิรภัยมีวลีกู้คืน 9 คำ ซึ่งมีความสุ่ม 96 บิต วลีนี้เปิดสำเนากู้คืนแยกต่างหากของห้องนิรภัย ที่ปิดผนึกด้วยกุญแจที่สร้างจากวลี
ข้อมูลสำรองบน iCloud สะท้อนไฟล์ที่เข้ารหัสตามที่เป็นอยู่ ตามค่าเริ่มต้นไม่มีความลับของอุปกรณ์อยู่ในนั้น ข้อมูลสำรองอย่างเดียวจึงใช้เดารูปแบบไม่ได้
อะไรเข้ารหัส และอะไรไม่เข้ารหัส?
เข้ารหัส: รูปภาพ วิดีโอ ไฟล์ โน้ต ภาพขนาดย่อ ชื่อ โฟลเดอร์ รายการโปรด ข้อความที่จดจำได้ และตำแหน่งของรูปภาพ ไฟล์เล็ก ๆ ที่ติดตามช่องลวงและจำนวนรายการของแพ็กเกจฟรีถูกปิดผนึกด้วยกุญแจของอุปกรณ์
สิ่งที่ Cryptile ไม่ได้เข้ารหัส:
- การตั้งค่า เวลาล็อกอัตโนมัติ ลำดับการเรียง และสวิตช์สำรองข้อมูล ไม่มีความลับใด ๆ
- รายการที่แชร์เข้ามาและรอเพิ่ม อยู่ภายใต้การปกป้องไฟล์ของ iOS จนกว่าคุณจะเปิดห้องนิรภัย
- ขนาดรวมของคอนเทนเนอร์และเวลาที่เขียน ห้องนิรภัยขนาด 10 GB ดูไม่เหมือน 10 MB
- ทุกอย่างที่คุณส่งออก สำเนาที่บันทึกไปยังแอปรูปภาพหรือแอปไฟล์อยู่นอกห้องนิรภัย
สิ่งนี้ป้องกันอะไรได้บ้าง?
- คนที่คัดลอกไฟล์ของแอปไปโดยไม่มี Keychain ของคุณ เขาได้แค่ข้อมูลที่เข้ารหัส และลองรูปแบบไม่ได้
- Apple หรือการรั่วไหลที่ Apple iCloud มีแต่ข้อมูลที่เข้ารหัส ไม่มีกุญแจ
- การดัดแปลง ข้อมูลที่ถูกแก้ไขหรือสลับลำดับจะถอดรหัสไม่สำเร็จ
- ตัวเราเอง เราไม่มีเซิร์ฟเวอร์และไม่ถือกุญแจ จึงรีเซ็ตการเข้าถึงไม่ได้
สิ่งนี้ไม่ได้ป้องกันอะไรบ้าง?
- รูปแบบสั้น รูปแบบอ่อนกว่ารหัสผ่านแบบวลี ถ้ามีไฟล์และ Keychain ของคุณ รูปแบบ 6 จุดบนตาราง 4×4 จะถูกเจาะได้ในไม่กี่นาทีด้วย GPU ใช้ตั้งแต่ 8 จุดขึ้นไป
- มัลแวร์บนโทรศัพท์ที่ปลดล็อกอยู่ โค้ดที่อ่านหน่วยความจำขณะห้องนิรภัยเปิดอยู่ เกินกว่าที่แอปใดจะรับมือได้
- คนที่เห็นคุณวาด วาดในที่ที่ไม่มีใครเห็นมือของคุณ
- การทำโทรศัพท์และวลีหาย ห้องนิรภัยจะหายไป ไม่มีการรีเซ็ต
รูปแบบฉุกเฉินใน Plus ทำลายความลับของอุปกรณ์ จึงไม่มีห้องนิรภัยใดบนโทรศัพท์เปิดได้จนกว่าจะกู้คืน