1. Pengenalan & Gambaran Keseluruhan
Web3, yang dibina di atas teknologi blockchain terdesentralisasi, telah menyaksikan pertumbuhan pesat dalam bidang seperti DeFi, NFT, dan permainan, dengan nilai terkunci keseluruhan berbilion-bilion dolar. Komponen asas ekosistem ini ialah pengesahan Web3, protokol cabaran-respons di mana pengguna dikenal pasti oleh kunci awam mereka (alamat dompet). Aplikasi menghantar mesej ke dompet kripto pengguna (cth., MetaMask), pengguna menandatanganinya dengan kunci persendirian mereka, dan aplikasi mengesahkan tandatangan untuk memberikan akses.
Walaupun peranannya yang kritikal sebagai pintu masuk ke aplikasi dan aset Web3, keselamatan proses pengesahan ini sebahagian besarnya telah diabaikan. Walaupun penyelidikan terdahulu memberi tumpuan kepada pepijat kontrak pintar dan eksploitasi DeFi, kertas kerja ini mengenal pasti kerentanan sistematik dalam lapisan pengesahan itu sendiri, yang dinamakan "serangan mesej buta."
Statistik Utama Sekilas Pandang
- 75.8% daripada penyebaran pengesahan Web3 yang diuji adalah rentan.
- 22 daripada 29 aplikasi dunia sebenar berisiko.
- 80% kadar kejayaan pengesanan serangan dengan Web3AuthGuard.
- Diberikan dua ID CVE untuk kerentanan yang ditemui.
2. Serangan Mesej Buta
2.1 Model Serangan & Kerentanan
Kerentanan teras terletak pada ketidakupayaan pengguna untuk mengesahkan sumber dan niat sebenar permintaan tandatangan. Dalam aliran pengesahan Web3 biasa, popup dompet memaparkan mesej (selalunya nonce rawak) untuk ditandatangani oleh pengguna. Serangan ini mengeksploitasi fakta bahawa mesej ini legap dan asal usulnya boleh dipalsukan.
Skenario Serangan: Penyerang mencipta laman web berniat jahat yang meniru halaman log masuk aplikasi Web3 yang sah. Apabila pengguna menyambungkan dompet mereka, laman berniat jahat itu meneruskan permintaan pengesahan (mesej) dari aplikasi sah sasaran ke dompet pengguna. Pengguna, melihat permintaan tandatangan generik dalam antara muka dompet mereka, menandatanganinya secara membuta tuli. Tandatangan itu kemudian dihantar kembali ke aplikasi sah melalui penyerang, memberikan penyerang akses tanpa kebenaran ke akaun pengguna pada aplikasi tersebut.
2.2 Mekanisme Teknikal
Serangan ini adalah sejenis serangan Man-in-the-Middle (MitM) pada lapisan aplikasi, tetapi ia difasilitasi oleh kecacatan reka bentuk dalam protokol interaksi dompet-aplikasi. API dompet (cth., eth_requestAccounts, personal_sign) tidak menguatkuasakan atau memaparkan dengan jelas metadata kontekstual tentang domain yang meminta untuk semua jenis mesej, mewujudkan "titik buta" untuk pengguna.
3. Pengesanan & Mitigasi
3.1 Alat Web3AuthChecker
Para penulis membangunkan Web3AuthChecker, alat analisis dinamik yang berinteraksi secara automatik dengan API berkaitan pengesahan aplikasi Web3. Ia menyiasat kerentanan dengan cuba mensimulasikan vektor serangan mesej buta—memintas dan menyampaikan semula permintaan tandatangan—dan memeriksa sama ada pengurusan sesi aplikasi boleh dikompromi oleh tandatangan yang diperoleh dari asal yang berbeza.
3.2 Web3AuthGuard untuk MetaMask
Sebagai pertahanan di sisi pelanggan, para penulis melaksanakan Web3AuthGuard, prototaip sambungan pelayar yang berintegrasi dengan dompet MetaMask sumber terbuka. Fungsinya adalah untuk menganalisis konteks permintaan tandatangan. Ia membandingkan domain yang memulakan permintaan dengan domain penerima yang dimaksudkan yang tertanam dalam atau dikaitkan dengan mesej. Jika ketidakpadanan atau corak penyampaian yang mencurigakan dikesan, ia akan membangkitkan amaran kepada pengguna sebelum mereka menandatangani.
4. Penilaian & Keputusan
4.1 Persediaan Eksperimen
Kajian ini menilai 29 aplikasi Web3 popular merentas kategori termasuk platform DeFi (cth., Uniswap, Aave), pasaran NFT (cth., OpenSea), dan permainan Web3. Web3AuthChecker telah digunakan untuk menguji titik akhir pengesahan mereka secara automatik.
4.2 Penemuan Utama & Statistik
Keputusan adalah membimbangkan: 22 daripada 29 (75.8%) aplikasi adalah rentan terhadap serangan mesej buta. Kelaziman tinggi ini menunjukkan kerentanan itu adalah sistematik dan bukan kes pinggir. Penilaian seterusnya terhadap Web3AuthGuard menunjukkan ia boleh berjaya mencetuskan amaran dalam 80% daripada aliran pengesahan rentan yang diuji, membuktikan kebolehlaksanaan perlindungan pengguna masa nyata.
Penerangan Carta (Bayangan): Carta bar akan menunjukkan "Aplikasi Rentan (22)" jauh lebih tinggi daripada "Aplikasi Selamat (7)". Carta kedua akan menunjukkan bar "Amaran Berjaya" Web3AuthGuard meliputi 80% daripada bar "Aliran Rentan Diuji".
5. Selaman Mendalam Teknikal
5.1 Asas Matematik
Pengesahan Web3 bergantung pada tandatangan digital menggunakan Kriptografi Lengkung Eliptik, biasanya lengkung secp256k1 yang digunakan oleh Ethereum. Pengesahan teras untuk tandatangan $(r, s)$ pada mesej $m$ untuk kunci awam $Q$ (diperoleh dari alamat) adalah:
$ \text{Verify}(m, (r, s), Q) = \text{true} \quad \text{if} \quad s^{-1} \cdot (eG + rQ)_x \equiv r \ (\text{mod}\ n) $
di mana $e$ ialah cincangan mesej $m$, $G$ ialah titik penjana, dan $n$ ialah tertib lengkung. Serangan ini tidak memecahkan kriptografi ini. Sebaliknya, ia memecahkan andaian protokol bahawa $m$ terikat kepada asal/konteks tertentu. Kegagalan keselamatan adalah $ \text{Konteks}(m) \neq \text{KonteksPersepsi}_{pengguna} $.
5.2 Contoh Kerangka Analisis
Kajian Kes: Menganalisis Log Masuk Papan Pemuka DeFi.
- Langkah 1 - Peninjauan: Gunakan Web3AuthChecker untuk memanggil titik akhir API log masuk papan pemuka dan menangkap mesej cabaran $C_d$.
- Langkah 2 - Simulasi Penyampaian: Benamkan $C_d$ ke dalam permintaan tandatangan yang dijana oleh laman berniat jahat tiruan $M$.
- Langkah 3 - Penyerahan Tandatangan: Serahkan tandatangan $\sigma$, yang dijana dengan menandatangani $C_d$ dalam konteks $M$, kembali ke titik akhir pengesahan papan pemuka asal.
- Langkah 4 - Pengesahan Kerentanan: Jika papan pemuka menerima $\sigma$ dan menetapkan sesi, serangan mesej buta disahkan. Kecacatannya ialah papan pemuka hanya mengesahkan $\text{Verify}(C_d, \sigma, Q)$, bukan $\text{Asal}(\sigma) == \text{PapanPemuka}$.
6. Perspektif Penganalisis
Pandangan Teras: Kertas kerja Yan et al. memberikan pukulan hebat kepada sikap selesa industri Web3 mengenai keselamatan UX. Ia mendedahkan bahawa mekanisme yang dipuji untuk kedaulatan pengguna—penandatanganan kriptografi—mempunyai kecacatan UX yang membawa maut menjadikannya kurang selamat daripada kata laluan tradisional dalam senario penipuan. Pengguna boleh mengesan medan kata laluan palsu; mereka tidak dapat membezakan permintaan tandatangan yang dipalsukan. Ini bukan pepijat kontrak pintar; ia adalah kegagalan reka bentuk asas di peringkat protokol dalam jabat tangan dompet-aplikasi, mengingatkan kekurangan TLS dan dasar asal yang sama pada web awal.
Aliran Logik: Logik penyelidikan ini sempurna. Mulakan dengan hipotesis (mesej pengesahan boleh disampaikan semula dengan berniat jahat), bina alat (Web3AuthChecker) untuk menguji pada skala besar, temui kelaziman yang mengejutkan (75.8%), kemudian cipta langkah balas praktikal (Web3AuthGuard) untuk membuktikan kebolehmilikasian. Pemberian CVE memformalkan ancaman, mengalihkannya dari konsep akademik kepada kerentanan yang mesti ditampal.
Kekuatan & Kelemahan: Kekuatannya terletak pada vektor serangan yang sangat mudah, namun sebelum ini diabaikan, dan impak dunia sebenarnya yang besar. Pertahanan prototaip ini pragmatik. Kelemahannya, seperti kebanyakan penyelidikan keselamatan sistem, ialah Web3AuthGuard hanyalah pelekat. Ia menambah pemeriksaan di mana protokol itu sendiri sepatutnya menguatkuasakan keselamatan. Pembaikan jangka panjang memerlukan pembekal dompet (seperti MetaMask) dan badan piawaian (seperti EIP-712) untuk mewajibkan pengikatan kriptografi konteks domain kepada mesej yang boleh ditandatangani. Bergantung pada pengguna untuk mematuhi amaran telah terbukti gagal, seperti yang dibuktikan oleh penyelidikan penipuan selama beberapa dekad.
Pandangan Boleh Tindak: Untuk pembangun: Audit segera aliran pengesahan anda. Jangan hanya sahkan tandatangan; sahkan asal tandatangan sepadan dengan domain anda melalui pengikatan sesi. Untuk pembina dompet: Ini adalah kecemasan lima penggera. Laksanakan penandatanganan data berstruktur EIP-712 dengan pemisahan domain wajib dan jadikannya lalai untuk semua permintaan pengesahan. Paparkan permintaan personal_sign teks biasa yang tidak dipercayai dengan UI yang jelas, seperti bendera merah. Untuk badan piawaian: Lajukan protokol yang menjadikan serangan penyampaian mustahil secara kriptografi, bukan hanya diberi amaran secara visual. Masa untuk cadangan sopan sudah tamat; ekosistem DeFi $52B memerlukan primitif keselamatan yang kukuh.
7. Aplikasi & Hala Tuju Masa Depan
Implikasinya melangkaui log masuk. Mana-mana permintaan tandatangan Web3—untuk transaksi, kelulusan token, undian DAO—berpotensi rentan terhadap serangan penyampaian buta yang serupa. Penyelidikan dan pembangunan masa depan mesti memberi tumpuan kepada:
- Penyelesaian Peringkat Protokol: Penerimaan dan penguatkuasaan meluas EIP-712 dan penggantinya, yang membolehkan mesej ditaip dan distrukturkan dengan parameter domain yang boleh disahkan, menjadikannya tidak boleh disampaikan semula.
- Integrasi Dompet Perkakasan: Memperluaskan pengesahan konteks ke skrin dompet perkakasan, yang kini juga memaparkan data mesej yang terhad.
- Pengesahan Formal Aliran Pengesahan: Menggunakan kaedah formal, serupa dengan yang digunakan untuk kontrak pintar (cth., dalam rangka kerja KEVM), untuk mengesahkan sifat keselamatan protokol pengesahan luar rantai itu sendiri.
- Pengesan Pembelajaran Mesin: Membina atas alat seperti Web3AuthChecker untuk mencipta sistem pemantauan berterusan untuk kedai dApp atau juruaudit keselamatan yang secara automatik menandakan pelaksanaan pengesahan yang rentan.
- Penumpuan Identiti Terdesentralisasi (DID): Kerja ini menekankan keperluan untuk piawaian pengesahan DID yang lebih kukuh (seperti W3C Verifiable Credentials) yang direka dengan vektor serangan ini dalam fikiran dari awal.
8. Rujukan
- Yan, K., Zhang, X., & Diao, W. (2024). Stealing Trust: Unraveling Blind Message Attacks in Web3 Authentication. Proceedings of the 2024 ACM SIGSAC Conference on Computer and Communications Security (CCS’24).
- Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.
- MetaMask. https://metamask.io
- EIP-712: Ethereum Typed Structured Data Hashing and Signing. https://eips.ethereum.org/EIPS/eip-712
- Atzei, N., Bartoletti, M., & Cimoli, T. (2017). A survey of attacks on Ethereum smart contracts (SoK). Principles of Security and Trust.
- Zhuang, Y., et al. (2020). Tools and benchmarks for automated log parsing. IEEE International Conference on Software Engineering (ICSE). (Contoh metodologi penilaian alat yang ketat).
- DeFi Llama. Total Value Locked Statistics. https://defillama.com