기획자가 개발을 모를 때 벌어지는 일
회사에서 답답한 일이 있었다.
예외케이스가 누락되어있던
사용자 행동 flow가 이상하던,
하나의 버튼에 여러개의 이벤트 트리거가 있던,
그동안은"그래.. 개발자가 아니니까..."하고 이해하고 넘어갔다.
하지만, 이번 주에 일어난 일은 많은 생각을 하게 했다.
기획팀에서 요청한 것은 "사용자 편의"를 위해 로그인 시 무엇이 틀렸는지 안내를 해주자는 것이었다.
아이디가 없다면, 가입하지 않았다고
비밀번호가 틀렸다면 비밀번호가 틀렸다고...
개발자의 관점에서 문제점을 알려주었지만, 기획팀에서는 괜찮을 것 같다고 했다.
정말 괜찮을까?
정말 괜찮은지는 이 글을 읽는 사람이 스스로 생각해보면 좋을 것 같다.
자, 상상을 해보자.
우리는 A라는 서비스에 새로 가입을 하려고 한다.
자연스럽게, 손에 익은 대로 자주 쓰는 아이디로 가입을 할 것이다.
아이디에 zzinnim이라고 입력하고 비밀번호는 asdf1!@#$라고 입력해서 회원가입을 완료했다.
자 이제, 내가 아닌 어떤 누군가가 A라는 서비스에 로그인을 시도한다
1번째 시도
아이디 : zzin
비밀번호 : 1234!@#$
"가입되어있지 않은 사용자입니다"
2번째 시도
아이디 : zzinin
비밀번호 : 1234!@#$
"가입되어있지 않은 사용자입니다"
3번째 시도
아이디 : zzinnin
비밀번호 : 1234!@#$
"비밀번호가 틀렸습니다."
오, 아이디는 알아냈다.
이제 비밀번호만 알아내면 되겠다.
4번째 시도
아이디 : zzinnin
비밀번호 : a1234!@#$
"비밀번호가 틀렸습니다."
n0000번째 시도
아이디 : zzinnin
비밀번호 : asdf1!@#$
이게 무슨 상황이냐면 '부르트 포스'라는 해킹 공격이다.
디도스 뭐 그런거만 해킹이 아니고 이렇게 무식하게 하나하나 대입하는 것도 일종의 해킹인 것이다.
브루트 포스 공격(brute force attack)과 키 전수조사(exhaustive key search)라고도 하는 무차별 암호 대입 공격은 비밀번호, PIN 번호, 암호화 키를 무작위로 계속해서 입력함으로써 해킹을 시도하는 공격 방식입니다. 무차별 암호 대입 공격에는 특별한 지식이나 복잡한 알고리즘이 필요하지 않습니다. 단순히 비밀번호를 무작위로 유추해서 입력하는 방법이기 때문입니다
자, 이제 아이디와 비밀번호를 알아냈다.
우선 내 경우, 카카오와 네이버와 구글의 아이디. 비밀번호를 같이 쓴다.
과연 저 3개의 서비스만일까?
이 글을 읽고 있는 독자들은 과연 서비스별로 다른 아이디와 비밀번호를 가지고 있나?
A서비스의 로그인 계정이 해킹 된 것이 아니라, 그냥 '나의 개인정보'가 털린 것이다.
이로 파생되는 문제들은 상상하려면 너무 많다.
스팸메일 폭탄을 맞을 수도 있고, 그 스팸메일이 단순히 광고메일이면 다행이지만
바이러스를 가지고 있거나, 피싱 메일이었다면?
https://www.boannews.com/media/view.asp?idx=41423
나는 기획자가 아니기 때문에,
사용자 편의성이 얼마나 기획자에게 가치가 있는지는 모른다,
얼마나 중요한 고려 요소인지도 모른다.
직무마다 중요시 여기는 가치가 다르다는 것도 알고 있다.
그러나, 기획팀에서 괜찮다하니 나는 개발을 해주는 것이 맞는 것일까?