KR101109563B1 - Apparatus and method for guranteeing internet service - Google Patents

Apparatus and method for guranteeing internet service Download PDF

Info

Publication number
KR101109563B1
KR101109563B1 KR1020100061277A KR20100061277A KR101109563B1 KR 101109563 B1 KR101109563 B1 KR 101109563B1 KR 1020100061277 A KR1020100061277 A KR 1020100061277A KR 20100061277 A KR20100061277 A KR 20100061277A KR 101109563 B1 KR101109563 B1 KR 101109563B1
Authority
KR
South Korea
Prior art keywords
user
service
normal
turing test
server
Prior art date
Application number
KR1020100061277A
Other languages
Korean (ko)
Other versions
KR20120000812A (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 KR1020100061277A priority Critical patent/KR101109563B1/en
Publication of KR20120000812A publication Critical patent/KR20120000812A/en
Application granted granted Critical
Publication of KR101109563B1 publication Critical patent/KR101109563B1/en

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/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
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Abstract

인터넷 서비스 보장 장치 및 방법이 개시된다. 정상 사용자에게만 대기 우선순위에 따라 서비스를 제공하여 정상적인 인터넷 서비스를 보장하기 위한 인터넷 서비스 보장 장치는 반전 튜링 테스트 검증부, 사용자 대기 관리부, 및 서비스 제공부를 포함한다.
반전 튜링 테스트 검증부는 TCP 연결이 확립된 사용자에게 반전 튜링 테스트 정보를 전송하고, 사용자로부터 반전 튜링 테스트 정보에 대한 정상 응답이 수신될 경우, 사용자를 정상 사용자로 인증하는 인증 쿠키를 사용자에게 전송하며, 사용자 대기 관리부는 정상 사용자에 의해 서버의 서비스 부하 상태일 경우, 인증 쿠키를 이용하여 정상 사용자의 대기 우선순위를 설정하고, 서비스 제공부는 정상 사용자가 서비스를 재요청할 경우, 대기 우선순위에 따라 서비스를 제공한다.
이로 인해, 정상 사용자를 모방하는 Bot 기반의 분산서비스거부(DDoS) 공격 발생시뿐만 아니라 정상 사용자에 의한 트래픽 폭주(Flash Crowd) 발생시에도 정상적인 인터넷 서비스를 보장할 수 있다.
An apparatus and method for guaranteeing Internet service are disclosed. An Internet service guarantee apparatus for providing a service according to a standby priority only to a normal user to guarantee normal Internet service includes a reverse turing test verification unit, a user standby manager, and a service provider.
The inverse Turing test verifier transmits inverse Turing test information to a user who has established a TCP connection, and when a normal response to the inverse Turing test information is received from the user, transmits an authentication cookie for authenticating the user as a normal user to the user. The user standby management unit sets the standby priority of the normal user by using the authentication cookie when the normal user is under service load of the server, and the service provider sets the service according to the standby priority when the normal user re-requests the service. to provide.
As a result, a normal Internet service can be guaranteed not only when a Bot-based distributed denial of service (DDoS) attack that mimics a normal user but also when a flash crowd occurs by a normal user.

Description

인터넷 서비스 보장 장치 및 방법{Apparatus and method for guranteeing internet service}Apparatus and method for guranteeing internet service}

본 발명은 인터넷 서비스 보장 장치 및 방법에 관한 것으로, 보다 상세하게는 정상 사용자에게만 대기 우선순위에 따라 서비스를 제공하여 정상적인 인터넷 서비스를 보장하기 위한 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and a method for guaranteeing an Internet service, and more particularly, to an apparatus and a method for guaranteeing normal Internet service by providing a service according to a standby priority only to a normal user.

오늘날 모든 기업들은 인터넷 및 네트워크에 의존하여 비즈니스를 영위하고 있으며, 비즈니스 환경은 높은 수준의 인터넷 및 네트워크의 신뢰성, 안정성, 고성능을 요구하고 있다. 특히, 인터넷 포탈, 인터넷 쇼핑몰, 인터넷 뱅킹, 인터넷 입찰 및 구매 시스템, 인터넷 접수 등 대다수의 기업에서 사용하는 인터넷 서비스의 경우에는 인터넷 의존도가 절대적이며, 안정적인 인터넷 서비스의 제공이 곧 기업의 비즈니스 활동과 직결되고 있다. Today, all businesses depend on the Internet and networks to do business, and business environments demand high levels of reliability, reliability, and high performance from the Internet and networks. In particular, Internet service, which is used by most companies such as internet portals, internet shopping malls, internet banking, internet bidding and purchasing systems, and internet reception, is absolutely dependent on the Internet. Providing stable Internet service is directly related to the business activities of the company. It is becoming.

이러한 안정적인 인터넷 서비스의 가장 큰 장애요인은 분산서비스거부(DDoS) 공격과 특정 사이트에 정상 사용자가 몰리는 트래픽 폭주 현상(Flash Crowd)으로 구분할 수 있다.The biggest obstacles to such stable Internet services can be divided into distributed denial of service (DDoS) attacks and flash crowds where normal users are concentrated on specific sites.

Bot에 의한 DDoS 공격은 Bot에 감염된 수많은 PC들이 사용되는데, PC들은 이메일의 악성 첨부파일, 파일 다운로드, 웹 서핑, 웜(worm) 등 다양한 경로로 Bot에 감염되며, 감염된 PC들은 모두 Botmaster의 조종을 받아 DDoS, 스팸 발송, 키보드 로깅 등 어떠한 명령이라도 수행하게 된다. 1990년대부터 2009년 77 DDoS 대란에 이르기까지 분산서비스거부(DDoS) 공격은 사이버 위협 종류 중에서 악성코드 다음으로 피해가 큰 위협이 되고 있다. DDoS attacks by Bot are used by numerous PCs infected with Bot, which are infected by Bot through various paths such as malicious attachments of emails, file downloads, web surfing, and worms. It will execute any command such as DDoS, spamming, keyboard logging, etc. From the 1990s to the 77 DDoS turbulence of 2009, distributed denial of service (DDoS) attacks are the most serious threats after malicious code among cyber threat types.

이러한 공격에 의한 피해를 줄이기 위해 다양한 보안 벤더에서 각종 DDoS 공격 방어 장치(Anti-DDoS 솔루션)들을 출시하여 많은 종류의 분산 서비스 거부(DDoS) 공격으로부터 서비스를 보호할 수 있게 되었으나, 최근의 분산 서비스 거부(DDoS) 공격은 기존 Anti-DDoS 장비들의 방어 메커니즘을 우회할 수 있는 정상 사용자를 흉내 내는 애플리케이션 수준의 공격을 수행함으로써, 탐지 및 방어가 불가능하다. To reduce the damage caused by these attacks, various security vendors have released various DDoS attack defense devices (Anti-DDoS solutions) to protect the service from many kinds of distributed denial of service (DDoS) attacks. (DDoS) attacks are application-level attacks that mimic normal users who can bypass the defense mechanisms of existing Anti-DDoS devices, making them impossible to detect and defend.

즉, 최근의 Bot에 의한 DDoS 공격은 정상 사용자와의 구분이 기술적으로 불가능하게 감행됨으로써 서버의 CPU 및 메모리를 효과적으로 고갈시키므로 기존의 Anti-DDoS 솔루션으로도 방어가 불가능하며, 이러한 공격이 발생할 경우, 정상적인 인터넷 서비스는 매우 어려워지게 된다. In other words, the recent DDoS attack by Bot effectively depletes the server's CPU and memory by technically impossible to distinguish from normal users, so even the existing Anti-DDoS solution cannot be defended. Normal Internet service becomes very difficult.

또한, 기존 DDoS 공격 방어 장치들은 분산서비스거부(DDoS) 공격을 방어하기 위한 장비이므로, 사용자가 특정 사이트에 몰리는 트래픽 폭주 현상(Flash Crowd)이 발생할 경우, 어떠한 서비스 보호 기능도 제공할 수 없다. In addition, the existing DDoS attack defense devices are devices for defending against distributed denial of service (DDoS) attacks, so when a user experiences a crowd of traffic crowds (Flash Crowd), it cannot provide any service protection.

이러한 트래픽 폭주 현상(Flash Crowd)이 발생할 경우, 정상적인 사용자라고 하더라도 인터넷 서비스를 받는 것이 매우 어렵게 되는데, 이는 사이트 구축 당시에 예측한 최대 사용자보다 더 많은 사용자가 짧은 시간에 몰릴 경우, 네트워크 대역폭 및 서버의 CPU, 메모리 등 용량의 부족에서 기인된다. When such a flash crowd occurs, it is very difficult for even normal users to receive Internet service, which means that if more users are gathered in less time than the maximum users predicted at the time of site construction, network bandwidth and server CPU , Memory is due to lack of capacity.

