Caputchin
Memahami Caputchin

Instrumentasi

Proof of work membuktikan bahwa upaya dikeluarkan. Ia tak membuktikan apa yang mengeluarkannya. Seorang penyerang gigih dengan peternakan peramban sungguhan bisa menggiling teka-teki dengan murah. Instrumentasi adalah lapis kedua yang menutup celah itu: ia membuktikan pekerjaan terjadi di dalam peramban asli.

Bagaimana ia bekerja

Pada setiap permintaan, Caputchin menghasilkan program JavaScript baru sekali-pakai dan menjalankannya di peramban pengunjung. Program melatih mesin yang hanya dimiliki peramban sungguhan, dan melaporkan kembali apa yang ia amati:

  • Sondir API peramban yang memeriksa fungsionalitas peramban asli hadir dan berperilaku dengan benar.
  • Rantai komputasi operasi integer bitwise.
  • Aritmetika DOM yang membangun pohon elemen, membaca nilai yang dihitung mesin tata-letak untuknya, dan merobohkannya kembali.

Triknya adalah asimetri: mesin rendering sungguhan menghasilkan jawaban yang benar hampir gratis, sementara runtime headless atau berskrip men-stub operasi ini, mengimplementasikannya dengan salah, atau melewatinya demi kecepatan. Ketaksamaan itu membongkar si pengunjung.

Content-Security-Policy

Karena program menjalankan eval di peramban pengunjung, halaman yang menyematkan widget-mu harus mengizinkan 'unsafe-eval' di Content-Security-Policy script-src-nya. Tak ada cadangan untuk ini: jika 'unsafe-eval' diblokir, program tak bisa berjalan dan verifikasi gagal. Jika kebijakanmu tak bisa mengizinkannya, matikan instrumentasi untuk key di halaman Keamanan-nya, yang menghapus syaratnya dengan ongkos deteksi peramban-otomatis (proof of work dan game wajib mana pun tetap berjalan). Lihat sandboxing game untuk kebijakan halaman-host lengkapnya.

Mengapa ia berpasangan dengan proof of work

Dua lapis menutupi titik buta satu sama lain. Proof of work sendiri bisa ditambang murah oleh peramban sungguhan; instrumentasi sendiri bisa dipalsukan oleh skrip yang tak pernah melakukan pekerjaan. Bersama mereka menaikkan ongkos pada dua sumbu independen: proof of work membuktikan upaya, instrumentasi membuktikan lingkungan.

Obfuskasi

Karena program dikirim ke pengunjung, penyerang termotivasi bisa mempelajarinya dan mencoba mengomputasi-awal jawabannya. Untuk membuat itu lebih sulit, program diobfuskasi. Halaman Keamanan sebuah key memaparkan Tingkat obfuskasi: menaikkannya membuat program lebih sulit dibalik-rekayasa, dengan ongkos lebih banyak CPU sisi-server. Sinyal yang sama mendukung opsi Blokir peramban otomatis, yang menolak mentah-mentah klien headless dan WebDriver yang terdeteksi.

Sebuah batas yang jujur

Instrumentasi tak antigagal. Peramban siluman menambal tanda yang ia cari, dan pemeriksaan itu sendiri mencatat mereka bisa dikalahkan. Ia adalah satu lapis di antara beberapa, terkuat saat ditumpuk dengan proof of work dan sisa pengaturan keamanan sebuah key.

Di halaman ini