[Applied Cryptography,
Bruce Schneier. Ch.2 p.34-41]
Syarat sebuah signature:
- Signature adalah otentik. Tanda akan meyakinkan si penerima dokumen bahwa si pemberi tanda dengan sengaja telah menandai dokumen tersebut.
- Signature tidak dapat dipalsukan. Tanda membuktikan bahwa si penanda telah dengan sengaja menandai dokumen.
- Signature tidak dapat dipergunakan ulang. Tanda merupakan bagian dari dokumen; orang lain tidak dapat memindahkan tanda ke dokumen yang berbeda.
- Dokumen yang ditandai tidak dapat diubah-ubah. Setelah dokumen diberi tanda, maka dokumen tersebut tidak dapat diubah.
- Signature tidak bisa disangkal. Tanda dan dokumen memiliki wujud fisik. Si penanda tidak dapat menolak bahwa ia tidak menandai dokumennya.
Penandaan dokumen
dengan kriptosistem simetris dan seorang arbitrator
Alice dan Bob akan bertukar pesan. Trent adalah arbitrator, orang
yang dipercaya oleh keduanya. Trent memberikan kunci rahasia, KA,
kepada Alice, dan kunci rahasia berbeda , KB, kepada Bob. Kedua
kunci tersebut telah dibuat jauh sebelum protokol dimulai, dan dapat digunakan ulang
untuk beberapa kali penandaan. Skemanya adalah sebagai berikut:
- Alice mengenkripsi pesannya untuk Bob dengan kunci KA dan mengirimkannya pada Trent.
- Trent mendekripsi pesan Alice dengan KA.
- Trent mengambil pesan hasil dekripsi beserta pernyataan bahwa ia telah menerima pesan tersebut dari Alice, keduanya menjadi satu bundle. Kemudian Trent mengenkripsi bundle tersebut dengan KB.
- Trent mengirimkan bundle terenkripsi kepada Bob.
- Bob mendekripsi bundle menggunakan KB. Sekarang ia dapat membaca pesan dari Alice dan sertifikat dari Trent bahwa pesan itu adalah benar dikirim oleh Alice.
Jika Bob ingin memperlihatkan dokumen, yang telah ditandai
Alice, kepada Carol, maka Bob tidak boleh memberitahu kunci rahasianya. Ia
harus menghubungi Trent terlebih dahulu:
- Bob mengambil pesan dan pernyataan Trent bahwa pesan tersebut berasal dari Alice. Kemudian ia mengenkripsinya dengan KB, dan mengirimkan kembali bundle itu kepada Trent.
- Trent mendekripsi bundle dengan KB.
- Trent memeriksa database-nya dan mengkonfirmasi bahwa pesan aslinya memang berasal dari Alice.
- Trent mengenkripsi ulang bundle menggunakan kunci rahasia yang ia bagi kepada Carol, yaitu KC, dan mengirimkannya kepada Carol.
- Carol mendekripsi bundle menggunakan KC. Sekarang ia dapat membacanya keduanya, pesan dari Alice dan sertifikat dari Trent bahwa Alice yang telah mengirimkan dokumen itu.
Kelemahan dari sistem ini adalah arbitrator akan
menghabiskan banyak waktu dengan enkripsi-dekripsi pesan, menjadi penengah dari
setiap pihak yang akan bertukar dokumen, dan save-restore pesan dari dan ke database.
Akibatnya, arbitrator akan menjadi bottleneck
dari semua sistem komunikasi.
Pohon Penanda Dijital
(Digital Signature Trees)
Ide dasar dari skema ini adalah menempatkan root pada suatu
dokumen publik, root telah terotentikasi. Root menandai suatu pesan dan
mengotentikasi sub-node di bawahnya. Setiap node tersebut menandai pesan, yang
telah ditandai oleh root, dan mengotentikasi sub-node di bawahnya, dan begitu
seterusnya.
Penandaan dokumen
dengan Kriptografi Kunci Publik
Dasar protokolnya cukup sederhana:
- Alice mengenkripsi dokumen dengan kunci privatnya, dengan demikian ia telah menandai dokumen tersebut.
- Alice mengirimkan dokumen yang telah ditandai kepada Bob.
- Bob mendekripsi dokumen dengan kunci publik Alice, sehingga ia telah memverifikasi tanda tersebut.
Protokol ini jauh lebih baik dari sebelumnya. Trent tidak
diperlukan lagi untuk menandai maupun memverfikasi signature. Namun ia
dibutuhkan untuk memberikan sertifikasi bahwa kunci publik Alice adalah memang
kunci publik miliknya.
Penandaan dokumen dan
timestamps (penanda waktu)
Sebenarnya Bob dapat mencurangi Alice pada keadaan tertentu.
Ia dapat menggunakan ulang dokumen dan tandanya secara bersamaan.
Katakanlah Alice mengirimkan Bob sebuah cek dijital yang
telah ditandai, senilai $100. Bob membawa cek tersebut ke bank, yang akan
memverifikasi tanda dan memindahkan uang dari rekening Alice ke rekening Bob,
sebesar $100. Bob membuat salinan dari cek dijital tersebut. Minggu berikutnya
Bob membawa cek tersebut ke bank. Bank akan memverifikasi tanda dan kembali
memindahkan uang Alice, dengan nilai yang sama tentunya, ke rekening Bob. Jika
Alice tidak pernah memeriksa uang di rekeningnya, maka Bob akan dapat melakukan
penarikan uang berkali-kali hingga habis.
Untuk mengatasinya, penanda dijital seringkali menyertakan timestamp. Tanggal dan waktu penandaan
dilampirkan pada pesan. Bank menyimpan timestamp
di database. Sekarang, saat Bob
mencoba mencarikan uang dari cek untuk kedua kalinya, maka bank kemudian akan
memeriksa timestamp di database-nya
dan menemukan bahwa cek tersebut telah dicarikan sebelumnya.
Penandaan dijital
dengan kriptografi kunci publik dan fungsi hash satu arah
Pada penerapannya, algoritma kunci publik seringkali tidak
begitu efisien untuk menandai dokumen-dokumen yang panjang. Untuk menghemat
waktu, protokol penandaan dijital seringkali diterapkan dengan fungsi hash satu
arah.
- Alice membuat sebuah hash satu arah dari suatu dokumen.
- Alice mengenkripsi hash dengan kunci privatnya, dengan demikian ia telah menandai dokumen.
- Alice mengirimkan dokumen dan hash, yang telah ditandai (hash tertanda), kepada Bob.
- Bob membuat hash satu arah dari dokumen yang dikirimkan Alice. Ia kemudian mendekripsi hash tertanda dengan kunci publik Alice. Jika hash tertanda tersebut cocok dengan hash yang ia buat, maka penandanya sah.
Protokol ini memiliki beberapa kelebihan. Pertama, tanda
dapat disimpan terpisah dari dokumen. Kedua, media penyimpanan, yang dibutuhkan oleh si penerima untuk
menyimpan dokumen dan tanda, jauh lebih kecil.
Algoritma dan
terminologi
Terdapat banyak algoritma penanda dijital. Semuanya
merupakan algoritma kunci publik dengan informasi rahasia untuk menandai
dokumen, dan informasi publik untuk menverifikasi tanda. Kadang proses
penandaan disebut enkripsi dengan kunci privat, dan proses verifikasi disebut
sebagai dekripsi dengan kunci publik. Ini adalah kesalahpahaman dan hanya benar
untuk satu algoritma saja, yaitu RSA. Sedangkan algoritma lain memiliki
implementasi berbeda. Sebagai contoh, fungsi hash satu arah dan timestamps kadang kala memasukkan
langkah tambahan ke dalam proses penandaan dan verifikasi. Banyak algoritma
dapat digunakan untuk penandaan digital,
tapi tidak untuk enkripsi.
Pada umumnya, penulisan proses penandaan dan verifikasi
tidak disertai dengan detail dari algoritma yang terlibat di dalamnya.
Penandaan suatu pesan dengan kunci privat K adalah:
SK(M)
dan verifikasi suatu tanda dengan kunci publik pasangannya
adalah:
VK(M)
Serangkaian kecil string yang dilampirkan ke dokumen saat
ditandai disebut sebagai penanda dijital
(digital signature), atau hanya tanda (signature)
saja. Pada protokol di atas, proses meyakinkan si penerima pesan mengenai
identitas pengirim dan keutuhan dari pesan itu sendiri disebut sebagai otentikasi.
Nonrepudiation dan penanda dijital
Alice bisa saja curang dengan penandaan dijital dan tidak
ada yang dapat dilakukan terhadap hal seperti itu. Ia dapat menandai suatu
dokumen dan kemudian ia menyatakan tidak pernah melakukannya. Pertama, ia
menandai dokumen seperti biasa. Kemudian ia secara tidak diketahui telah
menyebarkan kunci privatnya sendiri, atau dengan tidak disengaja ia
menghilangkan kunci privatnya di tempat umum, atau ia hanya berpura-pura
melakukan salah satu aksi dari kedua-duanya. Alice kemudian mengklaim bahwa ia
sering mencurigai tanda-nya sendiri dan ada orang lain yang menggunakannya. Ia
menyangkal penandaan pesan dan segala dokumen apapun itu yang ditandai
menggunakan kunci privatnya. Ini dinamakan repudiation (penolakan).
Timestamps dapat
membatasi dampak dari jenis kecurangan seperti itu, tapi Alice dapat selalu
menyatakan bahwa kuncinya telah diragukan dari awal. Jika Alice sering berkata
seperti itu, maka suatu saat ia dapat menandai dokumen dan mengklaim bahwa ia
tidak melakukannya. Pada akhirnya Alice tidak dapat mengotentikasi dirinya
sendiri dan menyalahgunakan kunci privatnya.
Aplikasi penandaan
dijital
Salah satu penerapan dari penandaan dijital adalah
menfasilitasi proses verifikasi perjanjian larangan tes nuklir. Amerika Serikat
dan Uni Soviet saling mengizinkan untuk menyimpan alat seismometer di atas
tanah di negara yang telah ditentukan (host
nation) untuk memantau tes nuklir. Permasalahannya adalah setiap negara perlu
menjamin bahwa host nation tidak
merusak data dari alat pengamatan seismometer. Di waktu yang bersamaan, host nation juga perlu menjamin bahwa
alat seismometer hanya mengirimkan informasi spesifik saja yang dibutuhkan
untuk kegiatan pemantauan.
Teknik otentikasi konvensional dapat memecahkan
masalah pertama, tapi hanya digital
signatures saja yang dapat menyelesaikan kedua permasalahan di atas. Host nation dapat membaca data dari
seismometer, tapi tidak dapat mengubahnya, dan negara pemantau mengetahui bahwa
data yang mereka terima tidak rusak.

