▼ Bear
ผลกระทบ
82 · สูง

Cold card: หลังช่องโหว่ของ seed, บังคับให้ใส่รหัส 65 ครั้ง… กระเป๋าเงินเดิม จำเป็นต้องย้ายข้อมูล

BTC
CryptoSlate · 21 ชม.ที่แล้วดูต้นฉบับ ↗
บริษัท Coinkite ซึ่งเป็นผู้ผลิตกระเป๋าเงินดิจิทัลแบบฮาร์ดแวร์สำหรับบิตคอยน์ ได้เปิดตัวเฟิร์มแวร์รุ่นใหม่สำหรับอุปกรณ์ Coldcard เมื่อวันที่ 20 สิงหาคม การอัปเดตนี้มีจุดมุ่งหมายหลักเพื่อให้ผู้ใช้ต้องป้อนค่าสุ่มด้วยตนเองในขั้นตอนการสร้าง seed เสมอ โดยผู้ใช้จะต้องเลือกดำเนินการอย่างใดอย่างหนึ่งจากสามวิธี ได้แก่ การป้อนคีย์อย่างน้อย 65 ครั้ง โดยมีช่วงเวลาที่ไม่สามารถคาดเดาได้ การทอยลูกเต๋า 6 ด้าน 50 ครั้ง หรือการโยนเหรียญ 128 ครั้ง ข้อกำหนดนี้มีขึ้นเพื่อลดความเสี่ยงที่เกิดจากการพึ่งพาตัวสร้างเลขสุ่ม (RNG) ของกระเป๋าเงินเพียงอย่างเดียว. รุ่นที่แนะนำให้ปรับปรุงมีหลากหลายรุ่น ได้แก่ Mk2 และ Mk3 ที่ใช้เฟิร์มแวร์เวอร์ชัน 4.0.1 ถึง 4.1.9, Mk4 และ Mk5 ที่ใช้เฟิร์มแวร์เวอร์ชันมาตรฐานต่ำกว่า 5.6.0 และเฟิร์มแวร์เวอร์ชัน Edge ต่ำกว่า 6.6.0X, และอุปกรณ์รุ่น Q ที่ใช้เฟิร์มแวร์เวอร์ชันมาตรฐานต่ำกว่า 1.5.0Q และเฟิร์มแวร์เวอร์ชัน Edge ต่ำกว่า 6.6.0QX ทั้งหมดนี้ควรได้รับการปรับปรุง การวิเคราะห์ทางเทคนิคที่เป็นอิสระของ Block พบว่าควรครอบคลุมถึงเฟิร์มแวร์เวอร์ชัน 4.0.0 ของ Mk2 และ Mk3 ซึ่งกว้างกว่าขอบเขตที่ CoinKite กำหนดไว้ และได้เตือนว่าการพึ่งพามาตรฐานความปลอดภัยที่ผู้ผลิตกำหนดเพียงอย่างเดียวอาจไม่เพียงพอ. สาเหตุหลักของช่องโหว่นี้อยู่ในโค้ดสำรอง (fallback) ของ MicroPython จากการวิเคราะห์ของ Block พบว่า ฟังก์ชันแฟล็กที่ถูกกำหนดให้เป็น 0 กลับถูกมองว่าเป็น "มีอยู่" ซึ่งอาจทำให้คำขอสร้างตัวเลขสุ่มถูกส่งไปยังโค้ดสำรองแบบกำหนดค่าล่วงหน้า (deterministic fallback) ส่งผลให้เกิดความเสี่ยงด้านความปลอดภัยอย่างมาก หากมีการสร้าง "seed" โดยไม่มีแหล่งข้อมูลภายนอก (external entropy) ที่เพียงพอ การป้อนข้อมูลทางกายภาพ (physical input) เป็นการป้องกันในอนาคตเพื่อจำกัดความเสียหาย หากการสร้างตัวเลขสุ่มล้มเหลวอีกครั้ง แต่ไม่สามารถใช้เพื่อแก้ไข "seed" ที่ถูกสร้างขึ้นแล้วได้. การอัปเดตนี้มีฟีเจอร์ด้านความปลอดภัยอื่นๆ นอกเหนือจากการสร้าง Seed รวมถึงการเชื่อมโยงการตรวจสอบ USB กับค่าเช็คซัม PSBT แบบทีละขั้นตอน, การตรวจสอบซ้ำข้อมูลไบต์ของธุรกรรมก่อนการลงนาม, และการบล็อกโหมด SIGHASH_SINGLE เป็นค่าเริ่มต้น นอกจากนี้ ยังมีการจำกัดการดาวน์โหลด USB ให้เป็นผลลัพธ์ของเซสชันที่เข้ารหัสในปัจจุบัน, การตรวจสอบความถูกต้องของขนาดไฟล์เฟิร์มแวร์, การหยุดการทำงานของข้อผิดพลาด RNG ที่เกิดขึ้นต่อเนื่อง, และการเพิ่มฟังก์ชันการตรวจสอบการเชื่อมต่อ RNG ฮาร์ดแวร์เมื่อบูตเครื่อง. การย้ายข้อมูลมีข้อยกเว้นเพียงข้อเดียว: ผู้ใช้ที่เคยใช้เฟิร์มแวร์ที่มีช่องโหว่ และได้ทำการสุ่มตัวเลขอย่างน้อย 50 ครั้งภายใต้เงื่อนไขที่เป็นกลาง โปร่งใส และเป็นส่วนตัว จะได้รับการยกเว้นการย้ายข้อมูล อย่างไรก็ตาม หากจำนวนครั้งไม่เพียงพอ หรือผู้ใช้ไม่แน่ใจเกี่ยวกับเงื่อนไขดังกล่าว จะต้องสร้าง seed ใหม่ และทำการย้ายเงิน หากต้องการสร้าง seed ใหม่ คู่มืออย่างเป็นทางการของ CoinKite แนะนำให้ดำเนินการตามขั้นตอนดังนี้: สร้าง seed ใหม่, สำรองข้อมูล, ตรวจสอบลายนิ้วมือของกระเป๋าเงิน, ตรวจสอบที่อยู่รับเงินบนอุปกรณ์, ทำการโอนเงินจำนวนน้อยเพื่อทดสอบ, และสุดท้ายทำการย้ายเงินจำนวนทั้งหมด การกู้คืนหรือทำสำเนาของกระเป๋าเงินจะไม่ถือเป็นการสร้าง seed ใหม่. Coinstrike ได้ออกแถลงการณ์ว่า มีลูกค้าบางรายได้รับความเสียหายอย่างร้ายแรง และขณะนี้หน่วยงานสอบสวนกำลังดำเนินการตรวจสอบ อย่างไรก็ตาม ทางบริษัทไม่ได้เปิดเผยจำนวนผู้ที่ได้รับผลกระทบ หรือมูลค่าความเสียหายโดยรวม นอกจากนี้ Coinstrike ยังระบุว่า การตรวจสอบที่ดำเนินการในปัจจุบัน (เช่น การตรวจสอบโค้ด, การทดสอบเส้นทางการสุ่มของอุปกรณ์จริง, การสร้างและติดตามเส้นทางการสุ่มที่สามารถทำซ้ำได้) นั้น ไม่ได้เป็นการตรวจสอบอย่างละเอียด (audit) ทั้งหมดของเฟิร์มแวร์ที่ได้รับการแก้ไข.
AI สรุปให้ อ่านบทความฉบับเต็มได้ที่ต้นฉบับ
ความคิดเห็น 0
เข้าสู่ระบบ เพื่อเขียนความคิดเห็น
กำลังโหลด…