오늘날 대다수의 기업에서 사용하고 있는 인터넷 쇼핑몰, 인터넷 뱅킹, 인터넷 입찰 및 구매 시스템, 인터넷 접수 등의 인터넷 서비스의 경우, 장기적인 장애 발생 또는 접속 지연될 경우, 매출 하락 등 직접적인 경제적 손실이 초래될 뿐만 아니라 기업 명예 실추, 고객 이탈 등 막대한 피해를 입을 수밖에 없다. Internet services such as Internet shopping malls, Internet banking, Internet bidding and purchasing systems, and Internet receptions, which are used by most companies today, not only lead to direct economic losses, such as lower sales, if long-term failures or delays occur. There is no choice but to suffer enormous damage such as loss of reputation and customer churn.

이처럼 중요한 인터넷 서비스를 효율적으로 보장하기 위하여 네트워크 대역폭을 효율적으로 할당하기 위한 QoS(Quality of Service)와 같은 네트워크 장치가 있으나, 이는 네트워크 대역폭 사용량을 서비스별로 조정하는 장치로서, DDoS 공격 발생시나 정상 사용자에 의한 트래픽 폭주(Flash Crowd) 발생시에는 효과를 발휘하기 어렵다. There is a network device such as Quality of Service (QoS) for efficiently allocating network bandwidth in order to efficiently guarantee such important Internet services, but it is a device that adjusts the network bandwidth usage by service, and it can be used for DDoS attacks or normal users. It is difficult to have an effect when a flash crowd occurs.

결론적으로, 상술한 바와 같이, 인터넷 서비스 보호 및 보증을 위한 노력이 계속되어 왔으나 최근의 Bot기반 분산서비스거부(DDoS) 공격이나 정상 사용자의 폭주(Flash Crowd) 발생시에는 아직 구체적이고 명확한 해결책을 제시하지 못한 상태이다.In conclusion, as described above, efforts for protecting and guaranteeing Internet services have been continued. However, in the case of recent Bot-based distributed denial of service (DDoS) attacks or flash crowds of normal users, no concrete and clear solutions have yet been proposed. It is not.

본 발명은 이와 같은 종래의 문제점을 해결하기 위해 안출된 것으로서, 정상 사용자를 인증하여, 정상 사용자를 모방하는 Bot 기반의 분산서비스거부(DDoS) 공격 발생시에 정상적인 인터넷 서비스를 보장하는 것을 목적으로 한다. The present invention has been made to solve such a conventional problem, and aims to guarantee normal Internet service when Bot-based distributed denial-of-service (DDoS) attacks occur by authenticating normal users.

또한, 본 발명은 정상 사용자에 의한 트래픽 폭주(Flash Crowd) 발생시에도 정상적인 인터넷 서비스를 보장하는 것을 목적으로 한다. In addition, an object of the present invention is to ensure a normal Internet service even in the event of a flash crowd by a normal user.

상술한 관제를 해결하기 위한 본 발명에 따른 인터넷 서비스 보장 장치는 반전 튜링 테스트 검증부, 사용자 대기 관리부, 및 서비스 제공부를 포함한다. Internet service guarantee apparatus according to the present invention for solving the above-described control includes a reverse turing test verification unit, a user standby management unit, and a service providing unit.

반전 튜링 테스트 검증부는 TCP 연결이 확립된 사용자에게 반전 튜링 테스트 정보를 전송하고, 사용자로부터 반전 튜링 테스트 정보에 대한 정상 응답이 수신될 경우, 사용자를 정상 사용자로 인증하는 인증 쿠키를 사용자에게 전송하며, 사용자 대기 관리부는 정상 사용자에 의해 서버의 서비스 부하 상태일 경우, 인증 쿠키를 이용하여 정상 사용자의 대기 우선순위를 설정하고, 서비스 제공부는 정상 사용자가 서비스를 재요청할 경우, 대기 우선순위에 따라 서비스를 제공한다. The inverse Turing test verifier transmits inverse Turing test information to a user who has established a TCP connection, and when a normal response to the inverse Turing test information is received from the user, transmits an authentication cookie for authenticating the user as a normal user to the user. The user standby management unit sets the standby priority of the normal user by using the authentication cookie when the normal user is under service load of the server, and the service provider sets the service according to the standby priority when the normal user re-requests the service. to provide.

이로 인해, 정상 사용자를 모방하는 Bot 기반의 분산서비스거부(DDoS) 공격 발생시뿐만 아니라 정상 사용자에 의한 트래픽 폭주(Flash Crowd) 발생시에도 정상적인 인터넷 서비스를 보장할 수 있다. As a result, a normal Internet service can be guaranteed not only when a Bot-based distributed denial of service (DDoS) attack that mimics a normal user but also when a flash crowd occurs by a normal user.

또한, 반전 튜링 테스트 검증부는 반전 튜링 테스트 정보로 캡차(CAPTCHA)를 이용할 수 있다. In addition, the inverse Turing test verifier may use a CAPTCHA as the inverse Turing test information.

또한, 본 발명에 따른 인터넷 서비스 보장 장치는 초기 순서번호를 지정한 SYN 쿠키를 사용자에게 전송하고, 사용자로부터의 응답과 '초기 순서번호+1'이 일치할 경우 TCP 연결을 확립하는 SYN 쿠키 검증부를 더 포함할 수 있는데, 이로 인해 Bot으로부터의 SYN flood를 이용한 DoS 공격을 막을 수 있다. In addition, the Internet service guarantee apparatus according to the present invention transmits a SYN cookie specifying the initial sequence number to the user, and further comprises a SYN cookie verification unit for establishing a TCP connection when the response from the user and the 'initial sequence number + 1' match This can prevent DoS attacks using SYN floods from Bot.

또한, SYN 쿠키 검증부는 반전 튜링 테스트 검증부의 정상 사용자 단말 인증, 또는 서비스 제공부의 서비스 제공을 비동기적으로 수행하도록 할 수 있는데, 이로 인해, 인터넷 서비스 보장 장치에서 사용자에게 하나의 데이터 전송 후 TCP 연결을 해제하고, 새로운 연결로 응답을 수신하게 되어, 정상 사용자를 가장한 Bot이 서버에 접속하는 것을 막을 수 있다. In addition, the SYN cookie verification unit may be configured to asynchronously perform the normal user terminal authentication of the reverse Turing test verification unit, or to provide the service of the service provider unit asynchronously, so that the Internet service guarantee apparatus performs a TCP connection after transmitting one data to the user. It releases and receives the response on the new connection, preventing the Bot impersonating the normal user from connecting to the server.

또한, 본 발명에 따른 인터넷 서비스 보장 장치는 주기적으로 서버에 서비스를 요청하고, 요청한 서비스에 대해 측정된 응답 시간을 미리 설정된 응답 시간과 비교하여, 서버의 서비스 부하 여부를 측정하는 서비스 부하 측정부를 더 포함할 수 있는데, 이로 인해, 서버의 서비스가 부하 상태일 경우에만 정상 사용자를 인증하여 서비스를 제공하도록 할 수 있다.
In addition, the Internet service guarantee apparatus according to the present invention periodically requests a service to the server, and compares the response time measured for the requested service with a preset response time, the service load measurement unit for measuring the service load of the server further In this case, it is possible to authenticate a normal user to provide a service only when the service of the server is under load.

아울러, 상기 장치를 방법의 형태로 구현한 발명이 개시된다.In addition, an invention embodying the apparatus in the form of a method is disclosed.

본 발명에 의해 반전 튜링 테스트(RTT, Reverse Turing Test) 기법을 통해 정상 사용자를 인증하여, 정상 사용자를 모방하는 Bot 기반의 분산서비스거부(DDoS) 공격 발생시에 정상적인 인터넷 서비스를 보장할 수 있다. According to the present invention, normal Internet services can be guaranteed when Bot-based distributed denial of service (DDoS) attacks occur by authenticating normal users by using a Reverse Turing Test (RTT) technique.

또한, 정상 사용자에 의한 트래픽 폭주(Flash Crowd) 발생시에도 접속 순서에 따라 사용자에게 대기 우선순위를 부여하고, 해당 사용자가 재접속할 경우 대기 우선순위에 따라 서비스를 제공하므로 정상적인 인터넷 서비스를 보장할 수 있다. In addition, even when a traffic crowd (Flash Crowd) occurs by a normal user, the priority is given to the user according to the access order, and when the user reconnects, the service is provided according to the priority of the user, thereby ensuring normal Internet service. .

