จำเป็นต้องดำเนินการกับโซ่เพิ่มล็อคความปลอดภัยให้กับรหัสกระเป๋าเงิน

ในโลก Web3.0 ความปลอดภัยของคีย์ส่วนตัวและคำเริ่มต้นเป็นสิ่งสำคัญที่สุด เมื่อครอบครองแล้ว จะสามารถเข้าถึงทรัพย์สินดิจิทัลได้ตามต้องการ ดังนั้นการสูญหายหรือถูกขโมยอาจส่งผลให้ทรัพย์สินของผู้ใช้เสียหายอย่างใหญ่หลวง
ด้วยการเพิ่มขึ้นของแอปพลิเคชันกระเป๋าเงินมือถือในพื้นที่ Web 3.0 จึงจำเป็นอย่างยิ่งที่จะต้องเข้าใจกลไกการรักษาความปลอดภัยต่างๆ ที่ปกป้องคีย์เหล่านี้
บทความนี้สรุประดับต่างๆ ของการป้องกันความปลอดภัยที่นำเสนอโดยแอปพลิเคชันกระเป๋าเงินมือถือ Web3.0 จากการค้นคว้าเกี่ยวกับโอเพ่นซอร์สโอเพนซอร์สโมบายวอลเล็ตที่เป็นที่นิยมจำนวน 9 รายการ เราได้หารือถึงวิธีการที่วอลเล็ตยอดนิยมเหล่านี้นำคีย์ส่วนตัวหรือวลีช่วยจำของผู้ใช้มาใช้ในทางปฏิบัติ ตั้งแต่การป้องกันด้วยรหัสผ่านอย่างง่ายไปจนถึงสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ซึ่งสนับสนุนด้วยฮาร์ดแวร์ ฯลฯ ของการป้องกันความปลอดภัย จากการวิจัย เราพบว่ากลไกการป้องกันความปลอดภัยเหล่านี้บางส่วนสามารถแก้ปัญหาการโจมตีการโจรกรรมคีย์ส่วนตัวทั่วไปได้อย่างมีประสิทธิภาพ อย่างไรก็ตาม เรายังพบว่าภัยคุกคามจากระดับระบบ (เช่น การใช้ประโยชน์จากรูท ฯลฯ) นั้นส่วนใหญ่ถูกเพิกเฉย
แกนความปลอดภัยของ Wallet: การป้องกันคีย์ส่วนตัว
ข้อมูลที่สำคัญที่สุดในแอปพลิเคชันกระเป๋าเงินมือถือคือคีย์ส่วนตัวและวลีเริ่มต้น
ดังนั้นภัยคุกคามที่ร้ายแรงที่สุดต่อแอปพลิเคชันกระเป๋าเงินมือถือคือการรั่วไหลของคีย์ส่วนตัวหรือวลีเริ่มต้น เพื่อบรรเทาภัยคุกคามนี้อย่างเหมาะสม แอปพลิเคชันกระเป๋าเงินมือถือที่ออกแบบมาอย่างดีควรมีแนวทางที่เป็นระบบในการรักษาความปลอดภัยของคีย์ส่วนตัวในระหว่างขั้นตอนการจัดเก็บหรือการใช้งาน

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

ความปลอดภัยของ Wallet: ตั้งแต่ S 0 ถึง S 4
ชื่อเรื่องรอง
S 0 (ไม่มีการป้องกันหน่วยความจำ)
แนวปฏิบัติด้านความปลอดภัยของระดับ S 0 คือการจัดเก็บข้อมูลส่วนตัวของผู้ใช้ทั้งหมดในพื้นที่จัดเก็บของแอปพลิเคชัน รวมถึงคีย์ส่วนตัวและวลีช่วยจำ เป็นต้น โดยปกติจะป้องกันผู้ใช้หรือแอปพลิเคชันที่ไม่มีสิทธิ์เข้าถึงไฟล์ที่เก็บข้อมูลโดยตรง
คำอธิบายภาพ

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

