Mengungkapkannya tanpa kehilangan ciri khasnya

Mengungkapkannya tanpa kehilangan ciri khasnya

Setiap pembaca paspor produk akan mendapatkan data publik yang sama; beberapa di antaranya juga mendapatkan kolom-kolom yang dilindungi. Pertanyaan yang lebih mendasar adalah, apakah kolom-kolom tambahan ini dilengkapi dengan bukti keasliannya. Kami menandatangani setiap kolom secara terpisah, sehingga kolom yang diungkapkan pun dapat diverifikasi menggunakan kunci publik - secara offline, tanpa perlu meminta konfirmasi dari kami.

Sertifikat Produk Digital tidak menampilkan hal yang sama bagi semua pihak. Seorang pembeli melihat data yang bersifat publik. Sebuah bengkel perbaikan atau penyedia layanan daur ulang melihat lebih banyak informasi. Otoritas pengawasan pasar melihat semuanya. Hal ini telah dijelaskan, dan standar Eropa kini secara tegas mengaturnya.

Pertanyaan yang menarik justru lebih tersembunyi: Jika seseorang diberi akses ke kolom-kolom yang dilindungi di luar data publik, apakah ia dapat membuktikan bahwa kolom-kolom tersebut memang asli? Atau apakah ia harus percaya bahwa platform telah memilihnya dengan benar dan meneruskannya tanpa perubahan?

Pada sebagian besar platform, jawaban jujurnya adalah: kepercayaan. Kami merancang platform kami sedemikian rupa sehingga jawabannya adalah “bukti” - tidak hanya untuk kolom publik, tetapi juga untuk setiap kolom yang ditambahkan saat pengungkapan. Mengapa perbedaan ini penting, dan mengapa kami memilih jalur yang lebih rumit untuk hal ini.

Semua platform memenuhi aturan akses dengan cara yang sama

EN 18239, standar Eropa untuk hak akses, keamanan, dan kerahasiaan dalam DPP, mensyaratkan pengendalian akses per elemen data: Untuk setiap kolom, terdapat aturan mengenai siapa yang berhak melihatnya. Ini adalah persyaratan yang tepat, dan tidak sulit untuk dipenuhi. Kami telah menguraikan status sebenarnya dari standar-standar ini di bawah standar yang diselaraskan.

Cara umum untuk melakukannya adalah dengan penyaringan di sisi server. Server mengetahui siapa yang mengajukan permintaan, memeriksa apa yang boleh dilihat oleh orang tersebut, dan mengembalikan potongan informasi yang tepat. Kontrol akses: selesai. Standar tersebut tidak menuntut lebih dari itu.

Namun, ada satu masalah yang tidak diperhatikan oleh standar tersebut: Bagian yang dikirimkan tiba tanpa tanda tangan. Pembaca menerima tampilan yang telah disusun khusus untuknya dan harus percaya bahwa server telah memilihnya dengan jujur serta tidak mengubah apa pun selama proses pengiriman. Untuk lembar informasi publik, hal ini tidak menjadi masalah. Namun, untuk nilai yang langsung dijadikan dasar penetapan harga baterai bekas oleh penyedia layanan, hal ini membutuhkan kepercayaan yang sangat besar.

Ketika satu tanda tangan mencapai batas kemampuannya

Solusi yang paling jelas adalah menandatangani data tersebut. Untuk kedua ujung skala, tanda tangan biasa berfungsi dengan baik: menandatangani tampilan publik, menandatangani kumpulan data lengkap, dan keduanya diverifikasi menggunakan kunci publik, tanpa perantara server. Bagaimana prosesnya secara rinci dijelaskan dalam Tanda Tangan dan Sertifikat di DPP.

Masalahnya muncul di tengah. Tanda tangan pada seluruh dokumen hanya mencakup satu set bidang tertentu, yaitu yang ada pada saat penandatanganan. Jika bidang yang dilindungi dibuka secara tambahan kepada pembaca yang berwenang, bidang tersebut berada di luar kumpulan yang ditandatangani dan akan diterima olehnya tanpa perlindungan. Sebaliknya, jika sejak awal menandatangani seluruh kumpulan data, tanda tangan memang mencakup semuanya, tetapi kemudian semua informasi harus ditampilkan kepada semua pihak.