도 1은 본 발명에 따른 인터넷 서비스 보장 장치 구성의 일 실시예를 개략적으로 나타낸 블록도.
도 2는 정상 사용자 인증을 위한 데이터의 흐름을 도시한 도면.
도 3은 캡차의 일 실시예를 도시한 도면.
도 4는 사용자 대기 관리를 위한 데이터 흐름을 도시한 도면.
도 5는 본 발명에 따른 인터넷 서비스 보장 방법의 일 실시예를 개략적으로 나타낸 흐름도.
도 6은 TCP 연결 확립 및 정상 사용자 인증 단계를 상세히 나타낸 흐름도.
도 7의 (a)는 TCP 연결 #1에서의 데이터의 흐름을 도시한 도면.
도 7의 (b)는 TCP 연결 #2에서의 데이터의 흐름을 도시한 도면.
도 7의 (c)는 TCP 연결 #3에서의 데이터의 흐름을 도시한 도면.
Figure 1 is a block diagram schematically showing an embodiment of the configuration of the Internet service guarantee apparatus according to the present invention.
2 shows a flow of data for normal user authentication.
3 illustrates one embodiment of a captcha.
4 is a diagram illustrating a data flow for user waiting management.
5 is a flowchart schematically illustrating an embodiment of a method for guaranteeing Internet service according to the present invention.
6 is a flowchart detailing the TCP connection establishment and normal user authentication steps.
Fig. 7A is a diagram showing the flow of data in TCP connection # 1.
FIG. 7B is a diagram showing the flow of data in TCP connection # 2. FIG.
FIG. 7C is a diagram showing the flow of data in TCP connection # 3. FIG.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다. 발명의 이해를 보다 명확하게 하기 위해 동일한 구성요소에 대해서는 상이한 도면에서도 동일한 부호를 사용하도록 한다. Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. In order to more clearly understand the present invention, the same reference numerals are used for the same components in different drawings.

도 1은 본 발명에 따른 인터넷 서비스 보장 장치(100) 구성의 일 실시예를 개략적으로 나타낸 블록도이고, 도 2는 정상 사용자(220) 인증을 위한 데이터의 흐름을 도시한 도면이다. 1 is a block diagram schematically showing an embodiment of the configuration of the Internet service guarantee apparatus 100 according to the present invention, Figure 2 is a diagram showing the flow of data for the normal user 220 authentication.

도 1 및 도 2를 참조하여 인터넷 서비스 보장 장치(100)를 설명하면, 인터넷 서비스 보장 장치(100)는 서비스 부하 측정부(110), SYN 쿠키 검증부(120), 반전 튜링 테스트 검증부(130), 서비스 제공부(140), 및 사용자 대기 관리부(150)를 포함한다. Referring to FIG. 1 and FIG. 2, the apparatus 100 for guaranteeing Internet service 100 includes a service load measuring unit 110, a SYN cookie verification unit 120, and an inverse Turing test verification unit 130. ), A service provider 140, and a user standby manager 150.

서비스 부하 측정부(110)는 서버(300)로부터의 서비스 제공을 위한 트래픽이 정상 상태(서비스 정상 상태)인지, 폭주 상태(서비스 부하 상태)인지 여부를 측정하는데, 주기적으로 서버(300)에 서비스를 요청하고, 요청한 서비스에 대해 측정된 응답 시간을 미리 설정된 응답 시간과 비교하여, 서버(300)의 서비스 부하 여부를 측정할 수 있다(도 2의 ①).The service load measuring unit 110 measures whether traffic for providing a service from the server 300 is in a normal state (service normal state) or a congestion state (service load state), and periodically services the server 300. Request, and by comparing the response time measured for the requested service with a preset response time, it is possible to determine whether the service load of the server 300 (1 in Fig. 2).

이때, 미리 설정된 응답 시간은 관리자로부터 입력받아 기준으로 정해진 정상 서비스시의 정상 응답 시간 및 부하시의 부하 응답 시간을 의미한다. In this case, the preset response time refers to the normal response time during normal service and the load response time under load, which are inputted from an administrator.

서비스 부하 측정부(110)에서 서비스가 부하 상태라고 측정될 경우(도 2의 ②), Bot(210)에 의한 접속 시도를 제거하기 위하여, 접속 시도 중인 사용자(200)가 정상 사용자(220)임을 인증하는 정상 사용자 인증을 수행한다. When the service load measuring unit 110 determines that the service is in a load state (2 in FIG. 2), in order to remove the connection attempt by the Bot 210, the user 200 that is attempting to connect is the normal user 220. Perform normal user authentication to authenticate.

정상 사용자 인증은 SYN 쿠키 검증부(120) 및 반전 튜링 테스트 검증부(130)를 통해 이루어질 수 있다. Normal user authentication may be performed through the SYN cookie verification unit 120 and the inverse Turing test verification unit 130.

SYN 쿠키 검증부(120)는 서버(300)를 대신하여 사용자(200)의 요청에 응답한다. The SYN cookie verification unit 120 responds to the request of the user 200 on behalf of the server 300.

SYN 쿠키 검증부(120)는 사용자(200)로부터 사용자 단말을 통해 서버(300)에 접속을 요청하는 SYN 패킷을 수신하면(도 2의 ③), 수신한 SYN 패킷을 이용하여 사용자 IP 주소 및 포트 번호, 서버 IP 주소 및 포트 번호, 현재 시각을 암호화하고, 해시(hash)값을 계산하여 고유하게 생성된 ISN(TCP 초기 시퀀스 번호, TCP Initial Sequence Number)인 SYN 쿠키를 포함하는 SYN+ACK 패킷을 사용자(200)에게 전송한다. When the SYN cookie verification unit 120 receives a SYN packet for requesting access to the server 300 from the user 200 through the user terminal (3 in FIG. 2), the SYN cookie verification unit 120 uses the received SYN packet. A SYN + ACK packet containing a SYN cookie that is a uniquely generated ISN (TCP Initial Sequence Number) by encrypting the number, the server IP address and port number, the current time, and calculating the hash value. Send to user 200.

(본 발명의 실시예에서, 사용자(200)와 인터넷 서비스 보장 장치(100) 간의 데이터 송수신은 사용자 단말을 통해 이루어진다.)(In the embodiment of the present invention, data transmission and reception between the user 200 and the Internet service guarantee device 100 is performed through the user terminal.)

SYN 쿠키 검증부(120)는 SYN+ACK 패킷을 수신한 사용자(200)로부터, SYN+ACK 패킷에 대응하는 ACK 패킷 및 서비스 요청 패킷을 수신하는데, 이때의 ACK 번호는 SYN 쿠키 검증부(120)가 전송한 ISN 번호(SYN 쿠키값)에 1을 더한 번호가 됨이 바람직하다(즉, 사용자(200)로부터의 ACK 번호 = ISN+1).The SYN cookie verification unit 120 receives an ACK packet and a service request packet corresponding to the SYN + ACK packet from the user 200 receiving the SYN + ACK packet, and the ACK number is the SYN cookie verification unit 120. It is preferable to be a number obtained by adding 1 to the ISN number (SYN cookie value) transmitted by the user (that is, the ACK number from the user 200 = ISN + 1).

SYN 쿠키 검증부(120)는 사용자(200)로부터 수신한 ACK 패킷이, 자신이 사용자(200)에게 보낸 ISN+1과 일치하는지를 검증하여, 일치할 경우에 TCP 연결을 확립시킴으로써 SYN flood를 이용한 DoS 공격을 막을 수 있다. The SYN cookie verification unit 120 verifies whether the ACK packet received from the user 200 matches the ISN + 1 sent to the user 200, and establishes a TCP connection if it matches. You can stop the attack.

또한, SYN 쿠키 검증부(120)는 TCP 연결이 확립되어 반전 튜링 테스트 검증부(130) 및 서비스 제공부(140)에서 사용자(200)에게 데이터를 전송할 경우, 데이터와 함께 TCP reset 패킷을 동시에 전달하여 해당 TCP 연결을 종료한다. 그 후, 다른 데이터의 전송은 새로운 TCP 연결이 확립된 후 전송되며, 이 경우에도 데이터 전송과 함께 TCP reset 패킷을 동시에 전달하여 해당 TCP 연결을 종료한다.In addition, when the SYN cookie verification unit 120 transmits data to the user 200 by the inversion Turing test verification unit 130 and the service provider 140 when the TCP connection is established, the SYN cookie verification unit 120 simultaneously transmits a TCP reset packet together with the data. To terminate the TCP connection. Thereafter, the transmission of other data is transmitted after a new TCP connection is established. In this case, the TCP connection is terminated by simultaneously transmitting a TCP reset packet together with the data transmission.

