KR102069642B1 - 로컬적으로-액세스가능한 개인 키들 없이 ssl 연결들을 종결 - Google Patents

로컬적으로-액세스가능한 개인 키들 없이 ssl 연결들을 종결 Download PDF

Info

Publication number
KR102069642B1
KR102069642B1 KR1020147019812A KR20147019812A KR102069642B1 KR 102069642 B1 KR102069642 B1 KR 102069642B1 KR 1020147019812 A KR1020147019812 A KR 1020147019812A KR 20147019812 A KR20147019812 A KR 20147019812A KR 102069642 B1 KR102069642 B1 KR 102069642B1
Authority
KR
South Korea
Prior art keywords
proxy server
information
cache
secure
server
Prior art date
Application number
KR1020147019812A
Other languages
English (en)
Other versions
KR20140103342A (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 KR20140103342A publication Critical patent/KR20140103342A/ko
Application granted granted Critical
Publication of KR102069642B1 publication Critical patent/KR102069642B1/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
    • H04L63/0471Network 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 applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

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

Abstract

인터넷 기반구조 전달 플랫폼(예를 들어, 서비스 제공자에 의해 동작됨)은, 암호화된 프리-마스터 시크릿(ePMS)의 암호해독을 외부 서버에 오프-로딩(off-load)하는, SSL 프로토콜에 대한 개선으로서 RSA 프록시 "서비스"를 제공한다. 이러한 서비스를 이용시, ePMS를 "로컬적으로" 암호해독하는 대신에, SSL 서버는 ePMS를 RSA 프록시 서버 컴포넌트에 프록싱(포워딩)하고, 응답하여, 암호해독된 프리-마스터 시크릿을 수신한다. 이러한 방식으로, 암호해독 키는 SSL 서버와 공동으로 저장될 필요가 없다.

Description

로컬적으로-액세스가능한 개인 키들 없이 SSL 연결들을 종결 {TERMINATING SSL CONNECTIONS WITHOUT LOCALLY-ACCESSIBLE PRIVATE KEYS}
본 출원은 2011년 12월 16일 출원된 일련 번호 제 61/554,571호에 기초하고, 상기 제 61/554,571호를 우선권으로 주장한다.
본 출원은 일반적으로, SSL과 같은 암호 프로토콜(cryptographic protocol)들을 이용하여 네트워크-기반 통신들을 안전하게 하는(secure) 것에 관한 것이다.
분산형 컴퓨터 시스템들은 종래 기술에 잘 알려져 있다. 하나의 이러한 분산형 컴퓨터 시스템은, 서비스 제공자에 의해 동작 및 관리되는 "콘텐츠 전달 네트워크(content delivery network)" 또는 "CDN"이다. 서비스 제공자는 통상적으로, 서비스 제공자의 기반구조(infrastructure)를 이용하는 제삼자들(고객들)을 위해 콘텐츠 전달 서비스를 제공한다. 이러한 유형의 분산형 시스템은 통상적으로, 콘텐츠 전달(content delivery), 웹 애플리케이션 가속(web application acceleration), 또는 아웃소싱된 원점 사이트 기반구조(outsourced origin site infrastructure)의 다른 지원과 같은 다양한 서비스들을 용이하게 하도록 설계된 소프트웨어, 시스템들, 프로토콜들, 및 기법들과 함께, 네트워크 또는 네트워크들에 의해 링크된 자율 컴퓨터(autonomous computer)들의 컬렉션을 나타낸다. CDN 서비스 제공자는 통상적으로, 고객 포털(customer portal)에서 공급되고 그 다음으로 네트워크에 배치되는 (웹사이트와 같은) 디지털 자산(digital property)들을 통한 서비스 전달을 제공한다. 디지털 자산은 통상적으로, 서비스 제공자로 하여금 트래픽을 책임지게 하고 자신의 고객에게 빌링(bill)하도록 허용하는 하나 또는 둘 이상의 에지 구성들과 연결(bind)된다.
SSL(Secure Sockets Layer)은, 인터넷과 같은 네트워크들을 통한 안전한 통신(secure communication)들을 위해 이용되는 잘 알려진 암호 프로토콜이다. SSL과 같은 암호 프로토콜들은 종종, RSA(Rivest, Shamir and Adelman) 암호화 알고리즘(encryption algorithm)과 같은 공개 키 암호 시스템들에 기초한다. 종래의 RSA-기반 SSL 세션에 있어서, 연결의 2개의 측들은 세션의 나머지를 위한 파라미터들을 발생시키기 위해 이용되는 "프리-마스터 시크릿(pre-master secret"(PMS)에 동의한다. 통상적으로, 2개의 측들은, 평문(plaintext)의 실제 값을 교환함이 없이, 프리-마스터 시크릿을 확립하기 위해 RSA 비대칭 암호화를 이용한다. 동작에서, SSL 클라이언트는 프리-마스터 시크릿을 발생시키고, SSL 서버의 공개적으로 이용가능한 RSA 키를 이용하여 상기 프리-마스터 시크릿을 암호화한다. 이는 암호화된 프리-마스터 시크릿(encrypted pre-master secret)(ePMS)을 발생시키고, 그 다음으로, 상기 암호화된 프리-마스터 시크릿(ePMS)은 SSL 서버에 제공된다. SSL 서버는 개인 암호해독 키(private decryption key)를 갖고, 그 다음으로, 상기 개인 암호해독 키는 암호화된 프리-마스터 시크릿을 암호해독하기 위해 이용된다. 이러한 점에서, 클라이언트와 서버 양측 모두는 원래의(original) 프리-마스터 시크릿을 가지며, 실제 암호화되고 안전한 데이터 교환을 위해 이용되는 대칭 키를 발생시키기 위해 상기 원래의 프리-마스터 시크릿을 이용할 수 있다.
암호화된 프리-마스터 시크릿을 암호해독하는 것은, SSL 연결에서 개인 키가 필요한 유일한 시간이다. 이러한 암호해독은 이른바 SSL 종결 포인트에서 발생한다. 많은 경우들에서, SSL 종결 포인트는 안전하지 못하며(insecure), 따라서 상기 SSL 종결 포인트에서의 개인 키의 저장 및 사용은 상당한 보안 위험성(security risk)들을 야기한다.
인터넷 기반구조 전달 플랫폼(예를 들어, 서비스 제공자에 의해 동작됨)은, 암호화된 프리-마스터 시크릿(ePMS)의 암호해독을 외부 서버에 오프-로딩(off-load)하는, SSL 프로토콜에 대한 개선으로서 RSA 프록시 "서비스"를 제공한다. 이러한 서비스를 이용시, ePMS를 "로컬적으로" 암호해독하는 대신에, SSL 서버는 ePMS를 RSA 프록시 서버 컴포넌트에 프록싱(포워딩)하고, 응답으로, 암호해독된 프리-마스터 시크릿을 수신한다. 이러한 방식으로, 암호해독 키는 SSL 서버와 관련하여 저장될 필요가 없다.
하나의 시스템 실시예에서, 제 1 네트워크-액세스가능 위치의 적어도 하나의 머신은, RSA 프록시 서버 소프트웨어 프로그램을 포함하고, 제 2 네트워크-액세스가능 위치의 적어도 하나의 머신은 RSA 프록시 클라이언트 소프트웨어 프로그램을 포함한다. RSA 프록시 서버 소프트웨어 프로그램 및 RSA 프록시 클라이언트 소프트웨어 프로그램은 각각, 자신들 사이에 안전한(예를 들어, 상호-인증된(mutually-authenticated) SSL) 연결을 확립 및 유지하는 코드를 포함한다. RSA 프록시 클라이언트 소프트웨어는 통상적으로, (OpenSSL과 같은) SSL 서버 컴포넌트와 공동으로 실행된다. 그러나, 본 개시내용에 따르면, SSL 암호해독 키들은 RSA 프록시 클라이언트 소프트웨어에 액세스가능하지 않다. 오히려, 암호화된 프리-마스터 시크릿들의 암호해독은 RSA 프록시 서버 소프트웨어 프로그램에 오프-로딩된다. 동작에서, RSA 프록시 클라이언트 소프트웨어 프로그램은 최종 사용자 클라이언트 프로그램(예를 들어, SSL-인에이블된 웹 브라우저(SSL-enabled web browser), 네이티브 모바일 앱(native mobile app) 등)으로부터 (RSA 프록시 클라이언트에서) 수신된 새로운 SSL 핸드셰이크 요청(handshake request)과 연관된 암호화된 프리-마스터 시크릿을 수신하여, 상호-인증된 SSL 연결을 통해 RSA 프록시 서버 소프트웨어 프로그램에 포워딩한다. RSA 프록시 서버 소프트웨어 프로그램은, RSA 프록시 서버 소프트웨어 프로그램에서 유지되고 다른 방식으로는 RSA 프록시 클라이언트 소프트웨어 프로그램에 액세스가능하지 않은 암호해독 키를 이용하여, 암호화된 프리-마스터 시크릿을 암호해독한다. 그 다음으로, RSA 프록시 서버 소프트웨어 프로그램은 암호해독된 프리-마스터 시크릿을, 상호-인증된 SSL 연결을 통해 RSA 프록시 클라이언트 소프트웨어 프로그램에 리턴한다. 그 다음으로, 최종 사용자 클라이언트 프로그램 및 SSL 서버 컴포넌트 양측 모두는, 프리-마스터 시크릿을 소유한다(그리고, 그들 사이의 연결을 암호화하기 위해 이용되는 대칭 키를 발생시키기 위해 상기 프리-마스터 시크릿을 이용할 수 있음).
제한적이도록 의도되지 않지만, 제 1 네트워크-액세스가능 위치는 엔티티와 연관된 데이터 센터이고, 제 2 네트워크-액세스가능 위치는 제 1 네트워크-액세스가능 위치로부터 원격의 물리적 위치이다. 2개의 위치들 사이에서, (RSA 프록시 서버 컴포넌트가 실행되는) 데이터 센터는 더욱 안전하다.
전술한 내용은 본 발명의 더욱 적절한 피쳐(feature)들 중 몇몇을 개괄하였다. 이들 피쳐들은 단지 예시적인 것으로 해석되어야 한다. 개시된 본 발명을 상이한 방식으로 적용함으로써 또는 기술될 바와 같이 본 발명을 수정함으로써 많은 다른 유익한 결과들이 달성될 수 있다.
본 발명 및 본 발명의 이점들의 더욱 완전한 이해를 위해, 첨부 도면들과 함께 다음의 설명들에 대한 참조가 이제 이루어진다:
도 1은 콘텐츠 전달 네트워크(CDN)로서 구성된 알려진 분산형 컴퓨터 시스템을 예시하는 블록도이고;
도 2는 대표적인 CDN 에지 머신 구성이고;
도 3은 주제 개시내용이 일 실시예에서 실시될 수 있는 대표 방화벽-뒤(behind-the-firewall) 네트워크 구성을 예시하고; 그리고
도 4는 본 개시내용의 RSA 프록시 기법을 예시한다.
도 1은, 방송 시청자 스케일(broadcast audience scale)의 온라인 HD 비디오를, 고정형 라인 및 모바일 환경들 양측 모두에서 가장 유명한 런타임 환경들에 그리고 가장 최신의 디바이스들에 전달하는 능력을 갖는 단일 HTTP-기반 플랫폼을 제공하기 위해, 본 명세서의 기법들에 의해 (아래에 기술되는 바와 같이) 확장되는 알려진 분산형 컴퓨터 시스템을 예시한다.
도 1에 도시된 바와 같은 알려진 시스템에서, 분산형 컴퓨터 시스템(100)은 CDN으로서 구성되고, 인터넷 주변에 분산된 머신들의 세트(102a-n)를 갖는 것으로 가정된다. 통상적으로, 머신들의 대부분은 인터넷의 에지 가까이, 즉, 최종 사용자 액세스 네트워크들에 또는 최종 사용자 액세스 네트워크들에 인접하여 위치된 서버들이다. 네트워크 동작 명령 센터(network operations command center)(NOCC)(104)는 시스템의 다양한 머신들의 동작들을 관리한다. 웹 사이트(106)와 같은 제삼자 사이트들은, 콘텐츠(예를 들어, HTML, 임베딩된 페이지 오브젝트들, 스트리밍 미디어, 소프트웨어 다운로드들 등)의 전달을 분산형 컴퓨터 시스템(100)에, 및 특히 "에지" 서버들에 오프로딩(offload)한다. 통상적으로, 콘텐츠 제공자들은, 주어진 콘텐츠 제공자 도메인들 또는 서브-도메인들을 (예를 들어, DNS CNAME에 의해) 서비스 제공자의 신뢰할 만한(authoritative) 도메인 네임 서비스에 의해 관리되는 도메인들로 에일리어싱(alias)함으로써 자신들의 콘텐츠 전달을 오프로딩한다. 콘텐츠를 원하는 최종 사용자들은, 더욱 신뢰적으로 그리고 효율적으로 그러한 콘텐츠를 획득하기 위해 분산형 컴퓨터 시스템으로 지향(direct)된다. 상세하게 도시되지 않았지만, 분산형 컴퓨터 시스템은 또한, 분산형 데이터 컬렉션 시스템(108)과 같은 다른 기반구조를 포함할 수 있고, 상기 분산형 데이터 컬렉션 시스템(108)은, 사용량(usage) 및 다른 데이터를 에지 서버들로부터 컬렉팅하고, 구역 또는 구역들의 세트에 걸쳐 그러한 데이터를 어그리게이팅(aggregate)하며, 모니터링, 로깅, 경보(alert)들, 빌링, 관리, 및 다른 운용 및 관리상의 기능(operational and administrative function)들을 용이하게 하기 위해 그러한 데이터를 다른 백-엔드(back-end) 시스템들(110, 112, 114, 및 116)에 전달한다. 분산형 네트워크 에이전트들(118)은 서버 부하들뿐만 아니라 네트워크를 모니터링하고, 네트워크, 트래픽, 및 부하 데이터를, CDN에 의해 관리되는 콘텐츠 도메인들에 대해 신뢰할만한 DNS 쿼리 핸들링 메커니즘(115)에 제공한다. 분산형 데이터 전송 메커니즘(120)은 제어 정보를(예를 들어, 콘텐츠의 관리, 부하 밸런싱의 용이 등등을 위한 메타데이터를) 에지 서버들에 분배하기 위해 이용될 수 있다.
도 2에 예시된 바와 같이, 주어진 머신(200)은 하나 또는 둘 이상의 애플리케이션들(206a-n)을 지원하는 운영 체제 커널(operating system kernel)(이를 테면, 리눅스 또는 그 변형)(204)을 실행시키는 상용제품 하드웨어(commodity hardware)(예를 들어, 인텔 펜티엄 프로세서)(202)를 포함한다. 예를 들어, 콘텐츠 전달 서비스들을 용이하게 하기 위해, 주어진 머신들은 통상적으로, HTTP 프록시(207)(때때로, "글로벌 호스트(global host)" 또는 "고스트(ghost)" 프로세스로 지칭됨), 네임 서버(208), 로컬 모니터링 프로세스(210), 분산형 데이터 컬렉션 프로세스(212) 등과 같은 애플리케이션들의 세트를 실행시킨다. 스트리밍 미디어를 위해, 머신은 통상적으로, 지원되는 미디어 포맷들에 의해 요구되는 바와 같은, WMS(Windows Media Server) 또는 플래시 서버(Flash server)와 같은 하나 또는 둘 이상의 미디어 서버들을 포함한다.
CDN 에지 서버는, 바람직하게는, 구성 시스템을 이용하여 에지 서버들에 분산되는 구성 파일들을 이용하여, 바람직하게는 도메인-특정, 고객-특정 기반으로, 하나 또는 둘 이상의 확장된 콘텐츠 전달 피쳐들을 제공하도록 구성된다. 주어진 구성 파일은 바람직하게 XML-기반이고, 하나 또는 둘 이상의 진화된(advanced) 콘텐츠 핸들링 피쳐들을 용이하게 하는 콘텐츠 핸들링 규칙(rule)들 및 지시(directive)들의 세트를 포함한다. 구성 파일은 데이터 전송 메커니즘을 통해 CDN 에지 서버에 전달될 수 있다. 미국 특허 번호 제 7,111,057호는, 에지 서버 콘텐츠 제어 정보를 전달 및 관리하기 위한 유용한 기반구조를 예시하고, 이러한 그리고 다른 에지 서버 제어 정보는 CDN 서비스 제공자 자체, 또는 (엑스트라넷(extranet) 등을 통해) 원점 서버(origin server)를 동작시키는 콘텐츠 제공자 고객에 의해 공급될 수 있다.
CDN은 미국 특허 번호 제 7,472,178호에 기술된 바와 같은 저장 서브시스템을 포함할 수 있고, 상기 미국 특허의 개시내용은 인용에 의해 본 명세서에 포함된다.
CDN은 고객 콘텐츠의 중간 캐싱을 제공하기 위해 서버 캐시 계층(server cache hierarchy)을 동작시킬 수 있고; 하나의 이러한 캐시 계층 서브시스템은 미국 특허 번호 제 7,376,716호에 기술되고, 상기 미국 특허의 개시내용은 인용에 의해 본 명세서에 포함된다.
CDN은 미국 공보 번호 제 20040093419호에 기술된 방식으로, 클라이언트 브라우저, 에지 서버, 및 고객 원점 서버 사이에서 안전한 콘텐츠 전달을 제공할 수 있다. 상기 미국 공보에 기술된 바와 같은 안전한 콘텐츠 전달은, 한편으로는 클라이언트와 에지 서버 프로세스 사이의, 그리고 다른 한편으로는 에지 서버 프로세스와 원점 서버 프로세스 사이의 SSL-기반 링크들을 시행(enforce)한다. 이는, SSL-보호된 웹 페이지 및/또는 그의 컴포넌트들이 에지 서버를 통해 전달되는 것을 가능하게 한다.
오버레이(overlay)로서, CDN 자원들은, (사적으로-관리(privately-manage)될 수 있는) 엔터프라이즈 데이터 센터들과 제삼자 SaaS(software-as-a-service) 제공자들 사이에서 WAN(wide area network) 가속 서비스들을 용이하게 하기 위해 이용될 수 있다.
통상의 동작에서, 콘텐츠 제공자는, CDN에 의해 서빙되기를 원하는 콘텐츠 제공자 도메인 또는 서브-도메인을 식별한다. CDN 서비스 제공자는 (예를 들어, 정규 네임(canonical name), 또는 CNAME을 통해) 콘텐츠 제공자 도메인을 에지 네트워크(CDN) 호스트네임(hostname)과 연관시키고, 그 다음으로, CDN 제공자는 그러한 에지 네트워크 호스트네임을 콘텐츠 제공자에게 제공한다. 콘텐츠 제공자 도메인 또는 서브-도메인에 대한 DNS 쿼리가 콘텐츠 제공자의 도메인 네임 서버들에서 수신될 때, 그러한 서버들은 에지 네트워크 호스트네임을 리턴함으로써 응답한다. 에지 네트워크 호스트네임은 CDN을 가리키고, 그 다음으로, 그러한 에지 네트워크 호스트네임은 CDN 네임 서비스를 통해 분석(resolve)된다. 이를 위해, CDN 네임 서비스는 하나 또는 둘 이상의 IP 어드레스들을 리턴한다. 그 다음으로, 요청 클라이언트 브라우저는, IP 어드레스와 연관된 에지 서버에 (예를 들어, HTTP 또는 HTTPS를 통해) 콘텐츠 요청을 한다. 요청은, 원래의 콘텐츠 제공자 도메인 또는 서브-도메인을 포함하는 호스트 헤더(host header)를 포함한다. 호스트 헤더를 갖는 요청의 수신시, 에지 서버는, 요청된 콘텐츠 도메인 또는 서브-도메인이 실제로 CDN에 의해 핸들링되고 있는지를 결정하기 위해 자신의 구성 파일을 체크한다. 그러한 경우, 에지 서버는 자신의 콘텐츠 핸들링 규칙들 및 지시들을, 구성에서 명시된 바와 같은 그러한 도메인 또는 서브-도메인에 적용한다. 이들 콘텐츠 핸들링 규칙들 및 지시들은 XML-기반 "메타데이터" 구성 파일 내에 위치될 수 있다.
추가의 백그라운드로서, CDN 고객들은, 인터넷 클라우드에서 호스팅되는 애플리케이션에 대한 방화벽 뒤에서(behind the firewall) 그들의 사용자들 사이를 브리지(bridge)하는 웹 애플리케이션들을 가속하기 위해서뿐만 아니라, 고객의 엔터프라이즈 방화벽 뒤에서 호스팅되는 인트라넷 웹 애플리케이션들을 가속하기 위해 "방화벽 뒤" 관리 서비스 제품("behind the firewall" managed service product)에 가입할 수 있다. 이들 2개의 사용 경우들을 달성하기 위해, CDN 소프트웨어는 하나 또는 둘 이상의 고객 데이터 센터들에서 호스팅되는 가상 머신들 상에서, 그리고 원격 "브랜치 오피스들(branch offices)"에서 호스팅되는 가상 머신들 상에서 실행될 수 있다. 고객 데이터 센터에서 실행되는 CDN 소프트웨어는 통상적으로, 구성된 웹 애플리케이션들을 위한 다른 기능들뿐만 아니라, 서비스 구성, 서비스 관리, 서비스 리포팅, 원격 관리 액세스, 고객 SSL 증명서(certificate) 관리를 제공한다. 브랜치 오피스들에서 실행되는 소프트웨어는, 거기에 위치된 사용자들을 위해 라스트 마일 웹 가속(last mile web acceleration)을 제공한다. CDN 그 자체는 통상적으로, 고객 방화벽 뒤에서 실행되는 노드들과 서비스 제공자의 다른 기반구조(예를 들어, 네트워크 및 동작 설비들) 사이에 게이트웨이를 제공하기 위해, CDN 데이터 센터들에서 호스팅되는 CDN 하드웨어를 제공한다. 이러한 유형의 관리되는 솔루션은, 그들의 회사의 인트라넷에 관하여 CDN 기술들의 이점을 취할 기회를 엔터프라이즈에게 제공한다. 도 3은 이러한 유형의 기본 아키텍처를 예시한다. 대표적인 실시에서, BTF 네트워크는 관리 게이트웨이(AMG)(300) 및 하나 또는 둘 이상의 엔터프라이즈 관리 게이트웨이들(EMG들)(302)에 의해 관리된다. AMG는 CDN 동작 및 네트워크 서비스 위치에 위치된다. AMG는, 기존의 고객들의 데이터베이스를 관리하고, EMG들을 액세스한다. EMG들(302)은 고객의 방화벽 내부에 존재하고, BTF 네트워크의 개개의 최종 노드들(304)을 관리한다. 최종 노드들은 종래의 CDN의 에지 노드들에 대응한다. AMG는 EMG를 인가(authorize)하고(단계 1), EMG는 에지 노드들(A 및 B)을 인가한다(단계들 2 및 3). 에지 노드들 양측 모두는 이제 서로를 그리고 EMG를 신뢰하고 도시된 바와 같은 고객 신뢰 존(customer zone of trust)을 생성한다(단계들 4). 이러한 기본 신뢰 모델에 따르면, AMG(300)는 컴퍼니를 위해 BTF 기능들을 수행하도록 EMG(302)에 권한(authority)을 부여(grant)한다. 그 다음으로, EMG(302)는 다양한 역할들 또는 태스크들을 수행하도록 최종 노드들 각각에 권한을 부여한다. 이러한 권한부여(authorization)의 체인을 통해 일단 신뢰가 확립되면, 개인 데이터 및 비밀들이 네트워크 주변에서 안전하게 교환될 수 있다. 이러한 접근방식에서, 에지 노드들은 통상적으로, (최종 사용자들 가까이의) 원격 브랜치 오피스들에 설치되고, EMG(부모 노드들/구역들)는 (통상적으로, 애플리케이션 서브들이 위치되는) 회사 허브(corporate hub)들에 설치된다. 상기 주목된 바와 같이, 솔루션은 SaaS(Software-As-A-Service) 애플리케이션들과 같이, 엔터프라이즈를 위한 가속을, 인터넷 상의 어디에서든 서빙되는 애플리케이션들로 확장한다. 엔터프라이즈의 CDN-기반 개인 오버레이 네트워크(CDN-based private overlay network)를 기존의 CDN 공개 인터넷 오버레이 네트워크(CDN public internet overlay network)와 브리지함으로써, 원격 브랜치 오피스의 최종 사용자는 가속된 애플리케이션 엔드-투-엔드(accelerated application end-to-end)를 획득한다.
BTF가 SSL 트래픽을 적합하게 가속하기 위해, BTF는 최종 노드들에 대한 증명서들 및 SSL 키들을 필요로 한다. 상술된 바와 같이, SSL은 클라이언트와 서버 사이에서 개인 프리-마스터 시크릿을 확립하기 위해 일회성(one-time) RSA 암호해독을 이용한다. 이러한 개시내용에 따르면, 핸드셰이크 및 SSL 연결의 나머지는 평소와 같이(as normal) 계속되지만, 이러한 RSA 암호해독은 개인 키를 포함하는 안전한 최종 노드 또는 다른 서비스에 오프-로딩된다. 이러한 프로세스가 이제 기술된다.
로컬적으로 - 액세스가능한 개인 키들 없이 SSL 연결들을 종결
상기 내용을 백그라운드로서 이용하여, 본 개시내용의 주제(subject matter)가 이제 기술된다. SSL 핸드셰이킹을 잘 아는 것(familiarity)이 추정된다.
이러한 개시내용에 따르면, 통상의 SSL 핸드셰이크, 및 특히, 암호화된 프리-마스터 시크릿의 암호해독은 정상 SSL 종결 포인트(SSL 서버) 외부에서(즉, 상기 정상 SSL 종결 포인트로부터 원격에서) 발생한다. 도 4에 예시된 바와 같이, 종결 포인트의 SSL 서버(400)는 프록시 서버의 "클라이언트 컴포넌트"(402)를 포함하고, 상기 프록시 서버의 "서버 컴포넌트"(404)는 원격에 위치된다. 서버 컴포넌트(404)는, 암호해독 키(들)(408)가 유지되는 데이터 스토어(406)와 연관되었다. 이들 암호해독 키들(408)은 클라이언트 컴포넌트(402)에 액세스가능하지 않다. 기술될 바와 같이, SSL 핸드셰이크 동안, 그리고 암호화된 프리-마스터 시크릿들 그 자체를 암호해독하는 대신에, 클라이언트 컴포넌트(402)는, 자신이 (통상의 SSL 클라이언트(410)로부터) 수신하는 암호화된 프리-마스터 시크릿을 서버 컴포넌트(404)에 프록싱(포워딩)하고, 응답으로(in return), 암호해독된 프리-마스터 시크릿을 수신한다. (SSL 서버(400)와 SSL 클라이언트(410) 사이의) SSL 트랜잭션(transaction)의 나머지는 정상적으로 완료된다. 이러한 접근방식에서, SSL 개인 키들은 SSL 서버 상에 (또는 더욱 일반적으로, SSL 종결 포인트에) 저장되지 않는다.
바람직하게, 프록시 서버의 클라이언트 컴포넌트(402) 및 서버 컴포넌트(404)는 RSA 암호화에 기초하며; 따라서, 이들 컴포넌트들은 때때로 본 명세서에서 RSA 프록시의 컴포넌트들로서 지칭된다. (클라이언트 컴포넌트로부터 서버 컴포넌트로의) 암호화된 프리-마스터 시크릿의 포워딩은 때때로 본 명세서에서 RSA 프록시 요청으로서 지칭된다. RSA가 바람직한 알고리즘이지만, 다른 비대칭 암호화 알고리즘들이 또한 이용될 수 있다.
이제 도 3을 다시 참조하면, 브랜치 오피스 및 데이터 센터 머신들은 바람직하게, 통신하고 트래픽을 전달하기 위해 안전한 연결(예를 들어, 상호-인증된 SSL 연결들)을 이용한다. 다른 유형들의 안전한 연결(예를 들어, IPSec VPN)이 이용될 수 있다. 이들 연결들은 RSA 프록시 요청들, 사용자 데이터, 및 다른 트래픽을 위해 이용된다. 상기 주목된 바와 같이, RSA 프록시 클라이언트 컴포넌트는 브랜치 오피스에서 실행되는 반면, 그의 연관된 서버 컴포넌트는 (더욱 안전한) 데이터 센터에서 실행된다. 일 실시예에서, 모든 각각의(every) 머신은 피어(peer)들과의 통신을 위해 이용되는 단일 클라이언트 증명서 및 키쌍(keypair)을 갖는다. (예를 들어, CDN 고객 포털에 의해) 새로운 머신이 공급될 때, 머신은 개인 키 및 CSR(Certificate Signing Request)을 발생시키고, 상기 CSR(Certificate Signing Request)을 AMG에 전송한다. CSR은 바람직하게, CSR 버전에 대한 시리얼 번호뿐만 아니라, 브랜치 오피스 또는 데이터 센터 머신에 대한 고유 시리얼 번호와 같은 식별자들의 쌍을 포함한다. AMG는 (바람직하게는 CDN과 연관된 인증 기관(certificate authority; CA)을 이용하여) CSR에 서명(sign)하여, 증명서를 브랜치 오피스 머신에 전송한다. 부가하여, AMG는 증명서 세부사항들(시리얼 번호 쌍)을 포함하는 메시지를, (포털의 피어 구성에 기초하여) 브랜치 오피스와 통신할 수 있는 임의의 데이터 센터에 전송한다. AMG는, 다른 CDN 키 관리 기반구조를 이용하여, 클라이언트 및 서버 CSR들에 (바람직하게는, CDN-연관된 CA를 이용하여) 서명한다. 바람직하게, 브랜치 오피스 머신 및 데이터 센터 머신 양측 모두는 유효 피어들 및 CA들의 컬렉션을 유지한다. 이러한 컬렉션은 로테이션 및 폐지(revocation)를 지원하기 위해 AMG에 의해 업데이트된다. 더욱이, 바람직하게 각각의 박스는, 박스 및 증명서 시리얼 번호에 의해 식별된 허용가능 피어들의 화이트리스트(whitelist)뿐만 아니라, CA의 카피를 갖는다. 상호 인증을 확립하기 위해, 상호 SSL 연결의 측들 모두(즉, 일 측 상의 RSA 프록시 클라이언트 컴포넌트, 그리고 다른 측 상의 RSA 프록시 서버 컴포넌트)는, 피어 증명서 체인(peer certificate chain)이, CA에 매칭되고 허용가능 시리얼 번호 쌍을 포함하는 루트 노드(root node)를 갖는지를 검증한다. 클라이언트 및 서버 컴포넌트들은 또한, 피어 증명서가, 예상된 머신 시리얼 번호를 포함하는지를 검증한다.
도 4에 도시된 바와 같이, RSA 프록시 클라이언트(402)는 SSL 전송 모듈의 부분이다. 동작에서, ClientHello가 (인입하는(incoming) SSL 핸드셰이크 요청으로부터) 수신되는 경우, SSL 모듈은 IP 어드레스들(플러스 포트) 및 증명서들의 러닝 테이블(learning table)을 체크한다. 엔트리가 존재하지 않는 경우, 수정되지 않은 데이터가 스트리밍된다. 데이터 센터 머신이 IP 및 포트를 위해 RSA 프록싱을 수행할 수 있는 경우, 데이터 센터 머신은 RSA 프록싱된 서버 증명서를 포함하는 새로운 메시지를 다시(back) 전송할 것이다. SSL 모듈은 IP 어드레스 및 증명서를 러닝 테이블에 부가한다. 그러한 IP 어드레스에 대한 다음번의(next) 새로운 (재개되지 않은) SSL 트랜잭션 상에서, SSL 모듈은 엔트리를 찾고, 이 엔트리가 RSA 프록시 트랜잭션을 수행할 것이라는 것을 알게 된다. 러닝 테이블 엔트리들은, 이들이 실패하는 RSA 프록시 요청을 위해 이용되는 경우(또는, 대안으로서, 이용되지 않는 기간 후에) 제거된다. 이들 엔트리들은 언제든, 데이터 센터 머신에 의해, 예를 들어, 특정 IP 및 포트를 위해 새로운 증명서를 갖는 다른 메시지를 전송하는 프록시 클라이언트에 의해 업데이트될 수 있다.
핸드셰이크 동안, 모듈은 SSL 연결을 종결시키고, ServerCertificate를, 러닝 테이블로부터 증명서와 함께 요청 클라이언트에 전송한다. ClientKeyExchange 메시지 및 ePMS가 수신될 때, 모듈은 RSA 프록시 요청을 올바른(correct) 데이터 센터에 전송한다. 이러한 개시내용에 따라, 그리고 상기 주목된 바와 같이, RSA 프록시 요청 및 응답은, 상호-인증된 SSL 연결을 통해 데이터를 전송 및 수신하는 RSA 프록시 서버(404)의 서버 컴포넌트에 의해 핸들링된다. RSA 프록시 서버의 서버 컴포넌트(404)가 실패(failure)를 리턴하거나 또는 타임-아웃(times-out)되는 경우, SSL 모듈(클라이언트 컴포넌트(402))은 클라이언트 연결을 종결하고 핸드셰이크는 성공하지 못한다.
제한 없이, SSL 모듈은 SSL 프로토콜 종결자(terminator)로서 실시된다. 일 실시예에서, 이는, 표준 OpenSSL의 최상측 상에 빌드(build)된 프로그램 코드이다.
RSA 프록시 클라이언트 컴포넌트(브랜치 오피스의 SSL 모듈)는, 상호-인증된 SSL 연결을 통해 RSA 프록시 요청 및 응답을 전송하기 위해 메시지 인터페이스를 이용한다. 바람직하게, RSA 클라이언트 요청은 다음의 정보 필드들: {ePMS 길이(ePMS length), ePMS, 서버 증명서의 해시(hash of a server certificate)}을 포함하는 패킷이다. RSA 프록시 서버 컴포넌트(데이터 센터의 SSL 모듈)로부터 리턴되는 응답 패킷은 다음의 정보 필드들: {상태(status), 암호해독된 PMS 길이(decrypted PMS length), 암호해독된 프리-마스터 시크릿(decrypted pre-master secret)}을 갖는다.
데이터 센터 설비에서 실행되는 RSA 프록시 서버 컴포넌트의 실시예가 이제 기술된다. 주목된 바와 같이, 그것의 기본 동작은, 상기 명시된 요청을 포함하는 암호화되지 않은 패킷들을 수신하고, 규정된 응답 패킷을 이용하여 응답하는 것이다. 바람직하게, RSA 프록시 서버는 ePMS 값들의 최소-최근-사용(least-recently-used)(LRU) 캐시를 유지한다. 암호해독을 수행하기 전에, 모듈은, 요청된 ePMS가 확인되었는지를 확인하기 위해 캐시를 체크한다. 이러한 체크는, 해시 룩업 방식(hash lookup scheme)을 이용하여 수행될 수 있다. 암호화된 프리-마스터 시크릿의 해시가 캐시에 이미 존재하는 경우, 불량한 상태(bad status)가 RSA 프록시 클라이언트 컴포넌트에 리턴된다(그리고 에러 또는 경보가 관리자(administrator)를 위해 발생됨). 바람직하게, RSA 프록시 서버의 서버 컴포넌트는, 이전에 암호해독된 시크릿을 제거하기 위해 플러시 어택(flush attack)을 이용하는 것으로부터 손상된 머신(compromised machine)을 보호하기 위해 요청들을 레이트 제한한다. 바람직하게, RSA 프록시 서버의 서버 컴포넌트는 또한, 그것이 프록시로서 동작할 수 있는 키쌍들 및 증명서의 테이블을 유지한다. 이러한 테이블(이는 또한 해시 테이블로서 실시될 수 있음)을 이용하는 것은, 프록시 서버가 (예를 들어, 클라이언트 컴포넌트에 의해 전송된 증명서의 해시에 의해) 효율적으로 서버 키쌍들을 룩업하는 것을 가능하게 한다. 일단 RSA 프록시 서버의 서버 컴포넌트가, ePMS가 새로운 것임을 검증하면, 상기 서버 컴포넌트는 상기 ePMS를 캐시에 부가하고, 그의 테이블에서 서버 개인 키를 룩업하고, ePMS를 암호해독하고, 응답을 전송한다.
본 명세서에 기술된 기법은 많은 이점들을 갖는다. 주요 이점은, SSL 개인 키들이 SSL 서버 상에 저장되지 않는 것이다. 상술된 바와 같은 분산형 솔루션에서, 이는, 개인 키들이, SSL을 종결시키는 브랜치 오피스 박스에 저장되는 것이 아니라, 대신에 RSA 프록시 서버의 서버 컴포넌트를 호스팅하는 데이터 센터 박스에 저장되는 것을 의미한다. 실시된 리플레이 방지(replay protection)를 이용시, 공격자는 이전의 SSL 트랜잭션들의 암호해독을 위해, 손상된(compromised) SSL 서버를 이용할 수 없다. 정상 SSL 서버 상에서, 키가 손상되는 경우, (클라이언트 브라우저에서의 OCSP 또는 증명서 폐지 리스트들과 같은) 다른 기술들이, 도난당한(stolen) SSL 키의 사용을 방지하기 위해 이용되어야 한다. RSA 프록시를 이용시, 서비스 제공자는 RSA 프록시 서버의 구성 변경만을 할 필요가 있다. 이러한 분산형 접근방식을 이용시, RSA 암호해독, SSL 트랜잭션의 계산적으로-고비용의 부분은 데이터 센터의 고객 하드웨어를 갖는 머신 상에서 수행될 수 있다.
(브랜치 오피스의) 웹 프록시 노드가 손상될 것으로 발견되는 경우, 관리자는 단순히, 손상된 노드에 대해 인증된 크리덴셜(credential)들을 제거할 필요가 있다. 표준 SSL에 있어서, 폐지는 각각의 최종 사용자 시스템 상에서 수행될 필요가 있을 것이며, 이는 관리자에게 더욱 어려울 수 있다. 부가하여, 키 로테이션은, 표준 SSL에 따라 요구될 바와 같이 모든 웹 프록시 머신들보다는 RSA 프록시 머신 상에서만 발생할 필요가 있다.
방화벽-뒤 실시예는 이러한 개시내용을 제한하도록 의도되지 않는다. RSA 프록시 접근방식은, 엔터프라이즈가, 브랜치들, 데이터 센터, 재택근무(telework)들 및 모바일 사용자들을 인터넷을 통해 애플리케이션들에 연결하는 최적화 WAN으로서 인터넷 링크들을 통해 (상술된 바와 같은) CDN 기술들을 이용하는 경우 언제든 이용될 수 있다. 더욱더 일반적으로, 상기 접근방식은, 하나의 파티(클라이언트)가 다른 파티(서버)와 RSA-기반 SSL을 통해 통신들을 암호화하기를 원하고, 서버가 RSA 개인 키를 직접 저장하는 것이 신뢰되지 않는 경우 언제든 이용될 수 있다.
대표적인 실시에서, 프로세서에 의해 실행되는 컴퓨터 프로그램 명령들과 같이, RSA 프록시는 소프트웨어로 실시된다.
더욱 일반적으로, 본 명세서에 기술된 기법들은, 기술된 기능성을 함께 용이하게 하거나 또는 제공하는 상술된 하나 또는 둘 이상의 컴퓨팅-관련 엔티티들(시스템들, 머신들, 프로세스들, 프로그램들, 라이브러리들, 기능들 등)의 세트를 이용하여 제공된다. 통상의 실시에서, 소프트웨어가 실행되는 대표적인 머신은 상용제품 하드웨어, 운영 체제, 애플리케이션 런타임 환경, 및 주어진 시스템 또는 서브시스템의 기능성을 제공하는 애플리케이션들 또는 프로세스들 및 연관된 데이터의 세트를 포함한다. 기술된 바와 같이, 기능성은 독립형 머신에서 또는 분산된 머신들의 세트에 걸쳐 실시될 수 있다. 기능성은 서비스로서, 예를 들어, SaaS 솔루션으로서 제공될 수 있다.
상기 내용이 본 발명의 특정 실시예들에 의해 수행되는 동작들의 특정 순서를 기술하였지만, 대안적인 실시예들이 상이한 순서의 동작들을 수행하고, 특정 동작들을 결합하고, 특정 동작들을 오버랩하는 등등을 할 수 있기 때문에, 이러한 순서는 예시적이라는 것이 이해되어야 한다. 주어진 실시예에 대한 본 명세서에서의 참조들이, 기술된 실시예가 특정 피쳐, 구조, 또는 특징을 포함할 수 있다는 것을 표시하지만, 모든 각각의 실시예가 특정 피쳐, 구조, 또는 특징을 반드시 포함하지는 않을 수 있다.
개시된 청구 대상은 방법 또는 프로세스의 맥락에서 기술되었지만, 주제 개시내용은 또한, 본 명세서의 동작들을 수행하기 위한 장치와 관련된다. 이러한 장치는 요구되는 목적들을 위해 특별하게 구성될 수 있거나, 또는 상기 장치는, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 또는 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은, 컴퓨터 시스템 버스에 각각 커플링되고, 광학 디스크, CD-ROM, 및 자기-광학 디스크를 포함하는 임의의 유형의 디스크, ROM(read-only memory), RAM(random access memory), 자기 또는 광학 카드, 또는 전자 명령들을 저장하기에 적합한 임의의 유형의 미디어와 같은(그러나, 이에 한정되지 않음) 컴퓨터 판독가능 저장 매체에 저장될 수 있다.
시스템의 주어진 컴포넌트들이 개별적으로 기술되었지만, 당업자는, 기능들 중 몇몇이 주어진 명령들, 프로그램 시퀀스들, 코드 부분들 등에서 공유되거나 또는 결합될 수 있다는 것을 이해할 것이다.
바람직하게, 기능성은 애플리케이션 레이어 솔루션에서 실시될 수 있지만, 식별된 기능들의 부분들이 운영 체제 등에 빌드될 수 있기 때문에, 이는 제한이 아니다.
기능성은 SSL VPN과 같은 HTTPS 이외의 다른 애플리케이션 프로토콜들, 또는 유사한 동작 특징들을 갖는 임의의 다른 프로토콜을 이용하여 실시될 수 있다.
연결의 클라이언트-측 또는 서버-측을 실시할 수 있는 컴퓨팅 엔티티의 유형에 대한 어떠한 제한도 존재하지 않는다. 임의의 컴퓨팅 엔티티(시스템, 머신, 디바이스, 프로그램, 프로세스, 유틸리티 등)는 클라이언트 또는 서버로서 동작할 수 있다.
본 명세서의 기법들이 SSL 통신에서의 이용을 위해 RSA 프록시의 맥락에서 기술되었지만, 이는 제한이 아니다. 더욱이, 방식은 암호 기법들에 의해 보호되는 (TLS와 같은) 다른 전송 프로토콜들에서 실시될 수 있다. 더욱 일반적으로, 본 명세서의 기법들은, 비대칭 암호기법(cryptography)을 이용하여 하나의 피어로부터 다른 피어로 비밀 데이터가 교환될 필요가 있는 임의의 환경에서 이용될 수 있으며, 수신하는 피어가 개인 키를 갖는 것이 신뢰되지 않는다.

Claims (27)

  1. 제1 머신인 장치로서,
    프로세서;
    상기 프로세서에 의해 실행되도록 구성된 프로그램 코드를 보유하는 컴퓨터 메모리
    를 포함하고,
    상기 프로그램 코드는 스플릿(split) 프록시 서버의 클라이언트 컴포넌트로서 구성되고, 상기 스플릿 프록시 서버는 또한 상기 제1 머신으로부터 멀리 떨어진 제2 머신 상에서 실행되고 상기 클라이언트 컴포넌트로부터 떨어진 서버 컴포넌트를 가지며,
    상기 프로그램 코드는,
    증명서 체인(certificate chain)이 주어진 증명서 권한에 매칭되는 루트 노드를 갖는지를 적어도 부분적으로 검증함으로써 상기 스플릿 프록시 서버의 상기 서버 컴포넌트로의 안전한 연결(secure connection)을 확립하는 코드,
    클라이언트로부터 안전한 핸드셰이크 요청(handshake request)을 수신하는 코드,
    상기 클라이언트로부터 상기 안전한 핸드셰이크 요청의 수신에 응답하여, 상기 스플릿 프록시 서버의 서버 컴포넌트와 연관되어 보유된 개인 키를 적어도 부분적으로 사용함으로써 상기 안전한 핸드셰이크 요청과 연관된 키 교환(key exchange)이 프로세싱될 수 있는지를 결정하도록 구성되는 코드 ― 상기 개인 키는 상기 스플릿 프록시 서버의 클라이언트 컴포넌트에 액세스가능하지 않음 ―,
    학습 테이블 내의 정보에 기초하여 상기 스플릿 프록시 서버의 서버 컴포넌트와 연관되어 보유된 상기 개인 키를 적어도 부분적으로 사용하여 상기 안전한 핸드셰이크 요청과 연관된 상기 키 교환이 프로세싱될 수 있는지를 결정함에 응답하여, 제1 암호화 정보를 상기 스플릿 프록시 서버의 클라이언트 컴포넌트로부터 상기 안전한 연결을 통해 상기 스플릿 프록시 서버의 서버 컴포넌트로 포워딩(forward)하도록 구성된 코드 ― 상기 제1 암호화 정보는 상기 스플릿 프록시 서버의 서버 컴포넌트와 연관되어 유지되는 상기 개인 키를 사용하여 프로세싱되도록 구성됨 ―; 및
    상기 스플릿 프록시 서버의 서버 컴포넌트로부터 상기 안전한 연결을 통해 제1 응답 또는 제2 응답을 수신하도록 구성된 코드 ― 상기 제1 응답은 제2 암호화 정보를 포함하고, 상기 제2 암호화 정보는, 상기 제1 암호화 정보의 해시(hash)를 생성함으로써 상기 스플릿 프록시 서버의 서버 컴포넌트에서 생성되었고, 상기 제1 암호화 정보의 캐시(cache)로의 인덱스로서 상기 해시를 이용하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하는지를 상기 해시에 기초하여 결정하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하지 않는 경우 상기 캐시에 상기 제1 암호화 정보를 저장하고, 상기 개인 키를 획득하고 룩업(look up)하고, 상기 개인 키를 상기 제1 암호화 정보에 적용하며, 상기 제2 응답은, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하는 경우 생성된 에러 표시이며, 수신된 상기 제2 암호화 정보는 상기 안전한 핸드셰이크 요청의 프로세싱 동안 상기 제1 머신에서 사용하기 위해 추가로 상기 키 교환을 하도록 구성됨 ―
    를 포함하는,
    장치.
  2. 제 1 항에 있어서,
    상기 제1 암호화 정보는 암호화된 프리-마스터 시크릿(pre-master secret)이고 상기 제2 암호화 정보는 암호해독된 프리-마스터 시크릿이며, 상기 프로그램 코드는, 마스터 시크릿(master secret)을 발생시키기 위해 상기 암호해독된 프리-마스터 시크릿을 이용하는 코드를 더 포함하는,
    장치.
  3. 제 2 항에 있어서,
    상기 마스터 시크릿을 상기 클라이언트에 리턴하는 코드를 더 포함하는,
    장치.
  4. 제 2 항에 있어서,
    상기 프리-마스터 시크릿은 비대칭 Rivest-Shamir-Adelman(RSA) 암호화를 이용하여 확립되는,
    장치.
  5. 제 1 항에 있어서,
    상기 안전한 연결은 상호-인증된(mutually-authenticated) 연결인,
    장치.
  6. 제 1 항에 있어서,
    상기 안전한 핸드셰이크 요청은 Secure Sockets Layer(SSL) 핸드셰이크 요청 및 Transport Layer Security(TLS) 핸드셰이크 요청 중 하나인,
    장치.
  7. 통신을 안전하게 하는 방법으로서,
    제1 머신 상에서 실행되는 스플릿 프록시 서버의 클라이언트 컴포넌트와 제2 머신 상에서 실행되는 스플릿 프록시 서버의 서버 컴포넌트 사이에 안전한 연결을 확립하는 단계 ― 상기 제2 머신은 상기 제1 머신으로부터 멀리 떨어져 위치되고, 상기 안전한 연결은 증명서 체인이 주어진 증명서 권한에 매칭되는 루트 노드를 갖는지를 검증하는 상기 스플릿 프록시 서버의 상기 서버 컴포넌트 및 상기 클라이언트 컴포넌트 각각에 의해 적어도 부분적으로 확립됨 ―;
    상기 제1 머신 상에서 실행되는 상기 스플릿 프록시 서버의 클라이언트 컴포넌트에 의해, 안전한 핸드셰이크 요청을 수신하는 단계;
    상기 안전한 핸드셰이크 요청을 수신하자마자, 상기 스플릿 프록시 서버의 클라이언트 컴포넌트에 의해, 그리고 학습 테이블 내의 정보에 기초하여, 상기 스플릿 프록시 서버의 서버 컴포넌트와 연관되고 원격으로 보유된 개인 키를 적어도 부분적으로 사용하여, 상기 안전한 핸드셰이크 요청과 연관된 키 교환이 프로세싱될 수 있는지를 결정하는 단계;
    원격으로 보유된 상기 개인 키를 적어도 부분적으로 사용함으로써 상기 안전한 핸드셰이크 요청이 프로세싱될 수 있는지를 결정함에 기초하여, 제1 암호화 정보를 상기 스플릿 프록시 서버의 클라이언트 컴포넌트로부터 상기 안전한 연결을 통해 상기 스플릿 프록시 서버의 서버 컴포넌트로 프록싱(proxying)하는 단계;
    상기 스플릿 프록시 서버의 서버 컴포넌트로부터 상기 안전한 연결을 통해 제1 응답 또는 제2 응답을 수신하는 단계 ― 상기 제1 응답은 제2 암호화 정보를 포함하는 응답이고, 상기 제2 암호화 정보는, 상기 제1 암호화 정보의 해시를 생성함으로써 상기 스플릿 프록시 서버의 서버 컴포넌트에서 생성되었고, 상기 제1 암호화 정보의 캐시로의 인덱스로서 상기 해시를 이용하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하는지를 상기 해시에 기초하여 결정하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하지 않는 경우 상기 캐시에 상기 제1 암호화 정보를 저장하고, 상기 개인 키를 획득하고 룩업하고, 그리고 상기 개인 키를 상기 제1 암호화 정보에 적용하며, 상기 제2 암호화 정보는 상기 안전한 핸드셰이크 요청의 프로세싱 동안 상기 제1 머신에서의 사용을 위해 상기 키 교환에 추가로 구성되며, 상기 제2 응답은, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하는 경우 생성된 에러 표시임 ―; 및
    상기 제1 응답이 수신되는 경우, 상기 제2 암호화 정보를 상기 키 교환에 추가로 사용하는 단계
    를 포함하는,
    통신을 안전하게 하는 방법.
  8. 제 7 항에 있어서,
    상기 안전한 연결은 상호-인증된 연결인,
    통신을 안전하게 하는 방법.
  9. 제 7 항에 있어서,
    상기 안전한 핸드셰이크 요청은 SSL 핸드셰이크 요청 및 TLS 핸드셰이크 요청 중 하나인,
    통신을 안전하게 하는 방법.
  10. 제 7 항에 있어서,
    상기 제1 암호화 정보는 암호화된 프리-마스터 시크릿이고 상기 제2 암호화 정보는 프리-마스터 시크릿인,
    통신을 안전하게 하는 방법.
  11. 시스템으로서,
    제 1 네트워크-액세스가능 위치에 있고, 하드웨어 상에서 실행되는 프록시 서버 컴포넌트 소프트웨어 프로그램을 포함하는 적어도 하나의 머신;
    제 2 네트워크-액세스가능 위치에 있고, 하드웨어 상에서 실행되는 프록시 클라이언트 컴포넌트 소프트웨어 프로그램을 포함하는 적어도 하나의 머신
    을 포함하고,
    상기 프록시 서버 컴포넌트 소프트웨어 프로그램 및 상기 프록시 클라이언트 컴포넌트 소프트웨어 프로그램은 스플릿 프록시 서버를 포함하고, 자신들 사이의 안전한 연결을 확립 및 유지하는 코드를 각각 포함하고, 상기 안전한 연결은 증명서 체인이 주어진 증명서 권한에 매칭되는 루트 노드를 갖는지를 검증하는 상기 스플릿 프록시 서버의 상기 프록시 서버 컴포넌트 소프트웨어 프로그램 및 상기 프록시 클라이언트 컴포넌트 소프트웨어 프로그램 각각에 의해 적어도 부분적으로 확립되고;
    상기 프록시 클라이언트 컴포넌트 소프트웨어 프로그램은, 클라이언트로부터 안전한 핸드셰이크 요청을 수신하도록 구성되고;
    상기 프록시 클라이언트 컴포넌트 소프트웨어 프로그램은, 학습 테이블 내의 정보에 기초하여, 상기 프록시 서버 컴포넌트 소프트웨어 프로그램과 연관되고 원격으로 보유된 개인 키를 사용하여, 상기 안전한 핸드셰이크 요청과 연관된 키 교환이 프로세싱될 수 있는지를 결정하도록 구성되고;
    상기 프록시 클라이언트 컴포넌트 소프트웨어 프로그램은, 원격으로 보유된 상기 개인 키를 사용하여 상기 안전한 핸드셰이크 요청이 프로세싱될 수 있는지를 결정하자마자, 상기 안전한 연결을 통해 제1 암호화 정보를 상기 프록시 서버 컴포넌트 소프트웨어 프로그램으로 포워딩(forwarding)하고;
    상기 프록시 서버 컴포넌트 소프트웨어 프로그램은, 상기 프록시 클라이언트 컴포넌트 소프트웨어 프로그램으로부터 포워딩된 상기 제1 암호화 정보를 수신하도록 구성되고;
    상기 프록시 서버 컴포넌트 소프트웨어 프로그램은, 상기 안전한 연결을 통해 제1 응답 또는 제2 응답을 상기 프록시 클라이언트 컴포넌트 소프트웨어 프로그램으로 리턴하도록 추가로 구성되고, 상기 제1 응답은 제2 암호화 정보를 포함하는 응답이고, 상기 제2 암호화 정보는, 상기 제1 암호화 정보를 수신함으로써 상기 프록시 서버 컴포넌트 소프트웨어 프로그램에서 생성되었고, 상기 제1 암호화 정보의 해시를 생성하고, 상기 제1 암호화 정보의 캐시로의 인덱스로서 상기 해시를 이용하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하는지를 상기 해시에 기초하여 결정하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하는 경우에는 주어진 상태 표시를 리턴하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하지 않는 경우에는 상기 캐시에 상기 제1 암호화 정보를 저장하고, 상기 개인 키를 획득하고 룩업하고, 그리고 상기 개인 키를 상기 제1 암호화 정보에 적용하여 상기 제2 암호화 정보를 생성하고, 상기 제2 응답은, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하는 경우 생성된 에러 표시이며;
    상기 프록시 클라이언트 컴포넌트 소프트웨어 프로그램은, 상기 제2 암호화 정보를 수신하고 상기 안전한 핸드셰이크 요청의 프로세싱 동안 상기 제2 암호화 정보를 상기 키 교환에 추가로 사용하는,
    시스템.
  12. 제 11 항에 있어서,
    상기 제 1 네트워크-액세스가능 위치는 엔티티와 연관된 데이터 센터이고,
    상기 제 2 네트워크-액세스가능 위치는 상기 제 1 네트워크-액세스가능 위치로부터 원격의 물리적 위치인,
    시스템.
  13. 제 12 항에 있어서,
    상기 데이터 센터와 상기 물리적 위치 중에서, 상기 데이터 센터가 더 높은 보안 정도를 갖는,
    시스템.
  14. 제 11 항에 있어서,
    상기 프록시 서버 컴포넌트 소프트웨어 프로그램은 상기 캐시와 연관되고,
    상기 캐시는, 적어도 상기 프록시 클라이언트 컴포넌트 소프트웨어 프로그램으로부터의 암호화된 프리-마스터 시크릿들을 저장하는,
    시스템.
  15. 제 14 항에 있어서,
    상기 캐시는 암호화된 프리-마스터 시크릿들의 최소 최근 사용(least recently used)(LRU) 캐시인,
    시스템.
  16. 제 15 항에 있어서,
    상기 프록시 서버 컴포넌트 소프트웨어 프로그램은 상기 제1 암호화 정보로서 암호화된 프리-마스터 시크릿을 수신하고, 상기 수신된 암호화된 프리-마스터 시크릿의 해시를 발생시키고, 상기 암호화된 프리-마스터 시크릿이 상기 캐시에 존재하는지를 결정하기 위해 상기 캐시로의 인덱스로서 상기 해시를 이용하는,
    시스템.
  17. 제 11 항에 있어서,
    상기 안전한 연결은 상호-인증된 연결인,
    시스템.
  18. 제 11 항에 있어서,
    상기 안전한 연결은 상호-인증된 SSL 연결인,
    시스템.
  19. 제 11 항에 있어서,
    상기 제1 암호화 정보는 암호화된 프리-마스터 시크릿이고 상기 제2 암호화 정보는 프리-마스터 시크릿인,
    시스템.
  20. 제2 머신인 장치로서,
    상기 제2 머신은 제1 머신으로부터 멀리 떨어져 위치되고, 상기 제1 머신은 제공(providing) 엔티티에 의해 조종(manage)되고, 상기 장치는:
    프로세서;
    상기 프로세서에 의해 실행되도록 구성된 프로그램 코드를 보유하는 컴퓨터 메모리
    를 포함하고,
    상기 프로그램 코드는 스플릿 프록시 서버의 서버 컴포넌트로서 구성되는 코드를 포함하고, 상기 스플릿 프록시 서버는 또한 상기 제2 머신으로부터 멀리 떨어진 제1 머신 상에서 실행되고 상기 서버 컴포넌트로부터 떨어진 클라이언트 컴포넌트를 가지며,
    상기 프로그램 코드는:
    증명서 체인이 상기 제공 엔티티와 연관된 주어진 증명서 권한에 매칭되는 루트 노드를 갖는지를 적어도 부분적으로 검증함으로써 상기 스플릿 프록시 서버의 클라이언트 컴포넌트로의 안전한 연결을 확립하는 코드,
    상기 스플릿 프록시 서버의 클라이언트 컴포넌트로부터 안전한 핸드셰이크 요청과 연관된 제1 암호화 정보를 수신하는 코드 ― 상기 안전한 핸드셰이크 요청은 클라이언트로부터 상기 스플릿 프록시 서버의 클라이언트 컴포넌트에서 수신되었고, 상기 제1 암호화 정보는 안전한 연결을 통해 상기 스플릿 프록시 서버의 서버 컴포넌트와 연관되고 원격으로 보유된 개인 키를 적어도 부분적으로 사용하여, 상기 안전한 핸드셰이크 요청과 연관된 키 교환이 프로세싱될 수 있는 상기 스플릿 프록시 서버의 클라이언트 컴포넌트에서의 결정에 따라 상기 안전한 연결을 통해 수신되었음 ―;
    상기 제1 암호화 정보의 해시를 생성하고, 캐시로의 인덱스로서 상기 해시를 이용하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하는지를 상기 해시에 기초하여 결정하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하는 경우에는 주어진 상태 표시를 리턴하고, 상기 제1 암호화 정보가 상기 캐시에 이미 존재하지 않는 경우에는 상기 캐시에 상기 제1 암호화 정보를 저장하고, 상기 개인 키를 획득하고 룩업하고, 그리고 상기 개인 키를 상기 제1 암호화 정보에 적용하여 제2 암호화 정보를 생성하는 코드;
    상기 안전한 연결을 통해 상기 스플릿 프록시 서버의 클라이언트 컴포넌트로 응답을 리턴하는 코드 ― 상기 응답은 상기 제2 암호화 정보를 포함하고, 상기 제2 암호화 정보는 상기 안전한 핸드셰이크 요청의 프로세싱 동안 상기 키 교환을 추가로 가능하게 하는데 유용함 ―
    를 포함하는,
    장치.
  21. 제 20 항에 있어서,
    데이터 저장소(store)를 더 포함하고, 상기 데이터 저장소는 적어도 상기 스플릿 프록시 서버의 클라이언트 컴포넌트로부터의 암호화된 프리-마스터 시크릿들을 저장하기 위한 캐시인,
    장치.
  22. 제 21 항에 있어서,
    상기 캐시는 암호화된 프리-마스터 시크릿들의 최소 최근 사용(least recently used)(LRU) 캐시인,
    장치.
  23. 제 22 항에 있어서,
    상기 프로그램 코드는, 상기 제1 암호화 정보로서 암호화된 프리-마스터 시크릿을 수신하고, 상기 수신된 암호화된 프리-마스터 시크릿의 해시를 발생시키고, 상기 암호화된 프리-마스터 시크릿이 상기 캐시에 존재하는지를 결정하기 위해 상기 캐시로의 인덱스로서 상기 해시를 이용하는,
    장치.
  24. 제 23 항에 있어서,
    상기 프리-마스터 시크릿은 비대칭 RSA 암호화를 이용하여 확립되는,
    장치.
  25. 제 20 항에 있어서,
    상기 안전한 연결은 상호-인증된 연결인,
    장치.
  26. 제 20 항에 있어서,
    상기 안전한 핸드셰이크 요청은 SSL 핸드셰이크 요청 및 TLS 핸드셰이크 요청 중 하나인,
    장치.
  27. 제 20 항에 있어서,
    상기 제1 암호화 정보는 암호화된 프리-마스터 시크릿이고 상기 제2 암호화 정보는 프리-마스터 시크릿인,
    장치.
KR1020147019812A 2011-12-16 2012-12-17 로컬적으로-액세스가능한 개인 키들 없이 ssl 연결들을 종결 KR102069642B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161576378P 2011-12-16 2011-12-16
US61/576,378 2011-12-16
US13/714,656 US9647835B2 (en) 2011-12-16 2012-12-14 Terminating SSL connections without locally-accessible private keys
US13/714,656 2012-12-14
PCT/US2012/070075 WO2013090894A1 (en) 2011-12-16 2012-12-17 Terminating ssl connections without locally-accessible private keys

Publications (2)

Publication Number Publication Date
KR20140103342A KR20140103342A (ko) 2014-08-26
KR102069642B1 true KR102069642B1 (ko) 2020-01-23

Family

ID=48610147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147019812A KR102069642B1 (ko) 2011-12-16 2012-12-17 로컬적으로-액세스가능한 개인 키들 없이 ssl 연결들을 종결

Country Status (9)

Country Link
US (2) US9647835B2 (ko)
EP (1) EP2792102A4 (ko)
JP (1) JP6113183B2 (ko)
KR (1) KR102069642B1 (ko)
CN (1) CN104081711B (ko)
AU (2) AU2012351909A1 (ko)
BR (1) BR112014033155B1 (ko)
CA (1) CA2859285C (ko)
WO (1) WO2013090894A1 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2316071A4 (en) * 2008-06-19 2011-08-17 Servicemesh Inc CLOUD DATA PROCESSING GATEWAY, CLOUD DATA PROCESSING HYPERVISOR, AND METHOD FOR IMPLEMENTING THEM
US9069599B2 (en) 2008-06-19 2015-06-30 Servicemesh, Inc. System and method for a cloud computing abstraction layer with security zone facilities
US10411975B2 (en) 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US9489647B2 (en) 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
US9015469B2 (en) 2011-07-28 2015-04-21 Cloudflare, Inc. Supporting secure sessions in a cloud-based proxy service
US9531691B2 (en) 2011-12-16 2016-12-27 Akamai Technologies, Inc. Providing forward secrecy in a terminating TLS connection proxy
US9531685B2 (en) 2011-12-16 2016-12-27 Akamai Technologies, Inc. Providing forward secrecy in a terminating SSL/TLS connection proxy using Ephemeral Diffie-Hellman key exchange
US8782774B1 (en) * 2013-03-07 2014-07-15 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US9026783B2 (en) * 2013-03-07 2015-05-05 Google Inc. Low latency server-side redirection of UDP-based transport protocols traversing a client-side NAT firewall
KR101737747B1 (ko) * 2013-08-30 2017-05-29 맥아피 인코퍼레이티드 집계된 데이터의 탬퍼 방지 개선
US10110592B2 (en) * 2013-10-09 2018-10-23 Digicert, Inc. Reducing latency for certificate validity messages using private content delivery networks
US9887982B2 (en) 2013-10-09 2018-02-06 Digicert, Inc. Accelerating OCSP responses via content delivery network collaboration
EP3085008B1 (en) * 2013-12-18 2020-01-08 Akamai Technologies, Inc. Providing forward secrecy in a terminating tls connection proxy
US8996873B1 (en) * 2014-04-08 2015-03-31 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US9184911B2 (en) 2014-04-08 2015-11-10 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US8966267B1 (en) 2014-04-08 2015-02-24 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
WO2016073552A1 (en) * 2014-11-04 2016-05-12 Akamai Technologies, Inc. Providing forward secrecy in a terminating ssl/tls connection proxy using ephemeral diffie-hellman key exchange
US10516532B2 (en) 2015-01-22 2019-12-24 Micro Focus Llc Session key repository
US10404475B2 (en) 2015-01-22 2019-09-03 Visa International Service Association Method and system for establishing a secure communication tunnel
CN105471896B (zh) * 2015-12-28 2019-01-15 深信服科技股份有限公司 基于ssl的代理方法、装置及系统
US10904229B2 (en) 2015-12-29 2021-01-26 Akamai Technologies, Inc. Caching content securely within an edge environment, with pre-positioning
US10904332B2 (en) 2015-12-29 2021-01-26 Akamai Technologies, Inc. Caching content securely within an edge environment
CN105471916B (zh) * 2016-01-13 2018-08-17 西安电子科技大学 防范安全套接层潜信道密钥恢复的方法
US10447658B2 (en) * 2016-01-22 2019-10-15 Citrix Systems, Inc. System and method for providing improved optimization for secure session connections
CN107172001B (zh) * 2016-03-07 2020-09-01 阿里巴巴集团控股有限公司 网站代理服务器的控制方法及装置、密钥代理服务器
US10171452B2 (en) * 2016-03-31 2019-01-01 International Business Machines Corporation Server authentication using multiple authentication chains
CN105871858A (zh) * 2016-04-15 2016-08-17 浪潮集团有限公司 一种保证数据安全的方法及系统
CN106230782A (zh) 2016-07-20 2016-12-14 腾讯科技(深圳)有限公司 一种基于内容分发网络的信息处理方法及装置
CN110808989B (zh) * 2016-09-30 2022-01-21 贵州白山云科技股份有限公司 一种基于内容分发网络的https加速方法和系统
US10887291B2 (en) 2016-12-16 2021-01-05 Amazon Technologies, Inc. Secure data distribution of sensitive data across content delivery networks
US10587586B2 (en) 2017-01-10 2020-03-10 Mocana Corporation System and method for a multi system trust chain
CN107707517B (zh) * 2017-05-09 2018-11-13 贵州白山云科技有限公司 一种HTTPs握手方法、装置和系统
CN108401011B (zh) * 2018-01-30 2021-09-24 网宿科技股份有限公司 内容分发网络中握手请求的加速方法、设备及边缘节点
US11418352B2 (en) * 2018-02-21 2022-08-16 Akamai Technologies, Inc. Certificate authority (CA) security model in an overlay network supporting a branch appliance
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
CN108449346B (zh) * 2018-03-22 2021-07-27 北京可信华泰科技有限公司 一种密钥生成客户端
US10979403B1 (en) 2018-06-08 2021-04-13 Amazon Technologies, Inc. Cryptographic configuration enforcement
CN109213744A (zh) * 2018-06-20 2019-01-15 中译语通科技(青岛)有限公司 一种基于大数据的智能运维技术
US11483347B2 (en) 2018-12-05 2022-10-25 Akamai Technologies, Inc. High performance distributed system of record with secure interoperability to external systems
US11595217B2 (en) 2018-12-06 2023-02-28 Digicert, Inc. System and method for zero touch provisioning of IoT devices
CN111404668B (zh) * 2019-01-02 2023-07-21 中国移动通信有限公司研究院 一种信息处理方法、设备及存储介质
US10903990B1 (en) 2020-03-11 2021-01-26 Cloudflare, Inc. Establishing a cryptographic tunnel between a first tunnel endpoint and a second tunnel endpoint where a private key used during the tunnel establishment is remotely located from the second tunnel endpoint
CN113254989B (zh) * 2021-04-27 2022-02-15 支付宝(杭州)信息技术有限公司 目标数据的融合方法、装置和服务器
US11991291B1 (en) * 2022-03-31 2024-05-21 Amazon Technologies, Inc. Content-based domain name enconding, encryption, and routing system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060064750A1 (en) * 2004-09-22 2006-03-23 Kersey Edward C System and methods for transparent encryption
US20070074282A1 (en) * 2005-08-19 2007-03-29 Black Jeffrey T Distributed SSL processing
WO2007134082A2 (en) * 2006-05-08 2007-11-22 Intelligent Compression Technologies, Inc. Security-preserving proxy tunnel
US20100153838A1 (en) 2001-01-26 2010-06-17 Palmsource, Inc. Adaptive content delivery
US20110264905A1 (en) 2010-04-21 2011-10-27 Michael Ovsiannikov Systems and methods for split proxying of ssl via wan appliances

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094485A (en) * 1997-09-18 2000-07-25 Netscape Communications Corporation SSL step-up
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
JP2000312203A (ja) 1999-04-27 2000-11-07 Nippon Telegr & Teleph Corp <Ntt> 暗号通信の通過制御方法およびシステム
EP1113617B1 (en) 1999-12-21 2008-05-28 ContentGuard Holdings, Inc. Method for transferring the right to decode messages
US7340532B2 (en) 2000-03-10 2008-03-04 Akamai Technologies, Inc. Load balancing array packet routing system
US7240100B1 (en) 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US6996616B1 (en) 2000-04-17 2006-02-07 Akamai Technologies, Inc. HTML delivery from edge-of-network servers in a content delivery network (CDN)
US7111057B1 (en) 2000-10-31 2006-09-19 Akamai Technologies, Inc. Method and system for purging content from a content delivery network
US7360075B2 (en) 2001-02-12 2008-04-15 Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
WO2002079905A2 (en) 2001-04-02 2002-10-10 Akamai Technologies, Inc. Scalable, high performance and highly available distributed storage system for internet content
US6996841B2 (en) 2001-04-19 2006-02-07 Microsoft Corporation Negotiating secure connections through a proxy server
US7640434B2 (en) * 2001-05-31 2009-12-29 Trend Micro, Inc. Identification of undesirable content in responses sent in reply to a user request for content
US7043632B2 (en) * 2001-12-12 2006-05-09 Nortel Networks Limited End-to-end security in data networks
US7254634B1 (en) 2002-03-08 2007-08-07 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US7133905B2 (en) 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US7529933B2 (en) * 2002-05-30 2009-05-05 Microsoft Corporation TLS tunneling
US7007163B2 (en) 2002-05-31 2006-02-28 Broadcom Corporation Methods and apparatus for accelerating secure session processing
US7082534B2 (en) 2002-05-31 2006-07-25 Broadcom Corporation Method and apparatus for performing accelerated authentication and decryption using data blocks
US20040093419A1 (en) 2002-10-23 2004-05-13 Weihl William E. Method and system for secure content delivery
US7873829B2 (en) * 2002-11-06 2011-01-18 International Business Machines Corporation Offload processing for secure data transfer
JP2004206573A (ja) 2002-12-26 2004-07-22 Toshiba Corp データ転送装置、サーバー装置、情報提供システム、データ転送方法及びプログラム
JP2004254027A (ja) * 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
US7660896B1 (en) 2003-04-15 2010-02-09 Akamai Technologies, Inc. Method of load balancing edge-enabled applications in a content delivery network (CDN)
WO2006046289A1 (ja) 2004-10-28 2006-05-04 Mitsubishi Denki Kabushiki Kaisha 通信装置および通信方法
US7657940B2 (en) * 2004-10-28 2010-02-02 Cisco Technology, Inc. System for SSL re-encryption after load balance
JP4371982B2 (ja) * 2004-11-08 2009-11-25 キヤノン株式会社 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US8438628B2 (en) * 2005-08-10 2013-05-07 Riverbed Technology, Inc. Method and apparatus for split-terminating a secure network connection, with client authentication
EP1777907B1 (de) * 2005-10-20 2007-12-12 Ubs Ag Vorrichtungen und Verfahren zum Durchführen von kryptographischen Operationen in einem Server-Client-Rechnernetzwerksystem
WO2007078329A2 (en) 2005-12-30 2007-07-12 Skyetek, Inc. Seamless rfid tag security system
US20080052770A1 (en) 2006-03-31 2008-02-28 Axalto Inc Method and system of providing security services using a secure device
FR2899749B1 (fr) 2006-04-07 2008-07-04 Groupe Ecoles Telecomm Procede de protection d'identite, dispositifs, et produit programme d'ordinateur correspondants.
US7966646B2 (en) 2006-07-31 2011-06-21 Aruba Networks, Inc. Stateless cryptographic protocol-based hardware acceleration
US8352728B2 (en) * 2006-08-21 2013-01-08 Citrix Systems, Inc. Systems and methods for bulk encryption and decryption of transmitted data
US8095787B2 (en) * 2006-08-21 2012-01-10 Citrix Systems, Inc. Systems and methods for optimizing SSL handshake processing
US8230214B2 (en) * 2006-08-21 2012-07-24 Citrix Systems, Inc. Systems and methods for optimizing SSL handshake processing
US8200960B2 (en) * 2006-10-20 2012-06-12 Oracle America, Inc. Tracking of resource utilization during cryptographic transformations
JP4386926B2 (ja) * 2007-02-16 2009-12-16 富士通株式会社 暗号通信プログラム、暗号通信方法および暗号通信装置
US20100031337A1 (en) 2007-04-09 2010-02-04 Certeon, Inc. Methods and systems for distributed security processing
US8225085B2 (en) * 2007-06-05 2012-07-17 Blue Coat Systems, Inc. System and method for distributed SSL processing between co-operating nodes
US8549282B2 (en) * 2007-06-22 2013-10-01 Trend Micro Incorporated Method and system for monitoring encrypted data transmissions
US8145768B1 (en) * 2008-02-26 2012-03-27 F5 Networks, Inc. Tuning of SSL session caches based on SSL session IDS
JP2009206568A (ja) 2008-02-26 2009-09-10 Nippon Telegr & Teleph Corp <Ntt> サービス妨害攻撃に耐性を持つssl/tls準拠システム、方法、サーバ、プログラムおよび記録媒体
US8788805B2 (en) * 2008-02-29 2014-07-22 Cisco Technology, Inc. Application-level service access to encrypted data streams
KR101528855B1 (ko) * 2008-03-04 2015-06-15 삼성전자주식회사 홈 네트워크에서 인증 정보를 관리하는 방법 및 그 장치
US8700892B2 (en) * 2010-03-19 2014-04-15 F5 Networks, Inc. Proxy SSL authentication in split SSL for client-side proxy agent resources with content insertion
US20140244998A1 (en) * 2010-11-09 2014-08-28 Secure64 Software Corporation Secure publishing of public-key certificates
US8649275B2 (en) * 2011-01-19 2014-02-11 Ixia Fast SSL testing using precalculated cryptographyc data
US8806609B2 (en) * 2011-03-08 2014-08-12 Cisco Technology, Inc. Security for remote access VPN
US8782774B1 (en) 2013-03-07 2014-07-15 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100153838A1 (en) 2001-01-26 2010-06-17 Palmsource, Inc. Adaptive content delivery
US20060064750A1 (en) * 2004-09-22 2006-03-23 Kersey Edward C System and methods for transparent encryption
US20070074282A1 (en) * 2005-08-19 2007-03-29 Black Jeffrey T Distributed SSL processing
WO2007134082A2 (en) * 2006-05-08 2007-11-22 Intelligent Compression Technologies, Inc. Security-preserving proxy tunnel
US20110264905A1 (en) 2010-04-21 2011-10-27 Michael Ovsiannikov Systems and methods for split proxying of ssl via wan appliances

Also Published As

Publication number Publication date
JP6113183B2 (ja) 2017-04-12
AU2017200724A1 (en) 2017-02-23
KR20140103342A (ko) 2014-08-26
CN104081711A (zh) 2014-10-01
US20130156189A1 (en) 2013-06-20
US9647835B2 (en) 2017-05-09
CN104081711B (zh) 2018-01-12
BR112014033155A2 (pt) 2017-08-01
WO2013090894A1 (en) 2013-06-20
JP2015505994A (ja) 2015-02-26
CA2859285C (en) 2020-06-09
AU2012351909A1 (en) 2014-07-03
EP2792102A1 (en) 2014-10-22
CA2859285A1 (en) 2013-06-20
US11038854B2 (en) 2021-06-15
BR112014033155B1 (pt) 2022-04-12
US20170244681A1 (en) 2017-08-24
EP2792102A4 (en) 2015-07-29

Similar Documents

Publication Publication Date Title
US11038854B2 (en) Terminating SSL connections without locally-accessible private keys
US11477037B2 (en) Providing forward secrecy in a terminating SSL/TLS connection proxy using ephemeral Diffie-Hellman key exchange
US10091240B2 (en) Providing forward secrecy in a terminating TLS connection proxy
US10298615B2 (en) Splicing into an active TLS session without a certificate or private key
EP3216163B1 (en) Providing forward secrecy in a terminating ssl/tls connection proxy using ephemeral diffie-hellman key exchange
EP3085008B1 (en) Providing forward secrecy in a terminating tls connection proxy

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