Karena banyak organisasi beralih dari dokumen kertas ke dokumen digital, tanda tangan digital diperlukan untuk mengelola dokumen digital sensitif apa pun. Tanda tangan digital dapat digunakan untuk mengotentikasi sumber pesan, sehingga penerima dapat memutuskan apakah akan mempercayai pengirim atau tidak. Saat ini, ini paling banyak digunakan untuk distribusi perangkat lunak dan transaksi keuangan.
Dalam kriptografi kunci publik, dimungkinkan untuk menggunakan kunci pribadi untuk menandatangani file. Siapa pun yang memiliki kunci publik terkait dapat memeriksa apakah file telah ditandatangani oleh kunci pribadi. Siapa pun yang tidak memiliki kunci pribadi tidak dapat memalsukan tanda tangan seperti itu.
Tanda tangan digital dapat digunakan untuk autentikasi pengirim dan non-penolakan. Penanda tangan tidak dapat mengklaim bahwa mereka tidak menandatangani dokumen.
Saat ini, tanda tangan digital memainkan peran kunci dalam distribusi perangkat lunak. Saat Anda menginstal perangkat lunak apa pun dari mirror debian, setelah perangkat lunak diunduh, perangkat tersebut akan memverifikasi apakah perangkat lunak tersebut berasal dari sumber tepercaya dengan memverifikasi tanda tangan, sehingga memastikan bahwa paket tersebut berasal dari sumber tepercaya.
Sekarang, kita akan melihat berbagai metode untuk menandatangani dokumen menggunakan alat GnuPG.
Jika Anda baru mengenal alat GnuPG, Anda harus terlebih dahulu memahami cara menggunakan perintah gpg dasar.
Tanda tangan digital, mengesahkan dan memberi cap waktu pada dokumen. Jika dokumen diubah dengan cara apa pun, verifikasi tanda tangan akan gagal.
1. Buat tanda tangan digital untuk sebuah file
Untuk menandatangani dokumen secara digital, opsi tanda-tanda digunakan. Anda akan diminta memasukkan frasa sandi untuk membuka kunci pribadi yang digunakan untuk menandatangani dokumen.
$ gpg --sign file.txt You need a passphrase to unlock the secret key for user: "lakshmanan (This is lakshmans key) " 2048-bit RSA key, ID 3630F8D6, created 2012-12-30 Enter passphrase:
Sekarang akan membuat file bernama "file.txt.gpg" dalam format biner. File input dikompresi sebelum menandatangani file.
2. Verifikasi tanda tangan digital
Diberikan dokumen yang ditandatangani, Anda dapat memverifikasi tanda tangan menggunakan opsi –verifikasi.
$ gpg --verify file.txt.gpg gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6 gpg: Good signature from "lakshmanan (This is lakshmans key) "
Perintah di atas memverifikasi bahwa tanda tangan yang dibuat baik.
3. Ekstrak dokumen dari file
Untuk mengekstrak dokumen asli dari file yang ditandatangani, gunakan opsi –decrypt. Anda dapat menggunakan –output untuk menentukan file output untuk menyimpan konten file yang sebenarnya.
$ gpg --output doc.txt --decrypt file.txt.gpg gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6 gpg: Good signature from "lakshmanan (This is lakshmans key) "
Sekarang dokumen yang sebenarnya akan disimpan dalam file doc.txt.
4. Untuk menghapus tanda tangani dokumen
Penggunaan tanda tangan digital yang umum adalah untuk mengirim E-Mail. Dalam kasus seperti itu, tidak diinginkan untuk mengompres file dalam biner dan menandatanganinya. Anda dapat menggunakan opsi –clearsign untuk membuat file dibungkus dengan tanda tangan lapis baja ASCII.
$ gpg --output file.sig --clearsign file.txt
Sekarang file ASCII bernama file.sig akan dibuat yang berisi tanda tangan digital dan file itu sendiri.
$ cat file.sig -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 This is a test file -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQEcBAEBAgAGBQJQ8af1AAoJEHUf3BE2MPjWJ6QIAIoM7vZlvVD4PR4TgqKkUAr5 S4Pc/7tjkEquBcPfzHgm6MPdTd7kIvUzwHNkkST0FyB2cLzvx8wNf7Zp/kDYL0Uz /7UCocMPsDBYHasUY4XRfCDUkF0ER/NAFdiL9AUTvQf6oQxwuQG9sWxb6tcK8eiV U7BBvQvMl6RszP+e7VXgcDbNeYMrTDwrivP9BKwAFuBtZmRg0vQKnjenUyVJL6gJ tndkwtOd1XGpc5ZKCTRSKOoTonuUQAD1q0Pi6nmeaNskSqwVOxzQcV6lQ8nHJTh2 XfKSAopNriv405YfC1KO5H2Ffzee2jx+o3HqxfU1vQbHtP7uf4QqxUc2HtDnRNQ= =PN+K -----END PGP SIGNATURE-----
Memverifikasi dokumen bertanda tangan jelas mirip dengan memverifikasi dokumen bertanda biner.
5. Buat tanda tangan terpisah
Dalam kasus tanda tangan terpisah, file baru dibuat sebagai tanda tangan. Anda dapat menggunakan opsi –detach-sign untuk membuat tanda tangan terpisah.
$ gpg --armor --detach-sig file.txt
Sekarang file ASCII bernama file.txt.asc akan dibuat yang berisi tanda tangan terpisah. Anda dapat menggunakan –output untuk mengubah nama file tanda tangan yang terpisah.
6. Verifikasi tanda tangan yang terpisah
Untuk memverifikasi tanda tangan yang terpisah, Anda harus memiliki file tanda tangan dan file data.
$ gpg --verify file.txt.asc file.txt gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6 gpg: Good signature from "lakshmanan (This is lakshmans key) "
Mari kita coba mengedit file.txt. Tambahkan beberapa konten ke file.txt dan coba verifikasi tanda tangan.
$ echo "Append" >> file.txt $ gpg --verify file.txt.asc file.txt gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6 gpg: BAD signature from "lakshmanan (This is lakshmans key) "
Sekarang verifikasi gagal mengatakan tanda tangan BURUK karena kontennya dimodifikasi.
7. Mengenkripsi dan Menandatangani dokumen
Di salah satu postingan kami sebelumnya, kami juga membahas secara detail tentang cara mengenkripsi dan mendekripsi file menggunakan GnuPG. Namun, jika Anda ingin mengenkripsi dan menandatangani dokumen secara bersamaan, lakukan hal berikut:
$ gpg --sign --encrypt --recipient raman file.txt
Perintah di atas mengenkripsi file.txt dan menandatangani dokumen secara digital. Penerima dapat memverifikasi tanda tangan dan mendekripsi dokumen menggunakan opsi –dekripsi.