KR102073434B1 - 보안 프로토콜의 동적 선택 기법 - Google Patents

보안 프로토콜의 동적 선택 기법 Download PDF

Info

Publication number
KR102073434B1
KR102073434B1 KR1020147024190A KR20147024190A KR102073434B1 KR 102073434 B1 KR102073434 B1 KR 102073434B1 KR 1020147024190 A KR1020147024190 A KR 1020147024190A KR 20147024190 A KR20147024190 A KR 20147024190A KR 102073434 B1 KR102073434 B1 KR 102073434B1
Authority
KR
South Korea
Prior art keywords
server
client
information
security protocol
protocol
Prior art date
Application number
KR1020147024190A
Other languages
English (en)
Other versions
KR20140131523A (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 KR20140131523A publication Critical patent/KR20140131523A/ko
Application granted granted Critical
Publication of KR102073434B1 publication Critical patent/KR102073434B1/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/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 명세서에서 설명되는 기술들은 클라이언트로 하여금 다양한 호스트들(예로서, 서버들, 웹 도메인들)이 폴스 스타트 변경 TLS 또는 SSL 프로토콜과 같은 우선 보안 프로토콜을 지원하는지를 지시하는 정보를 저장하는 것을 가능하게 한다. 이어서, 클라이언트는 특정 호스트에 접속할 때 이러한 정보를 이용하여 우선 프로토콜을 이용할지를 동적으로 판정할 수 있다. 클라이언트가 호스트와의 보안 접속을 설정하기 위한 핸드쉐이크를 처음 시도할 때, 클라이언트는 우선 프로토콜을 이용하여 이를 행한다. 핸드쉐이크가 실패한 경우, 클라이언트는 호스트에 대한 도메인 또는 다른 식별 정보를 로컬로 저장하며, 따라서 클라이언트는 후속 접속 시도들에서 비우선 프로토콜을 이용할 수 있다. 따라서, 클라이언트는 우선 프로토콜을 지원하지 않는 호스트와의 우선 프로토콜 접속을 시도함으로써 유발되는 성능 저하를 방지할 수 있다. 저장된 정보는 호스트 능력 갱신들에 대한 주기적인 검사를 가능하게 하는 타임스탬프를 포함할 수 있다.

Description

보안 프로토콜의 동적 선택 기법{DYNAMIC SELECTION OF SECURITY PROTOCOL}
보안 소켓 계층(Secure Socket Layer(SSL)) 및 전송 계층 보안(Transport Layer Security(TLS))은 인터넷을 통해 클라이언트와 서버 간의 보안 통신을 제공하기 위해 오픈 시스템 상호접속(Open Systems Interconnection(OSI)) 모델의 애플리케이션 계층에서 동작하는 통신 프로토콜들이다. 간단한 SSL 또는 TLS 핸드쉐이크에서, 클라이언트는 클라이언트에서 생성된 난수는 물론 클라이언트에 의해 지원되는 프로토콜 버전을 포함하는 ClientHello를 전송함으로써 시작한다. 이어서, 서버는 서버에서 생성된 난수와 함께 서버에 의해 지원되는 프로토콜 버전을 포함하는 ServerHello 메시지를 이용하여 응답한다. 이어서, 서버는 암호화를 위한 자신의 공개 키를 포함하는 자신의 인증서를 전송할 수 있으며, 이어서 핸드쉐이크 협상이 완료되었다는 것을 나타내는 ServerHelloDone 메시지를 전송한다.
이어서, 클라이언트는 서버의 공개 키를 이용하여 암호화된 PreMasterSecret을 포함하는 ClientKeyExchange 메시지를 이용하여 응답할 수 있다. 이어서, 클라이언트 및 서버는 교환된 난수들 및 PreMasterSecret을 이용하여, 통신 세션을 위한 세션 키들을 생성하는 데 사용되는 공통 MasterSecret을 계산할 수 있다. 이어서, 클라이언트 및 서버는 후속 메시지들이 암호화될 것이라는 것을 지시하는 ChangeCipherSpec 및 암호화된 완성 메시지를 서로 전송한다. 서버 및 클라이언트는 서로의 완성 메시지를 해독하려고 시도할 것이다. 어느 하나의 시도가 실패하는 경우, 핸드쉐이크는 실패하고, 접속은 종료된다. 클라이언트 및 서버 양자가 완성 메시지의 해독에 성공하는 경우, 핸드쉐이크는 성공한다. 핸드쉐이크는 클라이언트가 또한 그 자신의 인증서를 갖는 경우에 그리고/또는 핸드쉐이크가 이전 세션을 재개하고 있는 경우에 변경될 수 있다. 그러나, 전술한 간단한 예에서, 풀 핸드쉐이크는 일반적으로, 핸드쉐이크가 완료되고 클라이언트 및 서버가 애플리케이션 데이터의 전송을 시작할 수 있기 전에, 적어도 2번의 완전한 프로토콜 왕복(full protocol round trip)을 포함하며, 따라서 통신 세션을 설정하기 위해서는 2번의 네트워크 왕복 시간의 지연 페널티가 부가된다.
이러한 지연을 줄이기 위해, 폴스 스타트(False Start)로 지칭되는 특징을 통합함으로써 TLS 및 아마도 SSL을 변경하기 위한 제안이 인터넷 엔지니어링 태스크 포스(IETF)의 TLS 워킹 그룹에 제출되었다. 이러한 제안된 변경은 클라이언트가 서버의 완성 메시지를 수신하고 검증하기 전에 클라이언트가 애플리케이션 데이터의 전송을 시작하는 것을 가능하게 한다. 이전의 세션을 재개하기 위해 축소된 핸드쉐이크를 사용하는 시나리오에서, 서버는 그가 클라이언트의 완성 메시지를 수신 및 검증하기 전에 애플리케이션 데이터의 전송을 시작한다. 따라서, 폴스 스타트은 지연을 한 번의 왕복 시간만큼 줄인다. 그러나, 폴스 스타트이 가능한 클라이언트가 폴스 스타트를 지원하는 않는 서버와의 폴스 스타트 핸드쉐이크를 시도하는 경우, 핸드쉐이크는 실패할 것이고, 클라이언트는 표준, 넌폴스(Non-False) 프로토콜을 이용하여 다른 핸드쉐이크를 시도할 것이며, 이는 상당한 지연 페널티를 유발할 것이다.
본 명세서에서 설명되는 기술들은 클라이언트로 하여금 다양한 서버들 또는 호스트들이 TLS 또는 SSL에 대한 폴스 스타트 변경을 지원하는지를 지시하는 정보를 저장하는 것을 가능하게 한다. 이어서, 클라이언트는 서버에 접속할 때 이 정보를 이용하여 폴스 스타트 핸드쉐이크를 개시할지를 판정할 수 있다. 폴스 스타트 가능 클라이언트가 서버와의 보안 접속을 설정하기 위한 핸드쉐이크를 처음 시도할 때, 클라이언트는 폴스 스타트 변경 프로토콜을 이용하여 이를 행한다. 폴스 스타트를 이용하여 보안 접속이 설정되는 경우(예를 들어, 핸드쉐이크가 성공하는 경우), 클라이언트 및 서버는 애플리케이션 데이터의 교환을 시작할 것이다.
그러나, 핸드쉐이크가 실패하고, 보안 접속이 설정되지 않은 경우, 클라이언트는 폴스 스타트에 의해 변경되지 않은) 표준 TLS 또는 SSL 핸드쉐이크를 이용하여 접속을 설정하려고 재시도하며, 서버가 폴스 스타트를 지원하지 않는다는 것을 지시하는 정보가 클라이언트 상에 저장된다. 저장된 정보는 서버 및/또는 서버에 의해 호스트되는 웹사이트의 식별자를 포함할 수 있으며, 식별자는 도메인, 서브도메인, 유니폼 리소스 로케이터(URL), 인터넷 프로토콜(IP) 주소 및/또는 기타 식별 정보의 형태일 수 있다. 정보는 동일 통신 세션 내에서의 보안 접속들의 설정을 최적화하기 위해 클라이언트의 액티브 메모리(예로서, 물리 메모리) 내에 저장될 수 있다. 정보는 상이한 통신 세션들에 걸치는 보안 접속들의 설정을 최적화하기 위해 영구 메모리 내에(예로서, 클라이언트의 하드 드라이브 상에) 저장될 수도 있다. (예를 들어, 정보가 영구 메모리에 저장되는) 일부 예들에서, 정보는 정보가 저장된 시간 및 날짜를 지시하는 타임스탬프도 포함할 수 있다. 그러한 타임스탬프는 클라이언트로 하여금 서버 또는 호스트를 다시 검사하여 그가 폴스 스타트를 지원하도록 갱신되었는지를 판정하는 것을 가능하게 할 수 있다.
이 요약은 아래의 상세한 설명에서 더 설명되는 개념들의 발췌를 간단한 형태로 소개하기 위해 제공된다. 이 요약은 청구 발명의 중요한 특징들 또는 본질적인 특징들을 식별하는 것을 의도하지 않으며, 청구 발명의 범위를 한정하는 데 사용되는 것도 의도하지 않는다.
상세한 설명은 첨부 도면들을 참조하여 설명된다. 도면들에서, 참조 번호의 가장 좌측의 숫자(들)는 참조 번호가 처음 나오는 도면을 식별한다. 상이한 도면들에서 동일한 참조 번호들은 유사하거나 동일한 아이템들을 지시한다.
도 1a, 1b 및 1c는 폴스 스타트 가능 클라이언트가 폴스 스타트 가능 또는 폴스 스타트 불능 서버 또는 호스트와의 핸드쉐이크를 시도하는 예시적인 시나리오들을 나타낸다.
도 2는 실시예들이 동작할 수 있는 예시적인 환경을 나타내는 도면이다.
도 3은 실시예들에 따른 예시적인 컴퓨팅 시스템을 나타내는 도면이다.
도 4는 서버가 우선 보안 프로토콜(예컨대, 폴스 스타트를 지원하는 프로토콜)을 지원하는지를 지시하기 위한 정보를 클라이언트 상에 저장하기 위한 예시적인 프로세스의 흐름도를 나타낸다.
도 5는 우선 보안 프로토콜(예컨대, 폴스 스타트를 지원하는 프로토콜)을 이용하여 접속을 시도할지를 판정하기 위해 클라이언트 상에 저장된 정보를 이용하기 위한 예시적인 프로세스의 흐름도를 나타낸다.
개요
본 명세서에서 설명되는 실시예들은 폴스 스타트 가능 클라이언트가 서버 또는 호스트와의 보안 접속의 설정을 시도하기 위해 폴스 스타트 변경 프로토콜을 이용할지를 판정하기 위한 기술들을 제공한다. SSL(예로서, SSL 3.0 및 후속 버전) 및 TLS(예로서, TLS 1.0, 1.1, 1.2 및 후속 버전)에 대한 폴스 스타트 변경은 보안 클라이언트-서버 접속을 설정하는 핸드쉐이크로부터 한 번의 왕복을 제거함으로써 지연을 줄인다. 그러나, 모든 서버들이 폴스 스타트 변경을 갖는 프로토콜들을 지원하지는 않는다. 폴스 스타트 지원 클라이언트가 폴스 스타트를 지원하지 않는 서버와의 핸드쉐이크를 시도할 때, 핸드쉐이크는 실패하며, 클라이언트는 폴스 스타트 없이 핸드쉐이크를 재시도한다. 첫 번째의 실패한 핸드쉐이크 시도는 접속 설정의 지연 증가를 유발할 수 있으며, 따라서 서버와의 보안 통신을 설정하려고 시도하는 웹 브라우저 또는 기타 클라이언트측 애플리케이션의 성능을 저하시킬 수 있다. 그러한 성능 저하를 방지하기 위해, 실시예들은 특정 서버들이 폴스 스타트를 지원하는지를 지시하는 정보 또는 메타데이터의 클라이언트 상의 저장을 가능하게 한다. 이어서, 클라이언트는 이 데이터를 이용하여 폴스 스타트 핸드쉐이크를 시도할지를 판정할 수 있다.
도 1a, 1b 및 1c는 폴스 스타트 가능 클라이언트가 폴스 스타트 가능 또는 폴스 스타트 불능 서버와의 핸드쉐이크를 시도하는 예시적인 시나리오들을 나타낸다. 도 1a에 도시된 바와 같이, 폴스 스타트 가능 클라이언트 애플리케이션을 실행하는 클라이언트 장치(102)가 폴스 스타트를 지원하는 웹 서버(104)에 접속하려고 시도한다. 이 경우에, 폴스 스타트 핸드쉐이크(106)는 성공한다. 일부 실시예들에서, 클라이언트 애플리케이션은 웹 서버(104)에 의해 제공되는 웹사이트 또는 기타 웹 서비스에 접속하기 위해 웹 브라우저 또는 기타 애플리케이션의 컴포넌트로서 클라이언트 장치(102) 상에서 실행될 수 있는 하이퍼텍스트 전송 프로토콜(HTTP) 클라이언트이다.
도 1b는 클라이언트 장치(102)가 폴스 스타트를 지원하지 않는 다른 웹 서버(110)에 접속하려고 시도하는 예시적인 시나리오를 나타낸다. 웹 서버(110)에 대한 클라이언트의 최초 방문(108) 시에, 클라이언트는 폴스 스타트 핸드쉐이크(112)를 시도하며, 이는 웹 서버의 폴스 스타트에 대한 지원 결여로 인해 실패한다. 이어서, 클라이언트는 넌폴스 스타트 핸드쉐이크(Non-False Start Handshake)(114)를 이용하여 접속하려고 재시도한다. 두 번째 방문(116) 시에, 클라이언트는 폴스 스타트 핸드쉐이크(118)를 다시 시도하며, 이는 다시 실패하고, 이어서 클라이언트는 넌폴스 스타트 핸드쉐이크(120)를 이용하여 접속을 설정하려고 시도한다. 이러한 시나리오에서는, 클라이언트가 본 명세서에서 설명되는 실시예들의 다양한 특징들을 포함하지 않으므로, 클라이언트는 그의 최초 방문(108)의 실패한 폴스 스타트 핸드쉐이크(112)로부터 학습하지 못했으며, 그의 두 번째 방문(116) 시에 폴스 스타트 핸드쉐이크를 재시도한다.
그러나, 도 1c는 웹 서버(110)가 폴스 스타트를 지원하지 않는다는 정보를 클라이언트 장치(102)가 보유하는 예시적인 시나리오를 나타낸다. 클라이언트는 그의 최초 방문(122) 시에 폴스 스타트 핸드쉐이크(124)를 시도하며, 이는 웹 서버(110)가 폴스 스타트를 지원하지 않으므로 실패한다. 이어서, 클라이언트는 넌폴스 스타트 핸드쉐이크(126)를 이용하여 접속하려고 재시도한다. 그러나, 이 예에서는, 최초의 실패한 핸드쉐이크 후에, 클라이언트는 웹 서버(110)가 폴스 스타트를 지원하지 않는다는 것을 지시하는 정보를 저장한다. 결과적으로, 클라이언트는 그의 두 번째 방문(128) 시에 이전에 저장된 정보를 탐색하고, 그 정보에 기초하여 웹 서버(110)와의 폴스 스타트 핸드쉐이크를 시도하지 않아야 한다는 것을 안다. 대신에, 클라이언트는 넌폴스 스타트 핸드쉐이크(130)를 시도한다. 이러한 정보의 저장, 검색 및 사용은 아래에서 도 4 및 5와 관련하여 더 설명된다.
따라서, 클라이언트는 저장된 정보를 이용함으로써 우선 보안 프로토콜(예로서, 폴스 스타트 프로토콜)을 이용하여 접속을 시도할지를 판정할 수 있으며, 따라서 우선 보안 프로토콜을 지원하지 않는 서버와의 최초 시도의 실패를 방지할 수 있다. 클라이언트는 호스트 서버의 능력(예를 들어, 그가 폴스 스타트를 지원하는지의 여부)에 관한 정보에 대한 액세스를 가지므로, 클라이언트는 최대 3번의 왕복 시간, 즉 폴스 스타트 핸드쉐이크에서의 최초의 실패한 시도 동안의 2번의 왕복 시간 및 (일부 예들에서의) 폴스 스타트 핸드쉐이크에서의 실패한 시도 후에 TCP 세션이 서버에 의해 해제된 후에 재설정될 필요가 있을 수 있기 때문에 유발되는 다른 한 번의 왕복 시간을 줄일 수 있다.
더욱이, 실시예들은 서버 능력에 관한 정보가 클라이언트 자체 상에 로컬로 저장되도록 규정하므로, 클라이언트는 원격 서버 상에 저장된 다른 정보(예로서, 비지원 호스트들의 블랙리스트)에 액세스할 필요 없이 어느 보안 프로토콜을 사용할지를 동적으로 판정할 수 있다. 이것은 클라이언트로 하여금 원격 서버로부터 서버 능력 정보를 검색하는 데 필요할 수 있는 추가적인 지연 히트를 유발하지 않고서 그의 판정을 더 효율적으로 행하는 것을 가능하게 한다. 또한, 실시예들은 또한 효율적인 통신을 가능하게 할 수 있는데, 그 이유는 서버 능력 정보가 로컬로 저장되고, 소정 호스트들과 접속하기 위한 클라이언트의 능력에 기초하여 동적으로 갱신되기 때문이다. 더욱이, 클라이언트 자체가 서버 능력에 관한 정보를 저장하므로, 정보는 원격 서버 상에(예로서, 블랙리스트 내에) 저장된 서버 능력 정보보다 더 자주 갱신될 수 있으며, 따라서 우선 보안 프로토콜을 이용하여 핸드쉐이크의 실패를 줄일 수 있다.
예시적인 환경
도 2는 실시예들이 동작할 수 있는 예시적인 환경(200)을 나타내는 도면이다. 도시된 바와 같이, 환경(200)의 다양한 장치들은 서로 간의 통신을 가능하게 하는 임의 타입의 네트워크들을 포함할 수 있는 하나 이상의 네트워크(202)를 통해 서로 통신한다. 예를 들어, 네트워크(202)는 인터넷과 같은 공개 네트워크들, 기관 및/또는 개인 인트라넷과 같은 비공개 네트워크들, 또는 비공개 및 공개 네트워크들의 소정 조합을 포함할 수 있다. 네트워크들(202)은 근거리 네트워크(LAN), 광역 네트워크(WAN), Wi-Fi, WiMax 및 이동 통신 네트워크(예로서, 3G, 4G 등)를 포함하지만 이에 한정되지 않는 임의의 타입의 유선 및/또는 무선 네트워크도 포함할 수 있다. 네트워크들(202)은 인터넷 프로토콜(IP), 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP) 또는 다른 타입의 프로토콜들과 같은 패킷 기반 및/또는 데이터그램 기반 프로토콜들을 포함하는 통신 프로토콜들을 이용할 수 있다. 더욱이, 네트워크들(202)은 네트워크 통신을 용이하게 하고/하거나 네트워크들에 대한 하드웨어 기초를 형성하는 다수의 장치, 예를 들어 스위치, 라우터, 게이트웨이, 액세스 포인트, 방화벽, 기지국, 중계기, 백본 장치 등도 포함할 수 있다.
환경(200)은 최종 사용자(들)와 관련된 하나 이상의 클라이언트 장치(들)(204)를 더 포함한다. 간단히 설명하면, 클라이언트 장치(들)(204)는 사용자가 네트워크들(202)을 통해 정보를 송수신하는 데 사용할 수 있는 임의 타입의 컴퓨팅 장치를 포함할 수 있다. 예를 들어, 클라이언트 장치(들)(204)는 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 전자 서적 판독기, 착용식 컴퓨터, 미디어 플레이어, 자동차 컴퓨터, 이동 컴퓨팅 장치, 스마트폰, 개인 휴대 단말기(PDA), 게임 콘솔, 이동 게임 장치, 셋톱 박스 등을 포함할 수 있지만 이에 한정되지 않는다.
클라이언트 장치(들)(204)는 일반적으로 워드 프로세싱 애플리케이션, 게임, 웹 브라우저, 이메일 클라이언트 애플리케이션, 텍스트 메시징 애플리케이션, 채트 또는 인스턴트 메시징(IM) 클라이언트 및 기타 애플리케이션을 포함하지만 이에 한정되지 않는 하나 이상의 애플리케이션을 포함한다. 이러한 애플리케이션들 중 하나 이상은 애플리케이션이 웹사이트에 접속하거나 HTTP 또는 다른 네트워킹 프로토콜을 통해 웹 기반 정보에 액세스하는 것을 가능하게 하는 컴포넌트를 포함할 수 있다. 클라이언트 장치(들)(204)는 물론, 도 2에 도시된 다른 장치도 본 명세서에서 도 3과 관련하여 더 설명된다.
도 2에 더 도시된 바와 같이, 환경(200)은 네트워크(들)(202)를 통해 콘텐츠를 서빙하거나 사용자들에게 서비스들을 제공하도록 구성되는 하나 이상의 웹 서버 장치(들)(206)를 포함할 수 있다. 그러한 콘텐츠 및 서비스들은 호스트되는 정적 및/또는 동적 웹페이지, 소셜 네트워크 서비스, 이메일 서비스, 채트 서비스, 게임, 멀티미디어, 및 네트워크들(202)을 통해 제공되는 임의의 다른 타입의 콘텐츠, 서비스 또는 정보를 포함할 수 있지만 이에 한정되지 않는다. 웹 서버 장치(들)(206)는 클라이언트 장치(들)(204) 또는 다른 네트워킹된 장치들과 통신하기 위한 하나 이상의 통신 프로토콜을 지원할 수 있다. 예를 들어, 웹 서버 장치(들)(206)는 TCP/IP를 이용하여 통신 세션들을 설정하고/하거나 HTTP를 이용하여 데이터에 대한 요청들에 응답하도록 구성될 수 있다. 웹 서버 장치(들)(206)는 폴스 스타트를 지원하도록 변경될 수 있는 TLS 또는 SSL과 같은 보안 프로토콜을 이용하여 보안 통신 세션들을 설정하도록 더 구성될 수 있다.
예시적인 컴퓨팅 시스템 아키텍처
도 3은 실시예들이 동작할 수 있는 예시적인 컴퓨팅 시스템(300)을 나타낸다. 도시된 바와 같이, 컴퓨팅 시스템(300)은 처리 유닛(302)을 포함한다. 처리 유닛(302)은 다수의 처리 유닛을 포함할 수 있으며, 하드웨어, 소프트웨어 또는 이들의 소정 조합으로서 구현될 수 있다. 처리 유닛(302)은 하나 이상의 프로세서를 포함할 수 있다. 본 명세서에서 사용될 때, 프로세서는 하드웨어 컴포넌트를 지칭한다. 처리 유닛(302)은 본 명세서에서 설명되는 다양한 기능들을 수행하도록 임의의 적절한 프로그래밍 언어로 작성된 컴퓨터 실행 가능, 프로세서 실행 가능 및/또는 기계 실행 가능 명령어들을 포함할 수 있다.
이 예에 도시된 바와 같이, 컴퓨팅 시스템(300)은 랜덤 액세스 메모리(RAM)(306), 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM) 등과 같은 휘발성 메모리를 포함할 수 있는 시스템 메모리(304)를 더 포함한다. RAM(306)은 하나 이상의 실행 운영 체제(OS)(308), 및 처리 유닛(302)에 의해 로딩 및 실행될 수 있는 컴포넌트들, 프로그램들 또는 애플리케이션들을 포함하는 하나 이상의 실행 프로세스를 포함한다. 그러한 프로세스들은 인터넷 상에서 이용 가능한 웹사이트들 또는 다른 서비스들과 통신하도록 동작하는 웹 브라우저(310)를 포함할 수 있다. 일부 실시예들에서, 웹 브라우저(310)는 특정 웹 서버와 통신할 때 사용할 특정 통신 프로토콜을 동적으로 선택하는 프로토콜 선택 컴포넌트(312)를 포함한다. 아래에 더 설명되는 바와 같이, 프로토콜 선택 컴포넌트(312)는 서버에 관한 저장된 정보에 액세스하여, 서버와의 보안 접속을 설정하기 위해 폴스 스타트 가능 TLS 또는 SSL 프로토콜을 사용할지의 여부를 판정할 수 있다. 일부 실시예들에서, RAM(306)은 물리 메모리(예로서, 임시 저장 장치(314))를 포함할 수 있으며, 그 안에서 OS(308), 웹 브라우저(310) 및/또는 다른 프로세스들(316)이 실행된다.
시스템 메모리(304)는 판독 전용 메모리(ROM)(318), 플래시 메모리 등과 같은 비휘발성 메모리를 더 포함할 수 있다. 도시된 바와 같이, ROM(318)은 컴퓨팅 시스템(300)을 부팅하는 데 사용되는 기본 입출력 시스템(BIOS)(320)을 포함할 수 있다. 도시되지 않았지만, 시스템 메모리(304)는 OS(308), 웹 브라우저(310) 및/또는 다른 프로세스들(316)에 의해 그들의 실행 동안 생성되고/되거나 사용되는 프로그램 또는 컴포넌트 데이터를 더 저장할 수 있다. 시스템 메모리(304)는 캐시 메모리도 포함할 수 있다.
도 3에 도시된 바와 같이, 컴퓨팅 시스템(300)은 비이동식 저장 장치(330)(예로서, 하드 드라이브) 및/또는 자기 디스크 저장 장치, 광 디스크 저장 장치, 테이프 저장 장치 등을 포함하지만 이에 한정되지 않는 이동식 저장 장치(334)도 포함할 수 있다. 디스크 드라이브들 및 관련 컴퓨터 판독 가능 매체들은 컴퓨팅 시스템(300)의 동작을 위한 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 및 기타 데이터의 비휘발성 저장을 제공할 수 있다. 더욱이, 비이동식 저장 장치(330)는 영구 저장 장치(332)를 더 포함할 수 있다.
일반적으로, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함한다.
컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 및 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체들을 포함하는 유형 매체이다. 컴퓨터 저장 매체는 RAM, ROM, 소거 및 프로그래밍 가능 판독 전용 메모리(EEPROM), SRAM, DRAM, 플래시 메모리 또는 기타 메모리 기술, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디지털 다기능 디스크(DVD) 또는 기타 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치들, 또는 컴퓨팅 장치에 의한 액세스를 위해 정보를 저장하는 데 사용될 수 있는 임의의 다른 비전송 매체를 포함하지만 이에 한정되지 않는다.
이와 달리, 통신 매체는 무형적이며, 반송파 또는 데이터 전송 메커니즘과 같은 피변조 데이터 신호 내에 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 또는 기타 데이터를 구현할 수 있다. 본 명세서에서 정의되는 바와 같이, 컴퓨터 저장 매체는 통신 매체를 포함하지 않는다.
컴퓨팅 시스템(300)은 키보드, 마우스, 펜, 게임 제어기, 음성 인식을 위한 음성 입력 장치, 터치 이력 장치 등을 포함하지만 이에 한정되지 않는 입력 장치(들)(336)를 포함할 수 있다. 컴퓨팅 시스템(300)은 디스플레이, 프린터, 오디오 스피커들, 햅틱 출력 등을 포함하지만 이에 한정되지 않는 출력 장치(들)(338)를 더 포함할 수 있다. 컴퓨팅 시스템(300)은 컴퓨팅 시스템(300)이 클라이언트 장치, 서버 장치, 데이터베이스, 및/또는 하나 이상의 통신 네트워크를 통해 이용 가능한 다른 네트워킹된 장치를 포함하는 다른 컴퓨팅 장치들(342)과 통신하는 것을 가능하게 하는 통신 접속(들)(340)을 더 포함할 수 있다.
예시적인 프로세스들
도 4 및 5는 다양한 실시예들에 따른 예시적인 프로세스들을 나타내는 흐름도들을 도시한다. 이러한 프로세스들의 동작들은 개별 블록들 내에 도시되며, 그러한 블록들을 참조하여 요약된다. 프로세스들은 논리 흐름 그래프들로서 도시되며, 그들의 각각의 동작은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있는 하나 이상의 동작을 나타낼 수 있다. 소프트웨어와 관련하여, 동작들은 하나 이상의 컴퓨터 저장 매체에 저장된 컴퓨터 실행 가능 명령어들을 나타내며, 이들은 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 설명되는 동작들을 수행하게 할 수 있다. 일반적으로, 컴퓨터 실행 가능 명령어들은 특정 기능들을 수행하거나 특정 추상 데이터 타입들을 구현하는 루틴, 프로그램, 객체, 모듈, 컴포넌트, 데이터 구조 등을 포함한다. 동작들이 설명되는 순서는 한정으로서 해석되는 것을 의도하지 않으며, 임의 수의 설명되는 동작들이 설명되는 프로세스들을 구현하기 위해 임의의 순서로 결합되고, 다수의 하위 동작으로 세분되고/되거나, 병렬로 실행될 수 있다.
도 4는 서버 또는 호스트가 우선 보안 프로토콜(예컨대, 폴스 스타트를 지원하는 보안 통신 프로토콜)을 지원하는지를 지시하기 위한 정보를 클라이언트 상에 저장하기 위한 예시적인 프로세스(400)를 나타낸다. 일부 실시예들에서, 프로세스(400)는 클라이언트 장치에서 실행되는 프로토콜 선택 컴포넌트(312)와 같은 컴포넌트에 의해 수행된다. 더욱이, 프로세스(400)는 클라이언트 장치에서 실행되는 브라우저 또는 다른 애플리케이션의 일부인 HTTP 클라이언트와 같은 클라이언트 프로세스에 의해 수행될 수 있다.
402에서, 제1 보안 프로토콜을 이용하여 클라이언트와 서버(예로서, 웹 서버) 사이에 보안 접속을 설정하기 위한 시도가 행해진다. 일부 실시예들에서, 제1 보안 프로토콜은 전술한 바와 같이 지연을 줄이기 위해 폴스 스타트를 지원하는 SSL 또는 TLS 프로토콜과 같은 우선 보안 프로토콜이며, 클라이언트는 폴스 스타트에 의해 변경된 SSL 또는 TLS 핸드쉐이크를 시도한다. 블록 404에서, 핸드쉐이크가 성공했는지 그리고 접속이 설정되었는지를 판정한다. 예를 들어, 전술한 바와 같이, 폴스 스타트 변경 프로토콜을 사용할 때, 클라이언트는 서버의 완성 메시지(또는 TLS 또는 SSL 핸드쉐이크가 완료되었다는 통신 지시)를 수신하기 전에 애플리케이션 데이터의 전송을 시작할 수 있다. 서버가 폴스 스타트를 지원하지 않는 경우, 서버는 애플리케이션 데이터의 클라이언트 전송을 때 아닌 것으로 해석하고, 클라이언트에 대한 접속을 중단하거나 해제할 수 있다. 그러한 상황들에서, 서버는 SSL 또는 TLS 경고, SSL 또는 TLS 에러 메시지 및/또는 TCP 메시지(예로서, TCP FIN 또는 TCP RESET)를 포함하지만 이에 한정되지 않는 통신을 클라이언트로 전송하여 실패를 지시할 수 있다. 더욱이, 일부 실시예들에서, 클라이언트는 소정 기간 후에 서버로부터 어떠한 응답도 수신하지 못한 후에 타임아웃될 수 있다. 다양한 실시예들은 블록 404에서 이러한 이벤트들 중 하나 이상을 이용하여, 서버가 폴스 스타트를 지원하지 않는 것으로 판정할 수 있다. 접속이 실패한 다른 이유들이 존재할 수 있지만, 실시예들은 보안 접속 또는 세션의 설정 실패에 기초하여 서버가 폴스 스타트를 지원하지 않는 것으로 추정할 수 있다.
접속이 성공적으로 설정된 경우, 406에서, 클라이언트 및 서버는 통신을 진행하여 애플리케이션 데이터를 교환할 수 있다. 그러나, 접속이 성공적으로 설정되지 않은 경우, 408에서, 서버에 관한 정보가 클라이언트 상의 임시 저장 장치(예로서, 임시 저장 장치(314)) 내에 저장될 수 있다. 일부 실시예들에서, 정보는 데이터베이스, 리스트 또는 다른 데이터 구조 내에 저장되며, 저장된 정보는 클라이언트가 제1 보안 프로토콜을 지원하지 않는 것으로 판정한 서버들을 식별한다. 그러한 식별 정보는 임의의 도메인 레벨 또는 서브도메인 레벨에서의 서버들에 대한 도메인 정보, 각각의 서버에 대한 URL, 또는 다른 식별 정보(예로서, IP 주소)를 포함할 수 있다.
일부 실시예들에서, 임시 저장 장치는 프로토콜 선택 컴포넌트가 프로세스(400)를 실행하고 있는 프로세스의 액티브 메모리(예로서, 물리 메모리 또는 가상 메모리) 내의 인-메모리(in-memory) 데이터 구조일 수 있다. 일부 실시예들에서, 임시 저장 장치 내의 이러한 정보는 프로세스가 동작하는 동안, 특정 접속들이 동작하는 동안 그리고/또는 접속이 동작하지 않게 된 후의 소정의 사전 결정된 기간(예로서, 10분) 동안 이용 가능할 수 있다. 이러한 방식으로, 임시 저장 장치 내의 정보의 저장은 동일 세션을 이용하는 서버에 대한 다수의 접속의 최적화를 가능하게 할 수 있으며, 따라서 HTTP 클라이언트 또는 다른 컴포넌트는 하드 드라이브 또는 다른 영구 저장 장치에 액세스해야 하는 대신에 물리 메모리로부터 서버 능력에 관한 저장된 정보를 효율적으로 검색할 수 있다. 따라서, 소정 기간 후에 동일 호스트 또는 웹사이트로 복귀하는 사용자는 클라이언트가 임시 저장 장치로부터 호스트 능력 정보를 효율적으로 검색할 수 있는 경우에 더 빠르게 접속하는 것이 가능할 수 있다.
410에서, 서버 능력에 관한 정보는 클라이언트 장치의 하드 드라이브 또는 다른 비이동식 저장 장치 상의 영구 저장 장치(332)와 같은 영구 저장 장치 내에 더 저장될 수 있다. 서버 능력 정보를 영구 저장 장치 내에 저장하는 것은 다수의 세션에 걸치는 서버에 대한 접속들의 최적화를 가능하게 할 수 있다. 예를 들어, 특정 세션이 종료되고, 임시 저장 장치가 해제된 후, 서버 능력 정보가 후속 세션 동안 영구 저장 장치로부터 검색될 수 있다. 따라서, 클라이언트는 이전 세션 동안에 수집된 서버 능력 정보에 기초하여 특정 서버가 (예로서, 폴스 스타트를 갖는) 우선 보안 프로토콜을 지원하는지를 판정할 수 있다.
일부 실시예들에서, 영구 저장 장치 내에 저장된 서버 정보는 임시 저장 장치에 저장된 것과 동일하거나 유사한 서버 식별(예로서, 도메인) 정보를 포함한다. 일부 실시예들에서, 영구 저장 장치 내에 저장된 서버 정보는 각각의 서버에 대해 정보가 저장된 시간 및 날짜를 지시하는 타임스탬프도 포함할 수 있다. 이 타임스탬프는 클라이언트가 나중에 제1 보안 프로토콜을 이용하여 서버에 대한 접속을 재시도하고, 따라서 서버의 능력이 제1 보안 프로토콜(예로서, 폴스 스타트를 포함하는 프로토콜)을 지원하도록 갱신 또는 확장되었는지를 판정하기 위해 주기적으로 검사하는 것을 가능하게 하기 위한 휴리스틱을 제공할 수 있다. 이러한 양태는 도 5와 관련하여 더 설명된다.
412에서, 제2 보안 프로토콜을 이용하여 보안 클라이언트/서버 접속을 설정하기 위한 시도가 행해진다. 일부 실시예들에서, 제2 보안 프로토콜은 폴스 스타트를 지원하지 않는 SSL 또는 TLS 프로토콜과 같은 비우선(non-preferred) 또는 덜 우선적인(less preferred) 프로토콜이다. 일부 실시예들에서, 서버 정보는 이러한 제2 핸드쉐이크 시도 전에 그리고 제1의 실패한 핸드쉐이크 시도 후에 임시 및/또는 영구 저장 장치 내에 저장된다. 일부 실시예들에서, 서버 정보는 제2 핸드쉐이크 시도 후에 저장될 수 있다. 더욱이, 일부 실시예들에서, 412에서, TCP 세션이 재설정될 필요가 있을 수 있는데, 그 이유는 폴스 스타트 핸드쉐이크가 실패한 때 서버가 기존 세션을 해제했을 수 있기 때문이다.
도 5는 우선 보안 프로토콜(예컨대, 폴스 스타트를 지원하는 프로토콜)을 이용하여 접속을 시도할지를 판정하기 위해 클라이언트 상에 저장된 정보를 이용하기 위한 예시적인 프로세스(500)의 흐름도를 나타낸다. 일부 실시예들에서, 프로세스(500)는 클라이언트 장치에서 실행되는 프로토콜 선택 컴포넌트(312)와 같은 컴포넌트에 의해 수행된다. 더욱이, 프로세스(500)는 클라이언트 장치에서 실행되는 브라우저 또는 다른 애플리케이션의 일부인 HTTP 클라이언트와 같은 클라이언트 프로세스에 의해 수행될 수 있다.
502에서, 서버와 보안 접속하기 위한 지시가 수신된다. 예를 들어, 그러한 지시는 사용자가 SSL 또는 TLS와 같은 보안 통신 프로토콜을 이용하여 클라이언트 상의 웹 브라우저 또는 다른 애플리케이션을 통해 서버 상의 웹사이트에 접속하기를 원할 때 트리거될 수 있다. 504에서, 서버 정보는 영구 저장 장치로부터 또는 전술한 바와 같이 이전에 서버 정보가 저장된 프로세스의 인-메모리 임시 저장 장치로부터 액세스된다. 일부 실시예들에서는, 인-메모리 임시 저장 장치가 먼저 검사되고, 임시 저장 장치에서 정보가 발견되지 않은 경우에 영구 저장 장치가 후속 검사된다.
506에서, 액세스된 정보 내에서 서버에 대한 정보가 발견되었는지를 판정한다. 일부 실시예들에서, 정보는 클라이언트 상에 데이터베이스, 리스트 또는 다른 데이터 구조로서 저장되며, 데이터베이스 내의 서버의 도메인의 존재는 서버가 제1 보안 프로토콜(예로서, 폴스 스타트를 지원하는 프로토콜)을 지원하지 않는다는 것을 지시한다. 서버의 도메인이 데이터베이스 내에 없거나, 데이터베이스가 서버가 제1 보안 프로토콜을 지원한다고 지시하는 경우, 프로세스(500)는 508로 진행하고, 클라이언트는 도 4와 관련하여 전술한 바와 같이 제1 보안 프로토콜을 이용하여 서버에 대한 보안 접속을 설정하려고 시도한다.
506에서 서버의 도메인이 데이터베이스 내에 존재하거나, 데이터베이스가 서버가 제1 보안 프로토콜을 지원하지 않는다는 것을 지시하는 경우, 서버의 도메인과 관련된 타임스탬프를 검사하여, 그 서버를 식별하는 정보가 구식인지(예로서, 실효되었는지)를 판정할 수 있다. 일부 실시예들에서, 이러한 검사는 타임스탬프의 날짜/시간을 현재 날짜/시간과 비교하고, 둘 간의 차이(예로서, 정보가 저장된 후에 경과한 시간)를 판정하는 것을 포함할 수 있다. 시간 차이가 사전 결정된 임계치(예로서, 30일)보다 크지 않은 경우, 서버 정보는 실효되지 않은 것으로 판정될 수 있으며, 512에서 제2 보안 프로토콜(예로서, 폴스 스타트를 지원하지 않는 비우선 프로토콜)을 이용하여 보안 접속을 설정하기 위한 시도가 행해질 수 있다.
그러나, 시간 차이가 사전 결정된 임계치보다 큰 경우, 서버의 정보가 실효되었거나 구식인 것으로 판정될 수 있다. 이 경우, 508에서 제1 프로토콜을 이용하여 접속 시도가 행해질 수 있다. 이러한 방식으로, 서버 도메인과 함께 저장된 타임스탬프는 정보가 저장된 시간 이후에 서버가 제1 프로토콜(예로서, 폴스 스타트)을 지원하도록 갱신되었는지를 검사하기 위한 수단을 제공할 수 있다. 일부 실시예들에서, 임계치는 폴스 스타트 불능 서버들이 업그레이드되었는지를 판정하기 위한 그러한 서버들의 더 또는 덜 빈번한 검사를 제공하도록 구성될 수 있다.
일부 실시예들은 호스트 능력 정보가 최신 정보인지를 검사하기 위해 클라이언트 상에서 주기적으로 실행되는 추가적인 지원 프로세스를 지원한다. 예를 들어, 그러한 프로세스는 호스트들의 저장된 리스트를 분석하고, 정보가 구식인(예로서, 사전 결정된 기간보다 오래된) 모든 호스트에 대해 그러한 호스트를 리스트로부터 제거하여 영구 저장 장치 내의 공간을 절약할 수 있다. 더욱이, 일부 실시예들에서, 그러한 프로세스는 리스트 내의 정보가 구식인 각각의 호스트에 대해 호스트와의 TLS 폴스 스타트 또는 SSL 폴스 스타트 접속을 시도하고, (예를 들어, 접속에 성공한 경우) 리스트로부터 호스트를 제거하거나, (예를 들어, 접속에 성공하지 못한 경우) 리스트 내에 호스트를 남기고, 타임스탬프를 현재의 날짜/시간으로 갱신할 수 있다.
또한, 일부 실시예들은 상위 레벨 도메인 정보를 하위 레벨 도메인들보다 우선하여 저장하는(예를 들어, www.abcdef.coom, mail.abcdef.com 등 대신에 abcdef.com을 저장하는) 호스트 리스트의 통합에 대한 최적화를 지원한다. 더욱이, 일부 실시예들에서, 상위 레벨 도메인 정보는 리스트가 상위 레벨 도메인을 공유하는 소정 임계 수의 하위 레벨 도메인들(예로서, www.abcdef.coom, mail.abcdef.com, news.abcdef.com 등)을 포함할 때까지 데이터베이스 내에 저장될 수 있다. 그 시점에서, 그러한 하위 레벨 도메인들은 리스트 내에서 상위 레벨 도메인(예로서, abcdef.com)으로 대체되어, 리스트 내의 공간이 절약될 수 있다. 일부 실시예들에서, 전술한 지원 프로세스는 이러한 통합 프로세스를 수행할 수 있다. 그러나, 일부 실시예들에서는, 개별 프로세스가 통합을 수행하도록 동작할 수 있다.
결론
기술들이 구조적 기능들 및/또는 방법적 단계들에 고유한 언어로 설명되었지만, 청부된 청구범위는 반드시 설명된 특정 특징들 또는 단계들로 한정될 필요가 없다는 것을 이해해야 한다. 오히려, 특정 특징들 및 단계들은 그러한 기술들의 예시적인 구현들로서 개시된다.

Claims (20)

  1. 컴퓨터로 구현되는 방법으로서,
    보안 접속이 제1 보안 프로토콜을 이용하여 클라이언트와 서버 사이에 성공적으로 설정되지 않았다는 것을 판정하는 단계―상기 제1 보안 프로토콜은 단축된 핸드쉐이크(abbreviated handshake)를 포함함―와,
    상기 보안 접속이 상기 제1 보안 프로토콜을 이용하여 성공적으로 설정되지 않았다고 판정하는 것에 적어도 부분적으로 기초하여, 상기 서버를 상기 제1 보안 프로토콜을 지원하지 않는 서버로서 식별하는 정보를 상기 클라이언트 상의 메모리에 저장하는 단계와,
    상기 보안 접속이 상기 제1 보안 프로토콜을 이용하여 성공적으로 설정되지 않았다고 판정하는 것에 적어도 부분적으로 기초하여, 단축되지 않은 핸드쉐이크(unabbreviated handshake)를 포함하는 제2 보안 프로토콜을 이용하여 상기 클라이언트와 상기 서버 사이에 상기 보안 접속을 설정하려고 시도하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 제1 보안 프로토콜은 폴스 스타트(False Start)를 지원하는 보안 소켓 계층(Secure Sockets Layer(SSL)) 프로토콜 또는 폴스 스타트를 지원하는 전송 계층 보안(Transport Layer Security(TLS)) 프로토콜이고,
    상기 제2 보안 프로토콜은 폴스 스타트를 지원하지 않는 SSL 프로토콜 또는 폴스 스타트를 지원하지 않는 TLS 프로토콜인
    컴퓨터로 구현되는 방법.
  3. 제1항에 있어서,
    상기 정보는 상기 클라이언트 상의 임시 저장 장치 내에 저장되는
    컴퓨터로 구현되는 방법.
  4. 제1항에 있어서,
    상기 정보는 상기 클라이언트 상의 영구 저장 장치 내에 저장되는
    컴퓨터로 구현되는 방법.
  5. 제1항에 있어서,
    상기 정보는 데이터베이스에서 상기 클라이언트 상에 저장되어 상기 제1 보안 프로토콜을 지원하지 않는 하나 이상의 도메인을 식별하는
    컴퓨터로 구현되는 방법.
  6. 제5항에 있어서,
    상기 정보는, 상기 하나 이상의 도메인의 각각에 대해, 상기 각각의 도메인의 정보가 상기 데이터베이스에 저장되었을 때의 날짜 및 시간을 나타내는 타임 스탬프를 더 포함하는
    컴퓨터로 구현되는 방법.
  7. 제1항에 있어서,
    상기 클라이언트와 상기 서버 사이에 후속 보안 접속을 설정하기 위한 시도 동안, 상기 클라이언트 상에 저장된 정보에 액세스하는 단계와,
    상기 정보에 적어도 부분적으로 기초하여 상기 서버가 상기 제1 보안 프로토콜을 지원하지 않는다는 것을 판정하는 단계와,
    상기 서버가 상기 제1 보안 프로토콜을 지원하지 않는다고 판정하는 것에 기초하여, 상기 제1 보안 프로토콜을 이용하는 상기 후속 보안 접속을 설정하려고 시도하지 않고, 상기 제2 보안 프로토콜을 이용하여 상기 후속 보안 접속을 설정하려고 시도하는 단계를 더 포함하는
    컴퓨터로 구현되는 방법.
  8. 제1항에 있어서,
    상기 클라이언트와 상기 서버 사이에 후속 보안 접속을 설정하기 위한 시도 동안, 상기 클라이언트 상에 저장된 정보에 액세스하는 단계와,
    상기 클라이언트 상에 저장된 정보가 상기 서버에 대한 실효된 정보(expired information)를 포함하는 것으로 판정하는 단계와,
    상기 제1 보안 프로토콜을 이용하여 상기 후속 보안 접속을 설정하려고 시도하는 단계를 더 포함하는
    컴퓨터로 구현되는 방법.
  9. 적어도 하나의 프로세서에 의해 실행될 경우, 상기 프로세서로 하여금 액션들을 수행하게 하는 명령어가 저장되어 있는 컴퓨터 판독 가능 저장 매체로서,
    상기 액션들은,
    클라이언트와 서버 사이에 보안 접속이 설정되어야 한다는 지시를 수신하는 것과,
    상기 보안 접속을 설정하려고 시도하기 전에, 상기 클라이언트 상의 저장 장치 내의 정보에 액세스하는 것―상기 정보는 상기 서버를 우선 보안 프로토콜을 지원하지 않는 서버로서 식별하고 상기 우선 보안 프로토콜은 단축된 핸드쉐이크를 포함함―과,
    상기 서버를 상기 우선 보안 프로토콜을 지원하지 않는 서버로서 식별하는 정보에 액세스하는 것에 적어도 부분적으로 응답하여, 단축되지 않은 핸드쉐이크를 포함하는 비우선 보안 프로토콜을 이용하여 상기 보안 접속을 설정 - 상기 단축되지 않은 핸드쉐이크는 상기 단축된 핸드쉐이크 보다 더 많은 수의 왕복(round trip) 통신을 이용하여 통신 세션을 설정함 - 하는 것을 포함하는
    컴퓨터 판독 가능 저장 매체.
  10. 제 9 항에 있어서,
    상기 우선 보안 프로토콜은 폴스 스타트를 지원하는 보안 소켓 계층(SSL) 프로토콜 또는 폴스 스타트를 지원하는 전송 계층 보안(TLS) 프로토콜이고, 상기 비우선 보안 프로토콜은 폴스 스타트를 지원하지 않는 SSL 프로토콜 또는 폴스 스타트를 지원하지 않는 TLS 프로토콜인
    컴퓨터 판독 가능 저장 매체.
  11. 제 9 항에 있어서,
    상기 액션들은,
    상기 서버를 상기 우선 보안 프로토콜을 지원하지 않는 서버로서 식별하는 정보가 타임 스탬프에 기초하여 실효되었다고 판정하는 것을 더 포함하되, 상기 타임 스탬프는 상기 서버를 상기 우선 보안 프로토콜을 지원하지 않는 서버로서 식별하는 정보가 데이터베이스에 저장될 때의 날짜 및 시간을 나타내고 상기 서버를 상기 우선 보안 프로토콜을 지원하지 않는 서버로서 식별하는 정보와 함께 저장되는
    컴퓨터 판독 가능 저장 매체.
  12. 제 9 항에 있어서,
    상기 서버를 상기 우선 보안 프로토콜을 지원하지 않는 서버로서 식별하는 정보는 상기 클라이언트 상의 임시 저장 장치 내에 존재하여 동일한 통신 세션 내에서 보안 접속을 설정하는
    컴퓨터 판독 가능 저장 매체.
  13. 제 9 항에 있어서,
    상기 서버를 상기 우선 보안 프로토콜을 지원하지 않는 서버로서 식별하는 정보는 상기 클라이언트 상의 영구 저장 장치 내에 존재하여 상이한 통신 세션을 통해 보안 접속을 설정하는
    컴퓨터 판독 가능 저장 매체.
  14. 제 9 항에 있어서,
    상기 서버를 상기 우선 보안 프로토콜을 지원하지 않는 서버로서 식별하는 정보는 상기 서버의 도메인을 포함하는
    컴퓨터 판독 가능 저장 매체.
  15. 제 9 항에 있어서,
    상기 우선 보안 프로토콜은 상기 클라이언트가 상기 서버로부터 완성 메시지를 수신하기 전에 상기 클라이언트가 상기 서버로 애플리케이션 데이터를 전송하기 시작하는 것을 가능하게 하고,
    상기 비우선 보안 프로토콜은 상기 클라이언트가 상기 서버로부터 완성 메시지를 수신하기 전에 상기 클라이언트가 상기 서버로 애플리케이션 데이터를 전송하기 시작하는 것이 불가능한
    컴퓨터 판독 가능 저장 매체.
  16. 클라이언트 장치로서,
    적어도 하나의 프로세서와,
    상기 적어도 하나의 프로세서에 의해 실행가능한 컴퓨터 판독가능한 명령어를 저장한 메모리를 포함하되, 상기 컴퓨터 판독가능한 명령어는,
    폴스 스타트를 지원하는 제1 보안 프로토콜을 이용하여 상기 클라이언트 장치와 서버 사이에 보안 접속을 설정하려고 시도하는 것과,
    상기 보안 접속이 상기 제1 보안 프로토콜을 이용하여 성공적으로 설정되었는지를 판정하는 것과,
    상기 보안 접속이 상기 제1 보안 프로토콜을 이용하여 성공적으로 설정되지 않았다는 판정에 기초하여, 상기 서버를 폴스 스타트를 지원하지 않는 것으로서 식별하는 정보를 상기 클라이언트 장치 상에 저장하는 것과,
    폴스 스타트를 지원하지 않는 제2 보안 프로토콜을 이용하여 상기 클라이언트 장치와 상기 서버 사이에 상기 보안 접속을 설정하려고 재시도하는 것을 포함하는 동작을 수행하게 하는
    클라이언트 장치.
  17. 제 16 항에 있어서,
    상기 서버를 폴스 스타트를 지원하지 않는 것으로서 식별하는 상기 정보는 상기 클라이언트 장치의 상기 메모리 내의 데이터베이스 상에 저장되는
    클라이언트 장치.
  18. 제 16 항에 있어서,
    하드 드라이브를 더 포함하고, 상기 서버를 폴스 스타트를 지원하지 않는 것으로서 식별하는 상기 정보는 상기 하드 드라이브 상의 영구 저장 장치 내에 저장되는
    클라이언트 장치.
  19. 제 16 항에 있어서,
    상기 메모리에 저장된 상기 컴퓨터 판독가능 명령어의 적어도 일부는 웹 브라우저 애플리케이션을 포함하는
    클라이언트 장치.
  20. 제 16 항에 있어서,
    상기 동작은,
    후속 보안 접속이 상기 클라이언트 장치와 상기 서버 사이에 설정된다는 표시를 후속하여 수신하는 것과,
    상기 저장된 정보에 액세스하여 상기 서버가 폴스 스타트를 지원하는지 여부를 판정하는 것과,
    상기 서버가 폴스 스타트를 지원하지 않고 상기 저장된 정보가 실효되지 않았다는 것을 상기 저장된 정보가 나타낸다는 판정에 기초하여, 폴스 스타트를 지원하지 않는 상기 제2 보안 프로토콜을 이용하여 상기 후속 보안 접속을 설정하려고 시도하는 것을 포함하는
    클라이언트 장치.