Tingkat-tingkat di antaranya pun terlewatkan: bengkel perbaikan, perusahaan asuransi, dan perusahaan daur ulang. Jika ingin menandatangani setiap kemungkinan kombinasi “siapa melihat apa” sejak awal, diperlukan dokumen yang ditandatangani tersendiri untuk setiap kombinasi, dan jumlah kombinasi tersebut melonjak tajam dengan setiap kelompok akses tambahan. Tidak ada yang melakukan hal itu. Kita akhirnya kembali ke filter server yang tidak ditandatangani, dan tahap tengah kembali bergantung pada kepercayaan.

Menandatangani Setiap Bidang Secara Terpisah

Ada pendekatan yang lebih baik, dan di atas itulah kami membangun platform ini. Alih-alih menandatangani dokumen jadi sebagai satu blok, penerbit menentukan setiap bidang satu per satu dalam satu proses penandatanganan (bagi yang paham standar: bukti W3C ecdsa-sd-2023 untuk pengungkapan selektif).

Setiap tampilan dimulai dari inti publik

Setiap tampilan dimulai dengan bidang-bidang publik yang sama. Apa yang kemudian terlihat oleh pembaca ditambahkan bidang demi bidang, dan setiap bidang tersebut tetap dapat ditelusuri kembali ke kunci publik penerbit - secara offline, tanpa perlu menandatangani ulang, dan tanpa harus mempercayai pihak yang menyusun tampilan tersebut. Kolom-kolom yang tidak memiliki hak akses sama sekali tidak ada. Bukan disamarkan, melainkan benar-benar tidak ada, dan tidak ada informasi apa pun yang bocor darinya.

Mengapa “tidak terputus” menjadi inti dari semuanya

Bayangkan seorang notaris yang tidak mengesahkan surat secara keseluruhan, melainkan setiap paragrafnya satu per satu. Surat publik tersebut diterima oleh semua orang. Siapa pun yang berhak atas informasi lebih lanjut akan menerima paragraf tambahan tersebut, dan masing-masing paragraf tetap memuat stempel dari notaris yang sama. Dalam prosedur biasa, platform akan menyalin paragraf-paragraf tersebut untuk Anda, dan apa yang Anda terima hanya memuat kata-kata dari platform tersebut.

Mengapa “utuh” menjadi hal yang penting, layak dijelaskan lebih lanjut. Segel yang utuh tidak berarti bahwa isinya benar. Segel tersebut menyatakan: Inilah tepatnya yang ditulis oleh penerbitnya, dan sejak saat itu tidak ada seorang pun yang mengubah satu karakter pun di dalamnya. Dengan demikian, siapa pun yang hanya meneruskan dokumen tersebut - penyimpanan sementara, jaringan, arsip, atau kami - tidak lagi menjadi bagian dari masalah kepercayaan ini. Siapa yang memberikan paspor tersebut kepada Anda tidak lagi menjadi masalah.

Dan segel bersifat biner. Segel itu utuh atau tidak; tidak ada segel yang setengah rusak. Jika segelnya rusak, Anda tidak akan tahu kalimat mana yang diubah, melainkan hanya mengetahui bahwa Anda tidak bisa lagi mempercayai seluruh lembar tersebut. Oleh karena itu, tidak ada perbedaan bertahap apakah kolom tambahan tersebut sampai kepada Anda dengan segelnya atau tanpa segel: Tanpa segel, kolom tersebut bukan sekadar memiliki bukti yang lebih lemah, melainkan sama sekali tidak memiliki bukti.

Kedua Metode untuk Dilihat

