Teruskan Judul Asli ‘大白话讲解Web3签名钓鱼底层逻辑“授权钓鱼、Permit与Permit2的区别’
“Mengapa saya kehilangan uang hanya dengan menandatangani nama saya??” “Phishing tanda tangan” saat ini menjadi metode phishing favorit bagi para peretas di Web3. Baru-baru ini, saya telah melihat banyak ahli seperti Cosine dan berbagai dompet serta perusahaan keamanan terus mempromosikan dan mengedukasi tentang pengetahuan tanda tangan phishing. Namun, masih banyak orang yang menjadi korban phishing setiap hari.
Salah satu alasan yang diyakini Spinach adalah bahwa kebanyakan orang tidak memahami logika mendasar pertukaran dompet, dan bagi mereka yang tidak menguasai teknologi, kurva pembelajarannya terlalu tinggi. Jadi, Spinach memutuskan untuk membuat versi yang diilustrasikan untuk mendidik orang tentang logika mendasar phishing tanda tangan, dan mencoba membuatnya bisa dimengerti bahkan untuk individu yang tidak menguasai teknologi.
Pertama, kita perlu memahami bahwa hanya ada dua jenis operasi saat menggunakan dompet: “penandatanganan” dan “pertukaran.” Pemahaman yang paling sederhana dan langsung adalah: penandatanganan terjadi di luar blockchain (off-chain), dan tidak memerlukan pengeluaran biaya Gas; pertukaran terjadi di blockchain (on-chain), dan memerlukan pengeluaran biaya Gas.
Scenario umum untuk melakukan tanda tangan adalah untuk memverifikasi bahwa Anda adalah Anda, seperti saat masuk ke dalam dompet. Misalnya, jika Anda ingin menukar token di Uniswap, Anda perlu terlebih dahulu menghubungkan dompet Anda. Pada titik ini, Anda perlu menandatangani pesan untuk memberitahu situs web “Saya adalah pemilik dompet ini,” dan kemudian Anda dapat menggunakan Uniswap. Langkah ini tidak menyebabkan perubahan data atau status pada blockchain, sehingga tidak memerlukan pengeluaran uang.
Mengenai pertukaran, ketika Anda benar-benar ingin menukar token di Uniswap, Anda perlu mengeluarkan sejumlah uang untuk memberi tahu kontrak cerdas Uniswap: "Saya ingin menukar 100 USDT dengan koin Spinach, dan saya memberi Anda izin untuk memindahkan 100 USDT saya." Langkah ini disebut persetujuan. Kemudian, Anda perlu mengeluarkan sejumlah uang lainnya untuk memberi tahu kontrak cerdas Uniswap: "Saya siap menukar 100 USDT dengan koin Spinach sekarang, Anda dapat melanjutkan operasinya sekarang." Setelah itu, Anda telah menyelesaikan operasi pertukaran 100 USDT dengan koin Spinach.
Setelah memahami perbedaan antara tanda tangan dan pertukaran dengan sederhana, mari kita memperkenalkan prinsip phishing. Phishing umumnya melibatkan tiga metode berbeda: Phishing Otorisasi, Phishing Tanda Tangan Ijin, dan Phishing Tanda Tangan Ijin2. Ketiga metode ini sangat umum dalam phishing.
Mari kita mulai dengan Phishing Otorisasi, yang merupakan salah satu teknik phishing klasik dalam Web3. Seperti namanya, itu mengeksploitasi mekanisme otorisasi (menyetujui). Seperti yang terlihat dalam contoh Uniswap, otorisasi memungkinkan smart contract untuk “mengizinkan Anda untuk memindahkan jumlah xxx Token saya.” Seorang hacker dapat membuat situs web phishing palsu, menyamar sebagai proyek NFT dengan frontend yang menarik. Di tengah situs web, ada tombol besar yang indah yang mengatakan “Klaim Airdrop Anda.” Ketika diklik, dompet akan muncul dengan layar yang meminta Anda mengotorisasi Token Anda ke alamat hacker. Jika Anda mengonfirmasi ini, selamat, hacker telah berhasil menyelesaikan KPI.
Namun, Phishing Otorisasi memiliki masalah: karena memerlukan biaya Gas, banyak orang berhati-hati ketika harus mengeluarkan uang. Setelah mengklik situs web yang mencurigakan, orang seringkali dengan cepat menyadari bahwa ada yang salah, sehingga relatif mudah untuk mencegahnya.
Sekarang mari kita beralih ke fokus hari ini: Phishing Tanda Tangan Permit dan Permit2, yang menjadi pusat perhatian dalam bidang keamanan aset Web3. Mengapa sulit untuk melindungi diri dari mereka? Karena setiap kali Anda ingin menggunakan Dapp, Anda harus masuk ke dompet Anda. Banyak orang telah mengembangkan inersia dalam pemikiran mereka: “Operasi ini aman.” Ditambah lagi, itu tidak memerlukan pengeluaran uang, dan kebanyakan orang tidak memahami implikasi di balik setiap tanda tangan.
Mari kita pertama-tama melihat mekanisme Izin. Izin adalah fitur perluasan untuk otorisasi di bawah standar ERC-20. Sebagai contoh, USDT, yang biasa kita gunakan, adalah token ERC-20. Secara sederhana, Izin memungkinkan Anda untuk menandatangani dan menyetujui orang lain untuk memindahkan Token Anda. Kita tahu bahwa otorisasi (Setujui) adalah ketika Anda mengeluarkan uang memberi tahu smart contract: "Anda dapat memindahkan xxx jumlah Token saya." Jadi, Izin seperti menandatangani "catatan" kepada seseorang, menyatakan: "Saya mengizinkan seseorang untuk memindahkan xxx jumlah Token saya." Kemudian, orang ini menyampaikan "catatan" ini ke smart contract dan membayar biaya Gas, memberi tahu smart contract: "Dia mengizinkan saya untuk memindahkan xxx jumlah Token miliknya." Kemudian Token Anda dapat dipindahkan oleh orang lain. Dalam proses ini, Anda hanya menandatangani sebuah nama, tetapi di balik itu, itu berarti Anda mengizinkan orang lain untuk memanggil otorisasi (Setujui) dan mentransfer Token Anda. Seorang peretas dapat membuat situs web phishing, mengganti tombol login dompet dengan tombol phishing Izin, sehingga mudah untuk mencuri aset Anda.
Jadi apa itu Permit2? Permit2 sebenarnya bukan merupakan fungsi dari ERC-20, tetapi merupakan fungsi yang diluncurkan oleh Uniswap untuk kenyamanan pengguna. Contoh sebelumnya mengatakan bahwa jika Anda ingin menukar USDT dengan koin bayam di Uniswap, Anda perlu memberi otorisasi (Approve) sekali dan kemudian menukarnya, yang memerlukan dua biaya gas, jadi Uniswap menemukan cara: 'Anda memberi saya semua kuota sekaligus, dan Anda menandatangani nama Anda setiap kali Anda menebus dan saya akan menanganinya untuk Anda.' Fungsi ini membantu pengguna Uniswap Anda hanya perlu membayar biaya Gas sekali saat menggunakannya, dan langkah ini adalah penandatanganan, sehingga biaya Gas sebenarnya tidak dibayarkan oleh Anda, tetapi dibayarkan oleh kontrak Permit2, tetapi akan dikurangkan dari Token yang akhirnya Anda tebus.
Namun, syarat untuk phishing Permit2 adalah Anda harus sebelumnya menggunakan Uniswap dan memberikan izin tanpa batas ke kontrak pintar Permit2. Karena operasi default Uniswap saat ini adalah memberikan izin tanpa batas, jumlah pengguna yang memenuhi syarat ini cukup besar. Demikian pula, selama peretas berhasil menipu Anda untuk menandatangani Permit2, mereka dapat mentransfer Token Anda (terbatas pada yang sebelumnya Anda izinkan).
Secara ringkas, inti dari phishing otorisasi adalah bahwa Anda mengeluarkan uang untuk memberi tahu kontrak pintar, "Saya menyetujui Anda untuk memindahkan Token saya ke peretas." Inti dari phishing tanda tangan adalah Anda menandatangani "catatan" yang memungkinkan orang lain memindahkan aset Anda ke peretas, dan peretas mengeluarkan uang untuk memberi tahu kontrak pintar, "Saya ingin memindahkan Token-nya ke saya." Permit dan Permit2 saat ini merupakan pusat perhatian untuk tanda tangan phishing. Permit adalah fitur ekstensi otorisasi dari ERC-20, sedangkan Permit2 adalah fitur baru yang diperkenalkan oleh Uniswap.
Jadi, bagaimana cara mencegah serangan phishing ini setelah Anda memahami prinsip-prinsipnya?
Membangun Kesadaran Keamanan:Penting untuk selalu memeriksa operasi apa yang sedang Anda lakukan setiap kali Anda berinteraksi dengan dompet Anda.
Pisahkan Dana Besar dan Dompet untuk Aktivitas On-Chain: Dengan memisahkan dana besar dari dompet yang digunakan untuk aktivitas on-chain, Anda dapat meminimalkan kerugian jika menjadi korban phishing.
Pelajari Cara Mengidentifikasi Format Tanda Tangan Permit dan Permit2:** Hati-hati setiap kali Anda menemui format tanda tangan berikut:
Interaktif: URL swap
Pemilik: Alamat dari yang memberi izin
Pengeluar: Alamat pihak yang diotorisasi
Nilai: Jumlah yang diotorisasi
Nonce: Nomor acak
Batas Waktu: Waktu Kedaluwarsa
分享
目录
Teruskan Judul Asli ‘大白话讲解Web3签名钓鱼底层逻辑“授权钓鱼、Permit与Permit2的区别’
“Mengapa saya kehilangan uang hanya dengan menandatangani nama saya??” “Phishing tanda tangan” saat ini menjadi metode phishing favorit bagi para peretas di Web3. Baru-baru ini, saya telah melihat banyak ahli seperti Cosine dan berbagai dompet serta perusahaan keamanan terus mempromosikan dan mengedukasi tentang pengetahuan tanda tangan phishing. Namun, masih banyak orang yang menjadi korban phishing setiap hari.
Salah satu alasan yang diyakini Spinach adalah bahwa kebanyakan orang tidak memahami logika mendasar pertukaran dompet, dan bagi mereka yang tidak menguasai teknologi, kurva pembelajarannya terlalu tinggi. Jadi, Spinach memutuskan untuk membuat versi yang diilustrasikan untuk mendidik orang tentang logika mendasar phishing tanda tangan, dan mencoba membuatnya bisa dimengerti bahkan untuk individu yang tidak menguasai teknologi.
Pertama, kita perlu memahami bahwa hanya ada dua jenis operasi saat menggunakan dompet: “penandatanganan” dan “pertukaran.” Pemahaman yang paling sederhana dan langsung adalah: penandatanganan terjadi di luar blockchain (off-chain), dan tidak memerlukan pengeluaran biaya Gas; pertukaran terjadi di blockchain (on-chain), dan memerlukan pengeluaran biaya Gas.
Scenario umum untuk melakukan tanda tangan adalah untuk memverifikasi bahwa Anda adalah Anda, seperti saat masuk ke dalam dompet. Misalnya, jika Anda ingin menukar token di Uniswap, Anda perlu terlebih dahulu menghubungkan dompet Anda. Pada titik ini, Anda perlu menandatangani pesan untuk memberitahu situs web “Saya adalah pemilik dompet ini,” dan kemudian Anda dapat menggunakan Uniswap. Langkah ini tidak menyebabkan perubahan data atau status pada blockchain, sehingga tidak memerlukan pengeluaran uang.
Mengenai pertukaran, ketika Anda benar-benar ingin menukar token di Uniswap, Anda perlu mengeluarkan sejumlah uang untuk memberi tahu kontrak cerdas Uniswap: "Saya ingin menukar 100 USDT dengan koin Spinach, dan saya memberi Anda izin untuk memindahkan 100 USDT saya." Langkah ini disebut persetujuan. Kemudian, Anda perlu mengeluarkan sejumlah uang lainnya untuk memberi tahu kontrak cerdas Uniswap: "Saya siap menukar 100 USDT dengan koin Spinach sekarang, Anda dapat melanjutkan operasinya sekarang." Setelah itu, Anda telah menyelesaikan operasi pertukaran 100 USDT dengan koin Spinach.
Setelah memahami perbedaan antara tanda tangan dan pertukaran dengan sederhana, mari kita memperkenalkan prinsip phishing. Phishing umumnya melibatkan tiga metode berbeda: Phishing Otorisasi, Phishing Tanda Tangan Ijin, dan Phishing Tanda Tangan Ijin2. Ketiga metode ini sangat umum dalam phishing.
Mari kita mulai dengan Phishing Otorisasi, yang merupakan salah satu teknik phishing klasik dalam Web3. Seperti namanya, itu mengeksploitasi mekanisme otorisasi (menyetujui). Seperti yang terlihat dalam contoh Uniswap, otorisasi memungkinkan smart contract untuk “mengizinkan Anda untuk memindahkan jumlah xxx Token saya.” Seorang hacker dapat membuat situs web phishing palsu, menyamar sebagai proyek NFT dengan frontend yang menarik. Di tengah situs web, ada tombol besar yang indah yang mengatakan “Klaim Airdrop Anda.” Ketika diklik, dompet akan muncul dengan layar yang meminta Anda mengotorisasi Token Anda ke alamat hacker. Jika Anda mengonfirmasi ini, selamat, hacker telah berhasil menyelesaikan KPI.
Namun, Phishing Otorisasi memiliki masalah: karena memerlukan biaya Gas, banyak orang berhati-hati ketika harus mengeluarkan uang. Setelah mengklik situs web yang mencurigakan, orang seringkali dengan cepat menyadari bahwa ada yang salah, sehingga relatif mudah untuk mencegahnya.
Sekarang mari kita beralih ke fokus hari ini: Phishing Tanda Tangan Permit dan Permit2, yang menjadi pusat perhatian dalam bidang keamanan aset Web3. Mengapa sulit untuk melindungi diri dari mereka? Karena setiap kali Anda ingin menggunakan Dapp, Anda harus masuk ke dompet Anda. Banyak orang telah mengembangkan inersia dalam pemikiran mereka: “Operasi ini aman.” Ditambah lagi, itu tidak memerlukan pengeluaran uang, dan kebanyakan orang tidak memahami implikasi di balik setiap tanda tangan.
Mari kita pertama-tama melihat mekanisme Izin. Izin adalah fitur perluasan untuk otorisasi di bawah standar ERC-20. Sebagai contoh, USDT, yang biasa kita gunakan, adalah token ERC-20. Secara sederhana, Izin memungkinkan Anda untuk menandatangani dan menyetujui orang lain untuk memindahkan Token Anda. Kita tahu bahwa otorisasi (Setujui) adalah ketika Anda mengeluarkan uang memberi tahu smart contract: "Anda dapat memindahkan xxx jumlah Token saya." Jadi, Izin seperti menandatangani "catatan" kepada seseorang, menyatakan: "Saya mengizinkan seseorang untuk memindahkan xxx jumlah Token saya." Kemudian, orang ini menyampaikan "catatan" ini ke smart contract dan membayar biaya Gas, memberi tahu smart contract: "Dia mengizinkan saya untuk memindahkan xxx jumlah Token miliknya." Kemudian Token Anda dapat dipindahkan oleh orang lain. Dalam proses ini, Anda hanya menandatangani sebuah nama, tetapi di balik itu, itu berarti Anda mengizinkan orang lain untuk memanggil otorisasi (Setujui) dan mentransfer Token Anda. Seorang peretas dapat membuat situs web phishing, mengganti tombol login dompet dengan tombol phishing Izin, sehingga mudah untuk mencuri aset Anda.
Jadi apa itu Permit2? Permit2 sebenarnya bukan merupakan fungsi dari ERC-20, tetapi merupakan fungsi yang diluncurkan oleh Uniswap untuk kenyamanan pengguna. Contoh sebelumnya mengatakan bahwa jika Anda ingin menukar USDT dengan koin bayam di Uniswap, Anda perlu memberi otorisasi (Approve) sekali dan kemudian menukarnya, yang memerlukan dua biaya gas, jadi Uniswap menemukan cara: 'Anda memberi saya semua kuota sekaligus, dan Anda menandatangani nama Anda setiap kali Anda menebus dan saya akan menanganinya untuk Anda.' Fungsi ini membantu pengguna Uniswap Anda hanya perlu membayar biaya Gas sekali saat menggunakannya, dan langkah ini adalah penandatanganan, sehingga biaya Gas sebenarnya tidak dibayarkan oleh Anda, tetapi dibayarkan oleh kontrak Permit2, tetapi akan dikurangkan dari Token yang akhirnya Anda tebus.
Namun, syarat untuk phishing Permit2 adalah Anda harus sebelumnya menggunakan Uniswap dan memberikan izin tanpa batas ke kontrak pintar Permit2. Karena operasi default Uniswap saat ini adalah memberikan izin tanpa batas, jumlah pengguna yang memenuhi syarat ini cukup besar. Demikian pula, selama peretas berhasil menipu Anda untuk menandatangani Permit2, mereka dapat mentransfer Token Anda (terbatas pada yang sebelumnya Anda izinkan).
Secara ringkas, inti dari phishing otorisasi adalah bahwa Anda mengeluarkan uang untuk memberi tahu kontrak pintar, "Saya menyetujui Anda untuk memindahkan Token saya ke peretas." Inti dari phishing tanda tangan adalah Anda menandatangani "catatan" yang memungkinkan orang lain memindahkan aset Anda ke peretas, dan peretas mengeluarkan uang untuk memberi tahu kontrak pintar, "Saya ingin memindahkan Token-nya ke saya." Permit dan Permit2 saat ini merupakan pusat perhatian untuk tanda tangan phishing. Permit adalah fitur ekstensi otorisasi dari ERC-20, sedangkan Permit2 adalah fitur baru yang diperkenalkan oleh Uniswap.
Jadi, bagaimana cara mencegah serangan phishing ini setelah Anda memahami prinsip-prinsipnya?
Membangun Kesadaran Keamanan:Penting untuk selalu memeriksa operasi apa yang sedang Anda lakukan setiap kali Anda berinteraksi dengan dompet Anda.
Pisahkan Dana Besar dan Dompet untuk Aktivitas On-Chain: Dengan memisahkan dana besar dari dompet yang digunakan untuk aktivitas on-chain, Anda dapat meminimalkan kerugian jika menjadi korban phishing.
Pelajari Cara Mengidentifikasi Format Tanda Tangan Permit dan Permit2:** Hati-hati setiap kali Anda menemui format tanda tangan berikut:
Interaktif: URL swap
Pemilik: Alamat dari yang memberi izin
Pengeluar: Alamat pihak yang diotorisasi
Nilai: Jumlah yang diotorisasi
Nonce: Nomor acak
Batas Waktu: Waktu Kedaluwarsa