반전 튜링 테스트 검증부(130)는 사용자(200)와의 TCP 연결이 확립되면, 사용자(200)로부터 반전 튜링 테스트에 대한 정상 응답이 수신될 경우(도 2의 ⑤), 해당 사용자(200)를 정상 사용자(220)로 인증하고(도 2의 ⑥), 정상 사용자(220)에게 인증 쿠키를 전송한다(도 2의 ⑦). When the TCP connection with the user 200 is established, the inverse Turing test verification unit 130 receives a normal response to the inverse Turing test from the user 200 (5 in FIG. 2). The user 220 authenticates (⑥ in FIG. 2) and transmits an authentication cookie to the normal user 220 (⑦ in FIG. 2).

본 발명의 실시예에서는 정상 사용자(220)와 Bot(210)을 구분하기 위한 반전 튜링 테스트(RTT, Reverse Turing Test)로써, 반전 튜링 테스트의 한 가지 종류인 캡차(CAPTCHA, Completely Automated Public Turing test to tell Computers and Humans Apart)를 이용하였지만, 반전 튜링 테스트의 다른 종류를 이용할 수도 있다. In the embodiment of the present invention as a reverse Turing Test (RTT) to distinguish between the normal user 220 and the Bot 210, one type of the Reverse Turing Test (CAPTCHA, Completely Automated Public Turing test to tell Computers and Humans Apart, but other types of inverse Turing tests can be used.

이때, 캡차는 어떠한 사용자가 실제 인간인지 컴퓨터 프로그램인지를 구별하기 위해 사용되는 방법으로, 도 3과 같이 인간은 구별할 수 있지만 컴퓨터는 구별하기 힘들게 의도적으로 비틀어 놓은 이미지를 주고 그 이미지에 쓰여 있는 내용을 물어보는 방법이다. At this time, the captcha is a method used to distinguish whether a user is a real human or a computer program, and as shown in FIG. How to ask.

도 3은 캡차의 일 실시예를 도시한 도면이며, 캡차에 대한 정상 캡차 응답은 "smwm"이 된다. 3 is a diagram illustrating one embodiment of a CAPTCHA, where the normal CAPTCHA response to CAPTCHA is "smwm".

반전 튜링 테스트 검증부(130)의 기능을 좀 더 자세히 살펴보면, 서비스를 요청한 사용자(200)가 TCP 연결 확립되면, 반전 튜링 테스트 검증부(130)는 사용자(200)에게 캡차를 전송한다(도 2의 ④). Looking at the function of the inverse Turing test verification unit 130 in more detail, when the user 200 requesting the service is a TCP connection is established, the inversion Turing test verification unit 130 transmits the CAPTCHA to the user 200 (FIG. 2). ④).

그리고, 사용자(200)로부터 수신한 캡차 응답을 검증하여(도 2의 ⑤), 캡차 응답이 정확할 경우(정상 캡차 응답), 해당 사용자(200)를 정상 사용자(220)로 인증하고(도 2의 ⑥), 정상 사용자(220)에게 인증 쿠키(예컨대, 암호화된 HTTP 쿠키)를 전송한다(도 2의 ⑦). Then, the CAPTCHA response received from the user 200 is verified (⑤ in FIG. 2), and if the CAPTCHA response is correct (the normal CAPTCHA response), the corresponding user 200 is authenticated as the normal user 220 (FIG. 2). (6) transmits an authentication cookie (eg, an encrypted HTTP cookie) to the normal user 220 (⑦ of FIG. 2).

이처럼, 반전 튜링 테스트 검증부(130)에서 사용자(200)(또는 정상 사용자(220))에게 데이터(캡차 또는 인증 쿠키)가 전송될 때, 상술한 바와 같이, SYN 쿠키 검증부(120)에서 데이터와 함께 TCP reset 패킷을 동시에 전달하여 해당 TCP 연결을 종료한다. As such, when data (captcha or authentication cookie) is transmitted from the inverse Turing test verification unit 130 to the user 200 (or the normal user 220), as described above, the data from the SYN cookie verification unit 120 Send TCP reset packet at the same time and terminate the TCP connection.

즉, 캡차는 TCP 연결 #1을 통해 전송되고, 인증 쿠키는 TCP 연결 #2를 통해 전송된다. That is, CAPTCHA is sent over TCP connection # 1 and authentication cookie is sent over TCP connection # 2.

이러한 SYN 쿠키 검증부(120)의 비동기적인 연결 및 반전 튜링 테스트 검증부(130)의 정상 사용자 인증 방식으로 인해, Bot(210)이 정상 사용자(220)를 가장하여 서버(300)에 접속하는 것을 막을 수 있다. Due to the normal user authentication scheme of the asynchronous connection and inverse Turing test verification unit 130 of the SYN cookie verification unit 120, Bot 210 impersonates the normal user 220 to access the server 300 You can stop it.

서비스 제공부(140)는 정상 사용자(200)로부터 인증 쿠키와 함께 서비스 요청 패킷을 수신하면(도 2의 ⑧), 정상 사용자(220)에 의한 서비스 부하 상태가 아닐 경우에 수신한 서비스 요청 패킷을 서버(300)로 전송하고, 서버(300)로부터 수신한 서비스를 정상 사용자(200)에게 제공한다(도 2의 ⑨ 내지 ⑫). When the service provider 140 receives the service request packet together with the authentication cookie from the normal user 200 (⑧ in FIG. 2), the service provider packet 140 receives the service request packet received when the service user is not in the service load state by the normal user 220. It transmits to the server 300, and provides the service received from the server 300 to the normal user 200 (9 to 9 in Fig. 2).

이 경우에도, 정상 사용자(220)에게 데이터(서비스)가 전송될 때, SYN 쿠키 검증부(120)에서 데이터와 함께 TCP reset 패킷을 동시에 전달하여 해당 TCP 연결을 종료하며, 서비스는 TCP 연결 #3을 통해 전송된다. Even in this case, when the data (service) is transmitted to the normal user 220, the SYN cookie verification unit 120 delivers the TCP reset packet with the data at the same time to terminate the corresponding TCP connection, the service is TCP connection # 3 Is sent through.

도 4는 사용자 대기 관리를 위한 데이터 흐름을 도시한 도면이다. 4 is a diagram illustrating a data flow for user waiting management.

도 4를 참조하면, 사용자 대기 관리부(150)는 정상 사용자(220)로 인해 서버(300)가 서비스 부하 상태일 경우(도 4의 ②), 정상 사용자(220)의 서비스 요청 순서(접속 순서)에 따른 대기 우선순위를 설정하고, 정상 사용자(220)가 예상 대기 시간 이후에 서비스를 재요청할 경우, 대기 우선순위에 따라 서비스를 제공하도록 할 수 있다. Referring to FIG. 4, when the server 300 is in a service load state due to the normal user 220 (② of FIG. 4), the user standby manager 150 may request a service request of the normal user 220 (access order). According to the priority setting, if the normal user 220 re-requests the service after the expected waiting time, it may be to provide the service according to the standby priority.

사용자 대기 관리부(150)의 기능을 좀 더 자세히 살펴보면, 사용자 대기 관리부(150)는 서버(300)가 정상 사용자(220)로 인한 서비스 부하 상태에서(도 4의 ②), 정상 사용자(220)가 인증 쿠기와 함께 서비스 요청 패킷을 전송할 경우(도 4의 ③), 해당 정상 사용자(220)의 접속 시간별로 인증 쿠키를 접속 대기 목록에 삽입하여 대기 우선순위를 설정할 수 있다(도 4의 ④). Looking at the function of the user standby management unit 150 in more detail, the user standby management unit 150 is a server (300) in the service load state due to the normal user 220 (2 in Fig. 4), the normal user 220 When the service request packet is transmitted together with the authentication cookie (3 in FIG. 4), the waiting priority may be set by inserting an authentication cookie into the access waiting list for each access time of the normal user 220 (4 in FIG. 4).

사용자 대기 관리부(150)는 해당 정상 사용자(220)의 대기 우선순위가 설정되면, 선처리 대상자 수 및 예상 대기 시간을 계산한 대기 정보를 해당 정상 사용자에게 전송하여 대기 요청을 한다(도 4의 ⑤). When the standby priority of the corresponding normal user 220 is set, the user waiting manager 150 transmits the waiting information that calculates the number of target persons and the expected waiting time to the corresponding normal user and makes a waiting request (⑤ in FIG. 4). .

