รายงานเหตุการณ์ฉบับเต็ม · 16 แหล่งข้อมูล · Anzen Lab

โค้ดสี่บรรทัด
กว่า 1,596 BTC หายไป

ในเดือนมีนาคม ปี 2021 เฟิร์มแวร์ของ COLDCARD รุ่นหนึ่งหยุดขอตัวเลขสุ่มจากชิปฮาร์ดแวร์และให้ซอฟต์แวร์ธรรมดาคำนวณแทน ไม่มีใครสังเกตเห็นเรื่องนี้เป็นเวลาห้าปี จนกระทั่งเดือนกรกฎาคม ปี 2026 ผู้ไม่ประสงค์ดีคำนวณตัวเลขดังกล่าวและเริ่มกวาดเหรียญออกจากกระเป๋าเงิน

มูลค่าความเสียหายจากค่าตั้งค่านี้
5 ปี
ที่ช่องโหว่นี้อยู่ในโค้ดที่เป็นสาธารณะโดยสมบูรณ์และไม่มีใครสังเกตเห็น1
1,596+ BTC
ยืนยันว่าถูกขโมยจากประมาณ 7,300 แอดเดรส และตัวเลขยังคงเพิ่มขึ้น7
41 นาที
การกวาดครั้งใหญ่ที่สุด: 1,083 BTC หรือประมาณ 70 ล้านดอลลาร์ในเวลานั้น9
1 ในล้านล้าน
โอกาสที่ผู้โจมตีต้องเอาชนะบนรุ่น Mk3 การออกแบบกำหนดให้มีโอกาสหนึ่งในตัวเลข 78 หลัก1
สิ่งใดที่ผิดพลาด

การตรวจสอบความปลอดภัยที่มีอยู่ แต่กลับไม่ได้ทำหน้าที่ใดๆ

01

การป้องกันทั้งหมดขึ้นอยู่กับตัวเลขตัวเดียวที่ไม่มีใครเดาได้

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

รายละเอียดทางเทคนิค

วลี 12 คำบรรจุเอนโทรปี 128 บิต, 24 คำบรรจุ 256 บิต บวกกับเช็คซัม (Checksum) จากค่า SHA-256 ของเอนโทรปีนั้น BIP-39 ขยายผลลัพธ์ดังกล่าวให้กลายเป็นมาสเตอร์คีย์ (Master key) ของ BIP-32

รายละเอียดทางเทคนิค

วลี 12 คำบรรจุเอนโทรปี 128 บิต, 24 คำบรรจุ 256 บิต บวกกับเช็คซัม (Checksum) จากค่า SHA-256 ของเอนโทรปีนั้น BIP-39 ขยายผลลัพธ์ดังกล่าวให้กลายเป็นมาสเตอร์คีย์ (Master key) ของ BIP-32

02

COLDCARD หยุดดึงข้อมูลจากกลุ่มตัวเลขนั้น

การเปลี่ยนแปลงเฟิร์มแวร์ในปี 2021 ทำให้กระเป๋าเงินหยุดส่งคำขอตัวเลขดังกล่าวไปยังชิปสร้างความสุ่มโดยเฉพาะอย่างเงียบๆ และให้ซอฟต์แวร์ธรรมดาคำนวณตัวเลขขึ้นมาแทน เมื่อเปรียบเทียบกัน นี่คือภาพรวมทั้งหมดของเหตุการณ์:

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

รายละเอียดทางเทคนิค

กระบวนการสร้างซีดถูกเปลี่ยนจาก ckcc.rng_bytes() ไปเป็น ngu.random.bytes() Coinkite ประเมินว่ามีพื้นที่การค้นหาที่เหลืออยู่ประมาณ 40 บิตบนรุ่น Mk3 และประมาณ 72 บิตบนรุ่น Mk4/Mk5/Q จากเป้าหมาย 128 บิต การวิเคราะห์อิสระโดย Block ได้ผลลัพธ์ในระดับเดียวกัน (ต่ำกว่า 2⁴⁰·⁷ และต่ำกว่า 2⁷³·³) พร้อมทั้งพบเงื่อนไขที่จำกัดยิ่งขึ้นซึ่งทำให้เหลือพื้นที่ค้นหาน้อยลงไปอีก2

