KR102040174B1 - Hsts를 이용해서 클라이언트를 식별하는 방법 - Google Patents

Hsts를 이용해서 클라이언트를 식별하는 방법 Download PDF

Info

Publication number
KR102040174B1
KR102040174B1 KR1020180026042A KR20180026042A KR102040174B1 KR 102040174 B1 KR102040174 B1 KR 102040174B1 KR 1020180026042 A KR1020180026042 A KR 1020180026042A KR 20180026042 A KR20180026042 A KR 20180026042A KR 102040174 B1 KR102040174 B1 KR 102040174B1
Authority
KR
South Korea
Prior art keywords
client
server
identification
identification value
hsts
Prior art date
Application number
KR1020180026042A
Other languages
English (en)
Other versions
KR20190105463A (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 KR1020180026042A priority Critical patent/KR102040174B1/ko
Publication of KR20190105463A publication Critical patent/KR20190105463A/ko
Application granted granted Critical
Publication of KR102040174B1 publication Critical patent/KR102040174B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

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)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 트래픽이 발생하면, 클라이언트의 접속을 관리 서버로 리다이렉트하고, HSTS를 이용해서 최초접속인지 접속이력이 있는지 여부를 판단하고, 최초접속이면 복수의 식별 서버들을 2진수의 각 자리수로 할당하고 HSTS를 이용해서 식별값을 설정하고, 접속이력이 존재하면 복수의 식별 서버들로의 접속 프로토콜의 종류를 구분하는 것을 이용해서 클라이언트의 식별값을 확인하여 클라이언트를 식별하는 방법에 관한 것이다.

Description

