Vultisig อัปเดตแอป Android และ iOS ในเดือนสิงหาคม เพื่อแก้การจัดการข้อผิดพลาดในกระบวนการลงนามแบบคำนวณหลายฝ่าย โดยแอปจะหยุดลองใหม่โดยอัตโนมัติเมื่อไลบรารีลงนามระบุว่าผู้เข้าร่วมมีพฤติกรรมเป็นอันตราย พร้อมแจ้งให้ผู้ใช้หยุดใช้อุปกรณ์ที่เกี่ยวข้อง งานวิจัยที่ ChainSecurity เปิดเผยเมื่อ 21 ตุลาคมระบุว่า ขั้นตอนเดิมอาจเปิดทางให้ผู้โจมตีซึ่งควบคุมผู้เข้าร่วมลงนามรายหนึ่ง ส่งข้อความมุ่งร้ายซ้ำ ๆ และอาศัยการสังเกตข้อความตอบกลับข้อผิดพลาดเพื่อค่อย ๆ กู้คืนส่วนแบ่งกุญแจของอีกฝ่าย จนประกอบเป็นกุญแจส่วนตัวได้
ประเด็นนี้เกี่ยวข้องกับการลงนาม ECDSA และชี้ให้เห็นว่าความปลอดภัยของกระเป๋าเงินที่ใช้หลายอุปกรณ์ร่วมลงนามไม่ได้ขึ้นอยู่แค่กับการแยกเก็บกุญแจเท่านั้น แต่แอปต้องหยุดการโต้ตอบต่อเมื่อโปรโตคอลส่งสัญญาณให้ยุติด้วย แม้การลงนามที่ล้มเหลวจะไม่สร้างธุรกรรมที่ใช้งานได้ แต่ข้อความผิดพลาดที่ส่งกลับมาก็อาจเปิดเผยข้อมูลได้
ข้อความผิดพลาดอาจเปิดเผยข้อมูลภายในโปรโตคอล
กระเป๋าเงินแบบคำนวณหลายฝ่ายแบ่งสิทธิ์ลงนามออกเป็นส่วนแบ่งกุญแจ ผู้เข้าร่วมทำงานร่วมกันเพื่อสร้างลายเซ็นมาตรฐานที่บล็อกเชนตรวจสอบได้ โดยไม่ต้องนำกุญแจส่วนตัวฉบับเต็มมาประกอบกันในขั้นตอนปกติ หากตั้งค่าให้ต้องใช้อุปกรณ์สองเครื่องร่วมลงนาม การที่ผู้โจมตีควบคุมอุปกรณ์หนึ่งเครื่องจึงยังไม่เพียงพอให้ลงนามได้ หากอีกเครื่องไม่อนุมัติ
อย่างไรก็ตาม เส้นทางการโจมตีที่ ChainSecurity เปิดเผยตั้งอยู่บนสมมติฐานว่าผู้เข้าร่วมรายหนึ่งถูกเจาะระบบแล้ว ผู้โจมตีอาจส่งข้อความลงนามที่เป็นอันตรายหลายรายการไปยังอีกฝ่าย และสังเกตว่าปลายทางตอบกลับด้วยข้อผิดพลาดหรือไม่ นักวิจัยระบุว่าคำตอบเหล่านี้อาจค่อย ๆ เผยข้อมูลจากค่าเริ่มต้นลับภายในโปรโตคอลที่นำกลับมาใช้ซ้ำได้ หากโจมตีต่อเนื่อง ผู้โจมตีอาจกู้คืนส่วนแบ่งกุญแจของอีกฝ่ายและประกอบเป็นกุญแจส่วนตัวฉบับเต็ม
ค่าเริ่มต้นดังกล่าวเป็นความลับที่ใช้ภายในโปรโตคอล ไลบรารีลงนามที่เกี่ยวข้องตั้งสมมติฐานไว้ว่า เมื่อเกิดข้อผิดพลาดร้ายแรง ผู้เรียกใช้จะหยุดการลงนามต่อไปจนกว่าจะเปลี่ยนค่านี้ แต่แอปเวอร์ชันเดิมไม่ได้บังคับใช้เงื่อนไขดังกล่าว โดยแสดงเพียงข้อความล้มเหลวทั่วไปและอาจลองใหม่ต่อเนื่อง ดังนั้นความเสี่ยงไม่ได้อยู่ที่ลายเซ็นที่ล้มเหลวจะถูกส่งขึ้นเครือข่ายหรือไม่ แต่อยู่ที่แอปยังสื่อสารกับผู้เข้าร่วมที่ถูกระบุว่าเป็นอันตรายต่อหรือไม่
อัปเดตเดือนสิงหาคมหยุดการลองใหม่เมื่อพบผู้เข้าร่วมอันตราย
ผู้ดูแลแอป Vultisig บน Android และ iOS รวมการแก้ไขโค้ดเมื่อวันที่ 21 สิงหาคม ก่อนการเปิดเผยต่อสาธารณะในเดือนตุลาคมราวสองเดือน โค้ดเดิมเปรียบเทียบผลการลงนามที่ล้มเหลวกับผลสำเร็จจากไลบรารี แต่ไม่ได้จัดการแยกต่างหากกับข้อผิดพลาดที่ใช้ระงับผู้เข้าร่วมซึ่งมีพฤติกรรมเป็นอันตราย กระบวนการลงนามอาจลองซ้ำได้สูงสุดสามครั้ง ขณะที่ผู้ใช้ได้รับเพียงข้อความแจ้งข้อผิดพลาดทั่วไป
จำนวนครั้งที่ลองซ้ำนี้ไม่ได้บอกว่าต้องใช้ข้อความกี่รายการเพื่อกู้คืนกุญแจ และไม่ควรใช้อนุมานว่าการโจมตีต้องอาศัยเซสชันจำนวนเท่าใด
แอปเวอร์ชันใหม่ตรวจจับรหัสข้อผิดพลาด 100 ถึง 109 ของไลบรารีลงนาม DKLS ซึ่งระบุผู้เข้าร่วมที่เป็นอันตราย ในขั้นตอนต่าง ๆ ตั้งแต่การเริ่มเซสชัน การประมวลผลข้อความ ไปจนถึงการลงนามเสร็จสิ้น ทั้งสองแพลตฟอร์มจะเชื่อมโยงผู้เข้าร่วมที่ถูกระบุเข้ากับรหัสอุปกรณ์ ป้องกันไม่ให้กลไกลองซ้ำอัตโนมัติมองข้ามข้อผิดพลาดดังกล่าว และแสดงคำเตือนในภาษาที่ตั้งค่าไว้เพื่อให้ผู้ใช้หลีกเลี่ยงอุปกรณ์นั้น ส่วนแอป Android ยังข้ามขั้นตอนกู้คืนผ่านรีเลย์ด้วย
การปรับปรุงนี้ทำให้แอปแยกความล้มเหลวทั่วไปในการลงนามออกจากการระบุผู้เข้าร่วมว่าเป็นอันตรายโดยไลบรารีเข้ารหัสได้ชัดเจนขึ้น การลองใหม่อาจช่วยให้ทำรายการต่อได้เมื่อเกิดปัญหาชั่วคราว แต่หากไลบรารีสั่งให้หยุดการโต้ตอบ การลองซ้ำก็อาจเพิ่มความเสี่ยงที่ข้อมูลจะรั่วไหล
รายละเอียดการเปลี่ยนแปลงอยู่ใน Android PR #5658 และ iOS PR #5235 บันทึกการเผยแพร่ระบุว่า iOS v1.45.71 ออกเมื่อ 21 สิงหาคม และ Android v1.0.118 ออกเมื่อ 25 สิงหาคม โดยทั้งสองเวอร์ชันระบุว่ามีการแก้ไขดังกล่าว
ยังต้องแจกแจงผลกระทบตามรูปแบบ Vault
เอกสารผลิตภัณฑ์ของ Vultisig อธิบายรูปแบบการควบคุมอุปกรณ์ลงนามไว้ต่างกัน Fast Vault เก็บส่วนแบ่งหนึ่งไว้บนอุปกรณ์ของผู้ใช้ และอีกส่วนอยู่กับ VultiServer ซึ่งร่วมลงนามด้วย ส่วน Secure Vault ใช้อุปกรณ์ตั้งแต่สองเครื่องขึ้นไปที่ผู้ใช้ควบคุมร่วมกัน และไม่พึ่งพา VultiServer ทั้งสองรูปแบบใช้การลงนามแบบกระจาย แต่มีการพึ่งพาผู้ให้บริการต่างกัน นอกจากนี้ ผู้เข้าร่วมสองรายในเซสชันลงนามหนึ่งครั้งไม่ได้แปลว่า Vault ทั้งชุดมีส่วนแบ่งกุญแจเพียงสองส่วน
ข้อมูลจากงานวิจัยและเอกสารแอปที่เปิดเผยในขณะนี้ยังไม่มีตารางแจกแจงเวอร์ชันที่ได้รับผลกระทบเทียบกับรูปแบบ Vault อย่างครบถ้วน ผู้ใช้จึงยังประเมินขอบเขตผลกระทบของแต่ละรูปแบบ รวมถึงความครอบคลุมของการอัปเดตสำหรับเวอร์ชันเก่าได้ยาก
เอกสารความปลอดภัยของ Vultisig ระบุว่า Trail of Bits ตรวจสอบไลบรารี DKLS23 ของ Silence Laboratories ในปี 2024 และระบุว่าจะเผยแพร่รายงานตรวจสอบแอปบนมือถือและเดสก์ท็อปหลังรายงานพร้อมใช้งาน เมื่อเปิดเผยผลการวิจัย ChainSecurity ระบุว่ายังไม่ได้ตรวจสอบการแก้ไขของ Vultisig และไม่ได้ตรวจสอบส่วนอื่นของโปรโตคอล ดังนั้นการแก้ไขในระดับแอปเหล่านี้จึงไม่อยู่ในขอบเขตการประเมินของบริษัท
ข้อมูลที่ยังต้องชี้แจงคือเวอร์ชันที่เผยแพร่และรูปแบบ Vault ใดบ้างที่ได้รับผลกระทบ รวมถึงแอปบังคับให้หยุดตามเงื่อนไขนี้ได้ทั้งในกรณีลองซ้ำอัตโนมัติและเมื่อผู้ใช้เริ่มการลงนามใหม่ด้วยตนเองหรือไม่ ประเด็นสำคัญสำหรับผู้ถือสินทรัพย์คือการแยกการควบคุมระหว่างหลายฝ่ายต้องได้รับการบังคับใช้อย่างต่อเนื่องตลอดกระบวนการ ไม่ใช่เพียงมีไลบรารีลงนามส่งสัญญาณให้หยุดเท่านั้น