예상 대기 시간 이후에 해당 정상 사용자(220)가 사용자 대기 관리부(150)에 접속하여 인증 쿠키를 전송 및 서비스 요청 패킷을 재전송할 경우(도 4의 ⑥), 서버(300)가 서비스 부하 상태가 아니거나, 해당 정상 사용자(220)보다 대기 우선순위가 높은 정상 사용자(220)가 대기 목록에 없는 경우에 서비스를 제공한다(도 4의 ⑤ 내지 ⑦). After the expected waiting time, when the normal user 220 accesses the user waiting manager 150 to transmit the authentication cookie and resend the service request packet (⑥ in FIG. 4), the server 300 is not in a service load state. Alternatively, the service is provided when the normal user 220 having a higher priority than the normal user 220 is not in the waiting list (⑤ to ⑦ of FIG. 4).

이로 인해, 정상 사용자로 인한 트래픽 폭주시에도 인터넷 서비스의 마비를 초래하는 것이 아니라, 공정한 FCFS(First Come, First Serve) 형태의 서비스를 받을 수 있으며, 부적절한 접속 시도를 줄일 수 있게 된다. As a result, even when the traffic is overwhelmed by normal users, the Internet service is not paralyzed, but a fair first come, first serve (FCFS) type of service can be received, and inappropriate connection attempts can be reduced.

도 5는 본 발명에 따른 인터넷 서비스 보장 방법의 일 실시예를 개략적으로 나타낸 흐름도이다. 5 is a flowchart schematically illustrating an embodiment of a method for guaranteeing Internet service according to the present invention.

이하의 설명에서, 서버(300)가 인터넷 서버일 경우, 사용자(200)로부터의 서비스 제공은 URL 제공이 될 수 있으며, 서버(300)가 인터넷 서버 이외의 서버일 경우 제공하는 서비스는 서버에 대응하는 정보 제공이 될 수 있다. In the following description, when the server 300 is an Internet server, the service provision from the user 200 may be provided as a URL, and the service provided when the server 300 is a server other than the Internet server corresponds to the server. Information can be provided.

본 발명의 인터넷 서비스 보장 장치(100)는 주기적으로 서버(300)에 서비스를 요청하고, 요청한 서비스에 대해 측정된 응답 시간을 미리 설정된 응답 시간과 비교하여, 서버(300)의 서비스 부하 여부를 측정한다(S100).The apparatus 100 for guaranteeing service of the present invention periodically requests a service from the server 300 and compares the response time measured for the requested service with a preset response time to measure whether the server 300 has a service load. (S100).

인터넷 서비스 보장 장치(100)는, 서비스가 부하 상태가 아닐 경우(정상 상태)에 사용자(200)로부터의 서버(300) 접속 요청 및 서비스 요청에 따라 사용자(200)와 연결하고, 서버(300)로 해당 서비스를 요청한 후, 서버(300)로부터 제공되는 서비스를 다시 해당 사용자(200)에게 제공하며 TCP 연결을 해제한다(S200).When the service is not in a load state (normal state), the Internet service guarantee device 100 connects with the user 200 according to the server 300 connection request and the service request from the user 200, and the server 300. After requesting the corresponding service, the service provided from the server 300 is again provided to the corresponding user 200 and the TCP connection is released (S200).

인터넷 서비스 보장 장치(100)는, 서비스가 부하 상태일 경우에 사용자(200)와 TCP 연결의 확립 및 사용자(200)가 정상 사용자(220)인지 여부를 인증한다(S300). When the service is under load, the Internet service guarantee device 100 establishes a TCP connection with the user 200 and authenticates whether the user 200 is a normal user 220 (S300).

도 6은 TCP 연결 확립 및 정상 사용자 인증 단계(S300)를 상세히 나타낸 흐름도이고, 도 7의 (a) 내지 (c)는 각 TCP 연결 별 데이터의 흐름을 도시한 도면으로, 도 6 및 도 7을 참조하며 설명하고자 한다. FIG. 6 is a flowchart illustrating a TCP connection establishment and normal user authentication step S300 in detail, and FIGS. 7A to 7C illustrate the flow of data for each TCP connection. I will explain by reference.

인터넷 서비스 보장 장치(100)는 서비스가 부하 상태일 경우에 사용자(200)로부터 서버(300)에 접속을 요청하는 SYN 패킷을 TCP 연결 #1을 통해 수신하는데, SYN 패킷에는 사용자(200)의 ISN이 포함되어 있다(S310, 도 7-(a)-①).When the service is under load, the Internet service guarantee device 100 receives a SYN packet from the user 200 requesting access to the server 300 through TCP connection # 1, and the IYN of the user 200 is included in the SYN packet. This includes (S310, Fig. 7- (a) -①).

인터넷 서비스 보장 장치(100)는 수신한 SYN 패킷을 이용하여 사용자 IP 주소 및 포트 번호, 서버 IP 주소 및 포트 번호, 현재 시각을 암호화하고, 해시(hash)값을 계산하여 고유하게 생성된 ISN(TCP 초기 시퀀스 번호, TCP Initial Sequence Number)인 SYN 쿠키를 포함하는 SYN+ACK 패킷을 해당 사용자(200)에게 전송한다(S312, 도 7-(a)-②). The Internet service guarantee apparatus 100 encrypts a user IP address and a port number, a server IP address and a port number, a current time by using the received SYN packet, and calculates a hash value to generate a uniquely generated ISN (TCP). An SYN + ACK packet including a SYN cookie, which is an initial sequence number and a TCP initial sequence number, is transmitted to the corresponding user 200 (S312, FIG. 7 (a) -②).

인터넷 서비스 보장 장치(100)는 사용자(200)로부터 전송된 SYN+ACK 패킷에 대응하는 ACK 패킷 및 서비스를 요청하는 HTTP GET을 수신하는데(S314, 도 7-(a)-③④), 이때의 ACK 번호는 인터넷 서비스 보장 장치(100)가 전송한 ISN 번호(SYN 쿠키값)에 1을 더한 번호가 됨이 바람직하다(즉, 사용자(200)로부터의 ACK 번호 = ISN+1).The Internet service guarantee device 100 receives an ACK packet corresponding to the SYN + ACK packet transmitted from the user 200 and an HTTP GET requesting service (S314, FIG. 7- (a) -③④). The number is preferably a number obtained by adding 1 to the ISN number (SYN cookie value) transmitted by the Internet service guarantee apparatus 100 (that is, the ACK number from the user 200 = ISN + 1).

인터넷 서비스 보장 장치(100)는 사용자(200)로부터 수신한 ACK 패킷이, 자신이 사용자(200)에게 보낸 ISN+1과 일치하는지를 검증하여(S316), 일치하지 않을 경우에는 TCP 연결을 중단하고(S318), 일치할 경우에 TCP 연결을 확립시킴으로써 SYN flood를 이용한 DoS 공격을 막을 수 있다(S320).The Internet service guarantee device 100 verifies whether the ACK packet received from the user 200 matches the ISN + 1 sent to the user 200 (S316), and stops the TCP connection if it does not match (S316). S318), by establishing a TCP connection in case of a match, it is possible to prevent DoS attacks using the SYN flood (S320).

인터넷 서비스 보장 장치(100)는 TCP 연결이 확립된 사용자(200)가 정상 사용자(220)인지를 확인하는데(S330), 사용자(200)가 서비스를 요청(서비스 요청 패킷을 전송)과 함께 인증 쿠키를 전송할 경우에는 해당 사용자(200)를 정상 사용자(220)로 인식하여 단계 S400으로 진행하고, 사용자(200)가 인증 쿠키를 전송하지 않을 경우에는 해당 사용자(200)가 정상 사용자(220)로 인증되지 않았다고 판단하여, 해당 사용자(200)가 Bot(210)인지, 정상 사용자(220)인지를 확인한다. The Internet service guarantee device 100 checks whether the user 200 in which the TCP connection is established is a normal user 220 (S330), and the user 200 requests the service (sends a service request packet) along with an authentication cookie. When transmitting the user 200 is recognized as a normal user 220 proceeds to step S400, if the user 200 does not transmit an authentication cookie, the user 200 is authenticated as a normal user 220 If it is determined that the user 200 is not, the user 200 checks whether the Bot 210 or the normal user 220.

해당 사용자(200)가 Bot(210)인지, 정상 사용자(220)인지를 확인하기 위해, 인터넷 서비스 보장 장치(100)는 사용자(200)로부터 캡차 응답이 수신되었는지를 확인하고(S340), 캡차 응답이 수신되지 않았다면, 사용자(200)에게 인터넷 서비스 보장 장치(100)의 SYN 쿠키+1을 포함하는 SYN+ACK 패킷, 서비스 요청이 성공적으로 수행되었다는 HTTP 200, 캡차를 전송하고, 동시에 TCP reset 패킷을 전송하여 TCP 연결 #1을 해제한 후, 다시 단계 S310으로 돌아간다. (S342, 도 7-(a)-⑤⑥). In order to check whether the user 200 is the Bot 210 or the normal user 220, the Internet service guarantee apparatus 100 checks whether a CAPTCHA response is received from the user 200 (S340), and the CAPTCHA response. Is not received, a SYN + ACK packet including the SYN cookie + 1 of the Internet service guarantee apparatus 100, HTTP 200 indicating that the service request was successfully performed, and CAPTCHA are sent simultaneously, and a TCP reset packet is simultaneously sent. After the transmission releases TCP connection # 1, the process returns to step S310 again. (S342, Fig. 7- (a) -⑤⑥).

