작성일 : 22-05-25 13:30
끝자리 숫자만 바꾸면 결제가 된다?…보안 뚫린 카드들
 글쓴이 : 방서준1
조회 : 87  

누구나 유추 가능한 카드번호?


정리하자면, 보안의 생명은 '유추 불가능'에 있습니다. 그런데 이 당연한 룰을 무시하는 금융회사가 있다는 제보를 받았습니다. 바로 카드업계 1위, 신한카드사였습니다. 제보 내용은 간단하지 않았습니다. 핵심은 신한카드가 발행하는 특정 카드의 번호가 누구나 유추 가능하도록 단순하게 배열돼 있다는 것이었습니다.


카드번호 16자리는 크게 세 덩이로 나뉩니다. 앞 6자리는 BIN번호로 비자, 마스터 등 카드 브랜드와 카드 종류, 카드 등급 정보를 나타냅니다. 동일한 카드를 발급받으면 앞 6자리는 고정인 셈입니다. 그다음 7~15번째 자리는 고객의 고유 번호인데, 고객을 식별하는 번호이다 보니 유추할 수 없도록 무작위 혹은 특정 규칙에 따라 부여하는 게 일반적입니다. 그리고 마지막 16번째 자리는 검증 번호(Check digit)입니다. 이 카드가 유효한 카드인지 아닌지 검증하는 번호로 1~15번째 번호들을 곱하고 더하는 방식으로 만들어냅니다.




해커들은 BIN번호에 주목합니다. 같은 카드라면 BIN번호가 고정값이란 걸 이용해 프로그램을 돌려 나머지 번호를 무작위로 조합해 진짜 카드를 골라내는 겁니다. 이를 '빈어택(BIN ATTACK) 범죄'라고 합니다. 지난 2019년 KB국민카드에서 2천 명의 카드 번호가 유출된 사건도 빈어택 범죄의 희생물이었습니다.


그런데 제보자가 문제 삼은 건 더 심각했습니다. "프로그램도 돌릴 필요 없이 쉽게 해킹을 할 수 있다"는 내용이었으니까요. 모방 범죄의 위험성이 있어 조심스럽지만, 방식을 개략적으로 설명하자면 이렇습니다. 앞서 말했듯이 고객 고유 번호는 말 그대로 고객을 식별하는 번호이므로 유추하기 어렵도록 무작위로 구성해야 합니다. 하지만 문제가 된 카드는 1번, 2번, 3번, 4번 이렇게 발급 순서대로 번호가 단순하게 부여되어있다는 게 제보자 주장이었습니다. 즉 첫 번째 발행된 카드는 000000001, 두 번째 발행된 카드는 000000002, 500번째 발급된 카드는 000000500 이런 식이라는 것이죠.


이게 사실이라면 큰 문제였습니다. 비슷한 시기에 발급된 카드는 유효기간이 똑같기 때문입니다. 예를 들어 2022년 4월 17일에 A 씨가 카드를 발급받았는데, B 씨도 같은 날 동일한 카드를 발급받았습니다. 그렇다면 이들의 카드 유효기간은 모두 5년 뒤인 04/27이 됩니다. 즉, 실물 카드 하나만 있으면 다른 사람의 카드의 번호와 유효기간까지 유추할 수 있는 셈입니다.


'카드번호랑 유효기간만 안다고 문제가 되나?'라는 의문을 가질 수도 있습니다. 보통 국내 온라인 쇼핑몰에선 카드번호, 유효기간에 더해 CVC코드와 비밀번호까지 요구하기 때문이죠. 이중 삼중으로 본인 확인을 하는 겁니다. 하지만 해외의 경우는 어떨까요. 미국 최대 온라인 쇼핑몰 '아마존'은 CVC와 비밀번호 필요 없이 결제 가능합니다. 매일같이 해커들이 아마존 사이트를 통해 부정 결제를 하는 이유죠. 아마존이 간편 결제 시스템을 고집하고 있는 탓입니다.


제보자의 말이 사실인지 확인 절차가 필요했습니다. 사실 '내로라하는 대형 카드사가 설마 이렇게 허술하게 카드번호를 부여하고 있을까?' 라는 의구심이 앞섰습니다. 하지만 제보자의 말이 맞았습니다. 전화 결제 시스템을 통해 유효기간은 그대로 두고 카드번호를 1씩 올려가며 테스트를 했더니 유효한 카드로 확인된 겁니다. 막히는 부분에선 유효기간을 다음 달로 넘겨봤더니 또 결제 단계로 넘어가는 걸 확인할 수 있었습니다. 물론, 확인한 카드 번호들이 타인 명의의 카드일 테니 실제 결제를 하진 않았습니다.

 



http://n.news.naver.com/article/055/0000967781





 
   
 

커뮤니티

  • 공지사항
  • 고객문의