สถาปัตยกรรมความปลอดภัย: สแต็กทางเทคนิคเต็มรูปแบบ

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

Vaultaire ใช้ AES-256-GCM สำหรับการเข้ารหัสแบบตรวจสอบความถูกต้องได้กับดัชนีห้องนิรภัย คีย์ที่ห่อไว้ ส่วนหัวไฟล์ เนื้อหา ภาพขนาดย่อ และข้อมูลเมตา PBKDF2-HMAC-SHA512 สร้างคีย์ห้องนิรภัยในเครื่องจากรูปแบบและ salt ใน Keychain ระดับอุปกรณ์ คีย์ห้องนิรภัยนั้นห่อคีย์หลักแบบสุ่ม 256 บิตอีกตัวหนึ่ง ซึ่งเข้ารหัสไฟล์ผ่าน CryptoKit ในกระบวนการของแอป

สแต็กการเข้ารหัส

Vaultaire ใช้กลไกการเข้ารหัสหลายอย่างทำงานร่วมกัน แต่ละอย่างถูกเลือกมาเพื่องานเฉพาะ PBKDF2 เปลี่ยนข้อมูลยืนยันตัวตนของมนุษย์ให้เป็นคีย์ห้องนิรภัยหรือคีย์กู้คืน AES-256-GCM ปกป้องดัชนี ตัวห่อคีย์ ข้อมูลเมตา ภาพขนาดย่อ และเนื้อหาไฟล์ คีย์หลักแบบสุ่มแยกการเข้ารหัสไฟล์ระยะยาวออกจากรูปแบบที่เปลี่ยนได้ Keychain และ iOS Data Protection ปกป้อง salt ที่ผูกกับอุปกรณ์และระเบียนการกู้คืนขณะอุปกรณ์ล็อกอยู่ ไม่มีคีย์ถอดรหัสที่ผู้ให้บริการถือไว้ซึ่งให้นักพัฒนาเข้าถึงข้อความธรรมดาในห้องนิรภัยได้ตามปกติ

นี่ไม่ใช่ความซับซ้อนที่ไร้จุดหมาย แต่ละชั้นรับมือพื้นผิวการโจมตีที่ต่างกัน AES-256-GCM รวมการรักษาความลับเข้ากับการตรวจสอบความถูกต้อง ไซเฟอร์เท็กซ์ที่ถูกแก้ไขจึงไม่ผ่านการตรวจสอบ PBKDF2 เพิ่มต้นทุนของการทดสอบแต่ละรูปแบบหรือวลี คีย์หลักแบบสุ่มทำให้การเปลี่ยนรูปแบบห่อคีย์ใหม่เพียงคีย์เดียวได้ แทนการเข้ารหัสทุกไฟล์ใหม่ การปกป้องข้อมูลของ Keychain ปกป้อง salt ในเครื่องและระเบียนการกู้คืน ขณะที่แอปยังยอมรับว่าการเข้ารหัสแบบสมมาตรเกิดขึ้นในหน่วยความจำของกระบวนการ

เมื่อรวมกัน ชั้นเหล่านี้สร้างสถาปัตยกรรมป้องกันเชิงลึก แต่ไม่ใช่อุปสรรคที่เป็นอิสระต่อกันทั้งหมด รูปแบบที่เดาไว้ตรวจได้กับชื่อไฟล์ดัชนีและการตรวจสอบความถูกต้องของ AES-GCM และอุปกรณ์ที่ปลดล็อกอยู่ซึ่งถูกเจาะสามารถเห็นคีย์หรือข้อความธรรมดาในกระบวนการของแอปได้ สถาปัตยกรรมนี้จึงขึ้นกับเอนโทรปีของข้อมูลยืนยันตัวตน ต้นทุนของ PBKDF2 การปกป้องอุปกรณ์ของ iOS และการจัดการการเข้ารหัสแบบตรวจสอบความถูกต้องอย่างถูกต้อง นอกเหนือจากความแข็งแรงของ AES เอง