รายละเอียดทางเทคนิค

กระบวนการสร้างซีดถูกเปลี่ยนจาก ckcc.rng_bytes() ไปเป็น ngu.random.bytes() Coinkite ประเมินว่ามีพื้นที่การค้นหาที่เหลืออยู่ประมาณ 40 บิตบนรุ่น Mk3 และประมาณ 72 บิตบนรุ่น Mk4/Mk5/Q จากเป้าหมาย 128 บิต การวิเคราะห์อิสระโดย Block ได้ผลลัพธ์ในระดับเดียวกัน (ต่ำกว่า 2⁴⁰·⁷ และต่ำกว่า 2⁷³·³) พร้อมทั้งพบเงื่อนไขที่จำกัดยิ่งขึ้นซึ่งทำให้เหลือพื้นที่ค้นหาน้อยลงไปอีก2

กลุ่มตัวเลขสุ่มที่คำ 24 คำควรถูกสุ่มเลือกมา
115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936
กลุ่มตัวเลขสุ่มที่ COLDCARD ใช้จริง
1,099,511,627,776
03

เนื่องจากซอฟต์แวร์ไม่สามารถมีความสุ่มที่แท้จริงได้

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

รายละเอียดทางเทคนิค

เมื่อตัวสร้างความสุ่มฮาร์ดแวร์ถูกปิดใช้งาน ฟังก์ชัน rng_get() จะเชื่อมโยงไปที่ Yasmarang PRNG ของ MicroPython ซึ่งถูกใส่ค่าเริ่มต้นจากสถานะที่ไม่ใช่ความลับ (UID, SysTick, RTC) และหลังจากนั้นมันก็ไม่ได้เก็บความสุ่มใหม่เพิ่มอีก ทำให้สามารถทำการแจแจงค่าที่เป็นไปได้แบบออฟไลน์ได้ Coinkite ไม่ถือว่าซีดที่ผสมกับการทอดลูกเต๋าที่เที่ยงตรงและเป็นความลับตั้งแต่ 50 ครั้งขึ้นไปมีความเสี่ยงจากปัญหานี้โดยลำพัง: 50 × log₂6 ≈ 129 บิต3

รายละเอียดทางเทคนิค

เมื่อตัวสร้างความสุ่มฮาร์ดแวร์ถูกปิดใช้งาน ฟังก์ชัน rng_get() จะเชื่อมโยงไปที่ Yasmarang PRNG ของ MicroPython ซึ่งถูกใส่ค่าเริ่มต้นจากสถานะที่ไม่ใช่ความลับ (UID, SysTick, RTC) และหลังจากนั้นมันก็ไม่ได้เก็บความสุ่มใหม่เพิ่มอีก ทำให้สามารถทำการแจแจงค่าที่เป็นไปได้แบบออฟไลน์ได้ Coinkite ไม่ถือว่าซีดที่ผสมกับการทอดลูกเต๋าที่เที่ยงตรงและเป็นความลับตั้งแต่ 50 ครั้งขึ้นไปมีความเสี่ยงจากปัญหานี้โดยลำพัง: 50 × log₂6 ≈ 129 บิต3

04

และระบบตรวจสอบที่ออกแบบมาเพื่อหยุดยั้งเรื่องนี้กลับตั้งคำถามผิดประเด็น

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

รายละเอียดทางเทคนิค

#ifndef ตรวจสอบเพียงว่ามีการกำหนดค่าไว้หรือไม่ การตั้งค่าบอร์ดกำหนดให้ MICROPY_HW_ENABLE_RNG เป็น 0 ซึ่งเป็นการกำหนดค่าและปิดใช้งานไว้ ข้อความ #error จึงไม่เคยทำงาน และตัวลิงก์จึงเชื่อมโยง rng_get() ไปยังฟังก์ชันสำรองของซอฟต์แวร์แทน3

รายละเอียดทางเทคนิค

