GPG 대칭 암호화를 사용할 때 "경고: 메시지가 무결성 보호되지 않았습니다"라는 문제를 어떻게 해결합니까?

GPG 대칭 암호화를 사용할 때 "경고: 메시지가 무결성 보호되지 않았습니다"라는 문제를 어떻게 해결합니까?

다음과 같이 대칭 암호화를 사용하여 파일을 암호화했습니다.

gpg --symmetric myfile

결과적으로 파일이 생성됩니다 myfile.gpg.

괜찮은. 이제 파일을 다시 해독해 보겠습니다.

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를 알고 있으며 그것들이 안전하다는 것을 알고 있습니다.
  • 무결성을 위해 보호되지 않는 이유는 무엇입니까?
  • 게다가 이 문제를 어떻게 해결하나요?

답변1

배경

캐스트-5GnuPG가 처음 생성되었을 때 AES가 아직 존재하지 않았기 때문에 GnuPG에서 사용하는 오래된 암호화 알고리즘입니다.원천. 널리 사용되지는 않습니다(호환성 이유로 GnuPG 제외).

이는 WARNING: message was not integrity protected암호화 시 이 기능이 기본적으로 켜져 있지 않기 때문입니다. 이것이 켜져 있으면 GnuPG는 파일이 전송 중에 변경되었는지 알 수 있습니다.

업데이트: Ubuntu/Debian과 함께 제공되는 최신 버전의 GnuPG에는 이제 MDC가 있습니다.기본적으로 활성화됨그리고 이러한 최신 버전으로 서명된 항목에 대해서는 이 메시지가 다시는 표시되지 않습니다.

솔루션

더 강력한 AES-256을 사용하려면 명령줄이나 구성 파일에서 이를 지정해야 합니다.

  • 명령줄: --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암호화할 때 옵션을 추가하세요.

더 좋은 점은 서명하세요!

더 나은 접근 방식은 키 쌍(있는 경우)을 사용하여 파일에 서명하는 것입니다. --sign다음과 같이 암호화 명령에 옵션을 추가하기만 하면 됩니다 .

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

이렇게 하면 파일의 무결성을 확인할 수 있을 뿐만 아니라 파일 수신자가 원본을 확인할 수도 있습니다. 파일을 변경하면 서명 확인이 실패하게 됩니다.

관련 정보