การป้องกันเชิงลึก

ลองนึกถึงลำดับชั้นของ Vaultaire เป็นชุดคอนเทนเนอร์ที่ล็อกซ้อนกัน คีย์ห้องนิรภัย ที่สร้างจากรูปแบบเปิดดัชนีที่ตรวจสอบความถูกต้องได้ ดัชนีปล่อย คีย์หลัก แบบสุ่มที่ห่อไว้ออกมา คีย์หลักนั้นปกป้องไฟล์และข้อมูลเมตา PBKDF2, AES-GCM, Keychain และ iOS Data Protection ให้คุณสมบัติที่ต่างกัน แต่คำกล่าวอ้างด้านความปลอดภัยแข็งแรงได้เท่ากับทั้งห่วงโซ่เท่านั้น

AES-256-GCM: การเข้ารหัสไฟล์

ภาพถ่าย วิดีโอ และเอกสารทุกรายการที่เก็บใน Vaultaire ถูกเข้ารหัสด้วย AES-256-GCM — Advanced Encryption Standard ที่ใช้คีย์ 256 บิตในโหมด Galois/Counter Vaultaire ยังใช้ AES-GCM กับดัชนีห้องนิรภัย ส่วนหัวไฟล์ ภาพขนาดย่อ และซองคีย์ อัลกอริทึมและขนาดคีย์เป็นมาตรฐาน แต่ความปลอดภัยของ Vaultaire ยังขึ้นกับการจัดการ nonce การจัดการคีย์ ความแข็งแรงของข้อมูลยืนยันตัวตน และความถูกต้องของการใช้งาน

“256” ใน AES-256 อ้างอิงถึงความยาวของคีย์ในหน่วยบิต คีย์ 256 บิตมี 2256 ค่าที่เป็นไปได้ ถ้าจะให้เห็นภาพว่าตัวเลขนี้ใหญ่แค่ไหน ในจักรวาลที่สังเกตได้มีอะตอมประมาณ 1080 อะตอม ถ้าทุกอะตอมเป็นซูเปอร์คอมพิวเตอร์ที่ทดสอบคีย์หนึ่งพันล้านคีย์ต่อวินาทีมาตั้งแต่เกิดบิ๊กแบง ก็จะสำรวจได้ไม่ถึงหนึ่งในล้านล้านของหนึ่งในล้านล้านของหนึ่งเปอร์เซ็นต์ของพื้นที่คีย์ AES-256 จะไม่ถูกเจาะด้วยวิธี brute force ไม่ใช่วันนี้ ไม่ใช่ศตวรรษนี้ ไม่ใช่ก่อนที่ดวงดาวจะมอดไหม้

เหตุใดโหมด GCM จึงมีความสำคัญ

AES เป็นรหัสบล็อก, ซึ่งจะเข้ารหัสข้อมูลเป็นชิ้นขนาด 128 บิต “mode” กำหนดวิธีการรวมชิ้นส่วนเหล่านั้น GCM (โหมด Galois/Counter) มีสองสิ่งที่โหมดที่เรียบง่ายกว่าอย่าง CBC ไม่มี: การเข้ารหัสแบบขนานและการตรวจสอบสิทธิ์ในตัว

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

PBKDF2: การสืบทอดคีย์

Vaultaire สร้างคีย์ต่างกันสำหรับงานที่ต่างกัน รูปแบบและ salt ใน Keychain ระดับอุปกรณ์ถูกป้อนเข้า PBKDF2-HMAC-SHA512 600,000 รอบ เพื่อสร้างคีย์ห้องนิรภัยในเครื่อง การสร้างคีย์จากรูปแบบแบบกำหนดแน่นอนสร้างคีย์ข้อมูลสำรองบนคลาวด์แยกอีกตัว วลีกู้คืนที่ปรับรูปแบบแล้วผ่าน PBKDF2 800,000 รอบ เพื่อสร้างคีย์ของซองการกู้คืน ไม่มีขั้นตอนใดเปลี่ยนข้อมูลยืนยันตัวตนของมนุษย์ให้มีเอนโทรปี 256 บิต เพียงเพราะเอาต์พุตยาว 256 บิต