กู้คืน Simple Bitcoin Wallet จากฐานข้อมูล Sqlite
ชื่อเรื่องรอง
S 1 (การเข้ารหัสรหัสผ่าน)
การรักษาความปลอดภัยกระเป๋าเงินระดับ S1 คือการใช้รหัสผ่านที่ผู้ใช้กำหนดเพื่อเข้ารหัสไฟล์พื้นที่เก็บข้อมูลที่มีคีย์ส่วนตัวและวลีช่วยจำ ซึ่งจะป้องกันไม่ให้ผู้ใช้หรือแอปพลิเคชันที่ไม่ได้รับสิทธิพิเศษเข้าถึงไฟล์พื้นที่เก็บข้อมูลโดยตรง อย่างไรก็ตาม เมื่อแอปพลิเคชันเริ่มทำงาน ไฟล์ที่เก็บไว้จะต้องได้รับการถอดรหัส เพื่อให้ผู้ใช้หรือแอปพลิเคชันที่มีสิทธิ์สามารถเจาะเข้ากระเป๋าเงินและสกัดกั้นรหัสผ่านที่เข้ารหัสได้ สิ่งนี้ทำให้พวกเขาสามารถถอดรหัสไฟล์คีย์ที่เข้ารหัสในเครื่องหรือบังคับเดรัจฉานได้โดยตรง
คำอธิบายภาพ

ชื่อเรื่องรอง
S 2 [Keystore(Trustzone)]
เพื่อป้องกันไม่ให้คีย์เข้ารหัสของไฟล์ที่เก็บคีย์ถูกดักจับในหน่วยความจำโดยผู้โจมตี แอปพลิเคชันกระเป๋าเงินบางตัว เช่น Metamask ใช้ระบบ Android Keystore เพื่อสร้างและใช้คีย์เข้ารหัส
ระบบ Keystore ถูกนำมาใช้โดยแอปพลิเคชันที่เชื่อถือได้ซึ่งทำงานใน Trusted Execution Environment (TEE) ของ Android สภาพแวดล้อมนี้แยกออกจากระบบปฏิบัติการหลักและป้องกันด้วยคุณลักษณะด้านความปลอดภัยบนฮาร์ดแวร์ ด้วยการใช้ระบบ Keystore การเข้ารหัสหรือถอดรหัสไฟล์ที่จัดเก็บจะเกิดขึ้นใน TEE ซึ่งช่วยลดความเป็นไปได้ที่คีย์เข้ารหัสจะถูกบุกรุก
ชื่อเรื่องรอง
S 3 [ที่เก็บคีย์ (Trustzone) + การตรวจจับรูท]
เพื่อเพิ่มความปลอดภัยในการป้องกันระดับ S2 แอปกระเป๋าเงินบางแอปจะก้าวไปอีกขั้นเพื่อปกป้องทรัพย์สินของผู้ใช้ด้วยการตรวจสอบว่าอุปกรณ์มือถือได้รับการรูทหรือไม่ การตรวจจับนี้ช่วยให้มั่นใจได้ถึงความสมบูรณ์ของอุปกรณ์ เนื่องจากอุปกรณ์ที่รูทจะถูกโจมตีได้ง่ายกว่าโดยผู้โจมตี
ชื่อเรื่องรอง

