Cryptile

สถาปัตยกรรมความปลอดภัยของ Cryptile ทีละชั้น

อัปเดตเมื่อ

Cryptile เข้ารหัสทุกไฟล์ ภาพขนาดย่อ และดัชนีด้วย AES-256-GCM โดยใช้กุญแจที่สร้างขึ้นบนโทรศัพท์ของคุณจากรูปแบบที่คุณวาด ไม่มีบัญชี ไม่มีเซิร์ฟเวอร์ และผู้พัฒนาไม่เคยถือกุญแจ

ดาวน์โหลด Cryptile บน App Store

สรุปแบบเข้าใจง่ายอยู่ที่หน้าความปลอดภัย

ควรรู้อะไรบ้าง?

  • รูปแบบของคุณคือต้นทางของทุกกุญแจ ถ้าไม่มีรูปแบบ ไม่มีอะไรที่อ่านได้ถูกเก็บไว้
  • ขนาดและจำนวนห้องนิรภัยถูกทำให้คลุมเครือ ไฟล์ถูกเติมขนาด และช่องลวงซ่อนว่ามีห้องนิรภัยกี่ห้อง
  • คุณตรวจสอบได้ แกนหลักของการเข้ารหัสเปิดเผยให้ใครก็ตรวจสอบได้ (source-available) พร้อมแบบจำลองภัยคุกคามและเวกเตอร์ทดสอบ: github.com/jasonbrelsford/cryptile-core

รูปแบบกลายเป็นกุญแจได้อย่างไร?

  1. รูปแบบถูกเขียนเป็นขนาดตาราง ตามด้วยจุดที่คุณแตะตามลำดับ
  2. นำไปผสมกับความลับของอุปกรณ์ขนาด 32 ไบต์ ที่เก็บใน Keychain ของ iPhone สำหรับอุปกรณ์นี้เท่านั้น
  3. PBKDF2-HMAC-SHA512 ทำงาน 600,000 รอบกับข้อมูลนั้น การเดาแต่ละครั้งต้องใช้งานเท่านั้น
  4. HKDF-SHA256 แบ่งผลลัพธ์เป็นกุญแจค้นหาและกุญแจห่อหุ้ม
  5. กุญแจค้นหาระบุชื่อไฟล์ดัชนีของห้องนิรภัย กุญแจห่อหุ้มใช้เปิดไฟล์นั้น

ภายในดัชนีมีกุญแจหลักแบบสุ่มขนาด 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 ทำลายความลับของอุปกรณ์ จึงไม่มีห้องนิรภัยใดบนโทรศัพท์เปิดได้จนกว่าจะกู้คืน

ดาวน์โหลด Cryptile บน App Store