KR101837150B1 - 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법 - Google Patents

프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법 Download PDF

Info

Publication number
KR101837150B1
KR101837150B1 KR1020160082721A KR20160082721A KR101837150B1 KR 101837150 B1 KR101837150 B1 KR 101837150B1 KR 1020160082721 A KR1020160082721 A KR 1020160082721A KR 20160082721 A KR20160082721 A KR 20160082721A KR 101837150 B1 KR101837150 B1 KR 101837150B1
Authority
KR
South Korea
Prior art keywords
proxy
authentication
code
key
terminal
Prior art date
Application number
KR1020160082721A
Other languages
English (en)
Other versions
KR20180003196A (ko
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 KR1020160082721A priority Critical patent/KR101837150B1/ko
Priority to PCT/KR2017/003364 priority patent/WO2018004114A2/ko
Publication of KR20180003196A publication Critical patent/KR20180003196A/ko
Application granted granted Critical
Publication of KR101837150B1 publication Critical patent/KR101837150B1/ko

Links

Images

Classifications

    • 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/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

기존 Proxy Server 기술의 표준 규격(RFC1928, RFC1929 등)에 명시된 Username/Password를 사용하는 이 Proxy인증기법은 가입자정보를 단말이 인증용으로 보내온 정보와 대조하여서 인증하는 방법이기에, 상용 이동 망과 같은 방대한 가입자를 가지는 환경에서 사용할 시, 방대한 가입자 정보를 Proxy-Server가 관리해야 하는 부담과 Proxy인증으로 인한 성능저하가 크다는 문제가 있다. 본 발명은 상술한 문제를 해결할 수 있는 발명으로, 매 proxy 세션마다 진행되는 Proxy인증에 가입자정보의 대조를 사용하는 대신 동일한 키 값이 사용되는 지를 확인함으로써, 방대한 가입자정보를 가지는 상용 이동 망에서도 Proxy Server가 가입자의 정보를 관리할 필요 없이 Proxy 인증을 빠르게 진행할 수 있는 새로운 Proxy 인증시스템 및 인증방법에 관한 것이다.

Description

프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법{Proxy authentication system and method for providing proxy service}
본 발명은 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법에 관한 것으로, 더욱 상세하게는 매 proxy 세션마다 진행되는 Proxy 인증에 가입자정보의 대조를 사용하는 대신 동일한 키 값이 사용되는지를 확인하여 Proxy 인증을 수행하는 것으로, Proxy 인증을 빠르게 진행할 수 있으며 방대한 가입자를 가지는 상용 이동 망에서의 Proxy 인증 시 발생하는 성능저하도 최소화할 수 있는 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법에 관한 것이다.
Proxy Server 기술은 송신되는 패킷이 수신측에 도착하기 전에 특정 Proxy Server를 거쳐가도록 하여 패킷에 대한 부가서비스를 제공할 수 있도록 하는 기술로서, 네트워크 서비스나 콘텐츠의 접근 정책의 적용, 사용자의 네트워크 사용률을 관측, 데이터의 유출 방지, MPTCP용 Aggregation Point 제공 등의 네트워크 사용자에게 차별적인 부가서비스를 제공하기 위해 사용된다.
Proxy Server 기술은 사용자에게 부가서비스를 제공하는 것이기에 특정 사용자에게만 제공해야 하는 경우가 있고, 이를 위해 Proxy Server 기술의 표준 규격 (RFC1928, RFC1929 등)에서는 Username/Password를 사용하는 사용자 인증 방법을 제시한다.
그러나 이 Username/Password를 사용하는 사용자 인증 방법은 방대한 가입자 수를 다루는 상용 망에서 사용될 경우, 많은 가입자 정보를 관리하는 데이터베이스의 관리로 인한 관리 부담과 방대한 양의 정보와 대조를 해야 하는 Proxy 인증절차로 인한 Proxy서비스 제공성능의 저하가 발생하는 한계가 있다.
또는 Proxy 서버가 인증에 필요한 정보(예: Username/Password)를 인증서버로 전달하여 인증 서버의 결과에 따라 해당 액세스를 허용하거나 거부하는 방식이 사용된다. 그러나 이러한 방식은 다수의 이동 단말로부터 액세스 여부를 실시간으로 결정해야 하는 경우에는 액세스 지연이 길고, 처리 성능이 떨어지므로 MPTCP 기반 aggregation 응용에는 적합하지 않다.
국내공개특허 제 10-2004-0036813호
본 발명은 상기한 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 수백만 이상의 가입자를 가지고 있는 상용 이동 망에서 Proxy를 이용한 서비스제공 시 현존하는 Proxy 인증방법을 사용하면서도 수백만의 가입자에 대한 관리를 필요치 않도록 하여 가입자 수로 인한 Proxy 성능저하 및 가입자 관리 부담을 줄일 수 있는 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법을 제공하는 것이다.
본 발명의 일실시예에 따른 프록시 서비스 제공을 위한 프록시 인증시스템은 가입자를 선 인증하고 가입자 정보 없이 Proxy 인증을 진행하기 위한 초기설정정보를 단말과 Proxy-Server로 전달하는 Proxy-Manager; 상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로, Proxy 인증용 패킷을 구성하는 Username용 Code1과 Password용 Code2를 생성하고, 상기 Proxy 인증용 패킷을 상기 Proxy-Server로 송신하는 단말; 및 상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로, 가입자정보 없이 인증을 처리할 수 있도록 하는 해석용 키를 생성하며, 단말의 인증 요청 시 해석용 키를 이용하여 인증을 수행하고, 인증이 완료된 가입자의 정보를 복원 및 저장하는 Proxy-Server;를 포함하여 이루어질 수 있다.
또한, 상기 초기설정정보는 각 단말 비종속적 코드 항목 및/또는 각 단말에 종속적인 코드 항목을 포함하는 사용코드리스트, Group Code, OTP(One Time Password; 이하 OTP) 생성용 Shared Secret, 및 Random-Number의 길이를 포함하되, 상기 사용코드리스트에 포함되는 각 코드 항목들 중 각 단말 비종속적 코드 항목에 있어서, 상기 코드 항목들의 값 중 네트워크로부터 수집할 수 없는 값이 포함된 경우 해당 코드 항목들의 값을 더 포함할 수 있다.
또, 상기 Code2는 각 단말이 보관할 수 있는 단말 종속적인 코드 항목의 값 중에 상기 Proxy-Manager로부터 전달받은 상기 사용코드리스트에 포함된 코드 항목의 값, 및 상기 Random-Number의 길이만큼의 Random-Number로 이루어지며, 상기 Code1은 단말의 정보를 가지는 UE-ID와 상기 Random-Number를 합친 후 상기 초기설정정보를 기반으로 생성한 Proxy 인증키를 이용하여 암호화하여 생성될 수 있다.
이때, 상기 Proxy 인증키는 Group-Key 및 Master-key를 포함하며, 상기 Group-Key는 상기 Group Code 기반으로 생성되고, 상기 Master-key는 상기 사용코드리스트에 포함된 OTP 생성용 Shared Secret을 기반으로 생성되는 OTP, 및 상기 사용코드리스트에 포함된 각 코드 항목들로 이루어질 수 있다.
또한, 상기 Proxy 인증키는 OTP 값의 재생성 주기 도달, 상기 Proxy-Manager로부터의 인증 정책 변경 수신, 사용코드리스트에 포함된 각 코드 항목들의 값 변동 중 어느 하나 이상의 이벤트가 발생될 때마다 갱신될 수 있다.
또, 상기 Proxy-Server는 상기 해석용 키가 상기 단말에서 상기 Code1의 암호화 시 사용한 Proxy 인증키와 동일한지를 확인함으로써, 가입자정보 없이 인증을 수행할 수 있다.
아울러, 상기 Proxy-Server는 상기 단말로부터 전송받은 Proxy 인증용 패킷의 Password 필드에 담긴 Code2에서 Random-Number를 추출하고, 상기 해석용 키를 이용해 상기 Proxy 인증용 패킷의 Username 필드에 저장된 정보를 복호화하여 복호화된 Code1을 추출한 후, 복호화한 Code1에서 추출한 Random-Number와 상기 Code2에서 추출한 Random-Number를 대조하는 것으로 상기 해석용 키가 상기 Proxy 인증키와 동일한지를 판단할 수 있다.
또, 상기 Proxy-Server는 상기 단말과의 시간 비동기로 인한 OTP 값의 차를 극복하기 위해 미리 설정된 다수의 시점에서의 OTP를 생성하여, 생성된 OTP 개수만큼 상기 해석용 키 생성 및 인증 시도를 진행할 수 있다.
본 발명의 일실시예에 따른 프록시 서비스 제공을 위한 프록시 인증방법은, Proxy-Manager가 가입자를 선 인증하고 가입자 정보 없이 Proxy 인증을 진행하기 위한 초기설정정보를 단말과 Proxy-Server로 전달하는 초기설정 단계; 상기 단말이 상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로, Proxy 인증용 패킷에 사용되는 Code1과 Code2를 생성하는 송신 측 키 생성 단계; 상기 단말이 상기 Code1과 Code2를 각각 상기 Proxy 인증용 패킷의 Username 필드와 Password 필드에 담아 상기 Proxy-Server로 전송하는 인증 패킷 전송 단계; 단말의 인증 요청 시 상기 Proxy-Server가 상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로 상기 인증 요청을 가입자정보 없이 처리할 수 있도록 하는 해석용 키를 생성하는 해석용 키 생성 단계; 및 상기 Proxy-Server가 단말의 인증요청을 처리하고, 인증 성공 시 인증이 완료된 가입자의 정보를 복원 및 저장하는 인증 및 사용자 정보 복원 단계;를 포함하여 이루어질 수 있다.
또, 상기 송신 측 키 생성 단계에서 상기 Code2는, 각 단말이 보관할 수 있는 단말 종속적 값 중에 상기 Proxy-Manager로부터 전달받은 사용코드리스트에 포함된 코드 항목의 값, 및 상기 Proxy-Manager로부터 전달받은 Random-Number의 길이만큼의 Random-Number로 이루어지며, 상기 Code1은, 단말의 정보를 가지는 UE-ID와 상기 Random-Number를 합친 후 상기 초기설정정보를 기반으로 생성한 Proxy 인증키를 이용하여 암호화하여 생성될 수 있다.
또한, 상기 Proxy 인증키는 Group-Key 및 Master-key를 포함하며, 상기 Group-Key는 Group Code 기반으로 생성되고, 상기 Master-key는 상기 초기설정정보에 포함된 OTP 생성용 Shared Secret을 기반으로 생성되는 OTP, 및 상기 사용코드리스트에 포함된 각 코드 항목들로 이루어질 수 있다.
또한, 상기 해석용 키 생성 단계 및 상기 인증 및 사용자 정보 복원 단계는, 상기 Proxy-Server가 상기 단말과의 시간 비동기로 인한 OTP 값의 차를 극복하기 위해, 미리 설정된 다수의 시점에서 생성해놓은 OTP의 개수만큼 반복 수행되어 상기 단말의 인증을 시도할 수 있다.
아울러, 상기 인증 및 사용자 정보 복원 단계에서, 상기 해석용 키가 상기 단말에서 상기 Code1의 암호화 시 사용한 Proxy 인증키와 동일한지를 확인함으로써 가입자정보 없이 상기 단말의 인증을 수행할 수 있다.
마지막으로, 상기 인증 및 사용자 정보 복원 단계는, 상기 단말이 전송한 Proxy 인증용 패킷의 Password 필드에 담긴 Code2에서 Random-Number를 추출하는 단계; 상기 해석용 키를 이용해 상기 Proxy 인증용 패킷의 Username 필드에 저장된 정보를 복호화하여 복호화된 Code1을 추출하고, 상기 복호화한 Code1에 포함된 Random-Number를 추출하는 단계; 상기 Code1에서 추출한 Random-Number와 상기 Code2에서 추출한 Random-Number를 대조하는 단계; 및 두 Random-Number가 일치하면 단말 인증을 완료하고, 인증이 완료된 단말의 사용자 정보를 상기 Proxy 인증 패킷으로부터 추출하여 각 Proxy 서비스 가입자들의 Proxy 서비스 사용량 및 사용패턴 정보모니터링을 위해 보관하는 단계;를 포함하여 이루어질 수 있다.
본 발명의 실시예에 따르면 MPTCP Aggregation Point 등의 부가적인 네트워크서비스제공을 위해 사용되는 Proxy Server는 방대한 양의 가입자수를 가지고 있는 망에서 Proxy 서비스를 제공하면서도 다수의 가입자로부터 받는 다수의 Proxy 인증 요청을 빠르게 처리해야 한다. 본 발명의 경우, 가입자 수에 관계없이 일정한 Proxy 인증 성능을 제공하기에 위와 같은 방대한 양의 가입자 수를 가지는 망에서 사용될 시에도 Proxy 서비스 및 인증을 성능 저하 없이 제공할 수 있다.
또한, 가입자 별로 차별화된 부가서비스를 제공하는 장비를 설치하는 경우 직면하는 큰 문제 중 하나가 가입자의 관리이다. 차별화된 서비스를 사용하기에 가입자 데이터베이스의 사용이 필수적인데, 로컬하게 가입자 정보를 관리하는 경우, 가입자정보에 대한 동기화를 신경 써야 하고, 외부서버에서 관리되는 가입자 정보를 사용하는 경우, 외부서버와의 통신으로 인한 성능저하를 감수해야 한다. 본 발명의 실시예에 따르면, MPTCP 사용을 통한 네트워크 속도 향상과 같은 가입자 별로 차별화된 네트워크 부가서비스가 Proxy Server를 통해서 전달되더라도, 본 발명의 인증개념을 사용하는 Proxy-Server는 가입자 인증에 가입자정보를 사용하지 않기에 가입자정보에 대한 관리 부담으로부터 자유로울 수 있다.
도 1은 본 발명의 프록시 인증시스템의 한 실시예인 MPTCP Aggregation 서비스 시스템의 전체 망의 구성도이다.
도 2는 초기설정정보의 목록 및 설명이다.
도 3은 네트워크 지연 혹은 시간동기화 지연으로 발생하는 OTP의 차이를 해결하기 위한 Proxy-Server의 Proxy 인증키 생성의 특수사항에 대한 소개이다.
도 4는 Proxy 인증키의 구성 및 설명이다.
도 5는 Proxy 인증용 정보의 구성 및 설명이다.
도 6은 초기설정 단계의 절차에 대한 기술이다.
도 7은 송신 측 키 생성 단계 및 인증 패킷 전송 단계의 절차에 대한 기술이다.
도 8은 Proxy 인증용 정보인 Code1과 Code2의 생성 방법에 대한 기술이다.
도 9는 Proxy 인증키 생성 방법에 대한 기술이다.
도 10은 해석용 키 생성 단계의 절차에 대한 기술이다.
도 11은 인증 및 사용자 정보 복원 단계의 절차에 대한 기술이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성된다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명의 한 실시예는 특정 가입자의 단말이 상용 망에서 MPTCP(다중경로TCP: Multi-Path Transmission Control Protocol; 이하 MPTCP)용 Aggregation Point Proxy Server를 사용하여 MPTCP를 이용하여 MPTCP를 지원하지 않는 통상 서버와 통신하고자 할 때, Username/Password를 이용하여 특정 가입자의 단말에 대한 인증을 진행하면서도 Proxy-Server에서 방대한 가입자의 관리를 필요로 하지 않고 Proxy 성능의 저하를 초래하지 않는 프록시 인증시스템 및 인증방법이다.
즉, 본 발명의 일실시예에 따른 프록시 인증시스템은 가입자를 선 인증하고 가입자 정보 없이 Proxy 인증을 진행하기 위한 초기설정정보를 단말과 Proxy-Server로 전달하는 Proxy-Manager와, 상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로 Proxy 인증용 패킷을 구성하는 Username용 Code1과 Password용 Code2를 생성하고 상기 Proxy 인증용 패킷을 상기 Proxy-Server로 송신하는 단말, 및 상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로 가입자정보 없이 인증을 처리할 수 있도록 하는 해석용 키를 생성하며 단말의 인증 요청 시 해석용 키를 이용하여 인증을 수행하고 인증이 완료된 가입자의 정보를 복원 및 저장하는 Proxy-Server를 포함하여 이루어질 수 있다.
또한, 상술한 인증시스템을 이용한 본 발명의 프록시 인증방법은 Proxy-Manager가 가입자를 선 인증하고 가입자 정보 없이 Proxy 인증을 진행하기 위한 초기설정정보를 단말과 Proxy-Server로 전달하여 상기 초기설정정보를 단말과 Proxy-Server가 공유하도록 하는 초기설정 단계, 단말에서 Proxy 인증용 패킷에 사용할 Username 용 Code1과 Password용 Code2를 생성하는 송신 측 키 생성 단계, 단말이 상기 Code1과 Code2를 각각 상기 Proxy 인증용 패킷의 Username 필드와 Password 필드에 담아 Proxy-Server로 전송하는 인증 패킷 전송 단계, 단말의 인증 요청시 Proxy-Server가 단말의 인증요청을 가입자정보 없이 처리할 수 있는 해석용 키를 생성하는 해석용 키 생성 단계, 그리고 단말의 인증요청을 처리하고 인증이 완료된 가입자의 정보를 모니터링, 통계 등의 이후 동작을 위해 복원 및 저장하는 인증 및 사용자 정보 복원 단계를 포함한다.
상기 Proxy 인증 방법은 상기 Proxy-Server의 동작이 시작되면, Proxy-Server가 상기 Proxy-Manager에게 초기설정정보를 요청하고, Proxy-Manager가 요청에 대한 응답으로 Proxy-Server에 초기설정정보를 전달하는 것으로 상기 초기설정 단계의 일부를 진행한다.
상기 Proxy 인증 방법은 상기 단말의 동작이 시작되면, 단말이 상기 Proxy-Manager에게 선 인증을 요청하고, Proxy-Manager가 가입자의 인증을 진행 후, 인증된 가입자 단말에게 초기설정정보를 전달하는 것으로 상기 초기설정 단계의 일부를 진행한다. 이때 단말이 Proxy-Manager와 진행하는 선 인증은 Secure Tunnel, VPN 등의 보안중시의 강력한 보안 기법사용이 권장된다.
보다 바람직하게는 상기 Proxy-Manager가 상기 Proxy-Server와 상기 단말에 전달하는 상기 초기설정정보는 Group Code, OTP(One Time Password; 이하 OTP) 생성용 Shared Secret, 사용코드리스트, Random-Number의 길이를 포함하며, 추가적으로 상기 사용코드리스트에 포함되는 각 코드들 중 단말에 종속적이지 않고 네트워크상의 모든 단말이 공유하는 단말 비종속적 항목들의 값을 해당 값들이 Proxy-Server와 각 단말에 제대로 공유되는 않을 경우 추가로 보유한다. 사용코드리스트에 포함되는 각 코드항목은 MCC(Mobile Country Code)와 MNC(Mobile Network Code)같은 네트워크상의 모든 단말이 같은 값을 공유하면서 단말이 스스로 보관할 수 있는 정보인 단말 비종속적 항목이거나 IP Address, MSISDN, IMSI와 같은 각 단말이 보관할 수 있으면서도 각 단말에 종속적인 항목이며, 본 발명의 개념은 MCC, MNC, IP Address, MSISDN, IMSI에 사용코드를 한정하지 않고 본 발명의 개념을 사용하는 Operator의 필요에 따라 필요한 코드가 다수 선택되어 사용될 수 있도록 한다.
상기 초기설정 단계를 통해 상기 MP-Manager에서 단말의 선 인증이 완료되고, 단말과 상기 Proxy-Server가 같은 초기설정정보를 Proxy-Manager로부터 수신하여 공유하게 되면, 단말은 가입자 정보 없이 Proxy 인증을 완료 할 수 있도록 하기 위한 Proxy 인증용 정보(패킷)를 생성 할 준비를 마치게 된다.
이 Proxy 인증용 정보는 Code1과 Code2의 2개의 Code로 완성되는데, Code2는 IP Address, MSISDN, IMSI와 같은 각 단말이 보관할 수 있는 단말 종속적 값 중에 Proxy-Manager로부터 전달 받은 사용코드리스트에 포함된 코드항목의 값과 Proxy-Manager로부터 전달받은 Random-Number의 길이만큼의 Random-Number로 이루어지며, Code1은 단말의 정보를 가지는 UE-ID와 Code2의 Random-Number를 합친 후, 상기 초기설정정보를 기반으로 생성한 Proxy 인증키를 이용하여 암호화하여 생성되게 된다. 이와 같이 단말이 Code1과 Code2를 작성하여 Proxy 인증용 정보의 생성을 완료하는 것으로 송신 측 키 생성 단계의 진행은 완료된다.
보다 바람직하게는 상기 단말은 상기 Proxy 인증키를 생성하기 위해서 초기설정정보를 2개의 그룹으로 나누어서 사용한다. 첫 번째 그룹은 인증 정책이 변경되지 않는 한 불변하는 그룹으로 단말이 Proxy-Manage와 선 인증을 완료하면 Proxy-Manager로부터 전달받게 되는 Group Code이며, Proxy-Manager로부터 수신한 Group-Code는 Group-Key를 만드는데 사용되어 Proxy 인증키의 일부분으로 구성하게 된다. 두 번째 그룹은 Proxy-Manager로부터 전달 받은 OTP 생성용 Shared Secret을 기반으로 생성되는 OTP와 Proxy-Manager로부터 전달 받은 사용코드리스트에 포함된 각 코드들로 이루어지며, 이 두 번째 그룹 각 코드의 값은 Proxy 인증키 재생성 이벤트마다 갱신된 후 키 생성에 사용되어 Proxy 인증키에서 상기 Group Code를 제외한 나머지 머지 부분의 키인 Master-key를 생성하는데 사용되게 된다. Proxy 인증키는 최소 256 bits의 크기가 권장되며, Proxy 인증키의 크기와 Group-Key의 크기, 그리고 상기 두 번째 그룹의 정보로 생성되는 Master-key의 크기는 각각 본 발명의 개념을 사용하는 Operator의 필요에 따라 결정 될 수 있다.
보다 더 바람직하게는 상기 Proxy 인증키 재생성 이벤트는 OTP 값의 재생성, Proxy-Manager로부터의 인증 정책 변경 수신, 상기 사용코드리스트에 포함된 각 코드들의 값 변동 때 마다 발동하게 되며, Proxy 인증키 재생성 이벤트가 발동 되면 새로운 Proxy 인증키를 이용한 Code1과 Code2 갱신도 이루어지게 된다.
상기 Code1과 Code2로 이루어진 최신 Proxy 인증용 정보의 생성 혹은 갱신이 완료 되면, 상기 단말은 Proxy-Server를 이용한 Proxy 서비스의 요청이 언제든 가능한 상태가 된다. 이 상태에서 단말에서 Proxy 서비스를 필요로 하는 패킷이 생성되게 되면, 단말은 Proxy 연결을 수립하기 위해 Proxy-Server와의 인증을 먼저 시도하게 되는데, 이 때 상기 송신 측 키 생성 단계에서 생성한 Code1과 Code2를 Proxy 인증 패킷의 Username 필드와 Password 필드에 담아 Proxy-Server로 보내는 것으로 인증 패킷 전송 단계를 수행한다. 이 인증 패킷의 대답으로 Proxy-Server로부터 인증을 받으면 해당 단말의 통신세션은 Proxy 서비스를 바로 이용할 수 있다.
상기 인증 패킷 전송 단계를 통하여 단말이 Proxy 인증 패킷을 전달하면, 본 발명의 Proxy-Server는 가입자 데이터베이스에 접근하여 가입자 정보를 일일이 대조하는 대신, 해석용 키 생성 단계를 수행하여 가입자정보 없이 단말에 대한 Proxy 인증을 수행하기 위해 필요한 각 단말에 종속적인 해석용 키를 생성하게 된다.
보다 바람직하게는 상기 Proxy-Server도 단말처럼 초기설정정보를 2개의 그룹으로 나누어서 사용하는데, Proxy 인증용 패킷을 수신하여 상기 해석용 키 생성 단계가 시작 되면, Proxy-Server는 Proxy-Manager로부터 미리 전달 받은 Group Code를 첫 번째 그룹으로 사용하여 Group-Key를 생성한 후 해석용 키의 일부분으로 사용하고, Proxy-Manager로부터 전달 받은 OTP 생성용 Shared Secret으로 미리 생성해둔 OTP와 Proxy-Manager로부터 미리 전달 받은 사용코드리스트에 포함된 각 단말 비종속적인 코드의 값 그리고 단말로부터 수신한 Proxy 인증 패킷의 Password 필드에 있는 Code2에서 추출한 각 단말 종속적인 값들을 두 번째 그룹으로 사용하여 해석용 키의 나머지 키를 생성하여서 해석용 키 생성 단계를 완료한다.
보다 더 바람직하게는 상기 OTP는 OTP의 재생성 주기 때마다 생성되거나, Proxy-Manager의 인증 정책 변경으로 인해 새로운 OTP용 Shared Secrete을 수신하게 되면 생성된다.
보다 더 바람직하게는 상기 사용코드리스트에 포함된 각 코드의 값은 Proxy-Manager의 인증 정책 변경으로 인해 새로운 사용코드리스트 및 사용코드리스트에 포함된 각 단말 비종속적인 코드의 값을 수신 할 경우, Proxy-Server가 보관하고 있는 사용코드리스트 및 각 코드의 값들을 갱신하게 된다.
상기 해석용 키 생성 단계를 통해 가입자정보 없이 단말에 대한 Proxy 인증을 수행하기 위해 필요한 각 단말에 종속적인 해석용 키 생성이 완료되면, Proxy-Server는 상기 해석용 키를 이용하여 가입자정보와의 대조 없이 단말이 전송한 Proxy 인증 패킷에 대한 인증을 진행하고, 인증이 완료된 단말의 사용자 정보를 Proxy 인증 패킷으로부터 추출하여 각 Proxy서비스 가입자들의 Proxy 서비스 사용량 및 사용패턴 등의 정보모니터링을 위해 보관하는 것으로 인증 및 사용자 정보 복원 단계를 완료한다.
보다 바람직하게는 상기 Proxy-Server는 단말이 전송한 Proxy 인증 패킷의 Password 필드를 이용하여 단말이 보내온 Code2에서 Random-Number를 추출하고 상기 해석용 키 생성 단계에서 생성한 해석용 키를 이용해 Proxy 인증 패킷의 Username 필드에 저장된 정보를 복호화하여 복호화된 Code1을 추출한 후, 복호화한 Code1에서 추출한 Random-Number와 Code2에서 추출한 Random-Number를 대조하는 것으로 가입자정보 없이 단말의 Proxy 인증을 진행한다.
즉, 복호화를 통해 Code1에서 추출한 Random-Number가 Code2를 통해 단말이 전달한 Random-Number와 같은 것을 확인하는 것으로 Proxy-Server에서 생성한 해석용 키가 단말의 Proxy 인증키와 동일하다는 것을 알 수 있고, 이 것은 해당 단말이 Proxy-Manager와 선 인증을 문제없이 완료하였다는 것을 의미하기에, Proxy-Server는 해당 단말의 사용자를 확인할 필요 없이 바로 Proxy 인증을 진행 할 수 있다.
보다 더 바람직하게는 상기 Proxy-Server는 단말과의 시간 비동기로 인한 OTP값의 차를 극복하기 위해 미리 설정된 다수의 시점에서의 OTP를 생성할 수 있다. 일예로, 최대 3회 OTP를 생성할 수 있으며, Proxy 인증 패킷 수신 시, 3번의 Proxy 인증키 생성 및 인증 시도를 진행할 수 있다. 이때, 3개의 Proxy 인증키는 각각 현 시점의 OTP, 1회 전 시점의 OTP, 그리고 1회 후 시점의 OTP일 수 있으며, Proxy 인증 요청 혹은 Proxy 인증 실패 시 해석용 키 생성 단계와 인증 및 사용자 정보 복원 단계를 반복하면서 각각 3번에 걸쳐 생성되고 인증이 시도된다.
이때 OTP 생성 주기는 단말과 Proxy-Server간에 가능한 시간차와 Network Delay로 인한 패킷 수신 Delay 보다는 커야 하며, 패킷도청으로 인해 Proxy 인증보안이 무효화 되지 않을 정도의 주기가 설정 되어야 한다. OTP 생성 주기도 본 발명을 사용하는 Operator의 필요에 따라 설정 될 수 있다,
본 발명은 위 과정을 통해서, Proxy-Server가 단말의 사용자 정보를 대조하는 대신 단말이 동일한 Proxy 인증키(해석용 키)를 사용하는지를 확인하여 단말이 Proxy-Manager와 선 인증을 완료하였는지를 확인하는 방식을 사용하기에, Proxy-Server가 가입자 정보관리를 할 필요가 없도록 하고, 가입자 수에 따른 단말인증성능의 변화를 제거하여 방대한 양의 가입자가 존재하는 상용 이동 망에서도 성능저하 없이 Proxy를 통한 네트워크 서비스를 제공할 수 있도록 한다.
이하, 첨부된 도면을 참조하여 본 발명의 필요정보 및 개념을 설명하고 본 발명의 바람직한 실시 예를 진행단계별로 상세하게 기술한다. 도 1은 본 발명의 프록시 인증시스템의 한 실시예인 MPTCP Aggregation 서비스시스템(1000)의 망 구성도이다. 본 발명의 프록시 인증시스템 개념을 적용한 MPTCP Aggregation 서비스시스템(1000)은 가입자 정보관리의 부담 없이 빠르게 가입자를 식별하여 차별적으로 MPTCP Aggregation을 제공할 수 있다. 즉, MPTCP Aggregation 서비스시스템(1000)은 도 1에서 보듯이, 각 단말(300)을 선 인증하고 인증된 각 단말(300)과 Proxy-Server(200)에 초기설정정보(400)를 전달하는 Proxy-Manager(100), Proxy-Manager(100)로 부턴 공유된 초기설정정보(400)로 각 단말의 인증요청 때마다 단말에서 생성된 Proxy 인증키(500)와 동일한 해석용 키(500)를 생성하여 단말을 빠르게 인증하는 Proxy-Server(200), 그리고 Proxy-Server(200)가 제공하는 MPTCP Aggregation 서비스를 사용하는 단말들(300)로 구성된다.
본 발명의 개념을 사용한 일실시예에 따른 MPTCP Aggregation 서비스시스템(1000)은 상기 Proxy-Server(200)와 상기 단말(300)들이 시작되었을 때, 상기 Proxy-Manager(100)에 선 인증 후 가입자정보의 보관 없이 Proxy 인증 요청을 빠르게 진행할 수 있도록 하는 초기설정정보(400)를 인증된 각 단말(300)과 Proxy-Server(200)가 공유하도록 하여서 상용 이동망과 같은 거대한 가입자정보가 사용되는 환경에서 MPTCP Aggregation 서비스시스템(1000)과 같이 Path수에 따라 각각 Proxy 인증 횟수가 증가하는 서비스가 제공되더라도, 가입자정보의 보관없이 가입자 수에 영향을 받지 않고 일정한 속도로 인증절차를 처리할 수 있다는 기술적 특징을 가진다.
MPTCP 기술의 활용을 통해서 단말(300)이 이득을 얻으려면, 단말(300)이 TCP 연결을 하는 서버가 MPTCP기능을 보유하고 있어야 하는데, 현 상용 망에 존재하는 통상서버들은 신기술인 MPTCP를 보유하고 있지 않다. 그렇기에, 단말(300)의 MPTCP기능을 활용할 수 있도록 하기 위해 단말(300)이 고속 Back-Born망에 위치하는 MPTCP기능을 보유한 Proxy-Server(200)와 Proxy 통신을 하도록 하여서 MPTCP의 이득을 얻을 수 있도록 하는 시스템인 MPTCP Aggregation 서비스시스템(1000)이 제공된다.
그러나 이 시스템의 특성상 이 서비스에 가입된 특정 가입자에게만 서비스가 제공되어야 하는데, 가입자 식별을 위해 기존 Proxy 인증을 사용할 경우, Proxy-Server(200)가 상용 망의 거대한 가입자 정보를 관리하여야 하고, Proxy 인증요청 때마다 각 MPTCP의 Path별로 가입자 정보를 각각 대조해야 하는 Proxy 인증방식으로 인해 가입자 수가 많을수록 Proxy 인증 성능의 저하가 초래되어 MPTCP 기술활용을 통한 이득이 저하되는 문제가 있다.
이와 같은 문제를 해결한 것이 본 발명의 개념을 사용한 일실시예에 따른 MPTCP Aggregation 서비스시스템(1000)이며, 이 MPTCP Aggregation 서비스시스템(1000)은 본 발명의 개념을 활용하여 가입자 정보를 대조하는 대신 Proxy 인증을 요청하는 단말(300)이 Proxy-Server(200)와 동일한 Proxy 인증키(500)를 사용하는지를 확인하는 것으로 Proxy 인증요청을 처리하여서 가입자정보의 보관없이 가입자 수에 영향을 받지 않고 일정하고 빠른 속도로 인증절차를 처리할 수 있도록 하여 MPTCP 기술활용을 통한 이득이 저하되는 것을 방지한다.
도 2는 본 발명에 따른 초기설정정보(400)의 구성을 나타낸 것이다. 초기설정정보(400)는 MPTCP Aggregation 서비스시스템(1000)에 가입된 각 가입자의 단말(300) 혹은 Proxy-Server(200)가 초기화할 때 Proxy-Manager(100)로부터 전달 받는 정보로 Operator에 의해 인증정책이 수정되지 않는 한 불변하는 정보들이며, 선 인증이 완료된 가입자 단말(300)과 Proxy-Server(200)간에 Proxy 인증을 빠르게 수행하기 위한 본 발명의 Proxy 인증 절차진행에 필요한 정보들이다.
도 2에서 보듯이, 본 발명에 따른 초기설정정보(400)는 “Group Code”(410), “OTP용 Shared Secret”(420), “사용코드리스트”(430), “Random-Number의 길이”(440), “각 단말 비종속적 항목들의 값”(450)로 구성된다.
“Group Code”(410)는 Proxy-Manager에서 생성되어 사용되는 코드로 선 인증이 완료된 단말과 Proxy-Server에 전달되어서 Proxy 인증키(500)의 일부인 Group-Key(510)으로 사용된다. “OTP용 Shared Secret”(420) 또한 Proxy-Manager가 생성하여서 선 인증이 완료된 단말과 Proxy-Server에 전달하는 값으로, 각 단말과 Proxy-Server에서 Proxy 인증키(500)의 일부인 Master-Key(520)생성을 위한 정보 중 하나인 One Time Password(이하 OTP)를 현재시간 기반으로 생성하면서도 단말들과 Proxy-Server가 동일한 OTP를 생성할 수 있도록 하는 정보이다. Master-Key(520)의 생성에 OTP가 사용되는 이유는 패킷도청을 통해 인증되지 않은 단말이 MPTC Aggregation 서비스와 같은 Proxy-Server(200)의 기능을 부당하게 사용하는 것을 방지하기 위해서이다. 그러면서도 인증된 단말(300)들과 Proxy-Server(200)는 같은 Proxy 인증키(500)를 공유하여야 하기 때문에 인증된 단말(300)들과 Proxy-Server(200)는 같은 OTP를 가질 수 있도록 하여야 하고, 이를 위해 본 발명의 개념은 동일한 OTP용 Shared Secret(420)을 인증된 단말(300)들과 Proxy-Server(200)에 전달하여 OTP를 계산하게 한다. 인증된 단말(300)들과 Proxy-Server(200)에 동일한 OTP용 Shared Secret(420)사용된다 하여도, 네트워크 지연 혹은 시간동기화의 지연 등으로 인해 단말에서 전송한 Proxy 인증 패킷이 Proxy-Server에 도달 하였을 때 Proxy-Server와 다른 Proxy 인증키(500)를 사용하고 있게 되는 경우가 있다. 이와 같은 문제에 대응하기 위한 방법은 도 3에서 명시되어 있으며 아래문단에서 이후에 설명된다.
“사용코드리스트”(430)는 어떤 항목의 정보들이 Proxy 인증키(500)의 일부인 Master-Key(520)생성을 위한 정보로 사용되는지를 목록으로 전달하는데, 단말(300)들과 Proxy-Server(200)가 동일한 항목의 정보들로 Master-Key(520)를 생성하여야만 단말(300)들과 Proxy-Server(200)가 동일한 Proxy 인증키(500)를 공유할 수 있고 본 발명의 동일한 Proxy 인증키(500)를 사용하는지를 확인하는 것으로 Proxy 인증요청을 처리를 가입자정보 없이 빠르게 처리한다는 개념이 구현될 수 있기에 Proxy-Manager(100)가 인증이 완료된 단말(300)들과 Proxy-Server(200)에 전달하는 정보이다.
전달하는 항목에는 “단말 비종속적 항목”과 “단말 종속적” 항목의 2 종류가 있다. “단말 비종속적 항목”은 MNC와 MCC같은 네트워크가 공유하는 정보이기에 모든 단말이 동일한 정보를 가지는 항목을 말한다. 그렇기에 “단말 비종속적 항목”들은 단말(300)이 Proxy-Server(200)에 전달할 필요 없이 Proxy-Server(200)가 보관하고 있으면 되는 항목들이다. 통상적으로, “단말 비종속적 항목”에 대한 정보는 단말(300)과 Proxy-Server(200)도 네트워크로부터 수집할 수 있으나, 특정 “단말 비종속적 항목”에대한 정보의 수집이 어려운 경우, 해당 정보에 한하여 Proxy-Manager(100)는 “각 단말 비종속적 항목들의 값”(450)을 이용하여 선 인증이 완료된 각 단말(300)과 Proxy-Server(200)에 해당 정보가 공유 될 수 있도록 한다. “단말 종속적 항목”은 IP Address, MSISDN과 같은 각 단말이 서로 다른 정보를 가지는 항목으로, 본 발명의 인증절차수행 시 Proxy 인증 패킷에 포함되어 전달되어 선 인증이 완료된 각 단말(300)과 Proxy-Server(200)에 공유되는 정보이다.
“Random-Number의 길이”(440)는 본 발명의 Proxy 인증과정에서 가입자정보 대신에 대조에 사용되어서 단말(300)과 Proxy-Server(200)가 동일한 Proxy 인증키(500)를 사용하는지 확인하는데 사용되는 정보의 길이를 Proxy-Server(200)와 단말(300)이 공유 할 수 있도록 하기 위해 전달하는 정보로, Proxy 인증용 정보(600)를 구성하는 Code1(610)과 Code2(620)을 생성할 때 단말이 생성하여 사용한다. Proxy 인증 요청 처리 때, Proxy-Server(200)는 Code2(620)에서 Random-Number 정보를 수집하여야 하기 때문에, 단말(300)들과 Proxy-Server(200)는 동일한 Random-Number의 길이를 사용하여야 하고, 그렇기에 Proxy-Manager(100)가 “Random-Number의 길이”(440)정보를 각 인증이 완료된 단말(300)들과 Proxy-Server(200)에 전달한다. 다만, Random-Number 자체가 Code2의 마지막 항목이기에, Proxy-Server(200)는 Code2에서 “단말 종속적 항목” 정보를 모두 제외하는 것으로 Random-Number의 길이를 추론할 수는 있다. “각 단말 비종속적 항목들의 값”(450)은 위에서 설명하였듯이 특정 정보의 수집이 어려운 “단말 비종속적 항목”에 한하여 Proxy-Manager(100)가 각 인증이 완료된 단말(300)과 Proxy-Server(200)에 해당 정보가 공유 될 수 있도록 하기 위해 사용하는 필드이다.
도 3은 단말(300)과 Proxy-Server(200)가 공유하는 OTP 생성용 Shared Secret(420)을 사용하여 생성한 OTP에 네트워크 지연 혹은 시간동기화의 지연 등으로 인해 같은 시간대인데도 불구하고 동일하지 않은 Proxy 인증키(500)가 생성될 수 있는 문제에 대한 본 발명의 대응책이다. 단말(300)과 Proxy-Server(200)의 시간 동기화가 이루어져도 네트워크 지연이 발생하면 Proxy 인증 패킷 작성 때에 단말(300)에서 Proxy 인증키(500) 생성용으로 사용한 OTP가, Proxy 인증 패킷이 Proxy-Server(200)에 도착하였을 때 Proxy-Server(200)가 사용하고 있는 OTP와 다를 수 있다. 마찬가지로 단말(300)과 Proxy-Server(200)의 시간 동기화에 지연이 발생하면, Network 지연이 최소라 하여도, 동 시간대에 생성하는 OTP가 다르기에, 인증 받은 단말(300)이어도 단말(300)의 Proxy 인증키(500)가 Proxy-Server(200)의 Proxy 인증키(500)와 다를 수 있다. 이를 해결하기 위해서 본 발명은 Proxy-Server(200)가 도 3과 같이 3개의 OTP를 보관하고 있다가 3개의 Proxy 인증키(500)를 Proxy 인증 패킷 수신 시 생성하여, 단말(300)의 Proxy 인증요청을 거부하기 전에 3개의 각 Proxy 인증키(500)에 대한 인증시도를 진행하도록 하여서 단말(300)과 Proxy-Server(200)사이의 네트워크 혹은 시간동기화에서 지연이 발생하더라고 OTP 생성 주기의 3배만큼의 여유시간을 제공하게 된다.
이때 OTP 생성주기는 본 발명을 사용하는 Operator의 필요에 따라 설정 될 수 있으며, 서비스가 제공되는 네트워크의 상태에 맞추어서 OTP의 사용목적인 패킷도청으로 인한 키 도난을 방지 할 수 있도록 짧으면서도, 네트워크 지연과 사용되는 시간동기화 방식에 의한 지연에 대응할 수 있을 만큼 긴 시간이 권장된다. 시간동기화 방식 또한 본 발명을 사용하는 Operator의 필요에 따라 선택될 수 있으며, 제 3의 서버를 통한 시간동기화나 Proxy-Server(200)와 단말(300)간의 직접적인 시간동기화 방식이 Operator의 필요에 따라 선택될 수 있다.
도 4는 본 발명의 Proxy-Server(200)와 단말(300)이 Proxy-Manager(100)로부터 수신한 초기설정정보(400)들을 기반으로 생성하여서 동일하게 공유하게 되는 Proxy 인증키(500)의 구성과 설명이다. 도 4와 본 문단은 Proxy 인증키(500)의 각 구성요서에 대해서만 설명을 진행하며, Proxy 인증키(500)의 자세한 생성 절차 및 사용 예는 이 후 섹션에서 본 발명 실시예의 각 진행단계를 서술하면서 설명한다. Proxy 인증키(500)는 Group-Key(510)와 Master-key(520)의 2개의 Key로 구성되어 있다. Group-Key(510)는 Proxy-Manager(100)로부터 수신한 Group Code(410)를 기반으로 생성하는 키로서 본 발명을 사용하는 Operator의 필요에 따라 Key-Generation을 Group Code(410)에 사용하여 생성되거나 Group Code(410)가 그대로 Proxy 인증키(500)의 일부인 Group-Key(510)로 사용될 수 있고, Operator의 필요에 따라 그 Group-Key(510)의 길이는 설정될 수 있다. Master-key(520)는 OTP 생성용 Shared Secret(420)을 통핸 만들어진 OTP와 사용코드리스트(430)에 명시된 항목들의 값을 합한 값을 기반으로 생성된다. Master-key(520)는 Group-Key(510)와 함께 Proxy 인증키(500)의 일부분을 구성하며, Group-Key(510)와 마찬가지로 본 발명을 사용하는 Operator의 필요에 따라 Master-key(520) 길이도 설정될 수 있다. 그러나 본 발명은 Proxy 인증키(500) 전체길이를 최소 256bit로 권장한다.
도 5는 본 발명이 가입자정보 없이도 빠르게 Proxy 인증요청을 처리할 수 있도록 실질적으로 사용되는 Proxy 인증용 정보(600)의 구성과 설명이다. Proxy-Server(200)와 단말(300)은 Proxy-Manager(100)와 강력한 선 인증을 진행 후 동일하게 수신하는 초기설정정보(400)를 이용하여 같은 Proxy 인증키(500)를 생성하고 공유하며, 이렇게 공유한 같은 Proxy 인증키(500)를 Proxy 인증 패킷의 정보에 담아서 전달하여 Proxy-Server(200)와 단말(300)이 서로 같은 키를 공유하는지를 확인하는 것으로 Proxy-Server(200)는 단말(300)의 인증을 가입자 정보 없이 빠르게 처리하게 된다.
이때 패킷도청으로 인한 Proxy 인증키(500)의 외부노출을 막고 단말(300)의 정보를 Proxy-Server(200)에 전달할 수 있도록 하기 위해, 본 발명의 개념은 단말(300)이 Proxy 인증키(500)를 기반으로 단말(300)의 정보를 암호화하여 Proxy 인증용 정보(600)를 작성한 후 Proxy 인증용 패킷의 Username 필드와 Password 필드에 삽입하여 전달하고, Proxy 인증용 패킷을 수신한 Proxy- Server(200)가 전달 받은 Proxy 인증용 정보(600)들을 보관 중인 3개의 OTP와 초기설정정보(400)를 기반으로 생성한 3개의 Proxy 인증키(500)를 이용하여 순차적으로 복호화하여 같은 Proxy 인증키(500)가 사용되는 것으로 판명되면 인증을 완료하고 같은 Proxy 인증키(500)가 사용되지 않는 것으로 판명되면 인증을 거부하게 한다.
이 과정에서 사용되는 Proxy 인증용 정보(600)는 Code1(610)과 Code2(620)를 가지게 되는데, 도 5에서 설명되었듯이 Code1(610)은 Proxy 인증용 정보(600) 생성시에 생성된 Random-Number와 단말정보인 UE-ID를 합한 후, Proxy 인증키(500)로 암호화한 값이고 Code2(620)는 단말에 종속적인 코드와 상기 Random-Number 값을 뭉친 값이다. Code1(610)은 Proxy 인증용 패킷의 Username 필드를 이용하여 Proxy-Server(200)에 전달되고, Code2(620)는 Proxy 인증용 패킷의 Password 필드를 이용하여 Proxy-Server(200)에 전달된다.
이렇게 Proxy-Server(200)에 전달된 Code1(610)과 Code2(620)는 동일한 Random-Number를 공유하면서도 Code1(610)은 Proxy 인증키(500)로 암호화 되어 있고 Code2(620)는 암호화 되어 있지 않기에, Proxy-Server(200)가 Code1(610)을 복호화시킨 후 추출한 Random-Number와 Code2(620)으로부터 추출한 Random-Number를 대조하여, 단말(300)과 Proxy-Server(200)가 같은 Proxy 인증키(500)를 사용하는지 확인할 수 있도록 하여, Proxy-Server(200)가 단말에 대한 인증을 가입자 정보 없이 빠르게 진행할 수 있도록 한다.
더하여, 본 발명의 개념에서 복호화 된 Code1(610)은 단말정보인 UE-ID를 포함하고 있기에 Proxy-Server(200)가 가입자 정보를 보관하지 않은 상태에서도 자신의 서비스를 사용하는 가입자가 누구인지에 대한 정보를 얻을 수 있도록 한다.
위 와 같은 방식을 통해서 본 발명의 개념은 강력하지만 가입자 수에 따라 많은 시간과 자원을 소모하는 고성능인증 방식을 Proxy-Server(200)와 단말(300)의 서비스 사용이 시작될 때만 Proxy-Manager(100)와의 선 인증으로 진행하도록 하고, 인증된 단말(300)과 Proxy-Server(200)가 같은 초기설정정보(400)을 기반으로 동일한 Proxy 인증키(500)을 생성할 수 있도록 한 후, Proxy서비스 사용 때 진행되는 Proxy 인증절차에서 동일한 Proxy 인증키(500)를 기반으로 작성된 Proxy 인증용 정보(600)를 이용하여 Proxy-Server(200)가 가입자정보 없이 빠르게 선 인증이 완료된 단말(300)을 Proxy 인증으로 식별하고 서비스를 바로 제공할 수 있도록 한다.
여기까지가 본 발명을 이해하기 위해 필요한 정보와 개념의 설명이었으며, 이후 문단과 도면들은 발명의 바람직한 실시 예 중 하나인 MPTCP Aggregation 서비스시스템(1000)을 이용하여 본 발명의 진행단계 설명한다.
본 발명의 첫 번째 단계는 초기설정 단계며, 도 6은 초기설정 단계의 자세한 절차를 표시한다. 초기설정 단계는 본 발명의 각 구성요소가 시작될 때 본 발명개념의 동작을 위해 필요한 정보를 초기화하기 위한 단계로, Proxy-Server(200)와 단말(300)에 대한 시간소비가 크지만 강력한 선 인증을 진행한 후 가입자 정보의 사용 없이 빠르게 Proxy 인증을 진행해 줄 수 있는 본 발명의 동작을 위해 필요한 초기설정정보(400)를 Proxy-Server(200)와 가입자 단말(300)에 공유시키기 위한 절차이다.
도 6에서 보듯이 본 발명의 각 구성요소는 시작 될 때 Proxy-Manager(100)와 인증을 수행하고, Proxy-Manager(100)로부터 초기설정정보(400)를 수신한다. 첫 번째 절차에서 Proxy-Server(200)가 시작되면, Proxy-Server(200)는 Proxy-Manager(100)와 인증을 진행한 후에, 두 번째 절차로 수신한 초기설정정보를(400)보관해 둔다. 세 번째 절차는 단말(300)에서 Proxy-Server(200)가 제공하는 MPTCP Aggregation 서비스 사용을 시작하면 진행되며, 서비스시작과 동시에 서비스의 사용을 위해 Proxy-Manager(100)와 선 인증을 절차를 진행한다. 이 선 인증은 본 발명의 빠른 인증이 아닌 통상적인 인증 절차이며, 단말(300)이 서비스 가입자인지를 확인하기 위한 절차로, 본 발명의 개념을 사용하는 Operator의 필요에 따라 인증방식이 선택될 수 있다. 이 단말(300)과 Proxy-Manager(100)가 진행하는 선 인증은 통신 때마다 발생하는 Proxy 인증과는 달리 주기적으로 하거나 서비스 시작 시에 한번만 진행하면 되는 인증이게 시간을 많이 소모하지만 보안성능이 뛰어난 인증방식의 사용이 권장된다. 본 발명의 개념에선 이 선 인증이 실제로 가입자를 인증하는 것이고, 본 발명의 개념이 소개하는 가입자 정보 없이 빠르게 Proxy 인증을 진행하는 방식은 Proxy 인증을 요청한 단말(300)이 선 인증 과정을 완료하였는지 만을 확인하여 빠른 Proxy 인증을 제공하는 것이다.
단말(300)이 도 6의 세 번째 절차로 Proxy-Manager(100)와 선 인증을 완료하면, 단말(300)은 도 6의 네 번째 절차로 초기설정정보(400)를 Proxy-Manager(100)로부터 제공받게 된다. 단말(300)은 이렇게 수신한 초기설정정보(400)를 기반으로 생성한 Proxy 인증키(500)와 Random-Number로 Proxy 인증용 정보(600)를 생성하여 Proxy 통신 세션마다 진행하는 Proxy 인증 절차에 사용하도록 하여서, Proxy-Server(200)가 Proxy 인증을 요청한 단말(300)이 자신과 동일한 Proxy 인증키(500)를 사용하는지만 확인하는 것으로 빠른 인증을 진행할 있도록 한다. 초기설정 단계 이후의 Proxy 인증까지의 절차는 이 후 도면과 문단에서 상세히 설명한다.
도 7은 본 발명의 두 번째 단계인 송신 측 키 생성 단계부터 세 번째 단계인 인증 패킷 전송 단계까지의 절차를 표현한다. MPTCP Aggregation 서비스를 사용하는 단말(300)은 도 6의 초기설정 단계를 완료하여 초기설정정보(400)를 수신 후 보관하는데, 이렇게 보관된 초기설정정보(400)는 도 7의 절차를 통해 Proxy 인증키(500)와 Proxy 인증용 정보(600)를 생성하는데 사용된다.
우선 초기설정 단계를 통해 인증이 완료된 단말은 인증정책에 따른 초기설정정보(400)를 수신한 상황이고, 이 초기설정정보(400)를 이용해 바로 도 7에 표시된 Proxy 인증키(500)와 Proxy 인증용 정보(600)를 생성하는 절차에 들어가게 된다. 이를 위해 단말은 수신한 초기설정정보(400)에 포함된 OTP 생성용 Shared Secret(420)을 이용하여 OTP를 생성하고, 이렇게 생성한 OTP와 함께 초기설정정보(400)의 Group Code(410)와 사용코드리스트(430) 각 항목의 값을 이용하여 Proxy 인증키(500)를 생성하고 보관하게 된다. 이 Proxy 인증키(500)생성의 상세한 방법은 다음 문단에서 도 9의 설명과 함께 자세히 기술된다.
이렇게 Proxy 인증키(500)가 생성되면 단말(300)은 Code1(610)과 Code2(620)의 생성방법을 설명하는 도 8의 방식으로 Random-Number를 생성하고, Proxy-Server(200)가 MPTCP Aggregation 서비스제공 중에 보관하여야 하는 단말 및 가입자 정보를 포함하는 UE-ID와 뭉친 후, 위에서 생성한 Proxy 인증키(500)를 이용해 암호화하여서 Code1(610)을 생성하고, 사용코드리스트(430) 항목 중 단말 종속적인 항목의 값과 Code1(610)생성에 사용된 Random-Number와 동일한 값을 뭉쳐서 Code2(620)을 생성한다.
Code1(610)과 Code2(620)를 생성할 때, Code2(620)에서 Random-Number의 위치는 Proxy-Server(200)가 Random-Number의 길이에 대한 정보가 없어도 Random-Number를 Code2(620)으로부터 추출하고 Random-Number의 길이를 가능할 수 있도록 도 8과 같이 각 항목의 길이정보가 공개된 단말 종속적인 항목의 값들 이후에 뭉쳐지는 것이 추천된다. 마찬가지로 Code1(610)을 생성하기 위해 Random-Number와 UE-ID를 뭉칠 때는 도 8처럼 Random-Number를 UE-ID전에 위치하도록 하여서, Proxy-Server(200)가 UE-ID의 정확한 길이를 알지 못하여도 Code2에서 추출한 Random-Number의 길이를 이용하여 UE-ID를 추출할 수 있게 하는 것을 추천한다. 더하여, 본 발명의 개념은 Proxy 인증 패킷의 인증이 최대한 빠르게 되는 것을 목표하기에 Code2(620)의 정보를 암호화 없이 전달하는 것으로 설명하나, 이는 Operator의 필요에 따라 어떤 암호화 방식을 사용하더라도 문제는 없다.
이렇게 Proxy 인증키(500)와 Code1(610), 그리고 Code2(620)가 생성되면, 단말(300)은 이후의 Proxy 인증 패킷을 위해 이 정보들을 보관하는데, 이 정보들은 도 7에 명시된 바와 같이 3 종류에 Event로 인해 재생성 과정을 거치게 된다.
첫 번째 Event는 인증정책의 변경인데, Operator의 필요에 따라 인증정책이 변경되게 되면, Proxy-Server(200)들과 단말(300)들은 변경된 인증정책에 맞는 초기설정정보(400)를 새로이 수신하게 되고, 초기설정정보(400)에 변경이 있었기에, 위에 설명한 OTP를 생성하고 Proxy 인증키(500) 생성하여 Code1(610)과 Code2(620)를 생성하고 보관하는 절차를 다시 수행하게 된다. 초기설정정보(400)에는 OTP 생성용 Shared Secret(420)까지 포함되어 있기에 OTP 생성부터 다시 진행하게 되는 것이다.
두 번째 Event는 OTP의 재생성 주기가 도달하는 경우로, 본 발명이 패킷도청에 대한 대비책으로 사용하는 OTP의 재 생성주기가 도달할 때 발동되는 Event이다. OTP가 재생성 되기에 OTP를 포함한 정보로 생성한 Proxy 인증키(500)는 사용기간이 만료되게 되고, 단말(300)은 새로이 Proxy 인증키(500)와 Code1(610), 그리고 Code2(620)를 생성하고 보관하는 절차를 진행하게 되는 것이다.
마지막 Event는 Proxy 인증키(500) 생성에 사용된 단말 종속적 정보가 변경되면 발생한다. 단말 종속적 정보 중에는 단말의 IP-Address와 같은 단말 이동성으로 인해 변경될 수 있는 정보가 포함될 수 있으며, 이 단말 종속적 정보의 변경은 기존 Proxy 인증키(500)의 만료를 의미하기에 새로이 Proxy 인증키(500)와 Code1(610), 그리고 Code2(620)를 생성하고 보관하는 절차를 진행하게 되는 것이다.
이와 같은 절차 혹은 Event로 Code1(610)과 Code2(620)가 생성되어서 단말(300)에 보관 중인 상태가 되면, 단말은(300)은 언제든 Proxy 통신을 본 발명의 개념을 사용하여 시작 할 수 있게 된다. 이 상태에서 단말에서 MPTCP Aggregation 서비스를 이용하는 통신이 시작되게 되면, 해당 통신은 Proxy통신이 되고, 해당 Proxy통신이 서비스 가입자의 단말에서 시작된 것이 맞는지를 인증하는 Proxy 인증절차가 시작되게 된다.
이 때 단말은 도 7에 명시된 바와 같이 미리 생성 해 놓은 Code1(610)과 Code2(620)를 각각 Proxy 인증 패킷의 Username와 Password 필드에 삽입하여 전달하는 것으로 인증 패킷 전송 단계까지 완료하게 된다. 이후 단말(300)이 Proxy-Server(200)로부터 인증 성공을 전달받으면 Proxy 통신을 진행할 수 있는 것이고, 인증실패를 전달 받으면, Proxy 통신이 진행되지 않게 되는 것이다.
한편, 현 실시 예에서는 Random-Number를 미리 생성하여 Code1(610)과 Code2(620)를 미리 생성하고 보관하였으나, Operator의 필요에 따라 Random-Number의 생성을 Proxy 통신을 시작하는 시점에 진행하는 것 또한 가능하다. 이 경우, 단말(300)은 Proxy 인증키(500)까지만 생성해서 보관하고 있다가, Proxy 통신 시작으로 인해 Proxy 인증 패킷이 제작될 때 Random-Number을 생성하고 Code1(610)과 Code2(620)을 생성하여 Proxy 인증 패킷에 사용하게 된다. 이 방식은 Proxy 인증 패킷 생성에 시간과 자원이 좀 더 필요하게 되나, 패킷 도청으로 인한 단말(300)의 Random-Number 유출을 방지할 수 있다.
위와 같이 단말(300)의 Proxy 인증 패킷이 Proxy-Server(200)로 전달되면, Proxy-Server는 해석용 키 생성 단계와 인증 및 사용자 정보 복원 단계를 거쳐서 단말(300)의 Proxy 인증을 진행한다. 그러나 본 문단에선 Proxy-Server(200)의 Proxy 인증 절차 설명하기 전에 먼저 도 9를 이용하여 Proxy 인증키(500) 생성방법을 상세하게 설명하고자 한다.
도 9에서 보듯이 Proxy 인증키(500)는 Group-Key(510)와 Master-key(520)의 조합으로 이루어진다. 이 Group-Key(510)와 Master-key(520)는 각각 Proxy-Manager(100)와 선 인증 후 단말(300)과 Proxy-Server(200)가 수신한 초기설정정보(400) 각 항목의 값을 기반으로 생성된다.
Group-Key(510)의 경우, 초기설정정보(400) 중 Group Code(410)를 기반으로 생성되는데, 이 때 사용하는 Key-Generation 모듈은 특정 지어지지 않으며 Operator가 필요에 따라 선택할 수 있다.
Master-key(520)경우, 초기설정정보(400) 중 OTP 생성용 Shared Secret(420)을 기반으로 생성된 OTP와 사용코드리스트(430)에 명시된 각 항목의 값을 기반으로 생성되는데, Group-Key(510)와 마찬가지로 Master-key(520) 생성을 위해 사용되는 Key-Generation 모듈도 특정 지어지지 않으며 Operator가 필요에 따라 선택할 수 있다. Group-Key(510)와 Master-key(520)가 각각 다른 Key-Generation 모듈을 사용할 수도 있는 것이다.
Master-key(520)는 Group-Key(510)와는 다르게 사용코드리스트(430)에 명시된 각 항목의 값을 여럿 사용 할 수 있으나, 어떤 항목을 사용할지는 Operator가 필요에 따라 결정 할 수 있다. Operator가 사용코드리스트(430)명시하여 Master-key(520)생성에 사용하고자 하는 정보가 없다면, 초기설정정보(400)에서 사용코드리스트(430)와 각 단말 비종속적 항목들의 값(450)이 완전히 배제될 수도 있는 것이다. 다만 Master-key(520) 작성을 위해선 반드시 하나 이상의 정보가 필요하고, OTP가 패킷도청에 대한 방지책으로 선택된 것이기에, OTP 값은 Master-key(520) 생성 시에 반드시 포함되어야 한다. OTP 값의 생성방식은 도 9에서 명시한 바와 같이 Time-based One-time Password Algorithm(RFC 6238)의 방식이 권장되나, 공유한 Shared-Secret으로 동일한 시간에 생성시 동일한 OTP값이 나오는 방식에 한해서 Operator가 필요에 따라 자유로이 선택할 수 있다.
또한, 사용코드리스트(430)의 항목 중에 MNC와 같은 각 단말 비종속적 항목들이 포함 될 수 있는데, 단말(300)과 Proxy-Server(200)는 이 값들에 대한 정보를 네트워크에서 수집하거나 초기설정정보(400)의 단말 비종속적 항목들의 값(450)을 통해 수집할 수 있다.
위와 같은 방식으로 초기설정정보(400)를 기반으로 하는 Group-Key(510)와 Master-key(520)가 생성되면, 이 2개의 키는 하나로 뭉쳐져서 Proxy 인증키(500)를 생성하게 된다. 즉, Group-Key(510)용으로 128bit의 키가 생성되고, Master-key(520)용으로 또 다른 128bit의 키가 생성되면, 2개의 키가 뭉쳐져서 256bit의 Proxy 인증키(500)가 생성되는 것이다. 이 때, Group-Key(510)의 길이와 Master-key(520)의 길이는 Operator의 필요에 따라 결정 될 수 있으나, 본 발명은 보안을 위해 Group-Key(510)와 Master-key(520)가 뭉쳐져서 만들어진 Proxy 인증키(500) 결과물은 최소 256bit 길이의 키가 되도록 Group-Key(510)의 길이와 Master-key(520)의 길이가 설정되도록 하는 것을 권장한다.
도 10은 단말(300)로부터 Proxy 인증용 패킷을 수신하였을 때 Proxy-Server(200)가 인증 및 사용자 정보 복원 단계를 진행하기 전에 수행하는 해석용 키 생성 단계의 과정을 설명한다.
Proxy-Server(200)는 서비스 시작 후, 초기설정 단계를 통하여 Proxy-Manager(100)로부터 초기설정정보(400)를 수신하여 OTP까지 생성한 후에 보관하여 두는데, 이렇게 보관한 초기설정정보(400)와 OTP는 도 10에서 표시하였듯이 인증정책이 변경되어서 초기설정정보(400)에 변화가 있거나 설정된 OTP 재생성 주기에 도달하여서 OTP가 만료 되었을 때 갱신되게 된다.
이때 위 도 3에서 기술하였듯이 Proxy-Server(200)는 3개의 OTP를 생성하여 보관하고 있다가 Proxy 인증 패킷을 수신할 때 해석용 키인 Proxy 인증키(500)를 생성하고 Proxy 인증 패킷을 인증하는 작업에 3개의 OTP를 순차적으로 사용한다.
위와 같이 도 10의 Event1과 Event2를 통해서 초기설정정보(400)와 OTP를 보관하게 되면, Proxy-Server(200)는 Proxy 인증 패킷을 수신하여 인증할 준비가 되고 도 10의 Event3인 Proxy 인증 패킷 수신이 발생하면, 도 9로 설명한 Proxy 인증키(500) 생성방법으로 Proxy 인증키(500)를 생성한 후, 다음 단계인 인증 및 사용자 정보 복원 단계를 진행하게 된다.
Proxy-Server(200)가 Proxy 인증키(500)를 생성할 때, Proxy-Server(200)는 수신하여 보관중인 초기설정정보(400)의 Group Code(410)를 이용하여 Group-Key(510)를 생성하지만 Master-key(520)를 생성하는 경우엔 보관 중인 OTP와 수신하여 보관중인 초기설정정보(400)의 단말 비종속적 항목들의 값(450)들뿐 아니라 단말(300)로부터 수신한 Proxy 인증 패킷의 Password 필드에서 추출한 IP Address와 같은 단말 종속적 정보의 값도 이용하여야 한다. 그렇기에 본 발명의 현 실시예와 도 10에서는 Proxy 인증키(500)의 생성을 Proxy 인증용 패킷 수신 이후 진행하는 것으로 설명하였으나, Operator의 필요에 따라 단말 비종속적 항목이 사용되지 않거나 단말 비종속적 항목들의 값(450)이 미리 Proxy-Server(200)와 공유되었다면 Proxy-Server(200)는 3개의 Proxy 인증키(500)또한 미리 작성하여 보관하였다가 Proxy 인증용 패킷 수신 시 바로 사용되도록 할 수도 있다.
위 단계를 거쳐서 Proxy-Server(200)가 Proxy 인증용 패킷을 수신한 상태에서 Proxy 인증키(500)의 작성이 완료된 상태이면, Proxy-Server는 도 11에 표현된 인증 및 사용자 정보 복원 단계를 진행하여 가입자 정보 없이 단말(300) 대해 빠른 Proxy 인증을 진행할 수 있고, 서비스사용자 별 서비스 사용량 추적 등의 Operator용 편의기능을 위한 서비스사용자의 가입자 정보 추출 및 보관을 진행할 수 있다.
Proxy-Server(200)는 Proxy 인증용 패킷을 수신하고 Proxy 인증키(500)생성이 완료되면 도 11과 같이 Proxy 인증용 패킷의 Username 필드와 Password 필드에서 Code1(610)과 Code2(620)을 각각 추출하여 Proxy 인증 및 사용자정보 추출을 진행한다. Proxy-Server(200)는 Code2(620)에서 단말 종속적 항목들의 값을 추출하여 이번 Proxy 인증 시도에 사용할 Proxy 인증키(500)를 작성하고, 단말(300)이 Proxy-Server(200)와 같은 Proxy 인증키(500)를 공유하는지 확인하는데 필요한 Random-Number를 추출한다.
또한, Proxy-Server(200)는 Code1(610)을 Proxy 인증키(500)로 복호화하여 [Random-Number, UE-ID]조합을 추출한다. Proxy-Server(200)는 이렇게 필요 정보가 추출되면Code1에서 추출한 Random-Number와 Code2에서 추출한 Random-Number가 같은지 대조하는 작업을 진행하고, 두 Random-Number 값이 같으면 인증 성공 메시지를 단말(300)에 송신하면서 Proxy 연결을 수립한다.
그러나, 두 Random-Number 값이 다를 경우, 다음 OTP 정보를 사용하여 다음 Proxy 인증키(500)를 작성하고, Proxy 인증용 패킷에서 필요정보를 다시 추출하여 Random-Number를 대조하는 작업을 다시 진행하는데, 만약 이미 3개의 OTP와 Proxy 인증키(500)를 이용한 인증시도가 모두 실패한 경우, Proxy-Server(200)는 단말정보와 인증 실패를 로그에 기록하고, Proxy 인증실패 메시지를 송신하여서 Proxy연결을 거부한다.
이와 같이 Proxy-Manager(100)가 강력한 선 인증으로 단말(300)에서 서비스를 시작할 때 단말인증을 완료하고, 인증된 단말(300)이 Proxy-Server(200)와 동일한 Proxy 인증키(500)를 생성할 수 있도록 하여서, Proxy-Server(200)와 단말(300)이 Proxy 인증을 진행할 때, Proxy-Server(200)가 단말(300)이 같은 Proxy 인증키(500)를 공유하는지 만을 확인하는 것으로 단말(300)이 Proxy-Manager(100)와의 선 인증을 완료하였는지 확인하여 Proxy-Server(200)가 가입자 정보 없이 빠르게 Proxy 인증이 완료될 수 있도록 하는 것이 본 발명의 개념이다.
도 1에서 보듯이 MPTCP Aggregation 서비스시스템(1000)은 2개의 Path를 사용하기에, 통신 세션 하나당 2번의 Proxy 인증 과정을 거치게 된다. 더불어 MPTCP Aggregation 서비스시스템(1000)은 상용 망에 서비스되기 때문에 방대한 가입자 정보를 다루어야 하면서도, 프리미엄 서비스라는 속성으로 인해 가입자 별로 차별적으로 서비스가 제공 되야 한다. 이와 같은 환경에서 기존 Proxy 인증 방식이 사용되게 되면, Proxy-Server(200)가 방대한 양의 가입자 정보를 관리해야 하는 부담이 있고, Proxy통신세션이 생성될 때마다 방대한 가입자 정보와 세션 인증 요청의 대조를 2번 진행해야 하여서 서비스 성능이 크게 하락하는 문제가 있다.
본 발명은 이와 같이 방대한 양의 가입자가 존재하는 상용 망에서 Proxy 인증을 사용해야 하는 상황에 대해 가입자 관리를 필요로 하지 않으면서 Proxy 인증으로 인하 성능저하를 최소화 하는 방법을 제시하여 MPTCP Aggregation 서비스시스템(1000)과 같은 Proxy서비스가 상용 이동 망에서의 Proxy 인증으로 인한 성능저하 없이 제공 될 수 있도록 한다.
본 발명은 상기한 실시예에 한정되지 아니하며, 적용범위가 다양함은 물론이고, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 다양한 변형 실시가 가능한 것은 물론이다.
1000 : MPTCP Aggregation 서비스시스템
100 : Proxy-Manager
200 : Proxy-Server
300 : 단말
400 : 초기설정정보
410 : Group Code 420 : OTP용 Shared Secret
430 : 사용코드리스트 440 : Random-Number의 길이
450 : 각 단말 비종속적 항목들의 값
500 : Proxy 인증키
510 : Group-Key 520 : Master-Key
600 : Proxy 인증용 정보
610 : Code1 620 : Code2

Claims (14)

  1. 가입자 정보를 이용하여 가입자를 선 인증하고 상기 가입자 정보 없이 Proxy 인증을 진행하기 위한 초기설정정보를 단말과 Proxy-Server로 전달하는 Proxy-Manager;
    상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로, Proxy 인증용 패킷을 구성하는 Username용 Code1과 Password용 Code2를 생성하고, 상기 Proxy 인증용 패킷을 상기 Proxy-Server로 송신하는 단말; 및
    상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로, 가입자정보 없이 인증을 처리할 수 있도록 하는 해석용 키를 생성하며, 단말의 인증 요청 시 해석용 키를 이용하여 인증을 수행하고, 인증이 완료된 가입자의 정보를 복원 및 저장하는 Proxy-Server;
    를 포함하여 이루어지는 프록시 서비스 제공을 위한 프록시 인증시스템.
  2. 제 1항에 있어서,
    상기 초기설정정보는,
    각 단말 비종속적 코드 항목 및/또는 각 단말에 종속적인 코드 항목을 포함하는 사용코드리스트, Group Code, OTP(One Time Password; 이하 OTP) 생성용 Shared Secret, 및 Random-Number의 길이를 포함하되,
    상기 사용코드리스트에 포함되는 각 코드 항목들 중 각 단말 비종속적 코드 항목에 있어서, 상기 코드 항목들의 값 중 네트워크로부터 수집할 수 없는 값이 포함된 경우 해당 코드 항목들의 값을 더 포함하여 이루어지는 프록시 서비스 제공을 위한 프록시 인증시스템.
  3. 제 2항에 있어서,
    상기 Code2는,
    각 단말이 보관할 수 있는 단말 종속적인 코드 항목의 값 중에 상기 Proxy-Manager로부터 전달받은 상기 사용코드리스트에 포함된 코드 항목의 값, 및 상기 Random-Number의 길이만큼의 Random-Number로 이루어지며,
    상기 Code1은,
    단말의 정보를 가지는 UE-ID와 상기 Random-Number를 합친 후 상기 초기설정정보를 기반으로 생성한 Proxy 인증키를 이용하여 암호화하여 생성되는 것을 특징으로 하는 프록시 서비스 제공을 위한 프록시 인증시스템.
  4. 제 3항에 있어서,
    상기 Proxy 인증키는,
    Group-Key 및 Master-key를 포함하며,
    상기 Group-Key는 상기 Group Code 기반으로 생성되고,
    상기 Master-key는 상기 사용코드리스트에 포함된 OTP 생성용 Shared Secret을 기반으로 생성되는 OTP, 및 상기 사용코드리스트에 포함된 각 코드 항목들로 이루어지는 것을 특징으로 하는 프록시 서비스 제공을 위한 프록시 인증시스템.
  5. 제 3항에 있어서,
    상기 Proxy 인증키는,
    OTP 값의 재생성 주기 도달, 상기 Proxy-Manager로부터의 인증 정책 변경 수신, 사용코드리스트에 포함된 각 코드 항목들의 값 변동 중 어느 하나 이상의 이벤트가 발생될 때마다 갱신되는 것을 특징으로 하는 프록시 서비스 제공을 위한 프록시 인증시스템.
  6. 제 1항에 있어서,
    상기 Proxy-Server는,
    상기 해석용 키가 상기 단말에서 상기 Code1의 암호화 시 사용한 Proxy 인증키와 동일한지를 확인함으로써, 가입자정보 없이 인증을 수행하는 것을 특징으로 하는 프록시 서비스 제공을 위한 프록시 인증시스템.
  7. 제 6항에 있어서,
    상기 Proxy-Server는,
    상기 단말로부터 전송받은 Proxy 인증용 패킷의 Password 필드에 담긴 Code2에서 Random-Number를 추출하고, 상기 해석용 키를 이용해 상기 Proxy 인증용 패킷의 Username 필드에 저장된 정보를 복호화하여 복호화된 Code1을 추출한 후, 복호화한 Code1에서 추출한 Random-Number와 상기 Code2에서 추출한 Random-Number를 대조하는 것으로 상기 해석용 키가 상기 Proxy 인증키와 동일한지를 판단하는 것을 특징으로 하는 프록시 서비스 제공을 위한 프록시 인증시스템.
  8. 제 6항에 있어서,
    상기 Proxy-Server는,
    상기 단말과의 시간 비동기로 인한 OTP 값의 차를 극복하기 위해 미리 설정된 다수의 시점에서의 OTP를 생성하여, 생성된 OTP 개수만큼 상기 해석용 키 생성 및 인증 시도를 진행하는 것을 특징으로 하는 프록시 서비스 제공을 위한 프록시 인증시스템.
  9. Proxy-Manager가 가입자 정보를 이용하여 가입자를 선 인증하고 상기 가입자 정보 없이 Proxy 인증을 진행하기 위한 초기설정정보를 단말과 Proxy-Server로 전달하는 초기설정 단계;
    상기 단말이 상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로, Proxy 인증용 패킷에 사용되는 Code1과 Code2를 생성하는 송신 측 키 생성 단계;
    상기 단말이 상기 Code1과 Code2를 각각 상기 Proxy 인증용 패킷의 Username 필드와 Password 필드에 담아 상기 Proxy-Server로 전송하는 인증 패킷 전송 단계;
    단말의 인증 요청 시 상기 Proxy-Server가 상기 Proxy-Manager로부터 전달받은 상기 초기설정정보를 기반으로 상기 인증 요청을 가입자정보 없이 처리할 수 있도록 하는 해석용 키를 생성하는 해석용 키 생성 단계; 및
    상기 Proxy-Server가 단말의 인증요청을 처리하고, 인증 성공 시 인증이 완료된 가입자의 정보를 복원 및 저장하는 인증 및 사용자 정보 복원 단계;
    를 포함하여 이루어지는 프록시 서비스 제공을 위한 프록시 인증방법.
  10. 제 9항에 있어서,
    상기 송신 측 키 생성 단계에서,
    상기 Code2는, 각 단말이 보관할 수 있는 단말 종속적 값 중에 상기 Proxy-Manager로부터 전달받은 사용코드리스트에 포함된 코드 항목의 값, 및 상기 Proxy-Manager로부터 전달받은 Random-Number 길이 만큼의 Random-Number로 이루어지며,
    상기 Code1은, 단말의 정보를 가지는 UE-ID와 상기 Random-Number를 합친 후 상기 초기설정정보를 기반으로 생성한 Proxy 인증키를 이용하여 암호화하여 생성되는 것을 특징으로 하는 프록시 서비스 제공을 위한 프록시 인증방법.
  11. 제 10항에 있어서,
    상기 Proxy 인증키는,
    Group-Key 및 Master-key를 포함하며,
    상기 Group-Key는 Group Code 기반으로 생성되고,
    상기 Master-key는 상기 초기설정정보에 포함된 OTP 생성용 Shared Secret을 기반으로 생성되는 OTP, 및 상기 사용코드리스트에 포함된 각 코드 항목들로 이루어지는 프록시 서비스 제공을 위한 프록시 인증방법.
  12. 제 9항에 있어서,
    상기 해석용 키 생성 단계 및 상기 인증 및 사용자 정보 복원 단계는,
    상기 Proxy-Server가 상기 단말과의 시간 비동기로 인한 OTP 값의 차를 극복하기 위해, 미리 설정된 다수의 시점에서 생성해놓은 OTP의 개수만큼 반복 수행되어 상기 단말의 인증을 시도하는 것을 특징으로 하는 프록시 서비스 제공을 위한 프록시 인증방법.
  13. 제 9항에 있어서,
    상기 인증 및 사용자 정보 복원 단계에서,
    상기 해석용 키가 상기 단말에서 상기 Code1의 암호화 시 사용한 Proxy 인증키와 동일한지를 확인함으로써 가입자정보 없이 상기 단말의 인증을 수행하는 것을 특징으로 하는 프록시 서비스 제공을 위한 프록시 인증방법.
  14. 제 13항에 있어서,
    상기 인증 및 사용자 정보 복원 단계는,
    상기 단말이 전송한 Proxy 인증용 패킷의 Password 필드에 담긴 Code2에서 Random-Number를 추출하는 단계;
    상기 해석용 키를 이용해 상기 Proxy 인증용 패킷의 Username 필드에 저장된 정보를 복호화하여 복호화된 Code1을 추출하고, 상기 복호화한 Code1에 포함된 Random-Number를 추출하는 단계;
    상기 Code1에서 추출한 Random-Number와 상기 Code2에서 추출한 Random-Number를 대조하는 단계; 및
    두 Random-Number가 일치하면 단말 인증을 완료하고, 인증이 완료된 단말의 사용자 정보를 상기 Proxy 인증 패킷으로부터 추출하여 각 Proxy 서비스 가입자들의 Proxy 서비스 사용량 및 사용패턴 정보모니터링을 위해 보관하는 단계;
    를 포함하여 이루어지는 프록시 서비스 제공을 위한 프록시 인증방법.
KR1020160082721A 2016-06-30 2016-06-30 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법 KR101837150B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160082721A KR101837150B1 (ko) 2016-06-30 2016-06-30 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법
PCT/KR2017/003364 WO2018004114A2 (ko) 2016-06-30 2017-03-28 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160082721A KR101837150B1 (ko) 2016-06-30 2016-06-30 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법

Publications (2)

Publication Number Publication Date
KR20180003196A KR20180003196A (ko) 2018-01-09
KR101837150B1 true KR101837150B1 (ko) 2018-03-09

Family

ID=60786986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160082721A KR101837150B1 (ko) 2016-06-30 2016-06-30 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법

Country Status (2)

Country Link
KR (1) KR101837150B1 (ko)
WO (1) WO2018004114A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110120932B (zh) * 2018-02-06 2020-10-23 华为技术有限公司 多路径建立方法及装置
GB201809887D0 (en) * 2018-06-15 2018-08-01 Iothic Ltd Decentralised authentication
CN112749182B (zh) * 2019-10-30 2023-01-31 深圳市傲冠软件股份有限公司 代理访问Oracle数据库的方法、审计终端、装置及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080037785A1 (en) 2005-09-29 2008-02-14 Alexander Gantman Constrained Cryptographic Keys

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100957183B1 (ko) * 2008-08-05 2010-05-11 건국대학교 산학협력단 프록시 모바일 ip 환경에서의 이동 단말 인증방법
AU2012315674B9 (en) * 2011-09-29 2018-08-30 Amazon Technologies, Inc. Parameter based key derivation
KR101297648B1 (ko) * 2011-12-29 2013-08-19 고려대학교 산학협력단 서버와 디바이스간 인증방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080037785A1 (en) 2005-09-29 2008-02-14 Alexander Gantman Constrained Cryptographic Keys

Also Published As

Publication number Publication date
KR20180003196A (ko) 2018-01-09
WO2018004114A2 (ko) 2018-01-04
WO2018004114A3 (ko) 2018-09-07

Similar Documents

Publication Publication Date Title
JP6492115B2 (ja) 暗号鍵の生成
US20170012978A1 (en) Secure communication method and apparatus
CN109167802B (zh) 防止会话劫持的方法、服务器以及终端
US20060059344A1 (en) Service authentication
EP2347613B1 (en) Authentication in a communication network
US11159940B2 (en) Method for mutual authentication between user equipment and a communication network
CN103685282A (zh) 一种基于单点登录的身份认证方法
CN108353279B (zh) 一种认证方法和认证系统
CN110769420B (zh) 网络接入方法、装置、终端、基站和可读存储介质
US20130312074A1 (en) Establishing virtual private network session using roaming credentials
KR20090042867A (ko) 듀얼 스택 동작의 인가를 인터워킹하기 위한 방법 및 장치
KR101837150B1 (ko) 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법
US8793494B2 (en) Method and apparatus for recovering sessions
US20170078288A1 (en) Method for accessing communications network by terminal, apparatus, and communications system
CN102833747B (zh) 分离机制移动性管理系统实现接入认证的密钥分发方法
CN114765543A (zh) 一种量子密码网络扩展设备的加密通信方法及系统
CN115473655B (zh) 接入网络的终端认证方法、装置及存储介质
CN108400967B (zh) 一种鉴权方法及鉴权系统
CN102638440A (zh) 在ims网络中实现单点登录的方法和系统
CN105871788B (zh) 一种登录服务器的密码生成方法及装置
US20230023665A1 (en) Privacy information transmission method, apparatus, computer device and computer-readable medium
EP3125595A1 (en) Method to provide identification in privacy mode
KR101451163B1 (ko) 무선 네트워크 접속 인증 방법 및 그 시스템
US8769280B2 (en) Authentication apparatus and method for non-real-time IPTV system
KR20140095050A (ko) 이동 통신 시스템에서 단일 사용자 승인을 지원하는 관리 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant