아는 사람은 알겠지만,

로그인 비번을 길게 하라는 이유가,

서버에서 암호화 스트링이 유출되었을때, brute force attack으로 뚫릴 수 있으니까 길게 하라는거 아님?

물론 이건 짧게할수록 유추하거나 매칭되는거 바로 찾아서 뚫리기 쉽다는게 명백한 진실이긴 한데,

굳이 사용자가 비번을 길게할 필요는 없는거 아님?


그냥 클라이언트단에서 몇번 crypt해주고 날리면 되지 않나요?

예를들어


0. 비번 '1234'의 해시는 "0xA0B0C0D0"이라고 가정.

1. 비번 1234 입력

2. 해시 "A0B0C0D0" 나옴. 자릿수가 8자리니까 이거 자체를 나머지 연산 돌려서 4~7의 숫자가 나오게 만든후 그 숫자만큼 앞에서부터 자름. 4라고 치면, "A0B0" 나옴.

3. A0B0를 salt키로 삼아서 crypt 연산 수행.

4. 결과가 A0B0$xyZabcdabcdabcdabcd=가 나온다고 치면, 이걸 또 2번과 같은 방식으로 "xyZabcdabcdabcdabcd="를 적당히 자르거나 아니면, 걍 통째로 전송.


이러면 salt키도 모르는 해시의 긴 비번이 완성되는건데,

굳이 사용자가 길게할 필요가 있나요?



키로거 문제는 애초에 사용자 지가 잘못해서 걸린거라, 서버단에서 뭔 지랄을 해도 막을수 없는 문제고,

(그거 때문에 키보드 보안 액티브X 깔아주면 액티브X 깐다고 또 지랄. ㅠㅠ)

비번이 길건 짧건 애초에 답이 없는 문제니까 패스.


패킷 탈취공격은 비번의 길이가 문제가 아니라,

위에서 4번까지 한 이후 전송상의 보안에서 책임질 문제고. https를 쓰건, 다른 추가 암호화 전송을 쓰건...

(솔직히 https 딸랑 믿고 비번을 평문으로 전송하는 곳이 태반인데, 졸라 극혐 ㄷㄷㄷ 심지어 http 면서도 평문 전송하는 곳은 진짜 노답. ㄷㄷㄷ)



암호학에 대해 조예가 깊으신 분의 조언을 구합니다.

위와같이 하면, 사용자가 입력하는 비번이 딸랑 4자리라도 충분하지 않나요?

다른 헛점은 뭐가 있을까요?