สถาปัตยกรรมความปลอดภัย: สแต็กทางเทคนิคเต็มรูปแบบ
Vaultaire ไม่ต้องอาศัยอัลกอริธึมเดียวหรือเคล็ดลับอันชาญฉลาดเพียงอันเดียว ใช้สถาปัตยกรรมการเข้ารหัสแบบเลเยอร์ โดยที่ทุกส่วนประกอบมีหน้าที่เฉพาะ และความล้มเหลวของเลเยอร์ใดเลเยอร์หนึ่งจะไม่กระทบต่อเลเยอร์อื่นๆ นี่คือการตัดสินใจด้านการเข้ารหัส โปรโตคอล และการออกแบบที่อยู่ระหว่างข้อมูลส่วนตัวของคุณกับส่วนอื่นๆ ของโลก สแต็คความปลอดภัยของ
ห้องนิรภัยใช้ AES-256-GCM สำหรับการเข้ารหัสที่ได้รับการรับรองความถูกต้องทั่วทั้งดัชนีห้องนิรภัย คีย์ที่หุ้ม ส่วนหัวของไฟล์ เนื้อหา รูปขนาดย่อ และข้อมูลเมตา PBKDF2-HMAC-SHA512 ได้รับคีย์ vault ภายในเครื่องจากรูปแบบและทั้งอุปกรณ์ Keychain เกลือ รหัสห้องนิรภัยนั้นล้อมคีย์หลักแบบสุ่ม 256 บิตแยกต่างหาก ซึ่งทำการเข้ารหัสไฟล์ผ่าน CryptoKit ในกระบวนการแอป
สแต็กการเข้ารหัส
ห้องนิรภัยใช้กลไกการเข้ารหัสหลายอย่างที่ทำงานพร้อมกัน โดยแต่ละกลไกถูกเลือกสำหรับงานเฉพาะ PBKDF2 เปลี่ยนข้อมูลรับรองของมนุษย์ให้เป็นห้องนิรภัยหรือคีย์การกู้คืน AES-256-GCM ปกป้องดัชนี ตัวห่อ ข้อมูลเมตา รูปขนาดย่อ และเนื้อหาไฟล์ คีย์หลักแบบสุ่มจะแยกการเข้ารหัสไฟล์ที่มีอายุการใช้งานยาวนานออกจากรูปแบบที่เปลี่ยนแปลงได้ Keychain และ iOS การปกป้องข้อมูลปกป้องเกลือที่เชื่อมโยงกับอุปกรณ์และบันทึกการกู้คืนในขณะที่อุปกรณ์ถูกล็อค ไม่มีคีย์ถอดรหัสที่ผู้ให้บริการเป็นเจ้าของทำให้นักพัฒนาสามารถเข้าถึงข้อความธรรมดาของห้องนิรภัยได้
นี่ไม่ใช่ความซับซ้อนเพื่อประโยชน์ของตัวเอง แต่ละเลเยอร์จะจัดการกับพื้นผิวการโจมตีที่แตกต่างกัน AES-256-GCM รวมการรักษาความลับเข้ากับการรับรองความถูกต้อง ดังนั้น ไซเฟอร์เท็กซ์ที่ถูกแก้ไขจึงไม่ผ่านการตรวจสอบ PBKDF2 เพิ่มค่าใช้จ่ายในการทดสอบแต่ละรูปแบบหรือวลี คีย์หลักแบบสุ่มหมายความว่าการเปลี่ยนแปลงรูปแบบสามารถตัดคีย์หนึ่งคีย์ใหม่ แทนที่จะเข้ารหัสทุกไฟล์อีกครั้ง Keychain การปกป้องข้อมูล ปกป้องเกลือในเครื่องและบันทึกการกู้คืน ในขณะที่แอปยังคงรับทราบว่าการเข้ารหัสแบบสมมาตรเกิดขึ้นในหน่วยความจำกระบวนการ
เมื่อรวมกันแล้ว เลเยอร์เหล่านี้จะสร้างสถาปัตยกรรมการป้องกันในเชิงลึก แต่ก็ไม่ใช่อุปสรรคที่เป็นอิสระทั้งหมด สามารถตรวจสอบรูปแบบที่คาดเดากับชื่อไฟล์ดัชนีและ AES-GCM การตรวจสอบสิทธิ์และอุปกรณ์ปลดล็อคที่ถูกบุกรุกสามารถสังเกตคีย์หรือข้อความธรรมดาในกระบวนการแอปได้ สถาปัตยกรรมจึงขึ้นอยู่กับเอนโทรปีข้อมูลรับรอง PBKDF2 ต้นทุน iOS การปกป้องอุปกรณ์ และการจัดการการเข้ารหัสที่มีการรับรองความถูกต้องที่ถูกต้อง รวมถึงความแข็งแกร่งของ AES เอง
ลองนึกถึงลำดับชั้นของ Vaultaire ว่าเป็นชุดของคอนเทนเนอร์ที่ล็อกซ้อนกัน รูปแบบที่ได้มาจาก กุญแจห้องนิรภัย เปิดดัชนีการรับรองความถูกต้อง ดัชนีจะเผยแพร่การสุ่มแบบห่อ คีย์หลัก. คีย์หลักนั้นปกป้องไฟล์และข้อมูลเมตา PBKDF2, AES-GCM, Keychainและ iOS การปกป้องข้อมูลมีส่วนช่วยในคุณสมบัติที่แตกต่างกัน แต่การเรียกร้องด้านความปลอดภัยนั้นแข็งแกร่งพอ ๆ กับห่วงโซ่ที่สมบูรณ์เท่านั้น
AES-256-GCM: การเข้ารหัสไฟล์
ภาพถ่าย วิดีโอ และเอกสารทุกรายการที่เก็บอยู่ในห้องนิรภัยจะถูกเข้ารหัสด้วย AES-256-GCM — มาตรฐานการเข้ารหัสขั้นสูงพร้อมคีย์ 256 บิต โหมดกาลัวส์/เคาน์เตอร์. ห้องนิรภัยก็ใช้ AES-GCM สำหรับดัชนีห้องนิรภัย ส่วนหัวของไฟล์ รูปขนาดย่อ และซองกุญแจ อัลกอริธึมและขนาดคีย์เป็นมาตรฐาน ความปลอดภัยของ Vaultaire ยังคงขึ้นอยู่กับการจัดการแบบ nonce การจัดการคีย์ ความเข้มงวดของข้อมูลรับรอง และความถูกต้องในการใช้งาน
“256” ใน AES-256 อ้างอิงถึงความยาวของคีย์ในหน่วยบิต คีย์ 256 บิตมี 2256 ค่าที่เป็นไปได้ ถ้าจะให้มองในแง่ตัวเลขนั้น ก็จะมีประมาณ 10 อะตอม80 ในจักรวาลที่สังเกตได้ ถ้าทุกๆ อะตอมเป็นซูเปอร์คอมพิวเตอร์ที่ทดสอบคีย์หนึ่งพันล้านคีย์ต่อวินาที นับตั้งแต่เกิดบิ๊กแบง พวกมันคงจะสำรวจพื้นที่คีย์น้อยกว่าหนึ่งในล้านล้านของหนึ่งเปอร์เซ็นต์ของพื้นที่คีย์AES-256 การเข้ารหัสจะไม่ถูกบังคับแบบเดรัจฉาน ไม่ใช่วันนี้ ไม่ใช่ศตวรรษนี้ ไม่ใช่ก่อนที่ดวงดาวจะมอดไหม้
เหตุใดโหมด GCM จึงมีความสำคัญ
AES เป็นรหัสบล็อก, ซึ่งจะเข้ารหัสข้อมูลเป็นชิ้นขนาด 128 บิต “mode” กำหนดวิธีการรวมชิ้นส่วนเหล่านั้น GCM (โหมด Galois/Counter) มีสองสิ่งที่โหมดที่เรียบง่ายกว่าอย่าง CBC ไม่มี: การเข้ารหัสแบบขนานและการตรวจสอบสิทธิ์ในตัว
ส่วนการตรวจสอบความถูกต้องมีความสำคัญ GCM สร้างแท็กการเข้ารหัสสำหรับไฟล์ที่เข้ารหัสทุกไฟล์ แท็กนี้ทำหน้าที่เป็นตราประทับการงัดแงะ หากมีการแก้ไขไซเฟอร์เท็กซ์แม้แต่บิตเดียว, ไม่ว่าโดยนักแสดงที่เป็นอันตรายหรือเซกเตอร์ดิสก์ที่เสียหาย, แท็กการตรวจสอบสิทธิ์จะไม่ตรงกัน และการถอดรหัสจะล้มเหลว คุณจะไม่ได้รับข้อมูลที่เสียหาย คุณได้รับสัญญาณที่ชัดเจนว่ามีบางอย่างผิดปกติ คุณสมบัตินี้เรียกว่าการเข้ารหัสที่มีการรับรองความถูกต้อง และจะป้องกันการโจมตีทั้งคลาสโดยที่ฝ่ายตรงข้ามแก้ไขข้อมูลที่เข้ารหัสเพื่อจัดการกับเอาต์พุตที่ถอดรหัส
PBKDF2: การสืบทอดคีย์
ห้องนิรภัยได้รับคีย์ที่แตกต่างกันสำหรับงานที่แตกต่างกัน ทั้งรูปแบบและอุปกรณ์ทั้งเครื่อง Keychain อาหารเกลือ PBKDF2-HMAC-SHA512 สำหรับการวนซ้ำ 600,000 ครั้งเพื่อสร้างคีย์ vault ในเครื่อง การสืบทอดรูปแบบที่กำหนดจะสร้างคีย์สำรองบนคลาวด์แยกต่างหาก วลีการกู้คืนที่ทำให้เป็นมาตรฐานดำเนินไปจนถึง 800,000 PBKDF2 การวนซ้ำเพื่อสร้างคีย์สำหรับซองการกู้คืน ไม่มีการสืบทอดใดๆ ที่จะเปลี่ยนข้อมูลรับรองของมนุษย์ให้เป็นเอนโทรปี 256 บิต เพียงเพราะเอาต์พุตมีความยาว 256 บิต
PBKDF2 ปกป้องรูปแบบของคุณอย่างไร
แนวคิดหลักที่อยู่เบื้องหลัง PBKDF2 เป็นงานที่จงใจ ใช้รูปแบบอนุกรมหรือวลีที่ทำให้เป็นมาตรฐานและเรียกใช้หลายแสนรายการ HMAC-SHA512 การวนซ้ำ ผู้ใช้ที่ถูกต้องตามกฎหมายจะชำระค่าใช้จ่ายดังกล่าวเพียงครั้งเดียวระหว่างการพยายามปลดล็อคหรือกู้คืน ผู้โจมตีจะจ่ายเงินให้กับผู้สมัครทุกคน แม้ว่าฮาร์ดแวร์แบบขนานและตัวเลือกการใช้งานจะเป็นตัวกำหนดอัตราการคาดเดาที่แท้จริงก็ตาม
ห้องนิรภัยกำหนดค่า PBKDF2 ด้วยการวนซ้ำ 600,000 ครั้งสำหรับคีย์ที่ได้มาจากรูปแบบ นั่นทำให้การเดาแต่ละครั้งมีราคาแพงกว่า แต่การประเมินการโจมตีอย่างรับผิดชอบจะต้องระบุเวลาต่อผู้สมัครที่วัดได้และสมมติฐานด้านฮาร์ดแวร์ ที่ 1 ms ต่อผู้สมัคร 1 คน การเดาแบบอนุกรม 1,000,000,000 ครั้งจะใช้เวลาประมาณ 11.6 วัน ไม่ใช่หลายปี ผลลัพธ์แบบ 256 บิตไม่ขยายเอนโทรปีของรูปแบบที่คาดเดาได้
การสร้างรูปแบบเฉพาะที่จะใช้เกลือสุ่มแบบเข้ารหัสสำหรับอุปกรณ์ โดยจัดเก็บเป็น WhenUnlockedThisDeviceOnly Keychain รายการ เกลือไม่ได้เป็นความลับและมีการแบ่งปันโดยห้องนิรภัยบนอุปกรณ์นั้น โดยจะป้องกันไม่ให้ตารางที่สร้างขึ้นสำหรับอุปกรณ์หนึ่งนำไปใช้กับอุปกรณ์อีกเครื่องหนึ่งโดยใช้เกลือที่แตกต่างกัน แต่ไม่ได้บังคับให้ผู้โจมตีเริ่มต้นใหม่สำหรับทุกตู้นิรภัยบนอุปกรณ์เดียวกัน
AES-256-GCM: การป้องกันข้อมูลเมตา
การเข้ารหัสเนื้อหาไฟล์ยังไม่เพียงพอ ชื่อไฟล์ วันที่สร้าง ขนาดภาพขนาดย่อ และโครงสร้างห้องนิรภัยล้วนเป็นข้อมูลเมตา, และข้อมูลเมตาสามารถเปิดเผยได้เช่นเดียวกับตัวข้อมูลเอง ไฟล์ชื่อ “tax-return-2025.pdf” จะบอกผู้โจมตีอย่างชัดเจนว่ามีอะไรอยู่ข้างใน แม้ว่าเนื้อหาจะถูกเข้ารหัสก็ตาม การประทับเวลาจะแสดงเมื่อคุณใช้ห้องนิรภัย ขนาดภาพขนาดย่อเผยให้เห็นว่าบางสิ่งเป็นภาพถ่ายหรือวิดีโอ
ห้องนิรภัยปกป้องข้อมูลเมตานี้ด้วย AES-256-GCMไม่ใช่ชาชา20. ชื่อไฟล์และ MIME ประเภทจะถูกเข้ารหัสลงในส่วนหัวของไฟล์ที่เข้ารหัส ดัชนีห้องนิรภัยที่เข้ารหัสประกอบด้วยบันทึกไฟล์ วันที่ ข้อมูลขนาด เค้าโครงพื้นที่จัดเก็บ และคีย์หลักที่รวมไว้ ข้อมูลภาพขนาดย่อยังได้รับการเข้ารหัสภายใต้คีย์หลักแบบสุ่ม
เหตุใดจึงต้องมีการเข้ารหัสรับรองความถูกต้องสำหรับข้อมูลเมตา
ข้อมูลเมตาต้องการความสมบูรณ์และการรักษาความลับ AES-GCM สร้างแท็กการตรวจสอบสิทธิ์สำหรับแต่ละค่าที่เข้ารหัส ดังนั้น Vaultaire จึงสามารถปฏิเสธส่วนหัว ดัชนี ภาพขนาดย่อ หรือซองจดหมายที่แก้ไข แทนที่จะยอมรับข้อความธรรมดาที่ผู้โจมตีควบคุม การออกแบบนี้จงใจใช้โครงสร้างการเข้ารหัสรับรองความถูกต้องรูปแบบเดียวในรูปแบบการจัดเก็บข้อมูลเหล่านี้ แทนที่จะอ้างความหลากหลายในการเข้ารหัสลับที่การใช้งานไม่ได้จัดเตรียมไว้
รหัสเดียวกันไม่ได้หมายความว่าคีย์เดียวกันหรือ nonce ถูกนำมาใช้ซ้ำแบบสุ่มสี่สุ่มห้า คีย์ห้องนิรภัยจะปกป้องดัชนีและล้อมคีย์หลักแบบสุ่ม คีย์หลักจะปกป้องเนื้อหาไฟล์ CryptoKit สร้างกล่องปิดผนึกที่ผ่านการรับรองความถูกต้องด้วย nonce ใหม่ ในขณะที่รูปแบบสตรีมมิ่งของ Vaultaire จะได้รับ nonce ที่แตกต่างกันสำหรับแต่ละชิ้นที่สั่ง การรับประกันที่เกี่ยวข้องมาจากการแยกคีย์ ระเบียบวินัย nonce และการรับรองความถูกต้อง ไม่ใช่จากการเข้ารหัสเมตาดาต้าตัวที่สอง
สถาปัตยกรรมที่ไม่มีความรู้
ต่อไปนี้เป็นคำถามที่ควรถามเกี่ยวกับแอปรักษาความปลอดภัย: จะเกิดอะไรขึ้นหากบริษัทที่อยู่เบื้องหลังแอปนี้ถูกแฮ็ก หมายศาล หรือเพียงแค่เปลี่ยนมาเป็นอันตราย
กับแอปส่วนใหญ่ คำตอบนั้นน่าอึดอัดใจ พวกเขาเก็บข้อมูลของคุณ กุญแจของคุณ หรือไม่ก็ทั้งสองอย่าง หมายศาลสามารถบังคับให้ส่งมอบได้ การรั่วไหลของข้อมูลก็เปิดเผยสิ่งเหล่านี้ได้ พนักงานที่ประพฤติมิชอบก็อาจเข้าถึงมันได้ ความปลอดภัยของแอปจึงแข็งแรงได้เท่ากับวินัยด้านปฏิบัติการของบริษัทเท่านั้น และประวัติศาสตร์ก็บอกชัดว่าบริษัทจำนวนมากถูกเจาะอยู่เป็นประจำ
ห้องนิรภัยไม่ได้ดำเนินการบัญชีหรือบริการจัดเก็บข้อมูลที่ได้รับรูปแบบ วลีลับ คีย์ถอดรหัส หรือเนื้อหาห้องนิรภัยที่อ่านได้ของคุณ การเข้ารหัสและถอดรหัสเกิดขึ้นในกระบวนการแอปบนอุปกรณ์ของคุณ เมื่อ iCloud เปิดใช้งานการสำรองข้อมูลแล้ว แอปจะส่งข้อความไซเฟอร์เท็กซ์ที่ได้รับการรับรองความถูกต้องไปยังส่วนตัวของคุณ CloudKit แทนที่จะเป็นบริการห้องนิรภัยที่ควบคุมโดยห้องนิรภัย
ความรู้แบบศูนย์หมายถึงอะไรในทางปฏิบัติ
หากหน่วยงานบังคับใช้กฎหมายให้บริการ Vaultaire ด้วยหมายศาลที่เรียกร้องข้อความธรรมดาของห้องนิรภัย บริษัทจะไม่ถือรูปแบบ วลีการกู้คืน รหัสห้องนิรภัย คีย์สำรอง หรือคีย์หลักที่จำเป็นในการถอดรหัส เข้ารหัสแล้ว iCloud บันทึกอยู่ในผู้ใช้ CloudKit ฐานข้อมูลส่วนตัว อย่างไรก็ตาม บนอุปกรณ์ ข้อมูลการกู้คืนจะถูกเก็บไว้ในการเข้ารหัส Keychain ฐานข้อมูลและคีย์สมมาตรมีอยู่ในหน่วยความจำแอปในขณะนั้น CryptoKit เข้ารหัสหรือถอดรหัสห้องนิรภัยแบบเปิด
ขอบเขตของผู้ให้บริการนี้เป็นทรัพย์สินทางสถาปัตยกรรม ไม่ใช่คำมั่นสัญญาว่าทุกส่วนของสภาพแวดล้อมไคลเอ็นต์จะอยู่นอกโมเดลความน่าเชื่อถือ ห้องนิรภัยไม่มีคีย์ถอดรหัสฝั่งเซิร์ฟเวอร์ซึ่งสามารถยอมจำนนสำหรับการกู้คืนห้องนิรภัยตามปกติ แอพที่จัดส่ง iOSอุปกรณ์ที่ปลดล็อค และการใช้งานการเข้ารหัสยังคงสามารถประมวลผลข้อมูลที่อ่านได้ และจะต้องได้รับความเชื่อถือตามนั้น
ขอบเขตผู้ให้บริการของ Vaultaire จะลบคีย์ถอดรหัสที่บริษัทเป็นเจ้าของออกจากการออกแบบปกติ ซึ่งจะช่วยลดสิ่งที่การละเมิดของ Vaultaire สามารถเปิดเผยได้ ไม่ได้ขจัดความจำเป็นในการเชื่อถือลูกค้าที่จัดส่ง iOSสถานะของอุปกรณ์ หรือการดำเนินการตามลำดับชั้นคีย์ที่บันทึกไว้ ขอบเขตเหล่านั้นควรได้รับการประเมินแยกกัน แทนที่จะพังทลายลงในคำมั่นสัญญาที่สมบูรณ์
Keychain และขอบเขตกระบวนการแอป
แอปเปิล Secure Enclave สามารถปกป้องคีย์ส่วนตัวที่รองรับและมีส่วนร่วมในบางส่วนของสถาปัตยกรรมความปลอดภัยของแพลตฟอร์ม แต่ API สาธารณะไม่ยอมรับโดยอำเภอใจ PBKDF2- ได้รับคีย์สมมาตรและดำเนินการของ Vaultaire AES-GCM การดำเนินการกับไฟล์ภายในตัวประมวลผลร่วม ห้องนิรภัยจึงไม่อธิบายว่ารหัสห้องนิรภัยเป็น Secure Enclave เออีเอส.
Vaultaire ใช้รายการรหัสผ่านทั่วไปใน iOS Keychain สำหรับเกลือแบบสุ่มประจำอุปกรณ์ ฐานข้อมูลการกู้คืนที่เข้ารหัส และคีย์แบบสุ่มที่ปกป้องฐานข้อมูลนั้น รายการเหล่านี้ใช้คลาสการเข้าถึง WhenUnlockedThisDeviceOnly การปกป้องของ Keychain และ Data Protection จึงสร้างขอบเขตอุปกรณ์ที่มีความหมาย โดยเฉพาะเมื่อโทรศัพท์ถูกล็อก แต่สถาปัตยกรรมนี้แตกต่างจากคีย์ Secure Enclave ที่ส่งออกไม่ได้
เมื่อคุณวาดลวดลาย CommonCrypto ได้รับรหัสห้องนิรภัยในกระบวนการแอป CryptoKit และ CryptoEngine ของ Vaultaire จะใช้ไบต์ของคีย์สมมาตรในกระบวนการนั้นเพื่อตรวจสอบสิทธิ์และถอดรหัสดัชนี แกะคีย์หลัก และประมวลผลไฟล์ แอปจะล้างสถานะแอ็คทีฟเมื่อล็อก แต่ผู้โจมตีที่ได้รับสิทธิพิเศษเพียงพอที่สังเกตเซสชันที่ปลดล็อกจะมีโอกาสที่แตกต่างจากผู้ตรวจสอบที่ถือเฉพาะไซเฟอร์เท็กซ์ในอุปกรณ์ที่ถูกล็อก
ระบบปฏิบัติการที่ถูกเจลเบรกหรือถูกบุกรุกสามารถกำหนดเป้าหมายอินพุตรูปแบบ หน่วยความจำแอป การแสดงตัวอย่างที่ถอดรหัส การส่งออก หรือหน้าจอ Vaultaire แนะนำโปรแกรมปัจจุบันและไม่ใช่เจลเบรค iPhone เพราะการออกแบบต้องอาศัย iOS การแยกกระบวนการ Keychainและการปกป้องข้อมูล ไม่ได้อ้างว่าการประนีประนอมรูททำให้คีย์สมมาตรของ open vault ไม่สามารถเข้าถึงได้
เวกเตอร์การเริ่มต้นต่อไฟล์
เมื่อคุณเข้ารหัสไฟล์ที่เหมือนกันสองไฟล์ด้วยคีย์เดียวกัน การใช้งานที่ไร้เดียงสาจะสร้างไซเฟอร์เท็กซ์ที่เหมือนกัน นี่เป็นปัญหา ผู้โจมตีที่เห็น Blob ที่เข้ารหัสที่เหมือนกันสองไฟล์จะรู้ว่า, โดยไม่ต้องถอดรหัสใดๆ, ว่าไฟล์ต้นฉบับทั้งสองไฟล์เหมือนกัน ในห้องนิรภัยที่เต็มไปด้วยภาพถ่าย การวิเคราะห์รูปแบบประเภทนี้สามารถเปิดเผยข้อมูลได้แม้จะผ่านการเข้ารหัสก็ตาม
ห้องนิรภัยป้องกันไซเฟอร์เท็กซ์ที่กำหนดโดยการสร้าง nonce การเข้ารหัสลับใหม่สำหรับแต่ละรายการ AES-256-GCM การดำเนินการปิดผนึก ส่วนหัวของไฟล์และเนื้อหาไฟล์จะถูกปิดผนึกแยกกัน และไฟล์ขนาดใหญ่ใช้รูปแบบการสตรีมที่ได้รับการตรวจสอบสิทธิ์โดยมี nonce ฐานแบบสุ่มและ nonce ที่แตกต่างกันสำหรับแต่ละชิ้นที่เรียงลำดับ รูปภาพเดียวกันสองชุดจึงไม่ทำให้เกิดการเข้ารหัสที่เหมือนกัน
nonces จะถูกจัดเก็บไว้กับไซเฟอร์เท็กซ์และไม่เป็นความลับ ข้อกำหนดด้านความปลอดภัยคือความเป็นเอกลักษณ์ภายใต้คีย์ที่กำหนด Vaultaire ขอ nonce 96 บิตจากตัวสร้างแบบสุ่มที่เข้ารหัสของ Apple สำหรับการเข้ารหัส single-shot และบันทึก nonce ฐานในส่วนหัวของการสตรีม ความเสี่ยงจากการชนกันนั้นควบคุมโดยจำนวนการเข้ารหัสภายใต้คีย์เดียว ดังนั้นการใช้งานจึงสร้างค่าใหม่แทนที่จะนำเสนอขนาด 96 บิตเป็นแบบหนึ่งใน 2 แบบคงที่96 รับประกันตลอดอายุการใช้งาน
การจัดการหน่วยความจำ: การล้างสถานะคีย์ที่ใช้งานอยู่
ความล้มเหลวทั่วไปในซอฟต์แวร์ความปลอดภัยคือการทิ้งข้อมูลที่ละเอียดอ่อนไว้ในหน่วยความจำ หลังจากที่ไม่จำเป็นต้องใช้อีกต่อไป คีย์การเข้ารหัส รหัสผ่านที่ได้รับ และข้อมูลที่ถอดรหัสสามารถคงอยู่ใน RAM ได้นานหลังจากที่แอปใช้งานเสร็จแล้ว เครื่องมือทางนิติวิทยาศาสตร์สามารถดัมพ์หน่วยความจำของอุปกรณ์และค้นหาส่วนที่เหลือเหล่านี้, ซึ่งเป็นเทคนิคที่เรียกว่าการโจมตีด้วยความเย็นหรือการวิเคราะห์ดัมพ์หน่วยความจำ
ห้องนิรภัยจำกัดระยะเวลาที่สถานะคีย์ที่ใช้งานอยู่และข้อมูล UI ที่ถอดรหัสแล้วยังคงอยู่ เมื่อแอปล็อคหรือเซสชั่นถูกแยกออก โค้ดจะเป็นไปตามเส้นทางการล้างข้อมูลหลายเส้นทาง:
- สถานะห้องนิรภัยที่ใช้งานอยู่ถูกยกเลิก แอปจะลบเซสชันคีย์ห้องนิรภัยปัจจุบันและจำเป็นต้องปลดล็อคอีกครั้งก่อนนำเสนอเนื้อหาห้องนิรภัย
- การห่อคีย์จะล้างบัฟเฟอร์ที่เป็นเจ้าของ คอนเทนเนอร์ไบต์ที่ปลอดภัยของ Vaultaire จะเขียนทับบัฟเฟอร์ที่ตนเป็นเจ้าของเมื่อมีการจัดสรรคอนเทนเนอร์เหล่านั้น
- สถานะมาสเตอร์คีย์ที่แคชไว้ไม่ถูกต้อง คีย์หลักที่ถอดรหัสไว้สำหรับดัชนีเปิดจะถูกละทิ้งบนเส้นทางการล็อคและรีเซ็ตแคชที่เกี่ยวข้อง
- แคช UI ที่ถอดรหัสแล้วจะถูกล้างในบริเวณที่ควบคุมโดย Vaultaire การล้างภาพขนาดย่อและตัวอย่างจะช่วยลดสถานะแอปพลิเคชันที่เหลือ โดยไม่อ้างสิทธิ์ในการควบคุมทุกสำเนาที่ทำโดย Swift iOSหรือกระบวนการอื่น
ครั้งถัดไปที่ห้องนิรภัยเปิดขึ้นในสถานะล็อค คุณจะต้องวาดรูปแบบและแอพจะได้รับรหัสห้องนิรภัยอีกครั้งก่อนที่จะสามารถตรวจสอบความถูกต้องของดัชนีและแกะรหัสหลักได้ นี่คือการล้างข้อมูลเซสชัน ไม่ใช่การอ้างว่าสำเนาหน่วยความจำชั่วคราวทุกสำเนาได้รับการล้างแบบหลายรอบที่พิสูจน์ได้ หรือว่า Secure Enclave ข้อมูลอ้างอิงที่สำคัญถูกทำลาย เกิดอุบัติเหตุ iOS เพื่อเรียกคืนกระบวนการ แต่โค้ดการล้างข้อมูลไม่สามารถทำงานได้หลังจากการยุติอย่างกะทันหันทุกครั้ง
คำถามที่พบบ่อย
AES-256 ไม่สามารถแตกหักได้จริงหรือ?
AES-256 เป็นบล็อกรหัสที่ได้มาตรฐานและมีการวิเคราะห์อย่างหนัก ไม่มีการโจมตีในทางปฏิบัติหากนำไปใช้อย่างถูกต้อง AES-256-GCM ด้วยคีย์สุ่ม 256 บิตนั้นเป็นที่รู้จักต่อสาธารณะ แต่นั่นไม่ได้ทำให้ห้องนิรภัยทั้งหมดไม่สามารถแตกหักได้ หนังสือรับรองเอนโทรปี PBKDF2 ต้นทุน การจัดการแบบ nonce การดูแลคีย์ การกู้คืน สถานะอุปกรณ์ และข้อบกพร่องในการใช้งานยังคงเป็นเส้นทางการโจมตี
เหตุใดจึงใช้ PBKDF2 สำหรับการสืบทอดคีย์
ห้องนิรภัยใช้ PBKDF2-HMAC-SHA512 ผ่าน CommonCrypto: 600,000 ครั้งสำหรับรูปแบบและ 800,000 ครั้งสำหรับวลีการกู้คืน การสืบทอดรูปแบบเฉพาะที่จะใช้เกลือแบบสุ่มทั่วทั้งอุปกรณ์ที่จัดเก็บไว้ใน Keychain. PBKDF2 ทำให้ต้นทุนของการคาดเดาแต่ละครั้งเพิ่มขึ้นแต่ไม่ได้เพิ่มเอนโทรปีให้กับรูปแบบ ดังนั้นเวลาในการโจมตีจึงขึ้นอยู่กับความแข็งแกร่งของข้อมูลประจำตัว ความเร็วของฮาร์ดแวร์ที่วัดได้ และความขนานกัน
Vaultaire ส่งข้อมูลใดไปยังเซิร์ฟเวอร์
ไม่มี Vaultaire ไม่มีเซิร์ฟเวอร์ที่รับข้อมูลของคุณ หากคุณเปิดใช้งานการสำรองข้อมูล iCloud ข้อมูลที่เข้ารหัสของคุณจะถูกจัดเก็บไว้ในบัญชี iCloud ส่วนตัวของคุณ, ที่เข้ารหัสก่อนที่จะออกจากอุปกรณ์ของคุณพร้อมกับคีย์ที่ Apple ไม่มี Vaultaire บริษัทไม่เคยได้รับ ประมวลผล หรือจัดเก็บข้อมูลผู้ใช้ใด ๆ ที่ถูกเข้ารหัสหรืออย่างอื่น
การเจลเบรค iPhone สามารถประนีประนอมกับห้องนิรภัยของฉันได้หรือไม่
การเจลเบรคจะทำให้ขอบเขตของอุปกรณ์อ่อนแอลงอย่างมาก ของวอลแตร์ AES-GCM การดำเนินการดำเนินการในกระบวนการแอปผ่าน CryptoKitดังนั้นไบต์ของคีย์สมมาตรจึงมีอยู่ในหน่วยความจำของแอปในขณะที่ห้องนิรภัยเปิดอยู่ การประนีประนอมระดับรูทสามารถกำหนดเป้าหมายอินพุต หน่วยความจำ ภาพหน้าจอ หรือเอาต์พุตที่ถอดรหัสได้ Keychain และการปกป้องข้อมูลยังคงเพิ่มอุปสรรคในขณะที่อุปกรณ์ถูกล็อค แต่ห้องนิรภัยไม่ได้อ้างว่าคีย์ AES ของมันยังคงแยกอยู่ภายใน Secure Enclave.
ข้อมูลเมตาได้รับการเข้ารหัสอย่างไร?
ห้องนิรภัยไม่ได้ใช้ ChaCha20 สำหรับข้อมูลเมตาของห้องนิรภัย ชื่อไฟล์ MIME ประเภท การประทับเวลา ข้อมูลภาพขนาดย่อ โครงสร้างห้องนิรภัย และคีย์หลักที่ห่อไว้ได้รับการคุ้มครองภายใน AES-256-GCM ไซเฟอร์เท็กซ์ที่ได้รับการรับรองความถูกต้อง การใช้โครงสร้างที่ได้รับการรับรองความถูกต้องเพียงครั้งเดียวจะรักษาความลับและความสมบูรณ์ของการตรวจสอบให้สอดคล้องกันในทุกรูปแบบการจัดเก็บข้อมูล
จะเกิดอะไรขึ้นกับคีย์ของฉันหากแอปขัดข้อง
iOS เรียกคืนกระบวนการที่ถูกยกเลิก และการเปิดตัวครั้งต่อไปจะต้องมีการปลดล็อคใหม่ก่อนที่ Vaultaire จะกู้คืนสถานะคีย์ที่ใช้งานอยู่ ห้องนิรภัยไม่ได้สร้างขอบเขตเซสชัน Secure Enclave ข้อมูลอ้างอิง AES ในขณะที่ตัวห่อคีย์จะล้างบัฟเฟอร์ในการจัดสรรคืนและเส้นทางการล็อคจะปล่อยสถานะที่ใช้งานอยู่ Swift และ iOS อย่ารับประกันว่าสำเนาชั่วคราวทุกฉบับจะถูกเขียนทับก่อนที่จะเกิดข้อขัดข้อง
ดูการทำงานของสแต็ก
การเข้ารหัสที่ได้รับการรับรองความถูกต้อง คีย์แบบเลเยอร์ การได้มาซึ่งมีราคาแพง และไม่มีคีย์ห้องนิรภัยที่ผู้ให้บริการเป็นเจ้าของ ดาวน์โหลด Vaultaire เพื่อใช้สถาปัตยกรรมที่อธิบายไว้ที่นี่ โดยมีอุปกรณ์และขอบเขตข้อมูลรับรองระบุไว้อย่างชัดเจน
ดาวน์โหลด Vaultaire ฟรี