ในรูปแบบความปลอดภัยของซอฟต์แวร์กระเป๋าเงิน | บัญชีแยกประเภท

ในรูปแบบความปลอดภัยของซอฟต์แวร์กระเป๋าเงิน | บัญชีแยกประเภท

โหนดต้นทาง: 2671485

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

สองสัปดาห์ที่ผ่านมา, เรื่องต้องห้าม เปิดโปงการโจมตีเป้าหมายต่อผู้คนนับพันทั่วโลก การโจมตีนี้ใช้ประโยชน์จากช่องโหว่บน Android และ iOS เพื่อติดตั้งสปายแวร์ที่พัฒนาโดย NSO Group: Pegasus มัลแวร์นี้สามารถตรวจสอบกิจกรรมทั้งหมดของอุปกรณ์ และขโมยข้อมูลส่วนบุคคล: SMS, WhatsApp และการสนทนาด้วยสัญญาณ, โทรศัพท์ ฯลฯ บทความนี้จะอธิบายว่าภายใต้เงื่อนไขเหล่านี้ มัลแวร์ดังกล่าวจะสามารถแยกไฟล์ทั้งหมดได้อย่างไร ความลับของซอฟต์แวร์วอลเล็ต และความแตกต่างจากมุมมองด้านความปลอดภัยระหว่างซอฟต์แวร์วอลเล็ตบนโทรศัพท์มือถือและคอมพิวเตอร์เดสก์ท็อป

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

การปกป้องความลับ

อะไรถูกเก็บไว้ในกระเป๋าเงิน crypto?

Wallet ไม่ได้จัดเก็บสกุลเงินดิจิทัลของผู้ใช้จริง ๆ แต่จะเก็บเฉพาะความลับ โดยเฉพาะคีย์ส่วนตัว ซึ่งอนุญาตให้เข้าถึงสกุลเงินดิจิทัลและความสามารถในการใช้จ่ายได้ คีย์ส่วนตัวเหล่านี้ส่วนใหญ่เป็นคีย์ส่วนตัว ECC (การเข้ารหัสเส้นโค้งวงรี) บนเส้นโค้งที่แตกต่างกันขึ้นอยู่กับบล็อกเชน เส้นโค้งที่พบบ่อยที่สุดคือ secp256k1 (Bitcoin, Ethereum…), Ed25519 (Monero) หรือ BLS12-381 (Ethereum 2)

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

การจัดเก็บคีย์เหล่านี้ขึ้นอยู่กับประเภทของกระเป๋าเงิน: กำหนดหรือไม่ กระเป๋าเงินแบบกำหนดลำดับชั้น (HD) อนุญาตให้สร้างแผนผังของคีย์จากความลับหลักเดียวที่เรียกว่าเมล็ด (cf BIP44). เมล็ดนี้มักจะได้มาจากลำดับช่วยจำ 12, 18 หรือ 24 คำที่สร้างหรือเลือกโดยผู้ใช้แบบสุ่ม (เปรียบเทียบBIP39). ตัวช่วยจำเหล่านี้ช่วยจำกัดจำนวนของคีย์ที่จะจัดเก็บ: สามารถคำนวณใหม่ได้ตลอดเวลาจากเมล็ด กระเป๋าเงิน HD เก็บเฉพาะความจำหรือเมล็ดพันธุ์นี้เท่านั้น

กระเป๋าเงินที่ไม่สามารถกำหนดได้จะสร้างรหัสใหม่สำหรับการใช้งานแต่ละครั้งและต้องจัดเก็บทั้งหมด ไม่สามารถย้ายกระเป๋าเงินที่ไม่สามารถกำหนดได้ไปยังกระเป๋าเงินอื่นได้อย่างง่ายดายเนื่องจากการสำรองข้อมูลไม่เข้ากัน

คุณสมบัติด้านความปลอดภัยหลักของกระเป๋าเงินประกอบด้วยการสร้าง จัดเก็บ และใช้ความลับเหล่านี้อย่างเหมาะสม มีระดับความปลอดภัยที่แตกต่างกันสำหรับภัยคุกคามประเภทต่างๆ:

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

รูปแบบการรักษาความปลอดภัยของกระเป๋าเงินฮาร์ดแวร์มีจุดมุ่งหมายเพื่อขจัดภัยคุกคามด้านความปลอดภัยเหล่านี้ กระเป๋าฮาร์ดแวร์ป้องกันมัลแวร์ด้วยการออกแบบ เป็นอุปกรณ์อิสระที่ลงนามในธุรกรรมด้วยตนเอง วัสดุการเข้ารหัสจะอยู่ภายในอุปกรณ์เสมอและจะไม่ส่งไปยังแอปพลิเคชันซอฟต์แวร์ที่สื่อสารด้วย อินเทอร์เฟซการสื่อสารนั้นเรียบง่ายเสมอซึ่งช่วยลดพื้นผิวการโจมตีได้อย่างมาก อาจเป็น USB, Micro SD หรือกล้อง + หน้าจอ (ผ่านรหัส QR) หรือ Bluetooth Low Energy

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

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

