KR20230131446A - 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법 - Google Patents

인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법 Download PDF

Info

Publication number
KR20230131446A
KR20230131446A KR1020230028333A KR20230028333A KR20230131446A KR 20230131446 A KR20230131446 A KR 20230131446A KR 1020230028333 A KR1020230028333 A KR 1020230028333A KR 20230028333 A KR20230028333 A KR 20230028333A KR 20230131446 A KR20230131446 A KR 20230131446A
Authority
KR
South Korea
Prior art keywords
authentication
server
code
user
user terminal
Prior art date
Application number
KR1020230028333A
Other languages
English (en)
Inventor
유창훈
Original Assignee
주식회사 센스톤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 센스톤 filed Critical 주식회사 센스톤
Priority to PCT/KR2023/002995 priority Critical patent/WO2023167568A1/ko
Publication of KR20230131446A publication Critical patent/KR20230131446A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/121Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
    • H04W12/122Counter-measures against attacks; Protection against rogue devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/385Payment protocols; Details thereof using an alias or single-use codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4018Transaction verification using the card verification value [CVV] associated with the card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/72Subscriber identity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/183Processing at user equipment or user record carrier

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법이 제공된다. 본 개시에 따른 서버는, 통신 모듈 및 상기 통신 모듈을 통해 사용자의 단말로부터 고객사 어플리케이션 실행을 위한 기기 인증 요청이 수신되면, 통신사의 서버로 상기 사용자의 전화번호에 대응하는 적어도 하나의 해시(hash) 값을 요청하고, 상기 적어도 하나의 해시 값을 이용하여 상기 사용자 단말에 대한 상기 기기 인증을 수행하고, 상기 기기 인증 결과를 고객사의 서버로 전달하는 프로세서를 포함할 수 있다.

Description

