비밀번호 설정 제약이 있는 서비스
아래 서비스들은 비밀번호 사용에 제약이 있다. 비밀번호는 충분히 길게, 원하는대로 설정할 수 있도록 해야 하나 불필요한 제약(길이 제한, 특수문자 제한 등)이 있는 서비스들이 많아지면 이용자들은 자신들만의 비밀번호 규칙을 설정할 수 없고 예외적으로 사용해야 하는 사이트들이 많아지다 보니 불가피하게 비밀번호를 통일하거나 비밀번호를 어딘가 적어놓고 사용하는 경우가 많아진다.
각각의 사업자들이 이런 보안 문화적인 큰 틀에서 신경을 써 주면 쉽게 해결할 수 있으나 일부 보수적이고 어찌보면 이기적인 서비스 개발 때문에 우리나라의 전반적인 개인 사용자 보안이 취약해지므로, 개선이 필요한 사이트를 나열한다.
요약
서비스명 | 주소 | 비밀번호 길이 제약 | 특수문자 사용 제약 | 기타 제약 |
---|---|---|---|---|
네이버 | https://naver.com | O (16자) | X | |
예술의 전당 | https://www.sac.or.kr/ | O (16자) | O (일부만 사용 가능) | |
비밀번호 길이 제약
사실 기술적으로 보면 비밀번호 길이 제약은 상당히 여유있게 할 수 있다. 어차피 비밀번호를 우리가 짧게 입력하든 길게 입력하든 관계 없이 거의 고정길이로 일방향 암호화되어 저장된다. 예를 들어 SHA-512를 쓴다고 하면 우리가 8자리 비밀번호를 입력해도 512자로 저장되고, 우리가 30자리 비밀번호를 입력해도 512자로 저장된다. (이렇게 저장해도 비밀번호 확인이 가능한 이유는 일방향 암호화문서 참고)
따라서, 비밀번호는 한껏 길게 입력을 받아도 어차피 저장되는 데이터가 많아지는 것도 아니기 때문에 굳이 제한을 할 필요가 없는 것이다. 그럼에도 제한을 하는 이유는 그냥 '혹시 어디선가 문제가 될까' 싶어서이다. 비밀번호처럼 일방향 암호화되어 저장되는 값 보단 입력한 만큼 저장되는 값들이 훨씬 많다. 이런 값들은 정해진 길이 이상 입력되면 에러가 나버린다. 이런 에러는 버퍼 오버플로우 등의 공격 방법으로도 사용되기 때문에 대부분의 서비스에서 입력값을 길이를 철저히 제한하는 것이다. 그래서 개발자들은 내부 정책이나 본인이 지식이나 사회적 관례에 따라서 "이 입력값은 대략 이 길이 정도면 되겠다" 싶은 길이를 설정하여 제한을 하는 것이다. 비밀번호를 고정길이로 저장되으로 이런 제약에서 꽤나 자유로움에도 불구하고 그냥 "보통은 비밀번호 이정도 길이 이하로 쓰겠지?"라는 생각으로 짧게 제한해버리는 경우가 많다. 이런 부분들은 문제의식만 하면 충분히 개선이 가능하다. 그렇다고 입력을 무한대로 받을 수 없기 때문에 여기선 비밀번호 길이 제한이 20자 이내인 경우에 대해서 나열하기로 한다.
- 네이버(https://naver.com): 16자까지만 입력 가능
- 예술의 전당(https://www.sac.or.kr/): 16자까지만 입력 가능
특수문자 제약
- 예술의 전당(https://www.sac.or.kr/): 일부 소수의 특수문자만 입력 가능
- 정말 일부 정해진 소수의 특수문자만 입력이 가능해서 많은 사람들이 원래 쓰던 비밀번호를 못쓰고 더 쉽게 바꾸어야 함