กระเป๋าซอฟต์แวร์ Software

กระเป๋าเงินซอฟต์แวร์ทั่วไปปกป้องความลับด้วยวิธีการปกติ: กลไกการรักษาความปลอดภัยของระบบปฏิบัติการที่เรียกใช้และบางครั้งการควบคุมการเข้าถึงโดยใช้ PIN หรือรหัสผ่าน

ต่อไปนี้จะพิจารณากระเป๋าสตางค์เดสก์ท็อป (Windows, macOS, Linux) และกระเป๋าสตางค์มือถือ ความแตกต่างที่สำคัญระหว่างพวกเขาส่วนใหญ่ขึ้นอยู่กับกลไกการรักษาความปลอดภัยที่นำเสนอโดยระบบปฏิบัติการ

กระเป๋าซอฟต์แวร์บนคอมพิวเตอร์

กระเป๋าเงินยอดนิยมหลายใบ เช่น Electrum, Exodus, Atomic หรือ Bitcoin core ทำงานบนคอมพิวเตอร์

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

ความปลอดภัยของซอฟต์แวร์วอลเล็ทเหล่านี้ส่วนใหญ่ขึ้นอยู่กับความปลอดภัยของรหัสผ่านที่ป้องกันพวกมัน และจากข้อเท็จจริงที่ว่าไม่มีมัลแวร์ทำงานบนระบบปฏิบัติการ (ซึ่งค่อนข้างยากที่จะรับประกัน ดูข่าวล่าสุดเกี่ยวกับ Pegasus)

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

ในสถานการณ์ที่ผู้โจมตีจัดการเพื่อเข้าถึงคอนเทนเนอร์เข้ารหัสเท่านั้น (ผู้โจมตีพบคีย์ USB ที่มีกระเป๋าเงิน หรือติดตั้งมัลแวร์ในคอมพิวเตอร์ แต่เหยื่อไม่เคยเปิดแอปพลิเคชันกระเป๋าเงินของตน) ผู้โจมตีจะต้องบังคับรหัสผ่านอย่างโหดเหี้ยม

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

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

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

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

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

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

เพื่อสรุปเกี่ยวกับกระเป๋าซอฟต์แวร์ที่ทำงานบนคอมพิวเตอร์:

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

สมาร์ทโฟน Android และ iOS มีคุณสมบัติความปลอดภัยเริ่มต้นที่ไม่ได้ใช้กันอย่างแพร่หลายในระบบปฏิบัติการเดสก์ท็อป

ระบบปฏิบัติการมือถือให้การปกป้องแอพและข้อมูลผู้ใช้ โดยเฉพาะอย่างยิ่ง Sandbox ของแอปเป็นสิ่งจำเป็นสำหรับทุกแอป นี่ไม่ใช่กรณี เช่น Windows: ตามค่าเริ่มต้น แอปพลิเคชันใด ๆ สามารถเข้าถึงข้อมูลผู้ใช้ได้

ดังนั้น แอปที่เป็นอันตรายจึงไม่สามารถอ่านข้อมูลจากแอปอื่นได้ ยกเว้นในกรณีที่:

  • มันพบช่องโหว่บนแอพนั้น
  • หรือสามารถจัดการเพื่อเพิ่มสิทธิ์ เช่น ใช้ประโยชน์จากช่องโหว่ของเคอร์เนลเพื่อให้สามารถเข้าถึงรูทเข้าสู่ระบบได้

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

ในระบบปฏิบัติการที่ทันสมัย ​​การโจมตีเหล่านี้ทำได้ยากกว่าแต่ไม่ใช่ว่าเป็นไปไม่ได้จากระยะไกล ตัวอย่างเช่น Ian Beer แสดงให้เห็นว่า การโจมตีด้วยคลิกเป็นศูนย์ที่น่าประทับใจอย่างยิ่ง บน iOS 13.5 ในเดือนธันวาคม 2020 Guang Gong นำเสนอ ใช้ประโยชน์จากห่วงโซ่ เพื่อรูทอุปกรณ์ Android หลากหลายรุ่นที่ใช้ Qualcomm จากระยะไกลในเดือนมิถุนายน 2020 และเมื่อสองสัปดาห์ที่ผ่านมา เรื่องต้องห้าม เปิดเผยว่า NSO Group ใช้เครือข่ายช่องโหว่เพื่อกำหนดเป้าหมายอุปกรณ์ iOS และ Android ล่าสุดโดยใช้ช่องโหว่ 0 วัน

