Tomcat 5.5에서 소금에 절인 암호를 어떻게 구현하겠습니까?
-
03-07-2019 - |
문제
내 웹 응용 프로그램은 컨테이너 관리 보안에 의존하고 있으며 소금에 절인 암호를 사용할 수 있는지 궁금합니다. JDBC 또는 DataSource Realm을 구성하여 데이터베이스에 소화 된 비밀번호를 저장하는 것이 쉽지만 해당 소화에 소금을 추가 할 수있는 방법은 없습니다.
제안이 있습니까?
편집하다: 질문을하기 전에 좀 더 생각해야 할 것 같습니다 ;-)
Digest 계산 (클라이언트 또는 서버)을 선택하고 그에 따라 Tomcat을 구성하는 사람을 선택하는 문제 일뿐입니다.
해결책
다이제스트를 만들고 저장하는 경우 동시에 소금을 만들고 저장할 수 있습니다.
인증 테이블은 .... pwddigest varchar (64), 또는 int256이 포함되어 있습니다.
그런 다음 사용중인 인증 프로토콜에 따라 클라이언트 측 암호화의 사용자 이름을 얻을 때 해시 살트를 클라이언트로 보내거나 CLEAR를 수신하면 암호를 해시하는 데 사용합니다.
나는 당신이 말하는 데이터베이스 액세스 기술에 익숙하지 않으므로 요점을 놓치고 답을 지나치게 단순화하면 사과드립니다.
다른 팁
Tomcat 5.5 및 6.0은 JDBCrealms 및 DataSourcerealms에서 소금에 절인 암호를 지원하지 않습니다. 알려진 버그이며 제안 된 패치는 잘 작동하는 것처럼 보이지만 아직 받아 들여지지 않았습니다.
패치를 적용하지 않으려면 최소한 구현 예로 패치를 사용할 수 있습니다.
JCE의 패스 기반 암호화는 PKCS#5에 따라 소금을 사용합니다. 보다 http://java.sun.com/j2se/1.4.2/docs/guide/security/jce/jcerefguide.html#pbeex 예를 들어.