PBKDF2 ปกป้องรูปแบบของคุณอย่างไร

แนวคิดหลักของ PBKDF2 คือการทำงานหนักโดยตั้งใจ มันนำรูปแบบที่แปลงเป็นข้อมูลอนุกรมหรือวลีที่ปรับรูปแบบแล้ว มารัน HMAC-SHA512 หลายแสนรอบ ผู้ใช้ที่ถูกต้องจ่ายต้นทุนนี้ครั้งเดียวต่อการปลดล็อกหรือการกู้คืน ผู้โจมตีต้องจ่ายสำหรับทุกค่าที่ลองเดา แม้ฮาร์ดแวร์แบบขนานและทางเลือกในการใช้งานจะเป็นตัวกำหนดอัตราการเดาจริง

Vaultaire ตั้งค่า PBKDF2 ไว้ 600,000 รอบสำหรับคีย์ที่สร้างจากรูปแบบ ทำให้การเดาแต่ละครั้งแพงขึ้น แต่การประเมินการโจมตีอย่างรับผิดชอบต้องระบุเวลาต่อการเดาหนึ่งครั้งที่วัดได้และสมมติฐานด้านฮาร์ดแวร์ ที่หนึ่งมิลลิวินาทีต่อการเดาพอดี การเดาแบบต่อเนื่องหนึ่งพันล้านครั้งใช้เวลาประมาณ 11.6 วัน ไม่ใช่หลายปี ผลลัพธ์ 256 บิตไม่ได้ขยายเอนโทรปีของรูปแบบที่เดาได้ง่าย

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

256 บิต
เลเยอร์การเข้ารหัส
6
คีย์
0
ที่เก็บไว้บนเซิร์ฟเวอร์

AES-256-GCM: การป้องกันข้อมูลเมตา

การเข้ารหัสเนื้อหาไฟล์ยังไม่เพียงพอ ชื่อไฟล์ วันที่สร้าง ขนาดภาพขนาดย่อ และโครงสร้างห้องนิรภัยล้วนเป็นข้อมูลเมตา, และข้อมูลเมตาสามารถเปิดเผยได้เช่นเดียวกับตัวข้อมูลเอง ไฟล์ชื่อ “tax-return-2025.pdf” จะบอกผู้โจมตีอย่างชัดเจนว่ามีอะไรอยู่ข้างใน แม้ว่าเนื้อหาจะถูกเข้ารหัสก็ตาม การประทับเวลาจะแสดงเมื่อคุณใช้ห้องนิรภัย ขนาดภาพขนาดย่อเผยให้เห็นว่าบางสิ่งเป็นภาพถ่ายหรือวิดีโอ

Vaultaire ปกป้องข้อมูลเมตานี้ด้วย AES-256-GCM ไม่ใช่ ChaCha20 ชื่อไฟล์และประเภท MIME ถูกบรรจุไว้ในส่วนหัวไฟล์ที่เข้ารหัส ดัชนีห้องนิรภัยที่เข้ารหัสมีระเบียนไฟล์ วันที่ ข้อมูลขนาด เค้าโครงการจัดเก็บ และคีย์หลักที่ห่อไว้ ข้อมูลภาพขนาดย่อก็ถูกเข้ารหัสด้วยคีย์หลักแบบสุ่มเช่นกัน

ทำไมข้อมูลเมตาจึงต้องใช้การเข้ารหัสแบบตรวจสอบความถูกต้องได้