여전히, 서비스가 부하 상태일 경우에 인터넷 서비스 보장 장치(100)는 TCP 연결 #1을 통해 캡차를 수신한 사용자(200)로부터 서버(300)에 접속을 요청하는 SYN 패킷(사용자(200)의 ISN이 포함)을 새로운 TCP 연결 #2를 통해 수신한다(S310, 도 7-(b)-①).Still, when the service is under load, the Internet service guarantee apparatus 100 receives a SYN packet (ISN of the user 200) requesting access to the server 300 from the user 200 receiving the CAPTCHA through the TCP connection # 1. This is included) is received via a new TCP connection # 2 (S310, Fig. 7- (b) -①).

인터넷 서비스 보장 장치(100)는 수신한 SYN 패킷을 이용하여 사용자 IP 주소 및 포트 번호, 서버 IP 주소 및 포트 번호, 현재 시각을 암호화하고, 해시(hash)값을 계산하여 고유하게 생성된 ISN(TCP 초기 시퀀스 번호, TCP Initial Sequence Number)인 SYN 쿠키를 포함하는 SYN+ACK 패킷을 해당 사용자(200)에게 전송한다(S312, 도 7-(b)-②). The Internet service guarantee apparatus 100 encrypts a user IP address and a port number, a server IP address and a port number, a current time by using the received SYN packet, and calculates a hash value to generate a uniquely generated ISN (TCP). An SYN + ACK packet including a SYN cookie, which is an initial sequence number and a TCP initial sequence number, is transmitted to the corresponding user 200 (S312, FIG. 7- (b) -②).

인터넷 서비스 보장 장치(100)는 SYN+ACK 패킷을 전송한 사용자(200)로부터, 전송된 SYN+ACK 패킷에 대응하는 ACK 패킷을 수신한다(S314, 도 7-(b)-③).The Internet service guarantee device 100 receives an ACK packet corresponding to the transmitted SYN + ACK packet from the user 200 who transmits the SYN + ACK packet (S314, Figs. 7 (b) -③).

인터넷 서비스 보장 장치(100)는 사용자(200)로부터 수신한 ACK 패킷이, 자신이 사용자(200)에게 보낸 ISN+1과 일치하는지를 검증하여(S316), 일치하지 않을 경우에는 TCP 연결을 중단하고(S318), 일치할 경우에 TCP 연결을 확립시킴으로써 SYN flood를 이용한 DoS 공격을 막을 수 있다(S320).The Internet service guarantee device 100 verifies whether the ACK packet received from the user 200 matches the ISN + 1 sent to the user 200 (S316), and stops the TCP connection if it does not match (S316). S318), by establishing a TCP connection in case of a match, it is possible to prevent DoS attacks using the SYN flood (S320).

그리고, 동시에 인터넷 서비스 보장 장치(100)로부터의 캡차 요청이 성공적으로 수행되었다는 HTTP 200 패킷과 TCP 연결 #1을 통해 수신한 캡차에 대한 캡차 응답을 수신한다(도 7-(b)-④).At the same time, an HTTP 200 packet indicating that the CAPTCHA request from the Internet service guarantee apparatus 100 was successfully performed and a CAPTCHA response to the CAPTCHA received through the TCP connection # 1 are received (FIG. 7- (b) -④).

인터넷 서비스 보장 장치(100)는 TCP 연결이 확립된 사용자(200)가 정상 사용자(220)인지를 확인하는데(S330), 사용자(200)가 서비스를 요청하며 인증 쿠키를 전송할 경우에는 해당 사용자(200)를 정상 사용자(220)로 인식하여 단계 S400으로 진행하고, 사용자(200)가 인증 쿠키를 전송하지 않을 경우에는 해당 사용자(200)가 정상 사용자(220)로 인증되지 않았다고 판단하여, 해당 사용자(200)가 Bot(210)인지, 정상 사용자(220)인지를 확인한다. The Internet service guarantee apparatus 100 checks whether the user 200 in which the TCP connection is established is a normal user 220 (S330). When the user 200 requests a service and transmits an authentication cookie, the corresponding user 200 ) Is recognized as the normal user 220 and proceeds to step S400, if the user 200 does not transmit the authentication cookie, it is determined that the user 200 is not authenticated as the normal user 220, the corresponding user ( It is checked whether the 200 is the Bot 210 or the normal user 220.

해당 사용자(200)가 Bot(210)인지, 정상 사용자(220)인지를 확인하기 위해, 인터넷 서비스 보장 장치(100)는 사용자(200)로부터 캡차 응답이 수신되었는지를 확인한다(S340).In order to confirm whether the user 200 is the Bot 210 or the normal user 220, the Internet service guarantee apparatus 100 checks whether a CAPTCHA response is received from the user 200 (S340).

상술한 바와 같이, 인터넷 서비스 보장 장치(100)는 TCP 연결 #2를 통해 해당 사용자(200)로부터 캡차 응답을 수신하였으므로, 수신한 캡차 응답이 정상 캡차 응답인지를 확인한다(S350).As described above, since the Internet service guarantee apparatus 100 receives the CAPTCHA response from the corresponding user 200 through the TCP connection # 2, it checks whether the received CAPTCHA response is a normal CAPTCHA response (S350).

수신한 캡차 응답이 정상 캡차 응답이 아닐 경우(즉, 도 3의 캡차 이미지의 정상 캡차 응답인 'smwm'과는 다른 응답일 경우), 해당 사용자(200)를 Bot(210)으로 인식하여 TCP 연결을 해제한다(S352).If the received CAPTCHA response is not a normal CAPTCHA response (ie, a response different from 'smwm' which is a normal CAPTCHA response in the CAPTCHA image of FIG. 3), the user 200 is recognized as a Bot 210 and the TCP connection is established. To release (S352).

수신한 캡차 응답이 정상 캡차 응답일 경우에는 해당 사용자(200)를 정상 사용자(220)로 인증하여, 정상 사용자(220)에게 요청한 자원이 다른 주소로 이동되었음을 알리는 HTTP 301 패킷 및 인증 쿠키(예컨대, 암호화된 HTTP 쿠키)를 전송하고, 동시에 TCP reset 패킷을 전송하여 TCP 연결 #2를 해제한 후, 다시 단계 S310으로 돌아간다. (S354, 도 7-(b)-⑤⑥). If the received CAPTCHA response is a normal CAPTCHA response, the corresponding user 200 is authenticated as a normal user 220, and an HTTP 301 packet and an authentication cookie (eg, indicating that the resource requested to the normal user 220 has been moved to another address). Encrypted HTTP cookie), and simultaneously sends a TCP reset packet to release TCP connection # 2, and returns to step S310 again. (S354, Fig. 7- (b) -⑤⑥).

여전히, 서비스가 부하 상태일 경우에 인터넷 서비스 보장 장치(100)는 TCP 연결 #2 통해 인증 쿠키를 수신한 사용자(200)로부터 서버(300)에 접속을 요청하는 SYN 패킷(사용자(200)의 ISN이 포함)을 새로운 TCP 연결 #3을 통해 수신한다(S310, 도 7-(c)-①).Still, when the service is under load, the Internet service guarantee apparatus 100 may request a connection to the server 300 from the user 200 that receives the authentication cookie through the TCP connection # 2 (the ISN of the user 200). This is included) is received via a new TCP connection # 3 (S310, Fig. 7- (c) -①).

인터넷 서비스 보장 장치(100)는 수신한 SYN 패킷을 이용하여 사용자 IP 주소 및 포트 번호, 서버 IP 주소 및 포트 번호, 현재 시각을 암호화하고, 해시(hash)값을 계산하여 고유하게 생성된 ISN(TCP 초기 시퀀스 번호, TCP Initial Sequence Number)인 SYN 쿠키를 포함하는 SYN+ACK 패킷을 해당 사용자(200)에게 전송한다(S312, 도 7-(c)-②). The Internet service guarantee apparatus 100 encrypts a user IP address and a port number, a server IP address and a port number, a current time by using the received SYN packet, and calculates a hash value to generate a uniquely generated ISN (TCP). An SYN + ACK packet including a SYN cookie, which is an initial sequence number and a TCP initial sequence number, is transmitted to the corresponding user 200 (S312, FIG. 7- (c) -②).

인터넷 서비스 보장 장치(100)는 SYN+ACK 패킷을 전송한 사용자(200)로부터, 전송된 SYN+ACK 패킷에 대응하는 ACK 패킷을 수신한다(S314).The Internet service guarantee device 100 receives an ACK packet corresponding to the transmitted SYN + ACK packet from the user 200 who transmits the SYN + ACK packet (S314).

인터넷 서비스 보장 장치(100)는 사용자(200)로부터 수신한 ACK 패킷이, 자신이 사용자(200)에게 보낸 ISN+1과 일치하는지를 검증하여(S316), 일치하지 않을 경우에는 TCP 연결을 중단하고(S318), 일치할 경우에 TCP 연결을 확립시킴으로써 SYN flood를 이용한 DoS 공격을 막을 수 있다(S320).The Internet service guarantee device 100 verifies whether the ACK packet received from the user 200 matches the ISN + 1 sent to the user 200 (S316), and stops the TCP connection if it does not match (S316). S318), by establishing a TCP connection in case of a match, it is possible to prevent DoS attacks using the SYN flood (S320).