ผู้โจมตีที่มีความซับซ้อนน้อยกว่าสามารถใช้ช่องโหว่ในเครื่องที่ทำให้พวกเขาดึงข้อมูลกระเป๋าเงินจากแอปพลิเคชันที่เป็นอันตรายได้ โบรกเกอร์ที่มีช่องโหว่ เช่น Zerodium pay ถึง $ 200,000 สำหรับการยกระดับสิทธิ์เพื่อรูทบน Android และ iOS แต่สูงสุด 1,500,000 ดอลลาร์สำหรับการโจมตีระยะไกล

เราได้ศึกษากระเป๋าเงิน Android/iOS สองสามรุ่น ความปลอดภัยขึ้นอยู่กับตัวแอพเอง แต่ยังขึ้นอยู่กับคุณสมบัติความปลอดภัยของระบบปฏิบัติการพื้นฐานด้วย แน่นอนว่าเมื่อระบบรักษาความปลอดภัยของระบบปฏิบัติการพ่ายแพ้ แอปพลิเคชันก็จะไม่ปลอดภัยอีกต่อไป

วิธีการป้องกันเมล็ดพันธุ์ที่ใช้กันทั่วไปมี XNUMX วิธีคือ

  • การป้องกันรหัสผ่าน – ข้อมูลกระเป๋าเงินได้รับการป้องกันโดยรหัสผ่านที่ผู้ใช้ป้อน การออกแบบจะเหมือนกับกระเป๋าสตางค์ตั้งโต๊ะ ในทางปฏิบัติ การดึงข้อมูลทำได้ยากกว่าจากคอมพิวเตอร์ เนื่องจากการดึงข้อมูลแอปจากแอปที่เป็นอันตรายนั้นยากกว่าในทางเทคนิค ด้วยเหตุผลที่อธิบายไว้ข้างต้น อย่างไรก็ตาม การเรียกคืนรหัสผ่านเมื่อข้อมูลถูกขโมยในทางปฏิบัติทำได้ง่ายกว่า การป้อนรหัสผ่านที่ซับซ้อนบนโทรศัพท์มือถือเป็นเรื่องน่าเบื่อ ผู้ใช้จึงมักเลือกรหัสผ่านที่ง่ายกว่า ยิ่งไปกว่านั้น กลไกการได้มาของคีย์ (ใช้เพื่อสร้างคีย์จากรหัสผ่าน) บนอุปกรณ์พกพามักจะทำลายได้ง่ายกว่า เนื่องจากมักจะมีน้ำหนักเบากว่าด้วยเหตุผลด้านประสิทธิภาพ
  • Coinomi และ Metamask เป็นตัวอย่างของกระเป๋าเงินดังกล่าว

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

วิธีนี้ไม่เฉพาะกับกระเป๋าเงิน สามารถปรับให้เข้ากับกระเป๋าเงินที่ป้องกันด้วยรหัสผ่านได้อย่างง่ายดาย (ไม่มากก็น้อย) นี่คือตัวอย่างเดียวกันกับ Coinbase Wallet:

[เนื้อหาฝัง]

  • ความปลอดภัยขึ้นอยู่กับ Android Keystore (หรือ iOS Keychain) – ในกรณีนี้ ข้อมูลกระเป๋าเงินจะถูกเข้ารหัสด้วยคีย์การเข้ารหัสที่จัดเก็บไว้ใน Android Keystore (iOS Keychain) บริการเหล่านี้ได้รับการออกแบบมาตั้งแต่แรกเพื่อจัดเก็บคีย์การเข้ารหัสอย่างปลอดภัย และแอปจำนวนมากใช้เพื่อสร้างคีย์ที่จะเข้ารหัสข้อมูลผู้ใช้ที่ละเอียดอ่อนทั้งหมด แอปพลิเคชันที่ใช้ Keystore ใช้กลไกต่อไปนี้:
    • แอพขอให้ Keystore สร้างคีย์เข้ารหัสสำหรับตัวระบุที่กำหนด Keystore สร้างรหัสและจัดเก็บอย่างปลอดภัย
    • เมื่อแอปต้องการเข้ารหัสหรือถอดรหัส Blob แอปจะส่ง Blob พร้อมกับตัวระบุคีย์ไปยัง Keystore
    • สุดท้าย ที่เก็บคีย์จะตรวจสอบว่าแอปมีสิทธิ์ใช้คีย์นี้จริงหรือไม่ และส่งกลับแล้วส่งออกข้อมูลไปยังแอป

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