Setiap orang dapat memeriksanya sendiri. Transpareo Time Machine adalah aplikasi tampilan sumber terbuka kami untuk paspor produk: Aplikasi ini menelusuri riwayat versi sebuah paspor dan menghitung ulang setiap tanda tangan di browser pengguna, tanpa perlu meminta data dari server kami. Ada dua contoh sertifikat yang tersedia secara publik di dalamnya. Sertifikat kaos memiliki tanda tangan yang mencakup seluruh dokumen, sedangkan sertifikat baterai menampilkan pengungkapan per bidang.

Keduanya merupakan spesifikasi W3C terbuka: eddsa-jcs-2022 untuk tanda tangan yang mencakup seluruh dokumen, ecdsa-sd-2023 untuk pengungkapan per bidang. Siapa pun yang mau dapat mengimplementasikannya. Biaya yang diperlukan adalah alasan mengapa banyak orang tidak akan melakukannya: Tanda tangan yang mencakup seluruh dokumen jauh lebih murah untuk dibuat dan dioperasikan, dan bagi yang hanya menyediakan data publik, hal itu sudah cukup.

Fakta bahwa Time Machine menguasai kedua metode tersebut adalah disengaja dan akan tetap demikian. Time Machine tidak terikat pada platform mana pun. Seorang pemeriksa yang hanya menerima metode yang lebih mahal akan menjadi alat bagi kami dan tidak bagi siapa pun selain kami.

Kepada siapa bidang-bidang yang dilindungi diungkapkan

Sebaiknya ditanyakan, kepada siapa sebenarnya informasi di luar data publik tersebut diungkapkan. Bukan pembeli biasa, yang hanya menerima data publik. Melainkan pihak yang mengolah data, yang menilai nilai paket baterai bekas; perusahaan asuransi, yang menghitung premi risiko; pihak daur ulang, yang memisahkan bahan kimia; serta otoritas, yang membangun kasus. Mereka adalah pihak-pihak yang keputusannya bergantung pada uang atau keamanan.

Dan justru bidang-bidang itulah yang dalam pendekatan umum tidak tercakup. Mereka yang paling berhak meminta bukti kriptografis justru tidak mendapatkannya untuk bidang-bidang yang menjadi dasar keputusan mereka.

Kami berpendapat bahwa sebuah segel verifikasi harus memiliki arti yang sama bagi semua pihak. Tulisan “Telah diverifikasi oleh Transpareo” pada tampilan terperinci bengkel perbaikan memiliki arti yang sama dengan yang tertera pada sertifikat publik milik seorang pembeli: Setiap bidang yang ditampilkan berasal dari penerbit dan belum pernah diubah sejak saat itu. Segel yang hanya berlaku untuk bidang-bidang publik hanyalah segel setengah-setengah.

Lebih dari yang disyaratkan standar

Kami mengatakannya secara terbuka: Tidak ada satupun dari hal ini yang diwajibkan. EN 18239 mensyaratkan agar akses dikendalikan, dan filter di sisi server mengendalikan akses dengan sempurna. Membuat kolom yang diungkapkan dapat diverifikasi secara kriptografis juga merupakan sesuatu yang kami lakukan sebagai tambahan, bukan sekadar persyaratan yang diminta oleh regulasi.

Itulah tepatnya mengapa hal ini layak untuk dicatat. Akan mudah untuk sekadar memenuhi ketentuan standar secara harfiah, menyediakan filter server, dan menyatakan tahap ini telah selesai. Kami lebih memilih agar komitmen ini berlaku di mana pun segel tersebut muncul. Sebab, inti dari paspor yang ditandatangani adalah agar tidak ada yang perlu mempercayai platform tersebut. Mengecualikan tahap menengah justru akan mengembalikan kepercayaan yang seharusnya dihilangkan oleh tanda tangan tersebut.

Prinsip yang sama membuat suatu bidang terabaikan

Menentukan setiap bidang satu per satu membawa konsekuensi lain, dan hal ini memang diwajibkan oleh hukum Eropa. Peraturan Perlindungan Data Umum memberikan hak kepada individu untuk meminta penghapusan data pribadi mereka. Sebuah set data yang ditandatangani sebagai satu blok tidak dapat memenuhi persyaratan ini tanpa merusak tanda tangannya sendiri.

