2013-06-25 1 views
5

OpenSSL을 사용하여 파일을 암호화 할 때 -pass pass : mySillyPassword를 사용할 수 있습니다. 여기서 mySillyPassword는 암호화에 사용되는 암호입니다. 또한 소금을 사용할 때 -salt -s (16 진 문자열)를 사용하여 소금을 지정할 수 있습니다.OpenSSL - 암호 대 Salt 목적

누군가 소금 대신 또는 소금과 함께 암호를 사용하려는 이유는 무엇입니까? 또한, -salt 명령을 사용하면 OpenSSL이 소금을 생성하게됩니다. 이것이 사용자 정의 소금보다 어떻게 더 좋은가? OpenSSL이 무작위로 소금을 생성한다면, 사용자는 미래에 어떻게 파일의 암호를 해독 할 것인가를 어떻게 알 수 있을까요?

답변

3

OpenSSL에서 소금은 암호화 된 데이터의 앞부분에 붙어서 해독 할 수 있습니다. 암호와 공격에 효과적인 사전 공격을 수행 할 수

이 가능하다 - 소금 옵션을 사용하지 않으면 : 소금의 목적은 다음과에는 OpenSSL 문서에서 등등 사전에 공격, 무지개 테이블을 방지하는 것이다 스트림 암호 암호화 된 데이터. 그 이유는 소금이 없으면 같은 암호는 항상 동일한 암호화 키를 생성하기 때문입니다. 소금이 인 경우 암호화 된 데이터의 처음 8 바이트는 소금에 대해 예약되어 있습니다. 파일을 암호화 할 때 무작위로 생성되며 해독시 암호화 된 파일에서 을 읽습니다.

설명서에는 소금을 지원하지 않는 이전 버전과의 호환성이 필요한 경우를 제외하고는 소금이 항상 암호와 함께 사용되는 것이 좋습니다.

+0

설명해 주셔서 감사합니다.하지만 비밀번호의 목적을 아직 이해하지 못했습니다. 다음은 OpenSSL 설명서의 내용입니다. pass : password 실제 비밀번호는 password입니다. 암호는 유틸리티 (예 : Unix에서는 'ps')에서 볼 수 있으므로이 양식은 보안이 중요하지 않은 경우에만 사용해야합니다. 암호가 암호화 된 데이터에 어떻게 저장됩니까? 첨부되어 있습니까? 그것은 비밀 번호가 매우 안전하지 않은 것 같아요,하지만 그 사람이 컴퓨터에 액세스 할 수있는 유일한 문제는 데이터가 암호화 된 시간에 정확하다고 생각합니까? – user2520041

+0

예, 정확합니다. 암호 또는 암호 해독시 컴퓨터에 대한 액세스가있는 경우에만 암호가 손상됩니다. 그러나 "이 양식은 보안이 중요하지 않은 경우에만 사용해야합니다"라는 말은 암호를 지정하는 구문을 의미합니다 ('pass : password'). 대신'file : pathname'이나'stdin'과 같은 다른 메소드를 사용해야합니다. 비밀번호는 추가되지 않습니다. 암호는 파일의 암호 해독을위한 비밀 키를 생성하는 데 사용되며 해당 암호로만 암호를 해독 할 수 있습니다. 암호는 안전하지만 올바르게 사용 된 경우에만 안전합니다. – IanPudney

+0

감사합니다. 이 암호는 비밀 키를 생성하는 데 사용됩니다 - 암호 파일은 별도로 생성 된 파일입니까? 그렇지 않다면 나는 소금과 같을 것이라고 생각합니다. 나는 그 문서가 좀 더 구체적 이었으면 좋겠다. – user2520041