KR20100087032A - 보안 실행 지점에 보안 연관 정보를 선택적으로 로딩하는 방법 - Google Patents

보안 실행 지점에 보안 연관 정보를 선택적으로 로딩하는 방법 Download PDF

Info

Publication number
KR20100087032A
KR20100087032A KR1020107012387A KR20107012387A KR20100087032A KR 20100087032 A KR20100087032 A KR 20100087032A KR 1020107012387 A KR1020107012387 A KR 1020107012387A KR 20107012387 A KR20107012387 A KR 20107012387A KR 20100087032 A KR20100087032 A KR 20100087032A
Authority
KR
South Korea
Prior art keywords
information
encrypted data
sep
data packet
key server
Prior art date
Application number
KR1020107012387A
Other languages
English (en)
Inventor
위치 제임스 종
크리스토퍼 메이어
린우드 허그 주니어 오버비
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20100087032A publication Critical patent/KR20100087032A/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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/164Implementing security features at a particular protocol layer at the network layer

Abstract

보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 위해 보안 연관(security association; 'SA')정보를 통신 네트워크 보안 실행 지점(security enforcement point; 'SEP')에 선택적으로 로딩하기 위한 방법, 네트워크 요소, 및 컴퓨터 저장 프로그램 제품이 제공된다. 적어도 하나의 암호화 데이터 패킷이 수신된다. 적어도 하나의 암호화 데이터 패킷을 해독하기 위한 SA 정보가 SEP에 로컬하게 존재하지 않는지가 결정된다. 통신 네트워크 키 서버로 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보에 대한 요청이 전송된다. 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보는 통신 네트워크 키 서버로부터 수신된다.

Description