그리고, 동시에 사용자(200)로부터, 서비스를 재요청하는 HTTP GET 패킷과 TCP 연결 #2를 통해 사용자(200)에게 전송되었던 인증 쿠키를 수신한다(도 7-(c)-③).At the same time, the user 200 receives an HTTP GET packet requesting the service and an authentication cookie transmitted to the user 200 through the TCP connection # 2 (FIG. 7- (c) -③).

인터넷 서비스 보장 장치(100)는 TCP 연결이 확립된 사용자(200)가 정상 사용자(220)인지를 인증 쿠키 여부로서 확인하는데(S330), 상술한 바와 같이, 사용자(200)가 TCP 연결 #3을 통해 서비스를 요청하며 인증 쿠키를 전송하였으므로 해당 사용자(200)를 정상 사용자(220)로 인식한다. The Internet service guarantee device 100 checks whether the user 200 in which the TCP connection is established is a normal user 220 as an authentication cookie (S330). As described above, the user 200 detects the TCP connection # 3. Since the service is requested and the authentication cookie is transmitted, the corresponding user 200 is recognized as a normal user 220.

이와 같은 TCP 연결 #1 내지 #3을 통해 인터넷 서비스 보장 장치(100)는 인증된 정상 사용자(220)에게만 서버(300)와 연결해주므로, Bot(210) 또는 인증되지 않은 사용자(200)로 인한 서비스 부하 상태를 해결할 수 있게 된다. Since the Internet service guarantee device 100 connects to the server 300 only to the authenticated normal user 220 through the TCP connection # 1 to # 3, the service due to the Bot 210 or the unauthenticated user 200. The load condition can be solved.

하지만, 이 경우에도 정상 사용자(220)로 인한 서비스 부하 상태가 발생할 수 있으므로, 인터넷 서비스 보장 장치(100)는 다시 한번 정상 사용자(220)로 인한 서비스 부하 상태인지 여부를 확인한다(S400).However, even in this case, since the service load state due to the normal user 220 may occur, the Internet service guarantee device 100 checks whether the service load state due to the normal user 220 is once again (S400).

서비스 부하 상태가 아닐 경우에는 해당 정상 사용자(220)가 요청한 서비스를 서버(300)로 요청하고, 서버(300)로부터 제공받은 서비스를 해당 정상 사용자(220)에게 제공한 후, TCP 연결 #3을 해제한다(S200).If the service load is not in the service state, the normal user 220 requests the service requested by the server 300, provides the service provided from the server 300 to the normal user 220, and then establishes a TCP connection # 3. Release (S200).

서비스 부하 상태일 경우 해당 정상 사용자(220)가 재접속(대기 우선순위가 설정되어 있음)하는 것이거나 처음 접속(대기 우선순위가 설정되지 않음)하는 것일 수도 있으므로, 대기 우선순위가 설정되어 있는지 여부를 확인한다(S500).If the normal user 220 is in the service load state, the normal user 220 may reconnect (the standby priority is set) or the first connection (the standby priority is not set). Check (S500).

정상 사용자(220)로 인한 서비스 부하 상태일지라도, 재접속한 정상 사용자(220)보다 대기 우선순위가 높은 대기자가 존재하지 않을 경우에는 서버(300)로부터 서비스를 제공받아, 해당 정상 사용자(220)에게 제공한 후, TCP 연결 #3을 해제한다(S200).Even in a service load state caused by the normal user 220, when there is no waiter having a higher priority than the normal user 220 reconnected, the service is provided from the server 300 and provided to the normal user 220. After that, the TCP connection # 3 is released (S200).

서비스 부하 상태일 경우 해당 정상 사용자(220)가 처음 접속하여 대기 우선순위가 설정되어 있지 않다면, 대기 우선순위를 설정한다(S600), If the normal user 220 first accesses the service priorities and the standby priority is not set, the standby priority is set (S600).

이때, 인터넷 서비스 보장 장치(100)는 해당 정상 사용자(220)의 접속 시간별로 인증 쿠키를 접속 대기 목록에 삽입하여 대기 우선순위를 설정할 수 있으며, 대기 우선순위가 설정되면, 선처리 대상자 수 및 예상 대기 시간을 계산한 대기 정보를 해당 정상 사용자에게 전송하여 대기 요청을 하고 종료한다(S610). In this case, the Internet service guarantee apparatus 100 may set the priority of the authentication by inserting an authentication cookie into the access waiting list for each access time of the normal user 220. When the waiting priority is set, the number of subjects to be processed and the expected waiting The waiting information is calculated by transmitting the waiting information to the corresponding normal user and ends (S610).

예상 대기 시간 이후에 대기 우선순위 설정된 정상 사용자(220)가 인증 쿠키로 인터넷 서비스 보장 장치(100) 재접속하고, 단계 S100 내지 S510을 거처, 서버(300)가 서비스 부하 상태가 아니거나, 해당 정상 사용자(220)보다 대기 우선순위가 높은 정상 사용자(220)가 대기 목록에 없는 경우에 인터넷 서비스 보장 장치(100)는 해당 정상 사용자(220)에게 서비스를 제공한 후, TCP 연결을 해제한다(S200).
After the expected waiting time, the normal user 220 having the standby priority set again reconnects to the Internet service guarantee device 100 using the authentication cookie, and passes through steps S100 to S510, and the server 300 is not in a service load state or the normal user. When the normal user 220 having a higher standby priority than the 220 is not in the standby list, the Internet service guarantee device 100 releases the TCP connection after providing the service to the normal user 220 (S200). .

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
The invention can also be embodied as computer readable code on a computer readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include. In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다. So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

100 인터넷 서비스 보장 장치
110 서비스 부하 측정부
120 SYN 쿠키 검증부
130 반전 튜링테스트 검증부
140 서비스 제공부
150 사용자 대기 관리부
200 사용자
210 Bot
220 정상 사용자
300 서버
100 Internet Service Guarantee
110 Service load measurement unit
120 SYN Cookie Verifier
130 Reverse Turing Test Verification Unit
140 Service Provider
150 User Waiting Management
200 users
210 Bot
220 normal users
300 servers

Claims (11)