Karena setiap kolom berdiri sendiri, satu kolom dapat dihapus sementara bagian lainnya tetap dapat diverifikasi. Jika data pribadi secara tidak sengaja masuk ke dalam paspor, data tersebut dapat dihapus sepenuhnya, dan paspor tetap berlaku: tidak perlu diterbitkan ulang, riwayatnya tidak terputus. Kolom-kolom regulasi yang diwajibkan oleh undang-undang untuk disimpan tetap ada; apa yang dapat dihapus, dapat dihapus atas permintaan, bahkan bertahun-tahun kemudian.

Tetap saja, ini adalah paspor biasa

Tak satu pun dari hal tersebut menjadikan paspor ini sebagai objek khusus yang hanya dapat dibuka oleh alat kami. Paspor ini tetap merupakan Verifiable Credential dalam format JSON-LD, format yang menjadi standar di dunia web, dan format yang sama yang digunakan oleh UN Transparency Protocol serta lingkungan W3C lainnya.

Dengan demikian, paspor yang dipindai oleh seorang pembeli di browser adalah objek yang sama yang dapat dibaca oleh mitra ruang data, dan setiap pemeriksa yang sesuai standar dapat memverifikasinya, bukan hanya alat kami. Keamanan tambahan ini tidak membebani pembaca dan tidak mengikat siapa pun kepada kami.

Mengapa Hal Ini Sulit Secara Teknis

Pertama-tama, agar tidak menimbulkan kesan yang salah: Kami tidak menciptakan metode ini. ecdsa-sd-2023 adalah spesifikasi publik W3C; kriptografi di baliknya bukan buatan kami, dan siapa pun yang ingin mengimplementasikannya dapat membacanya. Yang sulit bukanlah memiliki ide tersebut. Yang sulit adalah membangunnya sedemikian rupa sehingga sebuah Pass masih dapat diverifikasi sepuluh tahun ke depan. Di situlah letak kerjanya, dan mengenai hal itu ada hal berguna yang dapat disampaikan.

Perbedaannya terdengar kecil, tetapi mengubah fondasinya: Tanda tangan biasa melakukan perhitungan berdasarkan byte-byte dalam sebuah dokumen. Pengungkapan selektif menghitung berdasarkan pernyataannya. Paspor tersebut diubah ke dalam bentuk terstandarisasi sebelum ditandatangani, di mana setiap informasi hadir sebagai kalimat tersendiri yang berdiri sendiri. Hanya dengan cara itulah sebuah kalimat dapat dihilangkan tanpa merusak kalimat lainnya.

Hal ini menimbulkan masalah yang tidak dimiliki oleh tanda tangan berbasis byte: Bentuk terstandarisasi yang sama harus dapat dihasilkan kembali secara persis dalam sepuluh tahun ke depan. Bukan secara kasar, melainkan karakter demi karakter; jika tidak, bukti tersebut tidak akan valid lagi. Tiga hal menghalangi hal ini, dan ketiganya tampak sepele.

Angka kehilangan tipenya. Jika sebuah angka ditulis sebagai JSON biasa, jenis angka tersebut akan hilang dalam prosesnya. Nilai seperti 2.0 akan kembali sebagai 2 setelah melalui proses JSON. Bagi manusia, ini sama saja, tetapi bagi bentuk terstandarisasi, ini merupakan kalimat yang berbeda, dan verifikasi pun gagal.

Nama-nama belum berarti apa-apa. Agar bentuk terstandarisasi terbentuk, setiap nama bidang harus merujuk pada makna yang unik. Jika ada yang hilang, bidang tersebut akan menghilang tanpa pemberitahuan saat konversi. Bidang tersebut masih tercantum dalam sertifikat, tetapi bukti validasi tidak mencakupnya, dan tidak ada yang menyadarinya.