보안 실행 지점에 보안 연관 정보를 선택적으로 로딩하는 방법{SELECTIVELY LOADING SECURITY ENFORCEMENT POINTS WITH SECURITY ASSOCIATION INFORMATION}
본 발명은 일반적으로 콘텐츠 네트워크 보안(content network security)에 관한 것으로, 더 구체적으로는 통신 경로 상의 암호화된 데이터의 보안 실행 지점 프로세싱(security enforcement point processing)에 관한 것이다.
인터넷 보안은 점점 글로벌하게 액세스 가능한 컴퓨터 네트워크에 참여하는 정보 기술자들의 관심사가 되어가고 있다. 특히, 광대역 인터넷 액세스가 누구에게나 이용 가능해짐에 따라 심지어 작은 기업은 물론 많은 컴퓨터와 소규모 컴퓨터 네트워크들도 인터넷에의 연속적인(continuous) 액세스를 즐길 수 있게 되었다. 그럼에도 불구하고 인터넷에의 연속적인, 고속 액세스는 대가 없이 제공될 수는 없다. 특히 지금까지 그러한 컴퓨터들 및 컴퓨터 네트워크들은 인터넷의 보안 리스크에 노출되는 것과 무관했지만 현재는 악의를 갖고 인터넷을 이용하는 사용자들(malicious Internet malfeasors)의 주요한 표적이 되고 있다.
글로벌 인터넷에 노출된 컴퓨팅 장치(computing devices)의 취약점(vulnerability)을 해결하기 위해 정보 기술자들은 보안 통신(secure communications)을 통해서 인터넷 상의 데이터에 대한 진정한 엔드-투-엔드 보안(end-to-end security)을 제공하려고 하고 있다. 해당 분야에서 "IPsec"로 알려진 인터넷 보안 프로토콜(Internet Security Protocol)은 인터넷에서 이용하는 보안 통신의 일반적인 형태를 나타낸다. IPsec에서, 인터넷에 있는 통신 경로를 통한 소스 및 목적지 노드(source and destination nodes) 사이의 통신은 보안 연관(security association; "SA")에 따라 관리될 수 있다(administered). SA는 어떻게 IPsec 프로세싱이 통신에 적용되는지를 정의한다. IPsec는 다른 코멘트에 대한 요청(Request for Comment; RFC)들 가운데 RFC 4301에 의해서 대체된(superseded) RFC 2401에서 정의된다.
2개의 IPsec 엔드 포인트(endpoints) 사이에서 정의되는 보안 통신 경로는 종종 방화벽과 같은 하나 이상의 보안 실행 지점을 포함한다(incorporate). 보안 실행 지점은 보통 IPsec 보안 통신 경로 가운데(in the midst of) 위치하며 IPsec SA 프로세싱을 수행하지 않는다. 이러한 상황에서, 보안 통신 경로 내에 위치한 보안 실행 지점은 횡단하는(traversing) IPsec SA 내의 암호화된 데이터에 대해서는 검사를 수행하기 위한 방법이 없다. 결과적으로, 보안 IPsec 통신 경로(secure IPsec communications path) 상의 보안 실행 지점의 보안 기능은 대부분의 보안 기능들이 암호화되지 않은 일반 텍스트 데이터(clear-text data)에 대한 액세스를 요구함에 따라 제대로 동작하지 않게 될 것이다. 현재의 시스템은 일반적으로 보안 실행 지점들(security enforcement points)을 제공하지 않으며, 보안 실행 지점이 그 기능을 제대로 수행할 수 있게 하는 암호화 알고리즘(encryption algorithms) 또는 세션 키 정보(session key information)도 제공하지 않는다.
따라서 상기에서 언급된 종래 기술의 문제를 극복해야할 필요성이 존재한다.
첫 번째 실시예에서, 본 발명은 보안 엔드-투-엔드 통신 경로(secure, end-to-end communications path)에서의 암호화 데이터에 대한 검사(inspection)를 위해 통신 네트워크의 보안 실행 지점(security enforcement point; "SEP")에 보안 연관(security association; "SA") 정보를 선택적으로 로딩하는 방법으로서, SEP를 갖는 상기 방법은, 적어도 하나의 암호화 데이터 패킷을 수신하는 단계, 상기 적어도 하나의 암호화 데이터 패킷을 해독하기 위한 SA 정보(SA information)가 상기 SEP에 로컬하게 존재하지 않는지(fails to exist locally)를 결정하는 단계, 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보에 대한 요청을 통신 네트워크 키 서버(communication network key server)로 전송하는 단계 및 상기 적어도 하나의 암호화 데이터 패킷과 연관된 상기 SA 정보를 상기 통신 네트워크 키 서버로부터 수신하는 단계를 포함하는 방법을 제공한다.
상기 방법은 더 나아가, 상기 로컬하게 존재하지 않는 SA 정보에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 드롭하는 단계(dropping)와 상기 로컬하게 존재하지 않는 SA 정보에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 해독하지 않고, 상기 적어도 하나의 암호화 데이터 패킷을 상기 SEP로부터 목적지로 전달하는 단계 중 적어도 하나를 더 포함할 수 있다.
상기 방법은 더 나아가, 상기 통신 네트워크 키 서버로부터 수신한 상기 SA 정보와 연관된 후속 암호화 데이터 패킷들(subsequent encrypted data packets)을 상기 SEP를 이용하여 해독하는 단계를 더 포함할 수 있다.
상기 방법은 더 나아가, 상기 해독하는 단계에 응답하여, 해독이 행하여진, 상기 SA 정보와 연관된 후속 암호화 데이터 패킷들에 대하여 보안 기능을 수행하는 단계를 더 포함할 수 있다.
바람직하게는 상기 키 서버로부터 수신한 상기 SA 정보는 적어도 SA와 연관된 세션 키 데이터(session key data)를 포함하는 방법일 수 있다.
상기 방법은 더 나아가, 상기 키 서버(key server)를 사용하여 지속적인(persistent) 보안 세션(secure session)을 설정하는 단계(establishing)를 더 포함할 수 있다.
바람직하게는 상기 키 서버로 전송된 상기 요청(request)은 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA에 연관된 iCookie 값 및 rCookie 값을 적어도 포함하는 방법일 수 있다.
두 번째 실시예에서, 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 위해 보안 실행 지점("SEP")에 보안 연관("SA") 정보를 선택적으로 로딩하는 방법으로서, 엔드 포인트들 사이의 하나 이상의 엔드-투-엔드 보안 통신 경로에 대한 보안 연관들(security associations; "SAs")을 보유하는(holding) 키 서버에서의 상기 방법은, 제2 엔드 포인트(second endpoint)를 포함하는 엔드-투-엔드 보안 통신 경로(end-to-end secure communications path)에 대한 SA를 이용하여, 제1 엔드 포인트(first endpoint)로부터 상기 SA와 연관된 SA 정보를 수신하는 단계, 상기 SA 정보를 메모리에 저장하는 단계, 상기 SA에 적어도 하나의 SEP가 관심(interest)을 등록했는지(registered)를 결정하는 단계, 상기 SA 정보를 상기 적어도 하나의 SEP로 전송하는 단계를 포함하는 방법이 제공된다.
바람직하게는, 상기 제1 엔드 포인트로부터 수신된 상기 SA 정보는, 상기 SA와 연관된 세션 키 데이터를 포함하는 방법일 수 있다.
바람직하게는, 상기 적어도 하나의 SEP에 전송된 상기 SA 정보는, 상기 SA와 연관된 세션 키 데이터를 포함하는 방법일 수 있다.
상기 방법은 상기 적어도 하나의 SEP를 사용하여 지속적인 보안 세션을 설정하는 단계를 더 포함할 수 있다.
상기 방법은 상기 SA에 관심을 등록하기 위해 상기 적어도 하나의 SEP로부터 요청을 수신하는 단계, 상기 SA를 위해 메모리에 저장되어 있는 상기 SA 정보와 상기 적어도 하나의 SEP를 연관시키는 단계(associating)를 더 포함할 수 있다.
세 번째 실시예에서, 바람직하게는 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 가능하게 하는 네트워크 요소로서, 메모리, 상기 메모리에 통신 가능하게 결합된(communicatively coupled) 프로세서, 상기 메모리 및 상기 프로세서에 통신 가능하게 결합된 데이터 트래픽 매니저(data traffic manager)를 포함하고, 상기 데이터 트래픽 매니저는, 적어도 하나의 암호화 데이터 패킷(encrypted data packet)을 수신하고, 상기 적어도 하나의 암호화 데이터 패킷을 해독하기 위한 SA("SA") 정보가 로컬하게 존재하지 않는지를 결정하고, 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보에 대한 요청을 통신 네트워크 키 서버로 전송하고, 상기 적어도 하나의 암호화 데이터 패킷과 연관된 상기 SA 정보를 상기 통신 네트워크 키 서버로부터 수신하도록 구성된, 네트워크 장치가 제공될 수 있다.
바람직하게는, 상기 데이터 트래픽 매니저는, 상기 통신 네트워크 키 서버로부터 수신한 상기 SA 정보와 연관된 후속 암호화 데이터 패킷을 해독하고, 상기 해독에 응답하여, 해독이 행하여진, 상기 SA 정보와 연관된 후속 암호화 데이터 패킷에 대하여 보안 기능을 수행하도록 더 구성된(adapted to) 네트워크 장치이다.
바람직하게는, 상기 통신 네트워크 키 서버로 전송된 상기 요청은 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA에 연관된 iCookie 값 및 rCookie 값을 적어도 포함하는 네트워크 장치이다.
바람직하게는, 상기 데이터 트래픽 매니저는, 상기 SA 정보가 로컬하게 존재하지 않는지를 결정하는 것에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 드롭하고, 상기 SA 정보가 로컬하게 존재하지 않는지를 결정하는 것에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 해독하지 않고, 상기 적어도 하나의 암호화 데이터 패킷을 목적지로 전달하도록 더 구성된 네트워크 장치이다.
네 번째 실시예에서, 컴퓨터 시스템에 로딩되어 실행되었을 때, 상기 컴퓨터 시스템으로 하여금 첫 번째 실시예 또는 두 번째 실시예에 따른 방법의 모든 단계를 수행하도록 하는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램이 제공된다.
네 번째 실시예의 컴퓨터 프로그램은, 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 위해 통신 네트워크 보안 실행 지점("SEP")에 보안 연관("SA") 정보를 선택적으로 로딩하는 네트워크 요소(network element)에 대한 명령어를 포함하는 컴퓨터 저장 프로그램 제품(computer storage program product)의 형태로 제공될 수 있으며, 상기 컴퓨터 저장 프로그램 제품의 명령어는, 적어도 하나의 암호화 데이터 패킷을 수신하는 단계, 상기 적어도 하나의 암호화 데이터 패킷을 해독하기 위한 SA 정보(SA information)가 로컬하게 존재하지 않는지를 결정하는 단계, 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보에 대한 요청을 통신 네트워크 키 서버로 전송하는 단계, 상기 적어도 하나의 암호화 데이터 패킷과 연관된 상기 SA 정보를 상기 통신 네트워크 키 서버로부터 수신하는 단계를 포함한다.
컴퓨터 저장 프로그램 제품은 상기 통신 네트워크 키 서버로부터 수신한 상기 SA 정보와 연관된 후속 암호화 데이터 패킷을 해독하는 단계, 상기 해독하는 단계에 응답하여, 해독이 행하여진, 상기 SA 정보와 연관된 후속 암호화 데이터 패킷에 대하여 보안 기능을 수행하는 단계를 수행하는 명령어를 더 포함할 수 있다.
바람직하게는, 상기 키 서버로 전송된 상기 요청은 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA에 연관된 iCookie 값 및 rCookie 값을 적어도 포함하는 컴퓨터 저장 프로그램 제품이다.
컴퓨터 저장 프로그램 제품은 상기 로컬하게 존재하지 않는 SA 정보에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 드롭하는 단계, 상기 로컬하게 존재하지 않는 SA 정보에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 해독하지 않고, 상기 적어도 하나의 암호화 데이터 패킷을 목적지로 전달하는 단계를 수행하는 명령어를 더 포함할 수 있다.
일 실시예에서, 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 위해 통신 네트워크 보안 실행 지점("SEP")에 보안 연관("SA") 정보를 선택적으로 로딩하는 방법이 제공된다. 상기 방법은, 적어도 하나의 암호화 데이터 패킷을 수신하는 단계를 포함한다. 상기 방법은 상기 적어도 하나의 암호화 데이터 패킷을 해독하기 위한 SA 정보가 상기 SEP에 로컬하게 존재하지 않는지를 결정하는 단계를 더 포함한다. 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보에 대한 요청을 통신 네트워크 키 서버로 전송한다. 상기 적어도 하나의 암호화 데이터 패킷과 연관된 상기 SA 정보는 상기 통신 네트워크 키 서버로부터 수신한다.
다른 일 실시예에서, 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 위해 보안 실행 지점("SEP")에 보안 연관("SA") 정보를 선택적으로 로딩하는 또 다른 방법이 제공된다. 상기 방법은 엔드 포인트 사이의 하나 이상의 엔드-투-엔드 보안 통신 경로에 대한 보안 연관들("SAs")을 보유하는 키 서버를 포함한다. 상기 방법은 제2 엔드 포인트를 포함하는 엔드-투-엔드 보안 통신 경로에 대한 SA를 이용하여, 제1 엔드 포인트로부터 상기 SA와 연관된 SA 정보를 수신하는 단계를 더 포함한다. 상기 SA 정보는 메모리에 저장된다. 상기 방법은 상기 SA에 적어도 하나의 SEP가 관심을 등록했는지를 결정하는 단계를 더 포함한다. 상기 SA 정보는 상기 적어도 하나의 SEP로 전송된다.
또 다른 일 실시예에서, 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 하기 위한 네트워크 요소가 공개된다(disclosed). 상기 네트워크 요소는 메모리와 상기 메모리에 통신 가능하게 결합된 프로세서를 포함한다. 상기 네트워크 요소는 상기 프로세서 및 상기 메모리에 통신 가능하게 결합된 데이터 트래픽 매니저를 더 포함한다. 상기 데이터 트래픽 매니저는 수신된 적어도 하나의 암호화 데이터 패킷을 수신하도록 구성되어 있다. 상기 데이터 트래픽 매니저는 상기 적어도 하나의 암호화 데이터 패킷을 해독하기 위한 SA 정보가 상기 SEP에 로컬하게 존재하는 것에 실패한 것인지를 결정하도록 더 구성되어 있다. 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보를 위해 통신 네트워크 키 서버로 요청이 전송된다. SA를 위해 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보는 상기 통신 네트워크 키 서버로부터 수신된다.
다른 일 실시예에서, 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 위해 통신 네트워크 보안 실행 지점("SEP")에 보안 연관("SA") 정보를 선택적으로 로딩하기 위해 컴퓨터 저장 프로그램 제품이 제공된다. 컴퓨터 저장 프로그램 제품은 적어도 하나의 암호화 데이터 패킷을 수신하는 단계를 수행하게 하는 명령어를 포함한다. 컴퓨터 저장 프로그램 제품은 상기 적어도 하나의 암호화 데이터 패킷을 해독하기 위한 SA 정보가 상기 SEP에 로컬하게 존재하지 않는지를 결정하는 단계를 수행하게 하는 명령어를 더 포함한다. 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보에 대한 요청을 통신 네트워크 키 서버로 전송한다. 상기 적어도 하나의 암호화 데이터 패킷과 연관된 상기 SA 정보는 상기 통신 네트워크 키 서버로부터 수신된다.
본 발명의 다양한 실시예의 장점 중 하나는 보안 실행 지점들이 보안 엔드-투-엔드 통신 경로에서의 횡단하는 암호화 데이터를 검사하는 것이 가능하다는 점이다. 달리 말하면, IP 패킷 필터링(IP packet filtering)과 침입 감지(intrusion detection), 로드 밸런싱(load balancing), 및 서비스의 질(quality of service; "QoS") 설정(settings)과 같은 (그러나 이 예에 제한되지는 않는) 보안 서비스가 일반 텍스트 (해독된) 패킷 페이로드(clear-text (decrypted) packet payloads)에 적용될 수 있게 하기 위해 SEPs는 실행 지점(enforcement point)을 통과하는 트래픽을 검사하고 해독할 수 있다. 예를 들어, IPsec 엔드 포인트들 사이로 정의되는 보안된 통신 경로 내에 배치된(disposed) 보안 실행 지점("SEP")은 키 서버로 보안 암호화 세션(secure encrypted session)을 설정할 수 있다.
일단 보안 암호화 세션이 설정되면, IPsec 탈캡슐화(decapsulation)를 수행하기 위해 SEP에 필요한 SA 정보의 부분은 SEP에 안전하게(securely) 제공될 수 있다. 그 결과로 보안 실행 지점은 대응하는 IPsec 엔드 포인트들로부터 유래하는(originating from) 횡단하는 데이터를 일반 텍스트로 해독하기 위해 수신된 IPsec SAs를 설치할 수 있으며, 비록 보안 실행(security enforcement)이 IPsec 엔드 포인트들 사이에서 설정된 보안 통신 경로의 가운데에 남지만(remains amidst) 보안 실행 지점에 의해서 제공되는 하나 이상의 보안 기능을 수행하기 위해 수신된 IPsec SAs를 설치할 수 있다. 또 다른 장점은 미리 구성된 네트워크의 토포그래픽적 지식(topographical knowledge)은 필요하지 않다는 점과 SA 분배는 SA 또는 SAs의 패밀리(family of SAs)에 대해 명백하게 관심을 표현한 SEPs로 제한된다는 점이다.
선호되는 발명의 일 실시예가 예시를 위한 목적을 위해 첨부된 도면을 참조하여 설명될 것이다.
도 1은 본 발명의 일 실시예에 따른 네트워크 환경(networking environment)의 예를 도시하는 블록도.
도 2 내지 도 5는 본 발명의 일 실시예에 따라, 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 위해 SA 정보를 SEP에 선택적으로 로딩하도록 구성된 네트워크 데이터 프로세싱 시스템의 상이한 예를 도시하는 블록도.
도 6은 본 발명의 일 실시예에 따라, SA 정보를 키 서버에 저장하기 위한 SA 기록 포맷(SA record format)의 예를 도시하는 도면.
도 7은 본 발명의 일 실시예에 따른 정보 프로세싱 시스템을 상세하게 도시하는 블록도.
도 8은 본 발명의 일 실시예에 따라, 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 보안 실행 지점 검사(security enforcement point inspection)의 전체적인 프로세스를 도시하는 동작 흐름도.
도 9-11은 본 발명의 일 실시예에 따라, 암호화 IPsec 패킷(encrypted IPsec packets)의 해독을 위해 SA 정보를 SEP에 선택적으로 로딩하는 것에 대한 다양한 프로세스를 도시하는 동작 흐름도.
본 명세서에서 사용된 부정관사("a" 또는 "an")는 하나 또는 하나 이상을 가리키는 것으로 정의된다. 본 명세서에서 사용된 '복수의'라는 용어는 2 이상을 가리키는 것으로 정의된다. 본 명세서에서 사용된 '또 하나, 다른(another)'은 적어도 2개 이상을 의미하는 것으로 정의된다. 본 명세서에서 사용된 '구비하는' 및/또는 '가지는'의 용어는 '포함하는'(즉, 개방된 언어)의 의미로 정의된다. 본 명세서에서 사용된 '결합된'이라는 용어는 '연결된'의 의미로 사용되며, 반드시 직접적이나 기계적으로 연결되어 있어야함을 의미하지는 않는다. 본 명세서에서 사용된 '프로그램', '소프트웨어 어플리케이션', 및 기타 유사 용어는 컴퓨터 시스템 상에서 실행되도록 설계된 명령어의 시퀀스로 정의된다. 프로그램, 컴퓨터 프로그램 또는 소프트웨어 어플리케이션은 서브 루틴, 함수, 절차, 객체 방법(object method), 객체 구현, 실행 가능한 어플리케이션, 애플릿(applet), 서브렛(servlet), 소스 코드, 객체 코드, 공유된 라이브러리/다이내믹 로드 라이브러리(shared library/dynamic load library) 및/또는 기타 컴퓨터 시스템 상에서 실행되도록 설계된 명령어의 시퀀스를 포함할 수 있다.
네트워크 환경의 예
도 1은 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 보안 실행 지점 검사를 하도록 구성된 네트워크 데이터 프로세싱 시스템(100)의 예를 도시하는 블록도이다. 보안 엔드-투-엔드 통신 경로를 설정하기 위해 사용되는 하나의 프로토콜은 위에서 언급된 바와 같이 IPsec 프로토콜이다. 그러나, 본 발명은 SSH, SSL/TLS와 같은 기타 네트워크 암호화 방식(network encryption schemes)에도 적용 가능하다는 것을 주의해야 한다(그러나 위의 예에만 제한되는 것은 아님). IPsec에서, 인터넷 상의 통신 경로를 통해서 소스와 목적지 노드 사이의 통신은 보안 연관("SA")에 따라 관리될 수 있다. SA는 어떻게 IPsec 프로세싱이 통신에 적용되는지 정의한다. IPsec는 다른 코멘트에 대한 요청(RFC) 가운데 RFC 4301에 의해서 대체된 RFC 2401에서 정의된다.
IPsec에서, IPsec 프로세싱과 함께 또는 IPsec 프로세싱 없이 패킷의 전송이 거부 또는 허용되는지는 보안 정책 데이터베이스(security policy database; "SPD")의 보안 규칙(security rules) 내에서의 패킷의 속성(attributes)을 매칭함으로써 결정된다. 이러한 결정을 내리기 위해, 인터넷 키 교환(Internet Key Exchange; "IKE")의 부분으로서 협상된(negotiated) 보안 정책의 정적 규칙(static rules)과 동적 규칙(dynamic rules) 각각은 RFC 2401에 설명된 바와 같이 SA를 지칭하는데(refers), 발신되는 패킷과 수신되는 패킷에 대해서 가장 구체적인 속성에서부터 가장 덜 구체적인 것의 순서로 필터링된 검색의 대상(be subjected to)이 될 수 있다. 보안 규칙 내에서의 패킷의 속성에 대한 필터링은 보안된 통신(secured communications)에서 이용되는(engaging) 쌍을 이루는 노드(paired nodes)의 소스 및 목적지 주소(address)에 기초할 수 있다.
IPsec는 보안 연관들("SAs")을 설정하는데 2단계 접근(two-phase approach)을 활용한다. SA는 엔드 포인트들 사이에 보안 터널(secure tunnel)을 생성하기 위해서 각각의 엔드(end)에서 인증(authentication) 및/또는 암호화 기술을 적용하기 위한 2개의 엔드 포인트들 사이의 합의(agreement)이다. IPsec 연결(connection)의 제1단계(first phase)에서 제2단계(second phase)의 SAs가 협상될 수 있는 보안 터널을 제공하기 위하여 SA가 구축된다. 제2단계에서는 데이터 트래픽을 보호하는 SAs가 협상된다.
특히, 도 1은 컴퓨터 통신 네트워크(110)를 통해 서버(108)에 통신 가능하게 결합된 하나 이상의 클라이언트 컴퓨팅 장치(102, 104, 106)를 도시한다. 각각의 클라이언트 컴퓨팅 장치(102, 104, 106)는 데스크톱 컴퓨터, 노트북 컴퓨터, 휴대폰, 휴대용 컴퓨팅 장치(hand-held computing device), 서버, 또는 기타 유사 컴퓨팅 장치일 수 있다. 또한, 예를 들어 IPsec를 활용하여 VPN 터널의 설정을 통하여 각각의 클라이언트 컴퓨팅 장치(102, 104, 106)는 서버(108)와 함께 엔드-투-엔드 보안 통신을 위해 구성될 수 있다. 이러한 목적을 위해 보안된 서버(secure server; 112)는 각각의 클라이언트 컴퓨팅 장치(102, 104, 106)와 결합될 수 있으며, 보안된 서버는 클라이언트 컴퓨팅 장치(102, 104, 106)를 대신하여(on behalf of) 서버(108)로 VPN 터널(VPN tunnel)을 설정하는 것을 가능하게 할 수 있다(enabled).
하나 이상의 보안 실행 지점들(116, 118)이 엔드-투-엔드 보안 통신 경로 가운데에 있는 서버(108)에 통신 가능하게 결합될 수 있다. 보안 실행 지점(116, 118)은 패킷 필터링과 침입 감지에서부터 로드 밸런싱과 QoS 관리(QoS management)에 이르기까지의 어떤 몇 가지 보안 기능들을 수행하도록 구성될 수 있다. 도 1에 분명하게 나타나 있듯이 각각의 보안 실행 지점(116, 118)은 키 서버(key server; 120)에 결합될 수 있다. 키 서버(120)는 다시 서버(108)에 결합될 수 있다. 따라서 일 실시예에서, 키 서버(120)는 서버(108)를 통해 보안 서버(112)에 의해 설정된 엔드-투-엔드 보안 통신 경로에 대한 SA(122)의 인식(awareness)을 유지할 수 있다(maintain). SEPs(116, 118)는 직렬로(in serial) 연결될 필요가 없다는 것을 유의해야 한다.
다음은 어떻게 보안 실행 지점(116, 118)이 보안 엔드-투-엔드 통신 경로에서의 횡단하는 암호화 데이터에 대한 검사가 가능한지를 나타내는 개요이다. 일 실시예에서, 엔드-투-엔드 보안 통신 경로는 클라이언트 컴퓨팅 장치(102, 104, 106)의 하나와 서버(108) 사이에서 설정될 수 있다. 엔드-투-엔드 보안 통신 경로를 설정하는 과정에서, 보안 서버(108)에 있는 IKE 데몬(IKE daemon)은 엔드-투-엔드 보안 통신 경로에 대한 IPsec SA를 키 서버(120)에 제공할 수 있다. 일 실시예에서, 서버(108)를 위해서 TCP/IP 스택에 SA를 로딩하기 이전에 엔드-투-엔드 보안 통신 경로는 활성화되며(enabling), 각각의 보안 실행 지점(116, 118)과 키 서버(120) 사이의 VPN 터널과 같은 장기 지속적 보안 링크(long-standing secure link)를 통해 SA가 키 서버(120)에 의해 각각의 보안 실행 지점(116, 118)에 제공될 수 있다. 이 실시예는 아래에서 더 자세하게 설명된다.
최종적으로, 키 서버(120)는 서버(108)에 통지(notify)할 수 있고 서버 컴퓨팅 장치(108)는 SA를 TCP/IP 스택에 로딩할 수 있다. 그러나, SA가 엔드 포인트에서 즉시 설치된 경우 잠재적으로 일부 암호화 패킷은 실행 지점(116, 118)에서 해독 가능하지 않을 수도 있다는 것을 알아야 하는데 그 이유는 실행 지점(116, 118)이 협상된 SA를 아직 갖고 있지 않을 수도 있기 때문이다. 이러한 상황에서, 실행 지점(116, 118)은 수신된 패킷을 폐기하거나(discard) 검사를 거치지 않은 채로 패킷을 보내도록 구성될 수 있다.
그 후, 일반 텍스트 페이로드(clear-text payload; 124)는 암호화 페이로드(encrypted payload; 126)로 변환되며 엔드-투-엔드 보안 통신 경로를 통해 서버(108)로 전송되며 그곳에서 암호화 페이로드(128)는 일반 텍스트로 해독될 수 있다. 그러나 각각의 보안 실행 지점들(116, 118) 사이에서 엔드-투-엔드 보안 통신 경로를 위해 암호화 페이로드(128)는 SA(122)에 의해서 제공된 지식(knowledge)을 통해 연관된 보안 기능들을 수행하는데 사용되기 위해 해독될 수 있다. 그 결과로, 중간에(intermediately) 배치된 보안 실행 지점(116, 118)은 클라이언트 컴퓨팅 장치(102, 104, 106)에 대한 지식을 요구하지 않고, 보안 실행 지점(116, 118)에 대한 지식을 클라이언트 컴퓨팅 장치(102, 104, 106) 또는 서버(108)가 가질 것을 요구하지 않으면서 해독된 일반 텍스트에 보안 기능들을 수행할 수 있다.
SA 정보를 보안 실행 지점에 선택적으로 로딩
보안 엔드-투-엔드 통신 경로에서 횡단하는 암호화 데이터에 대한 검사를 할 수 있도록 보안 실행 지점에 SA 정보를 선택적으로 로딩하는 것에 관한 상세한 설명이 후술될 것이다. 도 6에서 도시된 바와 같이 SAs와 연관된 정보는 키 서버(120)에서 등록될 수 있다. SEP(116)가 2개의 엔드 포인트 사이의 주어진 SA(예를 들어 보안 서버(112)와 서버(108))를 통하여 통신하는(communicated) 트래픽을 수신할 때 SEP(116)가 패킷을 해독하는데 필요한 SA 정보에 액세스를 가질 수 있도록 SEP(116)는 키 서버(120)와 함께 세션을 설정한다.
특히, 본 발명의 다양한 실시예는 SEP와 키 서버(120) 사이에 메시지의 세트를 교환하기 위해 각각의 SEP(116, 118)와 키 서버(120) 사이에 존재하는 수명이 긴 암호화 세션(long-lived encrypted session)을 활용한다. 이러한 메시지의 교환(messaging exchange)은 그 특정 SA를 통해 통신하는 트래픽을 해독하는데 필요한 SA 정보를 SEP(116, 118)가 획득하도록 허용한다. 이러한 메시지의 교환은 다양한 상황에서 발생할 수 있는데 예를 들어(그러나 이러한 예에 국한되지 않는다) 1.) SEP가 인식하지(recognize) 못하는 IPsec (AH 또는 ESP) SA가 제시되었을 때; 2.) SEP가 이미 잘 알고 있는 새로운 IPsec (AH 또는 ESP) SA가 IKE SA 하에서 협상될 때; 3.) 새로운 IKE 보안 연관이 사용중이거나 협상중인 것을 SEP가 인식할 때를 들 수 있다. IKE는 IPsec와 함께 SA를 설정하는데 사용하는 인터넷 키 교환(Internet Key Exchange) 프로토콜이다.
도 2는 보안 엔드-투-엔드 통신 경로를 통해 통신하는 암호화 트래픽을 프로세싱하기 위한 SA 정보를 하나 이상의 SEPs에 선택적으로 로딩하는 예를 도시한다. 특히, 도 2는 보안 엔드-투-엔드 통신 경로를 통해 서로 통신하려고 시도하는, 알려진 IPsec 엔드 포인트(known IPsec endpoint; 212)와 원격 IPsec 엔드 포인트(remote IPsec endpoint; 208)를 도시한다. 도 2에서 IPsec 단계 1 세션(IPsec phase 1 session) 또는 IKE SA가 이미 엔드 포인트(212, 208) 사이에서 설정되었다는 것과 암호화 세션이 알려진 IPsec 엔드 포인트(212)와 키 서버(220) 사이에서 설정되었다는 것을 알아야 한다. 또한, 위에서 설명된 바와 같이 영구적인 보안 세션(persistent secure session)이 전송 계층 보안(transport layer security; TLS) 세션을 통해 SEP(216)와 키 서버(220) 사이에 설정되는 것으로 추정된다. 따라서, 도 2에서는 엔드-투-엔드 보안 통신 경로는 IPsec 엔드 포인트(212, 208) 사이 뿐만 아니라 별도로 SEP(216)와 키 서버(220) 사이에도 존재한다.
일 실시예에서, 키 서버(220)는 SA 매니저(SA manager; 230)와 SA 세션과 연관된 정보 기록(information records; 234)을 포함하는 데이터베이스(232)를 포함한다. 예를 들어, 도 6은 데이터베이스(232)에 의해서 유지되는 SA 정보 기록(234)의 종류의 예를 도시한다. 일 실시예에서, 일단 새로운 SA가 성공적으로 협상되면 IPsec 엔드 포인트(212, 208)는 이 정보를 키 서버(220)에 전송한다. 키 서버(220)는 다음 이 정보를 나중에 참조하기 위해 데이터베이스(232)에 저장한다. 엔드 포인트(212, 208)로부터 키 서버(220)에 전송된 정보는 엔드 포인트 ID(endpoint ID), I-쿠키(I-Cookie), R-쿠키(R-Cookie), 및 IPsec SA 그룹 ID 정보(IPsec SA Group ID information)를 포함하는 주요 키(primary key; 636)를 더 포함할 수 있다. 엔드 포인트 ID는 SA 정보를 전송하는 엔드 포인트를 고유하게 식별한다. iCookie (개시자)와 rCookie (응답자)는 단계 1 SA(phase 1 SA)의 막바지 부분에서 각각의 엔드 포인트(212, 208)에 의해서 지정되는 값이다. 이는 단계 2 SA(phase 2 SA)가 협상될 수 있도록 해주고 단계 1 SA를 고유하게 식별할 수 있도록 해준다. IPsec SA 그룹 ID 필드(IPsec SA Group ID field)는 단계 2 SAs를 위해서만 채워지며(populated), 특정 엔드 포인트가 연관되어 있는 현재의 SA 그룹을 식별한다.
SA 정보 기록(234)은 모든 SAs에 대해 유지되는 보조 데이터(auxiliary data; 638)도 포함한다. 이 보조 데이터(638)는 SA의 생성 시간, SA의 수명(life time of the SA), SA의 실제 크기(life size of the SA), SA의 로컬 보안 IP 주소(local security IP address), SA의 원격 보안 IP 주소(remote security IP address), SA의 임시 ID(instant ID), SA의 종류(SA type)를 포함할 수 있다(그러나 이에 제한되지 않는다). 단계 1 SA 정보(Phase 1 SA information; 640)도 각각의 SA에 대해서 유지된다. 이 단계 1 SA 정보(640)는 IKE 터널 ID(IKE Tunnel ID), UDP Encap 포트(UDP Encap port), 로컬 ID 종류(Local ID type), 로컬 ID 길이(Local ID length), 원격 ID 종류(Remote ID type), 원격 IP 길이(Remote IP Length), 로컬 식별자(Local Identifier), 및 원격 식별자(Remote Identifier)와 같은 정보를 포함할 수 있다(그러나 이에 제한되지 않는다). SA 정보 기록(234)은 단계 2 SA 정보(Phase 2 SA information; 642)를 가지는 특정 필드를 포함하여 채운다.
이 단계 2 SA 정보(642)는 IPsec 터널 ID(IPsec Tunnel ID), 소스 데이터 IP 주소(Source Data IP Address), 목적지 데이터 IP 주소(Destination Data IP Address), 소스 포트 로우(Source Port Low), 소스 포트 하이(Source Port Hi), 목적지 포트 로우(Destination Port Low), 목적지 포트 하이(Destination Port Hi), 인바운드 AH 보안 파라미터 색인(Inbound AH SPI; Inbound AH Security Parameter Index), 아웃바운드 AH SPI(Outbound AH SPI), 인바운드 ESP SPI(Inbound ESP SPI), 아웃바운드 ESP SPI(Outbound ESP SPI), 인증 알고리즘(Authentication Algorithm), 암호화 알고리즘(Encryption Algorithm), 인증 키 길이(Authentication Key Length), 암호화 키 길이(Encryption Key Length), 인증 세션 키(Authentication Session Key), 암호화 세션 키(Encryption Session Key), 및 관심 있는 SEPs의 목록(List of Interested SEPs)을 포함할 수 있다(그러나 이에 제한되지 않는다). 식별자(identifiers), 암호화 파라미터 및 키(encryption parameters and keys), 인증 파라미터 및 키(authentication parameters and keys)를 포함하는(그러나 이에 제한되지 않는) 데이터베이스(232) 내에 포함되어 있는 상기 정보의 서브셋(subset)은 관심 있는 SEP로 전송된다. 이는 SEP로 하여금 그것을 통해 흐르는 트래픽을 해독하게 한다. 이러한 프로세스는 뒤에서 더 자세하게 설명될 것이다.
도 2로 돌아가서, SEP(216)는 엔드 포인트로부터 수신되는 데이터 트래픽을 관리하고 모니터링하는 트래픽 매니저(traffic manager; 244)를 포함한다. 일 실시예에서 트래픽 매니저(244)는 데이터 트래픽과 연관되어 있는 SA 정보를 분석하고, 키 서버(220)와 통신하기 위한 SA 매니저(246)를 포함한다. 도 2의 예에서, SEP(216)는 시간 Tl에서 원격 IPsec 엔드 포인트(208)와 같은 IPsec 엔드 포인트로부터 데이터 트래픽을 수신한다. 트래픽 매니저(244)는 IPsec 트래픽(IPsec traffic)인지를 결정하기 위해서 데이터 트래픽을 분석한다. 예를 들어, 원격 IPsec 엔드 포인트(208)는 IPsec SA를(인증 헤더(Authentication Header; "AH") 또는 캡슐 보안 페이로드(Encapsulating Security Payload; "ESP")를 포함하는) SEP(216)에 전송할 수 있다. 도 2의 예에서, 트래픽 매니저(244)는 원격 IPsec 엔드 포인트(208)로부터 수신한 트래픽이 IPsec 트래픽인지 결정한다. 트래픽 매니저(244)는 IPsec 트래픽 내의 SPI/프로토콜/destinationIPaddr 정보(SPI/protocol/destinationIPaddr information)와 같은 정보를 분석하고 이 정보와 연관된 IPsec SA에 대해서 알지 못한다는 결정을 한다. 즉, SA 매니저(246)는 이 특정 SA에 대한 데이터 트래픽을 해독하기 위해 필요한 정보를 갖고 있지 않다는 것을 의미한다.
일단 SEP(216)가 알지 못하는 SA를 감지하면 트래픽(예를 들어, 데이터 패킷)으로 하여금 패킷을 드롭하거나 검사되지 않은 채 통과되게 할 수 있다. SEP(216)는 이러한 동작(actions) 중의 하나를 수행하도록 사전에 구성될 수 있다. 도 2는 SEP(216)가 시간 T2에서 데이터 패킷을 드롭하는 것을 도시하는데 이는 원래의 엔드 포인트(originating endpoint)(예를 들어, 원격 IPsec 엔드 포인트(208))로 하여금 결국 패킷을 재전송하게 한다. 일단 트래픽 매니저(244)가 데이터 패킷을 드롭하거나 검사되지 않은 채 통과시키는 것을 허용하면, 시간 T3에서 SA 매니저(246)는 이 특정 SA에 대한 SA 정보를 갖고 있는지 결정하기 위해 키 서버(220)에 쿼리한다(queries). 예를 들어 일 실시예에서 SA 매니저(246)는 SPI/프로토콜/destinationIPaddr 정보를 포함하는 "탐색 SA(discover SA)" 메시지를 SEP(216)와 키 서버(220) 사이에 존재하는 암호화 세션을 통해 키 서버(220)로 전송한다. 달리 설명하면, SEP(216)는 키 서버(220)에서 관심을 등록하거나 그 특정 SA에 대한 SA 정보를 수신하기 위해 키 서버(220)에 가입한다(subscribes). 이는 SEP(216)로 하여금 IPsec 데이터 패킷(들)(IPsec data packet(s))을 해독하는데 필요한 정보를 동적으로 획득(dynamically acquire)할 수 있도록 허용한다.
만일 키 서버(220)가 이 특정 SA를 위해 그 데이터베이스(232) 내에 SA 정보를 포함한다면, 키 서버(220)에 있는 SA 매니저(230)는 그 데이터베이스(232)로부터 SA 정보를 추출하여, 시간 T4에서 SEP(216)에 IPsec SA 콘텐츠(IPsec SA contents)를 반환한다(returns). 키 서버(220)는 설정된 정책(configured policy)에 기초하여 다른 동작도 수행할 수 있다. 예를 들어, 키 서버(220)는 IPsec SA가 협상되었던 바로 그 IKE SA의 iCookie/rCookie를 반환할 수 있다. 이는 SEP(216)에 유용한데 그 이유는 IKE SA와 연관된 다른 트래픽이 나중에 이 SEP(216)를 통과할 가능성이 높기 때문이다. 이는 연관된 IKE SA에 관한 SEP(216)로부터 암시된(implied) "SA 관심 등록(SA interest registration)"을 본질적으로 구성한다.
일단 키 서버(220)에서 이 등록을 위한 준비가 되면 연관된 IKE SA 하에서 협상된 임의의 새로운 IPsec SAs는 자동적으로 SEP(216)로 전달된다. 일 실시예에서, 키 서버(220)에 있는 SA 매니저(230)는 SAs에 대한 SEP 구독/등록된 관심(SEP subscriptions/registered interests)과 임의의 연관된 SAs를 관리하고 유지한다. 키 서버(220)는 그러한 SAs에 의해서 보호된 데이터도 마찬가지로 SEP(216)를 통해 흐를 것이라는 기대에 IKE SA와 연관된 기타 모든 알려진 IPsec SAs에 대한 SA 정보를 반환할 수 있다.
키 서버(220)로부터 "탐색 SA" 응답 메시지를 수신하면 SEP(216)는 그 로컬 데이터베이스(248)에 SA 콘텐츠(249)를 저장한다. 이 시점 이후부터 SEP(216)는 SEP(216)를 통해 AH 또는 ESP SA에 흐르는 임의의 데이터 트래픽을 탈 캡슐화(de-capsulate)하는데 이 SA에 있는 키를 사용할 수 있다. 마찬가지로, 키 서버(220)의 설정된 정책에 기초하여 반환된 임의의 기타 SA 정보에 대해서 유사한 항목들(entries)이 SEP의 로컬 데이터베이스(248)에서 생성된다.
도 3은 보안 엔드-투-엔드 통신 경로를 통해 통신하는 암호화 트래픽을 프로세싱하기 위해 SA 정보를 포함하는 하나 이상의 SEPs를 선택적으로 로딩하는 것에 대한 다른 예를 도시한다. 도 3은 특히, 도 3과 유사한 보안 엔드-투-엔드 통신 경로를 통해 서로 통신하려고 시도하는, 알려진 IPsec 엔드 포인트(312)와 원격 IPsec 엔드 포인트(308)를 도시한다. 도 3에서 IPsec 단계 1 세션 또는 IKE SA가 이미 엔드 포인트(312, 308) 사이에서 설정되었고 암호화 세션이 알려진 IPsec 엔드 포인트(312)와 키 서버(320) 사이에서 설정되었다. 또한, 위에서 설명된 바와 같이 SEP(316)와 키 서버(320) 사이에 영구적인 보안 세션이 도 3에도 존재한다.
시간 Tl에서, 도 3에 도시된 원격 IPsec 엔드 포인트(308)와 알려진 IPsec 엔드 포인트(312)는 이미 설정된 IKE SA (예를 들어, VPN 터널)를 가로질러(across) 새로운 IPsec SA를 협상한다. 협상이 완료되면, 알려진 IPsec 엔드 포인트(312)는 시간 T2에서 새로운 SPI/protocol/destinationIPaddr 정보, 새로운 SA 콘텐츠는 물론 연관된 iCookie/rCookie 정보(associated iCookie/rCookie information)를 포함하는 "SA 저장"이라는 메시지를 암호화 세션을 통해 키 서버(320)로 전송한다. 메시지를 수신하면, 키 서버(320) 내의 SA 매니저(330)는 위에서 도 5와 관련하여 설명된 포맷으로 SA를 로컬 데이터베이스(332)에 저장한다.
키 서버(320) 내의 SA 매니저(330)는 이 새로운 SA 정보로 선택적으로 로딩될 임의의 SEPs(316)를 식별하기 위해 등록된 관심/가입자 정보(interest/subscriber information)도 분석한다. 만일 SA 매니저(330)가 관심있는 임의의 SEPs(316)를 식별하면 SA 매니저(330)는 시간 T3에서 등록/가입자 SEP(registered/subscriber SEP; 316, 318)로 "새로운 SA" 메시지를 전송한다. 일 실시예에서, "새로운 SA" 메시지는 새로운 SPI/protocol/destinationIPaddr 정보, 새로운 SA 콘텐츠, 연관된 iCookie, rCookie 정보를 포함한다(그러나 이 예에 제한되지 않음). 이 정보는 키 서버(320)와 SEPs(316) 사이에 존재하는 암호화 세션을 통하여 SEPs(316)로 전송된다.
이 메시지를 수신하면, SEP(316)는 SA 콘텐츠(349)를 로컬 데이터베이스(348)에 저장한다. 이는 특정 IPsec SA를 가로질러 SEP(316)를 통하여 흐르는 임의의 데이터 트래픽을 탈 캡슐화하기 위해 이 SA에서 SEP(316)가 키를 사용하게 하는 것을 허용한다. 달리 말하면 도 3의 예에 나타나듯이 그 특정 IPsec SA를 위하여 SEP(316)에서 데이터 트래픽이 수신되기 이전에, SA 정보는 키 서버(320)로부터 관심 SEP(316)로 전송된다.
도 4는 하나 이상의 SA 정보를 포함하는 SEPs를 선택적으로 로딩하는 것에 대한 또 다른 예를 도시한다. 특히 도 4는 인식되지 않은 개시자 쿠키(Initiator Cookie; iCookie)와 인식되지 않은 응답자 쿠키(Responder Cookie; rCookie)를 포함하는 IKE 메시지를 SEP(416)가 감지할 때 SA 정보를 포함하는 SEP(416)를 선택적으로 로딩하는 방법을 도시한다. SEP(416)는 이러한 인식되지 않은 쿠키들을 새로운 IKE SA의 협상 중 또는 인식되지 않은 IKE SA하에서 새로운 IPsec SA의 협상 중에 감지할 수 있다. SEP(416)가 인식되지 않은 쿠키들을 감지하면 (iCookie/rCookie에 의해서 식별된) SA에 대한 관심을 표시하는 키 서버(420)로 메시지를 전송한다. 키 서버(420)는 다음에 새로운 IKE SA를 위해 로컬 데이터베이스(432)에 새로운 항목을 생성하고 SEP(416)를 그 특정 SA에 관심이 있는 SEPs의 리스트에 추가한다. 그 시점 이후부터는, IKE SA 하에서 설정된 임의의 새로운 IPsec SAs는 관심 SEP(416)로 자동적으로 전달된다.
예를 들어 도 4는 시간 Tl에서 원격 IPsec 엔드 포인트(408)(또는 알려진 IPsec 엔드 포인트(412))가 알려진 IPsec 엔드 포인트와 단계 1 협상(phase 1 negotiation)을 시작하는 것을 도시하고 있다. 대안적으로, 2개의 IPsec 엔드 포인트(412, 408)는 SEP(416)가 인식하지 않는(예를 들어, iCookie/rCookie는 인식되지 않음) IKE SA를 이용하여 단계 2 협상(phase 2 negotiation)의 일환으로서 IKE 퀵 모드 메시지(IKE Quick Mode message)를 교환한다. SEP(416)에서의 SA 매니저(446)는 새로운 IKE SA 식별자(IKE SA identifier)를 감지하며 ISAKMP 헤더(ISAKMP header)로부터 iCookie와 rCookie 값을 추출한다. SEP(416)에서의 SA 매니저(446)는 시간 T2에서 그 암호화 세션의 "SA 관심 등록" 메시지로 iCookie와 rCookie 값을 키 서버(420)로 전송한다. SEP(416)은 그 다음에 수신된 데이터 패킷을 타겟 IPsec 엔드 포인트(target IPsec endpoint)로 전달한다.
키 서버(420)가 SEP(416)로부터 등록 요청(registration request)을 수신하면 키 서버는 새로운 IKE SA를 위해 새로운 SA 항목을 SA 데이터베이스(432)에 생성한다. 키 서버(420)는 SEP(416)를 전송하는 것에 이 특정 IKE SA와 연관되어 있는 임의의 IPsec (AH 또는 ESP) SAs가 관심이 있다는 것을 주목한다. 키 서버(420)는 성공적으로 협상하는 것에 실패한 IKE SAs가 키 서버 데이터베이스(432)에서 궁극적으로 정리될 수 있도록 새로 등록된 IKE SA에 대한 일종의 활동 시간 초과(activity timeout)와 같은 것을 구현하도록 선택할 수 있다는 것을 알아야 한다. 이 정리의 일환으로서, 키 서버(420)는 SEPs가 그들의 로컬 저장소(448)로부터 SA를 제거할 수 있도록 하기 위해 IKE SA가 드롭된다는 것을 모든 관심 SEPs에 선택적으로 통지(notification)를 전송할 수 있다.
도 5는 위에서 도 2와 관련하여 설명된 프로세스의 변화를 도시한다. 특히 도 5는 네트워크 내에서 IP 라우팅의 변화로 인해 발생한 도 2의 특수한 경우에 대한 예를 도시한다. 도 5에서 네트워크를 통해 패킷을 라우팅하는 것은 어떤 이유로 변경되어 새로운 SEP(518)가 그것을 통과하여 흐르는 SAs의 지식(knowledge)을 동적으로(dynamically) 획득한다. SEP는 도 2와 마찬가지로 SEP(518)는 알려지지 않은 AH 또는 ESP SA (시간 Tl에서)에 대한 SPI/protocol/destinationIPaddr과 갑자기 직면하게 된다. 위에 설명한 바와 같이, (시간 T2에서) 패킷을 드롭하거나 허용하는 선택이 이루어져야 하며, 그 다음에 SEP(518)는 (시간 T3에서) 인식되지 않은 SA에 대해서 알고 있는지 키 서버에 질의한다(asks). 만일 SA가 키 서버(520)가 알고 있는 것인 경우에는, 그 SA에 대한 정보를 전송하고 또한 연관된 IKE SA와 기타 관련된 IPsec SAs에 대한 정보도 전송할 수 있다.
위의 예 이외에, 키 서버(120)는 IPsec 엔드 포인트 사이에서 발생하는 IKE 재전송(IKE retransmissions)의 수를 최소화할 수 있다는 것을 알아야 한다. 특히, 키 서버(120)는 SEP(116)가 그 SA에 데이터 트래픽이 흐르기 시작하기 전에 IPsec SA가 제자리에 있다(in place)는 것을 보장하기 위하여 IKE 피어스(IKE peers) 사이의 최종 퀵 모드 메시지(final Quick Mode message)의 교환을 효과적으로 중지할 수 있다(suspend). 일 실시예에서 키 서버(120)는 IPsec 엔드 포인트(108, 112)로부터의 "SA 저장(store SA)" 메시지에 응답하기 전에 "새로운 SA" 메시지를 SEP(116)에 전송함으로써 이를 성취한다. 키 서버(120)는 SEP(116)로의 전송이 완료되기만을 기다리면 되며 SEP(116)로부터의 응답을 기다릴 필요는 없다는 것을 유의해야 한다. 알려진 IPsec 엔드 포인트(112)가 개시자(initiator)일 때, 이는 알려진 IPsec 엔드 포인트가 퀵 모드 메시지 3(Quick Mode message 3)을 그 피어(peer)에게 전송하기 전에 발생한다. 알려진 IPsec 엔드 포인트(112)가 응답자(responder)일 때는 위의 경우는 알려진 IPsec 엔드 포인트(112)가 퀵 모드 메시지 4(커밋 비트 지원(commit bit support)을 이용하는 경우) 또는 메시지 2(커밋 비트 지원이 없는 경우)를 피어에 전송하기 전에 발생한다.
앞서 언급한 본 발명의 실시예는 보안 엔드-투-엔드 통신 경로를 통해 통신하는 데이터 패킷을 해독하기 위해 SEPs에 선택적으로 SA 정보가 로딩될 수 있기 때문에 유리하다. 이는 관심 SEPs로 하여금 데이터 패킷을 해독하기 위한 SA 정보를 획득하게 하고 원하는 작업을 수행하게 한다. 또 다른 유리한 점은 오직 관심 SEPs에만 SA 정보가 선택적으로 로딩된다는 점이다. 이는 SA 정보가 그 정보를 요구하지 않는 SEPs에 불필요하게 제공되는(released) 것을 방지하고 그렇게 함으로써 SA 정보의 취약성을 감소시킬 수 있다.
정보 프로세싱 노드의 예
도 7은 본 발명의 일 실시예에 따라 SEP(116) 또는 키 서버(120)와 같은 정보 프로세싱 노드(700)를 상세하게 도시한 블록도이다. 후술할 내용은 SEP(116)에 관한 것이지만 마찬가지로 위에서 설명한 각각의 구성 요소를 제외한 키 서버(120)에도 적용가능하다는 것을 유의해야 한다.
정보 프로세싱 노드(700)는 컴퓨터(702)를 포함한다. 컴퓨터(702)는 주 메모리(706), 대용량 저장소 인터페이스(mass storage interface; 708), 터미널 인터페이스(710), 네트워크 어댑터 하드웨어(712)에 연결된 프로세서(704)를 포함한다. 시스템 버스(714)는 이러한 시스템 구성 요소를 상호연결한다. 대용량 저장소 인터페이스(708)는 데이터 저장 장치(data storage device; 716)와 같은 대용량 저장 장치를 정보 프로세싱 시스템(information processing system; 700)에 연결하기 위해 사용된다. 데이터 저장 장치의 구체적인 유형에는 그것에 데이터를 저장하고 그로부터 데이터를 판독하기 위해 사용하는 하드 디스크 드라이브 또는 기타 저장 드라이브, 플래시 메모리, 비휘발성 메모리, 광 디스크, CD(718) 또는 DVD(도시되지 않음)와 같은 컴퓨터 판독 가능 매체가 있다. 데이터 저장 장치의 또 다른 예는 네트워크 요소(network element)로서 NTFS 유형 파일 시스템 작업(NTFS type file system operations)을 지원하도록 구성된 데이터 저장 장치를 들 수 있다.
일 실시예에서, 주 메모리(706)는 트래픽 매니저(244), SA 매니저(246), (SA 콘텐츠(249)를 포함하는) SA 콘텐츠 데이터베이스(248)를 포함한다. 비록 주 메모리(706)에 함께 상주하는(concurrently resident) 것으로 도시되어 있지만 주 메모리(706)의 각각의 구성 요소는 주 메모리(706)에 항상 또는 바로 동시에 완전히 상주할 것이 요구되지는 않는다. 일 실시예에서, 정보 프로세싱 노드(700)는 주 메모리(706), 데이터 저장 장치(716)와 같은 복수의 작은 저장소 항목에 대한 액세스 대신에, 본 명세서에서 컴퓨터 시스템 메모리로 지칭되는 대규모, 단일 저장소 항목(large, single storage entity)에 액세스를 갖는 것처럼 프로그램이 동작하게 하도록 통상적인 가상 어드레싱 메커니즘(conventional virtual addressing mechanisms)을 이용한다. 본 명세서에서 "컴퓨터 시스템 메모리"라는 용어는 정보 프로세싱 노드(700)의 전체 가상 메모리를 총칭하는 것으로 사용됨을 유의해야 한다.
비록 컴퓨터(702)에 대한 하나의 CPU(704)만이 도시되었지만 복수의 CPU를 가지는 컴퓨터 시스템도 동일하게 효과적으로 사용될 수 있다. 본 발명에 대한 다양한 실시예는 CPU(704)로부터 오프 로드 프로세싱(off-load processing)을 하는데 이용되는 별개의, 완전히 프로그래밍된 마이크로프로세서(separate, fully programmed microprocessors)를 각각 포함하는 인터페이스를 더 통합한다(incorporate). 컴퓨터(702)에 사용자 인터페이스를 제공하기 위해 터미널 인터페이스(710)가 컴퓨터(702)에 하나 이상의 터미널(720)을 직접적으로 연결하는데 사용된다. 비 지능형(non-intelligent) 또는 완전히 프로그램 가능한 워크 스테이션(fully programmable workstations)이 될 수 있는 이러한 터미널들(720)은 시스템 관리자 및 사용자가 정보 프로세싱 노드(700)와 통신하는 것을 허용하기 위해 사용된다. 터미널(720)은 또한 컴퓨터(702)에 연결된 사용자 인터페이스와 주변 장치에 의해 구성될 수 있으며, 비디오 어댑터, 키보드를 위한 인터페이스, 포인팅 장치(pointing devices), 및 기타 장치/인터페이스를 포함하는 터미널 I/F(710)에 포함되는 터미널 인터페이스 하드웨어에 의해서 제어될 수 있다.
주 메모리에 포함된 운영 체제(도시되지 않음), 즉 Linux, UNIX, Windows XP, 및 Windows Server 2003과 같은 운영체제(그러나 이 예에 제한되지 않음)는 멀티태스킹하는데 적합한 운영 체제이다. 본 발명의 다양한 실시예는 기타 다른 적합한 운영 체제도 사용할 수 있다. 본 발명의 일 실시예에서는 운영 체제의 구성 요소의 명령어(도시되지 않음)가 정보 프로세싱 노드(700) 내에 위치한 임의의 프로세서에 의해서 실행될 수 있도록 객체 지향적 프레임워크 메커니즘(object oriented framework mechanism)과 같은 아키택쳐를 활용한다. 네트워크 어댑터 하드웨어(712)는 네트워크(110)에 인터페이스를 제공하기 위해 사용된다. 본 발명의 다양한 일 실시예는 현재의 아날로그 및/또는 디지털 기술은 물론 미래의 네트워킹 메커니즘(future networking mechanism)도 포함하는 임의의 데이터 통신 연결(data communications connections)과 작업할 수 있도록 적용될 수 있다.
비록 본 발명의 실시예가 완벽하게 동작하는 컴퓨터 시스템과 관련하여 설명되었지만 해당 기술 분야의 당업자는 다양한 실시예가 CD 또는 DVD를 통한 컴퓨터 저장 프로그램 제품, 예를 들어 CD(718), CD ROM, 또는 기타 형태의 기록 가능 매체, 또는 임의의 형태의 전자 전송 메커니즘(electronic transmission mechanism)을 통해서도 분배되는 것이 가능하다는 것을 인식할 수 있다. 일반적으로 컴퓨터 저장 프로그램 제품은 메모리 장치 및/또는 저장 장치 및/또는 컴퓨터 판독 가능 매체에 의해 제공되는, 프로그램의 부분이 될 수 있는 변수와 데이터 구조를 포함하는 프로그램을 지칭한다.
암호화 데이터의 SEP 검사에 대한 동작 흐름
도 8은 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 보안 실행 지점 검사의 프로세스를 도시하는 동작 흐름도이다. 도 8의 동작 흐름도는 단계(802)에서 시작하여 직접 단계(804)로 향한다. 단계(804)에서 다른 IPsec 엔드 포인트(108)와 VPN 터널을 설정하는 동안에 IPsec 엔드 포인트(112)로부터 IPsec SA를 키 서버(120)에서 수신할 수 있다. 단계(806)에서, 중간에 배치된(intermediately disposed) 첫 번째 보안 실행 지점은 엔드-투-엔드 보안 통신 경로에서 식별될 수 있다. 일단 단계(808)에서 SEP(116)가 식별되면, SEP(116)는 영구적인 보안 세션을 설정하는데, 이는 엔드-투-엔드 보안 통신 경로가 양 IPsec 엔드 포인트(108, 112) 사이에 존재하게 하는 것 뿐만 아니라 SEP(116)와 키 서버(120) 사이에 따로 떨어져서도 존재할 수 있게 하기 위해 전송 계층 보안(transport layer security; TLS) 세션과 같은 것을 통해 키 서버(120)에 의해서도 (이미 설정되지 않았다면) 설정되게 할 수 있다.
IPsec 엔드 포인트(108, 112) 사이의 엔드-투-엔드 보안 통신 경로에 대한 IPsec SA는 단계(810)에서 키 서버(120)와 SEP(116) 사이의 분리된 엔드-투-엔드 보안 통신 경로를 가로질러 SEP(116)에 제공될 수 있다. 그 후 단계(812)에서, IPsec 엔드 포인트(108, 112)의 중간에 있는(intermediate) 추가적인 SEPs가 프로세스되기 위해 남아있다면, 다음 SEP가 단계(814)에서 검색될 수 있으며(retrieved) 단계(808)에서 시작하는 프로세스가 반복된다. IPsec 엔드 포인트(108, 112)의 중간에 프로세스되어야 할 SEPs가 남아있지 않으면 단계(816)에서 IPsec 엔드 포인트(112)로 하여금 엔드-투-엔드 보안 통신 경로에 대한 SA의 설치를 완료할 것을 신호할 수 있으며, IPsec 엔드 포인트를 위해 SA에 통합된 세션 키 지식(session key knowledge)으로 인해 IPsec 엔드 포인트(108, 112) 사이에서 전송되는 암호화 데이터에 SEPs(116)는 보안 기능을 수행할 수 있다.
선택적으로, SEP(116)에 제공된 SA는 SEP(116)를 횡단하는 암호화 데이터 내의 일반 텍스트를 SEP(116)가 액세스 가능하게 하는 암호화 키를 포함할 수 있는 반면, 세션 인증 키는 포함되지 않을 수 있다(withheld). 이와 관련해서, 세션 인증 키를 포함하지 않음에 따라, 본질적으로 SEP(116)에 제공된 암호화 데이터로부터 해독된 일반 텍스트는 세션 인증 키 없이는 실질적으로 "판독 전용"이며, SEP(116)는 일반 텍스트의 콘텐츠를 변경하기 위한 권한이 없다. 역으로, 일반 텍스트의 선택된 부분을 삭제하거나 차단하는 것을 포함하는 일반 텍스트의 변경을 허용하기 위해 세션 인증 키가 SEP(116)에 제공될 수 있다. 이 제어 흐름은 단계(818)에서 종료된다.
SEPs를 SA 정보로 선택적으로 로딩하기 위한 동작 흐름
도 9-11은 SA 정보를 SEPs에 선택적으로 로딩하는 다양한 프로세스를 도시하는 동작 흐름도이다. 도 9의 동작 흐름도는 단계(902)에서 시작하여 직접 단계(904)로 향한다. 단계(904)에서 엔드 포인트 노드(112)는 SEP(116)에 데이터를 전송한다. 단계(906)에서 SEP(116)는 데이터 패킷을 분석한다. 단계(908)에서 SEP(116)는 수신된 패킷이 IPsec 패킷인지 결정한다. 이 결정의 결과가 부정적이면 제어 흐름은 단계(910)에서 종료된다. 이 결정의 결과가 긍정적이면 단계(912)에서 SEP(116)는 수신된 IPsec 패킷에 대한 SA 정보가 로컬하게 이용 가능한지를 결정한다.
이 결정의 결과가 긍정적이면 단계(914)에서 SEP(116)는 로컬 SA 정보를 사용하여 IPsec 패킷을 해독한다. 단계(916)에서 SEP(116)는 침입 감지와 같은 다양한 작업을 수행한다. 제어 흐름은 단계(918)에서 종료된다. 이 결정의 결과가 부정적이면 단계(920)에서 SEP(116)는 패킷을 드롭하거나 검사되지 않은 채 통과하는 것을 허용한다. 단계(922)에서 SEP(116)는 수신된 패킷과 연관된 SA 콘텐츠에 대한 관심을 등록하기 위해 하나 이상의 키 서버(120)로 요청을 전송한다. 단계(924)에서 키 서버(120)는 그 데이터베이스(232)를 분석한다. 다음에 단계(926)에서 키 서버(120)는 이 IPsec 패킷에 대해 SA 콘텐츠가 로컬하게 있는지를 결정한다.
이 결정의 결과가 부정적이면 단계(928)에서 키 서버(120)는 IPsec 패킷에 대한 SA 콘텐츠를 포함하고 있지 않다는 것을 SEP(116)에게 알린다. 제어 흐름은 단계(930)에서 종료된다. 이 결정의 결과가 긍정적이면 단계(932)에서 키 서버(120)는 SEP(116)로 SA 정보를 전송한다. 단계(934)에서 SEP(116)는 로컬하게 정보를 저장한다. 이는 SEP로 하여금 최초로 수신된 IPsec 패킷의 SA와 연관된 임의의 후속 패킷에 대해 해독할 수 있게 한다. 제어 흐름은 단계(936)에서 종료된다.
도 10은 SA 정보를 SEPs에 선택적으로 로딩하는 추가적인 프로세스를 도시하는 다른 동작 흐름도이다. 도 10의 동작 흐름도는 단계(1002)에서 시작하여 직접 단계(1004)로 향한다. 단계(1004)에서 엔드 포인트 노드(112, 108)는 이미 설정되어 존재하는 IKE SA를 가로질러 새로운 IPsec SA를 협상한다. 협상이 완료되면 단계(1006)에서 엔드 포인트의 하나는 저장을 위해 키 서버(120)로 SA 정보를 전송한다. 단계(1008)에서 키 서버(120)는 SA 정보를 수신한다. 단계(1010)에서 키 서버(120)는 데이터베이스에 SA 정보를 저장한다. 단계(1012)에서 키 서버(120)는 새로 저장된 SA에 등록된 관심을 갖는 어떤 SEPs(116, 118)가 있는지를 식별하기 위해 그 데이터베이스(232)를 분석한다.
단계(1014)에서 키 서버(120)는 식별된 SEPs(116, 118)에 SA 정보를 전송한다. 단계(1016)에서 SEPs(116, 118)는 새로운 SA 정보를 수신하며 그 정보를 로컬하게 저장한다. 단계(1018)에서 SEPs(116, 118)는 이 SA 정보를 이용하여 암호화 IPsec 패킷을 해독하고, 해독된 패킷에 대해 내부 작업을 수행한다. 이 제어 흐름은 단계(1020)에서 종료된다.
도 11은 SA 정보를 SEPs에 선택적으로 로딩하는 또 다른 프로세스에 대한 또 다른 동작 흐름도이다. 도 11의 동작 흐름도는 단계(1102)에서 시작하여 직접 단계(1104)로 향한다. 단계(1104)에서 IPsec 엔드 포인트(108, 112)는 SEP(116)가 인식하지 못하는 SA를 이용하여 SEP(116)를 통해 데이터를 전송한다. 단계(1106)에서 SEP(116)는 IPsec 패킷 헤더로부터 iCookie 와 rCookie값을 추출한다. 단계(1108)에서 SEP(116)는 적어도 iCookie 와 rCookie값을 포함하는 SA 등록 요청을 생성한다. 단계(1110)에서 SEP(116)는 하나 이상의 키 서버(120)로 SA 등록 요청을 전송한다. 단계(1112)에서 SEP(116)는 목적지 엔드 포인트로 수신한 IPsec 패킷을 전달한다. 단계(1114)에서 키 서버(120)는 SEP(116)에 의해서 식별된 SA를 위해 데이터베이스(232)에 SA 항목을 생성한다. 단계(1116)에서 키 서버(120)는 SEP(116)에 의해서 식별된 IKE SA와 연관된 임의의 SAs에서 SEP를 위해 관심을 등록한다. 이 제어 흐름은 단계(1118)에서 종료된다.
비제한적인 예
본 발명은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합에 의해서 실현될 수 있다. 발명의 일 실시예에 따른 시스템은 하나의 컴퓨터 시스템에 중앙집중화된 형태(centralized fashion)로 실현되거나 서로 다른 요소들이 여러 상호연결된 컴퓨터 시스템에 걸쳐 퍼져있는 분산된 형태(distributed fashion)로 실현될 수 있다. 임의의 종류의 컴퓨터 시스템 - 또는 본 명세서에서 설명된 방법을 수행하도록 구성된 기타 장치들 - 도 적합하다. 일반적인 하드웨어와 소프트웨어의 결합은, 로딩되어 실행되었을 때 본 명세서에서 설명된 방법을 수행하기 위해 컴퓨터 시스템을 제어하는 컴퓨터 프로그램을 포함하는 범용 컴퓨터 시스템(general purpose computer system)일 수 있다.
일반적으로 본 발명의 실시예를 구현하기 위해 실행된 루틴은 운영 시스템의 한 부분 또는 특정 어플리케이션, 부품(component), 프로그램, 모듈, 객체 또는 명령어의 시퀀스로 구현되든 간에 본 명세서에서 “프로그램”으로 지칭될 수 있다. 일반적으로 컴퓨터 프로그램은 기본 컴퓨터(native computer)에 의해 기계 판독 가능 포맷으로 번역되어 그에 의해 실행될 수 있는 다수의 명령어를 포함한다. 또한, 프로그램은 프로그램에 로컬하게 상주하거나(reside locally) 메모리 또는 저장 장치(storage devices)에서 발견되는 변수 및 데이터 구조를 포함한다. 추가적으로, 본 명세서에서 설명된 다양한 프로그램은 발명의 특정 실시예에서 구현되는 어플리케이션에 기초하여 식별될 수 있다. 그러나, 어떤 특정 프로그램 학명(nomenclature)도 단지 편의를 위하여 사용되는 것이므로, 발명은 그러한 학명에 의해 식별되고/되거나 암시되는 어떤 특정 어플리케이션에만 한정되어 사용되는 것은 아니라는 것을 인식해야 한다.

