Sertifikat Produk Digital tidak menampilkan hal yang sama kepada 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 dapat melihat 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?
Bayangkan seorang notaris yang tidak mengesahkan surat secara keseluruhan, melainkan setiap paragrafnya satu per satu. Surat yang terbuka untuk umum dapat diakses oleh semua orang. Siapa pun yang berhak atas informasi lebih lanjut akan menerima paragraf-paragraf tambahan tersebut, dan masing-masing paragraf tetap memuat stempel dari notaris yang sama. Begitulah cara kami membangun platform kami. Pada kebanyakan platform, jawaban jujur atas pertanyaan di atas adalah: kepercayaan. Bagi kami, jawabannya adalah: bukti, untuk setiap kolom yang baru ditambahkan saat pengungkapan. Artikel ini menjelaskan mengapa perbedaan ini penting dan mengapa kami memilih cara yang lebih rumit untuk mencapainya.
Semua pihak memenuhi aturan akses dengan cara yang sama
EN 18239, standar Eropa untuk hak akses, keamanan, dan kerahasiaan dalam DPP, mensyaratkan agar akses dikendalikan per bidang data: Untuk setiap bidang data, terdapat aturan mengenai siapa yang berhak melihatnya. Ini adalah persyaratan yang tepat, dan tidak sulit untuk dipenuhi. Mengenai status sebenarnya dari standar-standar ini, kami telah menjelaskannya secara rinci dalam artikel kami tentang standar-standar yang diharmonisasi.
Cara umum untuk melakukannya adalah dengan menggunakan filter di server. Server mengetahui siapa yang mengajukan permintaan, memeriksa apa yang boleh dilihat oleh orang tersebut, dan mengembalikan potongan informasi yang tepat. Standar tersebut tidak mensyaratkan lebih dari itu. Namun, ada satu kendala yang tidak diperhatikan oleh standar ini: potongan informasi tersebut diterima tanpa segel. Pembaca harus percaya bahwa server telah memilihnya dengan jujur dan tidak mengubah apa pun selama proses pengiriman. Untuk lembar informasi publik, hal ini masih dapat diterima. Namun, untuk nilai yang langsung dijadikan dasar penetapan harga baterai bekas oleh pihak pengolah data, hal ini membutuhkan kepercayaan yang besar.
Solusi yang paling masuk akal adalah menandatangani data tersebut. Untuk kedua ujung skala, tanda tangan biasa berfungsi dengan baik: menandatangani tampilan publik, menandatangani kumpulan data lengkap. Bagaimana prosesnya secara rinci dijelaskan dalam bagian “Tanda Tangan dan Sertifikat” di DPP. Masalahnya muncul di tengah. Tanda tangan pada seluruh dokumen hanya mencakup bidang-bidang yang ada saat penandatanganan. Jika bidang yang dilindungi juga dibuka untuk pembaca yang berwenang, bidang tersebut berada di luar kumpulan yang ditandatangani dan akan sampai kepadanya tanpa perlindungan. Tidak ada yang akan menandatangani terlebih dahulu setiap kemungkinan kombinasi “siapa melihat apa”, karena jumlah kombinasinya akan meledak. Kita kembali ke filter tanpa segel, dan tingkat tengahnya kembali bergantung pada kepercayaan.
Menandatangani setiap bidang satu per satu
Ada desain yang lebih baik, dan di atasnya kami membangun platform ini. Alih-alih menandatangani dokumen jadi sebagai satu blok, pembuat menentukan setiap bidang satu per satu dalam satu proses (bagi yang paham standar: prosedur W3C ecdsa-sd-2023).
Setiap tampilan dimulai dengan bidang-bidang publik yang sama. Apa yang kemudian dilihat oleh pembaca ditambahkan bidang demi bidang, dan setiap bidang tersebut tetap dapat ditelusuri kembali ke kunci publik pembuatnya, secara offline, tanpa perlu penandatanganan ulang, dan tanpa harus mempercayai pihak yang menyusun tampilan tersebut. Kolom-kolom yang tidak memiliki klaim sama sekali tidak ada. Bukan disamarkan, melainkan benar-benar tidak ada, dan tidak ada informasi apa pun yang bocor mengenai kolom-kolom tersebut.
Satu siklus: bengkel perbaikan
Sebuah bengkel perbaikan telah mendaftarkan kepentingan yang sah atas sebuah baterai, salah satu tingkat akses yang secara eksplisit diatur dalam Peraturan Baterai. Sistem bengkelnya masuk ke antarmuka kami menggunakan kuncinya dan mengambil sertifikat tersebut. Jawaban yang diterima adalah sertifikat publik yang sama dengan yang dilihat oleh pembeli, namun ditambah satu kolom: petunjuk pembongkaran, yang hanya diungkapkan kepada pembaca yang berwenang. Tidak ada dokumen kedua, tidak ada versi khusus.
Sebelum bengkel tersebut mengandalkan kolom ini, perangkat lunaknya akan memverifikasi segel yang disertakan dengan kunci publik pabrikan. Jika verifikasi berhasil, termasuk untuk kolom tambahan tersebut, bengkel tersebut tahu: Petunjuk ini berasal persis dari pabrikan, dan tidak ada pihak mana pun yang mengubahnya selama proses tersebut. Jika verifikasi gagal, ia akan mengesampingkan tampilan tersebut secara keseluruhan. Bahwa ia hanya menerima kolom-kolom yang memang menjadi haknya, tetap menjadi tugas sistem kontrol akses kami. Yang baru adalah langkah selanjutnya: Ia sendiri yang memverifikasi keaslian data yang diterima, tanpa perlu meminta izin kepada kami.
Mengapa “utuh” menjadi inti permasalahan
Segel yang utuh tidak menjamin bahwa isinya benar. Segel tersebut menyatakan: Inilah tepatnya yang ditulis oleh pembuatnya, dan sejak saat itu tidak ada seorang pun yang mengubah tanda apa pun di dalamnya. Dengan demikian, siapa pun yang hanya meneruskan dokumen tersebut - penyimpanan sementara, jaringan, arsip, atau kami - tidak lagi terlibat dalam masalah kepercayaan ini. Siapa yang memberikan paspor tersebut kepada Anda tidak lagi menjadi masalah.
Dan segel bersifat biner. Segel itu utuh atau tidak utuh; tidak ada segel yang setengah rusak. 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 terisi lebih lemah, melainkan sama sekali tidak terisi.
Kedua Metode untuk Melihat
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. Paspor sebuah kaos memiliki tanda tangan yang mencakup seluruh dokumen, sedangkan paspor sebuah baterai menggunakan otorisasi per bidang.
Keduanya merupakan standar W3C terbuka, yang dapat diimplementasikan oleh siapa saja. Tanda tangan yang mencakup seluruh dokumen jauh lebih murah untuk dibuat dan dioperasikan, dan bagi yang hanya menyediakan data publik, hal ini sudah cukup. Fakta bahwa Time Machine menguasai kedua metode ini memang disengaja: Pas tersebut tetap berupa format standar biasa yang dapat diverifikasi oleh setiap alat yang sesuai, bukan hanya milik kami.
Siapa yang diuntungkan, dan apa yang disyaratkan oleh standar
Selain data publik, kepada siapa sebenarnya informasi lain diungkapkan? Bukan kepada pembeli biasa. Melainkan pihak pengolah yang menilai nilai paket baterai bekas, perusahaan asuransi yang menghitung premi risiko, pihak daur ulang yang memisahkan bahan kimia, serta instansi pemerintah yang menangani suatu kasus. Para pembaca yang keputusannya bergantung pada uang atau keamanan. Dan dalam pendekatan umum, justru para pembaca inilah yang tidak mendapatkan label verifikasi untuk bidang-bidang yang menjadi dasar keputusan mereka. Kami berpendapat bahwa label verifikasi harus memiliki arti yang sama bagi semua pihak: Setiap bidang yang ditampilkan berasal dari produsen dan tidak pernah disentuh sejak saat itu. Lambang yang hanya berlaku untuk bidang-bidang publik hanyalah setengah lambang.
Kami mengatakannya secara terbuka: Tidak ada satupun dari hal ini yang diwajibkan. EN 18239 mensyaratkan agar akses dikendalikan, dan filter di server melakukannya dengan sempurna. Kami juga memastikan bidang-bidang yang diungkapkan dapat diverifikasi, karena inti dari paspor yang ditandatangani adalah agar tidak ada yang perlu mempercayai platform tersebut. Mengecualikan tingkat menengah justru mengembalikan kepercayaan yang seharusnya dihilangkan oleh tanda tangan tersebut.
Prinsip yang sama memungkinkan suatu bidang diabaikan
Menentukan setiap bidang satu per satu membawa karakteristik kedua, 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 menghancurkan tanda tangannya sendiri.
Karena di sini setiap bidang berdiri sendiri, satu bidang dapat dihapus sementara bagian lainnya tetap valid. 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 yang wajib disimpan sesuai undang-undang tetap ada; data yang dapat dihapus dapat dihapus atas permintaan, bahkan bertahun-tahun kemudian.
Mengapa hal ini sulit, dan bagaimana kami mengatasinya
Kami tidak menciptakan metode ini; ini adalah standar publik W3C. Yang sulit bukanlah memiliki ide tersebut. Yang sulit adalah mengembangkannya sedemikian rupa sehingga paspor tersebut masih dapat diverifikasi sepuluh tahun kemudian. Tanda tangan biasa menghitung berdasarkan byte-byte dalam sebuah dokumen. Tanda tangan per bidang menghitung berdasarkan setiap detailnya, dan untuk itu, paspor diubah ke dalam format penulisan tetap sebelum ditandatangani, di mana setiap detail ditampilkan sebagai kalimat tersendiri. Format ini harus dapat direkonstruksi karakter demi karakter sepuluh tahun kemudian; jika tidak, segel tidak akan cocok lagi. Tiga hal yang tampaknya sepele menghalangi hal ini, dan kami telah mengatasi ketiganya dari akar masalahnya.
Angka kehilangan tipenya. Nilai seperti 2.0 akan kembali sebagai 2 setelah melalui satu putaran dalam format data biasa. Bagi manusia, ini sama saja, tetapi bagi format tetap, ini merupakan kalimat yang berbeda. Pada sistem kami, setiap nilai disimpan bersama tipenya, dan proses publikasi akan terhenti begitu ada satu angka pun yang muncul tanpa tipe.
Nama-nama belum berarti apa-apa. Setiap nama bidang harus merujuk pada makna yang jelas dalam kamus; jika tidak, bidang tersebut akan menghilang tanpa pemberitahuan saat dikonversi dan segel tidak akan mencakupnya. Di sistem kami, setiap kamus tersedia secara lokal dan tidak pernah diambil melalui jaringan; nama kolom yang tidak dikenal akan menghentikan proses penandatanganan, alih-alih diam-diam menghasilkan hasil kosong.
Entri memerlukan nama tetap. Setiap entri dalam dokumen memiliki pengenal tetap, sehingga penulisan tetap sama pada setiap proses, alih-alih memberikan nama bantu baru setiap kali.
Bagian yang paling sensitif terletak pada kunci milik produsen itu sendiri. 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 produsen itu sendiri. Jika kunci tersebut berada di tangan kami, kami dapat membuat bidang-bidang tertentu secara retroaktif. Setiap paspor memiliki dua segel semacam itu, satu dari produsen dan satu dari Transpareo, bahkan untuk satu bidang yang diungkapkan secara terpisah.
Bagi kami, upaya ini dilakukan di tempat yang tepat. Setiap paspor ditandatangani saat dipublikasikan dan dirantai ke versi sebelumnya, dan arsip sepuluh tahun yang tidak dapat diubah mulai berlaku segera setelah paspor-paspor tersebut terdaftar di Daftar DPP UE. Menandatangani setiap bidang alih-alih seluruh blok merupakan perluasan dari inti ini, bukan tambahan.
Posisi Kami Saat Ini
Kami memilih sistem verifikasi ini untuk setiap pembaca, karena sebuah segel seharusnya memiliki arti yang sama bagi siapa pun yang melihatnya. Bagi yang ingin melihat cara kerjanya: Kedua contoh sertifikat yang ditautkan di atas dapat diverifikasi langsung di browser, tanpa perlu menghubungi server.
Pertanyaan mengenai posting ini
Apakah ada standar yang mengatur tanda tangan per kolom?
Tidak. EN 18239, standar Eropa untuk hak akses dalam DPP, mensyaratkan agar akses dikendalikan per kolom, dan filter di server telah memenuhi persyaratan tersebut sepenuhnya. Membuat kolom-kolom yang diungkapkan dapat diverifikasi merupakan keputusan kami sendiri, bukan sekadar persyaratan yang diminta oleh regulasi mana pun. Kami menganggap upaya ini dapat dibenarkan, karena inti dari paspor yang ditandatangani secara digital adalah bahwa tidak ada yang perlu mempercayai platform tersebut. Status sebenarnya dari standar-standar ini dijelaskan dalam artikel kami mengenai standar-standar yang diselaraskan.
Kami hanya mempublikasikan data yang bersifat publik. Apakah kami membutuhkannya?
Mungkin tidak, dan kami juga mengatakan hal itu secara terbuka. Tanda tangan yang mencakup seluruh dokumen dapat digunakan untuk paspor yang semua kolomnya bersifat publik, dan jauh lebih murah untuk dibuat serta dioperasikan. Pemberian izin per kolom menjadi layak dilakukan begitu ada kelompok sasaran kedua yang terlibat, misalnya jaringan perbaikan, perusahaan daur ulang, atau instansi pemerintah, yang biasanya Anda berikan salinan tanpa segel. Kedua metode ini merupakan standar W3C terbuka (ecdsa-sd-2023 untuk tanda tangan per bidang); setiap alat yang mendukung standar tersebut dapat memverifikasinya, dan keduanya saat ini berjalan di Transpareo Time Machine, pada “paspor” sebuah kaos dan pada “paspor” sebuah baterai.
Apakah data pribadi dapat dihapus di kemudian hari tanpa membuat paspor tersebut tidak berlaku lagi?
Ya, dan bagian ini memang diwajibkan oleh hukum Eropa. Peraturan Umum Perlindungan Data (GDPR) memberikan hak kepada individu untuk meminta penghapusan data pribadi mereka, dan sebuah set data yang ditandatangani sebagai blok tidak dapat memenuhi persyaratan tersebut tanpa menghancurkan tanda tangannya sendiri. Karena setiap kolom di sini ditetapkan secara terpisah, satu kolom dapat dihapus sementara bagian lainnya tetap valid, tanpa perlu menerbitkan ulang dan tanpa merusak riwayat versi. Kolom-kolom yang diwajibkan oleh undang-undang untuk disimpan tetap ada.
Siapa yang memegang kunci tanda tangan?
Setiap sertifikat memiliki dua segel, dan salah satunya bisa menjadi milik Anda. Setiap penerbitan juga memerlukan kunci sementara yang menandatangani setiap bidang yang dapat diungkapkan secara terpisah; kunci ini dibuat dan dihapus oleh penerbit itu sendiri, karena jika kunci tersebut berada di tangan kami, kami dapat memalsukan bidang-bidang tertentu di kemudian hari. Kami memverifikasi segel yang dikembalikan dengan membandingkannya terhadap kunci publik yang telah disimpan, sebelum kami mempercayainya. Dengan demikian, setiap paspor memiliki dua segel dari dua lembaga independen, baik untuk setiap bidang yang diungkapkan secara terpisah maupun untuk seluruh kumpulan data.
Apakah paspor ini masih berlaku sepuluh tahun lagi?
Di situlah letak kerumitannya. Tanda tangan per bidang menghitung berdasarkan detail individual suatu dokumen, bukan berdasarkan byte-nya; oleh karena itu, format tetap yang sama harus dapat dihasilkan kembali karakter demi karakter satu dekade kemudian. Tiga hal yang mengganggu proses ini, dan kami telah mengatasi ketiganya dari akarnya. Setiap nilai disimpan beserta tipenya, setiap kamus disimpan di server kami dan tidak pernah diambil dari internet, serta setiap entri memiliki pengenal tetap. Arsip sepuluh tahun yang tidak dapat diubah telah dibuat dan akan berlaku segera setelah paspor-paspor tersebut terdaftar di Register Uni Eropa. Informasi lebih lanjut mengenai hal ini dapat ditemukan dalam analisis kami mengenai Peraturan Register.




