KR20170063795A - 네트워크 디바이스를 보호하기 위한 시스템 및 방법 - Google Patents

네트워크 디바이스를 보호하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20170063795A
KR20170063795A KR1020177011077A KR20177011077A KR20170063795A KR 20170063795 A KR20170063795 A KR 20170063795A KR 1020177011077 A KR1020177011077 A KR 1020177011077A KR 20177011077 A KR20177011077 A KR 20177011077A KR 20170063795 A KR20170063795 A KR 20170063795A
Authority
KR
South Korea
Prior art keywords
client
network
access
list
authentication
Prior art date
Application number
KR1020177011077A
Other languages
English (en)
Other versions
KR102009685B1 (ko
Inventor
커트 그라제메이커스
말콤 해밀턴
곡한 버베로글루
Original Assignee
크리프트존 노스 아메리카, 아이엔씨.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 크리프트존 노스 아메리카, 아이엔씨. filed Critical 크리프트존 노스 아메리카, 아이엔씨.
Publication of KR20170063795A publication Critical patent/KR20170063795A/ko
Application granted granted Critical
Publication of KR102009685B1 publication Critical patent/KR102009685B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/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/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/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 실시예는 무허가 액세스로부터 네트워크 디바이스를 보호하도록 돕는다. 그 중에서도, 본 발명의 실시예는 클라이언트가 액세스하도록 허용되지 않는 네트워크 디바이스의 모든 액세스(또는 지식)를 방지하면서, 애플리케이션 서버 및 클라이언트가 액세스하도록 허용되는 다른 네트워크 디바이스에 대해 완전한 액세스를 허용한다.

Description

네트워크 디바이스를 보호하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR PROTECTING NETWORK DEVICES}
본 출원은 2015년 8월 17일에 출원된 미국 특허출원 일련번호 제14/828,357 호와, 2014년 12월 19일에 출원된 미국 특허출원 일련번호 제14/578,140호 및 2014년 10월 6일에 출원된 미국 가 특허출원번호 제62/060,427호에 대한 우선권을 주장하고, 그 발명은 인용에 의해 본 출원에 포함된다.
클라이언트-서버 네트워크 모델(client-server network model)에서, 회사 또는 서비스 제공자는 전형적으로 컴퓨터 네트워크를 통해 클라이언트 컴퓨터 및 다른 서비스에 서비스 및/또는 애플리케이션을 제공한다. 서버 및 관련 서비스는 예를들어, 메일 서버, 파일 서버, 고객 관계 관리(Customer Relationship Management) 또는 CRM 서비스, 기업 자원 관리(Enterprise Resource Planning) 또는 ERP 서비스, 문서 관리 서비스(document management service) 등을 포함할 수 있다.
한편, 보안성은 이러한 서비스에 대한 액세스가 신뢰된 사용자(trusted user) 및 클라이언트에게만 제한함으로써 보장되어야 한다. 다른 한편으로, 신뢰된 사용자는 용이하고 간단한 방식으로 서비스에 액세스해야 한다. 바람직하게는, 서비스는 아무때나 어느장소에서도 도달될 수 있다. "Bring your own device"(또는 "BYOD") 정책이 회사에서 더욱더 수용되고 있다면, 서비스는 또한 "아무것(anything)", 즉 예를들어, 태블릿 컴퓨터, 랩톱 컴퓨터, 홈에서의 자신의 컴퓨터 또는 스마트폰과 같은 신뢰된 사용자에 의해 소유되는 임의의 디바이스로부터 도달가능해야 한다.
다양한 종래의 방식은 그와 같은 애플리케이션 서버에 또는 이러한 애플리케이션 서버에 의해 서빙되는 서비스 또는 애플리케이션에 대한 무허가 액세스(unauthorized access)를 방지하려 시도하는 것이다. 예를 들어, 애플리케이션 서버를 사설 네트워크(private network) 내에 배치하는 것은 인터넷(Internet) 및 다른 외부 공공 네트워크(external public network)로부터 회사 네트워크인, 로컬 영역 네트워크(또는 "LAN")를 격리시키기 때문에 그 자체로 보안 조치(security measure)이다. 사설 네트워크 내의 디바이스 및 서비스는 공공 네트워크로부터 보이지 않는다. 사설 네트워크에서의 트래픽의 컨텐츠 및 트래픽이 회사 네트워크 경계(network boundary)를 횡단할 수 있는 방식은 회사 사설 네트워크로부터 WAN을 분리하는 게이트웨이 디바이스(gateway device)에서의 네트워크 어드레스 변환(Network Address Translation: NAT), 방화벽 규칙(firewall rule) 및 프록시(proxy)를 사용함으로써 조절되고(regulated) 모니터링될 수 있다. 사설 네트워크는 회사 사설 네트워크 내의 클라이언트에 의한 잠재적 무허가 액세스로부터 애플리케이션 서버를 더 분리하기 위해 예를 들어, 가상 LAN(Virtual LAN)에 의해 물리적으로 또는 가상으로 더 부분 분할될 수 있다.
네트워크 레벨 보안은 디폴트로 인증 서버에 대한 액세스만을 가지도록 클라이언트의 방화벽을 구성함으로써와 같이, 사용자에 의한 사용자 상에 또는 클라이언트 기반에 의한 클라이언트 상에 시행될 수 있다. 클라이언트가 허가될 때, 클라이언트의 방화벽이 오픈되고 모든 네트워크 디바이스는 액세스를 허가받은 애플리케이션 서버에 클라이언트의 네트워크 트래픽을 통과시키게 하도록 구성된다.
클라이언트 또는 사용자 레벨에 관한 네트워크 레벨 보안은 또한 아이덴티티 프로파일(identity profile) 및 헬스 프로파일(health profile)에 기초하여 사용자에 대한 액세스 권한을 발생시키는 제어기(controller)에 의해 시도될 수 있다. 제어기는 그 후에 보호 디바이스를 구성함으로써 서버의 세트에 네트워크 액세스를 제공한다.
승인하는 호스트에서의 네트워크 레벨 보안의 시행은 제어기에 의해 호스트를 구성함으로써 시도될 수 있다. 개시하는 호스트가 승인하는 호스트에 대한 액세스를 허가받을 때, 제어기는 개시하는 호스트로부터로의 네트워크 연결을 승인하도록 승인하는 호스트를 구성한다.
사설 네트워크 내의 보안은 사용자 또는 클라이언트가 인증 후에만 서버 상의 서비스를 액세스할 수 있는 경우의 애플리케이션 레벨 보안에 의해 더 시행될 수 있다. 그와 같은 경우에 클라이언트는 예를 들어, IP 네트워크 어드레스에 의해 네트워크 내의 애플리케이션 서버를 발견할 수 있고 그 TCP 또는 UDP 포트 번호에 의해 애플리케이션 서버 상에 실행하는 서비스를 발견할 수 있지만, 서비스 또는 애플리케이션 자체는 인증 크리덴셜(authentication credential)에 기초하여 클라이언트 또는 사용자를 거부할 수 있다. 그와 같은 인증은 개개의 서비스에 의해 로컬로 또는 인증 서버에 의해 중앙집중적으로 관리될 수 있다. 서비스는 그 후에 특정 서비스에 대한 사용자 및/또는 클라이언트 액세스를 허가하기 전에 그와 같은 인증 서버에 대한 인증 크리덴셜을 검사한다.
회사의 사설 네트워크에 대한 액세스는 보안 네트워킹 터널(secured networking tunnel)이 클라이언트 디바이스와 사설 네트워크 사이에 셋업되는 경우에 VPN 또는 가상 사설 네트워크에 의해 설정될 수 있다. 그와 같은 터널의 셋업은 VPN 서버와의 인증에 의해서만 허가된다. 서로 다른 인증 방식은 단지 신뢰된 사용자 및/또는 클라이언트만이 VPN에 가입할 수 있도록 보증하는 것이다.
회사의 사설 네트워크에서의 서비스에 대한 액세스를 제공하기 위한 다른 해결책은 일부 서비스에 대한 외부 액세스를 오프닝 업(opening up)하는 것이다. 예를 들어, 이메일 서버는 사용자가 회사에 있지 않을 때 자신의 이메일을 검사할 수 있도록 외부로부터의 연결을 허용할 수 있다. 이러한 서비스는 클라이언트가 서비스를 실행하는 서버에 대한 물리적 네트워크 액세스를 가지지는 못하지만 서비스의 서브셋(subset)을 제공하는 웹 서버에만 액세스를 가지도록 예를 들어, 회사의 웹사이트를 통해서와 같이 특정 인터페이스를 통한 액세스만을 제공함으로써 때때로 제한된다.
리스크 기반 인증(risk based authentication)에서, 서비스에 대한 액세스는 인증 크리덴셜에 의해 사용자 및/또는 클라이언트의 식별에 기초하여 허가될 뿐 아니라, 리스크 레벨에 적절한 신뢰 레벨을 끌어내기 위해 추가의 메트릭(metric)에 기초하여 허가된다. 그와 같은 메트릭은 예를 들어: 사용자의 위치, 클라이언트의 타입, 운영 시스템, 모든 보안 패치(security patch)가 설치되었다면, 사용자의 로그온 이력(logon history) 등이다. 사용자가 VPN에 의해 로깅 온하는 이러한 방식은 사설 네트워크 내로부터 로깅 온할 때로부터 제한되지 않은 서비스로부터 제한될 수 있다. 또한 사용자 소유 디바이스로의 사설 네트워크 내로부터의 사용자 로깅 온은 일부 서비스를 거부당할 수 있다.
본 발명의 실시예는 무허가 액세스로부터 네트워크 디바이스를 보호하는데 도움을 준다. 그 중에서도, 본 발명의 실시예는 클라이언트가 액세스하도록 허용되지 않는 네트워크 디바이스의 모든 액세스(또는 심지어 인식하는 것)를 방지하면서, 클라이언트가 액세스하도록 허용되는 애플리케이션 서버 및 다른 네트워크 디바이스에 대한 완전한 액세스를 허용한다.
본 발명의 일 실시예에 따른 컴퓨터 구현 방법은: 사설 네트워크에 대해 게이트웨이를 구현하는 컴퓨터 시스템에 의해, 클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이에 네트워크 터널에 대한 요청을 클라이언트 디바이스로부터 수신하는 단계; 컴퓨터 시스템에 의해 클라이언트 디바이스를 인증하는 단계; 컴퓨터 시스템과 통신하는 인증 서버로부터, 클라이언트 디바이스가 통신하도록 허용되는 네트워크 디바이스의 목록을 포함하는 클라이언트 액세스 목록을 수신하는 단계; 컴퓨터 시스템에 의해, 사설 네트워크에서의 네트워크 디바이스는 클라이언트 디바이스가 통신하도록 허용되는 네트워크 디바이스의 목록의 일부임을 검증하는 단계; 및 컴퓨터 시스템에 의해, 게이트웨이를 통해 클라이언트 디바이스와 네트워크 디바이스 사이에 네트워크 터널을 설정하는(establishing) 단계를 포함한다.
본 발명은 다양한 방법, 그와 같은 방법을 수행하는 장치(컴퓨터 시스템을 포함함), 및 컴퓨팅 시스템에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 그와 같은 방법을 수행하게 하는 명령을 포함하는 컴퓨터 판독가능 매체를 포함한다.
또한, 다른 특징들도 첨부 도면 및 후속하는 상세한 설명으로부터 명백해질 것이다.
도 1은 본 발명의 다양한 양상에 따른 비신뢰 클라이언트 디바이스에 의한 네트워크 액세스로부터 네트워크 디바이스를 보호하기 위한 예시적인 시스템이다.
도 2는 본 발명의 다양한 양상에 따른 보호된 네트워크 디바이스에 대한 네트워크 액세스를 획득하기 위해 클라이언트 디바이스에 의해 실행되는 예시적인 프로세스이다.
도 3은 본 발명의 다양한 양상에 따른 보호하는 네트워크 디바이스에 대한 클라이언트 네트워크 액세스를 허용하는 클라이언트 디바이스에 클라이언트 액세스 및 터널 목록을 제공하기 위해 인증 서버에 의해 실행되는 예시적인 프로세스이다.
도 4는 본 발명의 다양한 양상에 따른 게이트웨이에서의 방화벽 뒤에 보호된 네트워크 디바이스에 클라이언트 액세스를 제공하기 위해 게이트웨이에 의해 실행되는 예시적인 프로세스이다.
도 5는 본 발명의 다양한 양상에 따른 네트워크 디바이스의 제 1 선택에 대한 액세스를 획득한 후에 게이트웨이의 방화벽 뒤에 네트워크 디바이스의 제 2 선택에 대한 네트워크 액세스를 획득하기 위해 클라이언트 디바이스에 의해 실행되는 예시적인 프로세스이다.
도 6은 본 발명의 다양한 양상에 따른 클라이언트와 클라이언트 디바이스 사이의 네트워킹 터널을 유지하기 위해 클라이언트 디바이스와 게이트웨이 사이의 연결 유지 메시지(keep alive message)의 예시적인 교환을 도시한다.
도 7은 본 발명의 다양한 양상에 따른 비신뢰 클라이언트 디바이스에 의한 네트워크 액세스로부터 네트워크 디바이스를 보호하기 위한 예시적인 시스템을 도시한다.
도 8은 본 발명의 다양한 양상에 따른 비신뢰 클라이언트 디바이스에 의한 네트워크 액세스로부터 네트워크 디바이스를 보호하기 위한 예시적인 시스템을 도시한다.
도 9는 본 발명의 다양한 양상에 따라 게이트웨이의 네트워킹 로드가 제 2 게이트웨이에 의해 밸런싱(balanced)되는 경우의 비신뢰 클라이언트 디바이스에 의한 네트워크 액세스로부터 네트워크 디바이스를 보호하기 위한 예시적인 시스템을 도시한다.
도 10은 본 발명의 다양한 양상에 따른 예시적인 컴퓨팅 시스템을 도시한다.
청구 대상은 이제 본원의 일부를 형성하고, 예시로서, 특정 예시적 실시예를 도시하는 첨부 도면을 참조하여 이하에 더 완전하게 설명될 것이다. 청구 대상은 그러나, 다양한 서로 다른 형태로 구체화될 수 있고, 따라서, 포괄되는 또는 청구되는 대상이 본원에 설명되는 임의의 예시적인 실시예에 제한되는 것이 아닌 것으로 해석되는 것이다; 예시적인 실시예는 단지 예시적인 것으로 제공된다. 유사하게, 청구된 또는 포괄된 청구 대상을 위한 합리적으로 넓은 범위가 의도된다. 그 중에서도, 예를 들어, 청구 대상은 방법, 디바이스, 컴포넌트 또는 시스템으로서 구체화될 수 있다. 따라서, 실시예는 예를 들어, 하드웨어, 소프트웨어, 펌웨어 또는 소프트웨어 그 자체와는 다른 임의의 조합의 형태를 취할 수 있다. 따라서, 다음의 상세한 설명은 제한적인 의미가 아닌 것으로 의도된다.
첨부하는 도면에서, 일부 특징은 특정 컴포넌트의 상세를 도시하기 위해 과장될 수 있다. 그리고 도면에 도시되는 임의의 크기, 재료 및 유사한 상세는 예시적인 것으로 제한하는 것이 아니다. 따라서, 본원에 개시되는 특정 구조 및 기능 상세는 제한으로서 해석되는 것이 아니라, 단지 당업자에게 개시된 실시예를 다양하게 사용하도록 교시하기 위한 대표적인 기반으로서 해석되는 것이다.
"일 실시예" 또는 "실시예"에 대한 본 명세서에서의 참조는 실시예와 관련하여 설명되는 특정 특징, 구조 또는 특성이 본 발명의 적어도 일 실시예에 포함되는 것을 의미한다. 명세서에서의 다양한 곳에서의 어구 "일 실시예에서"의 표현은 모두 반드시 동일한 실시예를 지칭하는 것이 아니고, 다른 실시예와 상호 배타적인 별개의 또는 대안적인 실시예가 아니다. 더욱이, 일부 실시예에 의해 나타날 수 있고 다른 실시예에 의해서 나타나지 않는 다양한 특징이 설명된다. 유사하게, 일부 실시예에 대한 요건일 수 있지만 다른 실시예에 대한 요건은 아닐 수 있는 다양한 요건이 설명된다.
본원에 도시되는 방법의 엘리먼트의 임의의 조합 및/또는 서브세트는 서로 조합될 수 있고, 다양한 조건에 기초하여 선택적으로 수행되거나 수행되지 않을 수 있고, 임의의 원하는 횟수로 반복될 수 있으며, 임의의 적합한 순서로 그리고 임의의 적합한 시스템, 디바이스 및/또는 프로세스와 함께 실시될 수 있다. 본원에 설명되고 도시되는 방법은 하나 또는 그 이상의 컴퓨터 시스템 상에 동작하는 소프트웨어를 통해서와 같이, 임의의 적합한 방식으로 구현될 수 있다. 소프트웨어는 컴퓨터 시스템의 메모리와 같은 탠저블 컴퓨터 판독가능 매체(tangible computer-readable medium)에 저장되는 컴퓨터 판독가능 명령을 포함할 수 있고 다양한 실시예의 방법을 수행하기 위해 하나 또는 그 이상의 프로세서에 의해 실행될 수 있다.
도 1은 본 발명의 다양한 양상에 따른 원치않는 네트워크 액세스로부터의 네트워크 디바이스의 보호를 위한 예시적인 시스템을 도시한다. 본 예에서, 3개의 네트워크 디바이스(애플리케이션 서버(141, 142 및 143))는 사설 네트워크(140)의 일부이다. 서버(141~143)에 대한 액세스는 사설 네트워크 어드레스를 통해 사설 네트워크(140)내로부터 획득된다. 이러한 문맥에서, 용어 "사설(private)"은 애플리케이션 서버(141-143)가 전 세계적으로 라우팅가능(routable)하지 않다는 사실을 지칭한다. 다시 말해, 애플리케이션 서버(141~143)는 사설 네트워크(140) 밖으로부터 사설 네트워크 어드레스에 의해 어드레싱될 수 없다.
도 1에서의 사설 네트워크(140) 및 다른 컴포넌트는 또한 인터넷 프로토콜(Internet Protocol: "IP"), 또는 전송 제어 프로토콜/인터넷 프로토콜(Transmission Control Protocol/Internet Protocol: "TCP/IP")로서 지칭되는 임의의 수 및 타입의 통신 프로토콜을 활용할 수 있다. 예를 들어, 사설 네트워크(140)는 인터넷 프로토콜 버전 4(Internet Protocol Version 4) 또는 IPv4를 위한 RFC 1918 및 인터넷 프로토콜 버전 6(Internet Protocol Version 6) 또는 IPv6을 위한 RFC 4193에 의해 설정된 바와 같은 어드레스 범위를 가질 수 있다.
애플리케이션 서버(141-143)는 다른 컴퓨팅 디바이스에 네트워크(140)를 통해 서비스를 제공한다. 메일 서버, 파일 서버, 고객 관계 관리 또는 CRM 서비스, 기업 자원 관리 또는 ERP 서비스, 및/또는 문서 관리 서비스와 같은 임의의 수 및 타입의 애플리케이션 서버 및 관련 서비스가 본 발명의 실시예와 함께 사용될 수 있다.
데이터 연결은 서비스와 관련되는 포트(또는 포트 범위) 상의 각각의 애플리케이션 서버로 통신 소켓(communication socket)을 오픈(opening)함으로써 애플리케이션 서버(141~143) 중 임의의 서버로 설정될 수 있다. 애플리케이션 서버(141~143)는 사설 네트워크 어드레스와 관련되는 물리적 네트워킹 인터페이스를 가지는 물리적 디바이스에 대응할 수 있다. 대안적으로, 애플리케이션 서버(141~143)는 또한 하나 또는 그 이상의 물리적 서버 상에 실행하는 가상 서버 인스턴스(instance)에 대응할 수 있다. 가상 서버 인스턴스는 각각 관련된 사설 네트워크 어드레스를 가지는 가상 네트워크 인터페이스를 가질 수 있다. 가상 서버 인스턴스는 (또한 소프트웨어 컨테이너(software container), 가상 엔진(virtual engine), 가상 사설 서버(virtual private server) 및/또는 자일(jail)로서 알려지는) 하나 또는 그 이상의 사용자 스페이스 인스턴스(user space instance)를 포함할 수 있거나 이와 함께 동작할 수 있다. 그와 같은 사용자 스페이스 인스턴스는 DOCKER 소프트웨어 툴을 통해서를 포함하여, 임의의 적합한 방식으로 구현될 수 있다.
도 1에 도시된 예에서, 사설 네트워크(140)는 게이트웨이(100)에 의해 외부 네트워크(180)로부터 분리됨으로써, 제어된 방식으로 외부 네트워크(180)와 사설 네트워크(140) 사이의 네트워킹 트래픽을 허용한다. 도 1의 시스템은 그 위에 실행하는 서비스를 사용하기 위해 사설 네트워크(140) 내의 애플리케이션 서버(141~143) 중 하나 또는 그 이상에 액세스 권한을 가지는 "신뢰된 클라이언트(trusted client)"로서 클라이언트(121, 122)를 식별할 수 있다. 클라이언트(121, 122)는 물리적 하드웨어 및/또는 가상 컴포넌트일 수 있거나 이들을 포함할 수 있다. 예를 들어, 클라이언트(121, 122)는 이동 디바이스(mobile device)와 같은 물리적 디바이스 상에 실행하는 가상 운영 시스템(virtual operating system)을 포함할 수 있다. 시스템은 또한 클라이언트(121, 122)가 액세스하도록 허용되는 애플리케이션 서버(141-143)의 선택에 대한 네트워크 액세스를 허가할 수 있고 클라이언트(121, 122)가 액세스하도록 허용되지 않는 임의의 애플리케이션 서버에 대한 네트워크 액세스를 거부할 수 있다.
애플리케이션 서버(141-143)에 대한 클라이언트(121, 122)에 의한 액세스를 제어하기 위해, 게이트웨이(100)는 외부 네트워크(180)에서의 클라이언트(121, 122)에 의한 요청시에 네트워킹 터널을 설정하기 위한 터널 모듈(101)을 포함한다. 도 1에 도시된 예에서, 네트워킹 터널(181, 182)은 터널 모듈(101)과 클라이언트(121, 122) 각각 사이에 설정됨으로써, 사설 네트워크(140)를 클라이언트(121, 122)로 확장한다. 일부 실시예에서, 가상 사설 네트워크(또는 "VPN")는 터널(181, 182)을 통해 설정된다. 이러한 방식으로, 클라이언트(121, 122)는 네트워크(180) 내에 있더라도, 사설 네트워크(140)의 범위에 있는 사설 네트워크 어드레스를 제공받고, 따라서 각각의 사설 네트워크 어드레스에 의해 모든 애플리케이션 서버(141-143)를 잠재적으로 액세스할 수 있다(이하에 더 상세하게 논의되는 바와 같이, 제공된 액세스가 허용된다).
클라이언트(121, 122)의 요청시에 터널이 설정됨으로써, 터널 모듈(101)에 터널 인증 정보를 제공한다. 사용자명칭(username) 및 패스워드(password)와 같은 임의의 수량 및 타입의 인증 정보가 본 발명의 실시예와 함께 사용될 수 있다. 터널 인증 정보는 또한(또는 대안적으로) 생체측정법(biometric), 2-인자 인증(two-factor authentication) 및/또는 다른 암호화 방법(cryptographic method)을 포함할 수 있다. 터널(181, 182)에서 이동하는 데이터는 인터넷 프로토콜 보안(Internet Protocol Security)(또는 "IPsec 프로토콜(IPsec protocol)"), 전송 계층 보안(Transport Layer Security)(또는 "TLS") 및/또는 데이터그램 전송 계층 보안(Datagram Transport Layer Security)(또는 "DTLS")에 따르는 바와 같은 암호화에 의해 더 보호될 수 있다. 터널 인증 모듈(105)은 터널 인증 정보를 검증하고, 인증이 성공적이라면, 각각의 클라이언트와 네트워킹 터널이 설정된다.
도 1에서의 게이트웨이는 각각의 터널(181, 182)이 설정된 후에 클라이언트(121, 122)와 애플리케이션 서버(141-143) 사이의 네트워크 트래픽을 제어하기 위한 방화벽(102)을 포함한다. 방화벽(102)은 방화벽 구성 모듈(103)에 의해 또는 다른 소스로부터 제공되는 방화벽 규칙에 따라 그와 같은 트래픽을 제어할 수 있다. 일부 실시예에서, 방화벽 구성 모듈(103)은 차례로, 인증 서버(160)로부터 클라이언트 액세스 목록을 수신하는 각각의 클라이언트(121, 122)로부터 수신되는 클라이언트 액세스 목록으로부터 방화벽 규칙을 획득한다.
그 중에서도, 방화벽 규칙은 클라이언트(121, 122)가 애플리케이션 서버(141, 142 및 143)와 네트워크 연결을 설정하고 유지하게 허용한다. 클라이언트(121, 122)가 액세스할 수 있는 애플리케이션 서버(141-143)의 선택은 방화벽 규칙이 또한 획득되는 클라이언트 액세스 목록으로부터 결정될 수 있다. 방화벽 규칙은 임의의 원하는 정보를 포함할 수 있다. 일부 실시예에서, 예를 들어, 방화벽 규칙은 정보 클라이언트가 액세스할 수 있음을 정의하는 자격 토큰(entitlement token)을 포함한다. 그와 같은 자격 토큰은 네트워크 트래픽 액세스를 허가/거부할 뿐 아니라 (예를 들어, 고도로 기밀인 것으로 분류되는(메타데이터(metadata)를 포함함)) 다양한 파일에 대해 액세스하도록 방화벽을 구성하기 위해 사용될 수 있다.
방화벽(102)은 임의의 수 및 타입의 시스템, 디바이스, 하드웨어 컴포넌트, 및/또는 소프트웨어 컴포넌트일 수 있거나, 이들을 포함할 수 있다. 예를 들어, 방화벽(102)은 다수의 하드웨어 및/또는 소프트웨어 컴포넌트를 포함하는 분산 방화벽(distributed firewall)으로서 구현될 수 있다. 일부 실시예에서, 방화벽(102)은 디폴트로 보안 터널(180, 181)을 통해 클라이언트(121, 122)로부터의 모든 트래픽을 차단하지만, 방화벽 규칙에 응답하여 트래픽을 허용하도록 구성될 수 있다. 예를 들어, 클라이언트 액세스 목록은 클라이언트(121)가 애플리케이션 서버(141)를 액세스할 수 있음을 표시한다면, 방화벽 구성 모듈(103)은 대응하는 규칙을 획득하고 방화벽(102)에서 규칙을 활성화한다. 규칙의 활성화 후에, 방화벽(102)은 더 이상 클라이언트(121)와 애플리케이션 서버(141) 사이의 사설 네트워크 상의 네트워크 트래픽을 차단하지 않는다.
도 1의 시스템은 차례로 클라이언트(121, 122)를 인증하고 클라이언트 정보를 발생시키기 위한 인증 모듈(162)을 포함하는 인증 서버(160)를 포함한다. 도 1에 도시된 예에서, 클라이언트(121, 122)가 사설 네트워크(140)에서의 애플리케이션 서버(141-143)에 대해 액세스를 얻게 하기 위해, 먼저 스스로 인증 서버(160)로 인증해야 한다.
인증 서버(160)는 하드웨어 및 소프트웨어 컴포넌트의 임의의 원하는 조합을 사용하여 구현될 수 있고, 임의의 원하는 방식으로 다른 하드웨어 및 소프트웨어 컴포넌트와 통신할 수 있다. 도 1에 도시된 예시적인 시스템에서, 인증 서버(160)는 사설 네트워크(140)의 일부가 아니지만, 네트워크(180)를 통해 클라이언트(121, 122)에 의해 액세스가능하다. 클라이언트(121, 122)에 의해 제공되는 인증 정보는 (인증 모듈(162)에 의해 검증될 수 있는) 사용자명칭 및 패스워드를 제공함으로써와 같이, 클라이언트 또는 클라이언트의 사용자를 고유하게 식별한다.
클라이언트(121, 122)는 임의의 수 및 타입의 서로 다른 인증 방법을 사용하여 인증될 수 있다. 예를 들어, 패스워드 인증에 더하여(또는 대안으로서), 클라이언트 하드웨어의 사용 이력 및 클라이언트의 하드웨어 속성과 같은 클라이언트(121, 122)의 하드웨어에 기초한 인증을 활용할 수 있다. 일 실시예에서, 그와 같은 정보는 클라이언트 디바이스 상의 기록에 저장될 수 있고, 그에 의해 다른 머신에 대한 기록의 이동 검출은 인증 실패(authentication failure)를 발생시킨다. 기록은 추가의 무결성(integrity)을 제공하기 위해 암호화 및/또는 키-사인(key-sign)될 수 있다. 인증은 또한 클라이언트(121, 122)가 미리 결정된 시간 윈도우(time window) 밖에서 인증을 시도하는 경우에 인증이 거부되도록(또는 추가적인 인증이 요구되도록) 시간 윈도우에 기초할 수 있다.
인증은 클라이언트(121, 122)의 인터넷 프로토콜(IP) 어드레스 또는 클라이언트(121, 122)와 관련되는 위성 위치 확인 정보(global positioning information)에 기초한 바와 같이, 위치-기반 정보(location-based information)에 기초하여 수행될 수 있다. 예를 들어, 클라이언트(121, 122)의 물리적 위치는 위성 위치 확인 정보, 특정 IP 어드레스, 또는 심지어 클라이언트의 IP 어드레스의 국가 번호(country code)로부터 결정될 수 있고, 클라이언트(121, 122)가 선량한 클라이언트(bona fide client)인지 또는 클라이언트인체 하려 하는 (해커(hacker)와 같은) 제 3 파티(party)인지 여부를 결정하기 위해 사용될 수 있다. IP 어드레스(개개의 또는 국가 번호에 기초한 범위 등)는 이전의 이력(즉, 해킹 시도, 인증 실패 등)에 기초하여 블랙리스트화(blacklisted)되거나 화이트리스트화(whitelisted)될 수 있다. 유사하게, 인증을 위해 사용되는 위치-기반 정보는 또한 연결을 시도하는데 있어서 클라이언트(121, 122)에 의해 사용되는 물리적 네트워크로부터 도출될 수 있다.
인증 모듈(162)은 또한 클라이언트(121, 122)로부터 직접 컨텍스트(context) 또는 상태 정보를 수신할 수 있다. 그와 같은 정보는 클라이언트로부터 직접 수신되고, 그에 따라 인증 서버에 의해 검증될 수 없을 때, 그 정보는 비신뢰된 "클라이언트 컨텍스트 정보(client context information)"로서 처리될 수 있다. 클라이언트 정보에 포함될 수 있는 클라이언트 컨텍스트 정보는: 완전히 적격인 도메인 명칭(또는 "FQDN"), 예를 들어 "host.domain.com"의 형태일 수 있는 호스트명칭; 호스트 상에 실행하는 운영 시스템의 패밀리(family) 및 버전 번호(version number); 어느 패치가 운영 시스템에 적용되었는지를 표시하는 패치 레벨(patch level); 클라이언트 상에 설치된 안티-바이러스 소프트웨어(anti-virus software)의 상태; 및/또는 클라이언트 디바이스의 사용자가 클라이언트 상에 로그 온된 기간과 같은 정보를 포함할 수 있다.
인증 모듈(162)은 또한 사용자 그룹 및 사용자가 속하는 부서에 대해 표시하는 사용자 멤버십 정보(user membership information)와 같은 정보를 포함할 수 있는 "신뢰된 클라이언트 정보(trusted client information)"를 클라이언트 정보에 추가할 수 있다. 신뢰된 클라이언트 정보는 경량성 디렉토리 액세스 프로토콜(lightweight directory access protocol: "LDAP") 또는 활성 디렉토리(Active Directory: "AD") 서비스를 사용하여 사용자 디렉토리 시스템에 의해 제공될 수 있다. 신뢰된 클라이언트 정보는 또한 인증 서버(160)로 클라이언트의 이전 세션(session)에 관한 이력 정보(예를 들어, 최종 로긴 타임스탬프(last login timestamp) 및 실패한 로긴 시도량)와 같은 정보를 포함할 수 있다.
도 1에 도시된 예에서, 인증 모듈(162)은 클라이언트 목록 엔진(client list engine)(163) 및 터널 목록 엔진(tunnel list engine)(165)을 포함한다. 인증 모듈(162)에 의한 성공적 인증시에, 터널 목록 엔진(165)은 클라이언트 터널 목록을 발생시키고 클라이언트 목록 엔진(163)은 인증 모듈에 의해 제공되는 클라이언트 정보에 기초하여 클라이언트 액세스 목록을 발생시킨다.
클라이언트 터널 목록은 각각의 터널(181, 182)을 설정하기 위해 인증된 클라이언트(121, 122)를 위한 모든 정보를 포함할 수 있다. 클라이언트 터널 목록은 예를 들어, 클라이언트(121, 122)가 클라이언트 터널 목록에 특정된 IP 어드레스 및 포트 번호에서의 터널의 셋업(setup)을 요청함으로써 각각의 터널(181, 182)의 설정을 개시하게 하기 위해 (게이트웨이(100)의 목적지 IP 어드레스 및/또는 목적지 포트 번호와 같은) 네트워크 어드레스 정보를 포함할 수 있다. 클라이언트 터널 목록은 또한 게이트웨이(100)에서의 인증 모듈(105)로 클라이언트(121, 122)를 인증하기 위해 터널 인증 정보를 포함할 수 있다. 클라이언트 터널 목록은 예를 들어, 클라이언트를 다양한 게이트웨이에 연결하기 위해 필요한 정보를 포함하는 가상 사설 네트워크(VPN) 토큰을 포함할 수 있다.
터널 목록 엔진(165)에 의해 발생되는 터널 인증 정보는 동적일 수 있다(즉, 사전에 게이트웨이(100)의 인증 모듈(105)에 의해 알려지지 않음). 그와 같은 경우에, 인증 서버는 인증 서버(160)와 게이트웨이(100) 사이의 통신 링크(168)에 의해 게이트웨이(100)에 터널 인증 정보를 포워딩(forward)할 수 있다. 통신 링크(168)는 따라서 구성 업데이트가 교환되게 허용하고 사용자 및/또는 세션이 인증 서버(160)에서 삭제되는 경우에 사용자 또는 세션에 의한 액세스가 취소되게 허용하는 채널을 게이트웨이(100)와 인증 서버(160) 사이에 제공한다. 1) 서비스 데이터베이스가 변화하고 관리자가 모든 사용자에 관한 변경을 시행하기를 원하거나; 2) 사용자가 그 자신의 인증 방법을 변경하거나; 3) 사용자 또는 클라이언트가 시스템으로부터 금지되는 것과 같은 사용자 또는 세션이 제거될 수 있는 다양한 이유가 존재한다. 통신 링크(168)는 단지 인증 서버(160)와 하나 또는 게이트웨이 중에서 하나 또는 그 이상의 게이트웨이 사이의 통신을 허용하는 하이퍼텍스트 전송 프로토콜 보안(hypertext transfer protocol secure: HTTPS) 채널을 통해서와 같이, 임의의 원하는 방식으로 구현될 수 있다.
클라이언트 액세스 목록은 클라이언트가 액세스를 허가받는 애플리케이션 서버(141-143)의 선택을 식별한다. 일부 실시예에서, 클라이언트 목록 엔진(163)은 방화벽(102)을 위한 방화벽 규칙을 발생시키고 클라이언트 액세스 목록에 이 규칙을 포함시킨다. 방화벽 규칙은 게이트웨이(100)에서의 방화벽 구성 모듈(103)에 의해 클라이언트 액세스 목록으로부터 추출되고 방화벽(102)에 적용된다. 클라이언트 액세스 목록은 애플리케이션 서버(141-143)의 어드레싱 정보에 조건을 더 추가할 수 있다. 클라이언트 액세스 목록의 예시적인 예가 이하의 표에 도시된다.
ID Address Condition
10.0.0.1 TimeInterval(09.00-17.00)
10.0.0.11 Domain("domain.com")
10.0.0.3 StringPrefix(username, "adm_")
표 1의 제 1 열은 클라이언트가 네트워크 액세스를 허가받는 애플리케이션 서버의 IP 어드레스를 특정한다. 제 2 열은 액세스를 가지기 위해 실행되어야 하는 조건을 더 특정한다. 제 1 조건은 클라이언트가 애플리케이션 서버 10.0.0.1에 대한 액세스를 허가받는 동안 특정 시간 간격을 특정한다. 제 2 조건은 그 요청이 비롯되어야 하는 특정 도메인을 특정한다(즉, 클라이언트가 애플리케이션을 액세스할 수 있는 도메인을 특정한다). 제 2 조건은 예를 들어, 단지 그 소유 도메인으로부터(즉, 회사의 네트워크 내로부터)의 액세스를 허용하기 위해, 예를 들어, 회사에 의해 사용될 수 있다. 제 3 조건은 정해진 애플리케이션 서버 또는 다른 네트워크 디바이스를 액세스할 수 있어야 하는 것들인 (회사의 관리자와 같은) 특정 사용자 또는 그룹을 식별하기 위해 사용될 수 있다.
도 1에 도시된 예시적인 시스템에서, 인증 서버(160)는 사인된 클라이언트 액세스 목록 및 사인된 클라이언트 터널 목록과 같은 디지털-사인된(digitally-signed) 목록을 생성하기 위한 서명 모듈(signature module)(164)을 포함한다. 서명 모듈(164)에 의해 발생되는 디지털 서명은 클라이언트 액세스 및 터널 목록의 수신 시에 게이트웨이(100)에서의 서명 검증 모듈(104)에 의해 검증될 수 있다. 서명은 클라이언트 액세스 목록 및 클라이언트 터널 목록이 인증 서버(160)를 통지하는 게이트웨이(100) 없이 클라이언트(121, 122)에 의해 변경가능하지 않도록 게이트웨이와 인증 서버(160) 사이에 공유된 서명 키에 의해 발생될 수 있고 검증될 수 있다. 일 예시적인 실시예에서, 증명서를 검증하기 위해 사설/공공 키 메커니즘(private/public key mechanism)을 사용하는 X.509 증명서(certificate)가 사용된다.
일부 실시예에서, 서명을 검증하려 시도하는 동안, 게이트웨이(100)는 클라이언트 액세스 목록 또는 클라이언트 터널 목록이 변경된 것으로 결정한다면, 게이트웨이(100)는 인증 서버(160)에 변경을 통지할 수 있고 및/또는 클라이언트와의 네트워크 터널을 끊을 수 있다. 인증 서버(160)는 클라이언트와의 장래의 상호작용에서 클라이언트와 관련되는 "신뢰된 클라이언트 정보(trusted client information)"의 일부로서 그와 같은 통지를 사용할 수 있다. 일부 실시예에서, 게이트웨이(100)는 (예를 들어, 상술한 바와 같이 클라이언트 액세스 목록 또는 클라이언트 터널 목록에서의 변화를 검출하는데 응답하여) 자신의 자유의지로 설정된 네트워킹 터널(181, 182)을 끊을 수 있다. 추가로 또는 대안적으로, 인증 서버(160)는 터널 모듈(101)로 하여금 네트워킹 터널을 끊도록 그리고 애플리케이션 서버에 대한 각각의 클라이언트 액세스를 허용하는 방화벽으로부터의 방화벽 규칙을 제거할 것을 명령하는 메시지를 통신 링크(168)를 통해 게이트웨이(100)에 송신함으로써 게이트웨이(100)로 하여금 설정된 네트워킹 터널(181, 182)을 끊게 하도록 적응될 수 있다.
도 2, 3 및 4는 도 1에 도시된 예시적인 시스템의 컴포넌트, 즉 클라이언트(121, 122), 인증 서버(160) 및 게이트웨이(100) 각각을 포함하는, 본 발명의 실시예와 함께 동작하는 다양한 컴포넌트에 의해 실행될 수 있는 예시적인 프로세스를 도시한다. 본원에 설명되는 프로세스는 서로 다른 하드웨어 및/또는 소프트웨어 컴포넌트의 임의의 다른 조합에 의해 (전체적으로 또는 부분적으로) 수행될 수 있다.
도 2, 3 및 4에서의 프로세스는 애플리케이션 서버(141, 142 및 143)가 전부 신뢰된 클라이언트(121, 122)에 보안 방식으로 애플리케이션 서버의 서비스를 제공하는데 조력하는 회사에 속하는 경우와 같은 다양한 컨텍스트(context) 및 상황에서 구현될 수 있다. 그와 같은 경우에, "신뢰된 클라이언트"는 사용자 또는 디바이스 자체가 회사에 알려지고 애플리케이션 서버 중 하나 또는 그 이상에 대한 액세스를 제공받을 수 있는 클라이언트 디바이스이다. 각 클라이언트(121, 122)는 애플리케이션 서버(141-143)에 의해 이용가능해진 서비스를 액세스하고 사용할 수 있는 컴퓨터 하드웨어 및/또는 소프트웨어의 임의의 조합으로서 구현될 수 있다. 클라이언트는 예를 들어, 데스크톱 컴퓨터(desktop computer), 랩톱 컴퓨터(laptop computer), 스마트폰(smartphone) 및/또는 태블릿 컴퓨터(tablet computer)일 수 있다(또는 이들을 포함할 수 있다). 클라이언트는 또한 예를 들어, 스스로 인증하기 위해 증명서를 사용하는 서버일 수 있다(또는 이들을 포함할 수 있다). 도 2, 3 및 4에서의 프로세스는 클라이언트(121, 122)가 (도 1에서의 게이트웨이(100)와 같은) 게이트웨이를 통해서만 액세스를 제공하는 대신에, 사설 네트워크를 직접 액세스하는 것을 방지하게 돕는다. 그와 같은 제한은 또한 회사의 사설 네트워크 내에서 동작하는 클라이언트에 관하여 시행될 수 있다. 다시 도 1을 참조하는 시나리오의 예에 대해, 네트워크(180) 및 네트워크(140) 양쪽은 별개의 "사설 네트워크"일 수 있지만, 클라이언트(121, 122)와 애플리케이션 서버(141-143) 사이의 네트워크 통신은 여전히 게이트웨이(100)에 의해 제어된다.
도 2는 애플리케이션 서버(141-143) 상의 하나 또는 그 이상의 서비스를 액세스하기 위해 클라이언트(121, 122) 임의의 클라이언트에 의해 실행될 수 있는 예시적인 프로세스를 도시한다. 도 2에서의 프로세스는 클라이언트가 활성화될 때 배경에서 자동으로 실행하는 클라이언트 디바이스 상의 소프트웨어 애플리케이션을 통해서와 같이 임의의 적합한 방식으로 구현될 수 있다. 소프트웨어 애플리케이션은 클라이언트의 시동 시간(start-up time)에서 자동으로 실행할 수 있거나, 사용자 또는 클라이언트 상에 동작하는 다른 프로세스에 의해 수동으로 개시될 수 있다. 클라이언트(121, 122)는 애플리케이션 서버(141-143) 중 하나에 대한 클라이언트 디바이스의 네트워크 액세스를 모니터링한다(201). 애플리케이션 서버(141-143)의 네트워크 어드레스는 애플리케이션 서버의 서비스를 사용하는 클라이언트 애플리케이션에서의 구성 옵션(configuration option)일 수 있다. 예를 들어, 애플리케이션 서버는 네트워크 어드레스를 가지는 메일 서버(mail server) 및 메일 클라이언트 애플리케이션에서 구성된 포트; 네트워크 공유로서 그 네트워크 어드레스로 구성되는 파일 서버; CRM 서비스일 수 있고 및 클라이언트는 CRM 서비스를 액세싱하기 위해 설치된 전용 클라이언트 애플리케이션을 가지고; 및/또는 웹 서비스일 수 있고(또는 이들을 포함할 수 있고) 사용자는 브라우저 애플리케이션의 어드레스 바에 어드레스를 특정한다.
클라이언트는 클라이언트 애플리케이션이 목적지 네트워크 어드레스에 기초하여 사설 네트워크(140) 내의 애플리케이션 서버를 액세스하려 시도함을 검출할 수 있다(202). 클라이언트는 인증 서버(160)에 송신하기 위해 인증 정보를 검색한다(203). 인증 정보의 검색(retrieval)은 사용자가 이전에 로그온하기 위해 제출한 인증 크리덴셜을 사용함으로써와 같이 자동으로 수행될 수 있다. 대안적으로, 인증 정보의 검색은 사용자에게 사용자명칭 및 패스워드와 같은 인증 크리덴셜을 제공할 것을 요청하는 것을 포함할 수 있다. 도 2의 단계(201-203)에 대해 대안적으로, 클라이언트는 애플리케이션 서버(141-143) 중 하나에 대한 네트워크 액세스 시도를 대기하지 않고서 인증 서버(160)로 직접 스스로 인증할 수 있다. 예를 들어, 클라이언트는 클라이언트의 사용자가 클라이언트에 로그온할 때 또는 클라이언트가 부팅할 때 인증 서버(160)로 인증할 수 있다.
클라이언트의 인증은 저장된 인증 크리덴셜, 사용자의 로그온 크리덴셜, 및/또는 사용자로부터 요청되는 별개의 인증 크리덴셜을 사용함으로써와 같이, 임의의 원하는 방식으로 수행될 수 있다. 임의의 수 및 타입의 아이덴티티 제공자(identity provider)는 또한 RSA, Oauth, 증명서, 반경(Radius), SAML 등을 포함하는 본 발명의 실시예와 함께 사용될 수 있다. 인증 크리덴셜은 인증 서버(160)로 클라이언트(121, 122)를 인증하기 위해(204) 사용된다. 이에 응답하여, 클라이언트는 인증 서버(160)로부터 클라이언트 터널 목록 및 클라이언트 액세스 목록을 수신한다(205).
클라이언트(121, 122)는 예를 들어, 클라이언트 터널 목록으로부터 게이트웨이(100)의 네트워크 어드레스를 검색하고 터널을 설정하기 위한 요청을 게이트웨이(100)에 송신함으로써 게이트웨이(100)와 네트워크 터널(181, 182)을 설정한다(206). 터널을 설정할 때(206), 클라이언트는 인증으로서 클라이언트 터널 목록을 게이트웨이에 제공할 수 있다. 클라이언트 터널 목록은 인증 서버(160)의 서명을 가지고, 그로부터 게이트웨이(100)는 클라이언트가 신뢰됨을 검증할 수 있고 인증 크리덴셜의 추가적인 교환 없이 터널을 설정할 수 있다. 네트워크 터널이 설정된 후에, 사설 네트워크(140)는 터널을 통해 클라이언트로 확장하지만, 서버에 대한 네트워크 액세스가 게이트웨이(100)의 방화벽(102)에 의해 차단될 수 있음에 따라, 클라이언트는 여전히 애플리케이션 서버(141-143) 중 임의의 서버를 액세스하지 못할 수 있다.
클라이언트는 인증 서버(160)로부터 수신된 클라이언트 액세스 목록을 게이트웨이(100)에 송신하고(207) 클라이언트가 클라이언트 액세스 목록으로부터 어느 애플리케이션 서버를 액세스할 수 있는지를 기록한다(211). 클라이언트는 또한 액세스가능한 애플리케이션 서버 또는 서비스를 클라이언트 디바이스의 사용자에 시그널링하거나 디스플레이할 수 있다. 성공적 인증을 가정하면, 게이트웨이(100)는 모든 애플리케이션 서버 또는 클라이언트 액세스 목록에 정렬되는 애플리케이션 서버 상의 서비스에 클라이언트 네트워크 액세스를 제공한다.
도 3은 도 1에서의 인증 서버(160)와 같은 인증 서버에 의해 실행될 수 있는 클라이언트 액세스 및 터널 목록을 클라이언트에 제공하기 위한 예시적인 프로세스이다. 본 예시적인 프로세스에서, 인증 서버는 각각의 클라이언트로부터 요청을 수신한다(301). 그 요청에서, 클라이언트는 도 2의 단계(204)에서와 같이 인증 서버로의 식별을 위한 인증 정보를 제공한다. 인증 서버는 클라이언트를 식별하려 시도한다(302). 클라이언트가 인증 서버에 알려지지 않고 따라서 비신뢰적이라면, 서버는 흐름을 중단시킨다(303). 클라이언트가 알려진다면, 인증 서버는 신뢰된 클라이언트 정보를 검색하고(304) 클라이언트 정보에 그 정보를 추가한다. 단계(301)에서의 인증 정보와 함께 수신되는 클라이언트 컨텍스트 정보는 또한 클라이언트 정보에 추가될 수 있다.
인증 모듈은 클라이언트가 액세스하도록 허용되는 애플리케이션 서버의 선택을 식별한다(310). 클라이언트 정보와 함께 애플리케이션 서버의 선택은 그 후에 인증 서버(160)의 클라이언트 목록 엔진(163) 및 터널 목록 엔진(165)에 포워딩될 수 있다. 터널 목록 엔진(165)은 예를 들어, 게이트웨이(100)와 네트워킹 터널을 셋업하기 위한 인증 크리덴셜과 함께 게이트웨이(100)의 IP 어드레스를 제공함으로써 클라이언트 정보에 기초하여 터널 목록을 발생시킨다(305). 클라이언트 터널 목록은 서명 엔진(164)에 의해 사인된다(306). 인증 서버는 클라이언트가 액세스하도록 허용되는 서버의 선택에 기초하여 클라이언트 액세스 목록을 발생시킨다(307). 클라이언트 정보에 기초하여, 추가적인 조건적 제한이 클라이언트 액세스 목록에 추가될 수 있다. 그 후에, 또한 클라이언트 액세스 목록이 사인된다(308). 인증 서버는 그 후에 클라이언트 액세스 및 터널 목록을 클라이언트에 송신한다(309).
도 4는 도 1에서의 게이트웨이(100)와 같은, 본 발명의 실시예와 함께 동작하는 게이트웨이에 의해 실행될 수 있는 네트워크 액세스를 클라이언트에 제공하기 위한 예시적인 프로세스를 도시한다. 본 예시적인 프로세스에서, 게이트웨이(101)는 클라이언트와 네트워킹 터널(예를 들어, VPN 연결)을 셋업하기 위해 클라이언트(121 또는 122)로부터 요청을 수신한다(401). 그에 응답하여, 게이트웨이는 클라이언트로부터 인증 크리덴셜을 요청하고(402) 클라이언트 터널 목록의 형태로 인증 크리덴셜을 수신한다(403). 클라이언트를 인증하기 위해, 게이트웨이(100)는 인증 서버(160)와 공유되는 서명 키를 사용하여 클라이언트 터널 목록에서의 서명을 검증한다(404). 서명이 정정되고 클라이언트 터널 목록이 클라이언트에 의해 수정되지 않았다면, 게이트웨이(100)는 클라이언트와 네트워킹 터널을 설정하고(405), 따라서 사설 네트워크(140)를 터널을 통해 클라이언트로 확장한다. 게이트웨이의 방화벽은 디폴트로 클라이언트로부터 모든 네트워크 액세스를 차단하도록 더 구성된다. 게이트웨이는 인증 서버에 의해 발생된 클라이언트로부터 클라이언트 액세스 목록을 수신하고(406) 이 클라이언트 액세스 목록에서의 서명을 검증한다(407). 클라이언트 액세스 목록으로부터, 게이트웨이는 클라이언트 액세스 목록(및 또한 클라이언트 액세스 목록에 제공되는 그와 같은 액세스를 위한 조건)에서 정렬된 애플리케이션 서버에 네트워크 액세스를 허용하기 위한 방화벽 규칙을 획득한다(408). 게이트웨이는 방화벽 규칙을 활성화하고(409), 그에 의해 클라이언트가 클라이언트 액세스 목록에 정렬된 애플리케이션 서버의 선택을 액세스하게 허용한다.
일부 실시예에서, 인증 서버(160)는 이들 강화된 인증 요건을 실현할 때 액세스될 수 있는 애플리케이션 서버의 제 2 선택과 함께 클라이언트 액세스 목록에 강화된 인증 요건을 추가할 수 있다. 이들 강화된 요건은 인증 메커니즘 자체에 관련할 수 있고, 예를 들어, (애플리케이션 서버의 제 1 선택에 대해) 더 보안적인 인증 메커니즘이 사용되어야 함을 서술할 수 있다. 예를 들어, (애플리케이션 서버의 제 1 세트를 위한 인증 요건을 충족시킬 수 있는) 사용자/패스워드 조합을 공급하는 대신에, 강화된 요건은 애플리케이션 서버의 제 2 세트에 대한 액세스를 획득하기 위해 2개의 인자 인증이 요청됨을 특정할 수 있다. 요건은 또한 클라이언트 자체의 컨텍스트 또는 상태 정보에 관련할 수 있다. 특정 애플리케이션 서버를 액세스하기 위해 모든 패치가 클라이언트 운영 시스템에 적용되어야 하는 것; 바이러스 스캐너(virus scanner)가 실행되어야 하고 특정 애플리케이션 서버를 액세스하기 위해 최신이어야 하는 것; 및/또는 애플리케이션 서버가 공공 무선 네트워크로부터 액세스되지 않을 수 있는 것인 요건과 같이 임의의 원하는 요건이 사용될 수 있다.
인증 서버로의 인증 시에, (예를 들어, 클라이언트 목록 엔진(163)을 통해) 인증 서버(160)는 그와 같은 강화 인증을 요청하는 애플리케이션 서버의 제 2 선택과 함께 강화된 인증 요건을 포함하는 사인된 클라이언트 액세스 목록을 제공한다. 클라이언트가 강화된 인증 요건을 인증하고 실현할 때, 인증 서버는 클라이언트가 액세스하도록 허용되는 애플리케이션 서버 중에 애플리케이션 서버의 제 2 선택이 정렬되는 경우에 업데이트된 클라이언트 액세스 목록을 클라이언트에게 발행할 수 있다. 강화된 인증 요건의 다수의 레벨(및 애플리케이션의 대응하는 세트)이 클라이언트 액세스 목록에 정렬될 수 있다.
도 5는 강화된 인증 요건으로 애플리케이션 서버에 대해 네트워크 액세스를 획득하기 위해 클라이언트에 의해 실행될 수 있는 예시적인 프로세스를 도시한다. 본 예시적인 프로세스에서, 클라이언트는 또한 본원에서 "베이스 클라이언트 액세스 목록(base client access list)"으로서 지칭되는 제 1 클라이언트 액세스 목록에서 정렬되는 사설 네트워크(140)에서 애플리케이션 서버의 제 1 선택에 대해 네트워크 액세스를 설정한다(501). 단계(501)는 베이스 클라이언트 액세스 목록이 이러한 제 2 선택에 대한 네트워크 액세스를 획득하기 위해 애플리케이션 서버 및 강화된 인증 요건의 제 2 선택을 더 포함하는 차이로 도 2에 개략된 흐름에 따라 더 구현될 수 있다.
클라이언트는 클라이언트 디바이스 상에 실행하는 애플리케이션 및 사설 네트워크(140)에 대한 그와 같은 애플리케이션의 네트워크 액세스를 모니터링한다(502). 클라이언트 애플리케이션이 제 1 선택의 일부가 아닌 애플리케이션 서버에 연결하려 시도한다면, 클라이언트는 애플리케이션 서버가 제 2 선택의 일부인지를 검사한다(503). 그렇지 않다면, 클라이언트는 본 애플리케이션 서버에 대한 액세스를 획득하지 못할 수 있고 클라이언트 또는 애플리케이션의 사용자는 거부된 액세스를 통지받을 수 있다(504). 애플리케이션 서버가 제 2 선택의 일부라면, 클라이언트는 사용자가 지문 스캔(fingerprint scan), 홍채 스캔(iris scan), 사용자에 관한 추가적인 생체인식 정보, 및/또는 외부 키 발생기에 의해 발생되는 키와 같은 강화된 인증 크리덴셜을 제공할 것을 요청하는 것을 포함할 수 있는, 강화 인증 프로세스를 인증 서버로 시작한다(505). 클라이언트는 또한 사용자가 클라이언트 디바이스 자체의 컨텍스트 및/또는 상태를 업데이트할 것을 요청할 수 있다. 예를 들어, 사용자는: 클라이언트를 유선 네트워크에 연결하도록; 공공 무선 네트워크를 통해 클라이언트를 연결하지 않도록; 클라이언트의 운영 시스템의 최신 패치를 설치하도록; 바이러스 스캐너를 설치하도록; 및/또는 바이러스 스캐너의 데이터베이스를 업데이트하도록 요청될 수 있다.
사용자가 성공적으로 강화된 인증 요건을 실현할 때(506), 클라이언트는 인증 서버(160)로부터 제 2 또는 업데이트된 클라이언트 액세스 목록을 수신한다(507). 강화된 인증이 성공적이지 않았다면, 네트워크 액세스를 요청하는 사용자 또는 소프트웨어 애플리케이션은 네트워크 액세스가 거부되었음을 시그널링받거나 경보받는다(504). 업데이트된 클라이언트 액세스 목록은 클라이언트가 액세스할 수 있는 애플리케이션 서버의 제 1 선택 및 제 2 선택 둘 다를 정렬하고, 게이트웨이(100)에 송신되고(508), 그에 따라 방화벽(102)을 구성한다. 클라이언트는 그 후에 어느 애플리케이션 또는 서비스가 허용되는지를 클라이언트 애플리케이션 및 사용자에게 시그널링할 수 있다(509).
도 6은 본 발명의 다양한 양상에 따른 예시적인 시스템을 도시한다. 본 예시적인 시스템에서, 게이트웨이(600)는 연결 유지 모듈(keep alive module)(605)을 포함한다. 게이트웨이(600)는 클라이언트(621)와 설정된 네트워킹 터널(182)을 통해 연결되고, 연결 유지 모듈은 연결 유지 메시지가 클라이언트(621)로부터 규칙적인 간격으로 수신됨을 검사하도록 구성된다. 연결 유지 메시지는 시간 내에 수신되지 않는다면, 연결 유지 모듈은 방화벽 구성 모듈(103)에게 방화벽(102)으로부터 클라이언트(621)에 대한 방화벽 규칙을 클리어할 것을 명령하고, 터널 모듈(101)에게 네트워킹 터널(182)을 끊을 것을 명령한다. 연결 유지 모듈(605)은 클라이언트(621)에 관한 특정 사전정의 상태 또는 컨텍스트 정보가 연결 유지 메시지에 존재하는지 그리고 특정 사전정의 요건을 실현하는지 여부를 검사하도록 더 구성될 수 있다. 그와 같은 요건은 예를 들어, 클라이언트의 바이러스 스캐너 및/또는 방화벽이 활성화되어야 함을 포함할 수 있다.
클라이언트(621)는 게이트웨이(600)에 연결 유지 메시지를 송신하기 위해 단계(601-604)에 의해 도시되는 프로세스를 실행할 수 있다. 제 1 단계(601)에서, 게이트웨이(600)에 대한 네트워킹 터널(182)이 설정된다. 네트워킹 터널(182)은 도 2 및 5에 도시되는 프로세스(또는 그 일부분)를 사용하는 것을 포함하여, 임의의 원하는 방식으로 설정될 수 있다. 클라이언트는 요청된 컨텍스트 및 상태 정보를 수집하고(602) 그 정보를 연결 유지 메시지 내로 포맷팅(format)한다. 연결 유지 메시지는 네트워킹 터널(182)을 통해 게이트웨이(600)의 연결 유지 모듈(605)에 송신된다(603). 메시지가 송신될 때, 사전정의된 시간 간격으로부터 카운트 다운(count down)하기 위해 타이머가 활성화된다(604). 타이머가 만료할 때, 단계(602-604)의 새로운 사이클은 다음의 연결 유지 메시지를 송신하기 위해 수행된다.
도 7은 본 발명의 다양한 양상에 따라 무허가 액세스로부터 애플리케이션 서버(741 내지 746)를 보호하기 위한 예시적인 시스템을 도시한다. 본 예에서, 애플리케이션 서버(741-746)는 게이트웨이(700, 701 및 702) 각각에 의해 보호되는 사설 네트워크(750, 751 및 752)의 일부이다. 클라이언트(721)는 인증 서버(760)로 인증할 수 있고 그에 의해 클라이언트 터널 목록 및 클라이언트 액세스 목록을 획득할 수 있다. 클라이언트 터널 목록은 클라이언트(721)에 모든 사설 네트워크(740-744)를 확장하기 위해 게이트웨이(700-702) 각각과 네트워킹 터널을 설정해야 하는 정보를 포함한다. 클라이언트 터널 목록은 단일 데이터 오브젝트(data object), 모든 게이트웨이를 식별하는 단일 서명을 가지는 파일, 별개의 사인된 데이터 오브젝트, 및/또는 게이트웨이(700-702) 중 하나를 각각 식별하는 파일과 같은 임의의 적합한 포맷으로 있을 수 있다. 클라이언트 터널 목록의 수신 시에, 클라이언트(721)는 게이트웨이(700-702)의 각각과 네트워킹 터널(781, 782 및 783)을 설정한다.
클라이언트 액세스 목록은 클라이언트가 네트워킹 터널(781, 782 및 783)을 통해 연결할 수 있는 애플리케이션 서버(741-747)의 선택을 포함한다. 클라이언트(721)는 클라이언트 액세스 목록을 게이트웨이에 송신하고, 게이트웨이는 차례로, 수신된 클라이언트 액세스 목록에 따라 그 방화벽을 구성함으로써 애플리케이션 서버의 선택에 대한 액세스를 클라이언트(721)에게 허용한다.
일부 실시예에서, 인증 서버(760)는 클라이언트(721)의 인증을 위해 또는 클라이언트(721)에 관한 정보를 검색하기 위한 다른 서버를 액세스할 수 있다. 이것은 또한 도 7에 의해 예시되고, 여기서 인증 서버(760)는 인증 서버(760)를 위한 인증 백엔드(authentication backend)로서 서빙하는 반경 서버(radius server)(762)를 액세스할 수 있다. 인증 서버(760)에서의 인증 모듈(162)은 그 후에 서버(762)가 실제 인증을 수행하는 동안 클라이언트(721)에 대한 인증 인터페이스로서 서빙한다. 인증 서버(760)는 또한 클라이언트(721)의 사용자에 관한 추가적인 프로파일 정보를 검색하기 위해 인증 서버(760)에 활성 디렉토리 서비스(Active Directory service)를 제공하는 서버(761)에 연결할 수 있다.
도 8은 반경 서버(846) 및 활성 디렉토리 서버(847)가 게이트웨이(702) 뒤의 사설 네트워크(744) 내의 애플리케이션 서버에 대응하고, 그에 의해 무허가 액세스로부터 서버(846-847)를 보호하는데 도움이 되는 경우의 또 다른 예시적인 시스템을 도시한다. 서버(846-847)를 액세스하기 위해, 인증 서버(760)는 서버(846 및 847)를 보호하는 게이트웨이(702)를 가지는 영구적 네트워킹 터널(884)을 포함할 수 있다. 대안적으로, 인증 서버(760)는 네트워크 터널을 사용하는 대신에 표준 HTTPS 트래픽을 레버리지하기 위해 JSON 위의 LDAP와 같은 서버(846-847)에 액세스를 제공하기 위해 다른 메커니즘을 활용할 수 있다. 서버에 대한 인증 서버(760) 액세스를 허용하는 방화벽 규칙은 어떠한 클라이언트 터널 목록 또는 클라이언트 액세스 목록도 인증 서버(760)와 서버(846-847) 사이의 네트워크 연결을 설정해야 하지 않도록 이전에 게이트웨이(702)에 구성될 수 있다.
도 9는 동일한 사설 네트워크(940) 내에서 애플리케이션 서버(941-944)를 보호하기 위해 다수의 게이트웨이(900, 901)가 사용되는 일 예를 도시한다. 이러한 토폴로지(topology)는 다수의 게이트웨이(900, 901) 사이의 네트워크 트래픽 로드를 밸런싱하기 위해 사용될 수 있다. 인증 서버(960)는 클라이언트(921 및 922)에 서로 다른 게이트웨이를 특정하는 클라이언트 터널 목록을 제공한다. 특히, 클라이언트(921)는 게이트웨이(900)와 네트워킹 터널(981)을 설정하고 클라이언트(922)는 게이트웨이(901)와 네트워킹 터널(982)을 설정한다.
본원의 예시적인 실시예는 무허가 액세스로부터 애플리케이션 서버를 보호하는 발명의 실시예를 도시한다. 애플리케이션 서버를 제외하고, 서비스를 제공하고 네트워크를 통해 어드레싱가능한 임의의 다른 타입의 네트워크 디바이스는 본 발명의 실시예에 의해 보호될 수 있다. 유사하게, 본 발명의 실시예에 의해 보호될 수 있는 네트워크 디바이스는 라우터 및 네트워크 레벨 스위치에 관리자 인터페이스를 제공하는 네트워킹 장비를 포함한다.
도 10은 본원에 개시된 실시예와 관련하여 활용될 수 있는 예시적인 컴퓨팅 시스템(1000)을 도시한다. 컴퓨팅 시스템(1000)은 클라이언트 디바이스, 게이트웨이, 인증 서버 및/또는 임의의 다른 적합한 시스템으로서 사용될 수 있다. 컴퓨팅 시스템(1000)은 버스(1010), 프로세서(1002), 로컬 메모리(1004), 하나 또는 그 이상의 임의선택적 입력 인터페이스(1014), 하나 또는 그 이상의 임의선택적 출력 인터페이스(1016), 통신 인터페이스(1012), 스토리지 엘리먼트 인터페이스(storage element interface)(1006) 및 하나 또는 그 이상의 스토리지 엘리먼트(1008)를 포함한다.
버스(1010)는 컴퓨팅 시스템(1000)의 컴포넌트 사이의 통신을 허용하는 하나 또는 그 이상의 도체(conductor)를 포함할 수 있다. 프로세서(1002)는 프로그래밍 명령을 번역하고 실행하는 임의의 타입의 프로세서를 포함할 수 있다. 로컬 메모리(1004)는 랜덤 액세스 메모리(RAM) 또는 프로세서(1002) 및/또는 판독 전용 메모리(ROM) 또는 프로세서(1002)에 의한 사용을 위한 정적 정보 및 명령을 저장하는 다른 타입의 정적 스토리지 디바이스에 의한 실행을 위해 정보 및 명령을 저장하는 다른 타입의 동적 스토리지 디바이스를 포함할 수 있다. 입력 인터페이스(1014)는 운영자가 키보드(1020), 마우스(1030), 펜, 음성 인식 및/또는 생체인식 메커니즘 등과 같은 컴퓨팅 디바이스(1000)에 정보를 입력하게 허용하는 하나 또는 그 이상의 종래의 메커니즘을 포함할 수 있다.
출력 인터페이스(1016)는 디스플레이(1040), 프린터(1050), 스피커 등과 같이 운영자에게 정보를 출력하는 하나 또는 그 이상의 종래의 메커니즘을 포함할 수 있다. 통신 인터페이스(1012)는 예를 들어 컴퓨팅 시스템(1000)이 다른 디바이스 및/또는 시스템(1100)과 통신하게 할 수 있는 하나 또는 그 이상의 이더넷 인터페이스와 같은 임의의 트랜시버-형 메커니즘(transceiver-like mechanism)을 포함할 수 있다. 컴퓨팅 시스템(1000)의 통신 인터페이스(1012)는 예를 들어 인터넷과 같은 로컬 영역 네트워크(LAN) 또는 광역 네트워크(WAN)에 의해 그와 같은 다른 컴퓨팅 시스템에 연결될 수 있다. 스토리지 엘리먼트 인터페이스(1006)는 예를 들어 SATA 디스크 드라이브와 같은 하나 또는 그 이상의 로컬 디스크와 같은 하나 또는 그 이상의 스토리지 엘리먼트(1008)에 버스(1010)를 연결하기 위한 예를 들어, 직렬 첨단 기술 부가(Serial Advanced Technology Attachment: SATA) 인터페이스 또는 소형 컴퓨터 시스템 인터페이스(Small Computer System Interface: SCSI)와 같은 스토리지 인터페이스를 포함할 수 있고, 이러한 스토리지 엘리먼트(1008)에 및/또는 그로부터의 데이터의 판독 및 기입(writing)을 제어할 수 있다. 상기의 스토리지 엘리먼트(1008)가 로컬 디스크로서 설명되더라도, 일반적으로 탈착가능 자기 디스크(removable magnetic disk), CD 또는 DVD, -ROM 디스크와 같은 광학 스토리지 매체, 고체 상태 드라이브, 플래시 메모리 카드(flash memory card)...와 같은 임의의 다른 적합한 컴퓨터 판독가능 매체가 사용될 수 있다. 상술한 시스템(1000)은 또한 물리적 하드웨어 위에 가상 머신으로서 실행할 수 있다.
본원에 도시된 방법은 그 프로세서(1002)에 의한 실행을 위해 컴퓨팅 시스템(1000)의 로컬 메모리(1004)에 저장되는 프로그래밍 명령을 통해 구현될 수 있다. 대안적으로 명령은 스토리지 엘리먼트(1008) 상에 저장될 수 있거나 통신 인터페이스(1012)를 통해 다른 컴퓨팅 시스템으로부터 액세스가능할 수 있다.
시스템(1000)은 도 1, 6, 7, 8 및 9 각각에 의해 도시되는 실시예의 클라이언트(121, 122, 621, 721, 921, 922)에 대응할 수 있다. 그와 같은 경우에, 시스템(1000)은 통신 인터페이스(1012)에 의해 게이트웨이 및 인증 서버에 연결될 수 있다. 도 2, 5 및 6에 도시된 방법의 단계는 실행 동안 프로세서(1002) 상에 명령으로서 수행될 수 있고 메모리 스토리지(1004 또는 1008)에 저장될 수 있다.
시스템(1000)은 도 1, 6, 7, 8 및 9 각각에 의해 도시되는 실시예의 게이트웨이(100, 600, 700, 701, 702, 900 및 901)에 대응할 수 있다. 그와 같은 경우에, 시스템은 사설 네트워크에 연결하기 위한 하나의 통신 인터페이스 및 클라이언트에 연결하는 다른 네트워크에 연결하기 위한 하나의 통신 인터페이스인 2개의 통신 인터페이스(1012)를 포함할 수 있다. 도 4에 도시되는 방법의 단계는 실행 동안 프로세서(1002) 상의 명령으로서 수행될 수 있고 메모리 스토리지(1004 또는 1008)에 저장될 수 있다.
시스템(1000)은 도 1, 6, 7, 8 및 9에 의해 도시된 실시예의 인증 서버(160, 760 및 960)에 대응할 수 있다. 그와 같은 경우에, 통신 인터페이스(1012)는 클라이언트 및 게이트웨이에 시스템(1000)을 연결하기 위해 사용될 수 있다. 도 3에 도시되는 방법의 단계는 그 후에 실행 동안 프로세서(1002) 상에 명령으로서 수행될 수 있고 메모리 스토리지(1004 또는 1008)에 저장될 수 있다.
인증 서버 및 게이트웨이에 의해 수행되는 방법은 또한 동일한 컴퓨터 시스템, 별개의 컴퓨터 시스템 상에, 또는 동일하거나 서로 다른 물리적 컴퓨터 시스템 상에 별개의 가상 컴퓨터 시스템으로서 더 실행할 수 있다.
본 발명의 실시예와 함께 동작하는 시스템, 디바이스 및 컴포넌트 사이의 통신은 예를 들어, 전화 네트워크, 엑스트라넷(extranet), 인트라넷(intranet), 인터넷(Internet), 상호작용 시점 관리 디바이스(point of interaction device)(판매시점 관리 디바이스(point of sale device), 개인 휴대 정보 단말(예를 들어, iPhone®, Palm Pilot®, Blackberry®), 셀룰러 폰, 키오스크(kiosk) 등), 온라인 통신, 위성 통신, 오프-라인 통신(off-line communication), 무선 통신, 트랜스폰더 통신(transponder communication), 로컬 영역 네트워크(local area network: LAN), 광역 네트워크(wide area network: WAN), 가상 사설 네트워크(virtual private network: VPN), 네트워킹 또는 링크 디바이스(networked or linked device), 키보드, 마우스 및/또는 임의의 적합한 통신 또는 데이터 입력 양식(data input modality)과 같은 임의의 적합한 통신 방법을 사용하여 수행될 수 있다. 본 발명의 시스템 및 디바이스는 TCP/IP 통신 프로토콜뿐 아니라, IPX, Appletalk, IP-6, NetBIOS, OSI, 임의의 터널링 프로토콜(tunneling protocol)(예를 들어, IPsec, SSH), 또는 임의의 수의 기존 또는 추가의 프로토콜을 활용할 수 있다.
일부 실시예가 완전히 기능하는 컴퓨터 및 컴퓨터 시스템에 구현될 수 있는 한편, 다양한 실시예는 다양한 형태로 컴퓨팅 물건으로서 배포될 수 있고 실제로 배포를 시행하기 위해 사용되는 특정 타입의 머신 또는 컴퓨터 판독가능한 매체에 관계없이 적용가능하다.
머신 판독가능 매체는 데이터 프로세싱 시스템에 의해 실행될 때 시스템으로 하여금 다양한 방법을 수행하게 하는 소프트웨어 및 데이터를 저장하기 위해 사용될 수 있다. 실행가능 소프트웨어 및 데이터는 예를 들어, ROM, 휘발성 RAM, 비-휘발성 메모리 및/또는 캐쉬(cache)를 포함하는 다양한 장소에 저장될 수 있다. 이러한 소프트웨어 및/또는 데이터의 일부분은 이러한 스토리지 디바이스 중 임의의 하나에 저장될 수 있다. 또한, 데이터 및 명령은 중앙집중 서버 또는 피어 투 피어 네트워크(peer to peer network)로부터 획득될 수 있다. 데이터 및 명령의 서로 다른 부분은 서로 다른 때에 그리고 서로 다른 통신 세션에서 또는 동일한 통신 세션에서 서로 다른 중앙집중화 서버 및/또는 피어 투 피어 네트워크로부터 획득될 수 있다. 데이터 및 명령은 애플리케이션의 실행 전에 전체적으로 획득될 수 있다. 대안적으로, 데이터 및 명령의 일부분은 실행을 위해 필요할 때, 동적으로, 적시에 획득될 수 있다. 따라서, 데이터 및 명령은 특정 시간의 경우에 전체적으로 머신 판독가능 매체 상에 있도록 요구되지 않는다.
컴퓨터 판독가능 매체의 예가 포함되지만 그 중에서도 휘발성 및 비-휘발성 메모리 디바이스, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 플래시 메모리 디바이스, 플로피 및 다른 탈착가능 디스크(floppy and other removable disk), 자기 디스크 스토리지 매체, 광학 스토리지 매체(예를 들어, 컴팩트 디스크 판독-전용 메모리: CD ROMS)), 디지털 만능 디스크(Digital Versatile Disk: DVD) 등)와 같은 기록가능 및 비-기록가능 타입 매체에 제한되지 않는다. 컴퓨터 판독가능 매체는 명령을 저장할 수 있다.
다양한 실시예에서, 하드와이어드 회로(hardwired circuitry)는 기술을 구현하기 위해 소프트웨어 명령과 조합하여 사용될 수 있다. 따라서, 기술은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합에 제한되지 않고 데이터 프로세싱 시스템에 의해 실행되는 명령을 위한 임의의 특정 소스에 제한되지 않는다.
도면의 일부는 특정 순서로 다수의 동작을 도시하더라도, 순서에 종속되지 않는 동작은 재순서화될 수 있고 다른 동작이 조합되거나 분해될 수 있다. 일부 재순서화 또는 다른 그룹핑은 구체적으로 언급되는 한편, 다른 부분은 당업자에게 명백할 것이고 대안의 소모적 목록을 제시하는 것은 아니다. 더욱이, 스테이지가 하드웨어, 펌웨어, 소프트웨어 또는 그 임의의 조합으로 구현될 수 있음이 인식되어야 한다.
간략화를 위해, 종래의 데이터 네트워킹, 애플리케이션 개발 및 시스템의 다른 기능적 양상(및 시스템의 개개의 동작 컴포넌트의 컴포넌트)은 본원에 상세하게 설명되지 않을 수 있다. 더욱이, 본원에 포함되는 다양한 도면에 도시되는 연결 라인은 예시적인 기능 관계 및/또는 다양한 엘리먼트 사이의 물리적 커플링(physical coupling)을 나타내도록 의도된다. 많은 대안 또는 추가적인 기능 관계 또는 물리적 연결이 실제 시스템에 존재할 수 있음이 주목되어야 한다.
본원에 논의되는 다양한 시스템 컴포넌트는: 디지털 데이터를 프로세싱하기 위한 프로세서를 포함하는 호스트 서버 또는 다른 컴퓨팅 시스템; 디지털 데이터를 저장하기 위한 프로세서에 커플링되는 메모리; 디지털 데이터를 입력하기 위해 프로세서에 커플링되는 입력 디지타이저(digitizer); 메모리에 저장되고 프로세서에 의한 디지털 데이터의 프로세싱을 지시하기 위해 프로세서에 의해 액세스가능한 애플리케이션 프로그램; 프로세서에 의해 프로세싱되는 디지털 데이터로부터 도출되는 정보를 디스플레이하기 위해 프로세서 및 메모리에 커플링되는 디스플레이 디바이스; 및 복수의 데이터베이스 중 하나 또는 그 이상을 포함할 수 있다. 본원에 사용되는 다양한 데이터베이스는: 십핑 데이터(shipping data), 패키지 데이터, 및/또는 시스템의 동작에서 유용한 임의의 데이터를 포함할 수 있다.
다양한 기능이 웹 브라우저 및/또는 웹 브라우저를 활용하여 인터페이싱하는 애플리케이션을 통해 수행될 수 있다. 그와 같은 브라우저 애플리케이션은 다양한 기능을 수행하기 위해 컴퓨팅 유닛 또는 시스템 내에 설치되는 인터넷 브라우징 소프트웨어를 포함할 수 있다. 이러한 컴퓨팅 유닛 또는 시스템은 컴퓨터 또는 컴퓨터의 세트의 형태를 취할 수 있고, 랩톱, 노트북, 태블릿(tablet), 핸드 헬드 컴퓨터(hand held computer), 개인 휴대 정보 단말(personal digital assistant), 셋톱 박스(set-top box), 워크스테이션(workstation), 컴퓨터-서버(computer-server), 메인 프레임 컴퓨터(main frame computer), 미니-컴퓨터(mini-computer), PC 서버, 컴퓨터의 네트워크 세트, iPad, iMAC 및 MacBook, 키오스크(kiosk), 단말, 판매 지점(POS) 디바이스 및/또는 단말, 텔레비전 또는 네트워크를 통해 데이터를 수신할 수 있는 임의의 다른 디바이스를 포함하는 임의의 타입의 컴퓨팅 디바이스 또는 시스템이 사용될 수 있다. 다양한 실시예는 마이크로소프트 인터넷 익스플로러(Microsoft Internet Explorer), 모질라 파이어폭스(Mozilla Firefox), 구글 크롬(Google Chrome), 애플 사파리(Apple Safari), 또는 인터넷을 브라우징하기 위해 이용가능한 무수한 소프트웨어 패키지 중 임의의 다른 하나를 활용할 수 있다.
다양한 실시예는 전형적으로 컴퓨터와 관련되는 다양한 종래의 지원 소프트웨어 및 드라이버뿐 아니라 임의의 적합한 운영 시스템(예를 들어, 윈도우즈 NT, 95/98/2000/CE/Mobile/, 윈도우즈 7/8, OS2, UNIX, Linux, 솔라리스(Solaris), MacOS, PalmOS 등)과 함께 동작할 수 있다. 다양한 실시예는 임의의 적합한 퍼스널 컴퓨터, 네트워크 컴퓨터, 워크스테이션, 개인 휴대 정보 단말, 셀룰러 폰, 스마트 폰, 미니컴퓨터, 메인프레임 등을 포함할 수 있다. 실시예는 보안 소켓 계층(Secure Socket Layer: SSL), 전송 계층 보안(Transport Layer Security: TLS) 및 보안 쉘(Secure Shell: SSH)과 같은 보안 프로토콜을 구현할 수 있다. 실시예는 http, https, ftp 및 sftp를 포함하는 임의의 원하는 애플리케이션 계층 프로토콜을 구현할 수 있다.
다양한 시스템 컴포넌트는 예를 들어, 전형적으로 표준 모뎀 통신(standard modem communication), 케이블 모뎀, 위성 네트워크(satellite network), ISDN, 디지털 가입자 라인(Digital Subscriber Line: DSL) 또는 다양한 무선 통신 방법과 관련하여 사용되는 바와 같은 로컬 루프(local loop)를 통해 인터넷 서비스 제공자(Internet Service Provider: ISP)에 대한 연결을 포함하는 데이터 링크를 통해 네트워크에 독립적으로, 별개로 또는 집합적으로 적합하게 커플링될 수 있다. 본 발명의 실시예가 상호작용 텔레비전(interactive television: ITV) 네트워크와 같은 임의의 적합한 타입의 네트워크와 함께 동작할 수 있음이 주목된다.
시스템은 클라우드 컴퓨팅을 사용하여 부분적으로 또는 완전히 구현될 수 있다. "클라우드(Cloud)" 또는 "클라우드 컴퓨팅(Cloud computing)"은 최소 관리 노력 또는 서비스 제공자 상호작용으로 급격하게 제공되고 릴리스될 수 있는 구성가능한 컴퓨팅 자원(예를 들어, 네트워크, 서버, 스토리지, 애플리케이션 및 서비스)의 공유 풀에 대한 편리한, 온-디맨드 네트워크 액세스(on-demand network access)를 가능하게 하기 위한 모델을 포함한다. 클라우드 컴퓨팅은 위치-독립적 컴퓨팅(location-independent computing)을 포함할 수 있고, 여기서 공유 서버는 수요에 따라 컴퓨터 및 다른 디바이스에 자원, 소프트웨어 및 데이터를 제공한다.
다양한 실시예가 웹 서비스(web service), 유틸리티 컴퓨팅(utility computing), 편재형 및 개별화 컴퓨팅(pervasive and individualized computing), 보안 및 아이덴티티 솔루션(security and identity solution), 자율성 컴퓨팅(autonomic computing), 클라우드 컴퓨팅(cloud computing), 상품 컴퓨팅(commodity computing), 이동성 및 무선 솔루션(mobility and wireless solution), 오픈 소스(open source), 생체인식, 그리드 컴퓨팅(grid computing) 및/또는 메시 컴퓨팅(mesh computing)과 함께 사용될 수 있다.
본원에 논의되는 임의의 데이터베이스는 관계(relational), 계층적(hierarchical), 그래픽(graphical) 또는 객체-지향(object-oriented) 구조 및/또는 임의의 다른 데이터베이스 구성을 포함할 수 있다. 더욱이, 데이터베이스는 예를 들어, 데이터 테이블 또는 룩업 테이블로서 임의의 적합한 방식으로 조직화될 수 있다. 각 기록은 단일 파일, 일련의 파일, 연계된 일련의 데이터 필드 또는 임의의 다른 데이터 구조일 수 있다. 특정 데이터의 연합은 기술 분야에 알려지거나 실시된 것과 같은 임의의 원하는 데이터 연합 기술을 통해 달성될 수 있다. 예를 들어, 연합은 수동으로 또는 자동으로 달성될 수 있다.
시스템의 임의의 데이터베이스, 시스템, 디바이스, 서버 또는 다른 컴포넌트는 단일 위치 또는 다수의 위치에 위치될 수 있고, 여기서 각 데이터베이스 또는 시스템은 방화벽, 액세스 코드, 암호화, 복호화, 압축, 압축해제 및/또는 등과 같은 다양한 적합한 보안 특징 중 임의의 것을 포함한다.
암호화는 기술분야에서 현재 이용가능하거나 이용가능하게 될 수 있는 기술 중 임의의 것에 의해 수행될 수 있다 - 예를 들어, 투피쉬(Twofish), RSA, El Gamal, Schorr 서명, DSA, PGP, PKI 및 대칭 및 비대칭 암호시스템(cryptosystem).
실시예는 표준 다이얼-업(dial-up), 케이블(cable), DSL 또는 기술분야에 알려진 임의의 다른 인터넷 프로토콜을 사용하여 인터넷 또는 인트라넷에 연결할 수 있다. 트랜잭션(transaction)은 다른 네트워크의 사용자로부터 무허가 액세스를 방지하기 위해 방화벽을 통과시킬 수 있다.
본원에 논의된 컴퓨터는 사용자에 의해 액세스가능한 적합한 웹사이트 또는 다른 인터넷-기반 그래픽 사용자 인터페이스를 제공할 수 있다. 예를 들어, 마이크로소프트 인터넷 정보 서버(Internet Information Server: IIS), 마이크로소프트 트랜잭션 서버(Microsoft Transaction Server: MTS), 및 마이크로소프트 SQL 서버는 마이크로소프트 운영 시스템, 마이크로소프트 NT 웹 서버 소프트웨어, 마이크로소프트 SQL 서버 데이터베이스 시스템 및 마이크로소프트 상업 서버(Microsoft Commerce Server)와 함께 사용될 수 있다. 추가로, 액세스 또는 마이크로소프트 SQL 서버, 오라클(Oracle), 사이베이스(Sybase), 인포믹스 MySQL(Informix MySQL), 인터베이스(Interbase) 등과 같은 컴포넌트는 활성 데이터 객체(Active Data Object: ADO) 순응 데이터베이스 관리 시스템을 제공하기 위해 사용될 수 있다. 다른 예에서, 아파치 웹 서버(Apache web serer)는 리눅스 운영 시스템, MySQL 데이터베이스, 및 Perl, PHP 및/또는 피톤(Python) 프로그래밍 언어와 함께 사용될 수 있다.
본원에 논의되는 통신, 입력, 스토리지, 데이터베이스 또는 디스플레이 중 임의의 것은 웹 페이지를 가지는 웹사이트를 통해 용이해질 수 있다. 본원에 사용되는 바와 같은 용어 "웹 페이지(web page)"는 사용자와 상호작용하기 위해 사용될 수 있는 문서 및 애플리케이션의 타입을 제한하는 것을 의미하지 않는다. 예를 들어, 전형적인 웹사이트는 표준 HTML 문서에 더하여, 다양한 형태, 자바 애플릿(Java applet), 자바스크립트(JavaScript), 활성 서버 페이지(active server page: ASP), 공통 게이트웨이 인터페이스 스크립트(common gateway interface script: CGI), 확장가능 마크업 언어(extensible markup language: XML), 동적 HTML, 캐스캐이딩 스타일 시트(cascading style sheet: CSS), AJAX(Asynchronous Javascript And XML), 헬퍼 애플리케이션(helper application), 플러그-인(plug-in) 등을 포함할 수 있다. 서버는 웹 서버로부터의 요청, URL 및 IP 어드레스를 포함하는 요청을 수신하는 웹 서비스를 포함할 수 있다. 웹 서버는 적절한 웹 페이지를 검색하고 웹 페이지를 위한 데이터 또는 애플리케이션을 IP 어드레스에 송신한다. 웹 서비스는 인터넷과 같은 통신수단을 통해 다른 애플리케이션과 상호작용할 수 있는 애플리케이션이다.
다양한 실시예는 브라우저-기반 문서(browser-based document) 내에 데이터를 디스플레이하기 위한 임의의 원하는 수의 방법을 사용할 수 있다. 예를 들어, 데이터는 표준 텍스트로서 또는 고정 목록, 스크롤가능 목록(scrollable list), 드롭-다운 목록(drop-down list), 편집가능 텍스트 필드(editable text field), 고정 텍스트 필드(fixed text field), 팝업 윈도우(pop-up window) 등 내에서 표현될 수 있다. 유사하게, 실시예는 예를 들어, 키보드를 사용한 프리 텍스트 엔트리(free text entry), 메뉴 항목의 선택, 체크 박스(check box), 옵션 박스 등과 같은 웹 페이지에서 데이터를 수정하기 위한 임의의 원하는 수의 방법을 활용할 수 있다.
본원에 도시된 예시적인 시스템 및 방법은 기능 블록 컴포넌트, 스크린 샷, 임의선택적 선택 및 다양한 프로세싱 단계의 관점에서 설명될 수 있다. 그와 같은 기능 블록이 특정 기능을 수행하도록 구성되는 임의의 수의 하드웨어 및/또는 소프트웨어 컴포넌트에 의해 실현될 수 있음이 인식되어야 한다. 예를 들어, 시스템은 하나 또는 그 이상의 마이크로프로세서 또는 다른 제어 디바이스의 제어 하에 다양한 기능을 실행할 수 있는, 예를 들어, 메모리 엘리먼트, 프로세싱 엘리먼트, 논리 엘리먼트, 룩업 테이블 등의 다양한 집적 회로 컴포넌트를 사용할 수 있다. 유사하게, 시스템의 소프트웨어 엘리먼트는 C, C++, C#, 자바, 자바스크립트, VBScript, 매크로매체 상온 핵융합(Macromedia Cold Fusion), COBOL, 마이크로소프트 활성 서버 페이지, 어셈블리, PERL, PHP, AWK, 피톤, 비주얼 베이직(Visual Basic), SQL 저장 절차(SQL Stored Procedure), PL/SQL, 임의의 UNIX 쉘 스크립트(shell script) 및 데이터 구조, 객체, 프로세스, 루틴 또는 다른 프로그래밍 엘리먼트의 임의의 조합으로 구현되는 다양한 알고리즘을 가지는 확장가능 마크업 언어(XML)와 같은 임의의 프로그래밍 또는 스크립팅 언어(scripting language)로 구현될 수 있다. 또한, 시스템이 데이터 전송, 시그널링, 데이터 프로세싱, 네트워크 제어 등을 위한 임의의 수의 종래 기술을 사용할 수 있음이 주목되어야 한다. 또한, 시스템은 자바스크립트, VBScript 등과 같은 클라이언트-측 스크립팅 언어(client-side scripting language)로 보안 쟁점을 검출하거나 방지하기 위해 사용될 수 있다.
본 발명의 시스템 및 방법은 기존 시스템, 애드-온 제품(add-on product), 업그레이드된 소프트웨어를 실행하는 프로세싱 장치, 자립형 시스템(stand alone system), 배포 시스템(distributed system), 방법, 데이터 프로세싱 시스템, 데이터 프로세싱을 위한 디바이스, 및/또는 컴퓨터 프로그램 물건의 커스토마이제이션(customization)으로서 구체화될 수 있다. 따라서, 시스템 또는 모듈의 임의의 부분은 프로세싱 장치 실행 코드, 인터넷 기반 실시예, 전적으로 하드웨어 실시예, 또는 인터넷, 소프트웨어 및 하드웨어의 실시예 조합 양상의 형태를 취할 수 있다. 더욱이, 시스템은 스토리지 매체에 구체화되는 컴퓨터 판독가능 프로그램 코드 수단을 가지는 컴퓨터 판독가능 스토리지 매체 상에 컴퓨터 프로그램 물건의 형태를 취할 수 있다. 하드 디스크, CD-ROM, 광학 스토리지 디바이스, 자기 스토리지 디바이스 및/또는 등을 포함하는 임의의 적합한 컴퓨터 판독가능 스토리지 매체가 활용될 수 있다.
시스템 및 방법은 다양한 실시예에 따른 방법, 장치(예를 들어, 시스템) 및 컴퓨터 프로그램 물건의 스크린 샷, 블록도 및 흐름도 예시를 참조하여 본원에 설명된다. 블록도 및 흐름도 예시의 각 기능 블록, 및 블록도 및 흐름도 예시에서의 기능 블록의 조합은 각각 컴퓨터 프로그램 명령에 의해 구현될 수 있음이 이해될 것이다.
이러한 컴퓨터 프로그램 명령은 컴퓨터 또는 다른 프로그램가능 데이터 프로세싱 장치 상에 실행하는 명령이 흐름도 블록 또는 블록들에서 특정된 기능을 구현하기 위한 수단을 생성하도록, 머신을 생산하기 위해 범용 컴퓨터, 특별 목적 컴퓨터(special purpose computer) 또는 다른 프로그램가능 데이터 프로세싱 장치 상에 로딩될 수 있다. 이러한 컴퓨터 프로그램 명령은 또한 컴퓨터 판독가능 메모리에 저장되는 명령이 흐름도 블록 또는 블록들에서 특정된 기능을 구현하는 명령 수단을 포함하는 제조 물품을 생산하도록, 컴퓨터 또는 다른 프로그램가능 데이터 프로세싱 장치가 특정 방식으로 기능하게 지시할 수 있는 컴퓨터 판독가능 메모리에 저장될 수 있다. 또한 컴퓨터 또는 다른 프로그램가능 장치 상에 실행하는 명령이 흐름도 블록 또는 블록들에 특정된 기능을 구현하기 위한 단계를 제공하도록 컴퓨터 구현 프로세스를 생산하기 위해 컴퓨터 또는 다른 프로그램가능 장치 상에 일련의 동작 단계가 수행되게 하도록 컴퓨터 프로그램 명령이 컴퓨터 또는 다른 프로그램가능 데이터 프로세싱 장치 상에 로딩될 수 있다.
따라서, 블록도 및 흐름도 예시의 기능 블록은 특정 기능을 수행하기 위한 수단의 조합, 특정 기능을 수행하기 위한 단계의 조합, 및 특정 기능을 수행하기 위한 프로그램 명령 수단을 지원한다. 블록도 및 흐름도 예시의 각 기능 블록, 및 블록도 및 흐름도 예시에서의 기능 블록의 조합이 특정 기능 또는 단계를 수행하는 특별 목적 하드웨어-기반 컴퓨터 시스템, 또는 특별 목적 하드웨어 및 컴퓨터 명령에 의해 구현될 수 있음이 이해될 것이다. 또한, 프로세스 흐름 및 설명의 예시는 사용자 윈도우즈, 웹페이지, 웹사이트, 웹 형태, 프롬프트(prompt) 등을 참조하여 이루어질 수 있다. 기술자(practitioner)는 본원에 설명된 예시 단계가 윈도우즈, 웹페이지, 웹 형태, 팝업 윈도우즈(popup windows), 프롬프트 등의 사용을 포함하는 임의의 수의 구성을 포함할 수 있음을 인식할 것이다. 예시되고 설명된 바와 같은 다수의 단계가 단일 웹페이지 및/또는 윈도우즈 내로 조합될 수 있지만 간략화를 위해 확장됨이 더 인식되어야 한다. 다른 경우에, 단일 프로세스 단계로서 도시되고 설명되는 단계는 다수의 웹페이지 및/또는 윈도우즈 내로 분리될 수 있지만 간략화를 위해 조합된다.
용어 "비일시적(non-transitory)"은 청구 범위로부터 단지 전파하는 일시적 신호 그 자체를 제거하는 것이고 전파하는 일시적 신호 그 자체가 아닌 모든 표준 컴퓨터 판독가능 매체에 대한 권한을 포기하는 것이 아님이 이해될 것이다. 다른 방식으로 서술하면, 용어 "비일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)"의 의미는 35 U.S.C.§101 하에서 특허가능한 대상(patentable subject matter)의 범위 밖에 속하도록 In Re Nuijten에서 발견된 그와 같은 타입의 일시적 컴퓨터 판독가능 매체만을 배제하는 것으로 해석되어야 한다.
문제점에 대한 이익, 다른 장점 및 해결책은 특정 실시예에 관하여 본원에 설명되었다. 그러나, 문제점에 대한 이익, 장점 및 솔루션, 및 임의의 이익, 장점 또는 솔루션으로 하여금 더 두드러지게 야기할 수 있는 임의의 엘리먼트는 본 발명의 핵심(critical), 요청된 또는 본질적 특징 또는 엘리먼트로서 해석되는 것이 아니다.
본 발명은 방법을 포함하더라도, 자기 또는 광학 메모리 또는 자기 또는 광학 디스크와 같은 탠저블 컴퓨터 판독가능 캐리어(tangible computer-readable carrier) 상에 컴퓨터 프로그램 명령으로서 구체화될 수 있음이 고려된다. 당업자에게 알려지는 상술한 예시적인 실시예의 엘리먼트에 대한 모든 구조적, 화학적 및 기능적 등가물(equivalent)은 참조에 의해 본원에 명시적으로 포함되고 본 청구범위에 의해 망라되는 것으로 의도된다. 더욱이, 디바이스 또는 방법이 본 발명에 의해 해결되도록 추구되는 각각의 그리고 모든 문제점을 해결해야 하거나 본 청구범위에 의해 망라되어야 하는 것은 아니다. 더욱이, 본 발명에서의 어떠한 엘리먼트, 컴포넌트 또는 방법 단계도 엘리먼트, 컴포넌트 또는 방법 단계가 청구범위에 명시적으로 인용되는지에 관계없이 공공에 전용되는 것으로 의도되지 않는다. 본원의 어떠한 청구범위 엘리먼트도 그 엘리먼트가 명시적으로 어구 "~하기 위한 수단(means for)"을 사용하여 인용되지 않는 한, 35 U.S.C. 112, 제 6 조의 규정에 의거하여 해석되어서는 안 된다. 본원에 사용된 바와 같이, 용어 "포함하다(comprise)", "포함하는(comprising)", 또는 임의의 변형은 엘리먼트의 목록을 포함하는 프로세스, 방법, 물품 또는 장치가 단지 그 엘리먼트를 포함하는 것이 아니라 그와 같은 프로세스, 방법, 물품 또는 장치에 명시적으로 목록화되지 않거나 내재적이지 않은 다른 엘리먼트를 포함할 수 있도록, 비-배타적 포함(non-exclusive inclusion)을 포괄하는 것으로 의도된다.
"A, B, 또는 C 중 적어도 하나(at least on of A, B or C)", "A, B 및 C 중 적어도 하나(at least one of A, B, and C)" 또는 "A, B, 및 C 중 하나 또는 그 이상(one or more of A, B, and C)"과 유사한 어구가 사용되는 경우에, 그 어구는 A 단독으로 실시예에 제시될 수 있고, B 단독으로 실시예에 제시될 수 있고, C 단독으로 실시예에 제시될 수 있거나, 엘리먼트 A, B 및 C의 임의의 조합이 단일 실시예; 예를 들어, A 및 B, A 및 C, B 및 C, 또는 A 및 B 및 C로 제시될 수 있음을 의미하도록 해석되는 것이 의도된다.
본 발명의 범위로부터 이탈하지 않고서 개시된 실시예에 대한 변경 및 수정이 이루어질 수 있다. 이들 및 다른 변경 또는 수정은 다음의 청구범위에서 표현된 바와 같이, 본 발명의 범위 내에 포함되는 것으로 의도된다.