#ifndef ตรวจสอบเพียงว่ามีการกำหนดค่าไว้หรือไม่ การตั้งค่าบอร์ดกำหนดให้ MICROPY_HW_ENABLE_RNG เป็น 0 ซึ่งเป็นการกำหนดค่าและปิดใช้งานไว้ ข้อความ #error จึงไม่เคยทำงาน และตัวลิงก์จึงเชื่อมโยง rng_get() ไปยังฟังก์ชันสำรองของซอฟต์แวร์แทน3

ข้อบกพร่อง อ้างอิงจากซอร์สโค้ด3

05

ไม่มีสิ่งใดที่ดูผิดปกติเลยตลอดระยะเวลาห้าปี

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

รายละเอียดทางเทคนิค

ความยาวของผลลัพธ์, การไม่ใช่ค่าศูนย์ทั้งหมด (Non-zero-ness) และการไม่ซ้ำกัน (Non-repetition) ล้วนผ่านเกณฑ์บน PRNG ที่อ่อนแอ ดังนั้นการทดสอบเบื้องต้นทั่วไป (Smoke tests) จึงไม่สามารถตรวจจับมันได้เช่นกัน

รายละเอียดทางเทคนิค

ความยาวของผลลัพธ์, การไม่ใช่ค่าศูนย์ทั้งหมด (Non-zero-ness) และการไม่ซ้ำกัน (Non-repetition) ล้วนผ่านเกณฑ์บน PRNG ที่อ่อนแอ ดังนั้นการทดสอบเบื้องต้นทั่วไป (Smoke tests) จึงไม่สามารถตรวจจับมันได้เช่นกัน

06

จากนั้นจึงมีคนทำการคำนวณ

พวกเขาไม่เคยแตะต้องอุปกรณ์สักเครื่องเดียว พวกเขา Avoid สร้างวลีที่มีความเป็นไปได้สูงบนเครื่องของตนเอง คำนวณว่าวลีแต่ละชุดจะสร้างแอดเดรส Bitcoin ใดขึ้นมาบ้าง และตรวจสอบแอดเดรสเหล่านั้นกับบล็อกเชนสาธารณะ ทุกแอดเดรสที่มีมียอดเงินคงเหลือถูกกวาดเกลี้ยง กระเป๋าเงินที่ถูกเก็บไว้ในลิ้นชักโดยไม่ได้เสียบปลั๊กมาตั้งแต่ปี 2022 มีความเสี่ยงเท่ากันทุกประการกับกระเป๋าเงินที่ใช้งานอยู่ทุกวัน

รายละเอียดทางเทคนิค

แอดเดรสที่เป็นไปได้ถูกอนุพันธ์แบบออฟไลน์ผ่าน BIP-39/BIP-32 มีเพียงขั้นตอนการตรวจสอบยอดคงเหลือขั้นสุดท้ายเท่านั้นที่เชื่อมต่อกับเครือข่าย ดังนั้นจึงไม่มีสัญญาณเตือนภัยใดๆ ฝั่งเหยื่อก่อนล่วงหน้า3

รายละเอียดทางเทคนิค

แอดเดรสที่เป็นไปได้ถูกอนุพันธ์แบบออฟไลน์ผ่าน BIP-39/BIP-32 มีเพียงขั้นตอนการตรวจสอบยอดคงเหลือขั้นสุดท้ายเท่านั้นที่เชื่อมต่อกับเครือข่าย ดังนั้นจึงไม่มีสัญญาณเตือนภัยใดๆ ฝั่งเหยื่อก่อนล่วงหน้า3

หน้านี้ไม่ใช่การประกาศชัยชนะเพื่อโอ้อวด

Coinkite เปิดเผยข้อบกพร่อง เผยแพร่รายงานทางเทคนิค และปล่อยแพตช์แก้ไข นักวิจัยภายนอกสามารถแกะรอยสิ่งที่เกิดขึ้นได้เนื่องจาก COLDCARD เป็นโอเพนซอร์ส

