KR101988205B1 - Virtual private network service system - Google Patents

Virtual private network service system Download PDF

Info

Publication number
KR101988205B1
KR101988205B1 KR1020190015255A KR20190015255A KR101988205B1 KR 101988205 B1 KR101988205 B1 KR 101988205B1 KR 1020190015255 A KR1020190015255 A KR 1020190015255A KR 20190015255 A KR20190015255 A KR 20190015255A KR 101988205 B1 KR101988205 B1 KR 101988205B1
Authority
KR
South Korea
Prior art keywords
user terminal
backup file
remote user
vpn
packet
Prior art date
Application number
KR1020190015255A
Other languages
Korean (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=66845997&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101988205(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 김기수 filed Critical 김기수
Priority to KR1020190015255A priority Critical patent/KR101988205B1/en
Application granted granted Critical
Publication of KR101988205B1 publication Critical patent/KR101988205B1/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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • 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/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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

Abstract

The present invention relates to a virtual private network service system capable of realizing a virtual private network by downloading a virtual private network system to a remote user terminal on a web through a public network and installing the system without having separate VPN equipment. The system comprises: a remote user terminal; a VPN main unit for transmitting virtual private network (VPN) installation information to the remote user terminal when the connection is established through the user terminal, and providing a VPN tunneling unit and an authentication module to the remote user terminal when a user′s installation request signal is received; and an internal terminal connected to a private network in the enterprise which the remote user terminal is to access and connecting to the remote user terminal.

Description

가상사설망 서비스 시스템{VIRTUAL PRIVATE NETWORK SERVICE SYSTEM}{VIRTUAL PRIVATE NETWORK SERVICE SYSTEM}

본 발명은 가상사설망 서비스 시스템에 관한 것으로, 보다 자세하게는, 공중망 네트워크를 통하여 웹상에서 원격지 사용자단말기로 가상사설망 시스템을 다운받아 설치할 수 있어 별도의 VPN 장비를 구비할 필요 없이 가상사설망 구현이 가능한 가상사설망 서비스 시스템에 관한 것이다.The present invention relates to a virtual private network service system, and more particularly, to a virtual private network service system capable of downloading and installing a virtual private network system from a web site to a remote user terminal via a public network, Service system.

통상적으로, 분산된 기업환경에서 본사와 지사를 연결하는 대표적인 방식은 전용회선(leased line)이나 프레임 릴레이(Frame relay)를 이용하여 망을 구축하는 것이다.Typically, in a distributed enterprise environment, a typical method of connecting head office and branch office is to construct a network using a leased line or a frame relay.

그런데, 이와 같은 전용회선(leased line)이나 프레임 릴레이(Frame relay)는 회선비용이 상대적으로 비싼 문제점이 있었다.However, such a leased line or a frame relay has a problem in that the line cost is relatively high.

따라서, 전용회선이나 프레임 릴레이에 비하여 비용이 저렴하고 널리 사용되는 인터넷(공중망)을 이용한 새로운 망 서비스로 가상사설망 VPN(Virtual Private Network) 기술이 부각되었다.Therefore, virtual private network (VPN) technology has emerged as a new network service using Internet (public network) which is inexpensive and widely used compared to leased line or frame relay.

가상사설망 VPN(Virtual Private Network) 기술은 기존의 공중망을 이용하여 원거리 단말기(지사)와 본사를 연결하여 외부와 안전한 통신을 할 수 있도록 가상으로 사설 통신망을 구축하는 기술이다.Virtual Private Network VPN (Virtual Private Network) technology is a technology to construct a virtual private network so that it can communicate securely with the outside by connecting the remote terminal (branch office) with the head office using the existing public network.

그러나, 종래의 가상사설망(VPN) 시스템은 도 1에 도시된 바와 같이, 공중망 네트워크상에서 가상사설망(VPN)의 시작점과 끝점에 '터널'이라는 가상의 통신선로를 구축하기 위해 원격지 클라이언트(401)측, 지사/분사의 LAN(301)측 그리고 기업 내 사설네트워크와 연결된 내부단말기PC측 LAN(201)에도 VPN 유닛(200,300,400)이 필요하였다.However, in the conventional VPN system, as shown in FIG. 1, in order to construct a virtual communication line called 'tunnel' at the start point and end point of a virtual private network (VPN) on a public network, VPN units 200, 300, and 400 were also required on the LAN 301 side of the branch office / branch office and on the internal terminal PC side LAN 201 connected to the private network in the corporation.

그러므로, 원격지의 사용자는 VPN 유닛(200,300,400)이 설치된 장소에서만 정보 및 데이터를 송/수신할 수밖에 없고, 사용자가 직접 VPN 유닛(200,300,400)을 소지해야만 했기 때문에 이동과 장소에 제약이 많은 문제점이 있었다.Therefore, the user at the remote location can only transmit and receive information and data in the place where the VPN units 200, 300, and 400 are installed, and the user has to directly carry the VPN units 200, 300,

또한, VPN 유닛(200,300,400)은 일반 사용자가 설치하는 데 용이하지 않을 뿐만 아니라 각기 다른 네트워크 및 시스템과의 호환에 문제점이 있었다.In addition, the VPN units 200, 300, and 400 are not easy to install by ordinary users, and have problems in compatibility with different networks and systems.

한국공개특허 제10-2015-0079236호Korean Patent Publication No. 10-2015-0079236 한국등록특허 제10-1473607호Korean Patent No. 10-1473607

따라서, 본 발명의 목적은, 별도의 VPN장비 없이 언제 어디서나 웹상에서 가상사설망 시스템을 다운받아 용이하게 설치할 수 있는 가상사설망(VPN) 서비스 시스템을 제공하는 데 있다.Accordingly, it is an object of the present invention to provide a virtual private network (VPN) service system capable of downloading and installing a virtual private network system on the web anytime and anywhere without a separate VPN device.

상기 목적은, 본 발명의 일 실시예에 따른 가상사설망 서비스 시스템은, 원격지의 원격지 사용자단말기; 상기 사용자단말기를 통해 접속되는 경우 가상사설망(VPN) 설치정보를 상기 원격지 사용자단말기로 전송하고, 사용자의 설치요청 신호가 수신되는 경우 VPN 터널링유닛과 인증모듈을 상기 원격지 사용자단말기로 제공하는 VPN 메인유닛; 및 상기 원격지 사용자단말기가 접근하고자 하는 기업 내 사설망 네트워크와 연결되고, 상기 원격지 사용자단말기와 상호 접속되는 내부단말기를 포함한다.According to an aspect of the present invention, there is provided a virtual private network service system comprising: a remote user terminal at a remote location; A VPN main unit for providing virtual private network (VPN) installation information to the remote user terminal when the connection is established through the user terminal, and providing a VPN tunneling unit and an authentication module to the remote user terminal, ; And an internal terminal connected to the private network in the enterprise to which the remote user terminal is to access and connected to the remote user terminal.

일 실시예에서, 본 발명의 일 실시예에 따른 본 발명의 일 실시예에 따른 가상사설망 서비스 시스템은, 상기 원격지 사용자단말기의 TDI 계층을 통과하는 모든 패킷의 목적지IP와 상기 각 내부단말기들의 IP를 비교하여 일치되는 패킷을 필터링(Filtering)하는 필터(Filter)와, 상기 필터링(Filtering)된 패킷을 후킹(Hooking) 하고 상기 후킹(Hooking)된 패킷의 목적지IP를 에이전트IP로 변환하는 리다이렉터(Redirector)모듈과, 상기 리다이렉터(Redirector)모듈에서 변환된 패킷을 전송받아 상기 에이전트IP를 VPN 메인유닛IP로 변환하고 상기 원격지 사용자단말기에서 최초 접속하고자 한 목적지IP를 상기 패킷의 컨텐츠에 추가하고 암호화하여 상기 VPN 메인유닛으로 전송하는 에이전트(Agent)모듈을 갖는 VPN 터널링유닛; 상기 원격지 사용자단말기의 VPN 메인유닛에 접속을 인증하는 인증모듈; 및 상기 에이전트(Agent)모듈로부터 암호화된 패킷이 수신되는 경우, 상기 패킷의 VPN 메인유닛IP를 상기 원격지 사용자단말기에서 최초 접속하고자 한 목적지IP로 변환하고 복호화하여 상기 기업 내 사설 네트워크와 연결된 내부단말기로 전송하고, 응답패킷을 암호화하여 상기 원격지 사용자단말기로 역순으로 전송하는 VPN 메인유닛을 더 포함할 수 있다.In one embodiment, a virtual private network service system according to an embodiment of the present invention, in accordance with an embodiment of the present invention, includes a destination IP of all packets passing through a TDI layer of the remote user terminal, And a redirector for hooking the filtered packet and converting the destination IP of the hooked packet into an agent IP, Module and a redirector module, converts the agent IP into a VPN main unit IP, adds a destination IP to the remote user terminal for the first connection to the contents of the packet, A VPN tunneling unit having an agent module for transmitting to the main unit; An authentication module for authenticating a connection to a VPN main unit of the remote user terminal; And, when an encrypted packet is received from the agent module, converts the IP address of the VPN main unit of the packet into the destination IP address of the remote user terminal for the first connection and decrypts the IP address to an internal terminal connected to the private network And a VPN main unit for encrypting the response packet and transmitting the encrypted response packet to the remote user terminal in the reverse order.

일 실시예에서, 상기 VPN 메인유닛은, 소프트웨어 컴포넌트 사용에 대한 개발자의 권한을 제한하고, 개발자가 사용하는 개발 시스템에 대한 보안 인증을 수행하는 개발 환경 관리 시스템 상에서 구현되되, 상기 개발 환경 관리 시스템은, 개발 시스템으로부터 소프트웨어 컴포넌트 생성 또는 수정 허가 요청 메시지를 수신하는 경우, 해당 개발 시스템의 권한 정보를 확인하여 소프트웨어 컴포넌트 생성 또는 수정 허가 요청 메시지를 처리하되, 상기 소프트웨어 컴포넌트는, 소스코드, 디버깅 정보를 포함하는 바이너리, 디버깅 정보를 포함하지 않는 순수 바이너리, 코드에 대한 상세설명을 위한 문서 및 코드의 이해를 위한 공정 수식모델 중 적어도 하나를 포함하여 구성되며, 상기 권한 정보는, 소프트웨어 컴포넌트를 읽을 수 있는 읽기 권한, 소프트웨어 컴포넌트를 생성 및 수정하여 저장할 수 있는 저장 권한 및 권한 정보를 조정할 수 있는 권한조정 권한 중 적어도 하나를 포함하여 구성되며, 상기 개발 환경 관리 시스템은, 어느 하나의 개발 시스템에 의해 빌드한 모듈을 다른 개발 시스템에서 사용할 수 있도록 권한 정보를 만족하는 어느 하나의 개발 시스템에 의해 소프트웨어 컴포넌트가 생성 또는 수정되는 경우, 이를 저장하여 다른 개발 시스템에서도 공유 가능하도록 제어하며, 이력 정보를 통해 특정 변수의 값이 어떻게 달라졌는지 단계별로 추적하고 그 특정 변수가 임의의 다른 변수의 값 변경에 어떠한 영향을 주었는지도 파악할 수 있도록 상기 소프트웨어 컴포넌트의 생성 또는 수정 이력을 저장한 데이터베이스를 구축하며, 소프트웨어 컴포넌트의 종류, 해당 소프트웨어 컴포넌트의 생성/수정 여부, 해당 소프트웨어 컴포넌트의 생성/수정 일자, 해당 소프트웨어 컴포넌트의 생성/수정 빈도, 해당 소프트웨어 컴포넌트를 생성/수정한 개발 시스템의 권한 정보를 포함하여 이력 정보를 생성하며, 이력 정보를 생성할 때마다 인덱스를 부여하여 이력 정보 데이터베이스에 저장하되, 소프트웨어 컴포넌트의 중요도에 따라 이력 정보 데이터베이스를 구축할 수 있으며, 중요도가 가장 높은 종류에 해당하는 소프트웨어 컴포넌트의 이력 정보 데이터베이스는 저장 공간 관리를 위한 데이터베이스 갱신 대상에서 제외하거나, 소프트웨어 컴포넌트의 생성/수정 일자 별로 이력 정보 데이터베이스를 구축하거나, 또는 권한 정보 별로 이력 정보 데이터베이스를 구축하며, 저장 공간 관리를 위해 이력 정보 데이터베이스의 인덱스가 미리 설정된 인덱스에 도달하면 이력 정보 데이터베이스 갱신을 수행하며, 이력 정보 데이터베이스 갱신을 위해 이력 정보 데이터베이스의 전체 인덱스를 오름차순으로 하여 3 개의 구간으로 나누고, 3 개의 구간 중 가장 낮은 인덱스를 포함하는 구간에 해당하는 이력 정보는 생성/수정 일자가 오랜 시간이 경과한 것으로 간주하여 조건 없이 삭제하고, 3 개의 구간 중 가운데 구간에 해당하는 이력 정보 중 중요도가 가장 높은 소프트웨어 컴포넌트의 종류에 해당하는 이력 정보만을 유지하고 나머지 이력 정보는 모두 삭제하여 갱신하거나, 생성/수정 빈도가 미리 설정된 기준 빈도보다 높은 이력 정보는 모두 삭제하고 나머지 이력 정보는 유지하는 방식으로 이력 정보 데이터베이스를 갱신하거나, 또는 권한 정보가 최고 권한 정보로 간주되는 권한 정보를 조정할 수 있는 권한조정 권한인 이력 정보는 그대로 유지하고, 나머지 이력 정보는 모두 삭제하는 방식으로 이력 정보 데이터베이스를 갱신하며, 3 개의 구간 중 가장 높은 인덱스를 포함하는 구간에 해당하는 이력 정보는 생성/수정 일자가 비교적 최근의 것으로 간주하여 그대로 유지될 수 있다.In one embodiment, the VPN main unit is implemented on a development environment management system that restricts a developer's authority on use of a software component and performs security authentication on a development system used by a developer, , And when receiving a software component creation or modification permission request message from the development system, processing the software component creation or modification permission request message by checking the rights information of the development system, the software component including source code and debugging information A binary binary not including debugging information, a document for a detailed description of the code, and a process equation model for understanding the code, the permission information including at least one of read Authority, software Wherein the development environment management system includes at least one of a storage right for creating and modifying a storage unit and a permission right for adjusting rights information, When a software component is created or modified by any one development system that satisfies the rights information so that it can be used in the development system, it is stored and controlled so that it can be shared by other development systems. A database storing the creation or revision history of the software component is constructed so that it can be tracked step by step and the influence of the specific variable on the change of the value of any other variable can be grasped, Component Generates history information including whether to create / modify the software component, the creation / modification date of the software component, the creation / modification frequency of the software component, and the rights information of the development system that created / modified the software component, The history information database of the software component corresponding to the type having the highest importance can be constructed by updating the database for the storage space management Or a history information database for each creation / modification date of a software component, or builds a history information database for each piece of authority information, and sets an index of the history information database in advance When the index is reached, the history information database is updated. To update the history information database, the entire index of the history information database is divided into three sections in ascending order, and the history information corresponding to the section including the lowest index among the three sections It is assumed that the generation / modification date is considered to have elapsed for a long time, and it is deleted without any condition, and only the history information corresponding to the type of the software component having the highest importance among the history information corresponding to the middle section of the three sections is maintained, Updating the history information database in such a manner that all history information whose creation / modification frequency is higher than a preset reference frequency is deleted and remaining history information is maintained, or the authority whose rights information is regarded as the highest authority information Adjust information The history information corresponding to the section having the highest index among the three sections is updated by updating / updating the history information database in such a manner that the history information as the authority adjusting authority is retained and all remaining history information is deleted. It can be regarded as relatively recent and can be maintained as it is.

일 실시예에서, 상기 VPN 메인유닛은, 해킹 또는 랜섬웨어와 같은 외부의 공격으로부터 보호하여야 할 정보를 백업 파일로 생성한 후, 생성된 백업 파일을 동일한 데이터를 포함하는 1차 백업 파일과 2차 백업을 차례로 생성하여 1차 백업 파일과 2차 백업 파일의 저장 장소를 달리 하여 저장하는 백업 파일 분산화 모듈을 더 포함하며, 상기 백업 파일 분산화 모듈은, 폴더의 존재 또는 해당 폴더의 위치를 예측하고 공격하는 것을 방지하고 삭제되어서는 안 되는 데이터가 실수로 삭제되거나 수정되는 것을 방지할 수 있도록 기 설정된 주기로 저장된 1차 백업 파일과 2차 백업 파일의 저장 장소를 시스템 상의 기 설정된 장소, 새롭게 생성된 장소, 또는 임의의 랜덤 변수에 따라 생성된 폴더나 서브 폴더로 지정된 장소에 저장하며, 외부로부터 침입이 감지될 경우, 일부 백업 파일이 공격에 의해 손실되거나 삭제되는 경우에도 시스템 상에 산발적으로 존재하는 백업 파일을 이용하여 필요한 자료를 복구하도록 할 수 있도록 기 생성되었던 1차 백업 파일과 2차 백업 파일로부터의 복제를 연속적으로 수행하여 각 백업 파일의 서브 백업 파일들을 다수 개 생성하며, 생성된 다수 개의 서브 백업 파일들을 랜덤 변수에 따라 생성된 서로 다른 장소에 개별적으로 저장하며, 다수 개의 백업 파일 중 현재 공격받고 있는 백업 파일이라고 판단된 파일을 시스템 상에서 영구적으로 삭제하며, 백업 파일을 클라우드 서비스와 연동된 동기화 폴더에 저장한 경우, 해당 동기화 폴더에 백업 파일의 저장이 완료되고 저장한 백업 파일이 클라우드 상에 업로드 되면, 해당 동기화 폴더에 대한 동기화를 해제하며, 클라우드 상에 업로드 하였던 백업 파일의 저장 장소를 변경할 순서가 된 경우, 선택적 동기화를 해제하였던 폴더의 동기화를 다시 수행하여 클라우드 서비스에 업로드 하였던 백업 파일을 다운받은 후, 다운받은 백업 파일을 랜덤 변수에 따라 새롭게 생성된 장소로 이동시킬 수 있다.In one embodiment, the VPN main unit generates information to be protected from an external attack such as hacking or Ransomware as a backup file, and then transmits the generated backup file to a primary backup file including the same data and a secondary Further comprising a backup file distribution module for generating a backup in order to store the primary backup file and the secondary backup file at different storage locations, wherein the backup file distribution module predicts the existence of the folder or the location of the folder, And to prevent the data that should not be deleted from being accidentally deleted or modified, the storage location of the primary backup file and the secondary backup file, which are stored at predetermined intervals, is stored in a predetermined place, a newly created place, Or stored in a location designated by a folder or subfolder generated according to a random variable, and detects an intrusion from outside In this case, even if some backup files are lost or deleted due to an attack, duplication from the original backup file and the secondary backup file that have been created so that the necessary data can be restored using sporadically existing backup files in the system To generate a plurality of sub-backup files of each backup file, and to individually store the generated plurality of sub-backup files in different places generated according to the random variable, If the backup file is permanently deleted from the system and the backup file is stored in the synchronization folder linked with the cloud service, the backup file is stored in the corresponding synchronization folder and the backup backup file is uploaded to the cloud , Disables synchronization for that synchronization folder, If the order of changing the storage location of the uploaded backup file is reached, the folder in which the selective synchronization is canceled is synchronized again to download the backup file uploaded to the cloud service, and the downloaded backup file is newly created according to the random variable Location.

따라서, 전술한 본 발명의 일 실시예에 의한 가상사설망 서비스 시스템에 의하면, 원격지 사용자단말기 측에 별도의 VPN 장비 없이 언제 어디서나 공중망 네트워크를 통하여 웹상에서 가상사설망 시스템을 다운받아 가상사설망(VPN)을 용이하게 설치 및 이용할 수 있다.Therefore, according to the virtual private network service system according to the embodiment of the present invention, the virtual private network system can be downloaded from the web through the public network at any time, anywhere without using a separate VPN device, And can be installed and used.

또한, 어플리케이션(Application) 계층에서 가상사설망시스템이 구현되어 시스템에 무리가 없고 전송속도가 향상된다.In addition, a virtual private network system is implemented in an application layer, so that there is no problem in the system and the transmission speed is improved.

또한, 패킷이 TDI계층에서 후킹됨으로써 시스템의 변경 및 부담이 없고, 타 어플리케이션과의 충동 가능성이 적어진다.In addition, since the packet is hooked in the TDI layer, there is no change or burden on the system, and the possibility of impulsiveness with other applications is reduced.

도 1은 종래 가상사설망(vpn) 서비스 시스템에 대한 구성블록도,
도 2는 본 발명의 일 실시예에 따른 가상사설망 서비스 시스템의 구성블록도,
도 3은 본 발명의 일 실시예에 따른 가상사설망 서비스 시스템의 VPN 터널링유닛의 구성블록도,
도 4는 본 발명의 일 실시예에 따른 가상사설망 서비스 시스템의 각 구성이 가지는 IP주소를 나타낸 블록도,
도 5는 본 발명의 일 실시예에 따른 가상사설망 서비스 시스템의 패킷의 변환 과정을 도시한 블록도,
도 6은 본 발명의 일 실시예에 따른 가상사설망 서비스 시스템의 흐름도,
도 7은 본 발명의 일 실시예에 있어서, 사용자에게 제공되는 가상사설망 설치정보를 나타낸 화면예,
도 8은 본 발명의 일 실시예에 있어서, 사용자에게 제공되는 인증모듈을 나타낸 화면예이다.
1 is a block diagram of a conventional virtual private network (vpn) service system,
2 is a block diagram of a virtual private network service system according to an embodiment of the present invention;
3 is a block diagram of a VPN tunneling unit of a virtual private network service system according to an embodiment of the present invention.
4 is a block diagram illustrating IP addresses of respective components of a virtual private network service system according to an exemplary embodiment of the present invention.
5 is a block diagram illustrating a process of converting a packet of a virtual private network service system according to an embodiment of the present invention.
6 is a flowchart of a virtual private network service system according to an embodiment of the present invention;
7 is a diagram illustrating an example of a virtual private network installation information provided to a user in an embodiment of the present invention,
8 is an example of a screen showing an authentication module provided to a user in an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 일 실시예에 대하여 상세히 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 종래 가상사망에 대한 구성블록도, 도 2는 본 발명의 일 실시예에 따른 VPN(Virtual Private Network) 가상사설망에 대한 구성블록도, 도 3은 본 발명의 일 실시예에 따른 가상사설망의 VPN 터널링유닛(53)에 대한 블록도이다.FIG. 2 is a block diagram of a VPN (Virtual Private Network) virtual private network according to an embodiment of the present invention. FIG. 3 is a block diagram of a virtual private network according to an embodiment of the present invention. Lt; RTI ID = 0.0 > 53 < / RTI >

도 2 및 도 3을 참조하면, 본 발명의 일 실시예에 따른 가상사설망(VPN) 서비스 시스템(1)은, 원격지 사용자단말기(20), 공중망 네트워크(10), 기업 내 사설네트워크(40), VPN 메인유닛(50), VPN 터널링유닛(53) 및 내부단말기(30)를 포함한다.2 and 3, a virtual private network (VPN) service system 1 according to an embodiment of the present invention includes a remote user terminal 20, a public network 10, an enterprise private network 40, A VPN main unit 50, a VPN tunneling unit 53, and an internal terminal 30.

여기서, VPN 터널링유닛(53)은 필터(Filter)(531), 리다이렉터모듈(Redirector module)(533) 및 에이전트모듈(Agent module)(535)을 더 포함할 수 있다.Here, the VPN tunneling unit 53 may further include a filter 531, a redirector module 533, and an agent module 535.

원격지 사용자단말기(20)는 공중망 네트워크(10)를 통하여 공중망 네트워크(10)와 기업 내 사설네트워크(40)를 연결하는 VPN 메인유닛(50)에 접속한다.The remote user terminal 20 connects to the VPN main unit 50 connecting the public network 10 and the private network 40 in the enterprise via the public network 10.

원격지 사용자단말기(20)는 도 2에 도시된 바와 같이, 인터넷 또는 공중망 네트워크(10)로 접속이 가능한 컴퓨터로 마련될 수 있다.2, the remote user terminal 20 may be provided as a computer connectable to the Internet or the public network 10.

여기서, 인터넷 또는 공중망 네트워크(10)는 무선 또는 유선을 이용한 다양한 방법의 이용이 가능하다.Here, the Internet or the public network 10 can use various methods using wireless or wireline.

내부단말기(30)는 도 2에 도시된 바와 같이, VPN 메인유닛(50)과 연결된 기업 내 사설네트워크(40)에 연결된다.The internal terminal 30 is connected to a private network 40 in the enterprise connected to the VPN main unit 50, as shown in FIG.

VPN 메인유닛(50)은 에이전트모듈(535)과 SSL(Secure Sockets Layer) WEB 표준 암호화 통신을 한다.The VPN main unit 50 communicates with the agent module 535 through SSL (Secure Sockets Layer) WEB standard encryption communication.

SSL(Secure Sockets Layer) WEB 표준 암호화 통신이란, 웹서버 인증으로 브라우저와 서버 간의 통신에서 정보를 암호화함으로써 도중에 해킹을 통해 정보가 유출되더라도 정보의 내용을 보호할 수 있는 통신기술이다.SSL (Secure Sockets Layer) Web standard encryption communication is a communication technology that can protect the contents of information even if the information is leaked through hacking by encrypting the information in the communication between the browser and the server by web server authentication.

따라서, VPN 메인유닛(50)은 기존 네트워크의 성능 저하를 최소화하면서 물리적 장비보호기능, 내부 보안정보 보호기능, 가상사설망(VPN)기능을 제공할 수 있는 장점이 있다.Accordingly, the VPN main unit 50 can provide a physical device protection function, an internal security information protection function, and a virtual private network (VPN) function while minimizing degradation of the existing network.

또한, VPN 메인유닛(50)은 통신보안을 위해 RSA(4096), RC5, 3DES, SHA-1과 같은 다양한 알고리즘과, SSL v2, v3, TLS v1, WTLS와 같은 프로토콜을 지원할 수 있다.In addition, the VPN main unit 50 can support various algorithms such as RSA 4096, RC5, 3DES, SHA-1 and protocols such as SSL v2, v3, TLS v1, and WTLS for communication security.

또한, VPN 메인유닛(50)은 High Availability(H/A)가 가능하므로 장애발생시 Failover를 통하여 안정된 서비스를 위한 구성이 가능하다.In addition, since the VPN main unit 50 is capable of High Availability (H / A), it is possible to provide a configuration for stable service through a failover when a failure occurs.

또한, VPN 메인유닛(50)은 시스템간 load balance(L/B)가 가능하여 부하분산 운영이 가능하다.In addition, the VPN main unit 50 can load balance (L / B) between systems so that load balancing operation is possible.

VPN 터널링유닛(53)은 도 3에 도시된 바와 같이, 필터(531), 리다이렉터모듈(533) 및 에이전트모듈(535)을 포함할 수 있다.The VPN tunneling unit 53 may include a filter 531, a redirector module 533 and an agent module 535, as shown in FIG.

필터(531)는 도 3에 도시된 바와 같이, 원격지 사용자단말기(20)의 TDI계층(31)을 통과하는 모든 패킷(60)을 검사하되, TDI계층(31)을 통과하는 패킷(60) 중에서 소정 내부단말기(30)로 향하는 패킷(60)을 필터링한다.The filter 531 checks all the packets 60 passing through the TDI layer 31 of the remote user terminal 20 as shown in Figure 3, And filters packets 60 destined for a given internal terminal 30. [

여기서, TDI계층(31)은 도 3에 도시된 바와 같이, 윈도우의 유저모드(33)와 커널모드(35) 사이에 표준으로 위치한다.Here, the TDI layer 31 is located as a standard between the user mode 33 of the window and the kernel mode 35, as shown in FIG.

PC의 모든 전송 패킷(60)들은 원칙적으로 윈도우의 유저모드(33)를 통과하여 커널모드(35)를 지나면서 접근 가능성 여부를 판단 받게 되고, 물리적으로 불가능 영역이라 판단되는 경우는 커널모드(35)영역으로 흘려보내게 되는데, TDI계층(31)에 필터(531)를 설치하여 불가능한 영역(기업 내 사설네트워크)으로 향하는 패킷(60)을 필터링할 수 있다.All the transmission packets 60 of the PC are judged as accessible or not accessible through the user mode 33 of the window and the kernel mode 35. If it is determined that the packets are physically impossible, The TDI layer 31 may be provided with a filter 531 to filter packets 60 that are destined for an area (private network in the enterprise) that is not possible.

따라서, TDI계층(31)에서 패킷(60)을 후킹 함으로써, 시스템을 변경하지 않아도 되며 시스템에 부담이 없고 타 어플리케이션과의 충동 가능성도 적어지게 된다.Therefore, by hooking up the packet 60 in the TDI layer 31, the system need not be changed, the system is not burdened, and the possibility of impulsiveness with other applications is reduced.

이하, 필터링하는 조건 및 방법에 대하여 후술하기로 한다.Hereinafter, filtering conditions and methods will be described later.

리다이렉터모듈(533)은 도 3에 도시된 바와 같이, 필터(531)에서 필터링된 패킷(60a)을 후킹하여 에이전트모듈(535)로 전송한다.The redirector module 533 hooks the packet 60a filtered by the filter 531 and transmits it to the agent module 535 as shown in FIG.

에이전트모듈(535)은 리다이렉터모듈(533)로부터 패킷(60b)을 수신받는 경우, VPN 메인유닛(50)과 SSL통신연결을 맺는다.The agent module 535 establishes an SSL communication connection with the VPN main unit 50 when receiving the packet 60b from the redirector module 533. [

에이전트모듈(535)은 유저모드(33)의 어플리케이션 계층에서 VPN 메인유닛(50)과 SSL 통신을 맺기 때문에 시스템에 무리가 없고 전송속도가 증가하는 장점이 있다.Since the agent module 535 establishes SSL communication with the VPN main unit 50 in the application layer of the user mode 33, there is no problem in the system and the transmission speed is increased.

전술한, 가상사설망 서비스 시스템(1)을 도 3 내지 도 8을 참조하여 자세히 설명하면 다음과 같다.The virtual private network service system 1 will be described in detail with reference to FIGS. 3 to 8. FIG.

본발명의 일 실시예에 따른 가상사설망 서비스 시스템(1)은 원격지 사용자단말기(20)와 에이전트모듈(535), 에이전트모듈(535)과 VPN 메인유닛(50) 및 VPN 메인유닛(50)과 기업 내 사설네트워크(40)와 연결된 내부단말기(30)의 서버와 각각 3번의 연결이 된다.The virtual private network service system 1 according to an embodiment of the present invention includes a remote user terminal 20, an agent module 535, an agent module 535, a VPN main unit 50, a VPN main unit 50, And is connected to the server of the internal terminal 30 connected to the private network 40 three times.

본발명의 일 실시예에 따른 가상사설망 서비스 시스템(1)은 도 4에 도시된 바와 같이, 원격지 사용자단말기(20), 에이전트모듈(535), VPN 메인유닛(50) 및 내부단말기(30)는 각각의 IP주소(70,80,90,100)를 가질 수 있다.4, the remote user terminal 20, the agent module 535, the VPN main unit 50, and the internal terminal 30 are connected to a network Each IP address (70, 80, 90, 100) can have.

따라서, 원격지 사용자단말기(20)에서 발생된 패킷(60)은 각 IP주소(70,80,90,100)를 통하여 목적지로 전송/수신될 수 있다.Accordingly, the packet 60 generated in the remote user terminal 20 can be transmitted / received to the destination via the respective IP addresses 70, 80, 90, and 100.

사용자는 원격지 사용자단말기(20)를 이용하여 공중망 네트워크(10)를 통해 VPN 메인유닛(50)에 접속한다.(S10)The user connects to the VPN main unit 50 through the public network 10 using the remote user terminal 20. (S10)

사용자는 VPN 메인유닛(50)에 접속하기 위해서 원격지 사용자단말기(20)를 사용하여 웹브라우저를 실행시키고, WEB 주소창에 VPN 메인유닛(50)의 관리자가 설정한 IP주소를 입력할 수 있다.The user can execute the web browser using the remote user terminal 20 to access the VPN main unit 50 and input the IP address set by the administrator of the VPN main unit 50 in the WEB address window.

원격지 사용자단말기(20)는 도 4에 도시된 바와 같이, 공중망 네트워크(10)와 연결된 각각의 할당된 공인IP(80)주소를 가질 수 있다.The remote user terminal 20 may have its assigned public IP address 80 associated with the public network 10, as shown in FIG.

예를 들어, 원격지 사용자단말기(20)는 도 4에 도시된 바와 같이, 사용자 단말기IP(80) 192.168.1.1 를 가질 수 있다.For example, the remote user terminal 20 may have a user terminal IP 80 (192.168.1.1), as shown in FIG.

원격지 사용자단말기(20)가 VPN 메인유닛(50)에 접속하면, VPN 메인유닛(50)은 원격지 사용자단말기(20)로 가상 사설망 설치정보(51)를 전송한다.(S11) When the remote user terminal 20 accesses the VPN main unit 50, the VPN main unit 50 transmits the virtual private network installation information 51 to the remote user terminal 20. (S11)

원격지 사용자단말기(20)가 VPN 메인유닛(50)에 접속되면, VPN 메인유닛(50)은 도 7에 도시된 바와 같이, 가상 사설망 설치정보(51)를 원격지 사용자단말기(20)로 전송한다.When the remote user terminal 20 is connected to the VPN main unit 50, the VPN main unit 50 transmits the virtual private network installation information 51 to the remote user terminal 20 as shown in FIG.

가상사설망 설치정보(51)는 도 7에 도시된 바와 같이, 가상사설망 설치여부를 묻는 어플리케이션 창으로 전송될 수 있다.As shown in FIG. 7, the virtual private network installation information 51 may be transmitted to an application window asking whether a virtual private network is installed.

사용자는 도 7에 도시된 바와 같이, 설치도구(52)를 클릭함으로써 가상사설망(VPN) 소프트웨어를 설치할 수 있다.The user may install virtual private network (VPN) software by clicking on the installation tool 52, as shown in FIG.

여기서, 설치도구(52)는 다양한 형태로 가능한 바, 예를 들어, ActiveX컨트롤 드라이버설치를 이용할 수 있다Here, the installation tool 52 can be in various forms, for example, an ActiveX control driver installation can be used

따라서, 사용자는 도 1에 도시된 바와 같이 사용자단말기 측에 별도의 VPN유닛(300,400)을 구비하지 않아도, 언제 어디서나 공중망 네트워크(10)를 통하여 가상사설망 소프트웨어를 다운받아 용이하게 설치 및 이용할 수 있는 장점이 있다.1, the user can easily install and use the virtual private network software by downloading the virtual private network software anytime and anywhere through the public network 10 without having to provide the separate VPN units 300 and 400 on the user terminal side .

사용자는 원격지 사용자단말기(20)를 통하여 VPN 메인유닛(50)으로 가상사설망 설치 여부의 응답신호를 전송한다.(S13)The user transmits a response signal to the VPN main unit 50 via the remote user terminal 20, indicating whether the virtual private network is installed (S13)

사용자는 도 7에 도시된 바와 같이, 가상사설망 설치정보(51)에서 설치도구(52)를 클릭함으로써 VPN 메인유닛(50)으로 응답신호를 전송할 수 있다.The user can transmit a response signal to the VPN main unit 50 by clicking the installation tool 52 in the virtual private network installation information 51 as shown in FIG.

여기서, 사용자가 설치도구(52)를 선택을 하지 않을 경우에는 VPN 메인유닛(50)은 접속을 해제할 수 있고 다시 한번 설치 여부를 물을 수 있다.Here, if the user does not select the installation tool 52, the VPN main unit 50 can release the connection and ask whether to install the installation tool 52 again.

사용자가 설치도구(52)를 선택하는 경우, VPN 메인유닛(50)은 원격지 사용자단말기(20)로 VPN 터널링유닛(53)과 인증모듈(55)을 다운로드한다.(S15) When the user selects the installation tool 52, the VPN main unit 50 downloads the VPN tunneling unit 53 and the authentication module 55 to the remote user terminal 20 (S15)

사용자는 원격지 사용자단말기(20)로 다운로드된 VPN 터널링유닛(53)과 인증모듈(55)을 설치한다.(S17)The user installs the VPN tunneling unit 53 and the authentication module 55 downloaded to the remote user terminal 20. (S17)

원격지 사용자단말기(20)에 VPN 터널링유닛(53)과 인증모듈(55)이 설치되면, 도 8에 도시된 바와 같이, VPN 터널링을 맺기 위한 인증모듈(55) 어플리케이션 창이 원격지 사용자단말기(20)로 전송되고, 사용자는 인증모듈(55)을 통해 원격지 사용자단말기(20)의 접속을 인증받는다.(S18) When the VPN tunneling unit 53 and the authentication module 55 are installed in the remote user terminal 20, an authentication module 55 application window for establishing VPN tunneling is installed in the remote user terminal 20 And the user is authenticated for connection with the remote user terminal 20 through the authentication module 55. (S18)

인증모듈(55)을 통한 로그인 방식은 다양하게 마련될 수 있는 바, 예를 들어, 도 8에 도시된 바와 같이, 아이디 /비밀번호, 인증서, 아이디/비밀번호/인증서 또는 핸드폰 SMS 인증방식을 사용할 수 있다.As shown in FIG. 8, for example, an ID / password, a certificate, an ID / password / certificate, or a mobile phone SMS authentication method can be used as the login method through the authentication module 55 .

사용자는 아이디/패스워드 및 인증서를 통하여 인증이 허가되면, 원격지 사용자단말기(20)는 VPN 메인유닛(50) 에 접속된다.(S19) If the user is permitted to authenticate via the ID / password and the certificate, the remote user terminal 20 is connected to the VPN main unit 50. (S19)

원격지 사용자단말기(20)에서 패킷(60)이 생성되어 유저모드(33), TDI계층 및 커널모드(35)를 통과한다.(S20)A packet 60 is generated at the remote user terminal 20 and passes through the user mode 33, the TDI layer, and the kernel mode 35. At step S20,

원격지 사용자단말기(20)의 어플리케이션에서 발생되는 모든 패킷(60)은 도 3에 도시된 바와 같이, 유저모드(33)에서 TDI계층(31)을 통과하고 커널모드(35)로 향한다.All packets 60 generated in the application of the remote user terminal 20 pass through the TDI layer 31 in the user mode 33 and into the kernel mode 35 as shown in FIG.

여기서, 필터(531)는 TDI계층(31)을 통과하는 모든 패킷(60) 중 패킷의 목적지IP(63)가 기업 내 사설네트워크(40)와 연결된 내부단말기(PC1~PCn)들의 IP(70)와 일치여부를 비교한다.(S21) Herein, the filter 531 determines whether the destination IP 63 of the packet among all the packets 60 passing through the TDI layer 31 is the IP 70 of the internal terminals PC1 to PCn connected to the private network 40 in the enterprise. (S21). ≪ RTI ID = 0.0 >

필터(531)는 다양한 위치에 설치될 수 있는 바, 예를 들어 도 3에 도시된 바와 같이, TDI계층(31)에 설치될 수 있다.The filter 531 may be installed at various positions, for example, as shown in FIG. 3, and may be installed in the TDI layer 31.

따라서, 시스템의 변경 및 부담이 없고, 타 어플리케이션과의 충동 가능성이 적어진다.Therefore, there is no change or burden on the system, and the possibility of impulsiveness with other applications is reduced.

필터(531)는 TDI계층(31)을 통과하는 모든 패킷(60)의 목적지IP(63)를 기업 내 사설 네트워크(40)와 연결된 소정 내부단말기(PC1~PCn)들의 IP(70)와 비교한다The filter 531 compares the destination IP 63 of all the packets 60 that pass through the TDI layer 31 with the IP 70 of the predetermined internal terminals PC1 to PCn connected to the private network 40 in the enterprise

필터(531)는 다양한 필터링 조건을 가지고 수행될 수 있는 바, 예를 들어, TDI계층(31)을 통과하는 모든 패킷(60)의 목적지IP(63)를 기업 내 사설네트워크(40)와 연결된 소정 내부단말기(PC1~PCn)들의 IP(70)와 비교할 수 있다.The filter 531 may be performed with various filtering conditions so that the destination IP 63 of all the packets 60 passing through the TDI layer 31 may be transmitted to the private network 40 Can be compared with the IP 70 of the internal terminals PC1 to PCn.

또한, 필터(531)는 송/수신하는 패킷을 제어할 때, 단순한 규칙으로 필터링하는 것이 아니라 네트워크 상태에 따라 변화하는 세션을 관리하는 상태테이블을 통해 지능적으로 필터링하는 상황분석방식으로 구현할 수 있다.In addition, the filter 531 can be implemented by a situation analysis method that intelligently filters through a state table for managing a session that changes according to a network state, instead of filtering by a simple rule when controlling a packet to be transmitted / received.

따라서, 필터(531)는 도 3에 도시된 바와 같이, 원격지 사용자단말기(20)의 TDI계층(31)을 통과하는 모든 패킷(60) 중에서 패킷(60)의 목적지IP(63)와 소정 내부단말기(PC1~PCn)들의 IP(70)를 비교하고, 패킷(60)의 목적지 IP(63)와 소정 내부단말기(PC1~PCn)들의 IP(70)가 일치되는 경우, 일치되는 패킷(60)은 필터링하고, 나머지 패킷(60)은 커널모드(35)로 흘려보낸다.3, the filter 531 stores the destination IP 63 of the packet 60 among all the packets 60 passing through the TDI layer 31 of the remote user terminal 20, When the destination IP 63 of the packet 60 and the IP 70 of the predetermined internal terminals PC1 to PCn coincide with each other, And the remaining packet 60 flows into the kernel mode 35. [

필터(531)는 패킷(60)의 목적지IP(63)가 소정 내부단말기(PC1~PCn)들의 IP(70)와 일치되지 않는 경우, 패킷(60)을 커널모드(35)로 그냥 흘려보낸다.(S22)The filter 531 simply flows the packet 60 to the kernel mode 35 if the destination IP 63 of the packet 60 does not match the IP 70 of the given internal terminals PC1 to PCn. (S22)

필터(531)는 도 3에 도시된 바와 같이, 패킷(60)의 목적지IP(63)와 내부단말기(PC1~PCn)들의 IP(70)가 일치되는 경우, 패킷(60a)을 필터링하게 된다.The filter 531 filters the packet 60a when the destination IP 63 of the packet 60 and the IP 70 of the internal terminals PC1 to PCn are matched as shown in Fig.

이때, 리다이렉터모듈(533)은 필터(531)에서 필터링된 패킷(60a)을 후킹하여 패킷(60a)의 목적지IP(63)를 에이전트모듈IP(90)로 변환하여 에이전트모듈(535)로 전송한다.(S23)At this time, the redirector module 533 hooks the packet 60a filtered by the filter 531, converts the destination IP 63 of the packet 60a into the agent module IP 90, and transmits it to the agent module 535 (S23)

리다이렉터모듈(533)은 도 3에 도시된 바와 같이, 패킷(60a)을 후킹하여 에이전트모듈(535)로 전송한다.The redirector module 533 hooks the packet 60a and transmits it to the agent module 535 as shown in FIG.

이때, 패킷(60)의 목적지IP(63)가 10.10.0.1로 생성되었을 때, 출발지 포트가 임의의 포트를 할당하게 되고, 리다이렉터모듈(533)은 메모리에 할당된 임의의 포트(출발지포트)와 10.0.0.1 이라는 목적지주소와 목적지 포트를 메모리에 저장한다.At this time, when the destination IP 63 of the packet 60 is generated as 10.10.0.1, the source port is assigned an arbitrary port, and the redirector module 533 allocates the arbitrary port (source port) allocated to the memory Store the destination address and destination port of 10.0.0.1 in memory.

그리고, 리다이렉터모듈(533)은 도 5에 도시된 바와 같이, 패킷(60a)의 목적지IP(63)를 에이전트모듈(535)의 에이전트모듈IP(90)로 변환하고 변환된 패킷(60b)을 에이전트모듈(535)로 전송하게 된다.5, the redirector module 533 converts the destination IP 63 of the packet 60a into the agent module IP 90 of the agent module 535 and transmits the converted packet 60b to the agent Module 535, as shown in FIG.

즉, 리다이렉터모듈(533)에서는 도 5에 도시된 바와 같이 목적지IP(63)가 10.10.0.1/80 에서 127.0.0.1/31081로 변환되어 에이전트모듈(535)로 전송된다.That is, in the redirector module 533, the destination IP 63 is changed from 10.10.0.1/80 to 127.0.0.1/31081 and transferred to the agent module 535 as shown in FIG.

패킷(60b)을 수신받은 에이전트모듈(535)은 패킷(60b)의 에이전트모듈IP(90)를 VPN 메인유닛IP(100)로 변환한다.(S24) The agent module 535 receiving the packet 60b converts the agent module IP 90 of the packet 60b into the VPN main unit IP 100. In step S24,

에이전트모듈(535)은 패킷(60b)을 수신받는 경우, VPN 메인유닛(50)과 SSL 통신을 연결하고, 수신받은 패킷(60b)을 VPN 메인유닛(50)으로 전송한다.When receiving the packet 60b, the agent module 535 connects the VPN main unit 50 with the SSL communication and transmits the received packet 60b to the VPN main unit 50.

에이전트모듈(535)로 패킷(60b)이 수신되면, 에이전트모듈(535)은 원격지 사용자단말기(20)의 유저모드(33)에 설치되어 VPN 메인유닛(50)과 SSL 통신을 맺는다.When the packet 60b is received by the agent module 535, the agent module 535 is installed in the user mode 33 of the remote user terminal 20 and establishes SSL communication with the VPN main unit 50.

에이전트모듈(535)은 리다이렉터모듈(533)로부터 전송된 패킷(60c)을 VPN 메인유닛(50)으로 전송한다.The agent module 535 transmits the packet 60c transmitted from the redirector module 533 to the VPN main unit 50. [

이때, 에이전트모듈(535)은 수신된 패킷(60b)의 목적지IP(63)를 VPN 메인유닛IP(100)로 변환한다.At this time, the agent module 535 converts the destination IP 63 of the received packet 60b into the VPN main unit IP 100.

즉, 도 5에 도시된 바와 같이, 에이전트모듈(535)에서 수신된 패킷(60b)의 목적지IP(63) 127.0.0.1/31081은 211.1.1.1/8080으로 변환되어 VPN 메인유닛(50)으로 전송된다.5, the destination IP 63 (127.0.0.1/31081) of the packet 60b received by the agent module 535 is converted into 211.1.1.1/8080 and transmitted to the VPN main unit 50 do.

에이전트모듈(535)은 패킷(60c)의 컨텐츠(65)에 최초 접속하고자 한 목적지 IP 10.10.0.1/80을 추가하여 전송한다.The agent module 535 adds the destination IP 10.10.0.1/80 to which the packet 65c of the packet 60c is initially connected and transmits the packet.

즉, 에이전트모듈(535)은 패킷(60b)이 수신되면 메모리에서 출발지 포트를 검색하여 저장된 목적지 IP(10.10.0.1)와 목적지포트를 찾아내어 컨텐츠(65)에 추가하게 된다.That is, when the packet 60b is received, the agent module 535 retrieves the source port from the memory, finds the destination IP 10.10.0.1 and the destination port, and adds it to the content 65. [

에이전트모듈(535)은 패킷(60c)을 암호화하여 VPN 메인유닛(50)으로 전송한다.(S25)The agent module 535 encrypts the packet 60c and transmits it to the VPN main unit 50. (S25)

패킷(60c)을 수신받은 VPN 메인유닛(50)은 패킷(60c)의 VPN 메인유닛IP(100)를 원격지 사용자단말기(20)에서 최초 접속하고자 한 목적지IP(70)로 변환한다.(S26)The VPN main unit 50 having received the packet 60c converts the VPN main unit IP 100 of the packet 60c into the destination IP 70 to which the remote user terminal 20 first attempts to connect.

VPN 메인유닛(50)은 에이전트모듈(535)로부터 패킷(60c)을 수신받은 경우, 최초 접속하고자 한 사설네트워크(40)와 연결된 내부단말기(30)와 새로운 접속을 하게 되고 수신된 패킷(60c)을 내부단말기(30)로 전송한다.When receiving the packet 60c from the agent module 535, the VPN main unit 50 makes a new connection with the internal terminal 30 connected to the private network 40 to which the VPN main unit 50 is initially connected, To the internal terminal (30).

이때, VPN 메인유닛(50)은 수신된 패킷(60c)의 목적지IP(63)를 원격지 사용자단말기가 최초 접속하고자 한 내부 단말기(30)의 IP(70)로 변환한다.At this time, the VPN main unit 50 converts the destination IP 63 of the received packet 60c into the IP 70 of the internal terminal 30 to which the remote user terminal initially accesses.

즉, 수신받은 패킷(60c)의 목적지IP(63)는 도 5에 도시된 바와 같이, 211.1.1.1/8080에서 10.10.0.0/80으로 변환된다.That is, the destination IP 63 of the received packet 60c is converted from 211.1.1.1/8080 to 10.10.0.0/80 as shown in FIG.

VPN 메인유닛(50)은 패킷(60d)을 복호화하여 내부단말기(30)로 전송한다.(S27)The VPN main unit 50 decrypts the packet 60d and transmits it to the internal terminal 30. (S27)

패킷(60d)을 수신받은 내부단말기(30)는 VPN 메인유닛(50)으로 응답패킷(66)을 전송하고, VPN 메인유닛(50)은 응답패킷(66)을 원격지 사용자단말기(20)로 전송한다.(S28)The internal terminal 30 receiving the packet 60d transmits the response packet 66 to the VPN main unit 50 and the VPN main unit 50 transmits the response packet 66 to the remote user terminal 20 (S28)

VPN 메인유닛(50)은 도 4에 도시된 바와 같이, 응답을 기다리는 원격지 사용자단말기(20)로 응답패킷(66)을 암호화하여, 패킷(60)을 전달받은 역순으로 전송하게 된다.The VPN main unit 50 encrypts the response packet 66 to the remote user terminal 20 waiting for a response and transmits the packet 60 in the reverse order of the received packet as shown in FIG.

원격지 사용자단말기(20)에서 응답패킷(66)이 수신되면 원격지 사용자단말기(20)와 내부단말기(30)는 상호 접속이 된다.(S29)When the response packet 66 is received from the remote user terminal 20, the remote user terminal 20 and the internal terminal 30 are connected to each other (S29)

이에 의해, 사용자는 공중망 네트워크(10)를 통하여 웹상에서 원격지 사용자단말기(20)로 가상사설망 시스템(1)을 다운받아 설치할 수 있어 별도의 VPN 장비를 구비하지 않아도 언제 어디서나 가상사설망 시스템(1)을 설치 및 이용할 수 있다.Accordingly, the user can download the virtual private network system 1 to the remote user terminal 20 via the public network 10 and download the virtual private network system 1 to the virtual private network system 1 anytime and anywhere without having a separate VPN device. Installation and use.

이하에서는 VPN 메인유닛(50)의 여러 실시예들을 검도하기로 한다.Hereinafter, various embodiments of the VPN main unit 50 will be described.

먼저, 상술한 바와 같은 구성을 가지는 VPN 메인유닛(50)의 구성 중 일부는 인공지능에 의해 구현될 수 있으며, 의사결정 이유 제시 모듈(설명의 편의상 도면에는 도시하지 않음)을 더 포함할 수 있다.First, a part of the configuration of the VPN main unit 50 having the above-described configuration may be implemented by artificial intelligence, and may further include a decision reason presentation module (not shown in the drawings for convenience of explanation) .

의사결정 이유 제시 모듈은, 주어지거나 사용자에 의해 입력된 데이터에 대해서 분류·예측할 뿐만 아니라 결정에 대한 인과관계를 분석하여 적절한 근거를 찾아, 인공지능이 제시한 결과에 대해서 왜 그런 결과가 나오는지에 대한 이유를 사용자 레벨에서 설명할 수 있다. 의사결정 이유 제시 모듈을 통해 사용자와 인공지능 상호간의 신뢰할 수 있는 의사결정을 가능케 함으로써, 문제나 오류 발생 시 사용자에 의한 피드백이 적절하게 반영될 수 있다. 또한, 의사결정 이유 제시 모듈을 둠으로써, 인공지능이 제시하는 결과에 대해서 왜 그런 결과가 나오는지에 대한 원인을 명쾌하게 설명할 수 없어 사용자가 인공지능에 가질 수 있는 불신감을 해소할 수 있으며, 과도하게 학습을 진행할 경우 전체적인 관점에서의 최적해가 아닌 지역 내 최적해가 선택될 수 있다는 과적합화(overfitting) 문제를 미연에 방지할 수 있다.The decision reasoning module analyzes not only the data given or input by the user, but also the causal relation of the decision, and finds the appropriate grounds. Reason can be explained at user level. The decision-making reason module enables reliable decision-making between the user and the artificial intelligence, so that the feedback by the user can be appropriately reflected when a problem or an error occurs. In addition, by providing a decision reason module, it is possible to solve the disbelief that the user has in the artificial intelligence because the artificial intelligence can not clearly explain the cause of the result of the artificial intelligence, It is possible to avoid the problem of overfitting that the optimal solution in the region can be selected rather than the optimal solution in the whole viewpoint.

일 실시 예에서, 의사결정 이유 제시 모듈은 모델 구축 모듈 및 이유 설명 인터페이스 모듈을 더 포함할 수 있다. 모델 구축 모듈은 심층 설명 학습 모듈, 해석 가능한 모델 생성 모듈 및 모델 귀납 모듈로 구현될 수 있다.In one embodiment, the decision reason presentation module may further comprise a model building module and a reason explaining interface module. The model building module can be implemented as a deep explanation learning module, an analytical model generation module, and a model induction module.

심층 설명 학습 모듈은 변형된 딥러닝 기술로서 심층 신경망이 설명 가능한 특징들을 학습하도록 할 수 있다. 은닉계층의 노드가 의미 있는 속성을 나타내도록 학습할 수 있으며, 예를 들어 팔과 다리의 이미지를 구분하는 모델을 학습한다면, 각 은닉 노드가 손톱이나 발톱 모양, 손가락이나 발가락 모양, 손바닥이나 발바닥의 위치 등을 나타내도록 학습해서 모델이 어떤 이미지를 손이라고 판단했을 때 활성화된 은닉 노드를 통해 판단의 근거를 알 수 있다. 이러한 판단의 근거는 예를 들어 RNN(순환신경망, Recurrent Neural Network) 등의 자연어 생성 모델을 통해 언어적으로 나타낼 수도 있다. RNN은 딥러닝의 모델이며 인공신경망의 한 종류로서, 시계열 데이터와 같이 시간의 흐름에 따라 변화하는 데이터를 학습하기 위한 것으로서, 입력조절벡터와 망각벡터 그리고 출력조절벡터를 이용하여 입력과 출력데이터를 얻는다. 입력조절벡터에서는 입력신호가 활성화함수와의 연결계층을 거친 후에 값을 받아들이며 망각 벡터는 과거 입력의 일부를 현재 입력에 반영하는 역할을 한다. 그리고 출력조절벡터는 과거의 값과 수정된 입력값을 고려하여 활성화 함수를 이용해 값을 받아들인다. 그리고 그 최종결과는 다시 입력으로 되돌아가게 된다. 이러한 순환신경망은 문서 감정을 분류하거나 필기체를 인식하는데 주로 활용되며, 음성 인식, 시계열 예측이나 파형생성을 할 때에도 주로 활용될 수 있다. 이는 입력데이터가 순서가 없는 고정된 모양 이어도 적절할 순서에 따라 처리할 수 있기 때문이다.The in-depth explanation learning module is a modified deep learning technique that allows in-depth neural networks to learn explanatory features. For example, if you learn a model that distinguishes the images of the arms and legs, each of the hidden nodes may have a nail or claw shape, a finger or toe shape, a palm or soles Position, and so on, and can determine the basis of judgment through the activated hidden node when the model judges which image is a hand. The basis of such judgment may be expressed verbally through a natural language generation model such as RNN (Recurrent Neural Network). RNN is a model of deep learning. It is a type of artificial neural network. It is used to learn data that changes with time, such as time series data. Input and output data are obtained by using input control vector and forgetting vector and output control vector. . In the input control vector, the input signal accepts a value after passing through the connection layer with the activation function, and the forgetting vector reflects a part of the past input to the current input. And the output control vector takes the value by using the activation function considering the past value and the modified input value. The final result is then returned to the input. Such a circular neural network is mainly used for classifying document emotion or recognizing handwritten characters, and can be used mainly for speech recognition, time series prediction, and waveform generation. This is because the input data can be processed in an appropriate order even if the input data is a fixed shape without any order.

또한, 일 실시 예에서, 심층 설명 학습 모듈은 이미지에 근거가 되는 부분을 표시하여 시각적으로 나타낼 수도 있다. 예를 들어 인공지능 시스템이 고양이 이미지를 분류할 경우, 기존 시스템은 입력된 이미지의 고양이 여부만을 도출하지만, 심층 설명 학습 모듈은 고양이 여부를 도출하고, 이것의 근거(털, 수염 등) 이미지를 사용자에게 제공할 수 있다.Further, in one embodiment, the in-depth explanation learning module may visually display the portion based on the image. For example, if an artificial intelligence system categorizes a cat image, the existing system derives only whether the input image is a cat, but the in-depth explanation learning module derives the cat's presence and uses the image of the ground (hair, .

해석 가능한 모델 생성 모듈은, 구조화된 데이터를 해석 가능한 인과관계 모델로 구축할 수 있다. 일 실시 예에 따르면, BPL(bayesian program learning)을 이용하여 해석 가능한 모델 생성 모듈을 구축할 수 있으며, BPL은 작은 조각들의 조합으로 표현하도록 학습하는 방법으로서, 예를 들어 글자를 생성하는 모델을 학습할 때 글자를 획으로 나누어서 가장 합리적인 획의 조합으로 생성하도록 한다. BPL은 대량의 데이터가 없이도 사람과 같이 한 번 보면 그대로 모방할 수 있으며, Neural Network(신경망 모델)를 진화시킨 것으로서 새로운 사건이 주어졌을 때 그 사건을 바탕으로 확률값을 변화시킬 수 있다. 즉, BPL은 가상 변수들에 들어가는 가중치만 바꾸는 방식이 아니라, 중간에 다른 가상 변수를 생성하는 내용까지 포함된다. 새로운 환경이 주어지면 다른 방식으로 현상을 이해하는 것으로서 예를 들어, 동전을 100번 던져서 앞면이 60번, 뒷면이 40번 나와서 앞 면이 나올 확률을 60%로 잡은 다음, 다음번에 뒷면이 나오게 되면 앞면이 나올 확률을 59.4%로 내리는 방식이다.An interpretable model generation module can construct structured data as a causal model that can be interpreted. According to one embodiment, a model generation module that can be interpreted by using BPL (Bayesian program learning) can be constructed, and BPL is a method for learning to express a combination of small pieces. For example, When you do, divide the letters into strokes and create them with the most reasonable combination of strokes. BPL can be imitated like a human once without large amounts of data, and it can evolve the Neural Network (neural network model) and change the probability based on the event when a new event is given. That is, the BPL includes not only changing the weight of virtual variables, but also generating other virtual variables in the middle. Given a new environment, it is another way to understand the phenomenon. For example, if a coin is thrown 100 times and the front face comes out 60 times and the back face comes out 40 times, the probability of coming out is 60% It is a way to reduce the probability of the face to 59.4%.

또한, 일 실시 예에서, 해석 가능한 모델 생성 모듈은 확률론적 접근 방법을 통해 구현될 수 있다. 확률론적 접근 방법은 몇 가지 샘플만으로도 학습 효과를 낼 수 있으며, 예를 들면 길이가 긴 의자와 짧은 의자를 보여주면 중간 길이의 의자도 있다는 것을 배우는 것과 비슷하다. 즉, 부족한 데이터를 스스로 채워 나가며 학습하는 기술이다. 실시 예에 따라서는 확률론적 접근 방법은 수학적 계산을 통해 스스로 확률과 프로그램을 보정하는 기능을 포함할 수 있다.Also, in one embodiment, the interpretable model generation module may be implemented through a probabilistic approach. The probabilistic approach is similar to learning a few samples that can produce learning effects, such as showing a long chair and a short chair and a medium-length chair. That is, it is a technique to learn by filling in the deficient data by oneself. Depending on the embodiment, the probabilistic approach may include the ability to calibrate the probability and the program by itself through mathematical calculations.

또한, 일 실시 예에서, 해석 가능한 모델 생성 모듈은 And-Or-Graph를 이용하여 구현된 수 있다. And-Or-Graph는 AND/OR 그래프란 rule의 조건 및 결론관계와 AND/OR 관계를 그래프 형태로 나타내는 것으로서, 인공지능에 의해 도출되는 중간 및 최종 데이터가 구조화 되어있어 모델의 결정과정을 논리적으로 설명하기 쉬운 장점이 있다. 즉, AND 노드와 OR 노드로 그래프를 나타내는데, AND 노드는 모두 처리되어야 하며 OR 노드는 하나만 처리되면 끝낼 수 있다. AND/OR 그래프를 이용하면 서로 산재해 있는 rule들의 집합을 하나의 구조로 조감할 수 있으며 각 문장 간의 논리적인 관계를 쉽게 파악할 수 있다.Also, in one embodiment, the interpretable model generation module may be implemented using And-Or-Graph. And-Or-Graph is an AND / OR graph, which shows the condition and conclusion relation of the rule and the AND / OR relation in the form of a graph. The intermediate and final data derived by artificial intelligence are structured, There is an advantage that is easy to explain. That is, a graph is represented by AND node and OR node. All AND nodes must be processed, and only one OR node can be finished. By using the AND / OR graph, we can construct a set of scattered rules as one structure, and can easily grasp the logical relationship between each statement.

모델 귀납 모듈은 임의의 블랙박스 모델을 설명가능한 모델로 추론할 수 있다. 일 실시 예에서, 모델 귀납 모듈은 LIME(local interpretable model-agnostic explanations)로 구현될 수 있으며, LIME은 임의의 블랙박스 모델을 이미 설명이 가능한 데이터 주변에서 희소 선형 결합을 통해 국부적으로 설명 가능하게 만들 수 있다. 예를 들어, 이미지를 분류하는 블랙박스 모델이 어떤 이미지를 심장이라고 판단했다면 이미 설명 가능한 다른 모델의 심장에 대한 설명 즉, 심장을 표현하는 픽셀들을 주어진 이미지와 대조하여 어느 부분이 심장이라고 판단한 근거인지 제시할 수 있다.The model induction module can infer any arbitrary black box model as an explanatory model. In one embodiment, the model inductance module can be implemented with LIME (local interpretable model-agnostic explanations), and LIME can be used to make any black box model locally explicable via sparse linear combination around data that can already be described . For example, if a black box model classifies an image as a heart, it can be described as a description of the heart of another model that can be explained, that is, the pixels expressing the heart against a given image, Can be presented.

또한, 일 실시 예에서 모델 귀납 모듈은 모델을 일련의 if-then 조건문으로 표현하는 BRL(bayesian rule lists)로 구현될 수 있다. BRL은 고차원, 다변수인 특징공간을 간단하고 이미 해석 가능한 조건문으로 나누어 복잡한 모델을 이해할 수 있게 한다.Also, in one embodiment, the model inductance module may be implemented as a BES (Bayesian rule lists) that expresses the model as a series of if-then conditional statements. BRL makes it possible to understand complex models by dividing the high-dimensional, multivariable feature space into simple and already interpretable conditional statements.

상술한 심층 설명 학습 모듈, 해석 가능한 모델 생성 모듈 및 모델 귀납 모듈은 서로 독립적으로 또는 서로 결합되어 작용될 수 있으며, 그 구현 순서도 실시 예에 따라 달라질 수 있다.The detailed explanation learning module, the interpretable model generation module and the model inducement module described above can be operated independently or in combination with each other, and the order of implementation can also be changed according to the embodiment.

다음으로, 이유 설명 인터페이스 모듈은 인공지능의 의사결정에 대한 설명을 사용자가 이해할 수 있는 방식으로 표현할 수 있다. 이유 설명 인터페이스 모듈은 제시한 설명이 반복적일 것, 필요한 설명을 모두 포함하고 있을 것, 불필요한 설명을 포함하지 않을 것, 양이 적절할 것 등을 필수 항목으로 포함할 수 있다. 즉, 사용자가 용이하게 인공지능이 어떠한 과정과 이유로 최종 결과를 도출했는 지와 각 단계별로 영향을 미친 요소나 데이터가 무엇인지 언어, 표, 이미지, 그래프, 수식 등을 포함하여 사용자에게 제공할 수 있다.Next, the reason explanation interface module can express the artificial intelligence decision making in a way that the user can understand. Reason Description The interface module may include a requirement that the description provided is iterative, contains all the necessary explanations, does not contain unnecessary descriptions, and the amount is appropriate. In other words, it is easy for the user to provide the user with the result of artificial intelligence, such as language, table, image, graph, formula, etc., have.

또한, 이유 설명 인터페이스 모듈은 사용자의 정정 명령을 입력받을 수 있다. 이를 위해 이유 설명 인터페이스 모듈은 정정가능성은 설명이 유동적일 것, 사용자의 피드백을 존중할 것, 점진적인 변화를 주시할 것 등을 필수 항목으로 포함할 수 있다. 이렇게 제시된 설명에 대해서 사용자에게 설명의 명확도와 활용도 등에 대한 피드백을 받아 이유 설명 인터페이스 모듈의 효과를 평가하고 발전시킬 수 있다.In addition, the reason explanation interface module can receive a user's correction command. To this end, the reason explanation interface module may include the possibility of correcting that explanation should be flexible, respect user feedback, watch for gradual changes, and so on. For this explanation, we can evaluate and develop the effectiveness of the reason explaining interface module by receiving feedback on the clarity and utility of the explanation to the user.

다른 실시 예에서, 의사결정 이유 제시 모듈은, 인과관계 모델로 형성될 수 있다. 인과과계 모델은 딥러닝과 마르코브 랜덤 필드를 결합하는 형태로 형성될 수 있다. 먼저 학습 데이터로부터 심층 마르코브 랜덤 필드 모델의 확률 분포를 모델링하고, 확률 변수들 사이의 조건부 독립성을 나타내는 마르코브 랜덤 필드의 구조를 학습한다. 구조가 학습된 마르코브 랜덤 필드의 잠재 함수를 심층 신경망으로 추론하여 입력 변수의 수가 증가함에 따라 잠재 함수에 필요한 매개 변수의 수가 기하급수적으로 증가하는 문제를 완화하고, 변수 연관관계에 대한 제약 없이 복잡한 연관관계를 학습할 수 있다. 실시예에 따라 클래스 분류 문제를 보조태스크인 속성, 슈퍼카테고리와 같이 학습한 후, 출력 단계에서 선형 결합하여 효과적인 표현이 가능하도록 할 수 있다. 또한 인과관계가 정확히 학습되었는지 사람이 확인하고 피드백을 주어 수정할 수 있도록 하는 상호작용 학습 알고리즘을 포함할 수 있다.In another embodiment, the decision reason presentation module may be formed of a causal model. The causal model may be formed by combining the deep running and the Marco Bandom field. First, we model the probability distribution of the deep Marco Bandom field model from the learning data and study the structure of the Marco Bandom field which shows the conditional independence between the random variables. By inferring the latent function of the Marco Bandom field whose structure is learned to the depth neural network, it is possible to alleviate the problem of exponential increase of the number of parameters required for the latent function as the number of input variables increases, The relationship can be learned. According to the embodiment, after learning the class classification problem as an auxiliary task attribute or a super category, it is possible to linearly combine the class classification problem in the output step to enable effective expression. It may also include an interactive learning algorithm that allows the person to identify and correct the causal relationship by learning to correct it.

또 다른 실시 예에서, 의사결정 이유 제시 모듈은, 분석 모듈로 구현될 수 있다. 시계열 함수를 다양한 커널을 바탕으로 다변수 가우시안으로 회귀분석 하는 기술로서, 가우시안 프로세스에서 커널을 표현하는 최적의 커널 조합을 학습하여 주어진 시계열 데이터를 위에서 찾은 커널 조합을 바탕으로 설명할 수 있다. 더 나아가서 여러 개의 시계열 데이터가 있을 때에도 공통적으로 표현되는 커널 및 각 시계열 데이터의 특성을 표현하는 커널의 조합을 학습하여 여러 개의 시계열 데이터에서 공통적으로 나타나는 특징을 설명할 수 있다. 시계열 데이터 분석 모델을 통해 찾은 커널의 조합을 자연어로 작성함으로써 사용자에게 인공지능에 의해 도출된 의사결정의 도출과정 및 그 이유를 자연어로 설명해 줄 수 있다.In yet another embodiment, the decision reason presentation module may be implemented with an analysis module. This is a technique for regression analysis of time series functions into multivariate Gaussian based on various kernels. It can be explained based on the combination of kernels found above by learning the optimal time series data representing the kernel in the Gaussian process. Furthermore, even when there are a plurality of time series data, it is possible to explain a common characteristic among a plurality of time series data by learning a combination of a kernel expressed in common and a kernel representing characteristics of each time series data. By creating a combination of kernels found through the time series data analysis model in natural language, the user can explain the process and reason for the decision derived by artificial intelligence in natural language.

이와 같은 의사결정 이유 제시 모듈을 통해, 인공지능의 의사결정 과정을 사용자의 입장에서 시각화 및 문자화함으로써, 의사결정에 과정에 관여한 구성요소를 설명할 수 있으며 동시에 복잡한 모델의 상관관계를 분석하여 원인요소와 결과요소로 나누어 설명할 수 있다. 특히 사용자가 용이하게 이해할 수 있는 자동 보고서의 형식으로 작성됨으로써, 데이터를 분석한 결과 뿐만 아니라 이유를 제공하여 인공지능이 보다 정밀하게 인간과 상호 작용하게 할 수 있다.Through the module of decision-making reason, it is possible to visualize and characterize the decision-making process of artificial intelligence from the viewpoint of the user, and to explain the components involved in the decision-making process. At the same time, It can be divided into elements and result elements. Especially, it is created in the form of an automatic report that can be easily understood by the user, thereby providing not only the result of analyzing the data but also the reason, so that the artificial intelligence can interact with the human being more precisely.

다음으로 VPN 메인유닛(50)은, 백업 파일 분산화 모듈(설명의 편의상 도면에는 도시하지 않음)을 더 포함할 수 있다.Next, the VPN main unit 50 may further include a backup file distribution module (not shown in the drawing for convenience of explanation).

백업 파일 분산화 모듈은, 해킹 또는 랜섬웨어와 같은 외부의 공격으로부터 보호하여야 할 사용자 정보나 시스템 정보 등과 같은 중요 정보를 백업 파일로 생성한 후, 생성된 백업 파일을 동일한 데이터를 포함하는 1차 백업 파일과 2차 백업을 차례로 생성하여 저장하되, 1차 백업 파일과 2차 백업 파일의 저장 장소를 달리 하여 저장한다.The backup file distribution module generates important information such as user information or system information to be protected from an external attack such as hacking or Ransomware as a backup file and then transmits the generated backup file to a primary backup file And the secondary backup are sequentially generated and stored, but the primary backup file and the secondary backup file are stored in different storage locations.

다만, 백업 파일의 생성은 1차와 2차에 한정되는 것은 아니며, 시스템의 성능 등을 고려하여 3차 이상의 복수 개의 백업 파일을 생성하여도 무방하다.However, the generation of the backup file is not limited to the primary and secondary, and a plurality of backup files of the tertiary or higher order may be generated in consideration of the performance of the system and the like.

그리고, 백업 파일 분산화 모듈은, 기 설정된 주기로(예를 들어, 시스템 상 기본적으로 설정된 주기인 3시간 마다 1회 내지 5시간 마다 1회 등, 다만 해당 설정된 주기에 한정되는 것은 아니며 사용자로부터 지정 받은 주기로 설정되어도 무방하다) 저장되었던 1차 백업 파일과 2차 백업 파일의 저장 장소를 시스템 상의 기 설정된 장소 또는 새롭게 생성된 장소로 변경한다.In addition, the backup file distribution module is not limited to the predetermined period, for example, once every three hours or once every five hours, which is basically a period set in the system, It is possible to set the storage location of the stored primary backup file and the secondary backup file to a predetermined place or a newly created place on the system.

이때, 백업 파일의 이동 장소는, 시스템 상에서 기 설정되거나 사용자로부터 지정 받은 장소가 아니라, 임의의 랜덤 변수에 따라 생성된 폴더나 서브 폴더로 지정됨이 바람직하다.At this time, it is preferable that the moving location of the backup file is designated as a folder or a subfolder generated according to an arbitrary random variable, not the default location set in the system or the location designated by the user.

이에 따라, 해킹 또는 랜섬웨어와 같은 공격형 프로그램이 공격하고자 하는 파일이 위치하는 폴더의 존재 또는 해당 폴더의 위치를 예측하고 용이하게 공격하는 것을 원천적으로 방지함은 물론, 삭제되어서는 안 되는 고객 정보와 같은 중요한 데이터가 사용자의 실수로 삭제되거나 수정되는 것을 방지할 수 있다.Accordingly, an attacking program such as a hacking or a random software can prevent the existence of a folder in which a file intended to be attacked or the location of the folder to be predicted and easily attacked, as well as prevent customer information It is possible to prevent the same important data from being deleted or modified by the user inadvertently.

본 발명에서, 1차 백업 파일과 2차 백업 파일은, 동일한 내용의 데이터를 포함하고 있는 파일들로써, 상호 간에 우열이 존재하는 것은 아니며, 파일의 이동에 있어서도 1차 백업 파일의 이동 후 2차 백업 파일이 이동하거나, 2차 백업 파일의 이동 후 1차 백업 파일이 이동하여도 무방하다.In the present invention, the primary backup file and the secondary backup file are files containing data of the same content, and there is no mutual rank, and even in the movement of the file, the secondary backup The file may be moved, or the primary backup file may be moved after the secondary backup file is moved.

일 실시예에서, 백업 파일 분산화 모듈은, 외부로부터 침입이 감지될 경우, 기 생성되었던 1차 백업 파일과 2차 백업 파일로부터의 복제를 연속적으로 수행하여 각 백업 파일의 서브 백업 파일들을 다수 개 생성하며, 생성된 다수 개의 서브 백업 파일들을 역시 랜덤 변수에 따라 생성된 서로 다른 장소에 개별적으로 저장할 수 있다.In one embodiment, when an intrusion is detected from the outside, the backup file distribution module continuously replicates from the pre-created primary backup file and the secondary backup file to generate a plurality of sub-backup files of each backup file And the generated plurality of sub-backup files may also be separately stored in different places generated according to random variables.

이에 따라, 시스템 상에서 산발적으로 생성된 다수 개의 백업 파일을 임의의 장소로 나누어 저장함으로써, 일부 백업 파일이 공격에 의해 손실되거나 삭제되는 경우에도 시스템 상에 산발적으로 존재하는 백업 파일을 이용하여 필요한 자료 등을 용이하게 복구하도록 할 수 있다.Accordingly, even if some backup files are lost or deleted due to an attack by storing a plurality of backup files sporadically generated in the system by dividing them into arbitrary places, it is possible to use a backup file that exists sporadically in the system to store necessary data Can be easily restored.

다음으로, 백업 파일 분산화 모듈은, 다수 개의 백업 파일 중 현재 공격받고 있는 백업 파일이라고 판단된 파일을 시스템 상에서 영구적으로 삭제하게 된다.Next, the backup file distribution module permanently deletes, from among a plurality of backup files, a file that is determined to be a currently received backup file on the system.

이에 따라, 본 발명에서는, 해킹 또는 랜섬웨어의 공격 등으로 인해 시스템 상에서 정상적인 기능을 수행하지 못하거나, 해당 공격으로 인해 시스템 상에 존재하는 다른 파일까지도 위험에 노출시킬 수 있는 좀비 프로그램으로 변할 수 있는 파일을 미연에 시스템 상에서 삭제시킴으로써, 일부 파일로 인해 시스템 전체가 공격받는 것을 미연에 방지할 수 있다.Accordingly, in the present invention, it is possible to change into a zombie program that can not perform a normal function on the system due to a hacking or an attack of the Ransomware or expose other files existing on the system due to the attack By deleting a file on the system beforehand, it is possible to prevent an entire system from being attacked by some files in advance.

일 실시예에서, 백업 파일 분산화 모듈은, 백업 파일을 클라우드 서비스와 연동된 동기화 폴더에 저장한 경우, 해당 동기화 폴더에 백업 파일의 저장이 완료되고 저장한 백업 파일이 클라우드 상에 업로드 되면, 해당 동기화 폴더에 대한 동기화를 해제할 수 있다.In one embodiment, when the backup file is stored in the synchronization folder cooperating with the cloud service, when the backup file is stored in the synchronization folder and the backup file is uploaded to the cloud, You can turn off synchronization for the folder.

예를 들어, 사용자의 동기화를 위한 클라우드 서비스가 "Dropbox"라고 할 경우, "Dropbox"에서 제공하고 있는 "선택적 동기화 서비스"를 이용하여 상술한 바와 같은 백업 파일 분산화 모듈의 기능을 구현하게 된다.For example, when the cloud service for user synchronization is called "Dropbox ", the function of the backup file distribution module as described above is implemented by using the " selective synchronization service"

즉, 백업 파일 분산화 모듈은, 백업 파일을 저장하기 위한 공간으로서 "백업 폴더"를 시스템 상에 생성하면, 클라우드 서비스는 새롭게 생성된 "백업 폴더"를 클라우드 상에서 역시 동일하게 생성하게 된다.That is, when the backup file distribution module creates a "backup folder" as a space for storing backup files on the system, the cloud service creates the newly created "backup folder" on the cloud in the same manner.

다음으로, 백업 파일 분산화 모듈은, 해당 폴더에 백업 파일을 저장하게 될 것이고, 이에 따라 클라우드 상에도 해당 백업 파일이 업로드 된다.Next, the backup file distribution module will store the backup file in the corresponding folder, and accordingly, the corresponding backup file is also uploaded in the cloud.

마지막으로, 클라우드 상에 해당 백업 파일의 업로드가 완료되면, 백업 파일 분산화 모듈은, 백업 파일 업로드에 사용되었던 "백업 폴더"에 대한 동기화만을 선택적으로 해제하고, "백업 폴더"를 시스템 상에서 삭제한다.Finally, when uploading of the corresponding backup file on the cloud is completed, the backup file distribution module selectively cancels the synchronization for the "backup folder" used for uploading the backup file, and deletes the "backup folder"

이 경우, 시스템 전체에 대한 동기화를 해제하는 것이 아니라, 백업 파일의 업로드에 사용하기 위해 임시적으로 생성되었던 "백업 폴더"만에 대한 동기화를 해제함으로써, 클라우드 서비스와의 안정적인 동기화 서비스는 지속적으로 수행하는 반면, 백업 파일은 클라우드 상에 업로드시킨 후 시스템 상에서는 삭제함에 따라 클라우드 상에서 백업 파일은 안전하게 저장하는 한편 시스템을 침투한 공격에 지속적으로 노출되는 것은 원천적으로 방지할 수 있게 된다.In this case, rather than releasing synchronization to the entire system, the synchronization service to the cloud service is continuously performed by releasing synchronization with only the "backup folder" temporarily created for use in uploading the backup file On the other hand, as backup files are uploaded to the cloud and then deleted on the system, the backup files can be securely stored in the cloud, while preventing continuous exposure to attacks that infiltrate the system.

일 실시예에서, 백업 파일 분산화 모듈은, 클라우드 상에 업로드 하였던 백업 파일의 저장 장소를 변경할 순서가 된 경우, 선택적 동기화를 해제하였던 폴더의 동기화를 다시 수행하여 클라우드 서비스에 업로드 하였던 백업 파일을 다운받은 후, 다운받은 백업 파일을 상술한 바와 같이 랜덤 변수에 따라 새롭게 생성된 장소로 이동시킬 수 있다.In one embodiment, when the storage location of the backup file uploaded on the cloud becomes a change order, the backup file distribution module re-synchronizes the folder from which the selective synchronization has been canceled to download the backup file uploaded to the cloud service After that, the downloaded backup file can be moved to the newly created place according to the random variable as described above.

그리고, VPN 메인유닛(50)은, 개발 환경 관리 시스템(설명의 편의상 도면에는 도시하지 않음) 상에서 구현될 수 있다.Then, the VPN main unit 50 can be implemented on a development environment management system (not shown in the drawings for the sake of explanation).

개발 환경은 다수의 개발자가 소프트웨어 개발을 위해 다수의 개발 시스템을 사용하며, 각 개발 시스템은 개발자의 제어에 따라 소프트웨어 컴포넌트 및 소프트웨어를 개발하고 직접 관리할 수 있다. 각 개발 시스템은 신뢰 플랫폼 모듈(TPM: Trusted Platform Module) 표준기술을 사용하며, 이에 따라 소프트웨어 컴포넌트가 사용 허가된 개발 시스템에서만 사용 가능하도록 한다. 신뢰 플랫폼 모듈(TPM)은 일종의 보안 장치로서, 데이터 암호화를 위한 보안키를 생성 및 관리할 수 있다.In a development environment, a plurality of developers use a plurality of development systems for software development, and each development system can develop and directly manage software components and software under the control of a developer. Each development system uses Trusted Platform Module (TPM) standard technology, so that the software components are only available to licensed development systems. The Trusted Platform Module (TPM) is a type of security device that can generate and manage security keys for data encryption.

개발 환경 관리 시스템은 소프트웨어 컴포넌트 사용에 대한 개발자의 권한을 제한하고, 개발자가 사용하는 개발 시스템에 대한 보안 인증을 수행할 수 있다.The development environment management system restricts the developer's authority on the use of software components and can perform security authentication on the development system used by the developer.

개발 환경 관리 시스템은 개발 시스템으로부터 소프트웨어 컴포넌트 생성 또는 수정 허가 요청 메시지를 수신하는 경우, 해당 개발 시스템의 권한 정보를 확인하여 소프트웨어 컴포넌트 생성 또는 수정 허가 요청 메시지를 처리할 수 있다.When the development environment management system receives the software component creation or modification permission request message from the development system, it can process the software component creation or modification permission request message by checking the rights information of the development system.

여기에서, 소프트웨어 컴포넌트는 소스코드, 디버깅 정보를 포함하는 바이너리, 디버깅 정보를 포함하지 않는 순수 바이너리, 코드에 대한 상세설명을 위한 문서 및 코드의 이해를 위한 공정 수식모델 중 적어도 하나를 포함하여 구성될 수 있다.Here, the software component may comprise at least one of a source code, a binary containing debugging information, a pure binary not including debugging information, a document for detailed description of the code, and a process equation model for understanding the code .

권한 정보는 소프트웨어 컴포넌트를 읽을 수 있는 읽기 권한, 소프트웨어 컴포넌트를 생성 및 수정하여 저장할 수 있는 저장 권한 및 권한 정보를 조정할 수 있는 권한조정 권한 중 적어도 하나를 포함하여 구성될 수 있다.The authority information may be configured to include at least one of read permission to read the software component, permission to save and modify the software component, and permission to adjust the authority information.

개발 환경 관리 시스템은 권한 정보를 만족하는 어느 하나의 개발 시스템에 의해 소프트웨어 컴포넌트가 생성 또는 수정되는 경우, 이를 저장하여 다른 개발 시스템에서도 공유 가능하도록 제어할 수 있다. 이는 어느 하나의 개발 시스템에 의해 빌드한 모듈을 다른 개발 시스템에서 사용하여야 하는 경우가 있기 때문이다.When a software component is created or modified by one of the development systems satisfying the rights information, the development environment management system can store the software component and control it so that it can be shared by other development systems. This is because a module built by one of the development systems may be used in another development system.

개발 환경 관리 시스템은 이러한 소프트웨어 컴포넌트의 생성 또는 수정 이력을 저장한 데이터베이스를 구축할 수 있다. 이는 이력 정보를 통해 특정 변수의 값이 어떻게 달라졌는지 단계별로 추적할 수 있고, 그 특정 변수가 임의의 다른 변수의 값 변경에 어떠한 영향을 주었는지도 파악할 수 있기 때문이다.The development environment management system can build a database storing the history of creation or modification of such software components. This is because the history information can be used to track the change in the value of a particular variable step by step and it can be understood how the particular variable has affected the change of the value of any other variable.

구체적으로는, 개발 환경 관리 시스템은 소프트웨어 컴포넌트의 종류, 해당 소프트웨어 컴포넌트의 생성/수정 여부, 해당 소프트웨어 컴포넌트의 생성/수정 일자, 해당 소프트웨어 컴포넌트의 생성/수정 빈도, 해당 소프트웨어 컴포넌트를 생성/수정한 개발 시스템의 권한 정보를 포함하여 이력 정보를 생성할 수 있다.Specifically, the development environment management system can be classified into various types of software components such as types of software components, creation / modification of corresponding software components, creation / modification dates of corresponding software components, creation / modification frequency of corresponding software components, The history information including the authority information of the system can be generated.

개발 환경 관리 시스템은 이력 정보를 생성할 때마다 인덱스를 부여하여 이력 정보 데이터베이스에 저장할 수 있다.The development environment management system can store indexes in the history information database every time history information is generated.

이때, 개발 환경 관리 시스템은 소프트웨어 컴포넌트의 종류별로 이력 정보 데이터베이스를 구축할 수 있다. 즉, 개발 환경 관리 시스템은 소프트웨어 컴포넌트의 중요도에 따라 이력 정보 데이터베이스를 구축할 수 있으며, 중요도가 가장 높은 종류에 해당하는 소프트웨어 컴포넌트의 이력 정보 데이터베이스는 후술하는 바와 같이 저장 공간 관리를 위한 데이터베이스 갱신 대상에서 제외될 수 있을 것이다.At this time, the development environment management system can build a history information database for each type of software component. That is, the development environment management system can build a history information database according to the importance of the software components, and the history information database of the software components corresponding to the type having the highest importance is the database update target for storage space management It can be excluded.

또는, 개발 환경 관리 시스템은 소프트웨어 컴포넌트의 생성/수정 일자 별로 이력 정보 데이터베이스를 구축할 수 있다. 일예로, 개발 환경 관리 시스템은 특정 일자의 이력 정보 데이터베이스를 구축하여, 해당 이력 정보 데이터베이스를 데이터베이스 갱신 대상에서 제외시킬 수 있다.Alternatively, the development environment management system can construct a history information database for each creation / modification date of a software component. For example, the development environment management system can build a history information database of a specific date and exclude the history information database from the database update target.

또는, 개발 환경 관리 시스템은 권한 정보 별로 이력 정보 데이터베이스를 구축할 수 있다. 일예로, 개발 환경 관리 시스템은 최고 권한 정보로 간주되는 권한 정보를 조정할 수 있는 권한조정 권한에 해당하는 개발 시스템에 의한 소프트웨어 컴포넌트의 이력 정보 데이터베이스를 구축하여, 해당 이력 정보 데이터베이스를 데이터베이스 갱신 대상에서 제외시킬 수 있다.Alternatively, the development environment management system can build a history information database for each authority information. For example, the development environment management system constructs a history information database of the software components by the development system corresponding to the authority to adjust the authority information regarded as the highest authority information, and excludes the history information database from the database update target .

개발 환경 관리 시스템은 상술한 바와 같이 효율적인 저장 공간 관리를 위해 이력 정보 데이터베이스를 갱신할 수 있다.The development environment management system can update the history information database for efficient storage management as described above.

구체적으로는, 개발 환경 관리 시스템은 이력 정보 데이터베이스의 인덱스가 미리 설정된 인덱스에 도달하면 이력 정보 데이터베이스 갱신을 수행할 수 있다.More specifically, the development environment management system can update the history information database when the index of the history information database reaches a predetermined index.

예를 들면, 개발 환경 관리 시스템은 이력 정보 데이터베이스의 전체 인덱스를 오름차순으로 하여 3 개의 구간으로 나눌 수 있다.For example, the development environment management system can divide the entire index of the history information database into three sections in ascending order.

개발 환경 관리 시스템은 3 개의 구간 중 가장 낮은 인덱스를 포함하는 구간에 해당하는 이력 정보를 조건 없이 삭제할 수 있다. 해당 구간에 해당하는 이력 정보는 생성/수정 일자가 오랜 시간이 경과한 것으로 간주할 수 있으며, 이에 해당 이력 정보가 다시 참조될 가능성은 낮으므로 조건 없이 삭제할 수 있다.The development environment management system can delete the history information corresponding to the section including the lowest index among the three sections without any condition. The history information corresponding to the relevant section can be regarded as a generation / modification date has passed a long time, and the possibility of referring to the history information is low, so it can be deleted without any condition.

개발 환경 관리 시스템은 3 개의 구간 중 가운데 구간에 해당하는 이력 정보를 소프트웨어 컴포넌트의 종류에 따라 삭제 또는 유지 여부를 결정하여 갱신할 수 있다. 즉, 개발 환경 관리 시스템은 소프트웨어 컴포넌트의 종류에 따라 중요도를 분류할 수 있으며, 3 개의 구간 중 가운데 구간에 해당하는 이력 정보 중 중요도가 가장 높은 소프트웨어 컴포넌트의 종류에 해당하는 이력 정보만을 유지하고 나머지 이력 정보는 모두 삭제하는 방식으로 이력 정보 데이터베이스를 갱신할 수 있다.The development environment management system can update the history information corresponding to the middle section of the three sections by determining whether to delete or maintain the history information according to the type of the software component. That is, the development environment management system can classify the importance according to the type of the software component, and only the history information corresponding to the type of the software component having the highest importance among the history information corresponding to the middle section of the three sections is maintained, The history information database can be updated in such a manner that all information is deleted.

또는, 개발 환경 관리 시스템은 3 개의 구간 중 가운데 구간에 해당하는 이력 정보를 소프트웨어 컴포넌트의 생성/수정 빈도에 따라 삭제 또는 유지 여부를 결정하여 갱신할 수 있다. 즉, 3 개의 구간 중 가운데 구간에 해당하는 이력 정보 중 그 생성/수정 빈도가 미리 설정된 기준 빈도보다 높은 이력 정보는 모두 삭제하고 나머지 이력 정보는 유지하는 방식으로 이력 정보 데이터베이스를 갱신할 수 있다.Alternatively, the development environment management system can determine whether to delete or maintain the history information corresponding to the middle section of the three sections according to the generation / modification frequency of the software component, and update the history information. That is, it is possible to update the history information database in such a manner that history information having a generation / correction frequency higher than a preset reference frequency among the history information corresponding to the middle section of the three sections is deleted and the remaining history information is maintained.

또는, 개발 환경 관리 시스템은 3 개의 구간 중 가운데 구간에 해당하는 이력 정보를 개발 시스템의 권한 정보에 따라 삭제 또는 유지 여부를 결정하여 갱신할 수 있다. 즉, 3 개의 구간 중 가운데 구간에 해당하는 이력 정보 중 그 권한 정보가 최고 권한 정보로 간주되는 권한 정보를 조정할 수 있는 권한조정 권한인 이력 정보는 그대로 유지하고, 나머지 이력 정보는 모두 삭제하는 방식으로 이력 정보 데이터베이스를 갱신할 수 있다.Alternatively, the development environment management system can update the history information corresponding to the middle section of the three sections by determining whether to delete or maintain the history information according to the authority information of the development system. That is, among the history information corresponding to the middle section of the three sections, the history information, which is the authority to adjust the authority information in which the authority information is regarded as the highest authority information, is maintained and the remaining history information is deleted The history information database can be updated.

개발 환경 관리 시스템은 3 개의 구간 중 가장 높은 인덱스를 포함하는 구간에 해당하는 이력 정보를 그대로 유지할 수 있다. 해당 구간에 해당하는 이력 정보는 생성/수정 일자가 비교적 최근의 것으로 간주할 수 있으며, 이에 해당 이력 정보가 다시 참조될 가능성은 높으므로 그대로 유지할 수 있다.The development environment management system can maintain the history information corresponding to the section including the highest index among the three sections. The history information corresponding to the corresponding section can be regarded as a relatively recent date of generation / modification, and the possibility that the history information is referred to again is high, so that it can be maintained.

상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be apparent to those skilled in the art that the above-described embodiments are for illustrative purposes only and that those skilled in the art will readily understand that other embodiments can be readily modified without departing from the spirit or essential characteristics of the embodiments described above You will understand. It is therefore to be understood that the above-described embodiments are to be considered in all respects only as illustrative and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 명세서를 통해 보호받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.It is to be understood that the scope of the present invention is defined by the appended claims rather than the foregoing description and should be construed as including all changes and modifications that come within the meaning and range of equivalency of the claims, .

1: 가상사설망(VPN) 서비스 시스템,
10: 공중망 네트워크,
20: 원격지 사용자단말기,
30: 내부단말기,
31: TDI계층,
33: 유저모드,
35: 커널모드,
40: 사설네트워크,
50: VPN 메인유닛,
51: 가상사설망 설치정보,
52: 설치도구,
53: VPN 터널링유닛,
55: 인증모듈,
60(60a,60b,60c,60d): 패킷,
61: 출발지IP,
63: 목적지IP,
65: 컨텐츠,
66: 응답패킷,
70: 내부단말기 IP,
80: 원격지 사용자 단말기IP,
90: 에이전트IP,
100: VPN 메인유닛IP,
531: 필터,
533: 리다이렉터모듈,
535: 에이전트모듈.
1: Virtual Private Network (VPN) service system,
10: Public network,
20: remote user terminal,
30: internal terminal,
31: TDI layer,
33: user mode,
35: kernel mode,
40: private network,
50: VPN main unit,
51: Virtual private network installation information,
52: Installation tool,
53: VPN tunneling unit,
55: authentication module,
60 (60a, 60b, 60c, 60d): packet,
61: source IP,
63: Destination IP,
65: Content,
66: response packet,
70: internal terminal IP,
80: remote user terminal IP,
90: Agent IP,
100: VPN main unit IP,
531: filter,
533: Redirector module,
535: Agent module.

Claims (2)

원격지의 원격지 사용자단말기;
상기 원격지 사용자단말기를 통해 접속되는 경우 가상사설망(VPN) 설치정보를 상기 원격지 사용자단말기로 전송하고, 사용자의 설치요청 신호가 수신되는 경우 VPN 터널링유닛과 인증모듈을 상기 원격지 사용자단말기로 제공하는 VPN 메인유닛;
상기 원격지 사용자단말기가 접근하고자 하는 기업 내 사설망 네트워크와 연결되고, 상기 원격지 사용자단말기와 상호 접속되는 복수의 내부단말기;
상기 원격지 사용자단말기의 TDI 계층을 통과하는 모든 패킷의 목적지IP와 상기 각 내부단말기들의 IP를 비교하여 일치되는 패킷을 필터링(Filtering)하는 필터(Filter)와, 상기 필터링(Filtering)된 패킷을 후킹(Hooking) 하고 상기 후킹(Hooking)된 패킷의 목적지IP를 에이전트IP로 변환하는 리다이렉터(Redirector)모듈과, 상기 리다이렉터(Redirector)모듈에서 변환된 패킷을 전송받아 상기 에이전트IP를 VPN 메인유닛IP로 변환하고 상기 원격지 사용자단말기에서 최초 접속하고자 한 목적지IP를 상기 패킷의 컨텐츠에 추가하고 암호화하여 상기 VPN 메인유닛으로 전송하는 에이전트(Agent)모듈을 갖는 VPN 터널링유닛; 및
상기 원격지 사용자단말기의 VPN 메인유닛에 접속을 인증하는 인증모듈을 포함하되,
상기 VPN 메인유닛은, 상기 에이전트(Agent)모듈로부터 암호화된 패킷이 수신되는 경우, 상기 패킷의 VPN 메인유닛IP를 상기 원격지 사용자단말기에서 최초 접속하고자 한 목적지IP로 변환하고 복호화하여 상기 기업 내 사설 네트워크와 연결된 내부단말기로 전송하고, 응답패킷을 암호화하여 상기 원격지 사용자단말기로 역순으로 전송하고,
상기 VPN 메인유닛은 백업 파일 분산화 모듈을 더 포함하고,
상기 백업 파일 분산화 모듈은,
해킹 및 랜섬웨어를 포함하는 외부 공격으로부터 보호하여야 할 사용자 정보 및 시스템 정보를 포함하는 중요 정보를 백업 파일로 생성한 후, 생성된 상기 백업 파일을 동일한 데이터를 포함하는 1차 백업 파일과 2차 백업 파일을 순차적으로 생성하고, 상기 1차 백업 파일과 상기 2차 백업 파일을 서로 다른 저장 장소에 저장하되, 기 설정된 주기마다 상기 1차 백업 파일 및 상기 2차 백업 파일을 임의의 랜덤 변수에 따라 생성된 폴더로 이동 저장하고,
외부 공격이 감지되는 경우 기 생성된 상기 1차 백업 파일 및 상기 2차 백업 파일로부터 복제를 연속적으로 수행하여 복수의 서브 백업 파일을 생성하고, 상기 서브 백업 파일을 랜덤 변수에 따라 생성된 서로 다른 폴더에 각각 저장하고,
백업 파일을 클라우드 서비스와 연동된 동기화 폴더에 저장한 경우, 해당 동기화 폴더에 백업 파일의 저장이 완료되고 저장한 백업 파일이 클라우드 상에 업로드 되면, 해당 동기화 폴더에 대한 동기화를 해제하고, 클라우드 상에 업로드 하였던 백업 파일의 저장 장소를 변경할 순서가 된 경우, 선택적 동기화를 해제하였던 폴더의 동기화를 다시 수행하여 클라우드 서비스에 업로드 하였던 백업 파일을 다운받은 후, 다운받은 백업 파일을 랜덤 변수에 따라 새롭게 생성된 폴더로 이동시키는, 가상사설망(VPN) 서비스 시스템.

A remote user terminal at a remote location;
A VPN tunneling unit and an authentication module to the remote user terminal when the installation request signal is received from the remote user terminal when the connection is established through the remote user terminal, unit;
A plurality of internal terminals connected to a private network in the enterprise to which the remote user terminal is to access and connected to the remote user terminal;
A filter for filtering a packet matched by comparing a destination IP of all packets passing through the TDI layer of the remote user terminal with an IP of each of the internal terminals and a filter for filtering the filtered packet, A redirector module for converting a destination IP address of the hooked packet into an agent IP address and a destination IP address of the packet to be converted into a VPN main unit IP by receiving the converted packet from the redirector module, A VPN tunneling unit having an Agent module for adding, to the VPN main unit, a destination IP address to which the remote user terminal initially connects, adding the content to the contents of the packet, And
And an authentication module authenticating a connection to a VPN main unit of the remote user terminal,
When the encrypted packet is received from the agent module, the VPN main unit converts the IP address of the VPN main unit of the packet into the destination IP address of the remote user terminal for the first connection and decrypts it, And transmits the encrypted response packet to the remote user terminal in the reverse order,
Wherein the VPN main unit further comprises a backup file distribution module,
Wherein the backup file distribution module comprises:
Hacking, and random software, to the backup file, and then creates the backup file, which is generated, with the primary backup file including the same data and the secondary backup The primary backup file and the secondary backup file are stored in different storage locations, and the primary backup file and the secondary backup file are generated in accordance with an arbitrary random variable at predetermined intervals, Go to the folder where it was saved,
When an external attack is detected, duplication is continuously performed from the pre-created primary backup file and the secondary backup file to generate a plurality of sub-backup files, and the sub-backup files are created in different folders Respectively,
If the backup file is saved in the synchronization folder that is linked with the cloud service, when the backup file is saved in the corresponding synchronization folder and the backup file that is saved is uploaded to the cloud, the synchronization is canceled for the synchronization folder, If the order of changing the storage location of the uploaded backup file is reached, the folder in which the selective synchronization is canceled is synchronized again to download the backup file uploaded to the cloud service, and the downloaded backup file is newly created according to the random variable A virtual private network (VPN) service system that moves to a folder.

삭제delete
KR1020190015255A 2019-02-10 2019-02-10 Virtual private network service system KR101988205B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190015255A KR101988205B1 (en) 2019-02-10 2019-02-10 Virtual private network service system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190015255A KR101988205B1 (en) 2019-02-10 2019-02-10 Virtual private network service system

Publications (1)

Publication Number Publication Date
KR101988205B1 true KR101988205B1 (en) 2019-06-12

Family

ID=66845997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190015255A KR101988205B1 (en) 2019-02-10 2019-02-10 Virtual private network service system

Country Status (1)

Country Link
KR (1) KR101988205B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220088261A (en) * 2020-12-18 2022-06-27 인하대학교 산학협력단 High-performance Inter-VM Communication Techniques Using Shared Memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100033698A (en) * 2008-09-22 2010-03-31 주식회사 시큐위즈 Virtual private network service method and its system
KR101473607B1 (en) 2014-03-07 2014-12-16 (주) 퓨전데이타 Apparatus and Method for Access Control in a Virtual Private Network
KR20150079236A (en) 2013-12-31 2015-07-08 한국전자통신연구원 Virtual private network gateway and method for secure communication thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100033698A (en) * 2008-09-22 2010-03-31 주식회사 시큐위즈 Virtual private network service method and its system
KR20150079236A (en) 2013-12-31 2015-07-08 한국전자통신연구원 Virtual private network gateway and method for secure communication thereof
KR101473607B1 (en) 2014-03-07 2014-12-16 (주) 퓨전데이타 Apparatus and Method for Access Control in a Virtual Private Network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220088261A (en) * 2020-12-18 2022-06-27 인하대학교 산학협력단 High-performance Inter-VM Communication Techniques Using Shared Memory
KR102465858B1 (en) * 2020-12-18 2022-11-11 인하대학교 산학협력단 High-performance Inter-VM Communication Techniques Using Shared Memory

Similar Documents

Publication Publication Date Title
US11671445B2 (en) Remedial actions based on user risk assessments
KR102111449B1 (en) Firmware update method using low power wireless network
US7593911B1 (en) System and method for applying rule sets and rule interactions
EP3660717B1 (en) Dynamic authorization of requested actions using adaptive context-based matching
US11757907B1 (en) Cybersecurity threat intelligence and remediation system
US20230009116A1 (en) Cloud-based cybersecurity management of hierarchical network groups
US10938826B2 (en) Intelligent device security
US20140019427A1 (en) Framework for context-aware systems and methods
US9558348B1 (en) Ranking software applications by combining reputation and code similarity
CN113673708A (en) Distributed decentralized machine learning model training
KR20130126601A (en) Unified policy over heterogenous device types
CN113767613A (en) Managing data and data usage in an IOT network
JP2019121141A (en) Device, secure element, program, information processing system and information processing method
US11436535B2 (en) Artificial intelligence based application testing and scoring
US20190392137A1 (en) Security annotation of application services
US20230283521A1 (en) Cybersecurity framework compliance management system
CN116830529A (en) Method and system for analyzing security overlays of enterprise access management policy sets
KR101988205B1 (en) Virtual private network service system
KR102032964B1 (en) System for computerization of logistics business
US20200097842A1 (en) Method and system for predicting and preempting patching failures
US20220366056A1 (en) Computer security using zero-trust principles and artificial intelligence for source code
KR102058722B1 (en) Communication line cryptographic system
US11635814B2 (en) Preventing access to potentially hazardous environments
KR102132901B1 (en) Firmware packaging and unpackaging methods
WO2023181219A1 (en) Analysis device, analysis method, and non-transitory computer-readable medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant