Waktu tepercaya: bagaimana sebuah stempel waktu membuktikan kapan
Spec: RFC 3161RFC 3161Spec: RFC 5816RFC 5816Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5
Sekilas pandang
Bagian berjudul “Sekilas pandang”Sebuah stempel waktu menjawab satu pertanyaan yang, secara mengejutkan, licin: apakah data ini sudah ada? Bukan siapa yang membuatnya, bukan apakah ia benar — hanya bahwa, pada suatu saat tertentu yang dinamai, byte yang persis ini sudah ada di dunia. Halaman ini membangun gagasan itu dari dasar: apa yang dilakukan sebuah Time-Stamp Authority, apa yang sebenarnya dimuat sebuah token, dan mengapa sebuah angka pada jam menjadi bukti.
Ini adalah pendamping dari-prinsip-dasar bagi halaman yang berfokus pada mesin, Stempel waktu dan waktu tepercaya. Bacalah halaman ini lebih dahulu jika “waktu tepercaya” terdengar seperti jargon.
Mengapa ini penting
Bagian berjudul “Mengapa ini penting”Jam pada komputer Anda adalah sebuah pengakuan, bukan bukti. Anda dapat mengaturnya ke nilai apa pun yang Anda suka, dan begitu pula siapa saja. Begitu sebuah tanggal menjadi penting bagi pihak kedua — sebuah kontrak yang harus ditandatangani sebelum tenggat, sebuah catatan yang harus ada sebelum sebuah sengketa — jam Anda sendiri tidak berharga sebagai bukti, karena Anda mengendalikannya. Seluruh persoalan waktu tepercaya adalah menemukan jam yang tidak dapat Anda geser.
Ini bukan kepedulian yang sempit. Setiap PDF bertanda tangan yang berumur panjang bersandar padanya. Sebuah sertifikat penandatanganan pada akhirnya kedaluwarsa; bertahun-tahun kemudian, seorang verifikator perlu tahu bahwa tanda tangan itu dibuat ketika sertifikatnya masih valid. Tanpa catatan independen tentang “kapan”, pertanyaan itu tidak memiliki jawaban yang jujur. Waktu tepercaya adalah fondasi senyap yang menjadi tumpuan seluruh bangunan tanda tangan yang tahan lama.
Versi singkat
Bagian berjudul “Versi singkat”- Sebuah stempel waktu membuktikan bahwa sepotong data telah ada sebelum sebuah saat yang dinyatakan. Itu adalah sebuah batas atas atas usia, tidak lebih.
- Ia diproduksi oleh pihak ketiga, sang Time-Stamp Authority (TSA), yang jamnya Anda percaya justru karena ia bukan milik Anda.
- TSA tidak pernah melihat data Anda. Ia menandatangani sebuah hash darinya, yang terikat ke sebuah nilai waktu, dan mengembalikan sebuah token bertanda tangan yang kecil.
- Token membuktikan tiga hal sekaligus: datanya adalah datanya (hash-nya cocok), waktunya adalah waktu TSA (tanda tangannya), dan balasannya cocok dengan permintaan yang Anda kirim (nonce yang digemakannya kembali, menjaga terhadap respons lama yang diputar ulang).
- Ia tidak membuktikan siapa yang menulis data, bahwa data itu benar, atau saat penciptaan yang persis. Hanya: tidak lebih lambat dari ini.
- Kepercayaan mengalir ke TSA. Sebuah TSA yang tepercaya secara publik cukup baik untuk sebagian besar catatan; sebuah TSA berkualifikasi-eIDAS membawa praduga hukum di Uni Eropa.
Bagaimana NextPDF menanganinya
Bagian berjudul “Bagaimana NextPDF menanganinya”Mulailah dengan trik di pusat segalanya. Anda ingin orang asing menjamin kapan data Anda ada, tetapi Anda tidak dapat menunjukkan datanya kepada mereka — ia mungkin rahasia, dan lagi pula ia bisa jadi sangat besar. Jadi Anda tidak melakukannya. Anda menghitung sebuah hash: sidik jari yang pendek dan berpanjang-tetap, yang berubah total jika bahkan satu byte dari aslinya berubah, dan yang darinya aslinya tidak dapat dipulihkan. Anda mengirim sidik jarinya, bukan berkasnya.
TSA mengambil sidik jari itu, melekatkan waktu saat ininya sendiri, menandatangani pasangan itu dengan kunci privatnya, dan mengembalikan sebuah time-stamp token (Spec: RFC 3161, §2.1RFC 3161 §2.1). Token itu adalah ikatan yang dibuat permanen: sidik jari ini, pada waktu ini, dijamin oleh saya. Karena token ditandatangani, tak seorang pun — bahkan TSA sesudahnya — dapat mengubah waktunya tanpa merusak tanda tangannya. Karena ia membawa sidik jari Anda, ia tidak berguna untuk berkas lain mana pun. Dan karena permintaannya menyertakan sebuah nonce acak yang segar yang digemakan kembali TSA tanpa diubah, Anda dapat mengetahui bahwa balasannya berkaitan dengan permintaan khusus ini dan bukan pemutaran ulang sebuah respons lama — nonce itu meneguhkan kesegaran, bukan siapa yang bertanya (Spec: RFC 3161, §2.4.2RFC 3161 §2.4.2).
Bayangkan sebuah segel lilin yang ditekankan di atas sepucuk surat terlipat. Segelnya tidak membaca suratnya; ia hanya membuktikan bahwa suratnya utuh dan hadir ketika segel itu ditekankan. Sebuah stempel waktu adalah segel yang ditekankan oleh sebuah jam yang tidak Anda miliki, di atas sidik jari data Anda.
- Fingerprint the dataCompute a one-way hash of the file or the signature value. The data itself never leaves your hands.
- Ask the authoritySend the hash and a fresh random nonce to the Time-Stamp Authority.
- The TSA seals a timeIt signs the hash bound to its own clock and echoes your nonce, producing a small signed token.
- Store the tokenFor a PDF, the token is placed inside the file so the proof travels with the document.
- Verify laterAnyone who trusts the TSA can check the token: its signature against the TSA certificate, the matching hash, the echoed nonce, and the time — then concludes an upper bound on age.
Di dalam sebuah PDF, mekanisme yang sama ini mengenakan dua topi. Sebuah stempel waktu tanda tangan menyegel kapan sebuah tanda tangan diterapkan, dengan menstempel-waktu nilai tanda tangan itu. Sebuah stempel waktu dokumen menyegel kapan keseluruhan berkas ada, dengan meng-hash seluruh PDF (mengecualikan placeholder yang akan ditempati token) dan menyimpan token yang dikembalikan itu kembali ke dalam placeholder tersebut (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5). Jenis kedua adalah hal yang diperbarui oleh sebuah tanda tangan arsip yang berumur panjang selama bertahun-tahun untuk menjaga kepercayaannya tetap segar.
Satu detail modern yang layak diketahui: sebuah format stempel waktu yang lebih lama menyematkan dirinya pada satu algoritme hash untuk menamai sertifikat TSA-nya sendiri. Profil yang diperbarui memungkinkan sebuah token menamai sertifikatnya dengan sebuah digest masa kini sebagai gantinya (Spec: RFC 5816, §2.1RFC 5816 §2.1), sehingga waktu tepercaya tidak secara diam-diam mewarisi kriptografi kemarin.
Contoh praktis
Bagian berjudul “Contoh praktis”Anda tidak merakit sebuah token dengan tangan, dan Anda seharusnya tidak ingin melakukannya. Hal yang layak dipahami adalah sambungan kepercayaan: jam mana yang Anda pilih untuk dipercaya. Di NextPDF, meminta sebuah level tanda tangan yang membutuhkan waktu tepercaya menjadikan pilihan itu eksplisit alih-alih implisit.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// A baseline signature trusts only the signer's own clock.$baseline = SignatureLevel::PAdES_B_B;$baseline->requiresTimestamp(); // false → no third party vouches for "when"
// Stepping up to B-T means a Time-Stamp Authority must be supplied:// from here on, "when" is attested by a clock you do not control.$timestamped = SignatureLevel::PAdES_B_T;$timestamped->requiresTimestamp(); // true → a TSA is now part of your trust model
// The decision is now visible at the call site, not buried in a default.// Choosing the TSA is choosing whose time becomes your evidence.Inti contoh ini bukanlah API-nya. Intinya adalah bahwa “apakah saya punya waktu tepercaya?” adalah sebuah fakta ya-atau-tidak tentang dokumen Anda, yang ditentukan oleh apakah sebuah TSA terlibat — dan mesin menolak membiarkan fakta itu menjadi ambigu.
Kesalahpahaman umum
Bagian berjudul “Kesalahpahaman umum”Jebakannya adalah membaca sebuah stempel waktu sebagai “ini dibuat pada 14:32.” Ia tidak menyatakan hal semacam itu. Ia menyatakan “ini telah ada tidak lebih lambat dari 14:32.” Perbedaannya adalah intinya. Sebuah stempel waktu adalah sebuah batas atas, tidak pernah batas bawah dan tidak pernah sebuah saat yang persis. Data Anda bisa saja telah ada selama bertahun-tahun sebelum Anda sempat menstempel-waktunya; token itu bungkam tentang hal itu. Ia menarik satu garis dan berkata: tidak setelah sini.
Kesalahpahaman kedua yang lebih mahal: bahwa sebuah stempel waktu membuktikan dokumen Anda asli atau benar. Ia tidak melakukan keduanya. Ia acuh tak acuh terhadap makna. Sebuah kebohongan yang berstempel-waktu dengan sempurna tetaplah sebuah kebohongan — kini terbukti tua. Keaslian datang dari tanda tangan yang menyatakan siapa; kebenaran datang dari dunia. Stempel waktu hanya pernah berbicara tentang kapan.
Batasan dan ruang lingkup
Bagian berjudul “Batasan dan ruang lingkup”Jangkauan sebuah stempel waktu berhenti persis di tempat model kepercayaannya berhenti. Ia membuktikan sebuah batas atas atas usia, dan hanya itu, dan hanya jika Anda mempercayai otoritas yang menyegelnya.
Ada dua tingkatan otoritas yang layak dibedakan. Sebuah TSA yang tepercaya secara publik berantai ke sebuah sertifikat yang sudah diterima perangkat lunak Anda; tokennya dapat diverifikasi secara luas dan baik untuk sebagian besar catatan. Sebuah TSA berkualifikasi-eIDAS adalah penyedia tersupervisi pada sebuah daftar tepercaya Uni Eropa, dan sebuah stempel waktu elektronik berkualifikasi membawa sebuah praduga hukum atas akurasi tanggalnya dan integritas datanya — sebuah praduga yang tidak dimiliki sebuah stempel waktu biasa (Spec: eIDAS, Art. 41eIDAS Art. 41). Memilih di antara keduanya adalah pertanyaan tentang bobot pembuktian yang Anda butuhkan, bukan tentang bagaimana byte-nya bekerja; kriptografinya sama.
Sebuah stempel waktu juga mewarisi masa hidup jangkar kepercayaannya sendiri. Sertifikat TSA dapat kedaluwarsa atau dicabut, dan algoritme hash yang digunakannya dapat menua. Itulah persisnya mengapa dokumen berumur panjang tidak menstempel-waktu sekali lalu pergi begitu saja — mereka memperbarui, melapiskan sebuah stempel waktu dokumen yang segar di atas bukti lama sebelum bukti lama itu melemah. Loop pembaruan itu adalah subjeknya sendiri; lihat Validasi jangka panjang.
| Edition | Availability |
|---|---|
| Core | Mendukung PAdES B-B dan B-T. B-B adalah tanda tangan baseline tanpa stempel waktu; B-T meminta dan menanamkan sebuah stempel waktu tanda tangan RFC 3161 terverifikasi terhadap sebuah TSA yang disediakan deployment yang jamnya Anda pilih. |
| Pro | Menambahkan data validasi jangka panjang yang tertanam (sertifikat, OCSP, CRL) yang dibutuhkan B-LT untuk menjaga sebuah tanda tangan tetap dapat diverifikasi setelah sertifikatnya kedaluwarsa. |
| Enterprise | Menambahkan loop pembaruan B-LTA, menyegel data validasi di bawah sebuah stempel waktu dokumen yang segar dan menstempel-ulangnya sebelum proteksinya melemah. |
Dokumen terkait
Bagian berjudul “Dokumen terkait”- Stempel waktu dan waktu tepercaya — mekanisme yang sama di tingkat mesin dan PAdES, dengan aturan verifikasinya diuraikan.
- Validasi jangka panjang — bagaimana memperbarui stempel waktu dokumen menjaga sebuah tanda tangan tetap dapat diverifikasi selama bertahun-tahun.
- Bagaimana sebuah tanda tangan membuktikan siapa yang menandatangani — paruh “siapa” dari cerita yang dikesampingkan halaman ini.
- Tanda tangan berkualifikasi dijelaskan — apa arti “berkualifikasi”, dan mengapa sebuah TSA berkualifikasi membawa bobot hukum.
Glosarium
Bagian berjudul “Glosarium”- Time-Stamp Authority (TSA) — sebuah layanan independen yang menerbitkan token stempel waktu bertanda tangan. Anda mempercayai jamnya justru karena ia bukan milik Anda.
- Time-stamp token — objek bertanda tangan kecil yang dikembalikan sebuah TSA, mengikat sebuah hash dari data Anda ke sebuah nilai waktu (Spec: RFC 3161, §2.1RFC 3161 §2.1).
- Hash (message imprint) — sebuah sidik jari satu-arah yang pendek dari data. TSA menandatangani ini, tidak pernah datanya sendiri, sehingga konten Anda tetap privat.
- Nonce — sebuah angka acak segar yang dikirim bersama permintaan dan digemakan tanpa diubah dalam balasan, menunjukkan bahwa token berkaitan dengan permintaan khusus itu dan bukan sebuah respons lama yang diputar ulang (ia meneguhkan kesegaran, bukan identitas peminta).
- Batas atas — apa yang ditetapkan sebuah stempel waktu: data telah ada tidak lebih lambat dari saat yang dinyatakan. Tidak pernah sebuah saat penciptaan yang persis.
- Stempel waktu berkualifikasi-eIDAS — sebuah stempel waktu dari penyedia Uni Eropa yang tersupervisi yang membawa sebuah praduga hukum atas akurasi tanggal dan integritas data.
- Stempel waktu dokumen — sebuah stempel waktu atas seluruh berkas PDF, digunakan untuk menjangkar dan memperbarui bukti validasi jangka panjang (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5).