GNU/Linux >> Belajar Linux >  >> Linux

Tanda tangan digital dengan GnuPG

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. ]


Linux
  1. Izin File di Linux dengan Contoh

  2. Cara Menandatangani File Secara Digital di Linux menggunakan GnuPg (Tanda Tangan Digital)

  3. Peringatan dengan nftw

  1. Mempertahankan izin file dengan Git

  2. tar -C dengan pola file wildcard

  3. Bagaimana cara mengisi file dengan FF menggunakan dd?

  1. Urutkan Perintah di Linux dengan Contoh

  2. Memulai dengan ls

  3. Apakah mv dengan wildcard masih atomik