Claims (20)

  1. 컴퓨터 구현 방법에 있어서,
    사설 네트워크(private network)에 대해 게이트웨이(gateway)를 구현하는 컴퓨터 시스템에 의해, 클라이언트 디바이스(client device)와 사설 네트워크에서의 네트워크 디바이스 사이의 네트워크 터널(network tunnel)을 위한 클라이언트 디바이스로부터의 요청(request)을 수신하는 단계;
    컴퓨터 시스템에 의해 상기 클라이언트 디바이스를 인증하는 단계;
    컴퓨터 시스템과 통신하는 인증 서버로부터 클라이언트 디바이스가 통신하도록 허용되는 네트워크 디바이스의 목록을 포함하는 클라이언트 액세스 목록(client access list)을 수신하는 단계;
    컴퓨터 시스템에 의해, 사설 네트워크에서의 네트워크 디바이스는 클라이언트 디바이스가 통신하도록 허용되는 네트워크 디바이스의 목록의 일부임을 검증하는 단계; 및
    컴퓨터 시스템에 의해, 게이트웨이를 통해 클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이의 네트워크 터널을 설정하는 단계를 포함하는 컴퓨터 구현 방법.
  2. 청구항 1에 있어서,
    사설 네트워크에서의 상기 네트워크 디바이스는 서비스를 제공하는 애플리케이션 서버를 포함하는 컴퓨터 구현 방법.
  3. 청구항 2에 있어서,
    애플리케이션 서버는:
    메일 서비스를 제공하는 메일 서버;
    네트워킹된 데이터 스토리지(networked data storage)를 제공하는 파일 서버; 및
    호스팅 서비스를 제공하는 웹 서버 중 하나 또는 그 이상을 포함하는 컴퓨터 구현 방법.
  4. 청구항 1에 있어서,
    사설 네트워크에서의 네트워크 디바이스는 관리자 액세스를 제공하는 라우터 및 스위치 중 하나 또는 그 이상을 포함하는 컴퓨터 구현 방법.
  5. 청구항 1에 있어서,
    컴퓨터 시스템은 클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이의 네트워크 트래픽을 선택적으로 차단하고 허용하기 위한 방화벽을 더 구현 가능한 컴퓨터 구현 방법.
  6. 청구항 5에 있어서,
    방화벽은 디폴트로 클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이의 모든 네트워크 트래픽을 차단하는 컴퓨터 구현 방법.
  7. 청구항 5에 있어서,
    컴퓨터 시스템에 의해, 클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이의 네트워크 액세스를 허용하기 위한 방화벽 규칙을 획득하는 단계; 및
    방화벽 규칙에 기초하여 방화벽을 구성하는 단계를 더 포함하는 컴퓨터 구현 방법.
  8. 청구항 7에 있어서,
    방화벽 규칙은 클라이언트 액세스 목록에 포함되는 컴퓨터 구현 방법.
  9. 청구항 1에 있어서,
    클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이의 네트워크 터널을 설정하는 단계는 가상 사설 네트워크(virtual private network)를 설정하는 단계를 포함하는 컴퓨터 구현 방법.
  10. 청구항 1에 있어서,
    클라이언트 액세스 목록은 판독가능하지만 클라이언트에 의해 변경가능하지 않은 컴퓨터 구현 방법.
  11. 청구항 1에 있어서,
    클라이언트 디바이스를 인증하는 단계는 게이트웨이와 인증 서버 사이에 공유되는 서명 키(signature key)를 통해 클라이언트 액세스 목록에서 디지털 서명을 검증하는 단계를 포함하는 컴퓨터 구현 방법.
  12. 청구항 1에 있어서,
    인증 서버로부터 컴퓨터 시스템에 의해 네트워킹 터널을 설정하기 위한 정보를 포함하는 클라이언트 터널 목록을 수신하는 단계를 더 포함하는 컴퓨터 구현 방법.
  13. 청구항 12에 있어서,
    클라이언트 터널 목록은 클라이언트 디바이스의 성공적 인증에 응답하여 인증 서버로부터만 수신되는 컴퓨터 구현 방법.
  14. 청구항 12에 있어서,
    클라이언트 터널 목록은 게이트웨이의 목적지 인터넷 프로토콜 어드레스(destination Internet protocol address) 및 목적지 포트 번호(destination port number)를 포함하는 컴퓨터 구현 방법.
  15. 청구항 1에 있어서,
    클라이언트 액세스 목록은 네트워크 디바이스의 제 1 선택 및 네트워크 디바이스의 제 2 선택을 포함하고, 네트워크 디바이스의 제 2 선택은 네트워크 디바이스의 제 1 선택에 대해 강화된 인증 요건을 가지는 컴퓨터 구현 방법.
  16. 청구항 15에 있어서,
    강화된 인증 요건은:
    모든 패치(patch)가 클라이언트 상의 운영 시스템에 적용되어야 하는 요건;
    최신의 바이러스 스캐너가 클라이언트 상에 실행해야 하는 요건; 및
    클라이언트가 공공 무선 네트워크를 통해 사설 네트워크 상에 네트워크 디바이스를 액세스하려 시도하지 않는 요건으로 이루어지는 그룹으로부터 선택된 요건을 포함하는 컴퓨터 구현 방법.
  17. 청구항 15에 있어서,
    강화된 인증 요건은 상기 클라이언트 디바이스의 사용자가:
    지문 스캔(fingerprint scan);
    홍채 스캔(iris scan); 및
    외부 키 발생기(external key generator)에 의해 발생되는 키(key)로 이루어지는 그룹으로부터 선택된 인증 크리덴셜(authentication credential)을 제공하는 요건을 포함하는 컴퓨터 구현 방법.
  18. 청구항 1에 있어서,
    컴퓨터 시스템에 의해 클라이언트로부터 클라이언트 상태 정보를 수신하는 단계; 및
    규칙적 시간 간격으로 클라이언트로부터 클라이언트 상태 정보를 수신하기 위한 실패(failure)에 응답하여 또는 클라이언트 상태 정보가 클라이언트에 대한 사전 정의된 요건에 대응하는 것에 실패하는 것에 응답하여 네트워크 터널을 끊는 단계를 더 포함하는 컴퓨터 구현 방법.
  19. 명령을 저장하는 비일시적 컴퓨터 판독가능 매체에 있어서,
    상기 명령은 실행될 때, 사설 네트워크(private network)에 대해 게이트웨이를 구현하는 컴퓨터 시스템으로 하여금,
    클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이의 네트워크 터널을 위해 클라이언트 디바이스로부터 요청을 수신하게 하고,
    클라이언트 디바이스를 인증하게 하고,
    컴퓨터 시스템과 통신하는 인증 서버로부터 클라이언트 디바이스가 통신하도록 허용되는 네트워크 디바이스의 목록을 포함하는 클라이언트 액세스 목록을 수신하게 하고,
    사설 네트워크에서의 네트워크 디바이스는 클라이언트 디바이스가 통신하도록 허용되는 네트워크 디바이스의 목록의 일부임을 검증하게 하고,
    게이트웨이를 통해 클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이에 네트워크 터널을 설정하게 하는 명령을 저장하는 비일시적 컴퓨터 판독가능 매체.
  20. 게이트웨이를 구현하는 컴퓨터 시스템에 있어서,
    프로세서; 및
    프로세스와 통신하고 명령을 저장하는 비일시적 메모리를 포함하고, 명령은 프로세서에 의해 실행될 때 컴퓨터 시스템으로 하여금,
    클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이의 네트워크 터널을 위한 클라이언트 디바이스로부터의 요청을 수신하게 하고,
    클라이언트 디바이스를 인증하게 하고,
    컴퓨터 시스템과 통신하는 인증 서버로부터 클라이언트 디바이스가 통신하도록 허용되는 네트워크 디바이스의 목록을 포함하는 클라이언트 액세스 목록(client access list)을 수신하게 하고,
    사설 네트워크에서의 네트워크 디바이스는 클라이언트 디바이스가 통신하도록 허용되는 네트워크 디바이스의 목록의 일부임을 검증하게 하고,
    게이트웨이를 통해 클라이언트 디바이스와 사설 네트워크에서의 네트워크 디바이스 사이에 네트워크 터널을 설정하게 하는 컴퓨터 시스템.