인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법{SERVER AND METHOD FOR PROVIDING SERVICE FOR PREVENTING SIM SWAPPING BASED ON AUTHENTICATION CODE}
본 개시는 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법에 관한 것이다.
코드형태 데이터는 많은 영역에서 이용되고 있다. 결제 시에 이용되는 카드번호, 계좌 번호뿐만 아니라 사용자 식별을 위한 IPIN번호, 주민등록번호 등이 코드형태 데이터이다.
그러나 이러한 코드데이터를 이용하는 과정에서 유출되는 사고가 많이 발생한다. 카드번호의 경우, 카드 표면에 실제 카드번호가 그대로 기재되어 있어서 타인에게 시각적으로 유출되며, 마그네틱을 이용한 결제 시에 카드번호가 그대로 POS장치로 전달되면서 유출된다.
실제코드가 그대로 유출되지 않도록 하기 위해 가상코드를 이용하고자 하는 시도가 많았으나, 가상코드에 대응되는 실제코드를 탐색하기 위해 사용자를 식별하기 위한 데이터가 필요하였다.
그러나 OTP(One Time Password)의 경우, 별도의 OTP생성 장치를 필요로 하여 불편함을 수반하고, 특히 사용자 단말기의 경우 OTP생성에 이용되는 시드 데이터의 유출로 보안상의 취약점 존재한다.
따라서 많은 사용자가 소지하고 있는 카드의 카드 데이터를 기반으로 사용자 인증에 필요한 가상 보안 코드를 생성하는 것과 같이 OTP코드를 생성하되, 별도의 OTP생성 장치를 필요로 하지 않고 동시에 시드 데이터가 유출되지 않도록 하여 보안을 높이는 방안이 필요하다.
한국등록특허 제10-1316466호, 2013.10.01.
본 개시에 개시된 실시예는 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법을 제공하는데 그 목적이 있다.
본 개시가 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 기술적 과제를 달성하기 위한 본 개시에 일 측면에 따른 인증 코드 기반의 심 스와핑(SIM swapping) 방지를 위한 서비스 제공 서버는, 통신 모듈 및 상기 통신 모듈을 통해 사용자의 단말로부터 고객사 어플리케이션 실행을 위한 기기 인증 요청이 수신되면, 통신사의 서버로 상기 사용자의 전화번호에 대응하는 적어도 하나의 해시(hash) 값을 요청하고, 상기 적어도 하나의 해시 값을 이용하여 상기 사용자 단말에 대한 상기 기기 인증을 수행하고, 상기 기기 인증 결과를 고객사의 서버로 전달하는 프로세서를 포함할 수 있다.
또한, 상기 해시 값은, 상기 전화번호에 대한 제1 해시 값, 상기 사용자 단말의 식별 정보에 대한 제2 해시 값 및 상기 사용자 단말에 포함된 심카드의 식별 정보에 대한 제3 해시 값을 포함할 수 있다.
또한, 상기 프로세서는, 상기 통신사 서버로부터 수신된 해시 값 및 상기 사용자에 대해 기 저장된 해시 값의 비교를 통해 상기 인증을 수행하고, 상기 인증 결과 상기 수신된 해시 값이 상기 기 저장된 해시 값과 다르면 상기 사용자 단말의 기기 변경 또는 심 변경이 수행됐던 것으로 판단하고, 상기 고객사 서버로 상기 사용자 단말이 정상적인 기기가 아님을 알리는 상기 기기 인증 결과를 전달할 수 있다.
또한, 상기 프로세서는, 상기 사용자 단말로부터 상기 기기 인증 요청이 수신되면, 상기 사용자 단말로 확인 URL이 포함된 토큰을 송신하고, 상기 사용자 단말로부터 수신된 확인 URL이 상기 토큰에 포함된 확인 URL과 동일하면 상기 통신사 서버로 상기 해시 값을 요청할 수 있다.
또한, 심 스와핑 방지를 위한 서비스는, 클라우드 방식을 기반으로 상기 고객사 서버에게 제공되거나, 상기 고객사 서버 내부에 상기 서비스를 위한 서버가 탑재된 형태로 상기 고객사 서버에게 제공될 수 있다.
또한, 상기 프로세서는, 상기 고객사 어플리케이션 내 등록이 완료된 상기 사용자의 카드 및 상기 사용자 단말 간의 태깅 시 상기 카드에서 생성된 인증용 가상 코드를 수신하고, 상기 인증용 가상 코드를 기반으로 정상적인 사용자가 상기 사용자 단말을 통해 고객사 서비스를 이용하려는 것인지에 대한 검증을 수행하고, 상기 인증용 가상 코드는, 현재 시간 데이터, 상기 카드의 카드번호, 상기 카 드의 고유값 중 적어도 하나를 이용하여 생성될 수 있다.
또한, 상기 프로세서는, 상기 카드 및 상기 사용자 단말 간의 태깅을 통해 상기 등록이 요청되면, 상기 카드번호 및 상기 고유값 중 적어도 하나를 사용자 정보와 매칭하여 저장할 수 있다.
또한, 상기 프로세서는, 상기 인증용 가상 코드에서 추출된 상기 카드번호 또는 상기 고유값을 이용하여 탐색된 사용자 정보를 기반으로 상기 검증을 수행할 수 있다.
또한, 상기 고객사 어플리케이션에 인증용 가상 코드 생성을 위한 모듈이 포함된 경우, 상기 프로세서는, 상기 모듈에서 생성된 최종 인증용 가상 코드를 수신하고, 상기 최종 인증용 가상 코드에 대한 검증을 수행하고, 최종 인증용 가상 코드는, 상기 사용자 정보와 상기 인증용 가상 코드를 이용하여 생성될 수 있다.
또한, 상술한 기술적 과제를 달성하기 위한 본 개시에 다른 측면에 따른 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 방법은, 사용자의 단말로부터 고객사 어플리케이션 실행을 위한 기기 인증 요청을 수신하는 단계, 통신사의 서버로 상기 사용자의 전화번호에 대응하는 적어도 하나의 해시(hash) 값을 요청하는 단계, 상기 적어도 하나의 해시 값을 이용하여 상기 사용자 단말에 대한 상기 기기 인증을 수행하는 단계 및 상기 기기 인증 결과를 고객사의 서버로 전달하는 단계를 포함할 수 있다.
이 외에도, 본 개시를 구현하기 위한 방법을 실행하기 위한 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 더 제공될 수 있다.
이 외에도, 본 개시를 구현하기 위한 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.
본 개시의 전술한 과제 해결 수단에 의하면, 서비스 제공사가 금융사와 같은 고객사와 통신사 사이에서 심 스와핑 해킹을 방지하기 위한 인증 프로세스를 수행함으로써, 고객사에게 서비스 접근을 요청한 사용자 단말이 해커에 의해 사용되고 있는 것인지 아니면 정상적인 사용자에 의해서 사용되고 있는 것인지를 알려줄 수 있다. 이를 통해, 고객사는 해커에게 사용자의 개인 정보 또는 인증 정보를 제공하지 않을 수가 있고, 해커가 사용자의 정보를 이용하여 사용자의 자산을 탈취하는 범죄를 저지르는 것을 막을 수 있게 된다.
이렇게 심 스와핑 해킹을 미리 차단함으로써, 고객사뿐만 아니라 통신사는 심 스와핑 해킹에 의한 피해를 예방할 수 있다.
또한, 카드와 같은 개별 매체에서 생성된 인증용 가상 코드를 이용한 인증을 개별적으로 수행함으써 보안성을 이중으로 높여 사용자가 고객사의 서비스를 이용함에 있어서 신뢰도 및 만족도를 높일 수 있다.
또한, 중계자인 서비스 제공사의 인증을 통해 SMS 인증을 대체할 수 있어 사용자 편의성을 증대시킬 수 있다.
본 개시의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일 실시예에 따른 인증 코드 기반의 심 스와핑 방지를 위한 서비스의 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 개시의 일 실시예에 따른 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버의 블록도이다.
도 3은 본 개시의 일 실시예에 따른 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 방법의 순서도이다.
도 4a 및 4b는 기존의 심 스와핑 해킹 방식 및 이를 방지하기 위한 본 개시의 일 실시예에 따른 서비스 프로세스를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 사용자의 전화번호에 대응하는 해시 값의 제공 과정을 설명하기 위한 도면이다.
도 6은 본 개시의 다른 실시예에 따른 카드 태깅 시 생성된 인증용 가상코드를 이용한 사용자 인증을 설명하기 위한 도면이다.
본 개시 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 개시가 실시예들의 모든 요소들을 설명하는 것은 아니며, 본 개시가 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 ‘부, 모듈, 부재, 블록’이라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '부, 모듈, 부재, 블록'이 하나의 구성요소로 구현되거나, 하나의 '부, 모듈, 부재, 블록'이 복수의 구성요소들을 포함하는 것도 가능하다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 간접적으로 연결되어 있는 경우를 포함하고, 간접적인 연결은 무선 통신망을 통해 연결되는 것을 포함한다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
명세서 전체에서, 어떤 부재가 다른 부재 "상에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
제 1, 제 2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 전술된 용어들에 의해 제한되는 것은 아니다.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.
각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
이하 첨부된 도면들을 참고하여 본 개시의 작용 원리 및 실시예들에 대해 설명한다.
이하, 첨부된 도면을 참조하여 본 개시의 실시예를 상세하게 설명한다.
설명에 앞서 본 명세서에서 사용하는 용어의 의미를 간략히 설명한다. 그렇지만 용어의 설명은 본 명세서의 이해를 돕기 위한 것이므로, 명시적으로 본 개시를 한정하는 사항으로 기재하지 않은 경우에 본 개시의 기술적 사상을 한정하는 의미로 사용하는 것이 아님을 주의해야 한다.
본 명세서에서 “장치”는 연산처리를 수행하여 사용자에게 결과를 제공할 수 있는 다양한 장치들이 모두 포함된다. 예를 들어, 장치는, 컴퓨터, 서버 장치 및 휴대용 단말기를 모두 포함하거나, 또는 어느 하나의 형태가 될 수 있다.
여기에서, 상기 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), 태블릿 PC, 슬레이트 PC 등을 포함할 수 있다.
상기 서버 장치는 외부 장치와 통신을 수행하여 정보를 처리하는 서버로써, 애플리케이션 서버, 컴퓨팅 서버, 데이터베이스 서버, 파일 서버, 게임 서버, 메일 서버, 프록시 서버 및 웹 서버 등을 포함할 수 있다.
상기 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), WiBro(Wireless Broadband Internet) 단말, 스마트 폰(Smart Phone) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치와 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD) 등과 같은 웨어러블 장치를 포함할 수 있다.
본 명세서에서 "문자"는 코드를 구성하는 구성요소로서, 대문자 알파벳, 소문자 알파벳, 숫자 및 특수문자 등의 전부 또는 일부를 포함한다.
본 명세서에서 "코드"는 문자가 나열된 문자열을 의미한다.
본 명세서에서 “인증용 가상 코드”는 사용자 및 디바이스 중 적어도 하나의 인증을 위해 임시적으로 생성되는 OTAC(One Time Authentication Code)를 의미할 수 있다.
본 명세서에서 "가상 코드 생성 함수"는 인증용 가상 코드를 생성하는 함수를 의미한다. 예를 들어, OTP(One Time Password) 등을 포함하며, 이에 한정하는 것은 아니다.
본 명세서에서 "세부코드 생성 함수"는 인증용 가상 코드를 구성하는 각각의 세부코드를 생성하는 함수를 의미한다.
본 명세서에서 "세부코드 결합 함수"는 복수의 세부코드를 조합 또는 결합하여 가상코드를 생성하는 함수를 의미한다.
본 명세서에서 "단위카운트"는 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것으로 정의된 단위이다. 예를 들어, 1카운트는 특정한 시간간격(예를 들어, 1.5초)으로 설정되어 사용될 수 있다.
본 명세서에서 “저장위치”는 사용자 등록이 요청된 시점에 해당하는 트랙 상 지점(카운트)을 의미한다.
심 스와핑(SIM swapping) 사고란 특정인의 가입자식별모듈(SIM, 심) 카드를 무단으로 복제하거나 바꿔치기 한 뒤 휴대전화 본인 인증을 통과하는 방식으로 타인의 금융 자산을 탈취하는 범죄를 말한다. 심 스와핑 범죄자는 훔친 개인정보 등을 활용해 새로운 유심칩을 개통하고, 이를 공기계 상태의 휴대폰에 끼워 피해자의 문자와 전화 통화를 대신 수신한다.
통신사는 수신된 개인정보가 정상적인 정보인 것만 보고(개인 정보를 보낸 사람이 범죄자임을 알 수가 없으므로) 해당 휴대폰의 개통처리를 완료하게 되고, 고객사는 개통된 휴대폰으로부터 서비스 이용을 위한 인증코드가 요청되면 정상적으로 개통된 휴대폰인 것만 보고(해당 휴대폰을 사용하는 사람이 범죄사임을 알 수가 없으므로) 해당 핸드폰으로 인증코드를 제공하게 된다. 이러한 심 스와핑을 통해 범죄자는 고객사의 서비스를 이용하여 사용자의 자산을 탈취하게 되는 것이다.
이에, 본 개시에서는 서비스 제공사가 고객사 및 통신사와 연계하여, 그 중간에서 서비스 이용 접근에 대한 인증을 수행함으로써 심 스와핑 사고를 예방하도록 한다.
이하에서는, 도 1을 참조하여, 인증 코드 기반의 심 스와핑 방지를 위한 서비스의 시스템을 설명하도록 한다.
도 1은 본 개시의 일 실시예에 따른 인증 코드 기반의 심 스와핑 방지를 위한 서비스의 시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 인증 코드 기반의 심 스와핑 방지를 위한 서비스의 시스템(이하, 시스템)은 서비스 제공 서버(10), 사용자 단말(20), 고객사 서버(30), 통신사 서버(40) 및 카드(40)를 포함할 수 있다.
다만, 몇몇 실시예에서 시스템은 도 1에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 수의 구성요소를 포함할 수도 있다.
서비스 제공 서버(10)는 심 스와핑 방지를 위한 서비스를 제공하는 회사 또는 업체의 서버 장치를 의미할 수 있다.
서비스 제공 서버(10)는 고객사의 서비스 이용을 요청하는 사용자 단말(20)이 정상적인 기기인지 또는 사용자 단말(20)을 통해 서비스 이용을 요청하고 있는 사람이 정상적인 사용자인지를 판단하기 위한 인증을 수행할 수 있다.
사용자 단말(20)은 고객사가 제공하는 서비스(예를 들어, 금용 서비스 또는 결제 서비스)를 이용하는 사람의 단말 장치를 의미할 수 있다. 사용자 단말(20)은 고객사의 서비스를 이용하기 위한 스마트 폰 애플리케이션(Application) 또는 모바일 웹을 포함하는 서비스 프로그램이 설치될 수 있다. 사용자는 서비스 프로그램을 통해 서비스 제공 서버(10)가 제공하는 모든 서비스를 이용할 수 있다.
고객사 서버(30)는 서비스 제공 서버(10)가 제공하는 심 스와핑 방지 서비스를 이용하는 회사, 기관 또는 업체의 서버 장치를 의미할 수 있다. 예를 들어, 고객사 서버(30)는 금융기관, 정부기관, 금융사, 카드사 등의 서버 장치일 수 있지만, 이에 제한되는 것은 아니다.
통신사 서버(40)는 사용자 단말(20)이 가입한 통신사 서버 장치를 의미할 수 있다.
통신사 서버(40)는 서비스 제공 서버(10)로 인증에 필요한 사용자 단말(20)에 대한 데이터 또는 정보를 제공할 수 있다.
카드(50)는 사용자가 고객사의 서비스를 이용하기 위해 고객사 어플리케이션에 등록한 실물 카드를 의미할 수 있다.
카드(50)는 인증용 가상 코드를 생성하기 위한 모듈(애플릿(Applet))을 포함하고, 사용자 단말(20)에 카드(50)가 태깅되면 상기 애플릿을 이용하여 사용자 단말(20)로부터 수신된 데이터 또는 내장된 데이터를 기반으로 인증용 가상 코드를 생성할 수 있다.
이하에서는, 도 2를 참조하여 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버를 설명하도록 한다.
도 2는 본 개시의 일 실시예에 따른 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버의 블록도이다.
도 2를 참조하면, 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버(이하, 서비스 제공 서버)(10)는 통신 모듈(11), 메모리(12) 및 프로세서(13)를 포함할 수 있다. 프로세서(13)는 해시 값 인증 모듈(131) 및 OTAC 인증 모듈(132)를 포함할 수 있다.
다만, 몇몇 실시예에서, 서비스 제공 서버(10) 및 프로세서(13)는 도 2에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 수의 구성요소를 포함할 수도 있다.
통신 모듈(11)은 상기 서비스 제공 서버(10)와 사용자 단말(20) 사이, 상기 서비스 제공 서버(10)와 고객사 서버(30) 사이, 상기 서비스 제공 서버(10)와 통신사 서버(40) 사이, 상기 서비스 제공 서버(10)와 통신망 사이의 무선 또는 유선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 예를 들어, 유선통신 모듈, 무선통신 모듈, 근거리 통신 모듈, 위치정보 모듈 중 적어도 하나를 포함할 수 있다.
통신망은 다양한 형태의 통신망이 이용될 수 있으며, 예컨대, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coax), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신방식이 이용될 수 있다.
한편, 통신망은 상기에 제시된 통신방식에 한정되는 것은 아니며, 상술한 통신방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
유선 통신 모듈은, 지역 통신(Local Area Network; LAN) 모듈, 광역 통신(Wide Area Network; WAN) 모듈 또는 부가가치 통신(Value Added Network; VAN) 모듈 등 다양한 유선 통신 모듈뿐만 아니라, USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface), DVI(Digital Visual Interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 다양한 케이블 통신 모듈을 포함할 수 있다.
무선 통신 모듈은 와이파이(Wifi) 모듈, 와이브로(Wireless broadband) 모듈 외에도, GSM(global System for Mobile Communication), CDMA(Code Division Multiple Access), WCDMA(Wideband Code Division Multiple Access), UMTS(universal mobile telecommunications system), TDMA(Time Division Multiple Access), LTE(Long Term Evolution), 4G, 5G, 6G 등 다양한 무선 통신 방식을 지원하는 무선 통신 모듈을 포함할 수 있다.
근거리 통신 모듈은 근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth™), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다.
메모리(12)는 인증 코드 기반의 심 스와핑 방지를 위한 서비스를 제공하기 위한 적어도 하나의 프로세스를 저장하고 있을 수 있다.
메모리(12)는 본 서비스 제공 서버(10)의 다양한 기능을 지원하는 데이터와, 프로세서(13)의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들(예를 들어, 음악 파일, 정지영상, 동영상 등)을 저장할 수 있고, 본 서비스 제공 서버(10)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 본 서비스 제공 서버(10)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다.
이러한, 메모리(12)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), SSD 타입(Solid State Disk type), SDD 타입(Silicon Disk Drive type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(random access memory; RAM), SRAM(static random access memory), 롬(read-only memory; ROM), EEPROM(electrically erasable programmable read-only memory), PROM(programmable read-only memory), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 메모리(12)는 본 서비스 제공 서버(10)와는 분리되어 있으나, 유선 또는 무선으로 연결된 데이터베이스가 될 수도 있다.
프로세서(13)는 본 서비스 제공 서버(10) 내의 구성요소들의 동작을 제어하기 위한 알고리즘 또는 알고리즘을 재현한 프로그램에 대한 데이터를 저장하는 메모리, 및 메모리에 저장된 데이터를 이용하여 전술한 동작을 수행할 수 있다. 이때, 메모리(12)와 프로세서(13)는 각각 별개의 칩으로 구현될 수 있다. 또는, 메모리(12)와 프로세서(13)는 단일 칩으로 구현될 수도 있다.
프로세서(13)의 해시 값 인증 모듈(131)은 사용자 단말(20)의 고객사 어플리케이션 실행을 위한 기기 인증 요청에 따라, 통신사 서버(30)로부터 제공된 해시 값을 기반으로 인증을 수행할 수 있다. 이에 대한 자세한 설명은 후술한다.
프로세서(13)의 OTAC 인증 모듈(132)은 카드(50) 및 사용자 단말(20) 간 태깅을 통해 생성된 인증용 가상 코드를 기반으로 사용자 단말(20)을 통해 고객사 서비스를 이용하려는 사용자가 정상적인 사용자인지에 대한 인증을 수행할 수 있다. 이에 대한 자세한 설명은 후술한다.
또한, 프로세서(13)는 이하의 도 3 내지 도 6에서 설명되는 본 개시에 따른 다양한 실시예들을 본 서비스 제공 서버(10) 상에서 구현하기 위하여, 위에서 살펴본 구성요소들을 중 어느 하나 또는 복수를 조합하여 제어할 수 있다.
도 3은 본 개시의 일 실시예에 따른 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 방법의 순서도이다.
도 4a 및 4b는 기존의 심 스와핑 해킹 방식 및 이를 방지하기 위한 본 개시의 일 실시예에 따른 서비스 프로세스를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 사용자의 전화번호에 대응하는 해시 값의 제공 과정을 설명하기 위한 도면이다.
도 6은 본 개시의 다른 실시예에 따른 카드 태깅 시 생성된 인증용 가상코드를 이용한 사용자 인증을 설명하기 위한 도면이다.
이하에서 도 4a, 도 4b 및 도 5를 참조하여, 서비스 제공 서버(10)가 사용자 단말(20)의 고객사 어플리케이션 실행을 위한 기기 인증 요청에 따라, 통신사 서버(30)로부터 제공된 해시 값을 기반으로 인증을 수행하는 방법을 설명하도록 한다.
설명의 편의를 위해 각 단계들을 프로세서(13) 또는 서비스 제공 서버(10)가 수행하는 것으로 설명하지만, 각 단계는 프로세서(13)에 포함된 해시 값 인증 모듈(131) 및 도 2에 도시되지 않은 모듈 중 어느 하나의 모듈에 의해 수행되는 것으로 이해될 수 있다.
도 3을 참조하면, 서비스 제공 서버(10)의 프로세서(13)는 사용자의 단말(20)로부터 고객사 어플리케이션 실행을 위한 기기 인증 요청을 수신할 수 있다(S310).
서비스 제공 서버(10)의 프로세서(13)는 통신사의 서버(40)로 사용자의 전화번호에 대응하는 적어도 하나의 해시(hash) 값을 요청할 수 있다(S320).
서비스 제공 서버(10)의 프로세서(13)는 적어도 하나의 해시 값을 이용하여 사용자 단말(20)의 인증을 수행할 수 있다(S330).
서비스 제공 서버(10)의 프로세서(13)는 인증 결과를 고객사의 서버(30)로 전달할 수 있다(S340).
도 4a를 참조하면, 기존에는 해커가 사용자의 개인정보를 탈취하고, 기기변경, 분실 전화번호 이동 등을 이유로 유심을 재발급 받거나 복제한 후에, 통신사 서버(30)로 탈취한 개인정보를 이용한 본인 인증을 요청하면, 통신사 서버(40)는 수신된 개인정보를 이용하여 인증을 수행한 후 개통 처리를 완료할 수 있다. 이로 인해, 정상적인 사용자의 휴대폰 통신은 끊기고, 해커는 공기계 형태의 휴대폰에 활성화된 신규 유심을 장착하게 된다. 그리고, 해커는 신규 유심이 장착된 휴대폰에 고객사 앱(고객사 어플리케이션)을 설치한 후, 고객사 단말(30)로 인증코드를 요청한다. 고객사 단말(30)은 해커의 휴대폰으로 인증코드를 전달하고, 해커는 수신된 인증코드를 이용하여 고객사 앱의 비밀번호를 재설정하거나 OTP를 새로 발급하여, 정상적인 사용자의 자산을 탈취하는 것이다.
이하에서는 단계 S310 내지 단계 S340에 대해 도 4b 및 도 5를 참조하여, 본 개시가 고객사 서버(30)와 통신사 서버(40) 사이에 서비스 제공 서버(10)를 두고 심 스와핑을 방지하기 위한 인증을 수행하는 것에 대해 설명하도록 한다.
※ 단계 S310 내지 단계 S330에 대한 설명
도 4a를 참조하면, 사용자가 사용자 단말(20)을 통해 고객사 어플리케이션을 이용하기 위해, 사용자 단말(20)은 고객사 서버(30)로 고객사 어플리케이션 실행을 위한 기기 인증 요청을 송신할 수 있다(S401). 고객사 단말(30)은 수신된 기기 인증 요청을 서비스 제공 서버(10)로 송신할 수 있다(S402)
서비스 제공 서버(10)의 프로세서(13)는 통신사 서버(40)로 사용자의 전화번호에 대응하는 적어도 하나의 해시 값을 요청하면(S403), 통신사 서버(40)는 상기 전화번호에 대한 제1 해시 값, 상기 사용자 단말(20)의 식별 정보에 대한 제2 해시 값 및 상기 사용자 단말(20)에 포함된 심카드의 식별 정보에 대한 제3 해시 값 중 적어도 하나를 서비스 제공 서버(10)로 제공할 수 있다(S404).
여기서, 사용자 단말(20)의 식별 정보는 기기 인증을 요청한 사용자 단말(20)을 식별할 수 있는 고유 정보일 수 있다. 예를 들어, 사용자 단말(20)의 식별 정보는 IMEI(International Mobile Equipment Identity)일 수 있으며, 이에 제한되는 것은 아니다.
또한, 사용자 단말(20)에 포함된 심카드의 식별 정보는 사용자 단말(20)에 장착된 심카드(유심카드)를 식별할 수 있는 고유 정보일 수 있다. 예를 들어, 사용자 단말(20)에 포함된 심카드의 식별 정보는 IMEI(Integrated Circuit Card Identifier)일 수 있으며, 이에 제한되는 것은 아니다.
서비스 제공 서버(10)의 프로세서(13)는 수신된 해시 값을 기반으로 기기 인증을 수행할 수 있다(S405).
보다 상세하게, 프로세서(13)는 통신사 서버(40)로부터 수신된 해시 값 및 상기 서비스 제공 서버(10) 내에 사용자(또는 사용자 단말(10))에 대해 기 저장된 해시 값의 비교를 통해 상기 인증을 수행하고, 상기 인증 결과 상기 수신된 해시 값이 상기 기 저장된 해시 값과 다르면 상기 사용자 단말(20)의 기기 변경 또는 심 변경이 수행됐던 것으로 판단할 수 있다.
도 5를 참조하면, 프로세서(13)는 사용자 단말(20)로부터 상기 기기 인증 요청을 수신할 때 사용자(또는 사용자 단말(10)의 전화번호(MDN, Mobile Directory Number)를 함께 전달받는다(S501, S502).
프로세서(13)는 토큰 및 확인 URL(Check URL)을 생성하고(S503), 확인 URL이 포함된 토큰을 고객사 서버(30)를 통해 사용자 단말(20)로 제공할 수 있다(S504, S505). 이렇게 확인 URL을 전송하는 이유는 사용자 제공 서버(10)가 고객사 서버(30)를 통하지 않고 사용자 단말(20)과 모바일 네트워크로 다이렉트 연결을 하기 위함이다.
확인 URL을 통해 인앱에서 모바일 네트워크로 연결이 되면 서비스 제공 서버(10)는 수신된 토큰이 정상적으로 돌아온 것을 확인하면(수신된 확인 URL이 상기 토큰에 포함된 확인 URL과 동일하면)(S506, S507), 양자 간에 연결이 됐다고 판단을 하고, 통신사 서버(40)로 수신된 전화번호(MDN)를 전달하면서, 토큰에 대응되도록 전화번호가 매칭되는지에 대한 확인 요청과 해시 값 요청을 송신할 수 있다(S508).
통신사 서버(40)는 전화번호 매칭이 확인되면, 상기 제1 해시 값(도 5에 도시된 MDN), 상기 제2 해시 값(도 5에 도시된 IMEI) 및 상기 제3 해시 값(도 5에 도시된 ICCID) 중 적어도 하나를 생성할 수 있고, 생성된 해시 값을 서비스 제공 서버(10)로 전달할 수 있다(S509, S510).
실시예에 따라, 통신사 서버(40)는 세 개의 정보(MDN, IMEI, ICCID) 각각을 하나의 해시 값(제1 해시 값 내지 제3 해시 값)으로 생성하여, 서비스 제공 서버(10)로 세 개 중 하나만을 전달할 수도 있고, 서비스 제공 서버(10)로 세 개 중 두 개만 전달할 수도 있고, 서비스 제공 서버(10)로 세 개 모두 전달할 수도 있다.
예를 들어, 통신사 서버(40)는 제1 내지 제3 해시 값 중에서 제2 해시 값만 전송할 수 있고, 또는 제1 내지 제3 해시 값 중에서 제2 해시 값과 제3 해시 값을 전송할 수 있고, 또는 제1 내지 제3 해시 값 전부를 전송할 수도 있다.
실시예에 따라, 통신사 서버(40)는 세 개의 정보(MDN, IMEI, ICCID) 중 두 개의 정보를 합한 정보(데이터)를 하나의 해시 값으로 생성하여 서비스 제공 서버(10)로 전달할 수 있다.
예를 들어, 통신사 서버(40)는 IMEI+ICCID의 값을 하나의 해시 값으로 생성할 수 있고, 또는 IMEI+MDN의 값을 하나의 해시 값으로 생성할 수 있고, 또는 ICCID+MDN의 값을 하나의 해시 값으로 생성할 수 도 있다.
실시예에 따라, 통신사 서버(40)는 세 개의 정보(MDN, IMEI, ICCID)를 모두 합한 정보(데이터)를 하나의 해시 값으로 생성하여 서비스 제공 서버(10)로 전달할 수 있다. 예를 들어, 통신사 서버(40)는 IMEI+ICCID+MDN의 값을 하나의 해시 값으로 생성할 수 있다.
서비스 제공 서버(10)는 수신된 해시 값과 기 저장된 해시 값과의 비교를 통해 기기 변경 또는 심 변경 여부를 체크할 수 있다(S511).
보다 상세하게, 사용자(또는 사용자 단말(10))이 통신사 서버(30)에 가입 시, 통신사 서버(30)는 해당 사용자에 대한 초기 해시 값을 생성해서 사용자 단말(10)로 제공할 수 있다. 사용자 단말(10)은 초기 해시 값을 저장해두고 이후에 수신되는 해시 값과의 비교를 통해 기기 변경 또는 심 변경 여부를 체크할 수 있다.
초기 해시 값 생성 방법은 상술한 해시 값 생성 방법과 동일하며, 상술한 바와 같이 해시 값은 3개의 정보(MND, IMEI, ICCID)의 조합에 따라 상이하게 생성될 수 있다(MND, IMEI, ICCID, IMEI+ICCID, IMEI+MDN, ICCID+MDN, IMEI+ICCID+MDN).
실시예에 따라, 서비스 제공 서버(10)는 두 값의 비교 결과, IME이 다르면 사용자 단말에 기기 변경이 있었던 것으로 판단할 수 있다.
실시예에 따라, 서비스 제공 서버(10)는 두 값의 비교 결과, ICCID이 다르면 사용자 단말에 심 변경이 있었던 것으로 판단할 수 있다.
※ 단계 S340에 대한 설명
도 4a를 참조하면, 사용자 단말에 기기 변경 또는 심 변경이 있었던 것으로 판단되면, 서비스 제공 서버(10)는 고객사 서버(30)로 상기 사용자 단말(20)이 정상적인 기기가 아님을 알리는 기기 인증 결과를 전달할 수 있다(S406, 도 5에서 S512).
또는, 사용자 단말에 기기 변경 또는 심 변경이 없었던 것으로 판단되면, 서비스 제공 서버(10)는 고객사 서버(30)로 상기 사용자 단말(20)이 정상적인 기기임을 알리는 기기 인증 결과를 전달할 수 있다
이에 따라, 고객사 서버(30)는 사용자 단말(20)로 요청됐던 정보를 제공할지 또는 제공하지 않을지를 결정할 수 있다(S407).
정상적인 기기라면, 고객사 서버(30)는 사용자가 요청했던 신규 가입이나 재발급 등의 요청이 정상적인 요청이었던 것으로 판단하고, 신규 가입 또는 재발급을 위한 관련 정보를 제공할 수 있다.
비정상적인 기기라면, 고객사 서버(30)는 사용자가 요청했던 신규 가입이나 재발급 등의 요청이 비정상적인 요청이었던 것으로 판단하고, 신규 가입 또는 재발급을 위한 관련 정보를 제공하지 않을 수 있다.
한편, 본 개시에 따른 서비스 제공 서버(10)에 의해 제공되는 심 스와핑 방지를 위한 서비스는 클라우드 방식을 기반으로 상기 고객사 서버(30)에게 제공되거나, 상기 고객사 서버(30) 내부에 상기 서비스를 위한 서버가 탑재된 형태(On-premise 방식)로 상기 고객사 서버(30)에게 제공될 수 있다. 이와 관련한 자세한 설명은 후술하도록 한다.
이하에서 도 6을 참조하여, 서비스 제공 서버(10)가 카드(50) 및 사용자 단말(20) 간 태깅을 통해 생성된 인증용 가상 코드를 기반으로 사용자 단말(20)을 통해 고객사 서비스를 이용하려는 사용자가 정상적인 사용자인지에 대한 인증을 수행하는 방법을 설명하도록 한다.
설명의 편의를 위해 각 단계들을 프로세서(13) 또는 서비스 제공 서버(10)가 수행하는 것으로 설명하지만, 각 단계는 프로세서(13)에 포함된 OTAC 인증 모듈(132) 및 도 2에 도시되지 않은 모듈 중 어느 하나의 모듈에 의해 수행되는 것으로 이해될 수 있다.
프로세서(13)는 상기 고객사 어플리케이션 내 등록이 완료된 상기 사용자의 카드(50) 및 상기 사용자 단말(20) 간의 태깅 시 상기 카드(50)에서 생성된 인증용 가상 코드를 수신하고, 상기 인증용 가상 코드를 기반으로 정상적인 사용자가 상기 사용자 단말(10)을 통해 고객사 서비스를 이용하려는 것인지에 대한 검증을 수행할 수 있다.
여기서, 인증용 가상 코드는 현재 시간 데이터, 카드(50)의 카드번호, 카드(50)의 고유값 중 적어도 하나를 이용하여 생성될 수 있다. 카드번호는 고객사(예를 들어, 금융사)의 식별코드(예를 들어, BIN)를 포함할 수 있고, 카드의 고유값은 카드제조사에 의해 제작되는 카드 별로 순차적으로 부여되는 값일 수 있다. 현재 시간 데이터는 태깅 시 사용자 단말(20)에서 카드(50)로 제공될 수 있고, 또는 카드(50)에서 자체적으로 획득될 수 있다.
프로세서(13)는 상기 카드(50) 및 상기 사용자 단말(20) 간의 태깅을 통해 사용자 등록이 요청되면, 상기 카드번호 및 상기 고유값 중 적어도 하나를 사용자 정보와 매칭하여 저장할 수 있다. 여기서, 사용자 정보는 전화번호(MDN), 유저 ID(아이디), 시크릿 키(Secret key)를 포함할 수 있으며, 이에 제한되는 것은 아니다. 시크릿 키는 사용자 단말(20)이 사용자 등록을 요청할 때, 서비스 제공 서버(10)에 의해 생성되어 해당 사용자 단말(20)에 부여되는 값일 수 있다. 유저 ID는 고객사 앱에 가입된 사용자의 아이디를 의미할 수 있다.
이렇게 사용자 등록이 완료되면, 서비스 제공 서버(10) 내에서 상기 사용자(또는 사용자 단말(10))에 대한 인증용 가상 코드 생성을 위한 함수가 초기 설정되어 구동을 시작하게 된다.
실시예에 따라, 프로세서(13)는 OTAC 검증을 위해 한가지의 사용자 정보만 관리할 수 있으며, 그 개수는 한가지에 한정되지는 않는다. 또한, 실시예에 따라, 프로세서(13)는 OTAC 검증을 위해 서버 내에 최종 등록된 정보만 유효한 정보로 활용할 수 있다.
프로세서(13)는 인증용 가상 코드를 이용하여 검증을 수행할 수 있다. 즉, 인증용 가상 코드에서 추출된 상기 카드번호 또는 상기 고유값을 이용하여 탐색된 사용자 정보를 기반으로 상기 검증을 수행할 수 있다.
도 5를 참조하면, 카드(50)와 사용자 단말(20) 간에 태깅이 이루어지면(S601), 카드(40)에서 인증용 가상 코드가 생성되고(S602), 생성된 인증용 가상 코드는 사용자 단말(20), 고객사 서버(30)를 통해 서비스 제공 서버(10)로 전달된다(S603, S604, S605). 서비스 제공 서버(10)는 수신된 인증용 가상 코드 검증(OTAC 검증)을 수행한다(S606).
실시예에 따라, 프로세서(13)는 탐색 알고리즘을 통해 인증용 가상 코드로부터 카드번호 또는 고유값을 탐색할 수 있다. 프로세서(13)는 해당 서버 내에서 탐색된 카드번호 또는 고유값에 매칭된 사용자 정보가, 해당 사용자(또는 사용자 단말(10))에 대해 가장 최근에 등록된 사용자 정보와 일치하는지를 판단할 수 있다.
두 정보가 일치하면, 프로세서(13)는 현재 정상적인 사용자가 본인의 사용자 단말(20)을 이용하여 정상적인 서비스 요청을 하는 것으로 판단할 수 있다. 그리고, 이러한 검증 결과는 고객사 서버(30)로 제공할 수 있다(S607). 이에 따라, 고객사 서버(30)는 사용자 단말(20)로 요청된 서비스(신규 가입 또는 재발급 등)와 관련된 정보를 제공할 수 있다(S608).
두 정보가 일치하지 않으면, 프로세서(13)는 현재 비정상적인 사용자가 사용자 단말(20)을 이용하여 서비스 요청을 하는 것으로 판단할 수 있다. 그리고, 이러한 검증 결과는 고객사 서버(30)로 제공할 수 있다(S607). 이에 따라, 고객사 서버(30)는 사용자 단말(20)로 요청된 서비스(신규 가입 또는 재발급 등)와 관련된 정보를 제공하지 않을 수 있다(S608).
실시예에 따라, 고객사 어플리케이션에 인증용 가상 코드 생성을 위한 모듈이 포함된 경우, 프로세서(13)는 상기 인증용 가상 코드 생성 모듈에서 생성된 최종 인증용 가상 코드를 수신하고, 상기 최종 인증용 가상 코드에 대한 검증을 수행할 수 있다. 여기서, 최종 인증용 가상 코드는, 상기 사용자 정보와 상기 인증용 가상 코드를 이용하여 생성될 수 있다.
즉, 최종 인증용 가상 코드는 카드에서 생성된 인증용 가상 코드와 함께 최종 등록된 사용자 정보를 이용하여 생성된다. 그리고, 서비스 제공 서버(10)는 최종 인증용 가상 코드로부터 추출된 상기 카드번호 또는 상기 고유값을 이용하여 사용자 정보를 탐색하고, 탐색된 사용자 정보와, 최종 인증용 가상 코드에 포함된 최종 등록된 사용자 정보를 비교하여 OTAC 검증을 수행할 수 있다.
한편, 상술한 바와 같이, 심 스와핑 방지를 위한 서비스는 클라우드 방식 또는 On-premise 방식으로 상기 고객사 서버(30)에게 제공될 수 있다.
클라우드 방식은 카드를 가지고 있지 않은 제3 서비스도 심 스와핑 방지 서비스를 이용할 수 있도록 하기 위해 적용될 수 있다. 실시예에 따라, 제3 서비스의 자사 SDK를 고객사 서버에 탑재하고 카드를 신규 등록할 때, 제3 서비스의 자사 플랫폼 서버에도 해당 카드를 등록하여, 이후 서비스 제공 서버(10)에서 검증 시 활용 가능하게 할 수 있다. 실시예에 따라, 고객사 서버에 카드에 의한 OTAC 검증 서버를 두고, 제3 서비스의 서버가 고객사 서버와 API 연동을 통해 검증 결과를 수신할 수 있다.
On-premise 방식은 각 고객사 서버 내부에 탑재된 서비스 제공 서버를 통해 고객사가 기기 변경 및 심 변경에 대한 인증 결과를 수신할 수 있다. 이 경우 자체적으로 발급한 카드의 태깅을 통해 개인정보 탈취를 직접적으로 차단할 수 있다.
이하에서는 카드에 포함된 OTAC 생성 모듈(인증용 가상 코드 생성 모듈)이 인증용 가상 코드를 생성하는 방법에 대해서 구체적으로 설명하도록 한다.
OTAC 생성 모듈은 하나 또는 복수의 세부코드를 생성할 수 있다. 세부코드는 인증용 가상 코드를 구성하는 일부 코드를 의미하는데, 인증용 가상 코드는 세부코드만으로 구성될 수도 있으며, 또는 OTP함수에 의해 생성된 가상보안코드에 하나 또는 복수의 세부코드를 결합하여 최종적으로 인증용 가상 코드(OTAC)의 형태로 형성될 수도 있다.
OTAC 생성 모듈은 인증용 가상 코드를 생성하는 코드 생성 함수를 포함하고, 코드 생성 함수는 하나 이상의 세부코드를 생성하는 세부코드 생성 함수와, 상기 세부코드를 결합하여 가상코드를 생성하는 세부코드 결합 함수(즉, 복수의 세부코드를 조합하는 규칙)를 포함한다.
즉, 인증용 가상 코드가 복수의 세부코드를 포함하는 경우, 코드 생성 함수는 복수의 세부코드 생성 함수를 이용하여 복수의 세부코드를 생성하고, 상기 세부코드 결합 함수를 통해 상기 복수의 세부코드를 기 설정된 조합으로 결합하여 인증용 가상 코드를 생성한다.
복수의 세부코드 간에는 OTAC 검증 서버(서비스 제공 서버(10))가 사용자 또는 디바이스를 식별할 수 있는 정보의 저장위치를 탐색하기 위해 이용되는 상관관계를 가진다. 즉, OTAC 검증 서버는 탐색 알고리즘을 구비하고, 상기 탐색 알고리즘은 인증용 가상 코드에 포함된 복수의 세부코드를 추출하고, 상기 복수의 세부코드의 상관관계를 기반으로 카드번호 또는 카드의 고유값의 저장위치를 탐색한다. 상기 복수의 세부코드가 가지는 상관관계에 대한 일 실시예로, 탐색 알고리즘은 복수의 세부코드 중 하나 이상의 세부코드에 대응하는 경유지점으로부터 상기 복수의 세부코드 간의 상관관계를 기반으로 연산하여 카드번호 또는 카드의 고유값의 저장위치를 탐색할 수 있다. 이때, 상기 경유지점은 하나 또는 복수일 수 있으며 개수 및 순서에 제한은 없다.
또한, 복수의 세부코드의 일 실시예로, 복수의 세부코드는 제1코드 및 제2코드를 포함할 수 있고, OTAC 생성 모듈은 세부코드 생성 함수로 제1함수와 제2함수를 포함하여, 제1코드 및 제2코드를 생성한다. 제1코드와 제2코드는 OTAC 검증 서버(15, 31) 내에서 카드번호 또는 카드의 고유값의 저장위치를 탐색하기 위한 상관관계를 가지나, OTAC 생성 모듈은 보안성을 높이기 위해 제1코드를 생성하는 제1함수와 제2코드를 생성하는 제2함수를 세부코드 생성 함수로 포함할 뿐, 제1코드와 제2코드의 상관관계에 대한 데이터를 포함하지 않을 수 있다.
제1코드와 제2코드의 상관관계의 구체적인 예로, 제1코드와 제2코드는 카드번호 또는 카드의 고유값의 저장위치를 탐색하기 위한 각각의 역할을 수행할 수 있다. 즉, 제1코드는 상기 경유지점에 대한 정보를 포함하고, 제2코드는 상기 경유 지점으로부터 상기 카드번호 또는 카드의 고유값의 저장위치에 도달할 수 있는 연산에 필요한 정보를 포함할 수 있다.
한편, 본 개시의 일 실시예로 제1코드는 제1카운트를 기반으로 생성되며, 제2코드는 제2카운트를 기반으로 생성될 수 있다. 이때, 제1카운트는 OTAC 생성 모듈 또는 OTAC 검증 서버에서 코드 생성 함수가 구동된 최초시점으로부터 인증용 가상 코드가 생성된 시점까지 경과된 단위 카운트의 개수이고, 제2카운트는 카드번호 또는 카드의 고유값이 OTAC 검증 서버에 저장된 시점으로부터 경과된 단위 카운트 개수를 포함할 수 있다.
즉, 제1코드를 생성하는 제1함수는 제1카운트에 대응되는 특정한 코드값을 제공하는 함수이고, 제2코드를 생성하는 제2함수는 제2카운트에 대응되는 특정한 코드값을 제공하는 함수이다.
이하에서는, OTAC 생성 모듈이 인증용 가상 코드를 검증하는 방법에 대하여 구체적으로 설명하도록 한다.
본 개시의 일 실시예로, OTAC 검증 서버가 상기 사용자 단말(20)로부터 상기 인증용 가상 코드를 수신하면, 상기 인증용 가상 코드를 수신한 시간 데이터 및 상기 인증용 가상 코드의 시간 데이터를 비교하여 상기 인증용 가상 코드를 검증할 수 있다.
구체적으로, OTAC 검증 서버에서 인증용 가상 코드가 정상적으로 생성된 것인지를 검증한다. 즉, OTAC 검증 서버는 인증용 가상 코드를 수신한 후 OTAC 검증 서버에 저장된 정보(즉, 코드 생성 함수 및 시드 데이터)를 바탕으로 상기 수신한 인증용 가상 코드가 현 시점에 정상적으로 생성된 것인지를 확인하여 인증용 가상 코드의 정상 여부를 판단한다. OTAC 검증 서버는 인증용 가상 코드에 코드 생성 함수의 역함수를 적용하여 인증용 가상 코드가 생성된 시점에 상응하는 카운트를 찾아낸다. 인증용 가상 코드의 전송시간이나 딜레이에 의해 인증용 가상 코드가 생성된 시점과 OTAC 검증 서버가 인증용 가상 코드를 수신한 시점의 차이가 존재함에 따라 OTAC 검증 서버가 인증용 가상 코드를 수신한 카운트와 인증용 OTP번호를 생성한 카운트가 일치하지 않을 수도 있으므로, OTAC 검증 서버는 인증용 가상 코드를 수신한 카운트로부터 오차범위를 허용한다.
한편, 본 개시의 일 실시예로 OTAC 검증 서버는 상기 인증용 가상 코드를 기반으로 카드번호 또는 카드의 고유값의 저장위치를 탐색하여 사용자 정보를 추출하고, 상기 추출한 사용자 정보를 기반으로 사용자 또는 기기 인증을 수행할 수 있다.
도 3은 단계들을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 3에 기재된 순서를 변경하여 실행하거나 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 3은 시계열적인 순서로 한정되는 것은 아니다.
한편, 상술한 설명에서, 도 3에 기재된 단계들은 본 개시의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
한편, 개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 개시가 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
10: 서비스 제공 서버
11: 통신 모듈
12: 메모리
13: 프로세서
131: 해시 값 인증 모듈
132: OTAC 인증 모듈
20: 사용자 단말
30: 고객사 서버
40: 통신사 서버
50: 카드

Claims (10)

  1. 통신 모듈; 및
    상기 통신 모듈을 통해 사용자의 단말로부터 고객사 어플리케이션 실행을 위한 기기 인증 요청이 수신되면, 통신사의 서버로 상기 사용자의 전화번호에 대응하는 적어도 하나의 해시(hash) 값을 요청하고, 상기 적어도 하나의 해시 값을 이용하여 상기 사용자 단말에 대한 상기 기기 인증을 수행하고, 상기 기기 인증 결과를 고객사의 서버로 전달하는 프로세서;를 포함하는,
    인증 코드 기반의 심 스와핑(SIM swapping) 방지를 위한 서비스 제공 서버.
  2. 제1 항에 있어서,
    상기 해시 값은, 상기 전화번호에 대한 제1 해시 값, 상기 사용자 단말의 식별 정보에 대한 제2 해시 값 및 상기 사용자 단말에 포함된 심카드의 식별 정보에 대한 제3 해시 값을 포함하는,
    인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버.
  3. 제1 항에 있어서,
    상기 프로세서는, 상기 통신사 서버로부터 수신된 해시 값 및 상기 사용자에 대해 기 저장된 해시 값의 비교를 통해 상기 인증을 수행하고, 상기 인증 결과 상기 수신된 해시 값이 상기 기 저장된 해시 값과 다르면 상기 사용자 단말의 기기 변경 또는 심 변경이 수행됐던 것으로 판단하고, 상기 고객사 서버로 상기 사용자 단말이 정상적인 기기가 아님을 알리는 상기 기기 인증 결과를 전달하는,
    인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버.
  4. 제1 항에 있어서,
    상기 프로세서는, 상기 사용자 단말로부터 상기 기기 인증 요청이 수신되면, 상기 사용자 단말로 확인 URL이 포함된 토큰을 송신하고, 상기 사용자 단말로부터 수신된 확인 URL이 상기 토큰에 포함된 확인 URL과 동일하면 상기 통신사 서버로 상기 해시 값을 요청하는,
    인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버.
  5. 제1 항에 있어서,
    심 스와핑 방지를 위한 서비스는, 클라우드 방식을 기반으로 상기 고객사 서버에게 제공되거나, 상기 고객사 서버 내부에 상기 서비스를 위한 서버가 탑재된 형태로 상기 고객사 서버에게 제공되는,
    인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버.
  6. 제1 항에 있어서,
    상기 프로세서는, 상기 고객사 어플리케이션 내 등록이 완료된 상기 사용자의 카드 및 상기 사용자 단말 간의 태깅 시 상기 카드에서 생성된 인증용 가상 코드를 수신하고, 상기 인증용 가상 코드를 기반으로 정상적인 사용자가 상기 사용자 단말을 통해 고객사 서비스를 이용하려는 것인지에 대한 검증을 수행하고,
    상기 인증용 가상 코드는, 현재 시간 데이터, 상기 카드의 카드번호, 상기 카드의 고유값 중 적어도 하나를 이용하여 생성되는,
    인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버.
  7. 제6 항에 있어서,
    상기 프로세서는, 상기 카드 및 상기 사용자 단말 간의 태깅을 통해 상기 등록이 요청되면, 상기 카드번호 및 상기 고유값 중 적어도 하나를 사용자 정보와 매칭하여 저장하는,
    인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버.
  8. 제7 항에 있어서,
    상기 프로세서는, 상기 인증용 가상 코드에서 추출된 상기 카드번호 또는 상기 고유값을 이용하여 탐색된 사용자 정보를 기반으로 상기 검증을 수행하는,
    인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버.
  9. 제7 항에 있어서,
    상기 고객사 어플리케이션에 인증용 가상 코드 생성을 위한 모듈이 포함된 경우,
    상기 프로세서는, 상기 모듈에서 생성된 최종 인증용 가상 코드를 수신하고, 상기 최종 인증용 가상 코드에 대한 검증을 수행하고,
    상기 최종 인증용 가상 코드는, 상기 사용자 정보와 상기 인증용 가상 코드를 이용하여 생성되는,
    인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버
  10. 서비스 제공 서버에 의해 수행되는 방법에 있어서,
    사용자의 단말로부터 고객사 어플리케이션 실행을 위한 기기 인증 요청을 수신하는 단계;
    통신사의 서버로 상기 사용자의 전화번호에 대응하는 적어도 하나의 해시(hash) 값을 요청하는 단계;
    상기 적어도 하나의 해시 값을 이용하여 상기 사용자 단말에 대한 상기 기기 인증을 수행하는 단계; 및
    상기 기기 인증 결과를 고객사의 서버로 전달하는 단계;를 포함하는,
    인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 방법.
KR1020230028333A 2022-03-04 2023-03-03 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법 KR20230131446A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2023/002995 WO2023167568A1 (ko) 2022-03-04 2023-03-04 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220027972 2022-03-04
KR1020220027972 2022-03-04
KR20220148325 2022-11-09
KR1020220148325 2022-11-09

Publications (1)

Publication Number Publication Date
KR20230131446A true KR20230131446A (ko) 2023-09-13

Family

ID=88020670

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230028333A KR20230131446A (ko) 2022-03-04 2023-03-03 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법

Country Status (1)

Country Link
KR (1) KR20230131446A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101316466B1 (ko) 2012-11-20 2013-10-08 신한카드 주식회사 다이나믹 트랙 2 정보를 이용한 모바일 결제 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101316466B1 (ko) 2012-11-20 2013-10-08 신한카드 주식회사 다이나믹 트랙 2 정보를 이용한 모바일 결제 시스템 및 방법

Similar Documents

Publication Publication Date Title
US10496832B2 (en) System and method for initially establishing and periodically confirming trust in a software application
US10552823B1 (en) System and method for authentication of a mobile device
Lee et al. An empirical study of wireless carrier authentication for {SIM} swaps
EP3438812B1 (en) System and method for providing secure data communication permissions to trusted applications on a portable communication device
US8973102B2 (en) Systems and methods for authenticating a user and device
US9344882B2 (en) Apparatus and methods for preventing information disclosure
US20160104154A1 (en) Securing host card emulation credentials
US20120266220A1 (en) System and Method for Controlling Access to a Third-Party Application with Passwords Stored in a Secure Element
US11910194B2 (en) Secondary device authentication proxied from authenticated primary device
KR20150124933A (ko) 개인정보 유출과 스미싱을 방지할 수 있는 사용자 이중 인증 방법
KR20140045497A (ko) 무선 단말기와 함께 사용하기 위한 트랜잭션 시스템 및 방법
US20170262837A1 (en) Mobile transaction device implementing transactions via text messaging
US11985507B2 (en) Subscriber identification module (SIM) authentication protections
WO2019173620A1 (en) Method and apparatus for facilitating frictionless two-factor authentication
US9246677B2 (en) Method and system for secure data communication between a user device and a server
US9832649B1 (en) Secure ID authentication
US11503018B2 (en) Method and system for detecting two-factor authentication
KR101799517B1 (ko) 인증 서버 및 방법
KR101447619B1 (ko) 식별 모듈 관리 방법 및 장치
KR101103634B1 (ko) 이동 단말기를 이용한 카드사 서버의 인증 방법 및 카드사 서버
KR20230131446A (ko) 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법
KR20230131445A (ko) 인증용 가상코드 기반의 인증을 통해 해킹을 방지하기 위한 장치 및 방법
KR101185488B1 (ko) 이동 단말기의 제어 방법 및 금융기관서버의 제어 방법 및 금융기관서버
WO2023167568A1 (ko) 인증 코드 기반의 심 스와핑 방지를 위한 서비스 제공 서버 및 방법
Fonte Host card emulation with tokenisation: Security risk assessments