กลไกนี้สามารถให้ความปลอดภัยเพิ่มเติม เมื่อเทียบกับการป้องกันด้วยรหัสผ่าน ในโทรศัพท์รุ่นล่าสุด Keystore ได้รับการสนับสนุนโดย Trusted Execution Environment (TEE) หรือบางครั้งก็เป็น Secure Element

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

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

นี่เป็นเหตุผลง่ายๆ: KeyStore และ KeyChain ให้บริการลายเซ็นและการเข้ารหัสทั่วไป แต่ไม่รองรับการเข้ารหัสที่ใช้ในสกุลเงินดิจิตอล ตัวอย่างเช่น KeyStore ใช้ลายเซ็น ECDSA แต่เฉพาะบนเส้นโค้ง NIST ที่กำหนดไว้ใน FIPS 186-4 (P-224, P-256, P-384 และ P-521) Bitcoin ใช้เส้นโค้งอื่น วินาที256k1ซึ่งยังไม่รองรับ

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

สรุปเกี่ยวกับกระเป๋าเงินมือถือ:

  • กลไกการแยกระหว่างแอพที่ให้บริการโดย iOS/Android ยกระดับความปลอดภัยเมื่อเทียบกับกระเป๋าเงินซอฟต์แวร์ที่ทำงานบนคอมพิวเตอร์ ผู้โจมตีต้องการการยกระดับสิทธิ์ก่อนจึงจะเข้าถึงข้อมูลแอปได้ สิ่งนี้สามารถทำได้ในอุปกรณ์ที่ล้าสมัย ผู้โจมตีที่มีทักษะ (เอียน เบียร์ทำได้ภายใน 6 เดือนเพียงอย่างเดียว แต่... เอียน เบียร์คือเอียน) ยังสามารถทำได้บนอุปกรณ์ที่แพตช์ล่าสุด
  • บริการป้องกันกุญแจ (KeyStore, KeyChain) สามารถเพิ่มชั้นความปลอดภัยเพิ่มเติมเพื่อป้องกันความลับที่เหลือ อย่างไรก็ตาม เนื่องจากไม่รองรับอัลกอริทึมการเข้ารหัสสำหรับแอปพลิเคชันสกุลเงินดิจิทัล จึงยังสามารถแยกคีย์ได้
  • ในทุกกรณี ผู้โจมตีที่มีสิทธิ์เข้าถึงระดับรูทสามารถเรียกข้อมูล Seed ที่เหลือ เมื่อใช้งาน หรือใช้ประโยชน์จากสิทธิ์ของผู้ใช้เพื่อล้างกระเป๋าเงินโดยใช้ซอฟต์แวร์กระเป๋าเงินเป็นออราเคิล

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

[เนื้อหาฝัง]

สรุป

โดยสรุปแล้ว ซอฟต์แวร์วอลเล็ทมีระดับความปลอดภัยที่แตกต่างกัน อย่างไรก็ตาม รูปแบบภัยคุกคามไม่ครอบคลุมถึงกรณีของมัลแวร์ที่ทำงานบนระบบปฏิบัติการที่มีการยกระดับสิทธิ์ สิ่งนี้เกิดจากการออกแบบ: แอปกระเป๋าเงินไม่สามารถปลอดภัยมากไปกว่าระบบปฏิบัติการที่รันอยู่

  • กลไกการแยกระหว่างแอพที่ให้บริการโดย iOS/Android ยกระดับความปลอดภัยเมื่อเทียบกับกระเป๋าเงินซอฟต์แวร์ที่ทำงานบนคอมพิวเตอร์ ผู้โจมตีต้องการการยกระดับสิทธิ์ก่อนจึงจะเข้าถึงข้อมูลแอปได้
  • บริการป้องกันกุญแจ (KeyStore, KeyChain) สามารถเพิ่มชั้นความปลอดภัยเพิ่มเติมเพื่อป้องกันความลับที่เหลือ อย่างไรก็ตาม เนื่องจากไม่รองรับอัลกอริทึมการเข้ารหัสสำหรับแอปพลิเคชันสกุลเงินดิจิทัล จึงต้องจัดการคีย์โดยตรงจากแอป ดังนั้นจึงมีการป้องกันที่จำกัด
  • ในทุกกรณี ผู้โจมตีที่มีสิทธิ์เข้าถึงระดับรูทสามารถเรียกข้อมูล Seed ที่เหลือ เมื่อใช้ หรือใช้ประโยชน์จากสิทธิ์ของผู้ใช้เพื่อล้างกระเป๋าเงินโดยใช้ซอฟต์แวร์กระเป๋าเงินเป็นออราเคิล

ประทับเวลา:

เพิ่มเติมจาก บัญชีแยกประเภท