KR1020177011077A 2014-10-06 2015-09-16 네트워크 디바이스를 보호하기 위한 시스템 및 방법 KR102009685B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462060427P 2014-10-06 2014-10-06
US62/060,427 2014-10-06
US14/578,140 US9148408B1 (en) 2014-10-06 2014-12-19 Systems and methods for protecting network devices
US14/578,140 2014-12-19
US14/828,357 US9853947B2 (en) 2014-10-06 2015-08-17 Systems and methods for protecting network devices
US14/828,357 2015-08-17
PCT/US2015/050485 WO2016057177A1 (en) 2014-10-06 2015-09-16 Systems and methods for protecting network devices

Publications (2)

Publication Number Publication Date
KR20170063795A true KR20170063795A (ko) 2017-06-08
KR102009685B1 KR102009685B1 (ko) 2019-08-12

Family

ID=54149739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177011077A KR102009685B1 (ko) 2014-10-06 2015-09-16 네트워크 디바이스를 보호하기 위한 시스템 및 방법

Country Status (12)

Country Link
US (4) US9148408B1 (ko)
EP (1) EP3205073A4 (ko)
JP (2) JP2017537501A (ko)
KR (1) KR102009685B1 (ko)
CN (1) CN107005542A (ko)
AU (1) AU2015328628B2 (ko)
BR (1) BR112017007051A2 (ko)
CA (1) CA2963947C (ko)
CO (1) CO2017003283A2 (ko)
MX (1) MX2017004292A (ko)
RU (1) RU2675055C2 (ko)
WO (1) WO2016057177A1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102214555B1 (ko) * 2019-10-22 2021-02-08 윤홍익 인터넷의 특정 사이트만 접속이 가능하도록 방화벽을 구축하는 공기조화시스템용 라우팅 시스템 구성방법
KR102214550B1 (ko) * 2019-10-22 2021-02-08 윤홍익 인터넷의 특정 사이트만 접속이 가능하도록 방화벽을 구축하는 라우팅 장치를 포함한 공기조화 시스템
KR102223827B1 (ko) * 2019-09-24 2021-03-08 프라이빗테크놀로지 주식회사 단말의 네트워크 접속을 인증 및 제어하기 위한 시스템 및 그에 관한 방법
WO2021060859A1 (ko) * 2019-09-24 2021-04-01 프라이빗테크놀로지 주식회사 단말의 네트워크 접속을 인증 및 제어하기 위한 시스템 및 그에 관한 방법
US11082256B2 (en) 2019-09-24 2021-08-03 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
US11190494B2 (en) 2019-09-24 2021-11-30 Pribit Technology, Inc. Application whitelist using a controlled node flow
US11271777B2 (en) 2019-09-24 2022-03-08 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
US11381557B2 (en) 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
WO2023033588A1 (ko) * 2021-09-03 2023-03-09 프라이빗테크놀로지 주식회사 가상화 단말에서 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2996018A1 (fr) * 2012-09-27 2014-03-28 France Telecom Dispositif et procede de gestion de l'acces a un ensemble de ressources informatiques et reseaux mis a la disposition d'une entite par un systeme informatique en nuage
US20150332351A1 (en) * 2014-05-16 2015-11-19 Centurylink Intellectual Property Llc System and Method for Service Provider Cloud Services - Cloud Marketplace
US9906497B2 (en) 2014-10-06 2018-02-27 Cryptzone North America, Inc. Multi-tunneling virtual network adapter
US9148408B1 (en) 2014-10-06 2015-09-29 Cryptzone North America, Inc. Systems and methods for protecting network devices
US10447692B2 (en) * 2015-03-31 2019-10-15 Oath Inc. Auto-creation of application passwords
US9706376B2 (en) * 2015-05-15 2017-07-11 Avaya Inc. Navigational aid for emergency response personnel
EP3320708B1 (en) * 2015-07-06 2022-03-09 Telefonaktiebolaget LM Ericsson (publ) Facilitating secure communcation between a client device and an application server
US9942202B2 (en) * 2015-09-08 2018-04-10 Microsoft Technology Licensing, Llc Trust status of a communication session
US9736120B2 (en) 2015-10-16 2017-08-15 Cryptzone North America, Inc. Client network access provision by a network traffic manager
US9866519B2 (en) 2015-10-16 2018-01-09 Cryptzone North America, Inc. Name resolving in segmented networks
US10078577B2 (en) 2016-01-25 2018-09-18 Entit Software Llc Policy compliance of container images
US10412048B2 (en) * 2016-02-08 2019-09-10 Cryptzone North America, Inc. Protecting network devices by a firewall
US9628444B1 (en) * 2016-02-08 2017-04-18 Cryptzone North America, Inc. Protecting network devices by a firewall
US11743264B2 (en) * 2016-02-27 2023-08-29 Gryphon Online Safety Inc. Method of protecting mobile devices from vulnerabilities like malware, enabling content filtering, screen time restrictions and other parental control rules while on public network by forwarding the internet traffic to a smart, secured home router
US10212167B2 (en) * 2016-02-27 2019-02-19 Gryphon Online Safety, Inc. Method and system to enable controlled safe internet browsing
US11405399B2 (en) * 2016-02-27 2022-08-02 Gryphon Online Safety Inc. Method of protecting mobile devices from vulnerabilities like malware, enabling content filtering, screen time restrictions and other parental control rules while on public network by forwarding the internet traffic to a smart, secured home router
JP6597452B2 (ja) * 2016-03-30 2019-10-30 日本電気株式会社 情報処理装置、情報処理方法、プログラム
US9560015B1 (en) 2016-04-12 2017-01-31 Cryptzone North America, Inc. Systems and methods for protecting network devices by a firewall
US10158610B2 (en) 2016-07-06 2018-12-18 Adp, Llc Secure application communication system
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
CN107979577B (zh) * 2016-10-25 2021-10-15 华为技术有限公司 一种终端认证的方法及设备
JP6900657B2 (ja) * 2016-11-15 2021-07-07 株式会社リコー 機器、情報処理システム及びプログラム
US10911452B2 (en) * 2016-11-22 2021-02-02 Synergex Group (corp.) Systems, methods, and media for determining access privileges
US11240240B1 (en) * 2017-08-09 2022-02-01 Sailpoint Technologies, Inc. Identity defined secure connect
CN110120932B (zh) 2018-02-06 2020-10-23 华为技术有限公司 多路径建立方法及装置
WO2019239834A1 (ja) * 2018-06-14 2019-12-19 京セラドキュメントソリューションズ株式会社 認証装置及び画像形成装置
US11522835B2 (en) * 2018-07-03 2022-12-06 Vmware, Inc. Context based firewall service for agentless machines
US11277380B2 (en) * 2018-12-17 2022-03-15 T-Mobile Usa, Inc. Adaptive malicious network traffic response
US11190521B2 (en) * 2019-01-18 2021-11-30 Vmware, Inc. TLS policy enforcement at a tunnel gateway
TWI706281B (zh) * 2019-02-19 2020-10-01 華東科技股份有限公司 裝置驗證方法
US11394693B2 (en) * 2019-03-04 2022-07-19 Cyxtera Cybersecurity, Inc. Establishing network tunnel in response to access request
CN113632437B (zh) * 2019-03-29 2023-05-30 Abb瑞士股份有限公司 工业物联网中的安全远程连接
CN110247896B (zh) * 2019-05-22 2022-06-14 深圳壹账通智能科技有限公司 基于开启防火墙的信息处理方法、装置和计算机设备
WO2021060858A1 (ko) * 2019-09-24 2021-04-01 프라이빗테크놀로지 주식회사 터널 및 데이터 플로우에 기반하여 노드의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
CN111245785A (zh) * 2019-12-30 2020-06-05 中国建设银行股份有限公司 防火墙封禁和解禁ip的方法、系统、设备和介质
KR102204366B1 (ko) * 2020-04-08 2021-01-18 (주)아이피로드 무선환경에서 유해트래픽 제어를 위한 솔루션시스템
CN111756747B (zh) * 2020-06-25 2022-07-29 深圳市幻一科技有限公司 一种防火墙网络安全控制方法及其系统
US11616762B2 (en) * 2020-07-24 2023-03-28 Arris Enterprises Llc Method and system for voice based application blocker
CN112202823B (zh) * 2020-12-07 2021-03-19 杭州筋斗腾云科技有限公司 网络资源访问系统及方法、用户门户及资源门户
US12001874B2 (en) 2021-07-13 2024-06-04 Rockwell Automation Technologies Digital engineering secure remote access
US11863560B2 (en) * 2021-07-15 2024-01-02 Rockwell Automation Technologies, Inc. Industrial automation secure remote access
TWI795148B (zh) * 2021-12-28 2023-03-01 四零四科技股份有限公司 處理存取控制的裝置、方法及系統
CN114268508B (zh) * 2021-12-30 2023-08-18 天翼物联科技有限公司 物联网设备安全接入方法、装置、设备及介质
CN114422212A (zh) * 2021-12-31 2022-04-29 中煤科工集团信息技术有限公司 一种工业互联网装置云连接方法、系统及装置
US11463412B1 (en) * 2022-03-29 2022-10-04 Uab 360 It Protected configuration of a virtual private network server

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026503A1 (en) * 2000-04-12 2002-02-28 Samuel Bendinelli Methods and system for providing network services using at least one processor interfacing a base network
US20080046995A1 (en) * 2006-08-17 2008-02-21 Sbc Knowledge Ventures, Lp System and method of selecting a virtual private network access server
KR20110113565A (ko) * 2010-04-09 2011-10-17 인터내셔널 비지네스 머신즈 코포레이션 공중 무선 네트워크를 통한 사설 네트워크로의 보안 접근
US20140109175A1 (en) * 2012-10-15 2014-04-17 Citrix Systems, Inc. Providing Virtualized Private Network Tunnels

