
Proyek Worldcoin didasarkan pada komitmen terhadap privasi dan keamanan. Sebagai bagian dari komitmen ini, kontributor proyek Tools for Humanity (TFH), bekerja sama dengan Worldcoin Foundation, melibatkan para ahli keamanan yang dihormati di Trail of Bits untuk melakukan audit khusus terhadap perangkat lunak orb. Selain penilaian keamanan yang biasa, Trail of Bits fokus pada evaluasi serangkaian klaim privasi dan fungsionalitas yang terkait dengan orb.
Laporan akhir tersedia di sini.
Ruang Lingkup Penilaian
Trail of Bits memulai penilaian mereka pada 14 Agustus 2023 pada versi perangkat lunak yang dibekukan 8 Juli 2023 dengan SemVer 3.0.10. Per tanggal 14 Maret 2024, versi perangkat lunak saat ini yang diterapkan ke orbs adalah 4.0.34 dengan tanggal rilis pertama pada 17 Januari 2024.
TFH menyediakan serangkaian klaim teknis yang tidak lengkap untuk menjangkau kegiatan dalam upaya memvalidasi implementasi mereka. Klaim-klaim ini menargetkan rilis perangkat lunak dari versi yang dibekukan 8 Juli 2023.
1. Untuk alur pendaftaran default opt-out, tidak ada informasi identitas pribadi (PII) kecuali kode iris yang dikumpulkan oleh orb.
- Tidak ada PII yang ditulis ke penyimpanan permanen pada orb
- Tidak ada PII kecuali kode iris yang meninggalkan orb (misalnya, diunggah)
2. Untuk alur pendaftaran opsi non-default, PII ditangani dengan aman oleh orb
- Satu-satunya PII yang dihapus pada perangkat adalah pada SSD orb dan dienkripsi secara asimetris*
- PII yang dienkripsi secara asimetris yang disimpan pada SSD orb tidak dapat didekripsi oleh Orb
3. Orb tidak menarik data sensitif apapun dari perangkat pengguna
- Satu-satunya informasi yang dikumpulkan orb dari telepon pengguna ada di QR code.**
4. Kode iris pengguna ditangani dengan aman
- Kode iris pengguna tidak ditulis ke penyimpanan tetap pada orb
- Kode iris pengguna hanya dimasukkan dalam satu permintaan ke backend orb ***
- Kode iris hanya dapat dikirim ke server yang disetujui, dan komunikasi jaringan dienkripsi end-to-end.
* Mulai dari rilis 4.0.XX, orb tidak lagi menyimpan data apa pun ke SSD terlepas dari opsi pengelolaan data.
** Dalam versi perangkat lunak orb 3.0.10 kode QR berisi UUID 128-bit user_id dan data_policy bool yang mewakili pilihan pengelolaan data pengguna, serta DataCollectionConfig struct opsional untuk penggunaan internal. Dalam versi perangkat lunak 4.0.0, kode QR telah dimodifikasi untuk menyertakan hash kriptografi yang mencakup kunci publik pengguna, yang disebut user_data_hash. Hash ini digunakan untuk memvalidasi kunci publik yang benar digunakan saat mengenkripsi data ke perangkat pengguna.
*** Dalam versi perangkat lunak 4.0.0, fitur "Custody Personal" baru akan ditambahkan di mana salinan tambahan kode iris dan biometrik dienkripsi langsung ke perangkat pengguna menggunakan kunci publik pengguna.
Klaim-klaim ini lebih lanjut disempurnakan menjadi tujuan khusus yang tersedia dalam laporan akhir yang berkoordinasi dengan Trail of Bits. Aplikasi ruang pengguna pelanggan orb dalam Rust dan sistem operasi berbasis Debian didefinisikan berada dalam cakupan penilaian ini, dan komponen-komponen berikut dikecualikan karena tidak berlaku untuk klaim asli:
- Konfigurasi bootloader
- Modifikasi driver
- Aplikasi TrustZone
- Antarmuka elemen keamanan
Daftar lengkap target dijabarkan dalam laporan akhir.
Hasil Penilaian
Tiga konsultan melakukan total enam minggu teknik ulasan. Auditor diberi akses penuh kode sumber, bersama dengan akses runtime ke dua orbs evaluasi. Sementara laporan tersebut menjelaskan potensi permukaan serangan (TOB-ORB-4 dan TOB-ORB-5, TOB-ORB-10, dan TOB-ORB-11), mereka menyimpulkan bahwa “analisis kami tidak menemukan kerentanan dalam kode Orb yang dapat dieksploitasi secara langsung terkait dengan Tujuan Proyek yang dijelaskan.” Lebih jauh lagi, sementara tinjauan Trail of Bits mengidentifikasi beberapa kekhawatiran yang tidak dikonfirmasi yang secara teoritis dapat mempengaruhi tujuan proyek, dan kode yang terpengaruh telah diperbarui sejak itu, audit tidak mengidentifikasi instance di mana tujuan proyek akan langsung dikompromikan, baik melalui kerentanan yang diketahui atau selama pelaksanaan normal.
Pengaudit Trail of Bits memberikan rekomendasi ahli untuk memperkuat konfigurasi kernel tambahan serta alat dan teknik untuk runtime software yang tersedia secara lebih rinci dalam laporan akhir.
Klaim 1: Alur pendaftaran default opt-out
Penilaian menyimpulkan bahwa konfigurasi versi perangkat lunak yang diaudit tidak menyimpan, maupun mengekspor, PII selain "kode iris" dari orb. Trail of Bits merekomendasikan perubahan penguatan konfigurasi tambahan untuk meningkatkan "pertahanan dalam kedalaman" orb guna memastikan bahwa perubahan konfigurasi atau kode di masa mendatang tidak menyebabkan kebocoran yang tidak disengaja (temuan TOB-ORB-1).
Klaim 2: Alur pendaftaran opt-in non-default
Dalam kasus di mana pengguna memilih untuk ikut serta dalam penyimpanan data, orb mengenkripsi PII secara asimetris menggunakan pustaka libsodium dalam konstruksi satu arah* yang disebut "kotak tersegel." Dalam laporan akhir, auditor menyatakan “[k]ami tidak mengidentifikasi adanya tempat di mana PII disimpan di luar SSD Orb dan/atau tidak dienkripsi” dan menyimpulkan bahwa “setelah PII dienkripsi, mekanisme yang dijelaskan tidak memungkinkan Orb untuk mendekripsi itu.”
*Kode terbaru tidak menyimpan data sama sekali, terlepas dari opsi penyimpanan data, tetapi sebaliknya menggunakan kembali kode enkripsi ini untuk paket Penyimpanan Pribadi menggunakan kunci publik pengguna.
Klaim 3: Orb tidak mengambil data tambahan dari perangkat pengguna
Ketika pengguna pertama kali berinteraksi dengan orb untuk melakukan pendaftaran, kode QR ditampilkan di perangkat pengguna yang diproses oleh orb. Dalam kode yang relevan, auditor tidak mengidentifikasi data atau informasi tambahan yang dikumpulkan dari perangkat pengguna oleh orb. Namun, penilaian tersebut menyoroti potensi masalah keamanan memori (temuan TOB-ORB-4 dalam laporan akhir) dengan perpustakaan yang digunakan untuk memindai kode QR (ZBar). Sebagai tanggapan, perpustakaan yang rentan diganti dengan perpustakaan pemindai barcode berbasis Rust murni, rxing.
Klaim 4: Kode iris pengguna ditangani dengan aman
Auditor mencoba memvalidasi klaim yang terkait dengan bagaimana "kode iris" ditangani dan dikomunikasikan ke backend. Mereka melaporkan bahwa “kami percaya bahwa kode iris tidak disimpan secara permanen pada Orb dan bahwa itu hanya termasuk dalam satu permintaan ke back-end Orb,” dan bahwa “[w]alaupun konfigurasi ini dapat ditingkatkan untuk membuatnya lebih aman (TOB-ORB-10), harusnya tidak mungkin bagi penyerang tipikal untuk mengekstrak kode iris dari lalu lintas jaringan Orb; penyerang harus mengendalikan salah satu sertifikat tepercaya.”
Kesimpulan
Laporan lengkap dari analisis mendalam Trail of Bits berisi semua temuan individu dan perbaikannya, bersama dengan analisis tambahan dari klaim tersebut.
Ini bukan yang pertama, dan juga tidak akan menjadi yang terakhir, evaluasi keamanan oleh pihak ketiga dari orb, dan laporan tambahan akan dibagikan dengan komunitas saat tersedia.
Anda dapat membantu menjaga keamanan proyek Worldcoin dengan berpartisipasi dalam program bug bounty Worldcoin. Informasi penting tambahan terkait proyek ini tersedia di whitepaper protokol Worldcoin.
Disclaimer
Konten di atas hanya menyatakan informasi untuk tanggal yang tertera. Selain itu, konten ini mengandung risiko, ketidakpastian, dan asumsi, sehingga bisa jadi tidak benar dan dapat berubah tanpa pemberitahuan. Disclaimer lengkap dapat ditemukan di Ketentuan Penggunaan, dan Informasi Penting Pengguna dapat ditemukan di halaman Risiko kami.