GNU/Linux >> Belajar Linux >  >> Linux

Cara Enkripsi dan Dekripsi file/folder di Linux menggunakan GnuPG

Baru-baru ini salah satu pembaca kami memiliki pertanyaan:“Bagaimana cara mengenkripsi dan mendekripsi beberapa file/folder di Linux, sebaiknya berbasis CLI?”

Inilah solusinya: Untuk mengenkripsi dan mendekripsi file, kami akan menggunakan GnuPG (GNU Privacy Guard), yang merupakan alat GNU untuk enkripsi dan penandatanganan. GnuPG adalah implementasi Berlisensi GPL dari standar OpenPGP ( Pretty Good Privacy ) seperti yang didefinisikan dalam RFC 4880. GnuPG sendiri adalah alat baris perintah tanpa hal-hal grafis. Ini adalah mesin crypto nyata yang dapat digunakan langsung dari command prompt, dari skrip shell atau oleh program lain. Oleh karena itu dapat dianggap sebagai backend untuk aplikasi lain.

Keuntungan GnuPG:

  • Fungsi yang lebih baik daripada PGP dan beberapa peningkatan keamanan melalui PGP 2.
  • Mendekripsi dan memverifikasi pesan PGP 5, 6 dan 7.
  • Mendukung ElGamal, DSA, RSA, AES, 3DES, Blowfish, Twofish, CAST5, MD5, SHA-1, RIPE-MD-160 dan TIGER.
  • Pengimplementasian algoritme baru yang mudah menggunakan modul ekstensi.
  • Mendukung tanggal kedaluwarsa kunci dan tanda tangan.
  • Bahasa Inggris, Denmark, Belanda, Esperanto, Estonia, Prancis, Jerman, Jepang, Italia, Polandia, Portugis (Brasil), Portugis (Portugis), Rusia, Spanyol, Swedia, dan Turki.

Pada artikel ini kita akan melihat instalasi GnuPG, enkripsi dan dekripsi file menggunakan kata sandi serta pasangan kunci.

Cara Memasang GnuPG

GnuPG akan diinstal pada sebagian besar distro Linux. Untuk memverifikasi jalankan perintah di bawah ini:

[root@catest]# yum info gnupg

Jika sudah menemukan penginstalan, maka Anda tidak perlu menginstal, jika tidak, instal menggunakan yum (Tahu cara mengkonfigurasi Yum).

[root@catest]#yum install gnupg

Cara Mengenkripsi file di Linux menggunakan kata sandi – GnuPG

Ikuti perintah di bawah ini untuk mengenkripsi file menggunakan frasa sandi:

[root@catest]# gpg -c <filename>

Menjalankan perintah di atas untuk pertama kalinya akan membuat .gnupg direktori di direktori home Anda. Di bawah .gnupg direktori dua file akan dibuat: gpg.conf, pubring.gpg & secreng.gpg . gpg.conf adalah file konfigurasi default yang akan dipertimbangkan gpg dalam enkripsi dan dekripsi file, pubring.gpg adalah keyring publik dan secreing.gpg adalah kunci rahasia.

Di sini opsi -c akan membuat gpg mengenkripsi file dengan sandi simetris menggunakan frasa sandi. Cipher simetris default yang digunakan adalah CAST5, tetapi yang lain dapat dipilih dengan opsi –cipher-algo.

Untuk mengenkripsi file bernama sample.txt jalankan perintah di bawah ini :

[root@catest]# gpg -c sample.txt
Enter passphrase:<YOUR-SECRET-PASSWORD>
Repeat passphrase:<YOUR-SECRET-PASSWORD>

Perintah di atas akan meminta frasa sandi dua kali untuk mengonfirmasi dan jika berhasil akan membuat sample.txt.gpg yang mempertahankan file sample.txt asli juga. Disarankan untuk menghapus file sample.txt asli dan hanya memiliki file terenkripsi.

Catatan:jika Anda lupa kata sandi Anda, tidak mungkin untuk mendekripsi file!