KR1020147024190A 2012-02-29 2013-02-24 보안 프로토콜의 동적 선택 기법 KR102073434B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/408,225 US9537899B2 (en) 2012-02-29 2012-02-29 Dynamic selection of security protocol
US13/408,225 2012-02-29
PCT/US2013/027538 WO2013130369A1 (en) 2012-02-29 2013-02-24 Dynamic selection of security protocol

Publications (2)

Publication Number Publication Date
KR20140131523A KR20140131523A (ko) 2014-11-13
KR102073434B1 true KR102073434B1 (ko) 2020-02-04

Family

ID=49004596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147024190A KR102073434B1 (ko) 2012-02-29 2013-02-24 보안 프로토콜의 동적 선택 기법

Country Status (6)

Country Link
US (2) US9537899B2 (ko)
EP (1) EP2820824B1 (ko)
JP (2) JP6210561B2 (ko)
KR (1) KR102073434B1 (ko)
CN (1) CN104137511B (ko)
WO (1) WO2013130369A1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075953B2 (en) * 2012-07-31 2015-07-07 At&T Intellectual Property I, L.P. Method and apparatus for providing notification of detected error conditions in a network
US20140256286A1 (en) * 2013-03-08 2014-09-11 Microsoft Corporation Intelligent Protocol Selection
CN103826225B (zh) * 2014-02-19 2017-10-10 西安电子科技大学 一种无线网络中身份认证协议选择方法
JP6429559B2 (ja) * 2014-09-26 2018-11-28 キヤノン株式会社 通信装置、通信システム、情報処理方法及びプログラム
US11399019B2 (en) * 2014-10-24 2022-07-26 Netflix, Inc. Failure recovery mechanism to re-establish secured communications
US11533297B2 (en) 2014-10-24 2022-12-20 Netflix, Inc. Secure communication channel with token renewal mechanism
US10050955B2 (en) 2014-10-24 2018-08-14 Netflix, Inc. Efficient start-up for secured connections and related services
CN106161224B (zh) * 2015-04-02 2019-09-17 阿里巴巴集团控股有限公司 数据交换方法、装置及设备
JP6516539B2 (ja) * 2015-04-15 2019-05-22 キヤノン株式会社 通信装置、通信方法、およびプログラム
US20180062936A1 (en) * 2015-05-15 2018-03-01 Hewlett-Packard Development Company, L.P. Display of Server Capabilities
CN105208027B (zh) * 2015-09-30 2019-12-03 北京奇虎科技有限公司 一种进行语音通话的方法及终端设备
CN105141705B (zh) * 2015-09-30 2019-05-10 北京奇虎科技有限公司 一种安全传输数据的方法及终端设备
CN105245515B (zh) * 2015-09-30 2019-03-05 北京奇虎科技有限公司 一种数据安全传输方法及终端设备
CN105282153B (zh) * 2015-09-30 2019-06-04 北京奇虎科技有限公司 一种实现数据传输的方法及终端设备
CN105306455B (zh) * 2015-09-30 2019-05-21 北京奇虎科技有限公司 一种处理数据的方法及终端设备
CN105245516B (zh) * 2015-09-30 2019-03-05 北京奇虎科技有限公司 一种数据传输方法及终端设备
CN105306454A (zh) * 2015-09-30 2016-02-03 北京奇虎科技有限公司 一种传输数据的方法及终端设备
CN105450452B (zh) * 2015-12-02 2017-05-24 光一科技股份有限公司 一种提升故障指示器安全性和稳定性的远程升级方法
JP6881935B2 (ja) * 2016-10-07 2021-06-02 キヤノン株式会社 通信装置、通信装置の制御方法及びプログラム
CN107294986B (zh) * 2017-06-30 2018-05-08 北京海泰方圆科技股份有限公司 一种访问https网站的方法、装置及系统
EP3442193B1 (de) * 2017-08-09 2020-05-06 Siemens Mobility GmbH Verfahren zum aufbau eines sicheren kommunikationskanals zwischen einer ersten und einer zweiten netzwerkeinrichtung
CN107612760B (zh) * 2017-11-03 2021-08-24 睿石网云(北京)科技有限公司 一种业务服务的中断监测方法及系统
US10855723B2 (en) * 2018-05-11 2020-12-01 Cisco Technology, Inc. Enforcing a secure transport protocol with dynamically updated stored data
JP2020057170A (ja) 2018-10-01 2020-04-09 富士ゼロックス株式会社 情報処理装置およびプログラム
CN110311921B (zh) * 2019-07-11 2022-02-25 南方电网科学研究院有限责任公司 一种配电终端加解密方法、系统、设备及计算机存储介质
CN110768988B (zh) * 2019-10-28 2022-09-30 杭州迪普科技股份有限公司 一种建立ssl vpn隧道的方法及装置
US11588840B2 (en) * 2020-01-31 2023-02-21 Salesforce, Inc. Automated encryption degradation detection, reporting and remediation
US11671404B2 (en) 2020-07-14 2023-06-06 Vmware, Inc. Policy based mechanism to efficiently interpret and block insecure network communication
US11895159B2 (en) * 2021-06-30 2024-02-06 International Business Machines Corporation Security capability determination
CN114070877B (zh) * 2021-11-18 2023-10-20 北京云上曲率科技有限公司 基于用户数据报协议的数据传输方法、服务端及客户端
CN114520824A (zh) * 2021-12-27 2022-05-20 北京升明科技有限公司 基于tls协议的通信握手方法、装置、电子设备及介质
CN114584393B (zh) * 2022-03-31 2023-10-20 深圳市瑞云科技有限公司 一种自动选择加密协议的方法
CN116760878B (zh) * 2023-08-21 2023-12-01 每日互动股份有限公司 一种网络连接和传输的处理方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060209789A1 (en) 2005-03-04 2006-09-21 Sun Microsystems, Inc. Method and apparatus for reducing bandwidth usage in secure transactions
US20080063204A1 (en) 2006-09-07 2008-03-13 Motorola, Inc. Method and system for secure processing of authentication key material in an ad hoc wireless network

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4932023A (en) * 1989-06-20 1990-06-05 International Business Machines Corporation Frame stripping protocol for early token release in a ring communication network
GB9414331D0 (en) * 1994-07-15 1994-09-07 Thomson Consumer Electronics Combined I*C and IM bus architecture
US5832506A (en) 1996-03-29 1998-11-03 Intel Corporation Directory for network servers
JPH10164380A (ja) 1996-10-04 1998-06-19 Canon Inc 画像処理装置及びその方法
US5978849A (en) * 1997-06-13 1999-11-02 International Business Machines Corporation Systems, methods, and computer program products for establishing TCP connections using information from closed TCP connections in time-wait state
US6094485A (en) * 1997-09-18 2000-07-25 Netscape Communications Corporation SSL step-up
US6353620B1 (en) * 1998-04-09 2002-03-05 Ericsson Inc. System and method for facilitating inter-nodal protocol agreement in a telecommunications
US6901596B1 (en) 1998-05-07 2005-05-31 Hewlett-Packard Development Company, L.P. Method of communicating asynchronous events to remote procedure call clients
US6321252B1 (en) 1998-07-17 2001-11-20 International Business Machines Corporation System and method for data streaming and synchronization in multimedia groupware applications
US6532506B1 (en) * 1998-08-12 2003-03-11 Intel Corporation Communicating with devices over a bus and negotiating the transfer rate over the same
US6314471B1 (en) 1998-11-13 2001-11-06 Cray Inc. Techniques for an interrupt free operating system
US6718382B1 (en) * 1999-02-11 2004-04-06 Yunzhou Li Technique for detecting leaky points within a network protocol domain
US7120140B1 (en) * 1999-02-26 2006-10-10 Intel Corporation Digital browser phone
US6886103B1 (en) * 1999-10-28 2005-04-26 Lucent Technologies Inc. Method and apparatus for extending network address translation for unsupported protocols
US6721331B1 (en) * 1999-12-15 2004-04-13 At&T Corp. Method and apparatus for decentralized prioritized scheduling in a CSMA/CA wireless system
US7096418B1 (en) 2000-02-02 2006-08-22 Persistence Software, Inc. Dynamic web page cache
US7180936B1 (en) * 2000-03-15 2007-02-20 Centillium Communications, Inc. Techniques to avoid G.HS false start due to FEXT
US6850257B1 (en) 2000-04-06 2005-02-01 Microsoft Corporation Responsive user interface to manage a non-responsive application
US6744452B1 (en) 2000-05-04 2004-06-01 International Business Machines Corporation Indicator to show that a cached web page is being displayed
EP1524815B1 (en) * 2000-08-25 2009-09-23 Research In Motion Limited System and method for implementing an enhanced transport layer security protocol
US7647339B2 (en) 2000-10-04 2010-01-12 Gonzalez Emmanuel C Method for digitally labeling websites
SE517729C2 (sv) * 2000-11-24 2002-07-09 Columbitech Ab Metod för att upprätthålla kommunikation mellan enheter tillhöriga skilda kommunikationsnät
US7146432B2 (en) * 2001-01-17 2006-12-05 International Business Machines Corporation Methods, systems and computer program products for providing failure recovery of network secure communications in a cluster computing environment
US7035202B2 (en) * 2001-03-16 2006-04-25 Juniper Networks, Inc. Network routing using link failure information
US7555561B2 (en) 2001-03-19 2009-06-30 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data broadcasting method
JP2003050077A (ja) * 2001-05-25 2003-02-21 Lg Electronics Inc 食品自動注文型冷蔵庫およびその動作方法
US6988147B2 (en) * 2001-05-31 2006-01-17 Openwave Systems Inc. Method of establishing a secure tunnel through a proxy server between a user device and a secure server
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7562146B2 (en) * 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US6851062B2 (en) 2001-09-27 2005-02-01 International Business Machines Corporation System and method for managing denial of service attacks
US7984157B2 (en) * 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US8516114B2 (en) 2002-03-29 2013-08-20 International Business Machines Corporation Method and apparatus for content pre-fetching and preparation
ATE316312T1 (de) 2002-04-05 2006-02-15 Übertragungskontrolle für objekte in einem kommunikationsnetzwerk
US7430755B1 (en) * 2002-09-03 2008-09-30 Fs Networks, Inc. Method and system for providing persistence in a secure network access
DE10249851A1 (de) 2002-10-25 2004-05-13 Elektro Beckhoff Gmbh Unternehmensbereich Industrie Elektronik Verfahren, Schnittstelleneinheit und Knoten zur parallelen Nutzung eines Kommunikationsnetzwerkes für Echtzeitanwendungen und Nicht-Echtzeitanwendungen
US7131003B2 (en) * 2003-02-20 2006-10-31 America Online, Inc. Secure instant messaging system
US20040128541A1 (en) * 2002-12-31 2004-07-01 Iinternational Business Machines Corporation Local architecture for federated heterogeneous system
US7680944B1 (en) * 2003-02-28 2010-03-16 Comtrol Corporation Rapid transport service in a network to peripheral device servers
US7339893B2 (en) * 2003-03-18 2008-03-04 Cisco Technology, Inc. Pre-empting low-priority traffic with high-priority traffic on a dedicated link
US7287083B1 (en) * 2003-03-20 2007-10-23 Novell, Inc. Computing environment failover in a branch office environment
US20040249973A1 (en) * 2003-03-31 2004-12-09 Alkhatib Hasan S. Group agent
US8352725B1 (en) * 2003-04-21 2013-01-08 Cisco Technology, Inc. Method and apparatus for managing secure communications
US20050015644A1 (en) * 2003-06-30 2005-01-20 Microsoft Corporation Network connection agents and troubleshooters
JP4134945B2 (ja) 2003-08-08 2008-08-20 ヤマハ株式会社 自動演奏装置及びプログラム
US7231496B2 (en) 2003-09-15 2007-06-12 International Business Machines Corporation Method, system and program product for caching data objects
JP4107213B2 (ja) * 2003-10-06 2008-06-25 松下電工株式会社 パケット判定装置
US7436535B2 (en) 2003-10-24 2008-10-14 Microsoft Corporation Real-time inking
US7302564B2 (en) * 2003-12-24 2007-11-27 I-Net Software Gmbh Translation of secure communications for handshake protocols
GB0405245D0 (en) * 2004-03-09 2004-04-21 Ibm Key-based encryption
US7231530B1 (en) * 2004-04-06 2007-06-12 Cisco Technology, Inc. System and method for saving power in a wireless network by reducing power to a wireless station for a time interval if a received packet fails an integrity check
EP1599007B1 (en) 2004-05-18 2007-09-12 Alcatel Lucent Method and server for providing a multi-modal dialog
US20060031680A1 (en) 2004-08-04 2006-02-09 Yehuda Maiman System and method for controlling access to a computerized entity
US8718067B2 (en) * 2004-11-24 2014-05-06 Lantiq Deutschland Gmbh Pre-emption mechanism for packet transport
US8006091B2 (en) * 2005-01-10 2011-08-23 Cisco Technology, Inc. Method and apparatus to provide failover capability of cached secure sessions
WO2006075856A1 (en) * 2005-01-17 2006-07-20 Lg Electronics Inc. Tls session management method in supl-based positioning system
US7581005B2 (en) * 2005-01-20 2009-08-25 Citrix Systems, Inc. Systems and methods for preserving transport layer protocol options
US7668962B2 (en) * 2005-02-07 2010-02-23 Symantec Operating Corporation System and method for connection failover using redirection
US7549151B2 (en) 2005-02-14 2009-06-16 Qnx Software Systems Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
US7949106B2 (en) 2005-03-10 2011-05-24 Avaya Inc. Asynchronous event handling for video streams in interactive voice response systems
EP1727056B1 (en) * 2005-05-25 2008-11-05 Microsoft Corporation Data communication protocol
US7730523B1 (en) * 2005-06-17 2010-06-01 Oracle America, Inc. Role-based access using combinatorial inheritance and randomized conjugates in an internet hosted environment
US20070005779A1 (en) 2005-06-30 2007-01-04 Ebay Inc. Origin aware cookie verification systems and methods
US8478986B2 (en) 2005-08-10 2013-07-02 Riverbed Technology, Inc. Reducing latency of split-terminated secure communication protocol sessions
US20070058634A1 (en) * 2005-09-09 2007-03-15 Vipul Gupta Interaction with wireless sensor devices
US8220042B2 (en) * 2005-09-12 2012-07-10 Microsoft Corporation Creating secure interactive connections with remote resources
US7653722B1 (en) * 2005-12-05 2010-01-26 Netapp, Inc. Server monitoring framework
US7430633B2 (en) 2005-12-09 2008-09-30 Microsoft Corporation Pre-storage of data to pre-cached system memory
US20070204089A1 (en) * 2006-02-27 2007-08-30 Microsoft Corporation Multi-protocol removable storage device
US8002701B2 (en) * 2006-03-10 2011-08-23 Angel Medical Systems, Inc. Medical alarm and communication system and methods
CN101051898B (zh) 2006-04-05 2010-04-21 华为技术有限公司 无线网络端到端通信认证方法及其装置
US7984479B2 (en) * 2006-04-17 2011-07-19 International Business Machines Corporation Policy-based security certificate filtering
US9019300B2 (en) 2006-08-04 2015-04-28 Apple Inc. Framework for graphics animation and compositing operations
US8091126B2 (en) * 2006-08-18 2012-01-03 Microsoft Corporation Failure recognition
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
US8578159B2 (en) * 2006-09-07 2013-11-05 Motorola Solutions, Inc. Method and apparatus for establishing security association between nodes of an AD HOC wireless network
US8218478B2 (en) * 2007-02-28 2012-07-10 Research In Motion Limited Apparatus, and associated method, for facilitating communication connection between a mobile station and a communication network
US8175272B2 (en) * 2007-03-12 2012-05-08 Motorola Solutions, Inc. Method for establishing secure associations within a communication network
FR2916592B1 (fr) * 2007-05-25 2017-04-14 Groupe Des Ecoles De Telecommunications(Get)-Ecole Nat Superieure Des Telecommunications(Enst) Procede de securisation d'echange d'information,dispositif, et produit programme d'ordinateur correspondant
US20100146415A1 (en) 2007-07-12 2010-06-10 Viasat, Inc. Dns prefetch
US20120075469A1 (en) * 2007-07-25 2012-03-29 Neo It Solutions Ltd. Internet visual surveillance and management technology for telecommunications, internet, cellular and other communications companies
WO2009018512A1 (en) * 2007-08-02 2009-02-05 Imagineer Software, Inc. Systems and methods for implementing a mutating transport layer security protocol
US8769129B2 (en) * 2007-11-14 2014-07-01 Juniper Networks, Inc. Server initiated secure network connection
US8145768B1 (en) * 2008-02-26 2012-03-27 F5 Networks, Inc. Tuning of SSL session caches based on SSL session IDS
US7945774B2 (en) * 2008-04-07 2011-05-17 Safemashups Inc. Efficient security for mashups
US7930542B2 (en) * 2008-04-07 2011-04-19 Safemashups Inc. MashSSL: a novel multi party authentication and key exchange mechanism based on SSL
US8307203B2 (en) * 2008-07-14 2012-11-06 Riverbed Technology, Inc. Methods and systems for secure communications using a local certification authority
US8520646B1 (en) * 2008-07-25 2013-08-27 Clearwire Ip Holdings Llc Ranging of wireless communication networks with distant links
US8677018B2 (en) 2008-08-25 2014-03-18 Google Inc. Parallel, side-effect based DNS pre-caching
US9197486B2 (en) 2008-08-29 2015-11-24 Google Inc. Adaptive accelerated application startup
US8495719B2 (en) * 2008-10-02 2013-07-23 International Business Machines Corporation Cross-domain access prevention
JP5119117B2 (ja) * 2008-10-10 2013-01-16 株式会社日立製作所 鍵交換プロトコル変換装置及び、システム
US9258269B1 (en) * 2009-03-25 2016-02-09 Symantec Corporation Methods and systems for managing delivery of email to local recipients using local reputations
US8312308B2 (en) * 2009-06-22 2012-11-13 Citrix Systems, Inc. Systems and methods for SSL session cloning—transfer and regeneration of SSL security parameters across cores, homogenous system or heterogeneous systems
US7958258B2 (en) * 2009-09-09 2011-06-07 Verizon Patent And Licensing, Inc. Mobile communication device domain name system redirection
US20110082599A1 (en) * 2009-10-06 2011-04-07 Makarand Shinde Optimizing Utility Usage by Smart Monitoring
US20110153807A1 (en) 2009-12-21 2011-06-23 Lorenzo Vicisano Systems and Methods for Preemptive DNS Resolution
US9055064B2 (en) * 2009-12-28 2015-06-09 Citrix Systems, Inc. Systems and methods for a VPN ICA proxy on a multi-core system
US8732060B2 (en) * 2010-02-05 2014-05-20 D2V Technologies, LLC System and method for progressive transitions portfolio investment management
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
US20110314275A1 (en) * 2010-06-22 2011-12-22 Michael Gopshtein Managing encryption keys
WO2012021662A2 (en) * 2010-08-10 2012-02-16 General Instrument Corporation System and method for cognizant transport layer security (ctls)
DE102011101800A1 (de) * 2011-05-17 2012-11-22 Mattias Finzelberg Schutzhandschuh
US8640047B2 (en) 2011-06-01 2014-01-28 Micorsoft Corporation Asynchronous handling of a user interface manipulation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060209789A1 (en) 2005-03-04 2006-09-21 Sun Microsystems, Inc. Method and apparatus for reducing bandwidth usage in secure transactions
US20080063204A1 (en) 2006-09-07 2008-03-13 Motorola, Inc. Method and system for secure processing of authentication key material in an ad hoc wireless network