HSTS를 이용해서 클라이언트를 식별하는 방법{METHOD FOR IDENTIFYING CLIENT USING HSTS}
이하의 일 실시예들은 여러 대의 클라이언트들이 IP를 공유해서 사용하는 네트워크에서, IP를 공유해서 사용하는 클라이언트를 식별하는 방법에 관한 것이다.
최근에는 가입자가 하나의 공인 IP로 여러 클라이언트가 네트워크를 동시에 사용하기 위해서 IP 공유기를 사용하는 경우가 매우 빈번하게 발생하고 있으며, 회사나 기업 내에서는 NAT(Network Address Translation)를 구성하여 사용하는 곳도 많이 늘어나는 추세다.
그러나, 하나의 공인 IP로 여러 클라이언트가 네트워크를 동시에 사용하는 경우, 네트워크 트래픽 증가와 해킹, 바이러스, 웜 등의 심각한 문제점을 보이고 있다.
이러한 문제를 해결하기 위해서는 내부 네트워크 내의 사용자의 IP 주소를 알려주는 별도의 어플리케이션(ActiveX, Agent)을 설치해야 하나 이러한 것은 사용자가 설치/운전 여부를 인지하고 거부할 수 있는 문제가 있다.
종래의 공유 IP를 이용하는 클라이언트들을 카운트 하는 기술의 한 예로, 한국등록특허 제 0960152호 " 네트워크상의 복수 단말을 검출하여 인터넷을 허용 및 차단하는 방법"이 제안되었다. 상기 선행기술에서는 TCP/IP 패킷을 분석하여 웹으로 접속하는 세션을 리다이렉트 하여, 여러 대의 단말을 공유해서 사용하는 사설 네트워크 내에서 쿠키(Cookie)를 이용하여 클라이언트의 복수의 PC 단말수를 파악하여, 인터넷을 사용하고 있는 클라이언트의 복수의 PC 단말 수를 정확히 알 수 있게 검출하여 DB화 하고, DB화 된 쿠키(Cookie)풀 정보와 작업(JOB)을 이용하여, 사설 네트워크를 구성하여 사용하는 사용자가 동시에 인터넷 접속을 할 경우 TCP/IP 기반에서 선별적으로 접속을 허용 또는 차단하는 기술이 개시되었다.
하지만, 쿠키의 경우 사용자에 의해서 변경될 수 있어, 쿠키 외에 방법을 통해서 클라이언트를 식별하는 방법이 요구되고 있다.
한국등록특허 제 10-0960152호 (등록일 2010.05.19)
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 공유 IP를 이용하는 클라이언트들을 HSTS를 이용해서 식별하는 방법을 제공하는 것을 목적으로 한다.
구체적으로, 본 발명은 트래픽이 발생하면, 클라이언트의 접속을 관리 서버로 리다이렉트하고, HSTS를 이용해서 최초접속인지 접속이력이 있는지 여부를 판단하고, 최초접속이면 복수의 식별 서버들을 2진수의 각 자리수로 할당하고 HSTS를 이용해서 식별값을 설정하고, 접속이력이 존재하면 복수의 식별 서버들로의 접속 프로토콜을 통해서 클라이언트의 식별값을 확인하여 클라이언트를 식별하는 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 클라이언트를 식별하는 방법은, 트래픽을 모니터링하여 클라이언트의 접속을 관리 서버로 리다이렉트하는 단계; 상기 관리 서버에서 상기 클라이언트가 접속하려고 했던 원래 주소를 저장하는 단계; 상기 관리 서버에서 상기 클라이언트의 식별값이 존재하는지 확인하는 파일을 통해서 확인 서버에 접속하도록 하여 상기 확인 서버로부터 상기 클라이언트의 식별값이 존재하는지 여부를 확인하는 단계; 상기 확인 서버의 확인결과 상기 클라이언트의 식별값이 존재하지 않으면, 상기 관리 서버에서 상기 확인 서버를 통해서 상기 클라이언트의 식별값을 할당 받고, 식별 서버들과 HSTS(HTTP Strict Transport Security)를 이용해서 상기 클라이언트의 식별값을 등록하는 단계; 상기 관리 서버에서 상기 확인 서버를 통해서 상기 클라이언트의 식별값과 상기 클라이언트가 접속한 시간 정보를 포함하는 로그 기록을 데이터베이스 서버에 저장하는 단계; 및 상기 관리 서버에서 상기 클라이언트를 상기 저장된 원래 주소로 리다이렉트하는 단계를 포함한다.
이때, 상기 클라이언트의 식별값을 등록하는 단계는, 상기 관리 서버에서 상기 확인 서버로 상기 클라이언트에 식별값의 할당을 요청하고, 상기 확인 서버로부터 식별값을 할당 받는 단계; 상기 관리 서버에서 식별값을 등록하는 파일을 통해서 상기 식별 서버들 중에서 상기 할당 받은 식별값에 대응하는 식별 서버를 HTTPS로 호출하는 단계; HTTPS로 호출받은 식별 서버에서 상기 클라이언트의 브라우저의 HSTS 리스트에 해당 식별 서버를 저장하기 위해서 상기 확인 서버로 HSTS를 요청하는 단계; 상기 확인 서버에서 HSTS를 요청 받으면, 응답 헤더에 HSTS 정보를 삽입하여 HSTS를 요청한 식별 서버로 제공하는 단계; 상기 HSTS를 요청한 식별 서버에서 HSTS 정보가 삽입된 응답 정보를 상기 관리 서버로 송신하는 단계; 및 상기 관리 서버에서 상기 HSTS를 요청한 식별 서버로부터 HSTS 정보가 삽입된 응답 정보를 수신하면, 상기 식별값을 등록하는 파일에 접속한 상기 클라이언트에서 상기 클라이언트의 브라우저의 HSTS 리스트에 HTTPS로 호출받은 식별 서버의 HTTPS의 주소를 저장하는 단계를 포함할 수 있다.
이때, 상기 할당 받은 식별값에 대응하는 식별 서버를 HTTPS로 호출하는 단계는, 상기 할당 받은 식별값을 이진수로 변경하는 단계; 이진수로 변경된 식별값에서 "1"이 위치하는 자리에 대응하는 식별 서버를 확인하는 단계; 및 상기 확인된 식별 서버를 HTTPS로 호출하는 단계를 포함할 수 있다.
이때, 상기 확인 서버에서 HSTS를 요청 받으면, 응답 헤더에 HSTS 정보를 삽입하여 HSTS를 요청한 식별 서버로 제공하는 단계는, Strict-Transport-Security 필드의 만료시간에 해당하는 max-age를 기설정된 시간에 만료되도록 설정하는 단계를 포함할 수 있다.
이때, 상기 로그 기록을 데이터베이스 서버에 저장하는 단계는, 상기 관리 서버에서 로그를 기록하는 파일을 통해서 상기 확인 서버로 상기 로그 기록의 저장을 요청하는 단계; 상기 확인 서버에서 상기 로그 기록의 저장을 요청 받으면, 데이터베이스 서버에 요청받은 상기 로그 기록을 저장하는 단계; 및 상기 확인 서버에서 상기 데이터베이스 서버로부터 상기 로그 기록이 저장되었음을 응답 받으면, 상기 관리 서버로 상기 로그 기록이 저장되었음을 응답하는 단계를 포함할 수 있다.
이때, 상기 원래 주소를 저장하는 단계는, 상기 원래 주소에 해당하는 유알엘(URL; Uniform Resource Locator)을 Base64로 인코딩하여 저장할 수 있다.
본 발명의 일 실시 예에 따른 클라이언트를 식별하는 방법은, 트래픽을 모니터링하여 클라이언트의 접속을 관리 서버로 리다이렉트하는 단계; 상기 관리 서버에서 상기 클라이언트가 접속하려고 했던 원래 주소를 저장하는 단계; 상기 관리 서버에서 상기 클라이언트의 식별값이 존재하는지 확인하는 파일을 통해서 확인 서버에 접속하도록 하여 상기 확인 서버로부터 상기 클라이언트의 식별값이 존재하는지 여부를 확인하는 단계; 상기 확인 서버의 확인결과 상기 클라이언트의 식별값이 존재하면, 식별 서버들과 HSTS(HTTP Strict Transport Security)를 이용해서 상기 클라이언트의 식별값을 확인하는 단계; 상기 관리 서버에서 상기 확인 서버를 통해서 상기 클라이언트의 식별값과 상기 클라이언트가 접속한 시간 정보를 포함하는 로그 기록을 데이터베이스 서버에 저장하는 단계; 및 상기 관리 서버에서 상기 클라이언트를 상기 저장된 원래 주소로 리다이렉트하는 단계를 포함한다.
이때, 상기 클라이언트의 식별값을 확인하는 단계는, 상기 관리 서버에서 식별값을 읽어오는 파일을 통해서 모든 식별 서버들을 HTTP로 호출하는 단계; 상기 모든 식별 서버들 각각에서 상기 확인 서버로 상기 클라이언트의 브라우저가 HTTP로 호출하였는지 HTTPS로 호출하였는지 확인을 요청하는 단계; 상기 확인 서버에서 요청된 유알엘을 확인하여 상기 클라이언트의 브라우저가 HTTP로 호출하였는지 HTTPS로 호출하였는지 확인하고, 상기 모든 식별 서버 각각으로 HTTP의 호출인지 HTTPS의 호출인지의 확인결과를 응답하는 단계; 상기 모든 식별 서버 각각에서 HTTP의 호출인지 HTTPS의 호출인지의 확인결과를 상기 관리 서버로 응답하는 단계; 및 상기 관리 서버에서 상기 모든 식별 서버 각각에 대응하는 확인결과를 응답 받으면, HTTPS로 호출한 식별 서버의 조합에 대응하는 식별값을 상기 클라이언트의 식별값으로 확인하는 단계를 포함할 수 있다.
이때, 상기 HTTPS로 호출한 식별 서버의 조합에 대응하는 식별값을 상기 클라이언트의 식별값으로 확인하는 단계는, 상기 모든 식별 서버 각각에 대응하는 기설정된 2진수 자리를 확인하고, HTTP의 호출을 "0"으로 판단하고, HTTPS의 호출을 "1"로 판단하여 2진수의 식별값을 생성하는 단계; 및 상기 2진수의 식별값을 10진수의 식별값으로 변경하고, 상기 10진수의 식별값을 상기 클라이언트의 식별값으로 확인하는 단계를 포함할 수 있다.
이때, 상기 관리 서버에서 식별값을 읽어오는 파일을 통해서 식별 서버들을 HTTP로 호출하는 단계는, 상기 클라이언트의 브라우저의 HSTS 리스트에 HTTPS 주소가 저장된 식별 서버로는 HTTP로 호출하는 대신에 HTTPS로 호출하는 단계를 포함할 수 있다.
이때, 상기 로그 기록을 데이터베이스 서버에 저장하는 단계는, 상기 클라이언트의 식별값이 확인되면, 상기 관리 서버에서 로그를 기록하는 파일을 통해서 상기 확인 서버로 상기 클라이언트의 식별값과 식별된 시간 정보를 저장하는 로그 기록을 요청하는 단계; 상기 확인 서버에서 로그 기록을 요청 받으면, 데이터베이스 서버에 요청받은 로그 기록을 저장하는 단계; 및 상기 확인 서버에서 상기 데이터베이스 서버로부터 로그 기록이 저장되었음을 응답 받으면, 상기 관리 서버로 로그 기록이 저장되었음을 응답하는 단계를 포함할 수 있다.
본 발명은 트래픽이 발생하면, 클라이언트의 접속을 관리 서버로 리다이렉트하고, HSTS를 이용해서 최초접속인지 접속이력이 있는지 여부를 판단하고, 최초접속이면 복수의 식별 서버들을 2진수의 각 자리수로 할당하고 HSTS를 이용해서 식별값을 설정하고, 접속이력이 존재하면 복수의 식별 서버들로의 접속 프로토콜의 종류를 구분하는 것을 이용해서 클라이언트의 식별값을 확인하여 클라이언트를 식별하는 기술에 관한 것으로, 클라이언트를 식별함으로써 인가되지 않은 불특정 다수의 TCP/IP 기반의 인터넷을 허용 및 차단을 용이하게 행할 수 있다.
도 1은 일 실시 예에 따라 공유 IP를 사용하는 클라이언트를 HSTS를 이용해서 식별하는 시스템의 개략적인 구성을 도시한 도면이다.
도 2는 일 실시 예에 따른 식별 시스템에서 최초 접속한 클라이언트에게 식별값을 할당하고, 로그 기록을 저장할 때의 메시지 흐름을 도시한 도면이다.
도 3은 일 실시 예에 따른 식별 시스템에서 접속 이력이 있는 클라이언트의 식별값을 확인하고, 로그 기록을 저장할 때의 메시지 흐름을 도시한 도면이다.
도 4는 일 실시 예에 따라 클라이언트의 식별값이 존재하는지 확인하는 파일의 일 예를 도시한 도면이다.
도 5는 일 실시 예에 따라 클라이언트의 식별값을 등록하는 파일의 일 예를 도시한 도면이다.
도 6은 일 실시 예에 따라 클라이언트의 식별값을 읽어오는 파일의 일 예를 도시한 도면이다.
도 7은 일 실시 예에 따라 HSTS를 이용해서 클라이언트를 식별하는 개략적인 과정을 도시한 흐름도이다.
도 8은 일 실시 예에 따라 클라이언트의 식별값을 할당 받고 HSTS를 이용해서 클라이언트의 식별값을 등록하는 과정을 도시한 흐름도이다.
도 9는 일 실시 예에 따라 HSTS를 이용해서 클라이언트의 식별값을 확인하는 과정을 도시한 흐름도이다.
도 10은 일 실시 예에 따라 로그 기록을 데이터베이스에 저장하는 과정을 도시한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시 예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서는, 본 발명의 일 실시 예에 따른 HSTS를 이용해서 클라이언트를 식별하는 방법을 첨부된 도 1 내지 도 10을 참조하여 상세히 설명한다.
도 1은 일 실시 예에 따라 공유 IP를 사용하는 클라이언트를 HSTS를 이용해서 식별하는 시스템의 개략적인 구성을 도시한 도면이다.
도 1을 참조하면, 공유 IP를 사용하는 클라이언트를 HSTS를 이용해서 식별하는 식별 시스템은 관리 서버(110), 클라이언트(122, 124, 126), 공유기(130), 확인 서버(140), 식별 서버들(150) 및 데이터베이스 서버(160)를 포함하여 구성될 수 있다. 이때, 식별 서버들(150)는 제1 식별 서버(151), 제2 식별 서버(152) 및 제3 식별 서버(153)를 포함할 수 있다.
네트워크 환경에서 클라이언트(122, 124, 126)는 인터넷(100)에 접속할 때, 공유기(130) 또는 라우터에 연결될 수 있다. 클라이언트 단말(122, 124, 126)은 공유기(130) 또는 라우터에 연결됨으로써 네트워크 연결 및 데이터 전송이 가능할 수 있다. 이때, 복수의 클라이언트(122, 124, 126)가 인터넷에 접속될 수 있다. 예를 들면, 클라이언트는 PC, 스마트 폰과 같은 단말이 될 수 있다. 그리고, 공유기(130)는 NAT(Network Address Translation)로 이용될 수 있다.
관리 서버(110)는 클라이언트(122, 124, 126)에 인터넷(100)을 통해 통신을 수행하면서 발생하는 트래픽을 미러링하고, 클라이언트가 접속하려고 했던 원래 주소를 저장할 수 있다. 이때, 관리 서버(110)는 상기 원래 주소에 해당하는 유알엘(URL; Uniform Resource Locator)을 Base64로 인코딩하여 저장할 수 있다. URL을 Base64로 인코딩하는 것은 URL 내의 특수 문자를 처리하기 위해서이다.
관리 서버(110)에 포함된 클라이언트(122, 124, 126)로 제공하는 파일들을 이용해서 클라이언트의 식별값이 존재하는지 확인하고, 클라이언트의 식별값을 등록하거나, 클라이언트의 식별값을 할당할 수 있으며, 클라이언트의 식별값이 확인되면 그 로그 기록을 저장하도록 할 수 있다.
관리 서버(110)에서 클라이언트로 제공하는 파일들은 클라이언트의 식별값이 존재하는지 확인하는 파일, 클라이언트의 식별값을 등록하는 파일, 클라이언트의 식별값을 읽어오는 파일, 로그를 기록하는 파일 등이 존재할 수 있다.
클라이언트의 식별값이 존재하는지 확인하는 파일의 예는 아래 도 4의 예를 통해서 확인할 수 있고, 클라이언트의 식별값을 등록하는 파일의 예는 아래 도 5의 예를 통해서 확인할 수 있고, 클라이언트의 식별값을 읽어오는 파일의 예는 아래 도 6을 통해서 확인할 수 있다.
식별 서버들(150)는 클라이언트의 식별값을 식별하기 위한 서버들로, 식별 서버들(150) 각각은 2진수의 각 자리에 하나씩 기설정되어 http로 접속하는지 https로 접속하는지를 확인 서버로(140)로 제공할 수 있다. 식별 서버들(150) 각각은 2진수의 각 자리에 기설정되기 때문에 식별 서버들(150)의 수가 클라이언트를 식별할 수 있는 최대값을 결정할 수 있다. 즉, 2n으로 식별값의 최대값이 결정되고 이때, n이 식별 서버들(150)의 수가된다.
확인 서버(140)는 클라이언트의 식별값이 존재하는지 확인하고, 식별 서버들(150)의 요청에 응답하고, 데이터베이스 서버(160)와 통신하여 할당할 식별값을 확인하고, 로그 기록을 데이터베이스 서버(160)에 저장할 수 있다.
데이터베이스 서버(160)는 할당된 식별값을 관리하고, 클라이언트의 로그 기록을 저장할 수 있다. 이때, 로그 기록은 클라이언트의 식별값과 클라이언트가 접속한 시간 정보를 포함할 수 있다.
도 2는 일 실시 예에 따른 식별 시스템에서 최초 접속한 클라이언트에게 식별값을 할당하고, 로그 기록을 저장할 때의 메시지 흐름을 도시한 도면이다.
도 2를 참조하면, 관리 서버(110)에서 트래픽을 모니터링하여 클라이언트의 접속을 관리 서버(110)에서 관리하는 클라이언트의 식별값이 존재하는지 확인하는 파일에 해당하는 home.html(102)에 리다이렉트 하면, 클라이언트는 home.html(102)를 통해서 확인 서버(140)에 접속하여 https 접속 여부를 요청할 수 있다(210).
이때, home.html(102)는 아래 도 4와 같이 구성될 수 있다.
도 4는 일 실시 예에 따라 클라이언트의 식별값이 존재하는지 확인하는 파일의 일 예를 도시한 도면이다.
도 4를 참조하면, "check.soosan.com"를 http 프로토콜로 호출함을 확인할 수 있습니다.
"check.soosan.com"는 확인 서버(140)의 주소의 예로서 home.html(102)는 http로 확인 서버(140)를 호출함을 확인할 수 있다.
확인 서버(140)는 https 접속 여부를 요청 받으면, https 여부를 응답할 때, 응답 헤더에 HSTS 정보를 삽입함으로써, 클라이언트의 HSTS 리스트에 해당 https의 주소를 저장하도록 할 수 있다.
따라서, 최초 접속하는 클라이언트는 home.html(102)와 같이 http로 확인 서버(140)를 호출하고, 접속한 적이 있는 클라이언트는 https로 호출하게 된다.
최초 접속한 클라이언트의 경우 식별값이 존재하지 않고, 식별값이 존재하지 않으면, 식별값을 부여하게 됨으로, 관리 서버(110)는 확인 서버(140)로부터 수신하는 https 여부에 관한 응답(212)을 통해서 클라이언트의 식별값이 존재하는지 여부를 확인할 수 있다.
관리 서버(110)는 클라이언트의 식별값이 존재하지 않으면, 클라이언트의 식별값을 등록하는 파일에 해당하는 drop_token.html(104) 페이지를 이동하고(214), drop_token.html(104)을 통해서 확인 서버(140)에 접속하여 할당되지 않은 식별값을 요청한다(216).
확인 서버(140)는 식별값의 할당을 요청 받으면, 데이터베이스 서버(160)로 마지막 식별값의 확인을 요청하고(218), 데이터베이스 서버(160)로부터 마지막 식별값 보다 "1" 큰 새로운 식별값을 응답 받는다(220).
확인 서버(140)는 데이터베이스 서버(160)로부터 응답받은 새로운 식별값을 관리 서버(110)로 회신하여 클라이언트의 식별값을 할당할 수 있다(222).
관리 서버(110)는 drop_token.html(104)을 통해서 할당 받은 식별값에 대응하는 식별 서버를 HTTPS로 호출한다(224). 이때, 관리 서버(110)는 할당 받은 식별값을 이진수로 변경하고 이진수로 변경된 식별값에서 "1"이 위치하는 자리에 대응하는 기설정된 식별 서버를 할당 받은 식별값에 대응하는 식별 서버로 확인할 수 있다.
이때, drop_token.html(104)에서 할당 받은 식별값에 대응하는 식별 서버를 HTTPS로 호출하는 구성은 아래 도 5와 같이 구성될 수 있다.
도 5는 일 실시 예에 따라 클라이언트의 식별값을 등록하는 파일의 일 예를 도시한 도면이다.
도 5를 참조하면, 2진수 다섯자리로 표현되는 식별값을 식별할 수 있는 5개의 식별 서버로 구성된 경우, 식별 서버들은 다음과 같은 예로 "a.soosan.com", "b.soosan.com", "c.soosan.com", "d.soosan.com", "e.soosan.com"로 구성될 수 있다.
2진수로 변경한 식별값이 "10101"이면, "1"에 대응하는 기설정된 식별 서버(a.soosan.com", "c.soosan.com", "e.soosan.com")를 https 프로토콜로 호출함으로써, 클라이언트의 브라우저의 HSTS 리스트에 해당 식별 서버의 주소를 저장할 수 있도록 할 수 있다.
HTTPS로 호출받은 식별 서버는 클라이언트의 브라우저의 HSTS 리스트에 해당 식별 서버를 저장하기 위해서 확인 서버(140)로 HSTS를 요청한다(226).
확인 서버(140)는 HSTS를 요청 받으면, 응답 헤더에 HSTS 정보를 삽입하여 HSTS를 요청한 식별 서버로 제공하고(228), HSTS를 요청한 식별 서버는 HSTS 정보가 삽입된 응답 정보를 관리 서버(110)로 송신한다(230).
HSTS 정보를 응답 헤더에 삽입하는 방법은 Strict-Transport-Security 필드를 응답 헤더에 추가함으로 달성할 수 있다. 이때, Strict-Transport-Security 필드는 max-age, includeSubDomains 및 preload를 포함할 수 있다. 여기서, max-age는 만료기간을 설정하는 정보이고, includeSubDomains는 해당 서버의 모든 하위 도메인은 https로 구성되어있음 나타내는 정보이고, prelaod는 브라우저가 이 설정을 기억하여 http 접속 시 바로 https로 접속하도록 하는 정보이다.
한편, 확인 서버(140)는 일정 시간 마다 식별값을 초기화하기 위해서 Strict-Transport-Security 필드의 만료시간에 해당하는 max-age를 기설정된 시간에 만료되도록 설정할 수 있다. 예를 들어서, 확인 서버(140)는 그날의 자정에 식별값을 초기화 하기 위해서 자정에 만료시간이 종료되도록 max-age를 설정할 수 있다.
관리 서버(110)는 HTTPS로 호출받은 식별 서버로부터 HSTS 정보가 삽입된 응답 정보를 수신하면, 로그를 기록하는 파일에 해당하는 UpdateTime.html(108)로 페이지를 이동하고(232), UpdateTime.html(108)을 통해서 클라이언트의 식별값과 클라이언트가 접속한 시간 정보를 포함하는 로그 기록을 저장하는 요청을 확인 서버(140)로 송신한다(234). 이때, drop_token.html(104)에 접속한 클라이언트는 응답 헤더에 포함된 HSTS 정보로 인해서 브라우저의 HSTS 리스트에 HTTPS로 호출받은 식별 서버의 주소를 저장한다.
확인 서버(140)는 UpdateTime.html(108)을 통해서 로그 기록의 저장을 요청 받으면, 데이터베이스 서버(160)로 로그 기록의 저장을 요청한다(236).
확인 서버(140)는 데이터베이스 서버(160)로부터 로그 기록이 저장되었음을 응답 받으면(238), 확인 서버(140)에서 관리 서버(110)로 로그 기록이 저장되었음을 응답한다(240).
이후, 관리 서버(110)는 클라이언트를 저장된 원래 주소로 리다이렉트 하도록 할 수 있다.
도 3은 일 실시 예에 따른 식별 시스템에서 접속 이력이 있는 클라이언트의 식별값을 확인하고, 로그 기록을 저장할 때의 메시지 흐름을 도시한 도면이다.
도 3을 참조하면, 관리 서버(110)에서 트래픽을 모니터링하여 클라이언트의 접속을 관리 서버(110)에서 관리하는 클라이언트의 식별값이 존재하는지 확인하는 파일에 해당하는 home.html(102)에 리다이렉트 하면, 클라이언트는 home.html(102)를 통해서 확인 서버(140)에 접속하여 https 접속 여부를 요청할 수 있다(310).
이때, home.html(102)는 상술한 도 4와 같이 구성될 수 있다.
즉, home.html(102)는 http로 확인 서버(140)를 호출함을 확인할 수 있다.
확인 서버(140)는 https 접속 여부를 요청 받으면, https 여부를 응답할 때, 응답 헤더에 HSTS 정보를 삽입함으로써, 클라이언트의 HSTS 리스트에 해당 https의 주소를 저장하도록 할 수 있다.
따라서, 최초 접속하는 클라이언트는 home.html(102)와 같이 http로 확인 서버(140)를 호출하고, 접속한 적이 있는 클라이언트는 https로 호출하게 된다.
최초 접속한 클라이언트의 경우 식별값이 존재하지 않고, 식별값이 존재하지 않으면, 식별값을 부여하게 됨으로, 관리 서버(110)는 확인 서버(140)로부터 수신하는 https 여부에 관한 응답(312)을 통해서 클라이언트의 식별값이 존재하는지 여부를 확인할 수 있다.
관리 서버(110)는 클라이언트의 식별값이 존재하면, 클라이언트의 식별값을 읽어오는 파일에 해당하는 read_token.html(106) 페이지를 이동하고(314), read_token.html(106)을 통해서 모든 식별 서버들(150)을 HTTP로 호출한다(316). 이때, 클라이언트의 브라우저의 HSTS 리스트에 식별 서버의 주소가 저장된 경우, HTTP로 호출하였어도 HTTPS로 변경되어 호출하게 된다.
이때, read_token.html(106)는 아래 도 6과 같이 구성될 수 있다.
도 6은 일 실시 예에 따라 클라이언트의 식별값을 읽어오는 파일의 일 예를 도시한 도면이다.
도 6을 참조하면, 2진수 5자리로 표현되는 식별값을 식별할 수 있는 5개의 식별 서버로 구성된 경우, 식별 서버는 다음과 같은 예로 "a.soosan.com", "b.soosan.com", "c.soosan.com", "d.soosan.com", "e.soosan.com"로 구성될 수 있다.
read_token.html(106)는 모든 식별 서버들을 http 프로토콜로 호출함을 확인할 수 있다.
하지만, 도 5와 같이 클라이언트의 식별값을 등록한 경우, 클라이언트의 브라우저의 HSTS 리스트에는 "a.soosan.com", "c.soosan.com", "e.soosan.com"의 https의 주소가 저장되어 있으므로, HSTS 정책에 따라서 "a.soosan.com", "c.soosan.com", "e.soosan.com"로는 http 프로토콜이 아닌 https 프로토콜로 변경되어 호출하게 된다.
모든 식별 서버들(150) 각각은 클라이언트의 브라우저가 read_token.html(106)를 통해서HTTP로 호출하였는지 HTTPS로 호출하였는지 확인 서버(140)로 확인을 요청한다(318).
확인 서버(140)는 요청된 유알엘을 확인하여 클라이언트의 브라우저가 HTTP로 호출하였는지 HTTPS로 호출하였는지 확인하고, 확인결과를 모든 식별 서버 각각으로 응답한다(320).
모든 식별 서버들(150) 각각은 HTTP의 호출인지 HTTPS의 호출인지의 확인결과를 관리 서버(110)로 응답한다(322).
관리 서버(110)는 모든 식별 서버 각각에 대응하는 확인결과를 응답 받으면, HTTPS로 호출한 식별 서버의 조합에 대응하는 식별값을 클라이언트의 식별값으로 확인한다. 이때, 클라이언트의 식별값 확인은 모든 식별 서버 각각에 대응하는 기설정된 2진수 자리를 확인하고, HTTP의 호출을 "0"으로 판단하고, HTTPS의 호출을 "1"로 판단하여 2진수의 식별값을 생성하고, 2진수의 식별값을 10진수의 식별값으로 변경하고, 10진수의 식별값을 클라이언트의 식별값으로 확인할 수 있다.
이후, 관리 서버(110)는 로그를 기록하는 파일에 해당하는 UpdateTime.html(108)로 페이지를 이동하고(324), UpdateTime.html(108)을 통해서 클라이언트의 식별값과 클라이언트가 접속한 시간 정보를 포함하는 로그 기록을 저장하는 요청을 확인 서버(140)로 송신한다(326).
확인 서버(140)는 UpdateTime.html(108)을 통해서 로그 기록의 저장을 요청 받으면, 데이터베이스 서버(160)로 로그 기록의 저장을 요청한다(328).
확인 서버(140)는 데이터베이스 서버(160)로부터 로그 기록이 저장되었음을 응답 받으면(330), 확인 서버(140)에서 관리 서버(110)로 로그 기록이 저장되었음을 응답한다(332).
이후, 관리 서버(110)는 클라이언트를 저장된 원래 주소로 리다이렉트 하도록 할 수 있다.
도 7은 일 실시 예에 따라 HSTS를 이용해서 클라이언트를 식별하는 개략적인 과정을 도시한 흐름도이다.
도 7을 참조하면, 관리 서버(110)에서 트래픽을 모니터링하여 클라이언트의 접속을 관리 서버(110)에서 관리하는 페이지로 리다이렉트 한다(710).
그리고, 관리 서버(110)에서 클라이언트가 접속하려고 했던 원래 주소를 저장한다(720).
이때, 관리 서버(110)는 원래 주소에 해당하는 유알엘(URL; Uniform Resource Locator)을 Base64로 인코딩하여 저장할 수 있다. URL을 Base64로 인코딩하는 것은 URL 내의 특수문자를 처리하기 위해서 이다.
관리 서버(110)에서 클라이언트의 식별값이 존재하는지 확인하는 파일을 통해서 확인 서버(140)에 접속하도록 하여 확인 서버(140)로부터 클라이언트의 식별값이 존재하는지 여부를 확인한다(730).
730단계의 확인결과 클라이언트의 식별값이 존재하지 않으면, 관리 서버(110)에서 확인 서버(140)를 통해서 클라이언트의 식별값을 할당 받고, 식별 서버들(150)과 HSTS(HTTP Strict Transport Security)를 이용해서 클라이언트의 식별값을 등록한다(740).
730단계의 확인결과 클라이언트의 식별값이 존재하면, 식별 서버들(150)과 HSTS(HTTP Strict Transport Security)를 이용해서 클라이언트의 식별값을 확인한다(750).
740단계 또는 750단계 이후 관리 서버(110)에서 확인 서버(140)를 통해서 클라이언트의 식별값과 클라이언트가 접속한 시간 정보를 포함하는 로그 기록을 데이터베이스 서버(160)에 저장한다(760).
로그 기록의 저장이 완료되면, 관리 서버(110)에서 클라이언트를 저장된 원래 주소로 리다이렉트 한다(770).
도 8은 일 실시 예에 따라 클라이언트의 식별값을 할당 받고 HSTS를 이용해서 클라이언트의 식별값을 등록하는 과정을 도시한 흐름도이다.
도 8을 참조하면, 관리 서버(110)에서 확인 서버(140)로 클라이언트에 식별값의 할당을 요청한다(810).
그리고, 확인 서버(140)에서 클라이언트의 식별값을 할당하여 관리 서버(110)로 제공한다(812). 이때, 확인 서버(140)는 데이터베이스 서버(160)를 통해서 저장된 가장 큰 식별값 보다 "1"만큼 큰 식별값을 수신하여 클라이언트의 식별값으로 할당할 수 있다.
관리 서버(110)에서 식별값을 등록하는 파일을 통해서 식별 서버들(150) 중에서 할당 받은 식별값에 대응하는 식별 서버를 HTTPS로 호출한다(814).
이때, 할당 받은 식별값에 대응하는 식별 서버는 할당 받은 식별값을 이진수로 변경했을 때, 이진수로 변경된 식별값에서 "1"이 위치하는 자리에 기설정된 식별 서버를 나타낼 수 있다.
HTTPS로 호출받은 식별 서버에서 클라이언트의 브라우저의 HSTS 리스트에 해당 식별 서버를 저장하기 위해서 확인 서버(140)로 HSTS를 요청한다(816).
확인 서버(140)에서 HSTS를 요청 받으면, 응답 헤더에 HSTS 정보를 삽입하여 HSTS를 요청한 식별 서버로 제공한다(818). 이때, 확인 서버(140)는 Strict-Transport-Security 필드의 만료시간에 해당하는 max-age를 기설정된 시간에 만료되도록 설정할 수 있다.
HTTPS로 호출받은 식별 서버(HSTS를 요청한 식별 서버)에서 HSTS 정보가 삽입된 응답 정보를 관리 서버(110)로 송신한다(820).
관리 서버(110)에서 HSTS를 요청한 식별 서버로부터 HSTS 정보가 삽입된 응답 정보를 수신하면, 식별값을 등록하는 파일에 접속한 클라이언트는 브라우저의 HSTS 리스트에 HTTPS로 호출받은 식별 서버의 주소를 저장한다(822).
도 9는 일 실시 예에 따라 HSTS를 이용해서 클라이언트의 식별값을 확인하는 과정을 도시한 흐름도이다.
도 9를 참조하면, 관리 서버(110)에서 식별값을 읽어오는 파일을 통해서 모든 식별 서버들을 HTTP로 호출한다(910). 이때, 관리 서버(110)에서 모든 식별 서버들을 HTTP로 호출한다 하더라도, 클라이언트의 브라우저의 HSTS 리스트에 식별 서버의 주소가 저장된 경우에는 HTTP로 호출하였어도 HTTPS로 변경되어 호출하게 된다.
HSTS 리스트에 저장된 식별 서버로는 HTTPS로 호출하고, 그렇지 않은 식별 서버로는 HTTP로 호출한다(910).
모든 식별 서버들(150) 각각에서 확인 서버(140)로 클라이언트의 브라우저가 HTTP로 호출하였는지 HTTPS로 호출하였는지 확인을 요청한다(912).
확인 서버(140)에서 요청된 유알엘을 확인하여 클라이언트의 브라우저가 HTTP로 호출하였는지 HTTPS로 호출하였는지 확인한다(914).
확인 서버(140)에서 모든 식별 서버 각각으로 HTTP의 호출인지 HTTPS의 호출인지의 914단계에서 확인결과를 응답한다(916).
모든 식별 서버 각각에서 HTTP의 호출인지 HTTPS의 호출인지의 확인결과를 관리 서버(110)로 응답한다(918).
관리 서버(110)에서 모든 식별 서버 각각에 대응하는 확인결과를 응답 받으면, HTTPS로 호출한 식별 서버의 조합에 대응하는 식별값을 클라이언트의 식별값으로 확인한다(920). 이때, 클라이언트의 식별값 확인은 모든 식별 서버 각각에 대응하는 기설정된 2진수 자리를 확인하고, HTTP의 호출을 "0"으로 판단하고, HTTPS의 호출을 "1"로 판단하여 2진수의 식별값을 생성하고, 2진수의 식별값을 10진수의 식별값으로 변경하고, 10진수의 식별값을 클라이언트의 식별값으로 확인할 수 있다.
도 10은 일 실시 예에 따라 로그 기록을 데이터베이스에 저장하는 과정을 도시한 흐름도이다.
도 10을 참조하면, 관리 서버(110)에서 로그를 기록하는 파일을 통해서 확인 서버(140)로 로그 기록의 저장을 요청한다.
확인 서버(140)에서 로그 기록의 저장을 요청 받으면, 데이터베이스 서버(160)에 요청받은 로그 기록을 저장한다.
확인 서버(140)에서 데이터베이스 서버(160)로부터 로그 기록이 저장되었음을 응답 받으면, 확인 서버(140)에서 관리 서버(110)로 로그 기록이 저장되었음을 응답한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 실시 예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100; 인터넷
110; 관리 서버
122, 124, 126; 클라이언트
130; 공유기
140; 확인 서버
150; 식별 서버들
151, 152, 153; 식별 서버
160; 데이터베이스 서버

Claims (12)

  1. 트래픽을 모니터링하여 클라이언트의 접속을 관리 서버로 리다이렉트하는 단계;
    상기 관리 서버에서 상기 클라이언트가 접속하려고 했던 원래 주소를 저장하는 단계;
    상기 관리 서버에서 상기 클라이언트의 식별값이 존재하는지 확인하는 파일을 통해서 확인 서버에 접속하도록 하여 상기 확인 서버로부터 상기 클라이언트의 식별값이 존재하는지 여부를 확인하는 단계;
    상기 확인 서버의 확인결과 상기 클라이언트의 식별값이 존재하지 않으면, 상기 관리 서버에서 상기 확인 서버를 통해서 상기 클라이언트의 식별값을 할당 받고, 식별 서버들과 HSTS(HTTP Strict Transport Security)를 이용해서 상기 클라이언트의 식별값을 등록하는 단계;
    상기 관리 서버에서 상기 확인 서버를 통해서 상기 클라이언트의 식별값과 상기 클라이언트가 접속한 시간 정보를 포함하는 로그 기록을 데이터베이스 서버에 저장하는 단계; 및
    상기 관리 서버에서 상기 클라이언트를 상기 저장된 원래 주소로 리다이렉트하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  2. 제1항에 있어서,
    상기 클라이언트의 식별값을 등록하는 단계는,
    상기 관리 서버에서 상기 확인 서버로 상기 클라이언트에 식별값의 할당을 요청하고, 상기 확인 서버로부터 식별값을 할당 받는 단계;
    상기 관리 서버에서 식별값을 등록하는 파일을 통해서 상기 식별 서버들 중에서 상기 할당 받은 식별값에 대응하는 식별 서버를 HTTPS로 호출하는 단계;
    HTTPS로 호출받은 식별 서버에서 상기 클라이언트의 브라우저의 HSTS 리스트에 해당 식별 서버를 저장하기 위해서 상기 확인 서버로 HSTS를 요청하는 단계;
    상기 확인 서버에서 HSTS를 요청 받으면, 응답 헤더에 HSTS 정보를 삽입하여 HSTS를 요청한 식별 서버로 제공하는 단계;
    상기 HSTS를 요청한 식별 서버에서 HSTS 정보가 삽입된 응답 정보를 상기 관리 서버로 송신하는 단계; 및
    상기 관리 서버에서 상기 HSTS를 요청한 식별 서버로부터 HSTS 정보가 삽입된 응답 정보를 수신하면, 상기 식별값을 등록하는 파일에 접속한 상기 클라이언트에서 상기 클라이언트의 브라우저의 HSTS 리스트에 HTTPS로 호출받은 식별 서버의 HTTPS의 주소를 저장하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  3. 제2항에 있어서,
    상기 할당 받은 식별값에 대응하는 식별 서버를 HTTPS로 호출하는 단계는,
    상기 할당 받은 식별값을 이진수로 변경하는 단계;
    이진수로 변경된 식별값에서 "1"이 위치하는 자리에 대응하는 식별 서버를 확인하는 단계; 및
    상기 확인된 식별 서버를 HTTPS로 호출하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  4. 제2항에 있어서,
    상기 확인 서버에서 HSTS를 요청 받으면, 응답 헤더에 HSTS 정보를 삽입하여 HSTS를 요청한 식별 서버로 제공하는 단계는,
    Strict-Transport-Security 필드의 만료시간에 해당하는 max-age를 기설정된 시간에 만료되도록 설정하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  5. 제1항에 있어서,
    상기 로그 기록을 데이터베이스 서버에 저장하는 단계는,
    상기 관리 서버에서 로그를 기록하는 파일을 통해서 상기 확인 서버로 상기 로그 기록의 저장을 요청하는 단계;
    상기 확인 서버에서 상기 로그 기록의 저장을 요청 받으면, 데이터베이스 서버에 요청받은 상기 로그 기록을 저장하는 단계; 및
    상기 확인 서버에서 상기 데이터베이스 서버로부터 상기 로그 기록이 저장되었음을 응답 받으면, 상기 관리 서버로 상기 로그 기록이 저장되었음을 응답하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  6. 제1항에 있어서,
    상기 원래 주소를 저장하는 단계는,
    상기 원래 주소에 해당하는 유알엘(URL; Uniform Resource Locator)을 Base64로 인코딩하여 저장하는
    클라이언트를 식별하는 방법.
  7. 트래픽을 모니터링하여 클라이언트의 접속을 관리 서버로 리다이렉트하는 단계;
    상기 관리 서버에서 상기 클라이언트가 접속하려고 했던 원래 주소를 저장하는 단계;
    상기 관리 서버에서 상기 클라이언트의 식별값이 존재하는지 확인하는 파일을 통해서 확인 서버에 접속하도록 하여 상기 확인 서버로부터 상기 클라이언트의 식별값이 존재하는지 여부를 확인하는 단계;
    상기 확인 서버의 확인결과 상기 클라이언트의 식별값이 존재하면, 식별 서버들과 HSTS(HTTP Strict Transport Security)를 이용해서 상기 클라이언트의 식별값을 확인하는 단계;
    상기 관리 서버에서 상기 확인 서버를 통해서 상기 클라이언트의 식별값과 상기 클라이언트가 접속한 시간 정보를 포함하는 로그 기록을 데이터베이스 서버에 저장하는 단계; 및
    상기 관리 서버에서 상기 클라이언트를 상기 저장된 원래 주소로 리다이렉트하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  8. 제7항에 있어서,
    상기 클라이언트의 식별값을 확인하는 단계는,
    상기 관리 서버에서 식별값을 읽어오는 파일을 통해서 모든 식별 서버들을 HTTP로 호출하는 단계;
    상기 모든 식별 서버들 각각에서 상기 확인 서버로 상기 클라이언트의 브라우저가 HTTP로 호출하였는지 HTTPS로 호출하였는지 확인을 요청하는 단계;
    상기 확인 서버에서 요청된 유알엘을 확인하여 상기 클라이언트의 브라우저가 HTTP로 호출하였는지 HTTPS로 호출하였는지 확인하고, 상기 모든 식별 서버 각각으로 HTTP의 호출인지 HTTPS의 호출인지의 확인결과를 응답하는 단계;
    상기 모든 식별 서버 각각에서 HTTP의 호출인지 HTTPS의 호출인지의 확인결과를 상기 관리 서버로 응답하는 단계; 및
    상기 관리 서버에서 상기 모든 식별 서버 각각에 대응하는 확인결과를 응답 받으면, HTTPS로 호출한 식별 서버의 조합에 대응하는 식별값을 상기 클라이언트의 식별값으로 확인하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  9. 제8항에 있어서,
    상기 HTTPS로 호출한 식별 서버의 조합에 대응하는 식별값을 상기 클라이언트의 식별값으로 확인하는 단계는,
    상기 모든 식별 서버 각각에 대응하는 기설정된 2진수 자리를 확인하고, HTTP의 호출을 "0"으로 판단하고, HTTPS의 호출을 "1"로 판단하여 2진수의 식별값을 생성하는 단계; 및
    상기 2진수의 식별값을 10진수의 식별값으로 변경하고, 상기 10진수의 식별값을 상기 클라이언트의 식별값으로 확인하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  10. 제8항에 있어서,
    상기 관리 서버에서 식별값을 읽어오는 파일을 통해서 식별 서버들을 HTTP로 호출하는 단계는,
    상기 클라이언트의 브라우저의 HSTS 리스트에 HTTPS 주소가 저장된 식별 서버로는 HTTP로 호출하는 대신에 HTTPS로 호출하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  11. 제7항에 있어서,
    상기 로그 기록을 데이터베이스 서버에 저장하는 단계는,
    상기 클라이언트의 식별값이 확인되면, 상기 관리 서버에서 로그를 기록하는 파일을 통해서 상기 확인 서버로 상기 클라이언트의 식별값과 식별된 시간 정보를 저장하는 로그 기록을 요청하는 단계;
    상기 확인 서버에서 로그 기록을 요청 받으면, 데이터베이스 서버에 요청받은 로그 기록을 저장하는 단계; 및
    상기 확인 서버에서 상기 데이터베이스 서버로부터 로그 기록이 저장되었음을 응답 받으면, 상기 관리 서버로 로그 기록이 저장되었음을 응답하는 단계
    를 포함하는 클라이언트를 식별하는 방법.
  12. 제1항 내지 제11항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020180026042A 2018-03-05 2018-03-05 Hsts를 이용해서 클라이언트를 식별하는 방법 KR102040174B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180026042A KR102040174B1 (ko) 2018-03-05 2018-03-05 Hsts를 이용해서 클라이언트를 식별하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180026042A KR102040174B1 (ko) 2018-03-05 2018-03-05 Hsts를 이용해서 클라이언트를 식별하는 방법

Publications (2)

Publication Number Publication Date
KR20190105463A KR20190105463A (ko) 2019-09-17
KR102040174B1 true KR102040174B1 (ko) 2019-11-05

Family

ID=68070256

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180026042A KR102040174B1 (ko) 2018-03-05 2018-03-05 Hsts를 이용해서 클라이언트를 식별하는 방법

Country Status (1)

Country Link
KR (1) KR102040174B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110958316A (zh) * 2019-11-29 2020-04-03 北京丁牛科技有限公司 一种历史记录获取方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006523412A (ja) * 2003-03-14 2006-10-12 トムソン ライセンシング 公共のホット・スポットにおけるクライアント端末の自動設定
US8272037B2 (en) * 2003-03-14 2012-09-18 Thomson Licensing Flexible WLAN access point architecture capable of accommodating different user devices
KR100960152B1 (ko) 2007-10-24 2010-05-28 플러스기술주식회사 네트워크상의 복수 단말을 검출하여 인터넷을 허용 및차단하는 방법
KR20100003096A (ko) * 2008-06-30 2010-01-07 주식회사 케이티 사용자 중심의 인터넷 서버간 동적 신뢰 관계 형성 방법과이를 이용한 사용자 아이덴터티 정보 관리 방법

Also Published As

Publication number Publication date
KR20190105463A (ko) 2019-09-17

Similar Documents

Publication Publication Date Title
WO2020199598A1 (zh) 区块链节点管理方法、电子装置、系统及可读存储介质
CN105007280B (zh) 一种应用登录方法和装置
US9027089B2 (en) Method and system for providing internet services
US10476733B2 (en) Single sign-on system and single sign-on method
US20190306148A1 (en) Method for oauth service through blockchain network, and terminal and server using the same
US10595320B2 (en) Delegating policy through manufacturer usage descriptions
CN107992771B (zh) 一种数据脱敏方法和装置
JP6572750B2 (ja) 認証制御プログラム、認証制御装置、及び認証制御方法
US11570203B2 (en) Edge network-based account protection service
US11818149B2 (en) Content delivery network (CDN) edge server-based bot detection with session cookie support handling
US8346967B2 (en) Management of redirection
CN116830528A (zh) 利用域名服务和单点登录服务的加密网络流量的选择性策略驱动拦截
KR20140112643A (ko) 이종 서비스 간 서비스 제공 방법과 사용자 단말 및 웹 서버
KR102040174B1 (ko) Hsts를 이용해서 클라이언트를 식별하는 방법
KR101622876B1 (ko) 사이트 접속 차단 방법 및 장치
US11463429B2 (en) Network controls for application access secured by transport layer security (TLS) using single sign on (SSO) flow
CN107172038B (zh) 一种用于提供安全服务的信息处理方法、平台、组件及系统
CN110049106B (zh) 业务请求处理系统及方法
US11848960B2 (en) Content delivery network (CDN)-based bot detection service with stop and reset protocols
JP2010282351A (ja) Webサーバシステムへのログイン制限方法
JP4617898B2 (ja) アクセス制御方式および方法、サーバ装置、端末装置ならびにプログラム
US11323426B2 (en) Method to identify users behind a shared VPN tunnel
EP4322503A1 (en) Identification of a computing device during authentication
US11838328B1 (en) Preventing data exfiltration to unsanctioned cloud computing services (CCS) accounts using CCS application programming interfaces
CN113489726B (zh) 流量限制方法及设备

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