2012-02-16 5 views
-1

다음 시나리오에 관한 질문이 있습니다.
jasypt를 사용하여 암호를 암호화하고 암호화에 소금을 사용하고 싶습니다.소금 위치, 소금 숨기기


암호를 사용하여 환경 변수에서 얻은 암호로 소금을 암호화하면 암호로 암호화 된 값을 가질 수 있습니다. 속성 파일에서 소금, 그것을 거기에서 얻을 암호를 통해 암호 해독 환경 변수 (사실 내가 EnvironmentStringPBEConfig 개체에서 환경 변수를 차례로 얻는 EnvironmentStringPBEConfig 개체를 가지게되고 EnvironmentStringPBEConfig 환경 변수를 삭제합니다. 만들어집니다) 마지막으로 소금을 사용하십시오.

감사합니다.

편집 : 위에서 설명한대로 소금을 숨기는 것이 좋은 방법인지 알고 싶습니다. 지금 당장은 그런 해결책을 구현하지 않습니다.

편집 : 또한 OWASP의 다음 권장 사항에 유의하십시오.

권장하십시오

가 추가로 '시스템'소금을 가지고입니다 :

고려에 대한 기본 염장 메커니즘 추가 권장 향상된 기능을 제공하고 있습니다 힘든 전체 소금을 훔치는 확인 전체 시스템에 대한 고정 값. 이것은 어딘가에 설정 파일에 저장되어야합니다. 이 고정 값은 모든 백업에 포함될 필요가 없으므로 공격자가 해시 값을 올바르게 계산하는 데 필요한 모든 요소를 ​​손상시키는 것이 더욱 어려워집니다. 시스템 소금의 일부를 소스 코드에 임베드합니다. 이것은 오픈 소스 코드에 도움이되지 않지만 사용자 지정 응용 프로그램의 경우 코드에서 시스템 염의 일부를 차지하는 것이 해시 값을 올바르게 계산하기 위해 공격자가 필요로하는 항목이 하나 더 많습니다. 사용자의 암호가 변경 될 때마다 계정에 새 소금을 생성합니다.

추천 솔트 절연

추가적인 암호 저장 방어기 암호 해시가 아닌 다른 위치에 저장되는 염을 포함한다. 암호 해시가 데이터베이스 또는 LDAP 서버와 같은 다른 위치에 저장되었다고 가정 할 때 서버의 파일 시스템을 사용하면 소금 격리에 일반적으로 사용되는 메커니즘 중 하나입니다. 염분이 데이터베이스 데이터에 포함되지 않기 때문에이 방어 메커니즘은 데이터베이스 파일을 도난 당할 때 암호 도용의 위험을 줄입니다. 암호 해시와 소금이 함께 백업되지 않도록주의하십시오. 또한 격리되어 백업해야합니다.

답변

2

왜 소금을 암호화 하시겠습니까? 소금은 일반적으로 공개 정보입니다. 암호 데이터베이스에 대한 사전 계산 된 "무지개 표"오프라인 공격을 막기 위해 존재합니다. 나는 당신이하려고하는 것과 그 이유에 대해 더 분명히해야한다고 생각합니다.

+0

소금물을 예방책으로 찾기가 어렵다는 생각이 들기도합니다. 제 질문은 "이해가됩니까"라는 말로 시작됩니다. 실제로 그런 식으로하고 있다고 말하지 않았습니다. 그냥하고 싶습니다. 위에서 설명한 바와 같이 소금을 숨기는 것이 좋은 지 아닌지 알고 싶습니다. –

+0

OWASP i의 권장 사항에 유의하십시오. 감사합니다. 감사합니다. –