ข้อมูลเมตาต้องการทั้งความสมบูรณ์และการรักษาความลับ AES-GCM สร้างแท็กตรวจสอบความถูกต้องให้แต่ละค่าที่เข้ารหัส Vaultaire จึงปฏิเสธส่วนหัว ดัชนี ภาพขนาดย่อ หรือซองคีย์ที่ถูกแก้ไขได้ แทนการรับข้อความธรรมดาที่ผู้โจมตีควบคุม การออกแบบตั้งใจใช้โครงสร้างการเข้ารหัสแบบตรวจสอบความถูกต้องแบบเดียวกันกับรูปแบบการจัดเก็บเหล่านี้ทั้งหมด แทนการอ้างความหลากหลายทางการเข้ารหัสที่ไม่มีอยู่จริงในการใช้งาน

การใช้ไซเฟอร์ตัวเดียวกันไม่ได้หมายความว่านำคีย์หรือ nonce เดียวกันมาใช้ซ้ำอย่างไม่ระวัง คีย์ห้องนิรภัยปกป้องดัชนีและห่อคีย์หลักแบบสุ่ม คีย์หลักปกป้องข้อมูลไฟล์ CryptoKit สร้าง sealed box ที่ตรวจสอบความถูกต้องได้ด้วย nonce ใหม่ ส่วนรูปแบบสตรีมของ Vaultaire สร้าง nonce ที่ต่างกันสำหรับแต่ละชิ้นตามลำดับ การรับประกันที่เกี่ยวข้องมาจากการแยกคีย์ วินัยในการใช้ nonce และการตรวจสอบความถูกต้อง ไม่ใช่จากไซเฟอร์ตัวที่สองสำหรับข้อมูลเมตา

สถาปัตยกรรมที่ไม่มีความรู้

ต่อไปนี้เป็นคำถามที่ควรถามเกี่ยวกับแอปรักษาความปลอดภัย: จะเกิดอะไรขึ้นหากบริษัทที่อยู่เบื้องหลังแอปนี้ถูกแฮ็ก หมายศาล หรือเพียงแค่เปลี่ยนมาเป็นอันตราย

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

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

ความรู้แบบศูนย์หมายถึงอะไรในทางปฏิบัติ

หากหน่วยงานบังคับใช้กฎหมายส่งหมายศาลถึง Vaultaire เพื่อขอข้อความธรรมดาในห้องนิรภัย บริษัทไม่มีรูปแบบ วลีกู้คืน คีย์ห้องนิรภัย คีย์ข้อมูลสำรอง หรือคีย์หลักที่ต้องใช้ถอดรหัส ระเบียน iCloud ที่เข้ารหัสอยู่ในฐานข้อมูลส่วนตัว CloudKit ของผู้ใช้ อย่างไรก็ตาม บนอุปกรณ์ ข้อมูลการกู้คืนถูกเก็บในฐานข้อมูล Keychain ที่เข้ารหัส และคีย์สมมาตรอยู่ในหน่วยความจำของแอปขณะที่ CryptoKit เข้ารหัสหรือถอดรหัสห้องนิรภัยที่เปิดอยู่

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

ไม่มีใครไว้วางใจ, ออกแบบโดย

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

Keychain และขอบเขตกระบวนการแอป

Secure Enclave ของ Apple ปกป้องคีย์ส่วนตัวที่รองรับได้ และมีส่วนในบางส่วนของสถาปัตยกรรมความปลอดภัยของแพลตฟอร์ม แต่ API สาธารณะของมันไม่รับคีย์สมมาตรใดๆ ที่สร้างจาก PBKDF2 แล้วทำงานเข้ารหัสไฟล์ AES-GCM ของ Vaultaire ภายในตัวประมวลผลร่วม Vaultaire จึงไม่อธิบายไซเฟอร์ของห้องนิรภัยว่าเป็น AES ใน Secure Enclave

