ฮาร์ดแวร์วอลเล็ตที่ถูกสร้างขึ้นมาเพื่อเก็บกุญแจส่วนตัวของบิตคอยน์ให้ห่างจากแฮ็กเกอร์ กำลังบอกลูกค้าของตัวเองว่ากุญแจบางส่วนอาจถูกเจาะไปแล้ว Coinkite ผู้ผลิตวอลเล็ต Coldcard ได้ปล่อยเฟิร์มแวร์ใหม่เพื่ออุดช่องโหว่Coldcard seedที่เปิดโอกาสให้ผู้โจมตีสร้างกุญแจส่วนตัวขึ้นมาใหม่ได้เพียงแค่ติดตามการกดปุ่ม การแก้ไขนี้ทำให้กระบวนการสร้าง seed phrase สำหรับวอลเล็ตใหม่แข็งแกร่งขึ้น แต่ก็ทำอีกอย่างหนึ่งด้วย: มันบังคับให้เจ้าของต้องเผชิญกับความจริงที่ไม่สบายใจ หาก seed ของคุณถูกสร้างก่อนแพตช์นี้ การอัปเดตเฟิร์มแวร์จะไม่ช่วยปกป้องมัน
Summary
ประเด็นสำคัญ
- Coinkite ปล่อยเฟิร์มแวร์ 5.6.1 สำหรับอุปกรณ์ Coldcard Mk4 และ Mk5 และ 1.5.1Q สำหรับ Coldcard Q โดยบังคับให้ seed ใหม่ต้องผสมความสุ่มจากการกระทำทางกายภาพเข้าไปด้วย
- การสร้าง seed ใหม่ตอนนี้ต้องใช้การกดปุ่มอย่างน้อย 65 ครั้ง การทอยลูกเต๋าหกหน้าจำนวน 50 ครั้ง หรือการโยนเหรียญ 128 ครั้ง ผสมกับ entropy จากอุปกรณ์
- seed ที่สร้างบนเฟิร์มแวร์ที่มีช่องโหว่จะยังคงเสี่ยงอยู่แม้หลังอัปเดตแล้ว เจ้าของที่ได้รับผลกระทบต้องสร้าง seed ใหม่และย้ายเงินของตน
- การวิเคราะห์อิสระจาก Block ชี้ว่าช่วงเวลาที่มีช่องโหว่อาจกว้างกว่าที่ Coinkite ระบุไว้ในคำแนะนำอย่างเป็นทางการ
Coinkite ทำให้การสร้าง Coldcard Seed แข็งแกร่งขึ้นหลังถูกโจมตี
คำตอบของ Coinkite ต่อเหตุละเมิดนี้คือการสร้างเฟิร์มแวร์ใหม่ที่ไม่อนุญาตให้ Coldcard สร้าง seed จากความสุ่มของอุปกรณ์เพียงอย่างเดียวอีกต่อไป บริษัทเผยแพร่อัปเดตนี้ในบล็อกโพสต์เมื่อวันพฤหัสบดี โดยบอกให้เจ้าของอุปกรณ์ Mk4 และ Mk5 ติดตั้งเวอร์ชัน 5.6.1 และให้เจ้าของ Coldcard Q ย้ายไปใช้เวอร์ชัน 1.5.1Q ทั้งสองเวอร์ชันถูกปล่อยเมื่อวันที่ 20 สิงหาคม และ Coinkite กำลังเร่งเร้าให้ผู้ใช้ทุกคนอัปเกรดโดยไม่ชักช้า
เวอร์ชันเฟิร์มแวร์ใหม่และข้อกำหนดเรื่องความสุ่มทางกายภาพ
การเปลี่ยนแปลงหลักอธิบายได้ง่ายแต่มีนัยสำคัญในการใช้งาน ทุก seed ใหม่ตอนนี้ต้องผสม entropy จากอุปกรณ์ — ที่ดึงมาจาก secure element ของ Coldcard และฮาร์ดแวร์ตัวสร้างตัวเลขสุ่ม — เข้ากับแหล่งความสุ่มที่มนุษย์เป็นผู้ป้อน นั่นหมายถึงอย่างน้อยการกดปุ่ม 65 ครั้งในจังหวะที่คาดเดาไม่ได้ การทอยลูกเต๋าหกหน้า 50 ครั้ง หรือการโยนเหรียญ 128 ครั้ง เหตุผลก็ตรงไปตรงมา: หากตัวสร้างความสุ่มภายในอุปกรณ์ล้มเหลวหรือถูกดัดแปลงอีกครั้ง ความสุ่มจากภายนอกที่มาจากมือมนุษย์ยังคงทำให้ seed ที่ได้ไม่สามารถคาดเดาได้
เรื่องนี้สำคัญเพราะข้อบกพร่องดั้งเดิมย้อนกลับไปที่โค้ดที่สามารถเปลี่ยนคำขอสร้าง seed ไปใช้ตัวสำรอง MicroPython แบบกำหนดได้อย่างเงียบ ๆ ซึ่งถูกทริกเกอร์ด้วย feature flag ที่ถูกกำหนดค่าเป็นศูนย์แต่กลับถูกปฏิบัติราวกับเปิดใช้งาน กล่าวอีกนัยหนึ่ง ความสุ่มที่วอลเล็ตอ้างว่าสร้างขึ้นไม่ได้สุ่มเสมอไปอย่างที่โฆษณาไว้ — และการทบทวนเชิงเทคนิคของ Block พบว่าผู้โจมตีที่ติดตามการกดปุ่มสามารถย้อนรอยสร้างกุญแจส่วนตัวจากรูปแบบที่คาดเดาได้นั้น
ทำไม seed เก่ายังคงเสี่ยงอยู่
การติดตั้งเฟิร์มแวร์ใหม่ไม่ช่วยแก้ไข seed ที่มีอยู่แล้ว นี่คือความจริงตรงไปตรงมาที่ Coinkite กำลังสื่อสารกับฐานลูกค้าของตน และเป็นส่วนที่มีเดิมพันทางการเงินเร่งด่วนที่สุด seed ที่สร้างบนเฟิร์มแวร์ที่ได้รับผลกระทบจะยังคงถูกเดาได้ง่ายพอ ๆ กับก่อนแพตช์ ไม่ว่าหลังจากนั้นวอลเล็ตที่ใช้ seed นั้นจะถูกอัปเดตแล้วหรือไม่ก็ตาม
รายการเวอร์ชันที่เสี่ยงอย่างเป็นทางการของ Coinkite ครอบคลุมเฟิร์มแวร์ 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 กำหนด อาจไม่ได้ปลอดภัยจริง
ขั้นตอนการย้ายและข้อยกเว้นการทอยลูกเต๋า
คำแนะนำการย้ายของ Coinkite ชัดเจน: เว้นแต่ว่า seed ของวอลเล็ตจะถูกสร้างด้วยข้อยกเว้นส่วนตัวแบบทอยลูกเต๋า 50 ครั้ง ผู้ใช้ที่ได้รับผลกระทบจำเป็นต้องสร้างseed phrase ใหม่ ตรวจสอบสำเนาสำรองและลายนิ้วมือของวอลเล็ตที่สอดคล้องกัน และยืนยันที่อยู่ปลายทางโดยตรงบนฮาร์ดแวร์เอง ส่งธุรกรรมทดสอบจำนวนเล็กน้อย และหลังจากนั้นเท่านั้นจึงค่อยย้ายยอดคงเหลือทั้งหมดที่ผูกกับ seed เก่า
มีคำแนะนำหนึ่งที่ถูกย้ำซ้ำด้วยเหตุผลที่ชัดเจน — การโคลนหรือกู้คืนวอลเล็ตเก่าไม่ได้สร้าง seed ใหม่ Coinkite ระบุอย่างชัดเจนว่าทางลัดนี้ปล่อยให้ช่องโหว่พื้นฐานยังคงอยู่ ใครก็ตามที่หวังจะเลี่ยงกระบวนการทอยลูกเต๋าและกดปุ่มที่น่าเบื่อด้วยการกู้คืนสำรองเพียงอย่างเดียว กำลังเก็บกุญแจส่วนตัวที่ถูกเปิดเผยไว้ตามเดิม
Coldcard ยังมีโหมดขั้นสูง “Dice Rolls Only” ที่ข้ามความสุ่มจากฮาร์ดแวร์ไปเลย โดยอาศัยการทอยลูกเต๋า 50 ครั้งสำหรับ seed 12 คำ หรือ 99 ครั้งสำหรับ seed 24 คำ เป็นเส้นทางที่แยกออกมาและเข้มงวดกว่ากระบวนการผสม entropy มาตรฐานที่ตอนนี้ถูกตั้งเป็นค่าเริ่มต้น
ช่องโหว่ Coldcard Seed ลึกแค่ไหน?
ความเสียหายทางการเงินที่ผูกกับช่องโหว่นี้ไม่ใช่เรื่องสมมติอีกต่อไป Coinkite เองยอมรับว่าลูกค้าบางรายได้รับความเสียหายอย่างหนักและมีการสืบสวนโดยหน่วยงานบังคับใช้กฎหมาย แต่บริษัทไม่ได้เผยแพร่จำนวนเหยื่อที่ยืนยันแล้วหรือยอดความเสียหายรวมของตนเอง
ช่องว่างระหว่างความสูญเสียที่ยืนยันได้กับสิ่งที่ถูกยอมรับอย่างเป็นทางการนี้ควรค่าแก่การพิจารณา นักวิจัยอิสระ ไม่ใช่ Coinkite เป็นผู้จัดทำตัวเลขสาธารณะ และขอบเขตช่องโหว่ที่กว้างกว่าของ Block บ่งชี้ว่าคำแนะนำของบริษัทอาจประเมินจำนวนวอลเล็ตที่เสี่ยงต่ำเกินไป สำหรับอุตสาหกรรมที่สร้างขึ้นบนแนวคิดว่าวอลเล็ตฮาร์ดแวร์คือที่ที่ปลอดภัยที่สุดในการเก็บกุญแจส่วนตัว ช่องโหว่ที่เปิดโอกาสให้ผู้โจมตีสร้างกุญแจเหล่านั้นขึ้นใหม่จากจังหวะการกดปุ่มถือเป็นปัญหาด้านชื่อเสียงและเทคนิคที่ร้ายแรง ไม่ใช่แค่บั๊กที่ต้องแก้
นอกเหนือจากการสร้าง seed แล้ว เฟิร์มแวร์ใหม่ยังทำให้การเซ็นและการตรวจสอบธุรกรรมเข้มงวดขึ้นด้วย มันผูกอินเทอร์เฟซ USB เข้ากับค่าแฮช PSBT ชั่วคราว ตรวจสอบความถูกต้องของข้อมูลธุรกรรมก่อนลงลายเซ็น ป้องกันการทำงานแบบ SIGHASH_SINGLE เป็นค่าเริ่มต้น จำกัดการถ่ายโอนไฟล์ผ่าน USB ให้อยู่ในเซสชันที่เข้ารหัสปัจจุบัน และตรวจสอบความยาวไฟล์เฟิร์มแวร์ Coinkite ได้เพิ่มการหยุดทำงานแบบถาวรเมื่อพบความผิดปกติของ RNG การตรวจสอบตอนบูตที่เชื่อมโยงฮาร์ดแวร์ RNG การแยก Delta Mode ที่แข็งแกร่งขึ้น และพฤติกรรมการสำรองข้อมูลวอลเล็ตที่ใช้งานอยู่แบบใหม่ บริษัทอธิบายการทบทวนของตนว่าเป็นการวิเคราะห์ซอร์สโค้ดแบบเจาะจง การทดสอบเส้นทาง RNG บนอุปกรณ์จริง และการสร้างไบนารีซ้ำได้พร้อมการติดตามเส้นทางทอยลูกเต๋า — แต่ยังไม่ถึงขั้นเรียกว่าการตรวจสอบเต็มรูปแบบของไบนารีที่แก้ไขทั้งหมด
จังหวะเวลายังเพิ่มชั้นความกังวลอีกระดับให้เจ้าของวอลเล็ต: Microsoft ได้เตือนแยกต่างหากเกี่ยวกับมัลแวร์ CryptoBandits ที่สามารถใช้ประโยชน์จากไดรฟ์ USB เพื่อเข้าถึงวอลเล็ตคริปโต เป็นเครื่องเตือนใจว่าความปลอดภัยของวอลเล็ตฮาร์ดแวร์ขึ้นอยู่กับมากกว่าแค่เฟิร์มแวร์เพียงอย่างเดียว
คำถามที่พบบ่อย
เฟิร์มแวร์ Coldcard เวอร์ชันใหม่เปลี่ยนแปลงอะไรบ้าง?
เฟิร์มแวร์เวอร์ชัน 5.6.1 และ 1.5.1Q กำหนดให้ seed ของวอลเล็ตใหม่ต้องมีความสุ่มทางกายภาพแบบบังคับผ่านการกดปุ่ม 65 ครั้ง การทอยลูกเต๋า 50 ครั้ง หรือการโยนเหรียญ 128 ครั้ง ผสมกับ entropy จากอุปกรณ์
seed ของ Coldcard ที่มีอยู่ซึ่งสร้างบนเฟิร์มแวร์ที่ได้รับผลกระทบจะปลอดภัยหลังอัปเดตหรือไม่?
ไม่ Seed ที่มีอยู่ซึ่งสร้างบนเฟิร์มแวร์ที่ได้รับผลกระทบยังคงมีช่องโหว่และไม่สามารถทำให้ปลอดภัยได้ด้วยการติดตั้งเฟิร์มแวร์ใหม่ ผู้ใช้ที่ได้รับผลกระทบต้องสร้าง seed ใหม่และย้ายเงิน
ผู้ใช้สามารถทำให้วอลเล็ตปลอดภัยได้ด้วยการโคลนหรือกู้คืนวอลเล็ตเก่าหรือไม่?
ไม่ การโคลนหรือกู้คืนวอลเล็ตเก่าไม่ได้สร้าง seed ใหม่ เพื่อความปลอดภัย การสร้าง seed ใหม่เป็นสิ่งจำเป็น
ผู้ใช้ควรทำอย่างไรหาก seed ของตนเข้าเงื่อนไขข้อยกเว้นการทอยลูกเต๋า 50 ครั้ง?
ผู้ใช้ที่ seed เป็นไปตามข้อยกเว้นส่วนตัวแบบทอยลูกเต๋า 50 ครั้งอาจไม่จำเป็นต้องย้าย ตามคำแนะนำของ Coinkite — แม้ว่าใครก็ตามที่ไม่แน่ใจว่า seed ของตนเข้าเกณฑ์หรือไม่ ควรถือว่ามันถูกเปิดเผยไว้จะปลอดภัยกว่า
{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”เฟิร์มแวร์ Coldcard เวอร์ชันใหม่เปลี่ยนแปลงอะไรบ้าง?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”เฟิร์มแวร์เวอร์ชัน 5.6.1 และ 1.5.1Q กำหนดให้ seed ของวอลเล็ตใหม่ต้องมีความสุ่มทางกายภาพแบบบังคับผ่านการกดปุ่ม 65 ครั้ง การทอยลูกเต๋า 50 ครั้ง หรือการโยนเหรียญ 128 ครั้ง ผสมกับ entropy จากอุปกรณ์.”}},{“@type”:”Question”,”name”:”seed ของ Coldcard ที่มีอยู่ซึ่งสร้างบนเฟิร์มแวร์ที่ได้รับผลกระทบจะปลอดภัยหลังอัปเดตหรือไม่?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”ไม่ Seed ที่มีอยู่ซึ่งสร้างบนเฟิร์มแวร์ที่ได้รับผลกระทบยังคงมีช่องโหว่และไม่สามารถทำให้ปลอดภัยได้ด้วยการติดตั้งเฟิร์มแวร์ใหม่ ผู้ใช้ที่ได้รับผลกระทบต้องสร้าง seed ใหม่และย้ายเงิน.”}},{“@type”:”Question”,”name”:”ผู้ใช้สามารถทำให้วอลเล็ตปลอดภัยได้ด้วยการโคลนหรือกู้คืนวอลเล็ตเก่าหรือไม่?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”ไม่ การโคลนหรือกู้คืนวอลเล็ตเก่าไม่ได้สร้าง seed ใหม่ เพื่อความปลอดภัย การสร้าง seed ใหม่เป็นสิ่งจำเป็น.”}},{“@type”:”Question”,”name”:”ผู้ใช้ควรทำอย่างไรหาก seed ของตนเข้าเงื่อนไขข้อยกเว้นการทอยลูกเต๋า 50 ครั้ง?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”ผู้ใช้ที่ seed เป็นไปตามข้อยกเว้นส่วนตัวแบบทอยลูกเต๋า 50 ครั้งอาจไม่จำเป็นต้องย้าย ตามคำแนะนำของ Coinkite — แม้ว่าใครก็ตามที่ไม่แน่ใจว่า seed ของตนเข้าเกณฑ์หรือไม่ ควรถือว่ามันถูกเปิดเผยไว้จะปลอดภัยกว่า.”}}]}
บทความนี้จัดทำขึ้นด้วยความช่วยเหลือจากปัญญาประดิษฐ์และผ่านการตรวจทานโดยทีมบรรณาธิการ