ข้อควรระวังประการหนึ่งเกี่ยวกับการประเมิน: สิ่งเหล่านี้อธิบายถึงขอบเขตการคาดเดาที่ผู้โจมตีต้องเผชิญภายใต้สมมติฐานปัจจุบัน ไม่ใช่การจับเวลาด้วยนาฬิกาจับเวลา ไม่มีใครสามารถบอกคุณได้ว่ากระเป๋าเงินใบใดใบหนึ่งจะต้องใช้เวลานานเท่าใดจึงจะถูกเจาะ2

หากคุณเป็นเจ้าของ COLDCARD

โปรดอ่านสิ่งนี้ก่อนเรื่องอื่นใด

สิ่งที่คุณต้องทำขึ้นอยู่กับว่าคุณใช้อุปกรณ์รุ่นใดในตอนที่สร้างวลีฟื้นฟูขึ้นมาเป็นครั้งแรก ไม่ใช่รุ่นที่คุณถืออยู่ทุกวันนี้

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

Mk2 และ Mk3: ย้ายเหรียญของคุณเดี๋ยวนี้

เฟิร์มแวร์ที่ได้รับผลกระทบคือเวอร์ชัน 4.0.1 ถึง 4.1.9 เวอร์ชัน 4.2.0 แก้ไขวิธีการสร้างวลีใหม่แล้ว แต่ไม่มีการอัปเดตใดที่สามารถย้อนเวลากลับไปเพิ่มความสุ่มให้กับวลีที่มีอยู่เดิมได้ ให้สร้างกระเป๋าเงินใหม่บนอุปกรณ์ที่คุณเชื่อถือแล้วย้ายกองทุนของคุณข้ามไป1

Mk4 และ Mk5: ตรวจสอบเวอร์ชันเฟิร์มแวร์

หากวลีดังกล่าวถูกสร้างขึ้นบนเฟิร์มแวร์ที่เก่ากว่าเวอร์ชัน 5.6.0 (หรือ 6.6.0X บนบิวด์แบบ Edge) ให้ทำการอัปเดต สร้างกระเป๋าเงินใหม่เอี่ยมบนเฟิร์มแวร์ที่อัปเดตแล้ว จากนั้นจึงย้ายเงินของคุณ การอัปเดตเฟิร์มแวร์เพียงอย่างเดียวไม่สามารถซ่อมแซมวลีเก่าได้1

Q: เช่นเดียวกัน จุดตัดคือเวอร์ชัน 1.5.0Q

อัปเดตเป็น 1.5.0Q หรือใหม่กว่า หรือ 6.6.0QX บนบิวด์ Edge, สร้างกระเป๋าเงินใหม่, จดและทดสอบข้อมูลสำรอง, ส่งธุรกรรมทดสอบขนาดเล็กหนึ่งรายการ จากนั้นจึงย้ายส่วนที่เหลือ1

การอัปเดตเฟิร์มแวร์ COLDCARD จะช่วยแก้ไขวลีกู้คืนที่มีอยู่แล้วหรือไม่?

ฉันจะทราบได้อย่างไรว่าวลีกู้คืนของ COLDCARD ถูกสร้างขึ้นด้วยเฟิร์มแวร์เวอร์ชันใด?

ฉันจะตรวจสอบได้อย่างไรว่าที่อยู่ของฉันเข้าไปพัวพันกับเรื่องนี้ด้วยหรือไม่?

การทอดลูกเต๋าหรือรหัสผ่านผ่าน (passphrase) สามารถปกป้องวลีสำรองของ COLDCARD ได้หรือไม่?

ประกาศของ Coinkiteครอบคลุม COLDCARD ทุกรุ่นที่ได้รับผลกระทบหรือไม่?