Also Published As

Publication number Publication date
US20180152484A1 (en) 2018-05-31
CN104137511A (zh) 2014-11-05
KR20140131523A (ko) 2014-11-13
US9537899B2 (en) 2017-01-03
WO2013130369A1 (en) 2013-09-06
US10313399B2 (en) 2019-06-04
JP6210561B2 (ja) 2017-10-11
EP2820824A4 (en) 2015-10-21
JP6423059B2 (ja) 2018-11-14
CN104137511B (zh) 2018-01-02
EP2820824B1 (en) 2020-03-25
JP2015511743A (ja) 2015-04-20
US20130227272A1 (en) 2013-08-29
JP2018010674A (ja) 2018-01-18
EP2820824A1 (en) 2015-01-07

Similar Documents

Publication Publication Date Title
KR102073434B1 (ko) 보안 프로토콜의 동적 선택 기법
JP5837940B2 (ja) 非アクティブのブラウザウィンドウを検出するための技術
JP6018080B2 (ja) 新しいブラウザウィンドウを検出するための技術
US9325785B2 (en) Device, system, and method for client-governed session persistency between one or more clients and servers of a data center
US20200204632A1 (en) Transmission Control of Protocol State Exchange for Dynamic Stateful Service Insertion
US10938935B1 (en) Reduction in redirect navigation latency via speculative preconnection
WO2013038320A1 (en) Mobile resource accelerator
WO2008084357A2 (en) Asynchronous context data messaging
US9609031B1 (en) Propagating state information to network nodes
US10609155B2 (en) Scalable self-healing architecture for client-server operations in transient connectivity conditions
EP1987439A2 (en) Storing and retrieving user context data
US20200336432A1 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
EP3105908B1 (en) Implementing server push at server stack
US20150229730A1 (en) Managing Server Pushed Resources at Client
Bocovich et al. Addressing denial of service attacks on free and open communication on the internet
JP2020035465A (ja) 三角アプローチを用いた仮想マシンインスタンス
JP2009129427A (ja) ファイル転送方法及びファイル転送システム

Legal Events

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