1. Utangulizi na Muhtasari
Web3, iliyojengwa juu ya teknolojia ya blockchain isiyo na kituo kimoja, imeona ukuaji mkubwa katika maeneo kama DeFi, NFT, na michezo, na thamani ya mabilioni ya dola imefungwa. Sehemu ya msingi ya mfumo huu ni uthibitishaji wa Web3, itifaki ya changamoto-jibu ambapo watumiaji hutambuliwa kwa ufunguo wao wa umma (anwani ya pochi). Programu hutuma ujumbe kwa pochi ya crypto ya mtumiaji (k.m., MetaMask), mtumiaji anaitia sahihi kwa ufunguo wake wa siri, na programu inathibitisha sahihi hiyo ili kukubali upatikanaji.
Licha ya jukumu lake muhimu kama lango la programu na mali za Web3, usalama wa mchakato huu wa uthibitishaji umepuuzwa kwa kiasi kikubwa. Wakati utafiti uliopita ulilenga makosa ya mikataba mahiri na unyanyasaji wa DeFi, karatasi hii inabainisha udhaifu wa kimfumo katika safu ya uthibitishaji yenyewe, ambao unaitwa "mashambulizi ya ujumbe wa kipofu."
Takwimu Muhimu Kwa Mtazamo
- 75.8% ya usanidi wa uthibitishaji wa Web3 uliojaribiwa ulikuwa na udhaifu.
- 22 kati ya 29 programu halisi zilikuwa hatarini.
- 80% kiwango cha mafanikio ya kugundua mashambulizi kwa Web3AuthGuard.
- Kumekabidhiwa Vitambulisho viwili vya CVE kwa udhaifu uliogunduliwa.
2. Mashambulizi ya Ujumbe wa Kipofu
2.1 Mtindo wa Mashambulizi na Udhaifu
Udhaifu wa msingi uko katika kutoweza kwa mtumiaji kuthibitisha chanzo halisi na nia ya ombi la kutia sahihi. Katika mtiririko wa kawaida wa uthibitishaji wa Web3, dirisha la pochi linaonyesha ujumbe (mara nyingi nambari ya nasibu) kwa mtumiaji kutiia sahihi. Mashambulizi yanatumia ukweli kwamba ujumbe huu haueleweki na chanzo chake kinaweza kubadilishwa.
Hali ya Mashambulizi: Mshambuliaji anaunda tovuti ya kudanganya inayofanana na ukurasa wa kuingia wa programu halali ya Web3. Mtumiaji anapounganisha pochi yake, tovuti hiyo ya kudanganya inapeleka ombi la uthibitishaji (ujumbe) kutoka kwa programu halali lengwa hadi kwenye pochi ya mtumiaji. Mtumiaji, akiwa anaona ombi la kawaida la kutia sahihi kwenye kiolesura chake cha pochi, anaitia sahihi bila kufahamu. Sahihi hiyo kisha hutumwa kurudi kwenye programu halali kupitia mshambuliaji, na kumpa mshambuliaji upatikanaji usioidhinishwa kwa akaunti ya mtumiaji kwenye programu hiyo.
2.2 Utaratibu wa Kiufundi
Mashambulizi haya ni aina ya mashambulizi ya Mtu-Katikati (MitM) katika safu ya programu, lakini yanarahisishwa na kasoro za muundo katika itifaki ya mwingiliano kati ya pochi na programu. API ya pochi (k.m., eth_requestAccounts, personal_sign) haitumii au haionyeshi wazi metadata ya muktadha kuhusu kikoa kinachoomba kwa aina zote za ujumbe, na hivyo kuunda "sehemu ya kipofu" kwa mtumiaji.
3. Ugunduzi na Kuzuia
3.1 Kifaa cha Web3AuthChecker
Waandishi walitengeneza Web3AuthChecker, kifaa cha uchambuzi cha nguvu kinachoshirikiana kiotomatiki na API za programu ya Web3 zinazohusiana na uthibitishaji. Kinachunguza udhaifu kwa kujaribu kuiga vekta ya mashambulizi ya ujumbe wa kipofu—kukamata na kupitisha maombi ya kutia sahihi—na kuangalia ikiwa usimamizi wa kipindi cha programu unaweza kudhoofishwa na sahihi iliyopatikana kutoka kwa chanzo tofauti.
3.2 Web3AuthGuard kwa MetaMask
Kama kinga upande wa mteja, waandishi walitekeleza Web3AuthGuard, kielelezo cha kiongeza cha kivinjari kinachounganishwa na pochi ya MetaMask ya wazi. Kazi yake ni kuchambua muktadha wa maombi ya kutia sahihi. Inalinganisha kikoa kinachoanzisha ombi na kikoa lengwa kilichowekwa ndani au kinachohusishwa na ujumbe. Ikiwa kutolingana kwa mfumo wa kupitisha au muundo unaoshukuwa kunagunduliwa, inatoa onyo kwa mtumiaji kabla ya kutia sahihi.
4. Tathmini na Matokeo
4.1 Usanidi wa Majaribio
Utafiti ulitathmini programu 29 maarufu za Web3 katika makundi yakiwemo mfumo wa DeFi (k.m., Uniswap, Aave), masoko ya NFT (k.m., OpenSea), na michezo ya Web3. Web3AuthChecker ilitumika kujaribu vituo vya mwisho vya uthibitishaji kiotomatiki.
4.2 Matokeo Muhimu na Takwimu
Matokeo yalikuwa ya kutisha: 22 kati ya 29 (75.8%) ya programu zilikuwa na udhaifu dhidi ya mashambulizi ya ujumbe wa kipofu. Uwepo huu mkubwa unaonyesha udhaifu huu ni wa kimfumo na sio tukio la kipekee. Tathmini inayofuata ya Web3AuthGuard ilionyesha inaweza kuanzisha onyo kwa mafanikio katika 80% ya mtiririko wa uthibitishaji wenye udhaifu uliojaribiwa, na kuonyesha uwezekano wa kulinda mtumiaji kwa wakati halisi.
Maelezo ya Chati (Ya Kuwaziwa): Chati ya mihimili ingeonyesha "Programu Zenye Udhaifu (22)" ikiwa mrefu zaidi kuliko "Programu Salama (7)". Chati ya pili ingeonyesha mhimili wa "Onyo la Mafanikio" wa Web3AuthGuard ukiifunika 80% ya mhimili wa "Mtiririko Wenye Udhaifu Uliojaribiwa".
5. Uchunguzi wa Kina wa Kiufundi
5.1 Msingi wa Hisabati
Uthibitishaji wa Web3 unategemea sahihi za dijitali kwa kutumia Usimbuaji wa Mkunjo wa Duaradufu, kwa kawaida mkunjo wa secp256k1 unaotumika na Ethereum. Uthibitishaji wa msingi wa sahihi $(r, s)$ kwenye ujumbe $m$ kwa ufunguo wa umma $Q$ (uliotokana na anwani) ni:
$ \text{Thibitisha}(m, (r, s), Q) = \text{kweli} \quad \text{kama} \quad s^{-1} \cdot (eG + rQ)_x \equiv r \ (\text{mod}\ n) $
ambapo $e$ ni hash ya ujumbe $m$, $G$ ni sehemu ya kizazi, na $n$ ni mpangilio wa mkunjo. Mashambulizi haya hayavunji usimbuaji huu. Badala yake, yanavunja dhana ya itifaki kwamba $m$ imefungwa na chanzo/muktadha maalum. Kosa la usalama ni $ \text{Muktadha}(m) \neq \text{MuktadhaUnaoonwa}_{mtumiaji} $.
5.2 Mfano wa Mfumo wa Uchambuzi
Uchunguzi wa Kesi: Kuchambua Kuingia kwa Dashibodi ya DeFi.
- Hatua ya 1 - Upelelezi: Tumia Web3AuthChecker kupiga simu kwenye kituo cha mwisho cha API ya kuingia cha dashibodi na ukamata ujumbe wa changamoto $C_d$.
- Hatua ya 2 - Uigaji wa Kupitisha: Weka $C_d$ ndani ya ombi la kutia sahihi linalotokana na tovuti ya kudanganya $M$.
- Hatua ya 3 - Kuwasilisha Sahihi: Wasilisha sahihi $\sigma$, iliyotengenezwa kwa kutia sahihi $C_d$ katika muktadha wa $M$, kurudi kwenye kituo cha mwisho cha uthibitishaji cha dashibodi asili.
- Hatua ya 4 - Uthibitishaji wa Udhaifu: Ikiwa dashibodi inakubali $\sigma$ na kuanzisha kipindi, mashambulizi ya ujumbe wa kipofu yamethibitishwa. Kasoro ni kwamba dashibodi inathibitisha tu $\text{Thibitisha}(C_d, \sigma, Q)$, sio $\text{Chanzo}(\sigma) == \text{Dashibodi}$.
6. Mtazamo wa Mchambuzi
Ufahamu wa Msingi: Karatasi ya Yan et al. inatoa pigo kali kwa utulivu wa tasnia ya Web3 kuhusu usalama wa UX. Inafichua kwamba utaratibu huo unaosifiwa kwa usimamizi wa mtumiaji—kutia sahihi kwa usimbuaji—una kasoro mbaya ya UX inayofanya iwe chini ya usalama kuliko nenosiri la jadi katika hali ya udanganyifu. Mtumiaji anaweza kugundua uga wa nenosiri bandia; hawezi kutambua ombi la kutia sahihi lililobadilishwa. Hili sio kosa la mkataba mahiri; ni kushindwa kwa msingi wa muundo katika kiwango cha itifaki katika mkono wa pochi-programu, ikikumbusha ukosefu wa TLS na sera ya chanzo kimoja katika wavuti za mapema.
Mtiririko wa Kimantiki: Mantiki ya utafiti ni kamili. Anza na dhana (ujumbe wa uthibitishaji unaweza kupitishwa kwa udanganyifu), jenga kifaa (Web3AuthChecker) ili kujaribu kwa kiwango kikubwa, gundua uwepo mkubwa (75.8%), kisha unda hatua ya kuzuia ya vitendo (Web3AuthGuard) ili kuthibitisha uwezekano wa kuzuia. Kumkabidhi CVEs kunasawazisha tishio, na kuilisogeza kutoka dhana ya kitaaluma hadi udhaifu unaohitaji kurekebishwa.
Nguvu na Kasoro: Nguvu iko katika vekta ya mashambulizi rahisi sana, lakini iliyopuuzwa hapo awali, na athari yake kubwa katika ulimwengu halisi. Kinga ya kielelezo ni ya vitendo. Kasoro, kama ilivyo kwa utafiti mwingi wa usalama wa mifumo, ni kwamba Web3AuthGuard ni plasta. Inaongeza ukaguzi ambapo itifaki yenyewe inapaswa kutekeleza usalama. Suluhisho la muda mrefu linahitaji watoaji wa pochi (kama MetaMask) na vyombo vya kawaida (kama EIP-712) kutekeleza kufunga kwa usimbuaji wa muktadha wa kikoa kwenye ujumbe unaoweza kutiwa sahihi. Kutegemea watumiaji kuzingatia onyo kumeshindikana, kama ilivyothibitishwa na utafiti wa miaka mingi ya udanganyifu.
Ufahamu Unaoweza Kutekelezwa: Kwa wasanidi programu: Chambua mtiririko wako wa uthibitishaji mara moja. Usithibitishe sahihi tu; thibitisha chanzo cha sahihi kinalingana na kikoa chako kupitia kufunga kipindi. Kwa waundaji wa pochi: Hii ni janga kubwa. Tekeleza kutia sahihi ya data iliyopangwa ya EIP-712 na utenganishaji wa lazima wa kikoa na uifanye iwe chaguo-msingi kwa maombi yote ya uthibitishaji. Wasilisha maombi yasiyo ya kuaminika, ya maandishi wazi ya personal_sign kwa kiolesura cha bendera nyekundu. Kwa vyombo vya kawaida: Harakisha itifaki zinazofanya mashambulizi ya kupitisha yasiwezekane kwa usimbuaji, sio tu kuonywa kwa kuonekana. Wakati wa mapendekezo ya heshima umekwisha; mfumo wa $52B wa DeFi unahitaji misingi thabiti ya usalama.
7. Matumizi ya Baadaye na Mwelekeo
Matokeo yanaenea zaidi ya kuingia. Ombari lolote la kutia sahihi la Web3—kwa shughuli, idhini za token, kura za DAO—linaweza kuwa na udhaifu kwa mashambulizi sawa ya kupitisha kwa kipofu. Utafiti na maendeleo ya baadaye lazima yalenge:
- Suluhisho katika Kiwango cha Itifaki: Uchukuzi wa kina na utekelezaji wa EIP-712 na wafuasi wake, ambao huruhusu ujumbe kuandikwa na kupangwa kwa vigezo vya kikoa vinavyoweza kuthibitishwa, na kuyafanya yasiweze kupitishwa.
- Unganishaji wa Pochi ya Vifaa: Kupanua uthibitishaji wa muktadha hadi skrini za pochi za vifaa, ambazo kwa sasa pia zinaonyesha data ndogo ya ujumbe.
- Uthibitishaji Rasmi wa Mtiririko wa Uthibitishaji: Kutumia mbinu rasmi, zinazofanana na zile zinazotumika kwa mikataba mahiri (k.m., katika mfumo wa KEVM), ili kuthibitisha sifa za usalama za itifaki ya uthibitishaji nje ya mnyororo yenyewe.
- Vigunduzi vya Kujifunza kwa Mashine: Kujenga juu ya vifaa kama Web3AuthChecker ili kuunda mifumo ya ufuatiliaji endelevu kwa maduka ya dApp au wakaguzi wa usalama ambao huonyesha otomatiki usanidi wa uthibitishaji wenye udhaifu.
- Muunganiko wa Utambulisho usio na Kituo Kimoja (DID): Kazi hii inasisitiza hitaji la viwango vya uthibitishaji vya DID thabiti zaidi (kama W3C Verifiable Credentials) ambavyo vimeundwa kwa kuzingatia vekta hizi za mashambulizi tangu mwanzo.
8. Marejeo
- 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). (Mfano wa mbinu ya tathmini ya kina ya kifaa).
- DeFi Llama. Total Value Locked Statistics. https://defillama.com