ประกาศทางเทคนิคอย่างเป็นทางการจาก Coinkiteย้ายไปกระเป๋าเงินใหม่บนอุปกรณ์ที่คุณไว้วางใจอยู่แล้ว และส่งธุรกรรมทดสอบขนาดเล็กหนึ่งรายการก่อนทำการย้ายทรัพย์สินทั้งหมด เก็บหลักฐานที่เป็นสาธารณะ (รหัสธุรกรรม แอดเดรส และเวลา) ไว้ และอย่าเปิดเผยความลับเด็ดขาด ใครก็ตามที่เสนอตัวช่วยกู้คืนเงินของคุณคือมิจฉาชีพระลอกใหม่ และบริการแบบนั้นไม่มีอยู่จริง การเลือกซื้อฮาร์ดแวร์ตัวใหม่รอได้จนกว่าเหรียญของคุณจะปลอดภัย
และหากคุณใช้งาน OneKey

ไม่มีอุปกรณ์ OneKey ใดได้รับผลกระทบ

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

ไม่ได้รับผลกระทบ
OneKey Pro
OneKey Classic 1S
OneKey Classic 1S Pure
OneKey Touch
OneKey Classic
OneKey Mini

เราไม่ได้เชื่อถือคำกล่าวอ้างเฉยๆ เช่นกัน เมื่อข่าวนี้แพร่ออกไป Anzen Lab ได้ตรวจสอบระบบความสุ่มของเราตั้งแต่ต้นทางจนถึงปลายทาง (แหล่งที่มา การเรียกใช้งาน และการตั้งค่าการสร้างที่กำหนดว่าเวอร์ชันใดจะไปถึงอุปกรณ์ของคุณ) พร้อมทั้งเผยแพร่ไฟล์จริงที่พวกเขาตรวจสอบ12

อ่านผลการตรวจสอบซ้ำของ Anzen Lab
คำถามที่คุณต้องการคำตอบจริงๆ

สิ่งนี้สามารถเกิดขึ้น กับ OneKey ได้หรือไม่?

ความล้มเหลวครั้งนี้ต้องอาศัยเงื่อนไขสามประการที่เกิดขึ้นพร้อมกัน บน OneKey ไม่มีเงื่อนไขใดที่เป็นจริงเลย และคุณสามารถตรวจสอบทั้งสามข้อนี้ได้ด้วยตัวเอง

ที่มาของค่าความสุ่มของเรา

แล้วความสุ่มของ OneKey มาจากไหน?

สร้างขึ้นภายในชิปที่ได้รับการรับรองมาตรฐาน EAL 6+

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

ความสุ่มที่คอยตรวจสอบตัวเอง

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

เราได้กลับไปตรวจสอบระบบของเราอีกครั้ง

หลังจากข่าวของ COLDCARD ออกมา Anzen Lab ได้ตรวจสอบความสุ่มของเราเองตลอดกระบวนการ (แหล่งที่มา การเรียกใช้งานจริง และการตั้งค่าการสร้างที่กำหนดว่าเวอร์ชันใดจะไปอยู่บนอุปกรณ์ของคุณ) และเผยแพร่ไฟล์ที่พวกเขาตรวจสอบให้ดูชัดเจน11

OneKey Pro's EAL 6+ certified secure element
EAL 6+ Badge
ทุกธุรกรรม ปลอดภัยด้วยชิปที่ได้รับการรับรอง EAL 6+
สถานที่สร้างความสุ่ม
ซีเคียวเอลีเมนต์
THD89
ระดับการประกันความปลอดภัย
ได้รับการรับรองมาตรฐาน EAL 6+
แหล่งที่มาของเอนโทรปี
ฮาร์ดแวร์ TRNG พร้อมระบบทดสอบตัวเอง
ผลลัพธ์ได้รับการรับรองตามมาตรฐาน
BSI AIS 20 / 31
ตรวจสอบซ้ำหลังเหตุการณ์นี้
Anzen Lab, เผยแพร่ซอร์สโค้ดแล้ว
OneKey สร้างขึ้นมาอย่างไร และใครคือผู้ตรวจสอบ

การตรวจสอบ 4 ชั้นสำหรับ OneKey ทุกเครื่อง และไม่มีชั้นไหนเลยที่ไว้วางใจอีก 3 ชั้นที่เหลือ