Claims (10)

  1. 보안 엔드-투-엔드 통신 경로(secure, end-to-end communications path)에서의 암호화 데이터에 대한 검사(inspection)를 위해 통신 네트워크의 보안 실행 지점(security enforcement point; "SEP")에 보안 연관(security association; "SA") 정보를 선택적으로 로딩하는 방법으로서, SEP를 갖는 상기 방법은,
    적어도 하나의 암호화 데이터 패킷을 수신하는 단계;
    상기 적어도 하나의 암호화 데이터 패킷을 해독하기 위한 SA 정보(SA information)가 상기 SEP에 로컬하게 존재하지 않는지(fails to exist locally)를 결정하는 단계;
    상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보에 대한 요청을 통신 네트워크 키 서버(communication network key server)로 전송하는 단계; 및
    상기 적어도 하나의 암호화 데이터 패킷과 연관된 상기 SA 정보를 상기 통신 네트워크 키 서버로부터 수신하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 로컬하게 존재하지 않는 SA 정보에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 드롭하는 단계; 및
    상기 로컬하게 존재하지 않는 SA 정보에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 해독하지 않고, 상기 적어도 하나의 암호화 데이터 패킷을 상기 SEP로부터 목적지(destination)로 전달하는 단계
    중 적어도 하나를 더 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 통신 네트워크 키 서버로부터 수신한 상기 SA 정보와 연관된 후속 암호화 데이터 패킷(subsequent encrypted data packets)을 상기 SEP를 이용하여 해독하는 단계를 더 포함하는, 방법.
  4. 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 위해 보안 실행 지점("SEP")에 보안 연관("SA") 정보를 선택적으로 로딩하는 방법으로서, 엔드 포인트들 사이의 하나 이상의 엔드-투-엔드 보안 통신 경로에 대한 보안 연관들(security associations; "SAs")을 보유하는(holding) 키 서버에서의 상기 방법은,
    제2 엔드 포인트(second endpoint)를 포함하는 엔드-투-엔드 보안 통신 경로(end-to-end secure communications path)에 대한 SA를 이용하여, 제1 엔드 포인트(first endpoint)로부터 상기 SA와 연관된 SA 정보를 수신하는 단계;
    상기 SA 정보를 메모리에 저장하는 단계;
    상기 SA에 적어도 하나의 SEP가 관심(interest)을 등록했는지(registered)를 결정하는 단계; 및
    상기 SA 정보를 상기 적어도 하나의 SEP로 전송하는 단계
    를 포함하는, 방법.
  5. 제4항에 있어서, 상기 적어도 하나의 SEP에 전송된 상기 SA 정보 또는 상기 제1 엔드 포인트로부터 수신된 상기 SA 정보는, 상기 SA와 연관된 세션 키 데이터를 포함하는, 방법.
  6. 보안 엔드-투-엔드 통신 경로에서의 암호화 데이터에 대한 검사를 가능하게 하는 네트워크 장치로서,
    메모리;
    상기 메모리에 통신 가능하게 결합된(communicatively coupled) 프로세서; 및
    상기 메모리 및 상기 프로세서에 통신 가능하게 결합된 데이터 트래픽 매니저(data traffic manager)
    를 포함하고,
    상기 데이터 트래픽 매니저는,
    적어도 하나의 암호화 데이터 패킷(encrypted data packet)을 수신하고,
    상기 적어도 하나의 암호화 데이터 패킷을 해독하기 위한 보안 연관("SA") 정보가 로컬하게 존재하지 않는지를 결정하고,
    상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA 정보에 대한 요청을 통신 네트워크 키 서버로 전송하고,
    상기 적어도 하나의 암호화 데이터 패킷과 연관된 상기 SA 정보를 상기 통신 네트워크 키 서버로부터 수신하도록 구성된, 네트워크 장치.
  7. 제6항에 있어서,
    상기 데이터 트래픽 매니저는,
    상기 통신 네트워크 키 서버로부터 수신한 상기 SA 정보와 연관된 후속 암호화 데이터 패킷을 해독하고,
    상기 해독에 응답하여, 해독이 행하여진, 상기 SA 정보와 연관된 후속 암호화 데이터 패킷에 대하여 보안 기능을 수행하도록 더 구성된(adapted to), 네트워크 장치.
  8. 제6항 또는 제7항에 있어서,
    상기 통신 네트워크 키 서버로 전송된 상기 요청은 상기 적어도 하나의 암호화 데이터 패킷과 연관된 SA에 연관된 iCookie 값 및 rCookie 값을 적어도 포함하는, 네트워크 장치.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    상기 데이터 트래픽 매니저는,
    상기 SA 정보가 로컬하게 존재하지 않는지를 결정하는 것에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 드롭하고,
    상기 SA 정보가 로컬하게 존재하지 않는지를 결정하는 것에 응답하여 상기 적어도 하나의 암호화 데이터 패킷을 해독하지 않고, 상기 적어도 하나의 암호화 데이터 패킷을 목적지로 전달하도록 더 구성된, 네트워크 장치.
  10. 컴퓨터 시스템에 로딩되어 실행되는 경우, 상기 컴퓨터 시스템으로 하여금 제1항 내지 제5항의 방법의 모든 단계를 수행하도록 하는 컴퓨터 프로그램 코드를 포함하는, 컴퓨터 프로그램.
