사용자가 사이트에 자신을 등록에 사용자의 암호 토폴로지를 수집, 우리는 몇 가지 잘 정의 된 보안 표준을 따르안전한 방법
- 는 소금을
- 해시를 생성 (소금 + 비밀번호)를
- 해시 된 암호와 소금을 DB에 저장하십시오.
최근에는 "암호 토폴로지"라는 항목이 있습니다. 예를 들어, 사용자가 Ullllldd
(대문자, 소문자 5 자리, 2 자리)과 같은 암호를 생성하지 못하도록해야합니다. 침입자가 그 토폴로지에만 집중하면 무차별적인 공격을하는 것이 일반적이어서 더 쉽습니다. 이제 우리 사이트에서 사용되는 가장 일반적인 토폴로지에 관한 정보를 생성하려고합니다. 당연히 우리는 해시 된 암호 정보를 DB 내부에서 사용할 수 없으며 해시로부터 암호 정보를 복구 할 수 없습니다. 우리는 새로운 사용자가 등록 할 때마다 채워지는 토폴로지 테이블을 유지할 생각을 가지고있었습니다. 예 :
사용자 "joe"는 암호 "pass"로 등록합니다. 토폴로지 "uuuu"가 이미 존재하는지 확인합니다. 그렇지 않다면 count = 1 인 데이터베이스 테이블에 추가하십시오. 그렇다면 카운트를 1 씩 증가 시키십시오. 이것은 당연히 조금 위험합니다 : db가 손상되면 침입자가 갑자기 우리의 가장 일반적인 토폴로지를 알게됩니다!
제 질문은 : 새로운 보안 위험없이 암호 토폴로지 정보를 수집하고 저장하는 방법입니다.