Family Cites Families (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889942A (en) * 1996-12-18 1999-03-30 Orenshteyn; Alexander S. Secured system for accessing application services from a remote station
US7821926B2 (en) 1997-03-10 2010-10-26 Sonicwall, Inc. Generalized policy server
US6766454B1 (en) * 1997-04-08 2004-07-20 Visto Corporation System and method for using an authentication applet to identify and authenticate a user in a computer network
US8019881B2 (en) * 1998-11-30 2011-09-13 George Mason Intellectual Properties, Inc. Secure cookies
US6381631B1 (en) 1999-06-03 2002-04-30 Marimba, Inc. Method and apparatus for controlling client computer systems
US7610289B2 (en) 2000-10-04 2009-10-27 Google Inc. System and method for monitoring and analyzing internet traffic
US7954144B1 (en) * 2000-01-18 2011-05-31 Novell, Inc. Brokering state information and identity among user agents, origin servers, and proxies
US7085854B2 (en) * 2000-04-12 2006-08-01 Corente, Inc. Methods and systems for enabling communication between a processor and a network operations center
US7028334B2 (en) 2000-04-12 2006-04-11 Corente, Inc. Methods and systems for using names in virtual networks
US7028333B2 (en) 2000-04-12 2006-04-11 Corente, Inc. Methods and systems for partners in virtual networks
US7181542B2 (en) 2000-04-12 2007-02-20 Corente, Inc. Method and system for managing and configuring virtual private networks
US7047424B2 (en) 2000-04-12 2006-05-16 Corente, Inc. Methods and systems for hairpins in virtual networks
US6898710B1 (en) * 2000-06-09 2005-05-24 Northop Grumman Corporation System and method for secure legacy enclaves in a public key infrastructure
FI20001837A (fi) * 2000-08-18 2002-02-19 Nokia Corp Autentikointi
JP2002133324A (ja) * 2000-10-25 2002-05-10 Toshiba Corp ユーザ情報管理装置、ユーザ情報管理方法及び電子サービスシステム
WO2002048858A2 (en) * 2000-12-15 2002-06-20 Nokia Corporation Method and system for acces in open service architecture
US7209479B2 (en) * 2001-01-18 2007-04-24 Science Application International Corp. Third party VPN certification
US7533409B2 (en) * 2001-03-22 2009-05-12 Corente, Inc. Methods and systems for firewalling virtual private networks
US6873988B2 (en) * 2001-07-06 2005-03-29 Check Point Software Technologies, Inc. System and methods providing anti-virus cooperative enforcement
US7590684B2 (en) * 2001-07-06 2009-09-15 Check Point Software Technologies, Inc. System providing methodology for access control with cooperative enforcement
US6928549B2 (en) 2001-07-09 2005-08-09 International Business Machines Corporation Dynamic intrusion detection for computer systems
US7827278B2 (en) 2001-07-23 2010-11-02 At&T Intellectual Property Ii, L.P. System for automated connection to virtual private networks related applications
US7114175B2 (en) * 2001-08-03 2006-09-26 Nokia Corporation System and method for managing network service access and enrollment
AR037011A1 (es) 2001-08-13 2004-10-20 Qualcomm Inc Un metodo para almacenar una aplicacion en un dispositivo, un dispositivo para ejecutar una aplicacion con dicho metodo, metodos para permitir acceso a un recurso del dispositivo y asociar una lista de autorizacion a una aplicacion, sistemas para almacenar una aplicacion en un dispositivo, para perm
US7197550B2 (en) * 2001-08-23 2007-03-27 The Directv Group, Inc. Automated configuration of a virtual private network
US7099957B2 (en) 2001-08-23 2006-08-29 The Directtv Group, Inc. Domain name system resolution
US7769838B2 (en) * 2001-08-23 2010-08-03 The Directv Group, Inc. Single-modem multi-user virtual private network
FI20012338A0 (fi) 2001-11-29 2001-11-29 Stonesoft Corp Palomuuri tunneloitujen datapakettien suodattamiseksi
US7506058B2 (en) 2001-12-28 2009-03-17 International Business Machines Corporation Method for transmitting information across firewalls
US7099319B2 (en) 2002-01-23 2006-08-29 International Business Machines Corporation Virtual private network and tunnel gateway with multiple overlapping, remote subnets
US7076803B2 (en) 2002-01-28 2006-07-11 International Business Machines Corporation Integrated intrusion detection services
US7606938B2 (en) * 2002-03-01 2009-10-20 Enterasys Networks, Inc. Verified device locations in a data network
US7359974B1 (en) 2002-03-29 2008-04-15 Packeteer, Inc. System and method for dynamically controlling aggregate and individual packet flow characteristics within a compressed logical data tunnel
CN101795303B (zh) 2002-04-08 2012-08-01 艾利森电话股份有限公司 能够连接到具有本地地址域的网络的方法及系统
WO2003100544A2 (en) * 2002-05-24 2003-12-04 Telefonaktiebolaget Lm Ericsson (Publ) Method for authenticating a user to a service of a service provider
US7245619B1 (en) 2002-05-31 2007-07-17 Extreme Networks Method and apparatus for managing routes
US7574737B1 (en) * 2002-05-31 2009-08-11 Novatel Wireless, Inc. Systems and methods for secure communication over a wireless network
JP4304362B2 (ja) * 2002-06-25 2009-07-29 日本電気株式会社 Pki対応の証明書確認処理方法及びその装置、並びにpki対応の証明書確認処理プログラム
JP4129783B2 (ja) * 2002-07-10 2008-08-06 ソニー株式会社 リモートアクセスシステム及びリモートアクセス方法
US7849495B1 (en) 2002-08-22 2010-12-07 Cisco Technology, Inc. Method and apparatus for passing security configuration information between a client and a security policy server
US7373662B2 (en) * 2002-08-27 2008-05-13 Hewlett-Packard Development Company, L.P. Secure resource access
US7574738B2 (en) * 2002-11-06 2009-08-11 At&T Intellectual Property Ii, L.P. Virtual private network crossovers based on certificates
US20060005237A1 (en) * 2003-01-30 2006-01-05 Hiroshi Kobata Securing computer network communication using a proxy server
US20040167954A1 (en) 2003-02-21 2004-08-26 Infineon Technologies North America Corp. Overflow detection system for multiplication
US7673048B1 (en) 2003-02-24 2010-03-02 Cisco Technology, Inc. Methods and apparatus for establishing a computerized device tunnel connection
US7444518B1 (en) * 2003-06-16 2008-10-28 Microsoft Corporation Method and apparatus for communicating authorization data
US7305705B2 (en) 2003-06-30 2007-12-04 Microsoft Corporation Reducing network configuration complexity with transparent virtual private networks
EP1643691B1 (en) * 2003-07-04 2007-12-05 Nippon Telegraph and Telephone Corporation Remote access vpn mediation method and mediation device
US20050076198A1 (en) * 2003-10-02 2005-04-07 Apacheta Corporation Authentication system
US8429232B1 (en) * 2003-10-03 2013-04-23 Voltage Security, Inc. Message authentication using signatures
EP1725946A4 (en) 2004-03-10 2012-07-11 Enterasys Networks Inc Dynamic Network Detection System and Method
US7665130B2 (en) 2004-03-10 2010-02-16 Eric White System and method for double-capture/double-redirect to a different location
JP4448719B2 (ja) 2004-03-19 2010-04-14 株式会社日立製作所 ストレージシステム
US8230480B2 (en) 2004-04-26 2012-07-24 Avaya Inc. Method and apparatus for network security based on device security status
IL161706A0 (en) 2004-04-29 2004-09-27 Nulens Ltd Intraocular lens fixation device
US20050273853A1 (en) * 2004-05-24 2005-12-08 Toshiba America Research, Inc. Quarantine networking
US8136149B2 (en) * 2004-06-07 2012-03-13 Check Point Software Technologies, Inc. Security system with methodology providing verified secured individual end points
US8340283B2 (en) * 2004-06-30 2012-12-25 International Business Machines Corporation Method and system for a PKI-based delegation process
US8914522B2 (en) 2004-07-23 2014-12-16 Citrix Systems, Inc. Systems and methods for facilitating a peer to peer route via a gateway
KR20070039597A (ko) 2004-07-23 2007-04-12 사이트릭스 시스템스, 인크. 사설망에 대한 원격 액세스를 보안화하기 위한 방법 및시스템
US9088547B2 (en) 2004-07-28 2015-07-21 Nec Corporation Connection method, communication system, device, and program
US7360237B2 (en) * 2004-07-30 2008-04-15 Lehman Brothers Inc. System and method for secure network connectivity
US7373516B2 (en) 2004-08-19 2008-05-13 International Business Machines Corporation Systems and methods of securing resources through passwords
US7647492B2 (en) 2004-09-15 2010-01-12 Check Point Software Technologies Inc. Architecture for routing and IPSec integration
CA2578186C (en) * 2004-10-12 2012-07-10 Bce Inc. System and method for access control
US7591010B2 (en) 2005-01-19 2009-09-15 Microsoft Corporation Method and system for separating rules of a security policy from detection criteria
US7661131B1 (en) 2005-02-03 2010-02-09 Sun Microsystems, Inc. Authentication of tunneled connections
JP4376233B2 (ja) * 2005-02-04 2009-12-02 株式会社エヌ・ティ・ティ・ドコモ クライアント装置、デバイス検証装置及び検証方法
US20060248337A1 (en) 2005-04-29 2006-11-02 Nokia Corporation Establishment of a secure communication
US8001610B1 (en) 2005-09-28 2011-08-16 Juniper Networks, Inc. Network defense system utilizing endpoint health indicators and user identity
US8151338B2 (en) * 2005-09-29 2012-04-03 Cisco Technology, Inc. Method and system for continuously serving authentication requests
WO2007062069A1 (en) * 2005-11-23 2007-05-31 Ils Technology Llc Business-to-business remote network connectivity
US8584226B2 (en) 2006-01-26 2013-11-12 Iorhythm, Inc. Method and apparatus for geographically regulating inbound and outbound network communications
US8028071B1 (en) 2006-02-15 2011-09-27 Vmware, Inc. TCP/IP offload engine virtualization system and methods
US20070209081A1 (en) * 2006-03-01 2007-09-06 Morris Robert P Methods, systems, and computer program products for providing a client device with temporary access to a service during authentication of the client device
US8868757B1 (en) 2006-05-24 2014-10-21 Avaya Inc. Two-way web service router gateway
US9137043B2 (en) * 2006-06-27 2015-09-15 International Business Machines Corporation System, method and program for determining a network path by which to send a message
US8369224B1 (en) 2006-09-08 2013-02-05 Juniper Networks, Inc. Combining network endpoint policy results
JP4763560B2 (ja) 2006-09-14 2011-08-31 富士通株式会社 接続支援装置
US8249081B2 (en) 2006-09-29 2012-08-21 Array Networks, Inc. Dynamic virtual private network (VPN) resource provisioning using a dynamic host configuration protocol (DHCP) server, a domain name system (DNS) and/or static IP assignment
US9231911B2 (en) * 2006-10-16 2016-01-05 Aruba Networks, Inc. Per-user firewall
CN101212374A (zh) * 2006-12-29 2008-07-02 北大方正集团有限公司 实现校园网资源远程访问的方法和系统
US20080178278A1 (en) 2007-01-22 2008-07-24 Doron Grinstein Providing A Generic Gateway For Accessing Protected Resources
US7809003B2 (en) 2007-02-16 2010-10-05 Nokia Corporation Method for the routing and control of packet data traffic in a communication system
US7853998B2 (en) 2007-03-22 2010-12-14 Mocana Corporation Firewall propagation
US20080301801A1 (en) * 2007-05-31 2008-12-04 Premkumar Jothimani Policy based virtual private network (VPN) communications
US7992201B2 (en) 2007-07-26 2011-08-02 International Business Machines Corporation Dynamic network tunnel endpoint selection
US8819763B1 (en) 2007-10-05 2014-08-26 Xceedium, Inc. Dynamic access policies
US9225684B2 (en) 2007-10-29 2015-12-29 Microsoft Technology Licensing, Llc Controlling network access
US8108911B2 (en) 2007-11-01 2012-01-31 Comcast Cable Holdings, Llc Method and system for directing user between captive and open domains
WO2009145987A2 (en) * 2008-03-30 2009-12-03 Symplified, Inc. System, method, and apparatus for single sign-on and managing access to resources across a network
US20090254970A1 (en) 2008-04-04 2009-10-08 Avaya Inc. Multi-tier security event correlation and mitigation
US20090300750A1 (en) 2008-05-27 2009-12-03 Avaya Inc. Proxy Based Two-Way Web-Service Router Gateway
US8856926B2 (en) 2008-06-27 2014-10-07 Juniper Networks, Inc. Dynamic policy provisioning within network security devices
DK2144460T3 (en) 2008-07-10 2016-02-08 Teliasonera Ab A method, system, packet data gateway, and computer program for providing connection to the supply of data
US9088615B1 (en) * 2008-07-31 2015-07-21 Pulse Secure, Llc Determining a reduced set of remediation actions for endpoint integrity
US9614855B2 (en) * 2009-11-05 2017-04-04 Micro Focus Software Inc. System and method for implementing a secure web application entitlement service
US8353021B1 (en) 2008-09-30 2013-01-08 Symantec Corporation Determining firewall rules for an application on a client based on firewall rules and reputations of other clients
US8893260B2 (en) 2008-12-17 2014-11-18 Rockstar Consortium Us Lp Secure remote access public communication environment
US8171539B2 (en) * 2009-01-07 2012-05-01 Symbol Technologies, Inc. Methods and apparatus for implementing a search tree
US8392972B2 (en) 2009-02-11 2013-03-05 Sophos Plc Protected access control method for shared computer resources
US20100217975A1 (en) * 2009-02-25 2010-08-26 Garret Grajek Method and system for secure online transactions with message-level validation
GB0905559D0 (en) 2009-03-31 2009-05-13 British Telecomm Addressing scheme
US8850549B2 (en) 2009-05-01 2014-09-30 Beyondtrust Software, Inc. Methods and systems for controlling access to resources and privileges per process
US20100306530A1 (en) 2009-06-02 2010-12-02 Johnson Robert A Workgroup key wrapping for community of interest membership authentication
US8275890B2 (en) * 2009-06-03 2012-09-25 International Business Machines Corporation Detecting an inactive client during a communication session
US8549173B1 (en) 2009-09-29 2013-10-01 Google Inc. User-space resource management
DE102009054114A1 (de) 2009-11-20 2011-05-26 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Zugreifen auf Steuerungsdaten gemäß einer bereitgestellten Rechteinformation
US8549300B1 (en) * 2010-02-23 2013-10-01 Juniper Networks, Inc. Virtual single sign-on for certificate-protected resources
EP2550620B1 (en) 2010-03-24 2014-07-02 e-BO Enterprises Trusted content distribution system
US9009330B2 (en) 2010-04-01 2015-04-14 Cloudflare, Inc. Internet-based proxy service to limit internet visitor connection speed
US20110252459A1 (en) * 2010-04-12 2011-10-13 Walsh Robert E Multiple Server Access Management
JP5521736B2 (ja) * 2010-04-23 2014-06-18 富士ゼロックス株式会社 通信制御装置、通信制御プログラム及び通信制御システム
US8997196B2 (en) * 2010-06-14 2015-03-31 Microsoft Corporation Flexible end-point compliance and strong authentication for distributed hybrid enterprises
US20110314532A1 (en) * 2010-06-17 2011-12-22 Kyle Dean Austin Identity provider server configured to validate authentication requests from identity broker
US8127350B2 (en) * 2010-06-30 2012-02-28 Juniper Networks, Inc. Multi-service VPN network client for mobile device
US8433783B2 (en) 2010-09-29 2013-04-30 Citrix Systems, Inc. Systems and methods for providing quality of service via a flow controlled tunnel
JP4892093B1 (ja) * 2010-11-09 2012-03-07 株式会社東芝 認証連携システム及びidプロバイダ装置
US8671221B2 (en) 2010-11-17 2014-03-11 Hola Networks Ltd. Method and system for increasing speed of domain name system resolution within a computing device
US8510820B2 (en) * 2010-12-02 2013-08-13 Duo Security, Inc. System and method for embedded authentication
US20120167196A1 (en) 2010-12-23 2012-06-28 International Business Machines Corporation Automatic Virtual Private Network
US20120198541A1 (en) * 2011-02-02 2012-08-02 Reeves Randall E Methods and apparatus for preventing network intrusion
US20120210002A1 (en) 2011-02-15 2012-08-16 Mcquade Philip A Dynamic walled garden
US20120278878A1 (en) 2011-04-27 2012-11-01 International Business Machines Corporation Systems and methods for establishing secure virtual private network communications using non-privileged vpn client
US8761187B2 (en) 2011-06-14 2014-06-24 Futurewei Technologies, Inc. System and method for an in-server virtual switch
US9529996B2 (en) 2011-10-11 2016-12-27 Citrix Systems, Inc. Controlling mobile device access to enterprise resources
WO2012163005A1 (zh) * 2011-10-14 2012-12-06 华为技术有限公司 访问虚拟专用网络的方法、装置以及网关设备
US20130332724A1 (en) 2012-01-24 2013-12-12 Cummings Engineering Consultants, Inc. User-Space Enabled Virtual Private Network
WO2013116856A1 (en) 2012-02-02 2013-08-08 Seven Networks, Inc. Dynamic categorization of applications for network access in a mobile network
US9201704B2 (en) 2012-04-05 2015-12-01 Cisco Technology, Inc. System and method for migrating application virtual machines in a network environment
US10091049B2 (en) 2012-08-17 2018-10-02 F5 Networks, Inc. Scripting for implementing policy-based traffic steering and management
US9565180B2 (en) * 2012-09-28 2017-02-07 Symantec Corporation Exchange of digital certificates in a client-proxy-server network configuration
US9992185B1 (en) * 2012-11-02 2018-06-05 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
GB201220692D0 (en) 2012-11-16 2013-01-02 Overnet Data Man Ltd Software deployment and control method and system
US9401924B2 (en) * 2012-12-20 2016-07-26 At&T Intellectual Property I, L.P. Monitoring operational activities in networks and detecting potential network intrusions and misuses
WO2014117375A1 (zh) 2013-01-31 2014-08-07 华为技术有限公司 保持应用在线的方法、永久在线控制器和设备
KR20140099598A (ko) 2013-02-04 2014-08-13 한국전자통신연구원 모바일 vpn 서비스를 제공하는 방법
US9130901B2 (en) 2013-02-26 2015-09-08 Zentera Systems, Inc. Peripheral firewall system for application protection in cloud computing environments
US20140282976A1 (en) 2013-03-15 2014-09-18 Netop Solutions A/S System and method for secure application communication between networked processors
WO2014161133A1 (zh) 2013-04-01 2014-10-09 华为技术有限公司 虚拟机的数据交换方法、装置和系统
US9258270B2 (en) 2013-05-23 2016-02-09 International Business Machines Corporation Selecting between domain name system servers of a plurality of networks
US9300629B1 (en) 2013-05-31 2016-03-29 Palo Alto Networks, Inc. Password constraint enforcement used in external site authentication
US9426081B2 (en) 2013-06-01 2016-08-23 Microsoft Technology Licensing, Llc Management of multilevel queues for shared network adapters
US9325630B2 (en) 2013-07-05 2016-04-26 Red Hat, Inc. Wild card flows for switches and virtual switches based on hints from hypervisors
EP3066607B1 (en) 2013-11-04 2018-12-12 Illumio, Inc. Pairing in a distributed network management system that uses a logical multi-dimensional label-based policy model
EP3066815B1 (en) 2013-11-04 2019-12-04 Illumio, Inc. Automated generation of label-based access control rules.
US20150135265A1 (en) 2013-11-11 2015-05-14 MyDigitalShield, Inc. Automatic network firewall policy determination
JP2015115893A (ja) * 2013-12-13 2015-06-22 富士通株式会社 通信方法、通信プログラム、および中継装置
US9363282B1 (en) 2014-01-28 2016-06-07 Infoblox Inc. Platforms for implementing an analytics framework for DNS security
US9542224B2 (en) 2014-01-30 2017-01-10 Vmware, Inc. User space function execution from a kernel context for input/output filtering from a thread executing in the user space
US9635014B2 (en) * 2014-02-21 2017-04-25 Samsung Electronics Co., Ltd. Method and apparatus for authenticating client credentials
US10469448B2 (en) 2014-09-05 2019-11-05 Hewlett Packard Enterprise Development Lp Firewall port access rule generation
US9148408B1 (en) 2014-10-06 2015-09-29 Cryptzone North America, Inc. Systems and methods for protecting network devices
US9906497B2 (en) 2014-10-06 2018-02-27 Cryptzone North America, Inc. Multi-tunneling virtual network adapter
US9509574B2 (en) 2015-04-03 2016-11-29 Illumio, Inc. End-to-end policy enforcement in the presence of a traffic midpoint device
US9866519B2 (en) 2015-10-16 2018-01-09 Cryptzone North America, Inc. Name resolving in segmented networks
US9736120B2 (en) 2015-10-16 2017-08-15 Cryptzone North America, Inc. Client network access provision by a network traffic manager
US9860213B2 (en) 2015-12-30 2018-01-02 Iomaxis, Llc Method and system for securing and protecting smart devices within the internet of things ecosystem
US9628444B1 (en) 2016-02-08 2017-04-18 Cryptzone North America, Inc. Protecting network devices by a firewall
US10412048B2 (en) 2016-02-08 2019-09-10 Cryptzone North America, Inc. Protecting network devices by a firewall
US9560015B1 (en) 2016-04-12 2017-01-31 Cryptzone North America, Inc. Systems and methods for protecting network devices by a firewall
US10362021B2 (en) * 2016-05-31 2019-07-23 Airwatch Llc Device authentication based upon tunnel client network requests

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026503A1 (en) * 2000-04-12 2002-02-28 Samuel Bendinelli Methods and system for providing network services using at least one processor interfacing a base network
US20080046995A1 (en) * 2006-08-17 2008-02-21 Sbc Knowledge Ventures, Lp System and method of selecting a virtual private network access server
KR20110113565A (ko) * 2010-04-09 2011-10-17 인터내셔널 비지네스 머신즈 코포레이션 공중 무선 네트워크를 통한 사설 네트워크로의 보안 접근
US20140109175A1 (en) * 2012-10-15 2014-04-17 Citrix Systems, Inc. Providing Virtualized Private Network Tunnels

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102223827B1 (ko) * 2019-09-24 2021-03-08 프라이빗테크놀로지 주식회사 단말의 네트워크 접속을 인증 및 제어하기 위한 시스템 및 그에 관한 방법
WO2021060859A1 (ko) * 2019-09-24 2021-04-01 프라이빗테크놀로지 주식회사 단말의 네트워크 접속을 인증 및 제어하기 위한 시스템 및 그에 관한 방법
US11082256B2 (en) 2019-09-24 2021-08-03 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
US11190494B2 (en) 2019-09-24 2021-11-30 Pribit Technology, Inc. Application whitelist using a controlled node flow
US11271777B2 (en) 2019-09-24 2022-03-08 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
US11381557B2 (en) 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
KR102214555B1 (ko) * 2019-10-22 2021-02-08 윤홍익 인터넷의 특정 사이트만 접속이 가능하도록 방화벽을 구축하는 공기조화시스템용 라우팅 시스템 구성방법
KR102214550B1 (ko) * 2019-10-22 2021-02-08 윤홍익 인터넷의 특정 사이트만 접속이 가능하도록 방화벽을 구축하는 라우팅 장치를 포함한 공기조화 시스템
WO2023033588A1 (ko) * 2021-09-03 2023-03-09 프라이빗테크놀로지 주식회사 가상화 단말에서 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법

Also Published As

Publication number Publication date
RU2675055C2 (ru) 2018-12-14
EP3205073A4 (en) 2017-10-04
AU2015328628B2 (en) 2018-11-08
US10193869B2 (en) 2019-01-29
MX2017004292A (es) 2017-10-02
AU2015328628A1 (en) 2017-04-27
US20160099916A1 (en) 2016-04-07
CO2017003283A2 (es) 2017-06-30
KR102009685B1 (ko) 2019-08-12
JP2017537501A (ja) 2017-12-14
RU2017115774A3 (ko) 2018-11-13
US20190116156A1 (en) 2019-04-18
US9853947B2 (en) 2017-12-26
US20180139177A1 (en) 2018-05-17
BR112017007051A2 (pt) 2018-06-19
CA2963947C (en) 2019-03-05
RU2017115774A (ru) 2018-11-13
WO2016057177A1 (en) 2016-04-14
CA2963947A1 (en) 2016-04-14
US10979398B2 (en) 2021-04-13
EP3205073A1 (en) 2017-08-16
CN107005542A (zh) 2017-08-01
JP2019208219A (ja) 2019-12-05
US9148408B1 (en) 2015-09-29

Similar Documents

Publication Publication Date Title
US10979398B2 (en) Systems and methods for protecting network devices by a firewall
US10938785B2 (en) Multi-tunneling virtual network adapter
AU2018206713B2 (en) Multi-tunneling virtual network adapter
US20210336946A1 (en) Single Sign-On Access to Cloud Applications
US11503043B2 (en) System and method for providing an in-line and sniffer mode network based identity centric firewall
US20200099677A1 (en) Security object creation, validation, and assertion for single sign on authentication
RU2714367C1 (ru) Системы и способы для защиты сетевых устройств посредством межсетевого экрана

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