Vaultaire ใช้รายการรหัสผ่านทั่วไปใน iOS Keychain สำหรับ salt แบบสุ่มประจำอุปกรณ์ ฐานข้อมูลการกู้คืนที่เข้ารหัส และคีย์แบบสุ่มที่ปกป้องฐานข้อมูลนั้น รายการเหล่านี้ใช้คลาสการเข้าถึง WhenUnlockedThisDeviceOnly การปกป้องของ Keychain และ Data Protection จึงสร้างขอบเขตอุปกรณ์ที่มีความหมาย โดยเฉพาะเมื่อโทรศัพท์ถูกล็อก แต่สถาปัตยกรรมนี้แตกต่างจากคีย์ Secure Enclave ที่ส่งออกไม่ได้

เมื่อคุณวาดรูปแบบ CommonCrypto สร้างคีย์ห้องนิรภัยในกระบวนการของแอป จากนั้น CryptoKit และ CryptoEngine ของ Vaultaire ใช้ไบต์ของคีย์สมมาตรในกระบวนการนั้นเพื่อตรวจสอบความถูกต้องและถอดรหัสดัชนี แกะคีย์หลักที่ห่อไว้ และประมวลผลไฟล์ แอปล้างสถานะที่ใช้งานอยู่เมื่อล็อก แต่ผู้โจมตีที่มีสิทธิ์สูงพอและเฝ้าดูเซสชันที่ปลดล็อกอยู่ มีโอกาสต่างจากผู้ตรวจสอบที่มีเพียงไซเฟอร์เท็กซ์จากอุปกรณ์ที่ล็อกอยู่

ระบบปฏิบัติการที่ถูกเจลเบรกหรือถูกเจาะในทางอื่น สามารถโจมตีการป้อนรูปแบบ หน่วยความจำของแอป ภาพตัวอย่างที่ถอดรหัสแล้ว ไฟล์ที่ส่งออก หรือหน้าจอ Vaultaire แนะนำให้ใช้ iPhone ที่อัปเดตแล้วและไม่ได้เจลเบรก เพราะการออกแบบอาศัยการแยกกระบวนการของ iOS, Keychain และ Data Protection Vaultaire ไม่ได้อ้างว่าการเจาะระดับ root จะเข้าถึงคีย์สมมาตรของห้องนิรภัยที่เปิดอยู่ไม่ได้

เวกเตอร์การเริ่มต้นต่อไฟล์

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

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

nonce ถูกเก็บไว้กับไซเฟอร์เท็กซ์และไม่ใช่ความลับ ข้อกำหนดด้านความปลอดภัยของมันคือต้องไม่ซ้ำภายใต้คีย์เดียวกัน Vaultaire ขอ nonce 96 บิตจากตัวสร้างค่าสุ่มเชิงการเข้ารหัสของ Apple สำหรับการเข้ารหัสแบบครั้งเดียว และบันทึก nonce ฐานไว้ในส่วนหัวของสตรีม ความเสี่ยงที่ค่าจะซ้ำกันขึ้นกับจำนวนการเข้ารหัสภายใต้คีย์เดียว การใช้งานจึงสร้างค่าใหม่ทุกครั้ง แทนการนำเสนอขนาด 96 บิตว่าเป็นการรับประกันตายตัวตลอดอายุการใช้งานที่โอกาสหนึ่งใน 296

รูปแบบของคุณ
อินพุตบนตาราง 5×5
→
PBKDF2
KDF จำนวนรอบสูง
→
คีย์ห้องนิรภัย
ดัชนี + ตัวห่อคีย์
→
คีย์หลักแบบสุ่ม
ไฟล์ + ข้อมูลเมตาด้วย AES-GCM

การจัดการหน่วยความจำ: การล้างสถานะคีย์ที่ใช้งานอยู่

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

