Di artikel sebelumnya, saya memperkenalkan GnuPG dengan memverifikasi file yang ditandatangani dan mengenkripsi file untuk penerima menggunakan kunci publik. Saya juga telah membagikan cara membuat pasangan kunci dan mengekspor kunci publik sehingga kami dapat menerima pesan terenkripsi. Dalam artikel ini, saya akan mendemonstrasikan cara menandatangani file sebelum berbagi melalui email atau mempublikasikan di situs web.
Dengan GnuPG, ada beberapa metode untuk menandatangani file.
$ gpg --help | grep -i sign
Sign, check, encrypt or decrypt
-s, --sign make a signature
--clear-sign make a clear text signature
-b, --detach-sign make a detached signature
--verify verify a signature
Saat setiap opsi dibahas, saya akan menandatangani file teks sederhana.
$ cat sample.txt
Sample text for gpg signing
Buat tanda tangan
Dengan --sign
pilihan, file secara efektif dienkripsi dengan kunci pribadi. Kunci publik diperlukan untuk melihat konten file. Ini memaksa penerima untuk memverifikasi asal dan menghapus konten teks yang jelas dari transit. Ini tidak bersifat pribadi karena siapa pun yang memiliki kunci publik dapat mendekripsi file.
$ gpg -s sample.txt
Ini menghasilkan file bernama sample.txt.gpg.
$ file sample*
sample.txt: ASCII text
sample.txt.gpg: data
Untuk memverifikasi hanya tanda tangan, gunakan --verify
pilihan. Untuk melihat konten dan menunjukkan verifikasi tanda tangan, gunakan --decrypt
pilihan.
$ gpg --decrypt sample.txt.gpg
Sample text for gpg signing
gpg: Signature made Sat 30 May 2020 09:16:24 AM EDT
gpg: using DSA key 15AC***********
...omitted...
Buat tanda tangan terpisah
Opsi tanda tangan terpisah tersedia untuk memberi semua orang opsi untuk melihat pesan tanpa memiliki kunci publik. Ini membuat file tanda tangan terpisah yang digunakan untuk memverifikasi pesan asli jika diinginkan. Dalam bentuknya yang paling sederhana, file ini berisi hash dari pesan asli dan dienkripsi dengan kunci pribadi. Siapa pun yang memiliki kunci publik dapat membuka tanda tangan dan kemudian membandingkan hash untuk memverifikasi integritas file yang ditandatangani.
Buat file tanda tangan dengan menggunakan --detach-sign
pilihan.
$ gpg -b sample.txt
Hasilnya adalah .sig yang terpisah berkas data.
$ file sample*
sample.txt: ASCII text
sample.txt.gpg: data
sample.txt.sig: data
Jika Anda tidak ingin membagikan, memposting, atau mengirim file data melalui email, Anda dapat menandatangani file tersebut dengan --armor
opsi, dan itu akan membuat file teks ASCII dengan tanda tangan. Itu juga akan menggunakan .asc ekstensi alih-alih .sig ekstensi:
$ cat sample.txt.asc
-----BEGIN PGP SIGNATURE-----
iF0EABECAB0WIQQVrPeUo9lk0dnOTCbvwxHCv6EJdAUCXtO/yAAKCRDvwxHCv6EJ
dC2BAJ49fIcOdBUdE0PELySEMlKNzVnZLgCdG1gsTim3gab2dgL6qagHArSlgq8=
=IvP/
-----END PGP SIGNATURE-----
File teks biasa asli dan file tanda tangan terpisah harus tersedia bagi penerima.
Untuk memverifikasi tanda tangan, tentukan file tanda tangan dan kemudian file asli.
$ gpg --verify sample.txt.sig sample.txt
Jika nama default telah digunakan, Anda dapat mengabaikan nama file yang tidak dienkripsi.
$ gpg --verify sample.txt.sig
gpg: assuming signed data in 'sample.txt'
gpg: Signature made Sat 30 May 2020 09:23:53 AM EDT
...omitted...
Buat tanda tangan teks yang jelas
--clear-sign
option adalah opsi yang lebih baru dalam hal sejarah panjang GPG dan sangat umum untuk file yang dipublikasikan ke situs web seperti file CHECKSUM unduhan Fedora. Isinya bisa dibaca oleh siapa saja. Informasi tanda tangan juga tersedia dalam file yang sama bagi mereka yang ingin memverifikasi asal dan integritas konten.
--clear-sign
opsi akan membuat file baru dengan .asc ekstensi.
$ gpg --clear-sign sample.txt
$ file sample*
sample.txt: ASCII text
sample.txt.asc: ASCII text
sample.txt.gpg: data
sample.txt.sig: data
Untuk memverifikasi tanda tangan, gunakan --verify
pilihan:
$ gpg --verify sample.txt.asc
gpg: Signature made Sat 30 May 2020 09:27:56 AM EDT
...omitted...
gpg: WARNING: not a detached signature; file 'sample.txt' was NOT verified!
Perhatikan bahwa pesan ditampilkan selama proses verifikasi yang memperingatkan bahwa file asli terkait tidak dicentang. Anda dapat mengganti nama file ini sebelum mempostingnya di situs web Anda. Verifikasi masih akan memeriksa isi file.
Meskipun ini sering kali merupakan metode yang paling nyaman bagi konsumen produk Anda, ada peringatan di halaman manual GPG bahwa tanda tangan terpisah adalah pilihan yang lebih baik ketika verifikasi penuh diperlukan.
Dari halaman manual gpg:
Catatan:Saat memverifikasi tanda tangan cleartext, GPG hanya memverifikasi apa yang membentuk data yang ditandatangani cleartext dan bukan data tambahan di luar tanda tangan cleartext atau baris header yang langsung mengikuti garis tanda hubung. Opsi --output dapat digunakan untuk menulis data yang ditandatangani sebenarnya, tetapi ada perangkap lain dengan format ini juga. Disarankan untuk menghindari tanda tangan cleartext demi tanda tangan terpisah.
Menggunakan pasangan kunci tertentu
Contoh di atas semuanya ditandatangani dengan kunci pribadi pertama yang tersedia di keyring saya. Saya mungkin ingin menggunakan kunci yang berbeda ketika saya menandatangani file untuk publikasi di situs web. Sebuah keypair dibuat khusus untuk proyek atau produk. Pasangan kunci bahkan dapat berada di gantungan kunci bersama yang baru.
$ gpg --keyring /etc/gpgkeys --no-default-keyring --full-gen-key <other options>
Saat file ditandatangani atau dienkripsi, pastikan juga untuk menentukan --keyring
pilihan.
Meskipun hanya satu orang yang menggunakan kunci untuk menandatangani file, buatlah pasangan kunci terpisah untuk digunakan untuk penandatanganan. Jangan gunakan kunci yang sama untuk tugas harian lainnya seperti enkripsi email pribadi. Anda dapat membuat daftar nama kunci pribadi yang tersedia dengan gpg --list-secret
. ID, nama, atau email dapat digunakan untuk mengidentifikasi kunci.
Untuk menandatangani file dengan kunci tertentu dari gantungan kunci, gunakan --local-user
pilihan identitas.
$ gpg --local-user "My Project 2" --clear-sign sample.txt
Selesai
Jika file teks sederhana Anda adalah daftar hash checksum untuk unduhan produk Anda, file itu, file tanda tangan apa pun, dan kunci publik yang digunakan untuk memverifikasi tanda tangan semuanya dapat diposting ke situs web. Konsumen kemudian dapat memverifikasi unduhan sebelum menginstal perangkat lunak apa pun di sistem mereka.
[ Ingin mempelajari lebih lanjut tentang keamanan? Lihat daftar periksa keamanan dan kepatuhan TI. ]