작년에 변경된 NIST의 가이드라인에 맞추어서 KISA의 패스워드 선택 안내서도 개정한다고 합니다.
흔히 쓰는 대문자 소문자 숫자 특수문자 조합을 권고하는 그 가이드라인입니다.
NIST의 가이드라인은 개정하면서 대소숫특 조합관련 내용은 빠졌고 길이관련 요소만 넣었으며, 왜 그렇게 했는지를 Appendix까지 넣어가면서 설명하고 있습니다.
예를 들어 사용자가 직접 정하는 패스워드는 최소길이 8글자 이상으로 강제하되, 최대길이는 적어도 64글자까 내지는 그 이상을 허용해야 합니다. 물론 DoS공격에 쓰일 수 있으니 합리적인 수준에서 제한을 둘 수는 있겠지요. 그리고 띄어쓰기를 포함하여 ASCII 및 유니코드에서 사용가능한 문자는 다 허용해야 합니다. DB의 필드 길이 때문에 길이 제한을 두고 SQL injection 때문에 특수문자를 차단하는 경향이 있는데, DB에는 어짜피 해시된 값만 저장되므로 핑계가 못 됩니다.
그리고 대소숫특 등 조합 규칙을 강제하더라도, 사람들은 이를 예측 가능한 방식으로 충족하고 넘어가기 때문에 별 의미가 없다는 연구결과를 인용하고 있습니다. 예를 들어 password 를 쓰던 사람이면 대소문자+숫자를 쓰라는 조건을 맞닥뜨리면 아마도 Password1 을 쓰게 된다는 것입니다. 특수문자까지 쓰라고 하면 Password1! 을 쓸 것이므로 공격자는 꽤나 높은 확률로 이를 예측할 수 있다는 것입니다. 또한 이렇게 복잡하고 외우기 어려운 비밀번호를 강제하면, 사람들은 이걸 종이에 써 두거나 전자매체에 기록하므로 또다른 보안 위협이 된다고 합니다.
여하튼. 그런데 KISA에서는 그냥 대소숫특 조합을 끌고가려는 모양입니다. 에라이.
외국의 서비스는 비밀번호로 보호해야 할 개인정보가 없거나 빈약한 반면 한국은 개인정보를 다 받으므로 더 강한 비밀번호를 쓰도록 강제하야 한다는 논리입니다. 그럼 불필요한 개인정보부터 받지 못하도록 하고 기존에 보관하던 데이터는 삭제하도록 강제하는게 우선 아닐까요.
다만 개인적으로 기대하는 것은, 비밀번호 최대길이 제한을 적어도 64글자 이상으로 하도록 강제하고 특수문자 사용범위도 제한을 두지 못하게 하는 부분입니다. 국내 사이트 중 대부분이 13글자 이상의 비밀번호를 받지 않고 있으며, 16글자 이상 받는 국내 사이트는 손으로 꼽을 정도입니다. 심지어는 10글자로 제한하는 사이트도 버젓이 서비스 중이죠. 비밀번호가 그리 중요하다면 복잡하고 긴 비밀번호를 쓸 수 있도록 허용해야 하지 않을까요. 망할 놀무원들아.