Vaultaire จำกัดระยะเวลาที่สถานะคีย์ที่ใช้งานอยู่และข้อมูล UI ที่ถอดรหัสแล้วยังเข้าถึงได้ เมื่อแอปล็อกหรือเซสชันถูกปิด โค้ดจะทำตามเส้นทางการล้างข้อมูลหลายทาง:

  • สถานะห้องนิรภัยที่ใช้งานอยู่ถูกทิ้ง แอปลบเซสชันคีย์ห้องนิรภัยปัจจุบัน และต้องปลดล็อกอีกครั้งก่อนแสดงเนื้อหาห้องนิรภัย
  • ตัวห่อคีย์ล้างบัฟเฟอร์ที่ตนถือ คอนเทนเนอร์ไบต์ที่ปลอดภัยของ Vaultaire เขียนทับบัฟเฟอร์ของตนเมื่อคอนเทนเนอร์เหล่านั้นถูกคืนหน่วยความจำ
  • สถานะคีย์หลักที่แคชไว้ถูกทำให้ใช้ไม่ได้ คีย์หลักที่ถอดรหัสแล้วซึ่งเก็บไว้สำหรับดัชนีที่เปิดอยู่ถูกทิ้งในเส้นทางการล็อกและการรีเซ็ตแคชที่เกี่ยวข้อง
  • แคช UI ที่ถอดรหัสแล้วถูกล้างในส่วนที่ Vaultaire ควบคุม การล้างภาพขนาดย่อและภาพตัวอย่างลดสถานะที่ค้างอยู่ในแอป โดยไม่อ้างว่าควบคุมทุกสำเนาที่ Swift, iOS หรือกระบวนการอื่นสร้างขึ้น

ครั้งถัดไปที่ Vaultaire เปิดในสถานะล็อก คุณวาดรูปแบบ แล้วแอปจะสร้างคีย์ห้องนิรภัยอีกครั้งก่อนจะตรวจสอบความถูกต้องของดัชนีและแกะคีย์หลักได้ นี่คือการล้างข้อมูลเซสชัน ไม่ใช่การอ้างว่าสำเนาในหน่วยความจำชั่วคราวทุกชุดถูกลบแบบหลายรอบที่พิสูจน์ได้ หรือว่าการอ้างอิงคีย์ใน Secure Enclave ถูกทำลาย เมื่อแอปขัดข้อง iOS จะเรียกคืนกระบวนการ แต่โค้ดล้างข้อมูลไม่สามารถทำงานได้หลังการปิดกะทันหันทุกครั้ง

คำถามที่พบบ่อย

AES-256 ไม่สามารถแตกหักได้จริงหรือ?

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

เหตุใดจึงใช้ PBKDF2 สำหรับการสืบทอดคีย์

Vaultaire ใช้ PBKDF2-HMAC-SHA512 ผ่าน CommonCrypto: 600,000 รอบสำหรับรูปแบบ และ 800,000 รอบสำหรับวลีกู้คืน การสร้างคีย์จากรูปแบบในเครื่องใช้ salt แบบสุ่มหนึ่งค่าระดับอุปกรณ์ที่เก็บไว้ใน Keychain PBKDF2 เพิ่มต้นทุนของการเดาแต่ละครั้ง แต่ไม่ได้เพิ่มเอนโทรปีให้รูปแบบ เวลาที่ใช้โจมตีจึงขึ้นกับความแข็งแรงของข้อมูลยืนยันตัวตน ความเร็วฮาร์ดแวร์ที่วัดได้ และการประมวลผลแบบขนาน

Vaultaire ส่งข้อมูลใดไปยังเซิร์ฟเวอร์

เซิร์ฟเวอร์ของ Vaultaire ไม่เคยได้รับไฟล์ รูปแบบ หรือคีย์ของคุณ แอปติดต่อบริการสี่ประเภท การสำรองข้อมูล iCloud แบบเข้ารหัสเปิดตามค่าเริ่มต้นและเก็บไซเฟอร์เท็กซ์ไว้ในบัญชี iCloud ส่วนตัวของคุณ โดยเข้ารหัสบนอุปกรณ์ด้วยคีย์ที่ Apple ไม่มี และคุณปิดได้ ข้อมูลการใช้งานและข้อขัดข้องแบบไม่ระบุตัวตนจะส่งไปยัง PostHog ตามค่าเริ่มต้น และคุณปิดได้ในการตั้งค่า หากคุณส่งความคิดเห็น บริการรับความคิดเห็นของเราจะได้รับข้อความ อีเมลสำหรับตอบกลับ (ไม่บังคับ) ภาษา และเวอร์ชันแอป ขณะที่การวิเคราะห์เปิดอยู่ โทเค็นการระบุแหล่งที่มาของ Apple Ads และ ID การติดตั้งแบบสุ่มจะผ่านบริการของเราไปยัง Apple การซิงค์และการแชร์ เมื่อคุณใช้ จะผ่าน Apple CloudKit