แต่ละชั้นอาจเกิดความผิดพลาดได้ แต่ประเด็นคือทั้งสี่ชั้นจะต้องพลาดเหมือนกันหมด ซึ่ง COLDCARD ไม่มีระบบสำรองเช่นนี้: การตั้งค่าบิลด์ที่ไม่ได้ตรวจสอบเพียงครั้งเดียวก็สร้างความเสียหายได้แล้ว

01

โอเพนซอร์สที่คุณสามารถตรวจสอบได้จริง

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

OneKey บน GitHub
02
SlowMist

ผู้เชี่ยวชาญภายนอกตรวจสอบเราอย่างเป็นทางการ

บริษัทด้านความปลอดภัย SlowMist เป็นผู้ตรวจสอบระบบของเราและเผยแพร่รายงาน ผลการประเมินแยกต่างหากครอบคลุมถึง OneKey Pro, Classic 1S และ SDK ของเรา แนวปฏิบัติด้านความปลอดภัยของเราได้รับการรับรองมาตรฐาน ISO/IEC 27001 และสายการผลิต Pro กับ Classic 1S ได้รับการรับรองตามมาตรฐาน EN 18031 โดยหน่วยงานที่ได้รับการแต่งตั้งจากสหภาพยุโรป ทุกอย่างถูกเผยแพร่ต่อสาธารณะ ไม่ได้ประเมินกันเองภายใน13

อ่านสรุปผลการตรวจสอบจาก SlowMist
03

ทีมงานที่ได้รับค่าจ้างให้เจาะผลิตภัณฑ์ของเราเอง

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

อ่านการวิเคราะห์จาก Anzen Lab
04

เราจ่ายเงินให้คนแปลกหน้าเพื่อค้นหาข้อผิดพลาดของเรา

ทุกคนสามารถรายงานข้อบกพร่องมายังเราได้แบบส่วนตัว ผ่านโปรแกรมสาธารณะของเราบน BugRap หรือส่งตรงไปที่ [email protected] และจะได้รับเงินรางวัล ความรุนแรงของปัญหาจะเป็นตัวกำหนดเงินรางวัลโดยอิงตามคะแนน CVSS เป้าหมายหลักคือการทำให้การแจ้งเรามีความน่าสนใจมากกว่าการนำไปขายต่อ15

OneKey บน BugRap
entro.tools · พัฒนาโดยผู้ก่อตั้งของเรา

ทดสอบกระเป๋าเงินในมือคุณ

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

เครื่องมือนี้ใช้งานได้กับ Trezor, KeepKey รวมถึงอุปกรณ์ของเราเอง เพื่อให้คุณสามารถเปรียบเทียบเคียงข้างกันได้ แทนที่จะต้องเชื่อคำกล่าวอ้างของผู้ผลิตรายใดรายหนึ่งเพียงลำพัง
วิธีการทำงาน
ในเบราว์เซอร์ของคุณ ผ่าน WebUSB
การทดสอบที่ใช้
FIPS 140-2, NIST SP 800-22 / 90B
ข้อมูลของคุณ
ไม่มีวันออกจากหน้าเว็บ
การอัปเดตเฟิร์มแวร์
ไม่จำเป็นต้องใช้
ตรวจสอบเอนโทรปี

รันการทดสอบสุขภาพตามมาตรฐาน FIPS 140-2, NIST SP 800-22 และ SP 800-90B ในเครื่องผ่าน WebUSB (บนเดสก์ท็อป Chrome หรือ Edge) อุปกรณ์จะขอส่งออกความสุ่ม ซึ่งก็คือชุดตัวเลขสุ่มที่เพิ่งสร้างขึ้นมา ไม่ใช่วลีฟื้นฟูของคุณ16

การทดสอบ universal ของ Maurer ต้องใช้อย่างน้อย 387,840 บิต หากน้อยกว่านั้นรายงานจะระบุว่าถูกข้าม แทนที่จะตัดออกเงียบ ๆ16

กระเป๋าเงินรุ่นใดที่สามารถตรวจสอบได้

ความสามารถของบุคคลภายนอกในการอ่านตัวเลขสุ่มดิบของอุปกรณ์ นี่เป็นเพียงแง่มุมแคบๆ แง่มุมหนึ่ง โปรดดูหมายเหตุด้านล่าง

