KR102277427B1 - 인증서 또는 개인 키 없이 액티브 tls 세션으로 스플라이싱하는 것 - Google Patents

인증서 또는 개인 키 없이 액티브 tls 세션으로 스플라이싱하는 것 Download PDF

Info

Publication number
KR102277427B1
KR102277427B1 KR1020157034516A KR20157034516A KR102277427B1 KR 102277427 B1 KR102277427 B1 KR 102277427B1 KR 1020157034516 A KR1020157034516 A KR 1020157034516A KR 20157034516 A KR20157034516 A KR 20157034516A KR 102277427 B1 KR102277427 B1 KR 102277427B1
Authority
KR
South Korea
Prior art keywords
computing entity
tls
encrypted
data
response
Prior art date
Application number
KR1020157034516A
Other languages
English (en)
Other versions
KR20160005106A (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 KR20160005106A publication Critical patent/KR20160005106A/ko
Application granted granted Critical
Publication of KR102277427B1 publication Critical patent/KR102277427B1/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/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
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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/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/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • H04L9/0841Key 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 involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key 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 involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys

Abstract

오리진 서버는 선택적으로, 중재자(예를 들어, 에지 서버)가, 클라이언트와 오리진 서버 사이에서 계속 진행중인 액티브 TLS 세션으로 그리고 이 액티브 TLS 세션 외부로 션트(shunt)하는 것을 가능하게 한다. 기술은, 에지 서버가 전체 스트림의 제어를 획득하거나 해당 포인트 이후 임의의 데이터를 복호화하는 능력이 없어도, (에지 서버에 의한) 인증 캐싱 콘텐츠(authentic cached content)의 송신에 대해 데이터 스트림의 선택적인 피스들이 오리진 서버로부터 에지 서버로 선정되게 허용한다. 기술은, 오리진이 TLS 세션의 특정 포인트에서 캐시 데이터가 삽입되도록 에지 서버에게 권한을 주는 것 뿐만아니라 오리진이 적절할 것으로 여겨질 때까지 스트림에 대한 어떠한 추가의 액세스를 수학적으로(mathematically) 그리고 암호적으로 리보크하는 것을 가능하게 한다.

Description

인증서 또는 개인 키 없이 액티브 TLS 세션으로 스플라이싱하는 것{SPLICING INTO AN ACTIVE TLS SESSION WITHOUT A CERTIFICATE OR PRIVATE KEY}
본 출원은 일반적으로, TLS(Transport Layer Security)와 같은 암호화 프로토콜들을 이용하여 네트워크-기반 통신들을 보호하는 것에 관한 것이다.
TLS(Transport Layer Security) 및 그것의 선행자, SSL(Secure Sockets Layer)은 인터넷 통신 보안을 제공하는 암호화 프로토콜들이다. 이들은 인증 및 키 교환을 위해서는 비대칭 암호기법을, 기밀성을 위해서는 대칭 암호화를, 그리고 메시지 무결성을 위해서는 메시지 인증 코드들을 사용한다. TLS/SSL은 세션 계층에서 초기화되고, 그 다음으로, 프리젠테이션 계층에서 동작한다. 특히, 먼저, 세션 계층은 그 세션을 위해 암호 셋팅들 및 공유 키를 확립하기 위해 비대칭 암호를 이용한 핸드셰이크를 갖는다. 그후, 프리젠테이션 계층은 대칭 암호 및 그 세션 키를 이용하여 통신의 나머지를 암호화한다. 모델들 양쪽 모두에서, 세그먼트들이 암호화된 데이터를 반송하는 근본적인 전송 계층 대신에 TLS 및 SSL이 동작한다. TLS은 RFC 5246 및 RFC 6176에서 정의된 IETF 표준 트랙 프로토콜이다.
분산형 컴퓨터 시스템들이 종래 기술에서 잘 알려져 있다. 하나의 이러한 분산형 컴퓨터 시스템은, 서비스 제공자에 의해 동작 및 관리되는 "CDN(content delivery network)" 또는 "오버레이 네트워크(overlay network)"이다. 서비스 제공자는 통상적으로, 서비스 제공자의 공유된 인프라스트럭쳐를 이용하는 제삼자들(고객들) 대신에 콘텐츠 전달 서비스를 제공한다. 이러한 유형의 분산형 시스템은 통상적으로, 다양한 서비스들, 이를테면, 콘텐츠 전달, 웹 애플리케이션 가속, 또는 아웃소싱된 원점 사이트 인프라스트럭쳐(outsourced origin site infrastructure)의 다른 지원을 용이하게 하도록 설계된 소프트웨어, 시스템들, 프로토콜들 및 기법들과 함께, 네트워크 또는 네트워크들에 의해 링크된 자율적 컴퓨터(autonomous computer)들의 집합을 나타낸다. CDN 서비스 제공자는 통상적으로, 고객 포털에 프로비져닝되고 그 다음으로 네트워크에 배치되는 디지털 특징들(이를테면, 웹사이트)을 통해 서비스 전달을 제공한다. 디지털 특징은 통상적으로, 서비스 제공자가 트래픽을 처리하고 그리고 자신의 고객에게 빌링하도록 허용하는 하나 또는 둘 이상의 에지 구성들에 묶인다.
종래의 RSA-기반 TLS 세션에 대해, 접속의 양측들은 세션의 나머지에 대한 파라미터들을 생성하기 위해 사용되는 "사전-마스터 비밀(pre-master secret)"(PMS)에 동의한다. 통상적으로, 양측들은, 평문(plaintext)으로 실제의 값을 교환하지 않으면서 사전-마스터 비밀을 설정하기 위해 RSA 비대칭적 암호화를 사용한다. 동작에서, SSL 클라이언트는, 사전-마스터 비밀을 생성하고, TLS 서버의 공용으로 이용가능한 RSA 키로 사전-마스터 비밀을 암호화한다. 이것은, 암호화된(encrypted) 사전-마스터 비밀(ePMS)을 생성하고, 이는 그 후, TLS 서버에 제공된다. TLS 서버는 개인 복호화 키를 가지며, 이는 그 후, 암호화된 사전-마스터 비밀을 복호화하기 위해 사용된다. 그 시점에서, 클라이언트 및 서버 둘 모두는 오리지널 사전-마스터 비밀을 갖고, 실제의 암호화된 그리고 안전한 데이터 교환을 위한 대칭적 키를 생성하기 위해 오리지널 사전-마스터 비밀을 사용할 수 있다. 암호화된 사전-마스터 비밀을 복호화하는 것은, 오직 개인 키가 요구되는 TLS 접속에서의 시점에만 이루어진다. 이러한 복호화는 소위 TLS 종결 포인트에서 발생한다. 보안 컨텐츠의 전달을 용이하게 하기 위해 CDN이 사용되는 경우, TLS 종결 포인트는 CDN에 로케이팅될 것이다.
일부 CDN 고객들은 그들의 개인 TLS(RSA, DSA 등) 키들을 CDN 서비스 제공자와 공유하는 것을 불편해 한다. 추가로, 일부 고객들은, 특정한 데이터 및 요청들이 임의의 트랜잭션(transaction)에서의 임의의 포인트에서 결코 CDN에 의해 복호화되지 않고, 고객을 대신하여 CDN에 의해 송신된 데이터가 증명가능하게 그리고 검증가능하게 인증되는 부가적인 통고(caveat)를 요구할 수도 있다.
본 개시는, 인증 캐싱 컨텐츠(authentic cached content)의 송신에 대해, CDN이 그 시점 이후 임의적인 데이터를 복호화하지 않거나 또는 전체 스트림의 제어를 획득하는 능력을 가짐이 없이, 데이터 스트림의 선택적 피스(piece)들이 고객으로부터 CDN으로 위임(delegate)되도록 허용하는 기술을 설명한다. 기술은, CDN이 캐싱된 데이터를 TLS 세션의 특정 포인트들에 주입(inject)할 뿐만 아니라 오리진(origin)(고객)이 적절하다고 여길 때까지 스트림에 대한 임의의 추가적인 액세스를 수학적으로(mathematically) 그리고 암호적으로 리보크(revoke)하도록, 고객이 인가하는 것을 가능하게 한다.
위의 설명은 요지의 더 적절한 특징들 중 일부를 요약한 것이다. 이러한 특징들은 단지 예시적인 것으로 해석되어야 한다. 많은 다른 유리한 결과들이 개시된 요지를 상이한 방식으로 적용함으로써 또는 설명될 바와 같은 요지를 변형함으로써 획득될 수 있다.
이제, 본 발명의 주제 및 그 이점들의 더욱 완전한 이해를 위해, 첨부 도면들과 함께 취해진 후술하는 설명에 대한 참조가 이루어진다.
도 1은 컨텐츠 전송 네트워크(CDN; content delivery network)로서 구성된 공지된 분산 컴퓨터 시스템을 예시하는 블록도이다.
도 2는 대표적인 CDN 에지 머신 구성이다.
도 3은, 클라이언트, 에지 서버, 및 기원 서버 사이에서의 대표적인 액티브 TLS 세션이며, 이 세션 내부로, 본 개시물에 따른 증명서 및/또는 사설 키 없이, 허용을 통해 에지 서버가 션트하도록 이용된다.
도 1에 나타낸 바와 같은 공지된 시스템에서, 분산 컴퓨터 시스템(100)은 컨텐츠 전송 네트워크(CDN; content delivery network)로서 구성되고 그리고 인터넷 주위에 분산된 일 세트의 머신들(102a-n)을 갖는 것으로 가정된다. 통상적으로, 대부분의 머신들은, 인터넷의 에지 주변에, 즉, 말단 사용자 액세스 네트워크들에 또는 그에 인접하여 위치된 서버들이다. NOCC(network operations command center)(104)는 시스템 내에서 다양한 머신들의 동작들을 관리한다. 웹 사이트(106)와 같은 제 3 자 사이트들은, 분산 컴퓨터 시스템(100)에, 특히, "에지" 서버들에 컨텐츠(예를 들어, HTML, 임베디드 페이지 오브젝트들, 스트리밍 미디어, 소프트웨어 다운로드들, 등)의 전달을 오프로딩한다. 통상적으로, 컨텐츠 제공자들은, 서비스 제공자의 권위있는 도메인 네임 서비스에 의해 관리되는 도메인들에게, 주어진 컨텐츠 제공자 도메인들 또는 서브-도메인들을 에일리어싱함으로써 (예를 들어, DNS CNAME) 그들의 컨텐츠 전송을 오프로딩한다. 컨텐츠를 원하는 말단 사용자들은, 더욱 신뢰가능하고 더욱 효율적으로 그 컨텐츠를 획득하기 위해 분산 컴퓨터 시스템으로 지향된다. 상세하게 나타내지 않았지만, 분산 컴퓨터 시스템은 또한, 모니터링, 로깅, 경고들, 과금, 관리 및 다른 운용적 및 행정적 기능들을 용이하게 하기 위해, 에지 서버들로부터 사용 데이터 및 다른 데이터를 수집하고, 영역 또는 영역들의 세트에 걸쳐 그 데이터를 어그리게이팅하고, 그리고 다른 백-엔드 시스템들(110, 112, 114 및 116)에 그 데이터를 전달(pass)하는 분산 데이터 수집 시스템(108)과 같은 다른 인프라스트럭쳐를 포함할 수 있다. 분산 네트워크 에이전트들(118)은, 네트워크뿐만 아니라 서버 부하들을 모니터링하고, 네트워크, 트래픽 및 부하 데이터를, CDN에 의해 관리되고 있는 컨텐츠 도메인들에 대해 권한이 있는 DNS 쿼리 핸들링 메커니즘(115)에 제공한다. 분산 데이터 전송 메커니즘(120)은, 에지 서버들에 제어 정보(예를 들어, 컨텐츠를 관리하고, 부하 밸런싱을 용이하게 하는 등의 메타데이터)를 분산하도록 이용될 수 있다.
도 2에 예시된 바와 같이, 주어진 기계(200)는, 하나 또는 그 초과의 어플리케이션들(206a-n)을 지원하는 (리눅스 또는 변종과 같은) 운영 체제 커널(204)을 실행하는 상품 하드웨어(예를 들어, 인텔 펜티엄 프로세서)(202)를 포함한다. 컨텐츠 전달 서비스들을 용이하게 하기 위해, 예를 들어, 주어진 기계들은 전형적으로, (종종 "글로벌 호스트(global host)" 프로세스로 지칭되는) HTTP 프록시(207), 네임 서버(208), 로컬 모니터링 프로세스(210), 및 분산형 데이터 수집 프로세스(212), 등과 같은, 어플리케이션들의 세트를 실행한다. 미디어를 스트리밍하기 위해, 기계는 전형적으로, 지원되는 미디어 포맷들에 의해 요구되는 바에 따라, 윈도우 미디어 서버(Windows Media Server; WMS) 또는 플래시 서버와 같은, 하나 또는 그 초과의 미디어 서버들을 포함한다.
CDN 에지 서버(CDN edge server)는, 바람직하게는, 구성 시스템을 사용하여 에지 서버들에 배포된 구성 파일들을 사용하여, 바람직하게는 도메인-특정(domain-specific), 고객-특정(customer-specific)에 기초하여, 하나 또는 그 초과의 확장형 컨텐츠 전달 피처들(features)을 제공하도록 구성된다. 주어진 구성 파일은 바람직하게, XML-기반이고, 하나 또는 그 초과의 진보된 컨텐츠 취급 피처들을 용이하게 하는 지시들(directives) 및 컨텐츠 취급 규칙들의 세트를 포함한다. 구성 파일은 데이터 전송 메커니즘을 통해 CDN 에지 서버에 전달될 수 있다. 미국 특허 제 7,111,057 호는, 에지 서버 컨텐츠 제어 정보를 전달하고 관리하기 위한 유용한 인프라스트럭쳐(infrastructure)를 예시하고, 이러한 그리고 다른 에지 서버 제어 정보는, CDN 서비스 제공자 스스로에 의해, 또는 오리진 서버(origin server)를 운영하는 컨텐츠 제공자 고객에 의해 (엑스트라넷 등을 통해) 제공될 수 있다.
CDN은, 인용에 의해 그 개시물이 본원에 포함되는, 미국 특허 제 7,472,178 호에 설명된 바와 같은, 저장 서브시스템을 포함할 수 있다.
고객 컨텐츠의 중간 캐싱을 제공하기 위해, CDN은 서버 캐시 계층(server cache hierarchy)을 운영할 수 있는데, 그러한 하나의 캐시 계층 서브시스템은, 인용에 의해 그 개시물이 본원에 포함되는, 미국 특허 제 7,376,716 호에서 설명된다.
CDN은, 미국 공개 공보 제 20040093419 호에 설명된 방식으로, 클라이언트 브라우저, 에지 서버, 및 고객 오리진 서버 간의 보안 컨텐츠 전달을 제공할 수 있다.
상기 미국 공개 공보에 설명된 바와 같은 보안 컨텐츠 전달은, 한편으로는 클라이언트와 에지 서버 프로세스 사이에서, 다른 한편으로는 에지 서버 프로세스와 오리진 서버 프로세스 사이에서, SSL-기반 링크들을 적용한다(enforce). 이는, SSL-보호된 웹 페이지 및/또는 그러한 웹 페이지의 컴포넌트들이, 에지 서버를 통해 전달되는 것을 가능하게 한다.
오버레이로서, CDN 리소스들은, 서드 파티 SaaS(software-as-a-service) 제공자들과 (개인적으로-관리될 수 있는) 엔터프라이즈 데이터 센터들 사이에서 WAN(wide area network) 가속 서비스들을 용이하게 하기 위해 사용될 수 있다.
전형적인 동작에서, 컨텐츠 제공자는, 그것이 CDN에 의해 서빙되기를 원하는, 컨텐츠 제공자 도메인 또는 서브-도메인을 식별한다. CDN 서비스 제공자는 (예를 들어, 캐노니컬 네임(canonical name) 또는 CNAME을 통해) 컨텐츠 제공자 도메인을 에지 네트워크(CDN) 호스트네임과 연관시키고, 그 후에, CDN 제공자는 그 에지 네트워크 호스트네임을 컨텐츠 제공자에게 제공한다. 컨텐츠 제공자 도메인 또는 서브-도메인으로의 DNS 쿼리가 컨텐츠 제공자의 도메인 네임 서버들에서 수신되는 경우에, 그러한 서버들은, 에지 네트워크 호스트네임을 리터닝함으로써 응답한다. 에지 네트워크 호스트네임은 CDN을 포인팅하고, 그 후에, 그 에지 네트워크 호스트네임은 CDN 네임 서비스를 통해 리졸빙된다(resolved). 이를 위해, CDN 네임 서비스는 하나 이상의 IP 어드레스들을 리터닝한다. 그 후에, 요청 클라이언트 브라우저는 IP 어드레스와 연관된 에지 서버에 (예를 들어, HTTP 또는 HTTPS를 통해) 컨텐츠 요청을 행한다. 요청은 오리지널 컨텐츠 제공자 도메인 또는 서브-도메인을 포함하는 호스트 헤더를 포함한다. 호스트 헤더를 갖는 요청의 수신 시에, 에지 서버는, 요청된 컨텐츠 도메인 또는 서브-도메인이 실제로 CDN에 의해 핸들링되고 있는지를 결정하기 위해, 그것의 구성 파일을 체크한다. 그렇다면, 에지 서버는, 구성에서 특정된 바와 같은, 그 도메인 또는 서브-도메인에 대한 그것의 컨텐츠 핸들링 룰들 및 지시들을 적용한다. 이러한 컨텐츠 핸들링 룰들 및 지시들은 XML-기반 "메타데이터" 구성 파일 내에 위치될 수 있다.
더 일반적으로, 본원에서 설명되는 기법들은, 함께, 위에서 설명되는 설명된 기능성을 용이하게 하거나 또는 제공하는 하나 이상의 컴퓨팅-관련된 엔티티들(시스템들, 머신들, 프로세스들, 프로그램들, 라이브러리들, 기능들 등)의 세트를 사용하여 제공된다. 전형적인 구현에서, 소프트웨어가 실행되는 대표적인 머신은, 커모디티(commodity) 하드웨어, 동작 시스템, 애플리케이션 런타임 환경, 및 주어진 시스템 또는 서브시스템의 기능성을 제공하는, 애플리케이션들 또는 프로세스들의 세트 및 연관된 데이터를 포함한다. 설명된 바와 같이, 기능성은, 독립형 머신으로 구현될 수 있거나, 또는 머신들의 분배된 세트에 걸쳐 구현될 수 있다. 기능성은, 서비스로서, 예를 들어, SaaS 솔루션으로서 제공될 수 있다.
인증서 또는 개인 키 없이 액티브 TLS 세션으로의 스플라이싱
배경기술과 같은 상기 내용에 있어서, 본 개시의 청구 대상이 이제 설명된다. TLS 핸드쉐이킹에 대한 숙지(familiarity)가 추정된다.
본원에서 이용되는 바와 같이, "에지 서버"는 CDN(오버레이 네트워크) 에지 머신을 지칭한다. 주어진 고객에 대해, CDN 서비스 제공자는 TCP 연결이 클라이언트(예를 들어, 최종 사용자 브라우저 또는 모바일 앱)로부터 발신하게 하고, 의도되는 고객의 발견을 허용하는 일반적 VIP 또는 고객에 할당되는 VIP(virtual IP) 어드레스 상에서 고객을 표현하는 에지 머신에 연결하게 할 수 있다. 본 개시의 목적들을 위해, 이러한 에지 머신이 고객의 개인 키 또는 고객의 인증서를 갖지 않는다고 가정된다. 그럼에도 불구하고 그리고 보여질 바와 같이, 본 개시의 기법은 고객 오리진이 CDN이 특정 TLS-보안 세션 내로 그리고 특정 TLS-보안 세션 외부로 션트(shunt)함을 요청하게 하는 것을 가능하게 하고, CDN은 그것이 이러한 요청을 따르고 있음을 보장할 수 있다.
도 3에 예시된 바와 같이, 전형적 상호작용 시나리오에서, 최종 사용자 클라이언트 브라우저 또는 모바일 앱(300)은 오버레이 네트워크 에지 머신 서버 인스턴스(304)(때때로 "에지 서버"로 지칭됨)의 중계(intermediary)를 통해 고객 오리진 서버(또는 오리진")(302)와 연관된다. "오리진" 또는 "에지"라는 용어들은 제한되는 것으로 의도되지 않는다.
다음의 내용은 클라이언트(300)와 오리진(302) 사이의 TLS 핸드쉐이크에 관한 세부사항들을 제공한다. 위에서 기술된 바와 같이, TLS 사양에 대한 독해자의 숙지가 추정된다. 에지 머신 서버 인스턴스(304)는 핸드쉐이크 메시지들을 직접 오리진(302)으로 전달하며, 그 반대로도 행해진다. 핸드쉐이크가 완료되면, 오리진(302) 및 클라이언트(300)는 Pre-Master Secret을 협상할 것이며, 세션에 대한 랜덤 수 값들을 교환할 것이다.TLS 1.2 사양 세션 8.1에 따르면, 각각의 사이드(side)는 동의된 PRF(pseudorandom function), 이를테면, HMAC 변형을 이용하여 자신의 Pre-Master SecretMaster Secret으로 변환할 것이다. TLS 1.2 사양 세션 6.3은 이 Master Secret이 그 후, 다음의 TLS 아이템들: client_write_MAC_key(클라이언트의 전송된 데이터 메시지 인증 코드들(MAC들)로의 입력으로서 이용되는 키)들을 계산하는데 그 후 이용되는 더 큰 키 블록으로 변환됨을 기술하며, 여기서, 각각의 TLSCipherText 레코드는 레코드 내의 데이터가 인증되고 변화되지 않음을 검증하는 MAC; server_write_MAC_key(서버의 전달된 데이터 MAC들로의 입력으로서 이용될 키); client_write_key(클라이언트의 전송된 데이터에 대한 동의된 벌크 인크립션 암호(encryption cipher)에 대해 이용될 키); 및 server_write_key(서버의 전송된 데이터에 대한 동의된 벌크 인크립션 암호에 대해 이용될 키)를 갖는다. 다른 아이템들은 계산될 수 있지만, 이러한 프로토콜의 목적들을 위해 관련되지 않는다.
하기는, 본 개시물의 TLS 스플라이싱(션팅) 기술이 없는, 인크립팅된 요청들 및 응답들의 핸들링에 관한 세부사항들을 제공한다. 이 단계에서의 요청들은, 위에서 설명된 TLS 핸드쉐이크로부터의 파라미터들을 사용하여 인크립팅된다. 통상적인 동작에서, CDN 에지 서버(304)는 클라이언트(300)로부터 TLS 레코드들(요청을 표현함)을 수신하고, 이 TLS 레코드들을 오리진(302)으로 단순히 포워딩하며, 인크립션으로 인해, 이 TLS 레코드들을 판독할 수는 없다. (오리진으로부터의) 응답 데이터가 개인적인 것이고 CDN과 공유되지 않아야 하는 경우, 오리진(302)은 통상적인 TLS 메커니즘들을 사용하여 에지 서버(304)에 역으로 응답한다. 에지 서버(304)는 이 데이터를 수신하고, 이 데이터를 클라이언트(300)로 단순히 패스 스루하며, 한 번 더, 인크립션으로 인해, 이 데이터를 판독할 수는 없다. 이 지점에서, 그리고 본 개시물의 기술들을 참조하지 않고, 에지 서버(304)는 따라서 단순히 패스-스루 TCP 프록시로서 동작하고 있다. 이 에지 서버(304)는 데이터를 디크립팅할 수도 데이터를 TLS 세션에 제공할 수도 없다.
본 개시물에 따라, 오리진(302)은, TLS 세션에 대하여 하나 또는 그 초과의 상이한 능력들을 갖도록 에지 서버(304)를 선택적으로 업그레이드할 수 있다. 이것은 때때로 본원에서 액티브 TLS 세션으로의(그리고 액티브 TLS 세션 중에서의) "스플라이싱" 또는 "션팅"으로 지칭되는데, 그 이유는 그렇지 않으면 단지 패스-스루로서 동작하고 있는 에지 서버가 데이터 스트림 자체에 대한 가시성을 갖도록 인에이블링되기 때문이다. 이 능력은, 인증된 캐시 콘텐트의 (CDN 에지 서버로부터의) 송신을 위해, 그러나 이 CDN이 그 지점 이후 임의적인 데이터를 디크립팅하거나 또는 전체 스트림의 제어를 획득하는 능력을 갖지 않고도, 데이터 스트림의 선택적 피스(piece)들이 고객(오리진)으로부터 CDN 에지 서버로 위임되도록 허용한다. 기술은, CDN이 캐시 데이터를 TLS 세션의 특정 지점들에서 주입할 뿐만 아니라 오리진(고객)이 적절하다고 여길 때까지 스트림에 대한 임의의 추가적인 액세스를 수학적으로 그리고 암호로 철회하도록, 고객이 허가하는 것을 가능하게 한다. 스플라이싱/션팅 능력은 오리진에 의해 관리(제어)되고; 이에 따라, 이 스플라이싱/션팅 능력은 에지 서버가 자기의 자유 의사로 수행하는 동작이 아니다.
제 1 업그레이드는 Decryption Upgrade이다. 이러한 특정한 능력은 에지 서버(304)가 데이터를 복호화하게 하지만, 데이터를 TLS 세션에 기여하게 하지는 않는다. 출처(302)는, (에지 서버가 클라이언트 요청들을 복호화할 수 있게 하는 것이 소망되면) 현재의
Figure 112021012912417-pct00001
에 대한 값, (에지 서버가 출처 응답들을 복호화할 수 있게 하는 것이 소망되면) 현재의
Figure 112021012912417-pct00002
에 대한 값, 또는 둘 모두를 에지 머신에 통신함으로써 이러한 업그레이드를 수행한다. 출처는,
Figure 112021012912417-pct00003
및/또는
Figure 112021012912417-pct00004
를 에지 서버에 직접적으로 또는 몇몇 대역외 방식을 통해 통신할 수도 있다. 임의의 그러한 시나리오에서, 바람직하게, MAC 키들은 출처에 의해 공유되지 않는다. 이러한 업그레이드는 에지 머신이 TLS 레코드들을 복호화할 수 있게 하지만, 에지 서버는, 그 서버가 TLS 레코드들의 말단에 첨부된 MAC들을 생성하기 위해 필수적인 키들을 소유하지 않으므로, 자력으로 새로운 데이터를 기여(또는 데이터를 변경)하는 것이 여전히 제한된다. 따라서, Decryption Upgrade는 에지 서버 머신이 TLS 세션을 조사할 수 있게 하지만, 그 세션 내에 흐르는 데이터를 기여 또는 변경할 수 있게 하지는 않는다. 데이터는 계속 흐르며, 에지 머신은, 그것이 출처에 의한 액세스를 제공받는 채널들을 디코딩할 수 있다.
CDN 에지 머신이 클라이언트 전송된 데이터 스트림을 주시하기 위한 (상술된 바와 같이) 액세스를 제공받으면, 에지 서버는, 그것이 요청 HTTP 방법, 특정한 URL, 및/또는 그것이 (자신의 로컬 캐시로부터의) 응답을 서빙할 수 있는 하나 또는 그 초과의 헤더들을 관측하는지를 결정할 수 있다. 그러한 히트가 발생하면, 바람직하게, 에지 서버는, 그것이 응답으로서 서빙할 수 있는 전체 캐싱된 오브젝트(또는 몇몇 정의된 부분)의 해시와 함께 TLS 레코드를 출처의 업스트림에 전송한다. 이러한 해시는, 예를 들어, 그것이 초기에 캐싱되는 경우 오브젝트를 이용하여 사전-컴퓨팅 및 저장될 수도 있거나, 그것은 즉시 컴퓨팅될 수도 있다.
대안적으로, 에지 서버(304)가 클라이언트 전송된 데이터 스트림을 주시하기 위한 액세스를 제공받지 않으면, 출처(302)는, 그것이 수신하는 요청들에 대한 에지 서버들(출처가 믿음)로의 Cache Hit Request를 개시할 수도 있고, 에지 서버 캐시로부터 서빙가능할 수도 있다. 이러한 메시지는, 에지 서버가 요청에 대한 응답을 (캐시에) 갖는지를 결정하는 것을 필요로 하는 URL, 헤더들, 및 임의의 다른 정보를 포함할 것이다. 에지 서버가 캐싱된 응답을 포함하면, 그것은 (상술된 바와 같이) 오브젝트의 해시를 역으로 전송할 수도 있고, 그 후, 출처는 다음에 어떤 동작이 취해지는지의 결정을 행할 것이다.
구현될 수 있는 다른 능력은 1회 기록 그랜트를 구현하기 위해 에지 서버를 제어하는 오리진(origin)(302)의 능력이다. 이는 때때로 본원에서 원-타임 기록 그랜트 업그레이드(One-Time Write Grant Upgrade)로 지칭된다. 다음은 이 프로세스를 설명한다. 에지 서버가 캐시로부터 현재 요청을 서비스할 수 있다는 통지를 (에지 서버로부터) 수신할 때, 이 능력이 오리진에 있을 경우 구현될 수 있다. 동작 시, 오리진은 다음:(ⅰ)에지 서버 상의 응답 데이터가 새로운 것인가(즉, 그의 해시가 오리진의 현재 해시와 일치하는가?), 및 (ⅱ)오리진의(고객의) 보안 정책에 따라 에지로부터의 캐시 서비스-에이블로부터 요청이 있는가?를 체크한다. 조건들 둘 모두가 참인 경우, 오리진은 에지 서버에 server_write_key를 제공함으로써 1회 기록 그랜트를 수행하기 위해 에지 서버를 업그레이드할 수 있다(따라서, 에지 서버가 서버 디크립트-에이블 상태가 되게 한다). 결국, 오리진(302)은 데이터를 스캔하고(예를 들어, 약정(agreed-upon) 파일(16KB) 블록 바이 (16K) 블록 방식으로), TLS 레코드들을 생성한다(이것은 에지 서버가 존재하지 않았다면 전송했었을 것이다). 보다 구체적으로, 각각의 레코드의 경우, 오리진은 TLS 압축 레코드 데이터를 이용하여 레코드에 대한 MAC, 그 포인트에 정확한 시퀀스 넘버, 및 server_write_MAC_key를 생성한다. 이 업그레이드의 경우, 오리진에 의해 생성된 MAC들은 이후, 오리진(302)에 의해 에지 서버(304)로 전송된다. 에지 서버에서, 로컬 시스템이 해시와 일치하는 약정 파일을 로딩하고, 이것이 판독하는 플레인텍스트의 각각의 16KB에 대해, 이것은 그 플레인텍스트를 약정 압축 알고리즘을 이용하여 TLS 압축 레코드로 변환한다. 이러한 레코드들 각각에 대해, 에지 서버는 이제 TLS 사양 섹션 6.2.3에 설명된 방법들을 이용하여 TLSCipherText 메시지를 생성한다. 예를 들어, (오리진이 공유하는) server_write_key를 이용하여, 에지 서버는 TLS 압축형 레코드 소부분, 오리진-생성식 MAC, 및 (CBC 블록 암호를 이용하는 경우) 블록 경계들에 대해 추가된 패딩 데이터를 암호화한다. 일단 레코드가 생성되면, 에지 서버(304)는 이것을 클라이언트(300)에게 전송한다. 클라이언트의 관점으로부터, 오리진에서 벗어난 어떠한 것도 발생하지 않는다. 그러나, 일단 약정 데이터가 전적으로 전송되었으면, 에지 서버는 MAC들을 벗어나고 그에 따라 더 이상 대화에 참여할 수 없다.
바람직하게는, 위에서 설명된 1-회 기록 허가는 에지 서버(304)가 전체 파일을 기록한 이후 만료된다. 그러나 복호화 키들은 만료되지 않는다. (1-회 기록 허가로부터든 또는 다른 것으로부터든지 간에) 에지 서버에 복호화 키들이 주어지면, 에지 서버는 그것이 키를 가진 특정한 방향에서 스트림들의 컨텐츠들을 계속 뷰잉할 수 있다. 그러나 오리진(302)은 이러한 가시성 능력을 (에지 서버로부터) 회수하기를 바랄 수 있다. 가시성을 회수하도록 한 오리진 서버에 의한 결정은 임의의 특정한 순간에, 예를 들어, 오리진이 송신하려고 하는 것 또는 그것이 클라이언트(300)로부터 수신할 것으로 예상하는 것에 기초하여 발생할 수 있다. 이에 따라 권한 능력의 회수는 또한, 오리진의 제어 하에서 또 다시 인에이블된다. 바람직하게는, 회수는 재협상을 통해 수행된다. 특히, 이 프로토콜에 따라, 바람직하게는, 각각의 요청은, 오리진이 요청을 스스로 서비스하도록 또는 위에서 설명된 1-회 기록 허가를 에지 서버에 부여하도록 판단하기 이전에 오리진(302)에 다시 완전히 유동한다. 판단이 컨텐츠를 스스로 (즉, 에지 서버가 장차 데이터를 의미있는 방식으로 뷰잉할 수 있게 됨 없이 개인적인 방식으로) 서빙하는 것인 경우, 그리고 에지 서버가 이것을 불가능하게 하는 키들을 갖는 경우, 오리진(302)은 TLS HelloRequest 메시지를 발행한다. 이 메시지는, (i) 효율적인 재협상, (ii) 장기 재협상 또는 (iii) 연결 종결로서 참조되는 3개의 옵션들 중 하나가 발생해야 하는 재협상을 시작하도록 클라이언트(300)에 요청한다. 이들 옵션들 각각은 아래에서 설명된다.
효율적인 재협상 옵션은 다음과 같이 작동한다. TLS HelloRequest 메시지의 수신 시에, 클라이언트(300)는 오리진의 오리지널 TLS ServerHello 메시지의 세션ID 필드에서 식별되었고 그것 및 오리진이 이전에 이용했던 세션의 재개를 요청하도록 허용된다. TLS HelloRequest 메시지의 수신 시에, 몇몇 클라이언트들은 세션 재개를 시도할 뿐만 아니라, 이들은 실제로 이미 이용중인 현재 세션 ID를 이용하여 재개를 수행하도록 시도할 것이다. TLS 1.2 규격 섹션 F.1.4에서 설명된 바와 같이, 세션 재개는 새로운 의사-랜덤 번호들 및 이에 따른 새로운 키들을 설정한다. 그러므로, 이 동작을 수행하는 클라이언트들은 근본적인 키들을 변경하며, 그에 의해, 양자의 방향들에서 에지 서버의 복호화 능력을 제거한다.
에지 서버의 뷰 권한들을 회수하도록 하는 다른 옵션은 단지 풀 핸드쉐이크인 장기 재협상이다. 이 옵션은 현재 세션을 덤핑하고, 키 교환을 위해 비대칭 암호 방식을 포함한다. 근본적인 키들을 변경함으로써, 이 옵션은 양자의 방향들에서 에지 서버에 대한 복호화 액세스를 회수한다.
마지막 옵션, 접속 종결은 다음과 같이 작동한다. 이러한 옵션은, 클라이언트(300)가 재협상하는 것을 거절하는 경우에, 에지 머신에서 디스크립션 권한들을 리보크하는데 사용될 수 있다. 이러한 이벤트에서, 오리진(302)은 재접속(및 풀 핸드쉐이크)을 강제하기 위해 접속을 종결할 수 있다. 멱등원이 아닌 방법들(예를 들면, POST)은 (접속의 셧다운 및 오리진 상에서 발생하는 타임아웃의 가능성으로 인해) 지속적인 접속 상에서 후속 요청들에 대해 발행되지 않는다. 따라서, 그들은 본질적으로 폐쇄로부터 안전하다. 멱등원인 다른 방법들(예를 들면, GET)에 대해, 그리고 적절한 타임아웃 의미론을 유지하기 위해, 바람직하게는 클라이언트는, 지속적인 접속이 폐쇄된 경우에, 재접속하고 요청을 리플레이한다.
어떠한 폐지 옵션이 개시되는지 상관없이, 결과는, 에지 서버가 재협상과 연관하여 생성된 표시를 수신한다는 것이다. 이러한 표시는 통상적으로 활성 TLS 세션의 개시된 또는 완료된 재협상, 및 재협상이 데이터 스트림에 대한 에지 서버의 당시 디스크립션 액세스를 리보크하는 효과를 갖는다는 것을 표시하는 데이터 형태이다.
에지 서버가 본 명세서에 설명된 바와 같이 오리진 서버와 통신할 필요가 있을 때(또는 그 역도 가능), 그러한 통신은 TLS 접속 또는 별개의 채널(예를 들면, 별개의 TCP 접속)을 통해 발생할 수 있다.
따라서, 본 개시에 따라, 앞서 설명된 방법들은 클라이언트 전송 데이터에 대한 에지 서버에 디스크립션 가시성의 승인, 서버 전송 데이터에 대한 에지 서버에 디스크립션 가시성의 승인, 클라이언트 전송 데이터에 대한 디스크립션 가시성의 에지 서버로부터의 리보크, 서버 전송 데이터에 대한 디스크립션 가시성의 에지 서버로부터의 리보크, 및 바람직하게는 스트림의 특정 바이트 시퀀스들에 걸쳐 특정 인가된 데이터에 대해 일회 기록 권한을 에지 서버에 승인을 제공하기 위해 TLS 프로토콜을 활용하기 위해 오리진에 의해 사용될 수 있다.
본 명세서에 설명된 바와 같이, 오리진 서버는 에지 서버 가시성을 인에이블하기 위해 활성 TLS 세션의 분할 또는 분로를 관리하고, 이것은 CDN의 문맥에서 통상적인 동작이고, 여기서 CDN 고객은 오리진 서버를 동작시키고, 클라이언트는 콘텐츠를 요청하는 엔드 사용자이다. 그러나, 다른 시나리오들에서, 분할 동작에 걸친 제어는 오리진 서버 대신에 클라이언트에 의해 또는 클라이언트 및 오리진 서버 둘 모두에 의해 관리될 수 있다.
TLS 1.2에 대한 참조들은 단지 예시일 뿐이다. 본원에서 설명되는 기술들은, (i) 단방향 대칭 키들을 교환하기 위한 비대칭 암호화, 및 (ii) 별도의 인증 코드 키들(authentication code) 양자 모두를 사용하는 임의의 암호 프로토콜과 사용하기 위해 일반화될 수 있다. 따라서, 이 기술들은 다양한 SSL 버전들, 차-세대 TLS, 및 그러한 다른 프로토콜들에 대한 액티브 세션(active session)에 대한 매개물(intermediary)을 션팅하는데(shunt) 사용될 수 있다.
HTTP-기반 요청들 및 응답들에 대한 참조 역시 단지 예시일 뿐이다. 매개물이 액티브 암호 세션에 대한 가시성을 갖는 것을 가능하게 하기 위한 기술은 임의의 유형의 프로토콜과 이용될 수 있으며, 1-회용 기록 허가 기능(one-time write grant function)은 모든 요청 및 응답-주도 프로토콜(response-driven protocol)(및 HTTP는 아님)과 이용될 수 있다.
전술된 기술들은 오버레이 네트워크 내의 에지 서버인 매개물에 제한되지 않으며; 따라서, 상기 방법들은 전술된 바와 같은 CDN 에지 서버가 아니라 임의의 제 3 자 엔티티(시스템, 디바이스, 기계, 프로그램, 프로세스, 실행 스레드, 등)에 대해 일반화되어야 한다.
이 접근법은 오버레이 네트워크 및 그 고객들에게 많은 이점들을 제공한다. 이는 오버레이 네트워크로부터 고객을 위한 모든 비대칭 암호법을 제거하며, 그에 따라 프로세싱 및 저장 비용 및 요건들을 상당히 감소시킨다. 이는 오버레이 네트워크로부터 고객을 위한 모든 사적인 키들을 제거한다. 이는 오버레이 네트워크로부터 고객을 위한 모든 공공 인증서들(public certifications)을 제거한다. 이는 캐시된 항목들에 대한 데이터 신뢰성 및 무결성 보증들(data authenticity and integrity guarantees)을 제공한다. 전술된 바와 같은 접근법은, 오버레이 네트워크 공급자의 명시적으로-요청된 도움(explicitly-required assistance) 없이, 사적인 데이터가 무엇인가에 대한 완전한 제어의 오리진이 된다.
상기 내용은 본 발명의 특정 실시예들에 의해 수행되는 특정 순서의 동작들을 설명하지만, 그러한 순서는, 대안적인 실시예들이 상이한 순서로 동작들을 수행하고, 특정 동작들을 조합하며, 또는 특정 동작들을 오버래핑하는, 등등을 할 수 있기 때문에, 예시적임이 이해되어야 한다. 주어진 실시예에 대한 상술의 참조들은, 설명된 실시예가 특정 피처, 구조, 또는 특징을 포함할 수 있음을 나타내지만, 모든 실시예가 특정 피처, 구조, 또는 특징을 반드시 포함하는 것은 아닐 수 있다.
개시된 요지는 방법 또는 프로세스의 맥락에서 설명되었지만, 대상의 개시는 또한 본원의 동작들을 수행하기 위한 장치와 관련된다. 이러한 장치는 요구되는 목적들을 위해 특별하게 구성될 수도 있고, 또는 이러한 장치는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 또는 재구성되는 범용 컴퓨터를 포함할 수도 있다. 이러한 컴퓨터 프로그램은, 컴퓨터 시스템 버스에 각각 커플링되고, 광 디스크, CD-ROM 및 자기-광 디스크를 포함하는 임의의 타입의 디스크, 판독 전용 메모리(ROM: read-only memory), 랜덤 액세스 메모리(RAM: random access memory), 자기 또는 광학 카드, 또는 전자 명령들을 저장하기에 적합한 임의의 타입의 미디어와 같은, 그러나 이에 한정된 것은 아닌 컴퓨터 판독가능 저장 매체에 저장될 수도 있다.
시스템의 주어진 컴포넌트들이 개별적으로 설명되었지만, 해당 기술분야에서 통상의 지식을 가진 자는 기능들 중 몇몇은 주어진 명령들, 프로그램 시퀀스들, 코드 부분들 등에서 공유되거나 또는 이들로 결합될 수도 있다고 이해할 것이다.
바람직하게, 기능은 애플리케이션 계층 솔루션으로 구현될 수 있지만, 식별된 기능들의 부분들이 운영 시스템 등에 구축될 수도 있기 때문에, 이는 한정이 아니다.
기능은 HTTPS 외에도 SSL VPN과 같은 다른 애플리케이션 계층 프로토콜들로, 또는 유사한 동작 특징들을 갖는 임의의 다른 프로토콜로 구현될 수도 있다.
연결의 클라이언트-측 또는 서버-측을 구현할 수 있는 컴퓨팅 엔티티의 타입에 대한 어떠한 한정도 존재하지 않는다. 임의의 컴퓨팅 엔티티(시스템, 머신, 디바이스, 프로그램, 프로세스, 유틸리티 등)가 클라이언트 또는 서버로서 동작할 수도 있다. 연결의 클라이언트-측 또는 서버-측을 구현할 수 있는 컴퓨팅 엔티티의 타입에 대한 어떠한 한정도 존재하지 않는다. 임의의 컴퓨팅 엔티티(시스템, 머신, 디바이스, 프로그램, 프로세스, 유틸리티 등)가 클라이언트 또는 서버로서 동작할 수도 있다. 시스템의 주어진 컴포넌트들이 개별적으로 설명되었지만, 해당 기술분야에서 통상의 지식을 가진 자는 기능들 중 몇몇은 주어진 명령들, 프로그램 시퀀스들, 코드 부분들 등에서 공유되거나 또는 이들로 결합될 수도 있다고 이해할 것이다. 본 명세서에서 설명된 임의의 애플리케이션 또는 기능은 다른 애플리케이션에 훅들을 제공함으로써, 플러그-인으로서의 메커니즘의 사용을 가능하게 함으로써, 메커니즘에 링크함으로써 등등, 원시 코드로서 구현될 수도 있다.

Claims (20)

  1. 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자(intermediary)로서 동작하는 장치로서,
    상기 제1 컴퓨팅 엔티티 및 상기 제2 컴퓨팅 엔티티는, 이들 사이에, 상기 제1 컴퓨팅 엔티티로부터의 암호화된 요청들(encrypted request) 및 상기 제2 컴퓨팅 엔티티로부터의 암호화된 응답들(encrypted responses)의 전송을 위한 액티브 TLS(Transport Layer Security) 세션을 구축하며,
    상기 장치는,
    프로세서; 및
    컴퓨터 프로그램 명령들을 보유하는 컴퓨터 메모리
    를 포함하고,
    상기 컴퓨터 프로그램 명령들은, 상기 프로세서에 의해,
    상기 액티브 TLS 세션에 대한 TLS 키를 상기 제2 컴퓨팅 엔티티로부터 수신하고;
    상기 제1 컴퓨팅 엔티티로부터의 상기 암호화된 요청들 내의 데이터 및 상기 제2 컴퓨팅 엔티티로부터의 상기 암호화된 응답들 내의 데이터 중 하나에 대한 가시성(visibility)이 인에이블링되도록, 상기 암호화된 요청들 및 상기 암호화된 응답들 중 하나와 연관된 하나 이상의 TLS 레코드들(records)을 액세스하고 복호화(decrypt)하기 위해 상기 액티브 TLS 세션 동안 상기 TLS 키를 사용하고; 그리고
    상기 액티브 TLS 세션의 재교섭(renegotiation)과 연관하여 발생되는 표시(indication)를 수신하도록
    실행되며,
    상기 재교섭은, 상기 TLS 레코드들로의 복호화 액세스, 및 상기 암호화된 요청들 및 응답들 내의 데이터에 대한 가시성을 리보크(revoke)하는, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자로서 동작하는 장치.
  2. 제 1 항에 있어서,
    상기 TLS 키는
    Figure 112021012912417-pct00005
    의 현재 값 및
    Figure 112021012912417-pct00006
    의 현재 값 중 하나인, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자로서 동작하는 장치.
  3. 제 1 항에 있어서,
    상기 표시는, 상기 제2 컴퓨팅 엔티티가 상기 재교섭을 개시하라는 TLS 메시지를 상기 제1 컴퓨팅 엔티티에 발행했다는 것인, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자로서 동작하는 장치.
  4. 제 1 항에 있어서,
    상기 TLS 키는
    Figure 112021012912417-pct00007
    이며,
    상기 컴퓨터 프로그램 명령들은 추가로,
    상기 제2 컴퓨팅 엔티티로부터 적어도 하나 이상의 MAC(message authentication code)들을 수신하고;
    적어도 하나의 TLS 레코드를 발생시키기 위해, 상기 제2 컴퓨팅 엔티티로부터 수신된 상기 하나 이상의 MAC들을 이용하고;
    암호화된 응답과 연관된 데이터로 정보를 기록하고; 그리고
    상기 하나 이상의 MAC들을 이용하여 발생된 적어도 하나의 TLS 레코드와 함께, 상기 정보를 포함하는 데이터를 상기 제1 컴퓨팅 엔티티로 포워딩하도록
    실행되는, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자로서 동작하는 장치.
  5. 제 4 항에 있어서,
    상기 적어도 하나의 TLS 레코드는
    Figure 112021012912417-pct00008
    메시지이고, 상기 정보를 포함하는 데이터는 상기 암호화된 응답으로 상기 제1 컴퓨팅 엔티티로 포워딩되는, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자로서 동작하는 장치.
  6. 제 4 항에 있어서,
    상기 제2 컴퓨팅 엔티티로부터 수신된 상기 하나 이상의 메시지 인증 코드들은, 상기 장치가, 특정 바이트 시퀀스들을 통해 상기 암호화된 응답으로 상기 정보를 기록하는 것을 가능하게 하는, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자로서 동작하는 장치.
  7. 제 1 항에 있어서,
    상기 TLS 키는
    Figure 112021012912417-pct00009
    이며,
    상기 컴퓨터 프로그램 명령들은 추가로,
    암호화된 요청의 정보에 기초하여, 상기 중재자가 로컬 캐시(local cache)로부터 응답을 서빙할 수 있는지를 결정하고; 그리고
    상기 중재자가 로컬 캐시로부터 응답을 서빙할 수 있을 때, 상기 응답의 해시(hash)와 함께, TLS 레코드를 상기 제2 컴퓨팅 엔티티로 포워딩하도록
    실행되는, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자로서 동작하는 장치.
  8. 제 1 항에 있어서,
    상기 컴퓨터 프로그램 명령들은 추가로,
    상기 중재자가 상기 암호화된 요청에 대한 응답을 자신의 로컬 캐시에 갖고 있는지를 결정하는데 있어 상기 중재자가 필요로하는 정보를 포함하는 캐시 히트 요청(cache hit request)을 상기 제2 컴퓨팅 엔티티로부터 수신하고; 그리고
    상기 제2 컴퓨팅 엔티티로부터 수신되는 정보에 기초하여, 상기 중재자가 상기 응답이 상기 로컬 캐시로부터 서빙될 수 있다는 것을 결정할 때, 상기 응답의 해시를 상기 제2 컴퓨팅 엔티티로 포워딩하도록
    실행되는, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자로서 동작하는 장치.
  9. 제 1 항에 있어서,
    상기 제1 컴퓨팅 엔티티는 클라이언트 애플리케이션이고, 상기 제2 컴퓨팅 엔티티는 오리진 서버(origin server)이고, 상기 중재자는 콘텐츠 전달 네트워크의 에지 서버(edge server)인, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 간의 중재자로서 동작하는 장치.
  10. 오버레이 네트워크(overlay network)의 에지 머신(edge machine)에서의 작동 방법으로서,
    오리진 서버로부터, 클라이언트와 상기 오리진 서버 간에 구축되는 액티브 TLS 세션에 대한 TLS 키를 수신하는 단계;
    상기 클라이언트로부터의 암호화된 요청들 내의 데이터 및 상기 오리진 서버로부터의 암호화된 응답들 내의 데이터 중 하나에 대한 가시성이 인에이블링되도록, 상기 암호화된 요청들 및 상기 암호화된 응답들 중 하나와 연관된 하나 이상의 TLS 레코드들을 액세스하고 복호화하기 위해, 상기 액티브 TLS 세션 동안 상기 TLS 키를 사용하는 단계; 및
    상기 액티브 TLS 세션의 재교섭과 연관하여 발생되는 표시를 수신하는 단계
    를 포함하고,
    상기 재교섭은, 상기 TLS 레코드들로의 복호화 액세스, 및 상기 암호화된 요청들 및 응답들 내의 데이터에 대한 가시성을 리보크하며,
    적어도 상기 사용하는 단계는, 하드웨어 엘리먼트에서 실행되는 소프트웨어에서 수행되는, 오버레이 네트워크의 에지 머신에서의 작동 방법.
  11. 제 10 항에 있어서,
    상기 TLS 키는
    Figure 112015118472788-pct00010
    의 현재 값 및
    Figure 112015118472788-pct00011
    의 현재 값 중 하나인, 오버레이 네트워크의 에지 머신에서의 작동 방법.
  12. 제 10 항에 있어서,
    상기 표시는, 상기 오리진 서버가 상기 재교섭을 개시하라는 TLS 메시지를 상기 클라이언트에 발행했다는 것인, 오버레이 네트워크의 에지 머신에서의 작동 방법.
  13. 제 10 항에 있어서,
    상기 TLS 키는
    Figure 112021012912417-pct00012
    이며,
    상기 방법은,
    상기 오리진 서버로부터 적어도 하나 이상의 MAC(message authentication code)들을 수신하는 단계;
    적어도 하나의 TLS 레코드를 발생시키기 위해, 상기 오리진 서버로부터 수신된 상기 하나 이상의 MAC들을 이용하는 단계;
    암호화된 응답과 연관된 데이터로 정보를 기록하는 단계; 및
    상기 하나 이상의 MAC들을 이용하여 발생된 적어도 하나의 TLS 레코드와 함께, 상기 정보를 포함하는 데이터를 상기 클라이언트로 포워딩하는 단계
    를 더 포함하는, 오버레이 네트워크의 에지 머신에서의 작동 방법.
  14. 제 10 항에 있어서,
    상기 방법은,
    암호화된 요청의 정보에 기초하여, 응답이 로컬 캐시(local cache)로부터 서빙될 수 있는지를 결정하는 단계; 및
    상기 응답이 로컬 캐시로부터 서빙될 수 있을 때, 상기 응답의 해시와 함께, TLS 레코드를 상기 오리진 서버로 포워딩하는 단계
    를 더 포함하는, 오버레이 네트워크의 에지 머신에서의 작동 방법.
  15. 제 10 항에 있어서,
    상기 방법은,
    상기 오리진 서버로부터, 상기 암호화된 요청에 대한 응답이 로컬 캐시로부터 서빙될 수 있는지를 결정하는데 필요한 정보를 포함하는 캐시 히트 요청을 수신하는 단계; 및
    상기 응답이 상기 로컬 캐시로부터 서빙될 수 있다고 결정하면, 상기 응답의 해시를 상기 오리진 서버로 포워딩하는 단계
    를 더 포함하는, 오버레이 네트워크의 에지 머신에서의 작동 방법.
  16. 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 프로그램은, 데이터 프로세싱 시스템상에서 실행될 때, 제1 컴퓨팅 엔티티와 제2 컴퓨팅 엔티티 사이에 구축된 액티브 암호화 세션(active cyptographic session)과 연관하여,
    상기 액티브 암호화 세션에 대한 암호화 키를 상기 제2 컴퓨팅 엔티티로부터 수신하고;
    상기 제1 컴퓨팅 엔티티로부터의 암호화된 요청들 내의 데이터 및 상기 제 2 컴퓨팅 엔티티로부터의 암호화된 응답들 내의 데이터 중 하나에 대한 가시성이 인에이블링되도록, 상기 암호화된 요청들 및 상기 암호화된 응답들 중 하나와 연관된 하나 이상의 암호화 레코드들을 액세스하고 복호화하기 위해, 상기 액티브 암호화 세션 동안 상기 암호화 키를 사용하고; 그리고
    상기 액티브 암호화 세션의 재교섭과 연관하여 발생되는 표시를 수신하는
    동작들을 수행하는 프로그램 명령들을 포함하며,
    상기 재교섭은, 상기 암호화 레코드들로의 복호화 액세스 및 상기 암호화된 요청들 및 응답들 내의 데이터에 대한 가시성을 리보크하는, 컴퓨터 판독가능 저장 매체.
  17. 제 16 항에 있어서,
    암호화 프로토콜은 TLS(Transport Layer Security) 및 SSL(Secure Sockets Layer) 중 하나인, 컴퓨터 판독가능 저장 매체.
  18. 오리진 서버로서 동작하는 장치로서,
    프로세서; 및
    컴퓨터 프로그램 명령들을 보유하는 컴퓨터 메모리
    를 포함하며,
    상기 컴퓨터 프로그램 명령들은, 상기 프로세서에 의해,
    클라이언트와 오리진 서버 간의 액티브 TLS 세션에 대한 TLS 키를 중재자에게 제공함으로써, 클라이언트 전송 데이터 및 서버 전송 데이터 중 하나에 대한 복호화 가시성을 상기 중재자에게 허가하는 것,
    데이터 스트림 내 특정 데이터에 대한 기록 권한(write authority)을 상기 중재자에게 허가하는 것, 및
    상기 액티브 TLS 세션의 재교섭을 통해 상기 중재자로부터 상기 복호화 가시성을 리보크하는 것
    중 하나를 가능하게 하기 위해, 상기 액티브 TLS 세션 동안 상기 중재자를 제어하도록 실행되는,
    오리진 서버로서 동작하는 장치.
  19. 제 18 항에 있어서,
    상기 중재자는 콘텐츠 전달 네트워크의 에지 서버인, 오리진 서버로서 동작하는 장치.
  20. 제 18 항에 있어서,
    상기 중재자는 특정 바이트 시퀀스를 통해 암호화된 응답으로 정보를 기록하는 것이 가능한, 오리진 서버로서 동작하는 장치.
KR1020157034516A 2013-05-03 2014-05-03 인증서 또는 개인 키 없이 액티브 tls 세션으로 스플라이싱하는 것 KR102277427B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361818979P 2013-05-03 2013-05-03
US61/818,979 2013-05-03
US14/268,657 US9137218B2 (en) 2013-05-03 2014-05-02 Splicing into an active TLS session without a certificate or private key
US14/268,657 2014-05-02
PCT/US2014/036710 WO2014179783A1 (en) 2013-05-03 2014-05-03 Splicing into an active tls session without a certificate or private key

Publications (2)

Publication Number Publication Date
KR20160005106A KR20160005106A (ko) 2016-01-13
KR102277427B1 true KR102277427B1 (ko) 2021-07-13

Family

ID=51844011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157034516A KR102277427B1 (ko) 2013-05-03 2014-05-03 인증서 또는 개인 키 없이 액티브 tls 세션으로 스플라이싱하는 것

Country Status (5)

Country Link
US (4) US9137218B2 (ko)
EP (1) EP2992639B1 (ko)
KR (1) KR102277427B1 (ko)
CA (1) CA2914446C (ko)
WO (1) WO2014179783A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3179622A1 (en) * 2010-10-08 2012-04-12 Brian Lee Moffat Private data sharing system
US10135956B2 (en) 2014-11-20 2018-11-20 Akamai Technologies, Inc. Hardware-based packet forwarding for the transport layer
US10904332B2 (en) * 2015-12-29 2021-01-26 Akamai Technologies, Inc. Caching content securely within an edge environment
US10904229B2 (en) * 2015-12-29 2021-01-26 Akamai Technologies, Inc. Caching content securely within an edge environment, with pre-positioning
US10931727B2 (en) * 2016-03-30 2021-02-23 Arris Enterprises Llc Transparent intercept for adaptive bitrate splicer
US10291405B2 (en) 2016-07-15 2019-05-14 International Business Machines Corporation Seamless abort and reinstatement of TLS sessions
US10826875B1 (en) * 2016-07-22 2020-11-03 Servicenow, Inc. System and method for securely communicating requests
CN110999251A (zh) * 2017-06-30 2020-04-10 Idac控股公司 用于经由代理服务器的安全内容委托的方法和装置
US11151266B2 (en) * 2017-12-06 2021-10-19 International Business Machines Corporation Secure data storage and access during transition operations
US10637856B2 (en) * 2017-12-12 2020-04-28 Abb Power Grids Switzerland Ag Wireless router deployment
US11177963B2 (en) * 2017-12-12 2021-11-16 Thales Dis France Sa Method for authenticating a user based on an image relation rule and corresponding first user device, server and system
CN110730471B (zh) * 2019-10-25 2022-04-01 重庆邮电大学 基于区域用户兴趣匹配的移动边缘缓存方法
CN115514583B (zh) * 2022-11-21 2023-03-24 北京长亭未来科技有限公司 一种流量采集及阻断方法、系统、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271633A1 (en) * 2008-03-10 2009-10-29 Aceinc Pty Limited Data Access and Identity Verification
US20100299525A1 (en) * 2005-08-10 2010-11-25 Riverbed Technology, Inc. Method and apparatus for split-terminating a secure network connection, with client authentication

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060926B1 (en) * 1999-03-16 2011-11-15 Novell, Inc. Techniques for securely managing and accelerating data delivery
US6584567B1 (en) * 1999-06-30 2003-06-24 International Business Machines Corporation Dynamic connection to multiple origin servers in a transcoding proxy
FI20001837A (fi) * 2000-08-18 2002-02-19 Nokia Corp Autentikointi
US20040093419A1 (en) * 2002-10-23 2004-05-13 Weihl William E. Method and system for secure content delivery
US8190875B2 (en) * 2007-03-22 2012-05-29 Cisco Technology, Inc. Reducing processing load in proxies for secure communications
US7992200B2 (en) * 2007-07-16 2011-08-02 International Business Machines Corporation Secure sharing of transport layer security session keys with trusted enforcement points
US8788805B2 (en) * 2008-02-29 2014-07-22 Cisco Technology, Inc. Application-level service access to encrypted data streams
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
US8627422B2 (en) * 2010-11-06 2014-01-07 Qualcomm Incorporated Authentication in secure user plane location (SUPL) systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299525A1 (en) * 2005-08-10 2010-11-25 Riverbed Technology, Inc. Method and apparatus for split-terminating a secure network connection, with client authentication
US20090271633A1 (en) * 2008-03-10 2009-10-29 Aceinc Pty Limited Data Access and Identity Verification

Also Published As

Publication number Publication date
US10298615B2 (en) 2019-05-21
CA2914446A1 (en) 2014-11-06
US20170104786A1 (en) 2017-04-13
US20180241776A1 (en) 2018-08-23
US9948674B2 (en) 2018-04-17
CA2914446C (en) 2020-07-28
WO2014179783A1 (en) 2014-11-06
EP2992639B1 (en) 2019-07-31
US20150052349A1 (en) 2015-02-19
KR20160005106A (ko) 2016-01-13
US9137218B2 (en) 2015-09-15
US20150381586A1 (en) 2015-12-31
US9531682B2 (en) 2016-12-27
EP2992639A4 (en) 2016-10-26
EP2992639A1 (en) 2016-03-09

Similar Documents

Publication Publication Date Title
US10298615B2 (en) Splicing into an active TLS session without a certificate or private key
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
US10484357B1 (en) Method and apparatus for federated single sign on using authentication broker
US11671413B2 (en) Caching content securely within an edge environment, with pre-positioning
CN105429962B (zh) 一种通用的面向加密数据的中间网络服务构建方法与体系
US11659033B2 (en) Caching content securely within an edge environment
EP3216163B1 (en) Providing forward secrecy in a terminating ssl/tls connection proxy using ephemeral diffie-hellman key exchange

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant