รายงานการตรวจสอบความเป็นส่วนตัวและความปลอดภัยของ Worldcoin orb

Mar 14, 2024 1 Minute Read

โครงการ Worldcoin ก่อตั้งขึ้นด้วยการมุ่งมั่นต่อความเป็นส่วนตัวและความปลอดภัย เป็นส่วนหนึ่งของความมุ่งมั่นนี้ ผู้สนับสนุนโครงการ Tools for Humanity (TFH) ร่วมกับมูลนิธิ Worldcoin ได้ขอให้ผู้เชี่ยวชาญด้านความปลอดภัยที่มีชื่อเสียงที่ Trail of Bits ดำเนินการตรวจสอบซอฟต์แวร์ของโอ้บโดยเฉพาะ นอกเหนือจากการประเมินความปลอดภัยตามปกติแล้ว Trail of Bits ยังมุ่งเน้นไปที่การประเมินข้อเรียกร้องด้านความเป็นส่วนตัวและการทำงานที่เกี่ยวข้องกับโอ้บด้วย 

รายงานขั้นสุดท้าย มีให้ที่นี่.

ขอบเขตของการประเมิน

Trail of Bits เริ่มการประเมินของพวกเขาเมื่อ 14 สิงหาคม 2023 บนเวอร์ชันซอฟต์แวร์ที่ถูกคงไว้ 8 กรกฎาคม 2023 กับ SemVer 3.0.10. ณ วันที่ 14 มีนาคม 2024, เวอร์ชันซอฟต์แวร์ปัจจุบันที่ถูกติดตั้งบน orbs คือ 4.0.34 โดยมีวันที่ปล่อยรุ่นแรกเป็น 17 มกราคม 2024. 

TFH ให้ชุดของข้ออ้างทางเทคนิคที่ไม่ได้ครบถ้วนเพื่อกำหนดขอบเขตของการมีส่วนร่วมพยายามที่จะยืนยันการดำเนินการของพวกเขา. ข้ออ้างเหล่านี้มุ่งเน้นการปล่อยซอฟต์แวร์ของเวอร์ชันที่ถูกคงไว้ 8 กรกฎาคม 2023.

1. สำหรับการลงชื่อสมัครใช้ที่สามารถเลือกไม่เข้าร่วมได้โดยค่าเริ่มต้น ไม่มีข้อมูลส่วนบุคคลที่ระบุตัวตนได้ (PII) ยกเว้นรหัสม่านตาที่ถูกเก็บรวบรวมโดย orb

  • ไม่มี PII เขียนเก็บข้อมูลลงในพื้นที่ถาวรบนออร์บ
  • ไม่มี PII ยกเว้นรหัสม่านตาออกจากออร์บ (เช่น อัปโหลด)

2. สำหรับฟลวการสมัครที่เลือกเข้าร่วม ไม่ใช่ค่าดีฟอลท์ PII จะถูกจัดการอย่างปลอดภัยโดยออร์บ

  • PII เพียงอย่างเดียวที่เก็บอยู่ในอุปกรณ์คือใน SSD ของออร์บและเข้ารหัสแบบไม่สมมาตร*
  • PII ที่เข้ารหัสแบบไม่สมมาตรและเก็บอยู่ใน SSD ของออร์บไม่สามารถถอดรหัสได้โดยออร์บ

3. ออร์บไม่ดึงข้อมูลที่มีความอ่อนไหวใดๆ จากอุปกรณ์ของผู้ใช้

  • ข้อมูลเพียงอย่างเดียวที่ออร์บรวบรวมจากโทรศัพท์ของผู้ใช้คือรหัส QR.**

4. รหัสม่านตาของผู้ใช้ถูกจัดการอย่างปลอดภัย

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

* ตั้งแต่รุ่น 4.0.XX เป็นต้นไป ออบจะไม่บันทึกข้อมูลใด ๆ ลงใน SSD ไม่ว่าจะใช้อุปกรณ์การเก็บรักษาข้อมูลแบบใดก็ตาม

** ในซอฟต์แวร์ออบรุ่น 3.0.10 โค้ด QR ประกอบด้วย UUID 128 บิต user_id และ data_policy ค่า bool ที่แสดงถึงตัวเลือกการเก็บรักษาข้อมูลของผู้ใช้ และ DataCollectionConfig โครงสร้างที่ใช้งานภายในที่เป็นตัวเลือก ในเวอร์ชันซอฟต์แวร์ 4.0.0 คิวอาร์โค้ดได้ถูกปรับเปลี่ยนให้รวมแฮชเข้ารหัสที่ประกอบด้วยกุญแจสาธารณะของผู้ใช้ ซึ่งมีชื่อว่า user_data_hash. แฮชนี้ถูกใช้เพื่อยืนยันว่ามีกุญแจสาธารณะที่ถูกต้องถูกใช้เมื่อเข้ารหัสข้อมูลไปยังอุปกรณ์ของผู้ใช้. 

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

คำกล่าวอ้างเหล่านี้ถูกขัดเกลาให้ชัดเจนยิ่งขึ้นเป็นเป้าหมายเฉพาะที่มีอยู่ในรายงานสุดท้ายร่วมกับ Trail of Bits. การใช้งานในพื้นที่ผู้ใช้ของลูกค้าของ Orb ใน Rust และระบบปฏิบัติการที่ใช้ Debian ถูกกำหนดให้อยู่ในขอบเขตของการประเมินนี้ และองค์ประกอบต่อไปนี้ถูกแยกออกมาเนื่องจากไม่สามารถใช้งานได้กับข้อเรียกร้องเดิม:

  1. การกำหนดค่า Bootloader
  2. การปรับแก้ไดร์เวอร์
  3. แอปพลิเคชัน TrustZone
  4. อินเตอร์เฟซของ Secure element

รายการเป้าหมายที่ครบถ้วนจะถูกระบุในรายงานสุดท้าย

ผลลัพธ์ของการประเมิน

ที่ปรึกษาสามคนทำงานตรวจทานทั้งหมดหกสัปดาห์ทางวิศวกรรม ผู้ตรวจสอบได้รับสิทธิ์เข้าถึงโค้ดต้นฉบับทั้งหมด พร้อมกับสิทธิ์การเข้าถึง runtime กับ orb ประเมินสองรายการ แม้ว่ารายงานจะบรรยายถึงพื้นผิวการโจมตีที่เป็นไปได้ (TOB-ORB-4 และ TOB-ORB-5, TOB-ORB-10, และ TOB-ORB-11), พวกเขาสรุปว่า “การวิเคราะห์ของเราไม่พบช่องโหว่ในโค้ดของ Orb ที่สามารถถูกโจมตีได้โดยตรงในส่วนที่เกี่ยวข้องกับเป้าหมายของโครงการตามที่อธิบายไว้.” นอกจากนี้ ขณะที่การตรวจสอบของ Trail of Bits ระบุถึงความกังวลบางประการที่ยังไม่ได้รับการยืนยันซึ่งอาจมีผลต่อเป้าหมายของโครงการในทางทฤษฎี และโค้ดที่ได้รับผลกระทบได้รับการปรับปรุงแล้ว การตรวจสอบไม่พบกรณีใด ๆ ที่เป้าหมายของโครงการจะถูกทำลายโดยตรง ไม่ว่าจะผ่านการโจมตีที่รู้จักหรือในระหว่างการดำเนินงานตามปกติ

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

ข้อเรียกร้อง 1: การลงทะเบียนแบบยกเลิกเป็นค่าเริ่มต้น

