2012-03-28 2 views
0

쿠키에서 데이터를 안전하게 해시하는 방법을 찾고 있습니다. 나는 서버 팜을 가지고 있으며 서버 중 하나가 쿠키를 발행 할 수 있으며 서버 중 하나는 쿠키 내용의 유효성을 검사 할 수 있어야합니다. 자바 - 서버 간 해시/암호화

I처럼 soomething 일을 생각 등 :
122233344444|bob|2012-01-01-12-01-03 

내가 단순히 다시 해시 할 수있는 쿠키은 "일반 텍스트의 유효성을 검사 할 때 :

쿠키 내용 : 예를 들어

SHA(<secret-uuid><user-id><expiration-date>)|<user-id>|<expiration-date> 

데이터 "를 해쉬 된 값 :

SHA1(<secret-uuid>bob2012-01-01-12-01-03) == 122233344444 

현재 구성 파일에 수동으로 설정하고 팜의 모든 서버간에 동일하게 설정해야합니다.

모든 컴퓨터에서 동일한 SECRET-UUID를 프로그래밍 방식으로 생성하는 "안전한"방법이 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

+0

팜의 모든 서버에서 해독 할 수있는 키를 사용하여 암호화 할 수 있습니다. – Hiro2k

답변

1

당신이 찾고있는 것은 HMAC입니다. 자신 만의 HMAC 알고리즘을 사용하는 것이 좋습니다. 이것은 해시 된 해시를 구성하는 순진한 방법에 대한 여러 가지 가능한 공격을 무효화하도록 설계되었습니다.

키 (당신이 '비밀 uuid'라고 부르는 것)는 모든 기계에 배포되어야하며이를 피할 수있는 마법의 암호화 방법은 없습니다. 아마도 코드 및 구성을 배포 할 수있는 방법이있을 것입니다. 동일한 방법을 사용하여 키를 배포해야합니다.

한 가지 대안은 쿠키를 만들고 확인하는 '쿠키 서버'를 갖는 것입니다. 개별 머신은 필요에 따라 쿼리 할 수 ​​있습니다.