PDF yang dilindungi kata sandi dan batasannya
PDF saya terkunci dan alatnya bilang tidak bisa mengeditnya. Kenapa, dan apa saja pilihan saya?
Ada dua kata sandi yang berbeda
Enkripsi PDF, yang didefinisikan dalam ISO 32000, membedakan kata sandi pengguna dari kata sandi pemilik. Kata sandi pengguna — sering disebut kata sandi buka — dibutuhkan untuk mendekripsi dokumennya sama sekali. Tanpa itu, content stream-nya hanyalah ciphertext dan tidak ada perangkat lunak yang bisa membaca satu halaman pun. Kata sandi pemilik berbeda: dokumennya tetap terbuka tanpa kata sandi itu, tetapi kamus enkripsinya membawa flag izin yang menyatakan apa saja yang seharusnya ditolak oleh penampil yang patuh, misalnya mencetak, menyalin teks, atau mengubah filenya.
Perbedaan itu menjelaskan hampir semua kebingungan yang ada. Dokumen yang terbuka seketika tetapi menolak membiarkan Anda menyalin satu paragraf bukanlah dokumen yang "terbuka kuncinya" — ia terenkripsi dengan kata sandi pengguna kosong plus sekumpulan pembatasan.
Apa yang sebenarnya dilindungi enkripsinya
| Kata sandi | Perlu untuk membuka? | Apa yang dilindunginya | Seberapa kuat |
|---|---|---|---|
| Kata sandi pengguna (buka) | Ya | Isinya sendiri; stream dan string-nya terenkripsi | Sekuat cipher dan kata sandi yang dipilih |
| Kata sandi pemilik (izin) | Tidak | Tidak ada apa pun secara kriptografis; ia hanya memasang flag yang diminta dipatuhi penampil | Sebatas imbauan |
Flag izin adalah permintaan kepada perangkat lunak yang berperilaku baik, bukan mekanisme penegakan. Byte-nya sudah didekripsi begitu dokumennya terbuka, jadi program mana pun yang memilih mengabaikan flag itu bisa melakukannya. Anggap flag tersebut sebagai pernyataan niat — berguna untuk memberi sinyal bagaimana sebuah dokumen sebaiknya dipakai, tidak berguna sebagai kontrol keamanan.
Kenapa penyunting menolak filenya
Untuk menyusun ulang sebuah PDF — menggabungkannya, memecahnya, memutar halamannya, membuang objek yang tak terpakai — sebuah pustaka harus mengurai graf objeknya. Pada dokumen terenkripsi, string dan stream yang menyusun graf itu berupa ciphertext sampai kunci yang benar diturunkan. Tidak ada apa pun untuk diurai. Ini bukan keputusan kebijakan dari alatnya; memang belum ada dokumen di sana.
Jadi alat PDF struktural di FileSlimmer dinonaktifkan untuk dokumen terenkripsi, dan mengatakannya terus terang, alih-alih gagal di tengah jalan dengan keluaran yang rusak. Itu perilaku yang benar, meskipun bukan yang paling nyaman.
Apa yang terjadi pada kata sandi yang Anda ketikkan
Di tempat jalur berbantuan kata sandi ditawarkan, kata sandinya dipakai untuk menurunkan kunci dekripsi di dalam memori, di tab browser ini, selama tugasnya berjalan. Kata sandi itu tidak ditulis ke local storage, tidak ditulis ke cache Service Worker, tidak dimasukkan ke URL, dan tidak dikirimkan ke mana pun — tidak ada server di aplikasi ini yang bisa menjadi tujuannya. Begitu tabnya ditutup, kata sandi itu lenyap.
Meski begitu, tetap penting untuk berhati-hati soal di mana Anda mengetikkan kata sandi apa pun. Ekstensi browser bisa membaca isi sebuah halaman, dan itu berlaku untuk setiap situs web, termasuk situs ini. Kalau sebuah dokumen cukup sensitif sehingga hal ini penting, bukalah kuncinya di perangkat lunak desktop offline yang Anda percayai.
Apa yang tidak akan dilakukan alat ini
- Ia tidak akan mencoba memulihkan atau mem-brute force kata sandi yang tidak Anda miliki.
- Ia tidak akan mencopot kata sandi pemilik untuk menembus flag izin pada dokumen yang bukan hak Anda.
- Ia tidak akan diam-diam menghasilkan salinan terdekripsi dari dokumen yang Anda buka dengan kata sandi; menghilangkan proteksi adalah tindakan tersendiri yang harus eksplisit.
- Ia tidak akan berpura-pura bahwa flag izin adalah batas keamanan.
Menghilangkan proteksi dari dokumen yang tidak berhak Anda ubah juga bisa melanggar kontrak atau hukum di tempat Anda tinggal. Itu urusan Anda dan, kalau memang penting, urusan pengacara — bukan urusan sebuah alat kompresi.
Pilihan realistis ketika Anda mentok
- Mintalah salinan tanpa proteksi kepada pihak yang membuat dokumennya. Ini sejauh ini solusi yang paling umum dan hanya butuh satu pesan.
- Kalau Anda punya kata sandi bukanya, pakailah: begitu dokumennya terdekripsi, semua operasi biasa tersedia kembali.
- Kalau Anda hanya perlu halamannya untuk dilihat, cetak ke PDF atau ekspor salinan hasil rasterisasi. Anda kehilangan lapisan teks, tautan, dan struktur aksesibilitasnya, dan Anda mempertahankan tampilannya.
- Kalau dokumennya bertanda tangan sekaligus terenkripsi, berhentilah dan pikirkan ulang. Modifikasi apa pun membatalkan tanda tangannya, dan dokumen bertanda tangan biasanya ada justru karena seseorang perlu memverifikasinya nanti.
Satu keterbatasan lagi
Revisi enkripsi PDF yang lebih tua memakai penurunan kunci yang lemah dan kunci yang pendek, dan sudah dianggap jebol. Revisi yang lebih baru memakai AES dengan fungsi penurunan yang layak. Anda tidak bisa mengetahui revisi mana yang dipakai sebuah dokumen hanya dengan melihatnya, dan alat yang cepat membuka file lama bukan bukti bahwa file baru akan berperilaku sama. Kalau Anda sedang memilih proteksi untuk dokumen yang Anda buat sendiri, pilihlah perangkat lunak mutakhir dan kata sandi yang panjang, bukan bersandar pada sejarah formatnya.
Alat untuk ini
Sumber
- ISO 32000-2 — Document management, Portable Document Format
- Adobe — PDF 32000-1:2008, clause 7.6 on encryption and permissions
- NIST FIPS 197 — the Advanced Encryption Standard