การประเมินสรุปว่าการกำหนดค่าของเวอร์ชันซอฟต์แวร์ที่ตรวจสอบไม่เก็บรวบรวมหรือนำข้อมูล PII ออกนอก นอกจาก "รหัสม่านตา" จากออร์บ Trail of Bits แนะนำให้มีการเปลี่ยนแปลงการทำให้การกำหนดค่าแข็งแกร่งยิ่งขึ้นเพิ่มเติมเพื่อเพิ่ม "การป้องกันในเชิงลึก" ของออร์บ เพื่อให้มั่นใจว่าการเปลี่ยนแปลงในอนาคตต่อการกำหนดค่าหรือโค้ดจะไม่ทำให้เกิดการรั่วไหลโดยบังเอิญ (พบ TOB-ORB-1). 

ข้อเรียกร้อง 2: การลงทะเบียนที่ยินยอมโดยไม่ใช่ค่าเริ่มต้น

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

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

ข้อเรียกร้องที่ 3: โอ้บไม่ดึงข้อมูลเพิ่มเติมจากอุปกรณ์ของผู้ใช้

เมื่อผู้ใช้โต้ตอบกับ orb เป็นครั้งแรกเพื่อทำการสมัครใช้งาน จะมีการแสดง QR code บนอุปกรณ์ของผู้ใช้ซึ่งจะถูกดำเนินการโดย orb ในรหัสที่เกี่ยวข้อง ผู้ตรวจสอบไม่ได้ระบุข้อมูลเพิ่มเติมหรือข้อมูลใด ๆ ที่เก็บรวบรวมจากอุปกรณ์ของผู้ใช้โดย orb อย่างไรก็ตามการประเมินดังกล่าวได้เน้นถึงปัญหาความปลอดภัยของหน่วยความจำที่อาจเกิดขึ้น (พบ TOB-ORB-4 ในรายงานสุดท้าย) กับไลบรารีที่ใช้ในการสแกน QR code (ZBar) เพื่อรับมือกับปัญหานี้ ไลบรารีที่มีช่องโหว่ถูกแทนที่ด้วยไลบรารีการสแกนบาร์โค้ดในภาษารัสต์แท้ๆ rxing.

ข้อเรียกร้องที่ 4: โค้ดไอริสของผู้ใช้ถูกจัดการอย่างปลอดภัย

ผู้ตรวจสอบพยายามที่จะรับรองการอ้างสิทธิ์ที่เกี่ยวข้องกับวิธีการจัดการและสื่อสาร "รหัสม่านตา" ไปยังระบบส่วนหลัง พวกเขารายงานว่า “เราเชื่อว่ารหัสม่านตาไม่ได้ถูกเขียนไว้ในที่เก็บข้อมูลถาวรบน Orb และมันถูกใส่เพียงในคำขอเดียวไปยังเบื้องหลังของ Orb,” และว่า “[ในขณะที่]การกำหนดค่านี้สามารถปรับปรุงให้ปลอดภัยยิ่งขึ้นได้ (TOB-ORB-10), สำหรับผู้โจมตีทั่วไปไม่ควรเป็นไปได้ที่จะดึงรหัสม่านตาจากทราฟฟิกเครือข่ายของ Orb; ผู้โจมตีจะต้องมีการควบคุมใบรับรองที่เชื่อถือได้อย่างหนึ่ง.

บทสรุป

รายงานทั้งหมดของการวิเคราะห์โดยละเอียดของ Trail of Bits ประกอบด้วยผลการค้นพบรายบุคคลทั้งหมดและการแก้ไขของพวกเขา พร้อมด้วยการวิเคราะห์เพิ่มเติมของข้อกล่าวหา. 

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

คุณสามารถช่วยให้โครงการ Worldcoin ปลอดภัยได้โดยการเข้าร่วม โครงการสะสมจุดบกพร่องของ Worldcoin. ข้อมูลสำคัญเพิ่มเติมที่เกี่ยวข้องกับโครงการสามารถหาได้ใน เอกสาร whitepaper ของโปรโตคอล Worldcoin.

ข้อจำกัดความรับผิดชอบ

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

ข้อมูลในบทความนี้มีอายุเกิน 12 เดือนและอาจจะล้าสมัยไปแล้ว โปรดเข้าเยี่ยมชม world.org/blogสำหรับข้อมูลล่าสุดเกี่ยวกับโครงการ