KR1020107012387A 2007-12-26 2008-12-04 보안 실행 지점에 보안 연관 정보를 선택적으로 로딩하는 방법 KR20100087032A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/964,503 US8199916B2 (en) 2007-12-26 2007-12-26 Selectively loading security enforcement points with security association information
US11/964,503 2007-12-26

Publications (1)

Publication Number Publication Date
KR20100087032A true KR20100087032A (ko) 2010-08-02

Family

ID=40794595

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107012387A KR20100087032A (ko) 2007-12-26 2008-12-04 보안 실행 지점에 보안 연관 정보를 선택적으로 로딩하는 방법

Country Status (6)

Country Link
US (1) US8199916B2 (ko)
EP (1) EP2235908B1 (ko)
JP (1) JP5270692B2 (ko)
KR (1) KR20100087032A (ko)
TW (1) TW200935848A (ko)
WO (1) WO2009080462A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543667B2 (en) 2008-01-14 2013-09-24 Akamai Technologies, Inc. Policy-based content insertion
US20120209942A1 (en) * 2008-10-28 2012-08-16 Cotendo, Inc. System combining a cdn reverse proxy and an edge forward proxy with secure connections
JP5874146B2 (ja) 2010-06-18 2016-03-02 アカマイ テクノロジーズ インコーポレイテッド コンテンツ配信ネットワーク(cdn)のモバイル又は有線ネットワークへの拡張
DE102010041804A1 (de) * 2010-09-30 2012-04-05 Siemens Aktiengesellschaft Verfahren zur sicheren Datenübertragung mit einer VPN-Box
WO2012059137A1 (en) * 2010-11-05 2012-05-10 Nokia Siemens Networks Oy Session establishment with policy control
JP5812282B2 (ja) * 2011-12-16 2015-11-11 公立大学法人大阪市立大学 トラヒック監視装置
JP2016063234A (ja) * 2014-09-12 2016-04-25 富士通株式会社 通信装置の通信制御方法,通信装置,通信制御システム
CN108768649A (zh) * 2018-06-26 2018-11-06 苏州蜗牛数字科技股份有限公司 一种动态加密网络数据的方法及存储介质
US11196726B2 (en) 2019-03-01 2021-12-07 Cisco Technology, Inc. Scalable IPSec services
CN114301632B (zh) * 2021-12-02 2023-11-10 北京天融信网络安全技术有限公司 一种IPsec数据处理方法、终端及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233686B1 (en) * 1997-01-17 2001-05-15 At & T Corp. System and method for providing peer level access control on a network
US6209101B1 (en) * 1998-07-17 2001-03-27 Secure Computing Corporation Adaptive security system having a hierarchy of security servers
US6760444B1 (en) * 1999-01-08 2004-07-06 Cisco Technology, Inc. Mobile IP authentication
US7055027B1 (en) 1999-03-22 2006-05-30 Microsoft Corporation System and method for trusted inspection of a data stream
US6546486B1 (en) 2000-02-23 2003-04-08 Sun Microsystems, Inc. Content screening with end-to-end encryption within a firewall
JP3730480B2 (ja) * 2000-05-23 2006-01-05 株式会社東芝 ゲートウェイ装置
US7536715B2 (en) * 2001-05-25 2009-05-19 Secure Computing Corporation Distributed firewall system and method
EP1452000A2 (en) 2001-12-07 2004-09-01 Telefonaktiebolaget LM Ericsson (publ) Lawful interception of end-to-end encrypted data traffic
US7191331B2 (en) * 2002-06-13 2007-03-13 Nvidia Corporation Detection of support for security protocol and address translation integration
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
US7477626B2 (en) * 2004-09-24 2009-01-13 Zyxel Communications Corporation Apparatus of dynamically assigning external home agent for mobile virtual private networks and method for the same
US7783880B2 (en) 2004-11-12 2010-08-24 Microsoft Corporation Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management
KR100918440B1 (ko) * 2004-11-12 2009-09-24 삼성전자주식회사 가상 사설망에서 게이트웨이의 ip 주소를 이용한 이동 단말의 통신 방법 및 장치
JP4616732B2 (ja) * 2005-09-02 2011-01-19 株式会社日立製作所 パケット転送装置
US7609162B2 (en) * 2005-10-10 2009-10-27 Electronics And Telecommunications Research Institute Mobile RFID service providing apparatus and method thereof
EP2161872A1 (en) * 2007-05-31 2010-03-10 Panasonic Corporation Network relay device, communication terminal, and encryption communication method

