Versi dokumen orisinal: Universal Anonymous Signatures: bridging past, present, and future of anonymous authentication
Dipublikasikan pada tanggal 24 Januari 2024
Ditulis oleh Jesus Diaz Vico
Terjemahan ke dalam Bahasa Indonesia oleh @andreassosilo
(Translated to Indonesian language by @andreassosilo)
Universal Anonymous Signatures: menjembatani otentikasi anonim di masa lalu, sekarang, dan masa depan
24 Januari 2024 | Jesus Diaz Vico | bacaan 8 menit
Baru-baru ini, makalah kami dengan judul āFoundations of Anonymous Signatures: Formal Definitions, Simplified Requirements, and a Construction Based on General Assumptionsā telah diterima ke dalam FCā24 ā edisi 2024 dari konferensi Financial Cryptography. Makalah ini memperkenalkan Universal Anonymous Signatures (UAS).
Kami sangat bersemangat tentang hal ini karena, selain menyatukan beberapa subbidang dalam domain otentikasi anonim, UAS membuka jalan menuju apa yang kami percayai bisa menjadi (bagian dari) masa depan Self-Sovereign Identity dan sesuatu yang pasti akan kami dorong untuk diintegrasikan dalam penawaran Atala.
Tapi cukup dengan pengantar. Apa itu UAS?
Sedikit sejarah
Pada tahun 1985, David Chaum pertama kali memikirkan kredensial kriptografi yang bisa digunakan oleh orang tanpa mengungkapkan identitas mereka, tetapi masih memberikan jaminan kepada penyedia layanan bahwa mereka berbicara dengan orang yang sah. Banyak varian yang diusulkan, biasanya memanfaatkan konsep atribut yang teruji ā di mana pemilik kredensial dapat memilih apakah akan mengungkapkannya atau tidak. Hal ini dikenal sebagai skema Kredensial Anonim / Anonymous Credential (AC).
Pada tahun 1991, Chaum dan van Heyst mengusulkan tandatangan kelompok / group signatures (GS), yang memungkinkan anggota suatu kelompok yang memegang kredensial keanggotaan untuk melakukan hal yang serupa dengan AC. Kredensial keanggotaan ini biasanya tidak memiliki atribut, tetapi tandatangan yang dihasilkan oleh skema GS dapat diproses oleh entitas terpercaya, yang dapat mengekstrak identifikasi dari pihak yang secara anonim melakukan tanda tangan.
Baik skema AC maupun GS bergantung pada otoritas yang mengeluarkan kredensial yang diperlukan untuk mengautentikasi atau menandatangani. Entitas tersebut dihapuskan pada tahun 2001, ketika Rivest, Shamir dan Tauman mengidealisasikan skema Ring Signature (RS), yang bisa dilihat sebagai semacam tandatangan kelompok yang tidak bisa di-de-anonimkan dan tidak memerlukan penerbit.
Jadi, dalam kurun waktu hanya 16 tahun, komunitas kriptografi mendapati dirinya memiliki tiga cara yang berbeda tetapi mirip untuk memungkinkan pengguna mengautentikasi diri secara anonim. Dan sejak tahun 2001, banyak varian lain yang diusulkan, kadang-kadang menemukan titik-titik perantara. Ini termasuk skema RS yang memungkinkan menautkan tandatangan, atau tandatangan kelompok di mana hanya pengguna yang dapat menautkan tanda tangan mereka sendiri.
Apa yang diselesaikan oleh UAS?
Sebenarnya, tidak hanya skema AC, GS, dan RS (dan banyak varian lainnya) memiliki beberapa kesamaan. Dasar pemikiran mereka sangatlah terkait erat. Memungkinkan pengguna untuk mengotentikasi secara anonim, sambil tetap memberikan kendali bagi penyedia layanan untuk mengekstrak informasi tertentu. Dari sudut pandang teoritis, hal ini tercermin dalam fakta bahwa model keamanan biasanya terlihat sangat mirip. Misalnya, seseorang selalu perlu mempertimbangkan sifat anonimitas, yang menangkap apa yang dapat dipelajari dari sebuah tanda tangan. Dan tentang sifat tidak bisa dipalsukan, yang memiliki varian penelusuran dan non-frameability, dengan tepat menyatakan jenis jaminan tidak bisa dipalsukannya apa yang bisa diharapkan oleh pemeriksa (penyedia layanan) dan pengguna, masing-masing. Juga, ada cara untuk membangun skema ini dari building blocks yang sangat mirip.
Namun, entah mengapa, hingga saat ini, skema AC, GS, RS, dan lainnya, telah dipelajari secara independen. Selain itu, meskipun dalam beberapa cabang konkret, seperti GS, ada model keamanan referensi seperti jalur kerja āFoundations of Group Signaturesā, hal ini tidak selalu terjadi. Bahkan memiliki model referensi, model keamanan ini biasanya terikat pada sebuah tradeoff privasi-vs-utilitas yang konkret.
Contoh praktis
Misalkan Anda memiliki skema AC yang memungkinkan Anda untuk secara selektif mengungkapkan atribut sembarang pada saat presentasi kredensial. Tetapi kemudian, Anda ingin menggunakannya kembali dalam sebuah skenario di mana Anda juga perlu menghubungkan presentasi dari pengguna yang sama (mungkin Anda ingin memberi penghargaan kepada pengguna ini dengan beberapa poin kesetiaan, atau mungkin pengguna ini mengirimkan spam kepada Anda dan Anda ingin memblokirnya!). Singkatnya, Anda ingin menambahkan beberapa jenis auditabilitas. Perubahan yang pada dasarnya sederhana ini memerlukan model keamanan yang baru! Tentu, jika Anda tahu cara melakukannya, Anda dapat memperluas yang sebelumnya dan, jika beruntung, konstruksi yang Anda miliki sebelumnya juga dapat diperbarui dengan mudah. Tetapi jika Anda pernah mengimplementasikan hal-hal semacam ini, Anda sudah tahu bahwa ini biasanya terlalu banyak yang bisa diharapkan.
Model dinamis untuk kompromi privasi-vs-utilitas dalam otentikasi anonim
Memerlukan satu model keamanan untuk setiap kompromi privasi-vs-utilitas yang konkret jelas tidak ideal. Dan itulah yang sebenarnya ingin kami perbaiki, karena jenis persyaratan yang dekat namun berbeda ini sangat umum dalam praktiknya. Jadi, apa yang kami lakukan adalah menciptakan UAS, sebuah model keamanan generik yang dapat disesuaikan di sana-sini, sehingga Anda dapat mengadaptasikannya sesuai kebutuhan kasus penggunaan Anda - dalam hal kompromi privasi-vs-utilitas yang diperlukan. Secara sedikit lebih rinci, jika dilihat lebih dekat, ada tiga poin di mana seseorang mungkin ingin menyesuaikan jenis skema otentikasi anonim ini:
- Pada saat penerbitan: ketika seorang pengguna meminta kredensial, mereka mungkin diminta untuk menyediakan kredensial penjaminan yang diperoleh sebelumnya yang memenuhi properti A atau B - atau bahkan mungkin tidak diperlukan untuk menyediakan kredensial sama sekali!
- Pada saat penandatanganan: ketika seorang pengguna ingin menghasilkan tanda tangan anonim (atau mempresentasikan kredensial mereka), pemeriksa mungkin memerlukan untuk mengetahui bahwa atribut kredensial memenuhi kriteria tertentu.
- Pada saat audit: pemeriksa mungkin memerlukan bahwa beberapa informasi dapat diekstrak setelah tanda tangan dibuat. Atau mungkin juga tidak ada pemeriksa sama sekali!
Kami menangkap kompromi yang bervariasi ini melalui āfunctional placeholdersā (programmer dapat menganggapnya sebagai fungsi abstrak) pada tiga titik ini, yang disematkan dalam kerangka keamanan yang pada dasarnya mengikuti template anonimitas-tidak bisa dipalsukan yang disebutkan di atas. Hal terpenting bagi para insinyur adalah bahwa, dengan konstruksi yang terbukti aman dalam model kami, mereka hanya perlu menentukan fungsi konkret yang diperlukan pada setiap langkah - penerbitan, penandatanganan, dan audit - itu saja! Keamanan dijamin dari keamanan konstruksi utama.
Apa hubungannya dengan GS, AC, atau RS?
Pertanyaan yang adil! Kami ingin memastikan bahwa model umum yang kami klaim sebenarnya umum. Jadi, bagaimana kami melakukannya? Nah, kami membuktikan bahwa, dengan memberikan fungsi konkret pada saat penerbitan, penandatanganan, dan audit, konstruksi generik kami dapat berperilaku sebagai skema GS, AC, atau RS. Lebih spesifik lagi, kami membuktikan bahwa varian semacam itu dari konstruksi kami adalah skema GS, AC, atau RS yang aman, di bawah model keamanan yang sudah dikenal.
Tentu saja, makalah-makalah tersebut terbatas, jadi kami hanya membuktikan bahwa GS, AC, dan RS dasar dapat dibangun dari konstruksi generik UAS. Kami juga memberikan gambaran bukti untuk varian yang lebih canggih, seperti GS dengan pembukaan yang bergantung pada pesan, Multimodal Private Signatures, dan Revocable Anonymous Credentials. Mudah untuk membayangkan banyak varian lainnya. Misalnya, Kredensial Anonim dengan kemampuan audit yang diperluas, atau bahkan skema tanda tangan anonim dengan kompromi privasi-vs-utilitas yang belum pernah dipertimbangkan dalam ruang akademis.
Apa yang (atau dapat) dilakukan selanjutnya?
Hal pertama yang mungkin Anda perhatikan adalah bahwa ini adalah pekerjaan yang cukup teoritis. Meskipun semuanya terlihat baik-baik saja di atas kertas, masalah mungkin muncul saat melakukan pengkodean. Kekhawatiran yang sah adalah apa hukuman yang dibayar dari segi efisiensi dari memiliki konstruksi yang dapat disesuaikan untuk sesuai dengan banyak kasus penggunaan yang berbeda. Ini adalah kekhawatiran yang sangat wajar. Pada dasarnya, skema yang dirancang dengan satu tujuan tunggal cenderung lebih efisien. Untuk mengevaluasi ini lebih baik, kami sedang mengerjakan prototipe. Awalnya, kami ingin memiliki perpustakaan yang dapat mengabstraksi detail internal, dan membiarkan developer fokus pada implementasi dari placeholder fungsional konkret yang mereka minati. Kemudian, menguji seberapa efisien hasilnya, dari (saat ini hanya) konstruksi generik kami. Ini mungkin cukup baik untuk beberapa aplikasi, tetapi tidak untuk semua.
Makalah ini memberikan konstruksi generik berdasarkan BBS+, enkripsi, dan bukti ZK generik (non-interaktif). Ini hampir pasti akan baik jika yang ingin kita capai adalah jenis klaim selective-disclosure, tetapi ini mungkin tidak cocok jika kita ingin membuktikan predikat yang lebih ekspresif, misalnya. Jadi, langkah berikutnya adalah memikirkan konstruksi generik alternatif yang lebih cocok untuk persyaratan yang lebih ekspresif.
Juga, dari sudut pandang teoritis, kami memiliki banyak ide untuk masa depan. Mengizinkan penerbit dan auditor untuk mengubah fungsi mereka, misalnya. Saat ini, meskipun banyak penerbit atau auditor dapat bersama-sama, masing-masing dari mereka berkomitmen pada suatu fungsi. Atau menyesuaikan model dengan pengaturan sepenuhnya dinamis, dan banyak hal lainnya lagi.
Bagaimana kami berencana mengintegrasikan UAS ke dalam Atala?
Seperti yang disebutkan, kami sedang mengerjakan implementasi berdasarkan konstruksi generik kami dari BBS+, enkripsi (ElGamal), dan ZK proof (protokol Sigma dasar). Ini akan menjadi titik awal kami, memungkinkan kami untuk menguji teknologi baru ini dalam stack SSI yang disediakan oleh Atala. Dengan mengintegrasikan UAS dalam Open Enterprise Agent stack, kami akan dapat memanfaatkan semua alat yang termasuk dalam Atala, dan mulai menguji bagaimana UAS berperilaku di lingkungan yang siap diproduksi (dengan agen, node, protokol komunikasi, dll. yang khusus untuk SSI), dan juga menyesuaikannya dengan kebutuhan pasar dan tim rekayasa.
Perhatikan pembaruan mendatang!