*** 경고에 따라 암호화를 변경하려면 어떻게해야합니까?


16

파일을 암호화하거나 해독 할 때 *** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better.

이것이 의미하는 바를 이해하지 못하며 절차를 어떻게 변경해야합니까? 당신이 나를 도울 수? 나는 암호화 openssl des3 <input >output.des3하고 해독 openssl des3 -d <input.des3 >output

환경에 대해

우분투 18.10

~$ openssl version OpenSSL 1.1.1 11 Sep 2018


1
암호화 방법 인 3DES가 ​​폐기되고 있습니다. 경고는 다른 방법을 사용하도록 제안하는 것 입니다. 자세한 내용 은 crypto.stackexchange.com/questions/51629/… 을 참조하십시오.
guiverc

1
이 오류는 모든 종류의 암호에 대해 발생합니다. 암호화 및 암호 해독 명령 모두에 -pbkdf2를 추가해야합니다.
Daniele Dellafiore

죄송하지만 명령에 -pbkdf2를 추가하는 방법에 대한 예를 들어 주시겠습니까? 어떻게 추가해야하는지 모르겠습니다.
Tommy Pollák

1
당신의 예에서, 당신은해야 openssl des3 -e -pbkdf2 < input > output.des3하고 openssl des3 -d -pbkdf2 < input.des3 > output. 또한 3DES (DES는 1977 년부터) 대신 다른 블록 암호를 사용해야한다는 첫 번째 의견에 동의합니다.이를 수행하는 쉬운 방법은 aes256현재 des3해당 명령의 위치를 바꾸고 AES를 사용하는 것입니다 ( 256 비트 AES는 현재 보안 표준을 충족합니다.
joelhardi

감사! 이제는 aes256을 사용하여 경고없이 작동합니다. 따라서 질문에 대한 답변이 있습니다.
Tommy Pollák

답변:


12

OpenSSL의 두 가지 기본 버전과 최신 버전의 Synopsys를 비교하여 매뉴얼 페이지를 인용하겠습니다.

OpenSSL 1.1.0

openssl enc -ciphername [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]

OpenSSL 1.1.1

openssl enc -cipher [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a] [-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-iter count] [-pbkdf2] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-rand file...] [-writerand file] [-engine id]

분명히이 질문을 고려할 때 약간 더 큰 차이점이 있습니다. 1.1.0에는 다음 두 스위치가 없습니다.

  • pbkdf2

  • iter


기본적으로 두 가지 옵션이 있습니다. 경고를 무시하거나 암호화 명령을 다음과 같이 조정하십시오.

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in InputFilePath -out OutputFilePath

이 스위치들은

  • -aes-256-cbc당신이 무엇을 해야 최대 보호 또는 참조 얼마 전에 포기있어 128 비트 버전의 3DES (Triple DES를) 사용 삼중 DES는 2017 년 NIST에 의해 사용되지 않습니다 AES가 많은 모든 현대 CPU에 의해 가속됩니다 동안; CPU에 AES-NI 명령어 세트 가 있는지 간단히 확인할 수 있습니다 ( 예 : grep aes /proc/cpuinfo; 승리, 승리

  • -md sha512 SHA-256에 비해 SHA-2 기능 군의 가장 빠른 변형 이지만 조금 더 안전 할 수 있습니다. 승리, 승리

  • -pbkdf2: PBKDF2 (비밀번호 기반 키 파생 함수 2) 알고리즘 사용

  • -iter 100000 맨 페이지를 인용하여 암호의 기본 반복 횟수를 재정의합니다.

    암호화 키를 파생시킬 때 암호에 지정된 반복 횟수를 사용하십시오. 값이 크면 결과 파일을 무차별 강제 실행하는 데 필요한 시간이 늘어납니다. 이 옵션을 사용하면 PBKDF2 알고리즘을 사용하여 키를 파생시킬 수 있습니다.


1
그런 다음 사용시 암호를 해독하는 방법 openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -in InputFilePath -out OutputFilePath
l mingzhi

1
간단하게 추가하여 -d: 명령에openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -d -in InputFilePath
에드워드 Itrich을

1
이 제안에 몇 가지 문제가 있다고 확신합니다. 당으로 en.wikipedia.org/wiki/Key_derivation_function 당신이 원하는 느린 키 유도 알고리즘의 변형. 즉 당으로 SHA512를 사용하지 않는 en.wikipedia.org/wiki/PBKDF2 in the year 2000 the recommended minimum number of iterations was 1000, but the parameter is intended to be increased over time as CPU speeds increase 어디 선가 10,000 100,000 반복보다는 1000을 권하고 싶습니다 - 그래서
oskarpearson

@oskarpearson 사실, 지금 읽었습니다. 답변을 업데이트합니다.
LinuxSecurityFreak

@oskarpearson 그렇다면 어떤 해시를 추천 하시겠습니까?
Anthony
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.