Cara Mendekripsi file di Linux menggunakan kata sandi – GnuPG

Untuk mendekripsi file yang sudah dienkripsi gunakan perintah di bawah ini:

[root@catest ~]# gpg sample.txt.gpg
gpg: CAST5 encrypted data
Enter passphrase:

Menjalankan perintah di atas akan meminta frasa sandi untuk mendekripsi file. Setelah berhasil, file terenkripsi akan didekripsi.

Cara membuat pasangan kunci publik-swasta – GnuPG

Sebelum memulai enkripsi menggunakan pasangan kunci, pertama-tama pasangan kunci privat/publik GPG harus dibuat menggunakan perintah di bawah ini:

[root@catest ~]# gpg --gen-key

Ikuti petunjuk. Defaultnya harus cukup untuk pengujian pertama. Akan muncul seperti di bawah ini:

gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

gpg: directory `/home/ramyasanthosh/.gnupg' created
gpg: new configuration file `/home/ramyasanthosh/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/ramyasanthosh/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/ramyasanthosh/.gnupg/secring.gpg' created
gpg: keyring `/home/ramyasanthosh/.gnupg/pubring.gpg' created
Please select what kind of key you want:
(1) DSA and Elgamal (default)
(2) DSA (sign only)
(5) RSA (sign only)
Your selection? 1
DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 7
Key expires at Mon 30 Dec 2013 04:46:14 PM IST
Is this correct? (y/N) y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <[email protected]>"

Real name: ramyasanthosh
Email address: [email protected]
Comment: Testing
You selected this USER-ID:
"ramyasanthosh (Testing) <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
You need a Passphrase to protect your secret key.

Enter passphrase:
Repeat passphrase:

Anda akan dimintai kata sandi untuk kunci tersebut. Sangat disarankan untuk menggunakan yang kuat. Itu tidak diperlukan untuk enkripsi file, tetapi diperlukan selama dekripsi file.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
.++++++++++....++++++++++.++++++++++++++++++++..+++++.+++++++++++++++++++++++++++++++++++..+++++.++++++++++++++++++++..+++++++++++++++..++++++++++>+++++.+++++......>+++++..+++++

Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 284 more bytes)

Setelah byte acak yang cukup tersedia, kunci akan dibuat. Tetapi menyediakan byte acak yang cukup bukanlah tugas yang mudah. jadi solusinya adalah:

Solusi untuk “Tidak cukup byte acak yang tersedia – GnuPG”

Kita semua tahu itu cukup merepotkan untuk membuat entropi secara manual untuk pembuatan kunci GPG. Jadi menggunakan rngd kita akan memasukkan data acak dari perangkat keras ke perangkat acak kernel seperti yang ditunjukkan di bawah ini:

[root@catest .gnupg]# ls -l /dev/urandom
cr--r--r-- 1 root root 1, 9 Oct 11 11:14 /dev/urandom
[root@catest .gnupg]# which rngd
/sbin/rngd
[root@catest .gnupg]# rngd -r /dev/random

Kemudian buat kunci GPG Anda dan kunci akan dihasilkan seperti yang ditunjukkan di bawah ini:

++++++++++.++++++++++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++.+++++.+++++++++++++++.+++++..+++++.+++++++++++++++.+++++++++++++++>+++++..+++++.+++++^^^^
gpg: /home/ramyasanthosh/.gnupg/trustdb.gpg: trustdb created
gpg: key 296A5510 marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u
pub   1024D/453697B4 2013-12-23
      Key fingerprint = 0511 6477 3F98 75AB 905D  0D05 BCBA 6C69 4536 97B4
uid                  ramyasanthosh (Testing) <[email protected]>
sub   2048g/D4EAC9A3 2013-12-23

Cara mengekspor kunci publik – GnuPG

Sekarang setelah pasangan kunci dibuat, kami akan mengekspor kunci publik untuk digunakan di server lain untuk enkripsi dan kemudian mentransfer file terenkripsi ke server asli kami untuk didekripsi menggunakan kunci pribadi. Untuk mengekspor kunci publik, jalankan perintah di bawah ini:

[root@catest .gnupg]# gpg --armor --output public-key.txt --export 'ramyasanthosh'

Di sini 'ramyasanthosh' adalah uid yang digunakan selama pembuatan pasangan kunci.

Cara Mengenkripsi file menggunakan pasangan kunci publik – GnuPG

Sekarang kita akan menggunakan kunci publik ini untuk mengenkripsi file di server lain, di mana Anda harus terlebih dahulu mengimpor kunci publik pada sistem itu seperti yang ditunjukkan dengan perintah di bawah ini:

Mon Dec 23>$ gpg --import file-enc-pubkey.txt

Kemudian Anda dapat melihat kunci pulic yang diimpor dengan perintah di bawah ini untuk mencantumkan semua kunci publik yang tersedia.

Mon Dec 23>$ gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   1024D/453697B4 2013-12-23
uid                  ramyasanthosh (Testing) <[email protected]>
sub   2048g/D4EAC9A3 2013-12-23

Sekarang menggunakan kunci publik ini, kita akan mengenkripsi file:

Mon Dec 23>$ gpg --encrypt --recipient 'ramyasanthosh' sample.txt
pub  2048g/D4EAC9A3 2013-12-23 ramyasanthosh (Testing) <[email protected]>
 Primary key fingerprint: 0511 6477 3F98 75AB 905D  0D05 BCBA 6C69 4536 97B4
      Subkey fingerprint: 25C1 48E1 073A 7F61 BFFD  9D14 3F7E 939F D4EA C9A3

Setelah selesai, Anda akan menemukan nama file sample.txt.gpg – File terenkripsi. Transfer file ke server asli tempat kami membuat pasangan kunci.

Cara Mendekripsi file menggunakan kunci pribadi – GnuPG

Sekarang kita akan mendekripsi file terenkripsi menggunakan kunci pribadi dengan perintah di bawah ini. Anda akan diminta untuk memasukkan frasa sandi yang Anda gunakan untuk membuat pasangan kunci.

[root@catest ~]# gpg --output sample.txt --decrypt sample.txt.gpg

You need a passphrase to unlock the secret key for
user: "ramyasanthosh (Testing) <[email protected]>"
2048-bit ELG-E key, ID D4EAC9A3, created 2013-12-23 (main key ID 453697B4)

Enter passphrase:

gpg: encrypted with 2048-bit ELG-E key, ID D4EAC9A3, created 2013-12-23
      "ramyasanthosh (Testing) <[email protected]>"

Selesai dengan dekripsi dan Anda akan menemukan file sample.txt asli.

Cara Mencadangkan Kunci Pribadi Anda – GnuPG

Itu selalu disarankan agar Anda membuat cadangan kunci pribadi Anda dan tidak pernah melupakan frasa sandi Anda! Ikuti perintah di bawah ini untuk membuat cadangan kunci pribadi Anda:

[root@catest ~]# gpg --armor --output privatekey.asc --export-secret-keys 'ramyasanthosh'

Linux
  1. Cara Mengenkripsi dan Mendekripsi File dan Direktori Menggunakan Tar dan OpenSSL

  2. Menggunakan GPG untuk Mengenkripsi dan Mendekripsi File di Linux [Langsung untuk Pemula]

  3. wget vs curl:Cara Mengunduh File Menggunakan wget dan curl

  1. Cara mengekstrak file .gz dan .tar.gz di Linux

  2. Cara Mengenkripsi dan Mendekripsi File menggunakan GnuPG di Linux

  3. Cara Kompres dan Dekompresi file .bz2 di Linux Menggunakan Perintah bzip2

  1. Cara Menyalin File dan Direktori di Linux

  2. Cara Memindahkan File dan Direktori di Linux (mv Command)

  3. Bagaimana membandingkan dan menggabungkan file teks di Linux