การเจลเบรค iPhone สามารถประนีประนอมกับห้องนิรภัยของฉันได้หรือไม่

การเจลเบรกทำให้ขอบเขตของอุปกรณ์อ่อนแอลงอย่างมาก การทำงานของ AES-GCM ใน Vaultaire รันในกระบวนการของแอปผ่าน CryptoKit ไบต์ของคีย์สมมาตรจึงอยู่ในหน่วยความจำของแอปขณะที่ห้องนิรภัยเปิดอยู่ การเจาะระบบระดับ root โจมตีอินพุต หน่วยความจำ ภาพหน้าจอ หรือข้อมูลที่ถอดรหัสแล้วได้ Keychain และ Data Protection ยังเพิ่มอุปสรรคขณะอุปกรณ์ล็อกอยู่ แต่ Vaultaire ไม่ได้อ้างว่าคีย์ AES ของตนแยกอยู่ภายใน Secure Enclave

ข้อมูลเมตาได้รับการเข้ารหัสอย่างไร?

Vaultaire ไม่ได้ใช้ ChaCha20 กับข้อมูลเมตาของห้องนิรภัย ชื่อไฟล์ ประเภท MIME เวลาประทับ ข้อมูลภาพขนาดย่อ โครงสร้างห้องนิรภัย และคีย์หลักที่ห่อไว้ ได้รับการปกป้องภายในไซเฟอร์เท็กซ์ AES-256-GCM ที่ตรวจสอบความถูกต้องได้ การใช้โครงสร้างแบบตรวจสอบความถูกต้องเพียงแบบเดียวทำให้การรักษาความลับและการตรวจความสมบูรณ์สอดคล้องกันทั่วทั้งรูปแบบการจัดเก็บ

จะเกิดอะไรขึ้นกับคีย์ของฉันหากแอปขัดข้อง

iOS เรียกคืนกระบวนการที่ถูกปิดไป และการเปิดครั้งถัดไปต้องปลดล็อกใหม่ก่อนที่ Vaultaire จะคืนสถานะคีย์ที่ใช้งานอยู่ Vaultaire ไม่ได้สร้างการอ้างอิงคีย์ AES ใน Secure Enclave ที่ผูกกับเซสชัน ตัวห่อคีย์ล้างบัฟเฟอร์ของตนเมื่อถูกคืนหน่วยความจำ และเส้นทางการล็อกจะทิ้งสถานะที่ใช้งานอยู่ แต่ Swift และ iOS ไม่ได้ให้เหตุผลพอที่จะรับประกันว่าสำเนาชั่วคราวทุกชุดถูกเขียนทับก่อนแอปขัดข้อง

ดูการทำงานของสแต็ก

การเข้ารหัสแบบตรวจสอบความถูกต้องได้ คีย์หลายชั้น การสร้างคีย์ที่มีต้นทุนสูง และไม่มีคีย์ห้องนิรภัยที่ผู้ให้บริการถือไว้ ดาวน์โหลด Vaultaire เพื่อใช้สถาปัตยกรรมที่อธิบายไว้ที่นี่ พร้อมขอบเขตด้านอุปกรณ์และข้อมูลยืนยันตัวตนที่ระบุไว้ชัดเจน

ดาวน์โหลด Vaultaire ฟรี