S 4 (สภาพแวดล้อมการดำเนินการเฉพาะที่เชื่อถือได้ TA แอปพลิเคชันที่เชื่อถือได้)
หลักปฏิบัติด้านความปลอดภัยระดับสูงสุดในแอปพลิเคชันกระเป๋าเงินมือถือคือการใช้ Trusted Execution Environment (TEE) เฉพาะเพื่อจัดเก็บและประมวลผลข้อมูลคีย์ส่วนตัว สิ่งนี้ทำได้โดยการติดตั้ง Trusted Application (TA) ที่ใช้ TEE บนอุปกรณ์โดยเฉพาะ
ตัวอย่างเช่น ปัจจุบันมีการใช้วิธีการป้องกันนี้โดยแอปพลิเคชัน Samsung blockchain บนสมาร์ทโฟน Samsung ระดับไฮเอนด์บางรุ่น วิธีการนี้ให้การป้องกันเพิ่มเติมเนื่องจากข้อมูลคีย์ส่วนตัวถูกจัดเก็บและใช้เฉพาะใน TEE ซึ่งแยกออกจากระบบปฏิบัติการหลักและเข้าถึงได้ด้วยรหัสที่ผู้ขายเชื่อถือเท่านั้น แม้แต่ผู้ใช้หรือแอปพลิเคชันที่ได้รับสิทธิพิเศษก็ไม่สามารถเข้าถึงข้อมูลนี้ได้โดยตรง อย่างไรก็ตาม แนวทางนี้มีข้อจำกัดตรงที่ผู้ผลิตสมาร์ทโฟนต้องจัดหาอินเทอร์เฟซเฉพาะสำหรับนักพัฒนากระเป๋าเงินเพื่อใช้ TEE
ความปลอดภัยของแอพ Mobile Wallet
ในการป้องกันระดับ S 3 เราได้กล่าวว่าการตรวจจับรูทสามารถใช้ร่วมกับระบบ Keystore เพื่อปกป้องข้อมูลส่วนตัวของผู้ใช้ โปรดทราบว่าเราถือว่าการตรวจหารูทเป็นสิ่งสำคัญในการทำให้มั่นใจว่าอุปกรณ์ยังคงความสมบูรณ์ขั้นพื้นฐาน และควรนำไปใช้ร่วมกับแนวทางปฏิบัติด้านความปลอดภัยเพื่อให้แน่ใจว่ามีการป้องกันในระดับที่สูงขึ้น
อย่างไรก็ตาม สิ่งสำคัญที่ควรทราบ: เทคนิคการตรวจจับรากอาจแตกต่างกันไปและไม่จำเป็นต้องมีประสิทธิภาพ ตัวอย่างเช่น ในขณะที่ Airgap Vault r ถูกรูทบนอุปกรณ์ทดสอบของเรา Samourai Wallet ตรวจหาอุปกรณ์ที่รูทไม่สำเร็จในสภาพแวดล้อมการทดสอบเดียวกัน
นอกจากนี้ การศึกษานี้รวมเฉพาะแอปพลิเคชันกระเป๋าเงินซอฟต์แวร์บนอุปกรณ์พกพาโดยไม่ต้องใช้ฮาร์ดแวร์เพิ่มเติม ทั้งกระเป๋าเงิน Web 3.0 ที่ใช้ฮาร์ดแวร์และการรักษาความปลอดภัยกระเป๋าเงินเย็นนำเสนอคุณสมบัติความปลอดภัยที่น่าสนใจ และแต่ละรายการสมควรได้รับบทความโดยละเอียด
สรุป
สรุป
ในเอกสารฉบับนี้ ทีมผู้เชี่ยวชาญของ CertiK จะวิเคราะห์ภัยคุกคามที่แอปพลิเคชันกระเป๋าเงิน Web3.0 เผชิญบนอุปกรณ์พกพา โดยเฉพาะอย่างยิ่งการจัดเก็บคีย์ส่วนตัวและภัยคุกคามที่เกี่ยวข้อง ทีมผู้เชี่ยวชาญของ CertiK ได้เปิดเผยระดับความปลอดภัยที่แต่ละแอปพลิเคชันใช้ผ่านการทดสอบและวิจัยเกี่ยวกับแอปพลิเคชันกระเป๋าเงินยอดนิยมที่แตกต่างกัน 9 แอปพลิเคชัน และพบว่ากระเป๋าเงินหลักส่วนใหญ่ใช้เทคโนโลยีการป้องกันคีย์ที่ได้รับการสนับสนุนโดยฮาร์ดแวร์เพื่อแก้ปัญหาการเข้ารหัส ปัญหาเกี่ยวกับการจัดเก็บคีย์ เช่น Keystore ระบบบน Android
อย่างไรก็ตาม เรายังสังเกตเห็นว่ากระเป๋าเงินส่วนใหญ่ไม่ตรวจสอบความสมบูรณ์ของอุปกรณ์ เช่น มีการรูทหรือไม่ ซึ่งอาจทำให้เกิดปัญหาด้านความปลอดภัยเมื่อดำเนินการคีย์ส่วนตัวในหน่วยความจำ นอกเหนือจากหลักปฏิบัติด้านความปลอดภัยทั้งห้าระดับที่เราสรุปไว้ในบทความนี้ เราเชื่อว่านักพัฒนากระเป๋าเงินควรให้ความสนใจกับวิธีใช้ประโยชน์จากการออกแบบ Trustzone บน Android อย่างเต็มที่เพื่อลดความเสี่ยงทั่วไปให้ดียิ่งขึ้น เราจะแนะนำหัวข้อนี้ต่อไปในบทความต่อๆ ไป และช่วยเหลือนักพัฒนาในการปกป้องทรัพย์สินของผู้ใช้ได้ดียิ่งขึ้น


