이것은 @Brian의 영리한 답변에 대한 추가 부록입니다. 또한 현재 암호를 기반으로 기존 암호를 무차별 처리하는 방법과 "해밍 거리"를 위해 @ratchet freak에 대한 세부 정보를 추가 한 @Martijn Pieters를 방문하십시오. 답변을 백업하는 데 흥미로운 배경을 제공한다고 생각하기 때문에 답변을 삭제하지 않습니다.
최신 암호 저장소에는 각 사용자마다 고유 한 솔트 (128 비트 +)를 가진 여러 라운드의 강력한 단방향 암호화 해시 (SHA-512 +)를 사용해야합니다. 그러나 각 비밀번호에 대한 추가 정보를 저장하려는 유혹을받지 마십시오. 각 비밀번호에 대해 더 많은 정보를 저장할수록 해시 알고리즘의 보안이 약화됩니다.
예
다음을 알고 있다면 암호를 무차별하게하는 것이 얼마나 쉬운 지 고려하십시오.
- 길이는 7 자입니다
- 문자 3-5는 대문자입니다 (4는 더 낮음)
- 1과 7은 숫자입니다
- 6은 상징이다
미국 키보드에는 인쇄 가능한 95 개의 문자가 있으므로 암호가 7 자임을 알고 있으면 95 ^ 7 = 69,833,729,610,000 = 7x10 ^ 13 순열이됩니다. 실제로 임의적이라면 단일 3Ghz 프로세서에서이를 해독하는 데 1 년이 걸릴 수 있습니다. 그러나:
- 대문자 26 자 및 소문자 26 자만 있습니다
- 이 두 숫자에 대해 100 개의 가능성을 산출하는 10 자리 숫자 만 있습니다
- 32 개의 기호 만 있습니다
그래서 (@Hellion 덕분에 수정되었습니다) :
26^4 (charcters 2-5 are known upper or lower-case)
x 100 (characters 1 & 7 are digits)
x 32 (character 6 is a symbol)
====
1,462,323,200 possible passwords.
균열하기 50,000 배가 더 쉽습니다! 이 경우 유사한 암호를 방지하기 위해 좋은 정보를 저장하면 1 년에서 몇 시간까지 7 자 암호의 균열 시간이 걸렸습니다. 좋은 비디오 카드와 약간의 인내심을 갖춘 강력한 멀티 프로세서 데스크탑에서 모든 암호를 해독하는 것이 가능해졌습니다. 이 간단한 예제를 통해 유사한 암호를보다 의미있게 비교할수록 해시의 보안 수준이 떨어집니다.
강력한 해싱의 중요성
비밀번호가있는 데이터베이스는 정기적으로 도난 당하며 매월 뉴스가 엄청나게 침입합니다. 지난달 SC 주정부는 모든 사람의 사회 보장 번호를 잃어 버렸습니다 . 이러한 위반 중 몇 개가 더 많이 포함됩니까?
결산 생각
나를 위해 가장 두려운 것은 사람들이 여러 사이트에 대해 동일하거나 유사한 암호를 선택하여 하나의 사이트로 침입하면 침입자가 모든 사이트에 액세스 할 수있게하는 것입니다. 가장 일반적인 잘못된 암호를 방지하면 개별 사용자가 동일한 사이트 내에서 잘못된 암호를 다시 사용하지 못하도록 방지하는 것보다 더 도움이된다고 생각하지만, 이러한 상황을 방지하는 입증 된 방법을보고 싶습니다. 내가 제안 할 수있는 최선의 방법은 각 사용자에 대해 매우 임의의 암호를 생성하고 안전하게 저장하는 보안 암호 관리자를 사용하는 회사 차원의 정책입니다.