TCP 연결이 확립된 사용자에게 반전 튜링 테스트 정보를 전송하고, 상기 사용자로부터 반전 튜링 테스트 정보에 대한 정상 응답이 수신될 경우, 상기 사용자를 정상 사용자로 인증하는 인증 쿠키를 상기 사용자에게 전송하는 반전 튜링 테스트 검증부;
상기 정상 사용자에 의해 서버의 서비스 부하 상태일 경우, 상기 인증 쿠키를 이용하여 상기 정상 사용자의 대기 우선순위를 설정하는 사용자 대기 관리부;
상기 정상 사용자가 서비스를 재요청할 경우, 상기 대기 우선순위에 따라 서비스를 제공하는 서비스 제공부; 및
주기적으로 상기 서버에 서비스를 요청하고, 요청한 서비스에 대해 측정된 응답 시간을 미리 설정된 응답 시간과 비교하여, 상기 서버의 서비스 부하 여부를 측정하는 서비스 부하 측정부; 를 포함하는 것을 특징으로 하는 인터넷 서비스 보장 장치.
Inverted Turing test information is transmitted to a user who has established a TCP connection, and when a normal response to the Inverted Turing test information is received from the user, an inverted Turing test that transmits an authentication cookie for authenticating the user as a normal user. Verification unit;
A user standby manager configured to set a standby priority of the normal user by using the authentication cookie when the normal user is in a service load state of the server;
A service provider for providing a service according to the standby priority when the normal user re-requests a service; And
A service load measuring unit configured to periodically request a service from the server and compare the response time measured with respect to the requested service with a preset response time to determine whether the server has a service load; Internet service guarantee device comprising a.
제 1항에 있어서,
상기 반전 튜링 테스트 검증부는,
상기 반전 튜링 테스트 정보로 캡차(CAPTCHA)를 이용하는 것을 특징으로 하는 인터넷 서비스 보장 장치.
The method of claim 1,
The inverse Turing test verification unit,
And a captcha (CAPTCHA) as the inverse Turing test information.
제 1항에 있어서,
초기 순서번호를 지정한 SYN 쿠키를 상기 사용자에게 전송하고, 상기 사용자 로부터의 응답과 '상기 초기 순서번호+1'이 일치할 경우 TCP 연결을 확립하는 SYN 쿠키 검증부; 를 더 포함하는 것을 특징으로 하는 인터넷 서비스 보장 장치.
The method of claim 1,
A SYN cookie verification unit which transmits a SYN cookie specifying an initial sequence number to the user and establishes a TCP connection when the response from the user and the initial sequence number + 1 match; Internet service guarantee device further comprising.
제 3항에 있어서,
상기 SYN 쿠키 검증부는,
상기 반전 튜링 테스트 검증부의 정상 사용자 단말 인증, 또는 상기 서비스 제공부의 서비스 제공을 비동기적으로 수행하도록 하는 것을 특징으로 하는 인터넷 서비스 보장 장치.
The method of claim 3, wherein
The SYN cookie verification unit,
And asynchronously performing normal user terminal authentication of the inverse Turing test verification unit or providing a service of the service provider unit asynchronously.
삭제delete 인터넷 서비스 보장 장치가,
(b) TCP 연결이 확립된 사용자에게 반전 튜링 테스트 정보를 전송하는 단계;
(c) 상기 사용자로부터 반전 튜링 테스트 정보에 대한 정상 응답이 수신될 경우, 상기 사용자를 정상 사용자로 인증하는 인증 쿠키를 상기 사용자에게 전송하는 단계;
(d) 상기 정상 사용자에 의해 서버의 서비스 부하 상태일 경우, 상기 인증 쿠키를 이용하여 상기 정상 사용자의 대기 우선순위를 설정하는 단계;
(e) 상기 정상 사용자가 서비스를 재요청할 경우, 상기 대기 우선순위에 따라 서비스를 제공하는 단계; 및
(f) 주기적으로 상기 서버에 서비스를 요청하고, 요청한 서비스에 대해 측정된 응답 시간을 미리 설정된 응답 시간과 비교하여, 상기 서버의 서비스 부하 여부를 측정하는 단계; 를 포함하는 것을 특징으로 하는 인터넷 서비스 보장 방법.
Internet service guarantee device,
(b) sending inverse Turing test information to a user who has established a TCP connection;
(c) if a normal response to the reverse Turing test information is received from the user, transmitting an authentication cookie to the user authenticating the user as a normal user;
(d) setting a standby priority of the normal user using the authentication cookie when the normal user is under a service load of a server;
(e) if the normal user re-requests a service, providing a service according to the standby priority; And
(f) periodically requesting a service from the server, and comparing the response time measured for the requested service with a preset response time to determine whether the server has a service load; Internet service guarantee method comprising a.
제 6항에 있어서,
상기 (b) 단계에서는,
상기 반전 튜링 테스트 정보로 캡차(CAPTCHA)를 이용하는 것을 특징으로 하는 인터넷 서비스 보장 방법.
The method of claim 6,
In the step (b),
And captcha (CAPTCHA) as the inverse Turing test information.
제 6항에 있어서,
상기 (b) 단계 이전에,
(a) 초기 순서번호를 지정한 SYN 쿠키를 상기 사용자에게 전송하고, 상기 사용자 로부터의 응답과 '상기 초기 순서번호+1'이 일치할 경우 TCP 연결을 확립하는 단계; 를 더 포함하는 것을 특징으로 하는 인터넷 서비스 보장 방법.
The method of claim 6,
Before step (b),
(a) transmitting a SYN cookie specifying an initial sequence number to the user and establishing a TCP connection when the response from the user and the initial sequence number + 1 match; Internet service guarantee method comprising a further.
제 8항에 있어서,
상기 (a) 단계는,
상기 (b) 단계와 상기 (c) 단계 사이, 또는 상기 (d) 단계와 상기 (e) 단계 사이에서 수행되는 것을 특징으로 하는 인터넷 서비스 보장 방법.
The method of claim 8,
In step (a),
And (b) between the steps (b) and (c) or between the steps (d) and (e).
삭제delete 제 6항 내지 제 9항 중 어느 한 항의 인터넷 서비스 보장 방법을 컴퓨터에서 판독할 수 있고, 실행 가능한 프로그램 코드로 기록한 기록 매체.A recording medium which can read the Internet service guarantee method according to any one of claims 6 to 9, and which is recorded by an executable program code.
KR1020100061277A 2010-06-28 2010-06-28 Apparatus and method for guranteeing internet service KR101109563B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100061277A KR101109563B1 (en) 2010-06-28 2010-06-28 Apparatus and method for guranteeing internet service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100061277A KR101109563B1 (en) 2010-06-28 2010-06-28 Apparatus and method for guranteeing internet service

Publications (2)

Publication Number Publication Date
KR20120000812A KR20120000812A (en) 2012-01-04
KR101109563B1 true KR101109563B1 (en) 2012-01-31

Family

ID=45608582

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100061277A KR101109563B1 (en) 2010-06-28 2010-06-28 Apparatus and method for guranteeing internet service

Country Status (1)

Country Link
KR (1) KR101109563B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101369743B1 (en) * 2012-06-25 2014-03-06 한국전자통신연구원 Apparatus and method for verifying referer
KR102232085B1 (en) * 2014-10-10 2021-03-25 주식회사 케이티 Method, web server and computing device for providing dynamic web page
KR20220078320A (en) * 2020-12-03 2022-06-10 (주)모니터랩 Intelligent bot detection method and device
KR102427456B1 (en) * 2021-10-27 2022-08-01 주식회사 파이오링크 Method and device for providing service to certain user by referring to tracking information on the status of server

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100013989A (en) * 2008-08-01 2010-02-10 한국정보보호진흥원 Device and method for blocking spam based on turing test in voip service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100013989A (en) * 2008-08-01 2010-02-10 한국정보보호진흥원 Device and method for blocking spam based on turing test in voip service

Also Published As

Publication number Publication date
KR20120000812A (en) 2012-01-04

Similar Documents

Publication Publication Date Title
US11924170B2 (en) Methods and systems for API deception environment and API traffic control and security
US9843590B1 (en) Method and apparatus for causing a delay in processing requests for internet resources received from client devices
US10097520B2 (en) Method and apparatus for causing delay in processing requests for internet resources received from client devices
TWI294726B (en)
Shawahna et al. EDoS-ADS: An enhanced mitigation technique against economic denial of sustainability (EDoS) attacks
US10567427B2 (en) Unobtrusive and dynamic DDoS mitigation
US8468235B2 (en) System for extranet security
US9118619B2 (en) Prevention of cross site request forgery attacks by conditional use cookies
Tok et al. Security analysis of SDN controller-based DHCP services and attack mitigation with DHCPguard
Abdallah et al. TRUST-CAP: A trust model for cloud-based applications
Mohammadi et al. SYN‐Guard: An effective counter for SYN flooding attack in software‐defined networking
KR101109563B1 (en) Apparatus and method for guranteeing internet service
Hossain et al. Survey of the Protection Mechanisms to the SSL-based Session Hijacking Attacks.
Al‐Hammouri et al. ReCAP: a distributed CAPTCHA service at the edge of the network to handle server overload
US9680950B1 (en) Method and apparatus for causing delay in processing requests for internet resources received from client devices
Amiri et al. Theoretical and experimental methods for defending against DDoS attacks
CN115065564B (en) Access control method based on zero trust mechanism
CN114221799B (en) Communication monitoring method, device and system
Devi et al. Cloud-based DDoS attack detection and defence system using statistical approach
Alosaimi et al. Mitigation of distributed denial of service attacks in the cloud
Dou et al. CLAS: A novel communications latency based authentication scheme
Singh Verma et al. Hard-coded credentials and web service in iot: Issues and challenges
Eid et al. Secure double-layered defense against HTTP-DDoS attacks
KR101132573B1 (en) Defense system of automatic code attack that threaten web server and defense method thereof
Eid et al. Trustworthy DDoS defense: design, proof of concept implementation and testing

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
LAPS Lapse due to unpaid annual fee