OneKey
ตรวจสอบได้ด้วยตนเอง
ทุกรุ่น, เฟิร์มแวร์มาตรฐาน16
Trezor
ตรวจสอบได้ด้วยตนเอง
ทุกรุ่น, ใช้โปรโตคอลการสื่อสารร่วมกัน16
KeepKey
ตรวจสอบได้ด้วยตนเอง
ตระกูลโปรโตคอลการสื่อสารเดียวกับ Trezor16
Ledger
เชื่อถือผู้ผลิต
ซีเคียวเอลีเมนต์แบบปิด; ไม่มีคำสั่งจากโฮสต์ใดที่เปิดเผยค่าตัวเลขสุ่มดิบ16
BitBox02
เชื่อถือผู้ผลิต
คำขอตัวเลขสุ่มของโปรโตคอลถูกถอดออกโดยผู้ผลิต16
Blockstream Jade
เชื่อถือผู้ผลิต
โฮสต์ทำได้เพียงเพิ่มเอนโทรปีเท่านั้น; ไม่มีวิธีใดที่จะอ่านแหล่งที่มากลับออกมาได้16
COLDCARD
เชื่อถือผู้ผลิต
มีพอร์ต USB แต่โปรโตคอลไม่มีคำสั่งเกี่ยวกับเอนโทรปีเลย16
Keystone
เชื่อถือผู้ผลิต
แยกจากระบบเครือข่ายโดยการออกแบบ (Air-gapped); พอร์ต USB รองรับเฉพาะข้อมูลอุปกรณ์และการอัปเดตเฟิร์มแวร์เท่านั้น16
"ตรวจสอบไม่ได้" กับ "ไม่ปลอดภัย" เป็นคนละข้อกล่าวหา ซีเคียวร์เอเลเมนต์แบบปิดมีเส้นทางการรับรองของตัวเอง ผลการทดสอบที่ผ่านพิสูจน์เพียงว่าไม่มีข้อบกพร่องทางสถิติปรากฏขึ้นในวันนี้ แต่มันไม่สามารถพิสูจน์ความคาดเดาไม่ได้ทางวิทยาการเข้ารหัสลับได้ และไม่ได้บอกอะไรเกี่ยวกับความสุ่มที่ใช้ในวันที่สร้างกระเป๋าเงินของคุณขึ้นมา
ยังมีข้อสงสัยอยู่ใช่ไหม

คำถามที่เหตุการณ์นี้นำมาสู่ผู้ผลิตกระเป๋าเงินรายอื่น

OneKey ได้รับผลกระทบจากปัญหาเอนโทรปีของ COLDCARD หรือไม่?

ความล้มเหลวของเอนโทรปี COLDCARD ส่งผลกระทบต่อฮาร์ดแวร์วอลเล็ตใดบ้าง?

ฉันจะทดสอบความสุ่มของกระเป๋าเงินตัวเองได้อย่างไร?

เราจะประเมินได้อย่างไรว่าฮาร์ดแวร์วอลเล็ตใดน่าเชื่อถือ?

ความปลอดภัยที่คุณตรวจสอบได้เอง ไม่ใช่ความปลอดภัยที่คุณถูกขอให้เชื่อตาม

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

แหล่งอ้างอิง

แหล่งอ้างอิงด้านล่าง ดึงข้อมูลเมื่อวันที่ 6 สิงหาคม 2026 คำแนะนำและรายงานทางเทคนิคของ Coinkite มาเป็นอันดับแรก ตามด้วยการวิเคราะห์ระดับซอร์สโค้ดอิสระและการตรวจสอบบนเชน ตัวเลขความเสียหายยังคงถูกปรับเพิ่มขึ้นเรื่อยๆ: Galaxy Research ยืนยันตัวเลข 1,596 BTC เมื่อวันที่ 4 สิงหาคม และประเมินว่าความเสียหายที่น่าจะเกิดขึ้นน่าจะใกล้เคียง 2,055 BTC