Also Published As

Publication number Publication date
JP5270692B2 (ja) 2013-08-21
WO2009080462A2 (en) 2009-07-02
EP2235908A2 (en) 2010-10-06
US20090169005A1 (en) 2009-07-02
TW200935848A (en) 2009-08-16
US8199916B2 (en) 2012-06-12
WO2009080462A3 (en) 2009-09-24
JP2011508550A (ja) 2011-03-10
EP2235908B1 (en) 2015-10-07

Similar Documents

Publication Publication Date Title
US11811808B2 (en) Rule-based network-threat detection for encrypted communications
EP2235908B1 (en) Selectively loading security enforcement points with security association information
CN111034150B (zh) 选择性地解密ssl/tls通信的方法和装置
US20170208034A1 (en) Encrypted peer-to-peer detection
US20120023228A1 (en) Method, apparatus, signals, and medium for managing transfer of data in a data network
US11477165B1 (en) Securing containerized applications
US20070011448A1 (en) Using non 5-tuple information with IPSec
US11133933B1 (en) Rapid secure authentication and communications through multitenant components in provider networks
US11949654B2 (en) Distributed offload leveraging different offload devices
US9021250B2 (en) Security enforcement point inspection of encrypted data in an encrypted end-to end communications path
US10158610B2 (en) Secure application communication system
Shiranzaei et al. IPv6 security issues—A systematic review
US20220385631A1 (en) Distributed traffic steering and enforcement for security solutions
FR3096532A1 (fr) Procédé de gestion d’une communication entre terminaux dans un réseau de communication, et dispositifs et système pour la mise en œuvre du procédé
US20230198944A1 (en) Networking and security split architecture

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
NORF Unpaid initial registration fee