ฉันจะแก้ไข“ คำเตือน: ข้อความไม่ได้รับการปกป้องความสมบูรณ์” เมื่อใช้การเข้ารหัสแบบสมมาตร GPG ได้อย่างไร


45

ฉันได้เข้ารหัสไฟล์โดยใช้การเข้ารหัสแบบสมมาตรเช่นนี้:

gpg --symmetric myfile

myfile.gpgซึ่งผลในแฟ้ม

Alright ตอนนี้เรามาถอดรหัสไฟล์อีกครั้ง:

gpg -o myfile --decrypt myfile.gpg

ฉันถูกถามถึงข้อความรหัสผ่านที่ฉันใส่แล้วฉันก็เห็น

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

ฉันไม่แน่ใจเกี่ยวกับบรรทัดแรกและบรรทัดสุดท้าย

  • รหัส CAST5 คืออะไรและปลอดภัยหรือไม่ ฉันรู้ว่า 3DES และ AES และฉันรู้ว่าสิ่งเหล่านั้นปลอดภัย
  • ทำไมมันไม่ได้รับการปกป้องเพื่อความสมบูรณ์?
  • นอกจากนี้ฉันจะแก้ไขได้อย่างไร

Btw คุณสามารถgpg -c myfileเข้ารหัสและgpg myfile.gpgถอดรหัสได้ผลลัพธ์จะถูกถอดรหัสmyfileตามค่าเริ่มต้น
cprn

1
@CyprianGuerra gpg myfile.gpgจะส่งผลในการส่งออกถอดรหัสส่งไป stdout ในระบบของฉัน ...
gertvdijk

น่าสนใจ ฉันมีมันเป็นค่าเริ่มต้น ...
cprn

ฉันดาวน์โหลด GUI จากที่นี่และถอดรหัสไฟล์โดยใช้ มันได้ผล! pgptool.github.io
Iftikhar Ahmad Dar

คำตอบ:


69

พื้นหลัง

CAST-5เป็นวิธีการเข้ารหัสเก่าที่ใช้โดย GnuPG เพราะ AES ไม่ได้อยู่ ๆ กลับมาในเวลา GnuPG ที่ถูกสร้างขึ้นครั้งแรกที่มา มันไม่ได้ใช้กันอย่างแพร่หลาย (นอกเหนือจาก GnuPG ด้วยเหตุผลด้านความเข้ากันได้)

WARNING: message was not integrity protectedเป็นเพราะคุณลักษณะนี้ไม่ได้เปิดใช้งานโดยค่าเริ่มต้นในช่วงเวลาของการเข้ารหัส หากสิ่งนี้ถูกเปิดใช้งาน GnuPG สามารถบอกได้ว่าไฟล์มีการเปลี่ยนแปลงระหว่างทางหรือไม่

อัปเดต: GnuPG เวอร์ชันทันสมัยมาพร้อมกับ Ubuntu / Debian ตอนนี้มีการเปิดใช้งาน MDC เป็นค่าเริ่มต้นและคุณไม่ควรเห็นข้อความนี้อีกเลยสำหรับสิ่งที่ลงชื่อด้วยรุ่นใหม่กว่านี้

โซลูชั่น

หากต้องการใช้ AES-256 ที่แรงกว่าคุณต้องระบุไว้ในบรรทัดคำสั่งหรือในไฟล์กำหนดค่าของคุณ

  • Command-line: เพิ่ม--cipher-algo AES256ตัวเลือกเพื่อให้การเข้ารหัสเต็มบรรทัดกลายเป็น

    gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
    
  • ไฟล์กำหนดค่า (แนะนำ): เพิ่มบรรทัดต่อไปนี้ใน~/.gnupg/gpg.confไฟล์กำหนดค่าของคุณ

    cipher-algo AES256
    

    ฉันแนะนำวิธีการนี้เนื่องจากจะใช้สำหรับการดำเนินการ GPG ในอนาคตทั้งหมดในบัญชีผู้ใช้นี้

ไม่มีอะไรเปลี่ยนแปลงสำหรับผู้ใช้ในการถอดรหัสไฟล์ - GnuPG จะตรวจจับสิ่งนี้โดยอัตโนมัติ

โปรดทราบว่าการใช้รหัส AES-256 ข้อความจะได้รับการป้องกันโดยอัตโนมัติเพื่อความสมบูรณ์ หากต้องการเปิดใช้งานการป้องกันความสมบูรณ์ของรหัสอื่น ๆ ที่ไม่ได้เปิดใช้งานด้วยตนเอง (เช่น CAST-5) ให้เพิ่ม--force-mdcตัวเลือกเมื่อทำการเข้ารหัส

ดียิ่งขึ้น: ลงชื่อ!

วิธีที่ดีกว่าคือการเซ็นชื่อไฟล์ของคุณด้วย keypair ของคุณ (ถ้าคุณมี) เพียงเพิ่ม--signตัวเลือกในคำสั่งการเข้ารหัสเช่นนี้

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

สิ่งนี้จะไม่เพียง แต่ตรวจสอบความถูกต้องของไฟล์เท่านั้น แต่ยังทำให้ผู้รับผู้รับสามารถตรวจสอบความถูกต้องของไฟล์ได้ การเปลี่ยนแปลงใด ๆ ในไฟล์จะทำให้การตรวจสอบลายเซ็นล้มเหลว


ฉันไม่ต้องการใบรับรองเพื่อลงชื่อใช่ไหม
bilal fazlani

@bilalfazlani เพื่อเข้าสู่ระบบคุณจะต้องใช้ GnuPG keypair ใช่ ไม่จำเป็นต้องเปิดเผยต่อสาธารณะหากคุณไม่ต้องการ เพียงแชร์คีย์สาธารณะกับเพื่อนที่คุณแชร์ไฟล์ที่เข้ารหัสด้วยและพวกเขาควรตรวจสอบลายนิ้วมือของคีย์กับคุณ
gertvdijk

ขอบคุณสำหรับคำตอบโดยละเอียด คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับวิธีใช้ keypair ได้หรือไม่
ben-Nabiy Derush

"ข้อความไม่ได้รับการป้องกันความสมบูรณ์" เกิดขึ้นที่ฝั่งผู้รับและคุณบอกวิธีการแก้ไขปัญหานี้ในด้านผู้ส่ง คำถามคือวิธีที่จะไม่สนใจปัญหาในด้านการรับเพื่อให้สามารถถอดรหัสข้อความเก่า (ในอินิกเมล)
ensonic

@ ben-NabiyDerush บทความทั้งสองนี้อาจตอบคำถามของคุณเกี่ยวกับวิธีใช้ (และทำไม) ในการใช้คีย์สาธารณะและส่วนตัว การเข้ารหัสคีย์สาธารณะ Web of Trust
jpaugh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.