2017-09-10 5 views
0

사용자가 주어진 문항에 답변하고 익명으로 항목을 저장하려는 프로젝트를 진행 중입니다.사용자 IP를 저장하고 추적 할 수 없도록 설정하십시오.

수집 기간이 지나면 답변에 통계를 적용하고 싶습니다. 그러나 사용자 응답을 특정 사용자/IP로 추적 할 수없는 것이 매우 중요합니다.

사용자가 익명으로하고 싶은 욕구에 관계없이 ipt를 여전히 저장하려는 이유는 사용자 (악의적 인 의도 또는 사고로)가 동일한 테스트를 수행하는 항목을 제외하고 싶습니다. 짧은 기간에 여러 번.

필자는 제한된 지식으로 암호화를 사용하지 않을 것을 배제했지만, 암호화 된 많은 문자열을 비교할 수는 없습니다.

내 현재 제안 된 방법은 사용자 에이전트, 세션 식별자 및 해시 된 IP 주소를 저장하는 것입니다.

해싱 방법에 관해서는, ip가 16 문자 길이의 소금 (모든 항목에 대해 같은 소금)이 앞에 붙는 sha512를 사용하려고 생각하고 있습니다.

간단하고 일반적인 문자열을 해싱 할 때 sha512 및 다른 해싱 방법은 http://md5decrypt.net/en/Sha512/과 좋은 이전 짐승 같은 강제로 깨질 수 있다는 것을 알고 있습니다.

내 생각에 사용자 익명 성을 보장하기 위해 수집 기간이 끝나면 소금을 삭제합니다. brute에 불가능한 것 (내 지식에)을 만드는 것은 해시를 강제합니다. 악의적 인 사람이 내 소스 코드를 손에 넣었을지라도.

저기안은 저급 기술 솔루션처럼 보입니다. 그 보안 당사자는 이론이 내 마음을 잊거나 바꿀 수있는 내 자신의 실제 삭제 작업을 기반으로합니다. 그러나 그것은 내가 생각해 낼 수있는 유일한 해결책입니다.

미리 감사드립니다.

답변

0

IP의 HMAC를 해시하지 마십시오. 그것은 개념적으로 당신이하고 싶은 것과 같지만 암호로 강건합니다.

https://en.wikipedia.org/wiki/Hash-based_message_authentication_code

+0

감사합니다. 하지만 내가 볼 수있는 운임처럼, 내 소스 코드가 위반되어 그에 대한 HMAC 키가 보이는 경우. HMAC을 사용하면 가능한 모든 ips를 실행하고 HMAC 테이블에 일반 IP를 만드는 것이 "간단히"문제가됩니까? – thekokholm

+0

HMAC의 비밀은 소스 코드에 없어야합니다 (비밀입니다 ...)하지만 일부 구성 파일에 있습니다. 그것은 당신의 설명의 "소금"과 같은 역할을합니다. 수집 기간이 끝나면 그 비밀을 지울 수 있습니다. –