Bagaimana cara saya memperbaiki "PERINGATAN: pesan tidak dilindungi integritas" saat menggunakan enkripsi simetris GPG?

45

Saya telah mengenkripsi file menggunakan enkripsi simetris seperti ini:

gpg --symmetric myfile

yang menghasilkan file myfile.gpg.

Baik. Sekarang mari kita mendekripsi file lagi:

gpg -o myfile --decrypt myfile.gpg

Saya diminta frasa sandi yang saya pakai, lalu saya lihat

gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected

Saya tidak yakin tentang baris pertama dan terakhir di sana.

  • Apa itu sandi CAST5 dan apakah itu aman? Saya tahu 3DES dan AES dan saya tahu itu aman.
  • Mengapa tidak dilindungi untuk integritas?
  • Dan terlebih lagi, bagaimana cara memperbaikinya?
gertvdijk
sumber
Tapi Anda bisa gpg -c myfilemengenkripsi dan gpg myfile.gpgmendekripsi, output akan didekripsi myfilesecara default.
cprn
1
@CyprianGuerra gpg myfile.gpgakan menghasilkan keluaran terurai yang dikirim ke stdout di sistem saya ...
gertvdijk
Menarik. Saya memilikinya di default ...
cprn
Saya mengunduh GUI dari sini dan mendekripsi menggunakan file itu. Berhasil! pgptool.github.io
Iftikhar Ahmad Dar

Jawaban:

69

Latar Belakang

CAST-5 adalah algoritma enkripsi yang lebih tua yang digunakan oleh GnuPG karena AES tidak ada belum kembali saat GnuPG diciptakan awalnya sumber . Ini tidak banyak digunakan (terlepas dari GnuPG untuk alasan kompatibilitas).

Ini WARNING: message was not integrity protectedkarena fitur ini tidak diaktifkan secara default pada saat enkripsi. Jika ini diaktifkan, GnuPG dapat mengetahui apakah file telah diubah dalam perjalanan.

Pembaruan: versi modern GnuPG yang dikirimkan dengan Ubuntu / Debian sekarang memiliki MDC diaktifkan secara default dan Anda seharusnya tidak pernah melihat pesan ini lagi untuk apa pun yang ditandatangani dengan versi yang lebih baru ini.

Solusi

Untuk menggunakan AES-256 yang lebih kuat, Anda harus menentukannya di baris perintah atau di file konfigurasi Anda.

  • Baris perintah: tambahkan --cipher-algo AES256opsi sehingga baris penuh untuk mengenkripsi menjadi

    gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
    
  • File konfigurasi (disarankan): tambahkan baris berikut ke ~/.gnupg/gpg.conffile konfigurasi Anda .

    cipher-algo AES256
    

    Saya merekomendasikan pendekatan ini karena ini akan digunakan untuk semua operasi GPG di masa depan pada akun pengguna ini.

Tidak ada yang berubah bagi pengguna untuk mendekripsi file - GnuPG akan mendeteksi ini secara otomatis.

Perhatikan bahwa menggunakan cipher AES-256, pesan secara otomatis dilindungi untuk integritas. Untuk secara manual mengaktifkan perlindungan integritas pada cipher lain yang tidak diaktifkan (seperti CAST-5) tambahkan --force-mdcopsi saat mengenkripsi.

Bahkan lebih baik: masuk!

Pendekatan yang lebih baik lagi adalah dengan menandatangani file Anda dengan keypair Anda (jika Anda memilikinya). Cukup tambahkan --signopsi ke perintah enkripsi, seperti ini:

gpg -o myfile.gpg --cipher-algo AES256 --sign --symmetric myfile

Ini tidak hanya akan memvalidasi integritas file, tetapi juga memungkinkan penerima file untuk memverifikasi asal. Setiap perubahan pada file akan menyebabkan tanda tangan gagal.

gertvdijk
sumber
Apakah saya tidak perlu sertifikat untuk ditandatangani?
bilal fazlani
@bilalfazlani untuk menandatangani Anda akan memerlukan keypair GnuPG, ya. Tidak perlu membuatnya publik jika Anda tidak mau. Cukup bagikan kunci publik dengan rekan-rekan tempat Anda berbagi file yang dienkripsi dengannya dan mereka harus memverifikasi sidik jari kunci tersebut dengan Anda.
gertvdijk
Terima kasih atas jawaban terincinya. Bisakah Anda menjelaskan lebih lanjut tentang cara menggunakan keypair?
ben-Nabiy Derush
"pesan tidak dilindungi integritas" terjadi di sisi penerima dan Anda memberi tahu cara memperbaikinya di sisi pengirim. Pertanyaannya adalah bagaimana mengabaikan masalah di sisi penerima untuk dapat mendekripsi pesan yang lebih lama (dalam enigmail)
ensonic
@ ben-NabiyDerush Kedua artikel ini dapat menjernihkan pertanyaan Anda tentang bagaimana (dan mengapa) menggunakan keypair publik dan pribadi. Kriptografi kunci publik . Web of Trust
jpaugh