Makna biasanya terdapat di internet. Pemetaan ini tercantum dalam sebuah kamus yang dimuat ulang oleh sebagian besar alat saat melakukan verifikasi melalui internet. Siapa pun yang melakukannya membuat verifikasi paspornya bergantung pada apakah alamat pihak ketiga tersebut masih merespons dalam sepuluh tahun ke depan, dan tetap tidak berubah.

Bagaimana kami menyelesaikannya

Kami ## telahmenutup ketiga titik tersebut pada akarnya, alih-alih menanganinya nanti.

Tipe. Setiap nilai ditulis beserta tipenya, dan proses publikasi akan terhenti begitu ada satu angka tanpa tipe pun yang muncul dalam bentuk terstandarisasi. Dengan demikian, kesalahan terdeteksi di tempat yang hanya menghabiskan satu baris kode, bukan bertahun-tahun kemudian sebagai pelanggaran verifikasi yang tidak dapat dijelaskan.

Kamus. Setiap kamus yang dirujuk oleh sebuah pass tersedia secara lokal di sistem kami dan tidak pernah diambil melalui jaringan. Alamat yang tidak dikenal akan langsung menghentikan proses penandatanganan, bukan sekadar kembali ke hasil kosong tanpa pemberitahuan.

Pengidentifikasi. Setiap simpul dalam dokumen memiliki pengidentifikasi yang stabil, sehingga bentuk terstandarisasi tetap dapat direproduksi, alih-alih memberikan nama bantu baru pada setiap proses.

Bagian yang paling rumit terletak pada Bring Your Own Key. Untuk setiap penerbitan, diperlukan kunci tambahan yang bersifat sementara, yang digunakan untuk menandatangani setiap bidang yang dapat diungkapkan secara terpisah. Kunci ini dibuat dan dibuang oleh penerbit itu sendiri. Seandainya kunci tersebut berada di tangan kami, kami dapat memalsukan bidang-bidang tertentu setelahnya, dan independensi tanda tangan penerbit hanya akan menjadi klaim belaka. Kami memverifikasi bukti yang dikembalikan dengan membandingkannya terhadap kunci publik yang telah disimpan, sebelum kami mempercayainya.

Setiap paspor memiliki dua bukti semacam itu, satu dari penerbit dan satu dari Transpareo, dan masing-masing diturunkan secara independen untuk dilihat oleh pembaca. Dua tanda tangan, dua otoritas yang saling independen, bahkan untuk satu bidang yang diungkapkan secara terpisah.

Bagi kami, upaya ini berada di tempat yang tepat. Kami tidak menambahkan kemampuan verifikasi ini sebagai tambahan; platform ini telah dirancang dengan mempertimbangkan hal tersebut sejak versi pertama. Setiap paspor ditandatangani saat dipublikasikan dan dirantai ke versi sebelumnya. Arsip sepuluh tahun yang tidak dapat diubah telah dibuat dan berlaku segera setelah paspor-paspor tersebut terdaftar di EU-DPP-Register. Menandatangani setiap bidang, bukan seluruh blok, merupakan perluasan dari inti ini, bukan tambahan pada sesuatu yang tidak pernah dirancang untuk itu.

Posisi Kita Saat Ini

Jika disederhanakan, pilihannya sederhana. Anda dapat mengungkapkan kolom-kolom yang dilindungi dan meminta pembaca untuk mempercayai filter Anda - hal ini memenuhi standar. Atau, Anda dapat mengungkapkannya sekaligus menyertakan buktinya - hal ini memenuhi standar yang lebih tinggi, yang menurut kami layak untuk kolom-kolom tersebut.

Kami memilih untuk menyertakan bukti, demi setiap pembaca, karena sebuah segel seharusnya memiliki arti yang sama, siapa pun yang melihatnya. Bagi yang ingin melihat cara kerjanya: Kedua demo yang ditautkan di atas diverifikasi langsung di browser, secara offline, hanya dengan menggunakan kunci publik.

Pembaruan mengenai tingkat akses dan bukti

Pengungkapan selektif, tanda tangan, dan perkembangan standar DPP - ringkasan bulanan langsung di kotak masuk Anda.