KR101448866B1 - 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법 - Google Patents

웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR101448866B1
KR101448866B1 KR1020130003196A KR20130003196A KR101448866B1 KR 101448866 B1 KR101448866 B1 KR 101448866B1 KR 1020130003196 A KR1020130003196 A KR 1020130003196A KR 20130003196 A KR20130003196 A KR 20130003196A KR 101448866 B1 KR101448866 B1 KR 101448866B1
Authority
KR
South Korea
Prior art keywords
client
server
key
master key
encryption algorithm
Prior art date
Application number
KR1020130003196A
Other languages
English (en)
Other versions
KR20140091221A (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 주식회사 시큐아이
Priority to KR1020130003196A priority Critical patent/KR101448866B1/ko
Publication of KR20140091221A publication Critical patent/KR20140091221A/ko
Application granted granted Critical
Publication of KR101448866B1 publication Critical patent/KR101448866B1/ko

Links

Images

Classifications

    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명의 실시예에 따라, 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법이 개시된다. 상기 방법은 클라이언트의 헬로우 메시지로부터 클라이언트 난수 값을 추출하는 단계; 서버의 헬로우 메시지로부터 서버 난수 값, 암호화 알고리즘 및 해쉬 알고리즘을 추출하는 단계; 상기 클라이언트의 키 교환 메시지로부터 프리-마스터 키를 생성하는 단계; 상기 서버 난수 값, 상기 클라이언트 난수 값 및 상기 프리-마스터 키로부터 상기 해쉬 알고리즘에 따라 마스터 키를 생성하는 단계; 및 상기 마스터 키를 이용하여 상기 암호화 알고리즘에 따라 상기 서버 및 상기 클라이언트 사이의 암호화 데이터를 복호화하는 단계를 포함할 수 있다.

Description

웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법{SECURITY APPARATUS FOR DECRYPTING DATA ENCRYPTED ACCORDING TO THE WEB SECURITY PROTOCOL AND OPERATING METHOD THEREOF}
본 발명은 웹 보안 프로토콜에 따른 암호화 데이터 통신에 관한 것으로, 더욱 구체적으로는, 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법에 관한 것이다.
웹 보안 프로토콜은 인터넷 통신 상에서 TCP/IP와 같은 연결 지향적인 네트워크(network) 계층과 HTTP와 같은 어플리케이션(application) 프로토콜 계층 사이에 위치하는 프로토콜 계층으로, 상호 인증, 무결성을 위한 전자서명의 사용, 프라이버시를 위한 암호화 등을 이용하여 클라이언트(client)와 서버(server)(또는 웹서버) 간의 안전한 통신을 제공한다. 따라서 원치 않는 제3자가 통신의 내용을 누출하여 가로챌 수 없도록 하며, 또한 믿을 수 없는 통신상의 양자에 대한 상호 인증 기능을 제공함으로써 네트워크 상의 양자가 서로 믿고 통신할 수 있도록 하는 것이다.
현재 전 세계적으로 실질적인 표준으로 사용하고 있는 웹 보안 프로토콜은 네스케이프(Netscape)사의 SSL(Secure Socket Layer, 이하 SSL)프로토콜이다. SSL 프로토콜은 웹을 위한 HTTP 뿐만 아니라 텔넷(Telnet), FTP, SSL VPN 등과 같은 다른 어플리케이션 프로토콜에서의 암호화 통신에도 적용 가능하다.
SSL 프로토콜은 암호화, 다이제스트, 서명을 위해 사용되는 알고리즘을 선택할 수도 있도록 디자인 되어있다. 이것은 특정 웹 서버에서 암호 알고리즘을 선택할 때 법적인 문제나 수출법과 같은 문제를 고려하여 선택할 수 있도록 해준다. 사용할 알고리즘의 선택은 SSL 프로토콜 세션이 시작될 때 핸드쉐이크(handshake) 과정을 통하여 클라이언트와 서버 간의 협상에 의해 선택하게 된다.
SSL은 버전 3.0이후 IETF(Internet Engineering Task Force)에서 표준화되어 TLS (Transport Layer Security)로 명명되었지만 실제 그 내용은 SSL 3.0과 TLS v1.0이 같으며, MS Explorer나 Netscape등 대부분의 브라우저에서 지원하고 있다.
도 1은 클라이언트 및 서버 간의 종래의 SSL/TLS 핸드쉐이크 과정의 예시를 도시한다.
도시되는 바와 같이, 우선 클라이언트는 서버와의 SSL/TLS 세션을 형성하기 위해 Client Hello 메시지를 서버에 전송할 수 있다. Client Hello 메시지는, SSL/TLS 세션 설정 요청을 서버에 알리기 위한 것으로서, 클라이언트 SSL 버전, 클라이언트에서 생성한 임의의 난수 값, 세션 식별자, 암호화 알고리즘 목록(cipher suite list), 등의 정보를 포함할 수 있다.
다음으로 서버는 Client Hello 메시지를 수신한 후에 Server Hello 메시지를 클라이언트에 전송할 수 있다. Server Hello 메시지는, SSL/TLS 세션 설정 준비 완료 상태를 클라이언트에 알리기 위한 것으로서, 서버 SSL 버전, 서버에서 생성한 임의의 난수 값, 세션 식별자, 클라이언트의 암호화 알고리즘 목록에서 선택된 암호화 알고리즘, 해쉬 알고리즘, 인증 알고리즘 및 압축 알고리즘 등의 정보를 포함할 수 있다.
다음으로 서버는 서버의 인증을 위한 자신의 인증서(certificate)를 Server Certificate 메시지를 통해 클라이언트로 전송할 수 있다. 인증서의 형식은 Client Hello 메시지와 Server Hello 메시지 처리 과정에서 선택된 암호화 규격에 의해 결정되며, 일반적으로 X.509 인증서를 사용한다. Certificate 메시지는 클라이언트가 프리-마스터 키(pre-master key)를 암호화하기 위해 이용되는 서버의 공개 키(public key)를 포함할 수 있다. 만약, 인증서가 없거나 서명용으로만 사용할 수 있다면 서버는 Server Key Exchange 메시지를 전송할 수 있다.
다음으로 서버는 Client Certificate Request 메시지를 전송할 수 있다. 상기 전송은 선택적으로 수행될 수 있는 것으로, 서버는 상기 메시지를 통해 클라이언트의 인증서를 요구하여 신뢰할 수 있는 클라이언트인지 확인할 수 있다.
다음으로 서버는 Server Hello Done 메시지를 전송하여, 서버에서 보낼 메시지를 모두 전송하였음을 클라이언트에게 알릴 수 있다. 따라서 Server Hello Done 메시지를 수신한 클라이언트는 서버로부터 더 이상의 메시지 전송이 없음을 알 수 있다.
다음으로 클라이언트는 Client Certificate 메시지를 전송할 수 있다. 상기 전송은 서버로부터 Client Certificate Request가 있을 경우에 수행될 수 있으며, 클라이언트가 인증서가 없다면, No Certificate Alert 메시지를 전송할 수 있다.
다음으로, 클라이언트는 Client Key Exchange 교환 메시지를 통하여, 서버의 공개 키에 의해 암호화된 프리-마스터 키를 전송할 수 있다.
다음으로, 클라이언트는 Certificate Verify 메시지를 전송할 수 있다. 인증서 검증 메시지의 전송은 선택적인 것으로서, Certificate Verify 메시지를 수신한 서버는 클라이언트 인증서에 포함된 공개 키가 유효한지 확인함으로써 클라이언트 인증을 수행할 수 있다.
다음으로, 클라이언트는 Change Cipher Specs 메시지를 서버에 전송하여 이후에 전송되는 모든 메시지는 협상된 알고리즘과 키를 이용할 것임을 알릴 수 있다. 클라이언트는 서버와 협상된 알고리즘 및 마스터 키가 적용된 Finished 메시지를 서버에 전송할 수 있다. 마찬가지로, 서버는 클라이언트가 전송한 모든 메시지를 확인한 후, Change Cipher Specs 메시지를 클라이언트에게 전송할 수 있으며 그 후 Finished 메시지를 생성하여 클라이언트에 전송할 수 있다.
이로써 SSL 핸드쉐이크 프로토콜 단계를 종료하게 되며, 클라이언트 및 서버는 확보된 SSL 채널을 통하여 교환된 마스터 키로 암호화된 데이터를 송수신할 수 있다.
SSL/TLS 프로토콜은 전송계층의 데이터를 암호화 하여 개인의 정보를 안전하게 보호하는 좋은 기술이지만, 역으로 암호화되어 있기 때문에 의도하지 않게 위험한 바이러스, 트로이 목마 또는 네트워크 공격에 노출될 수 있다. 따라서 이러한 공격을 탐지하기 위해서는 SSL/TLS 프로토콜에 따라 암호화된 데이터를 복호화하는 기술이 필요한데 주로 프록시(proxy) 방식을 이용한 복호화 기법이 사용되고 있다. 이와 관련하여, 도 2는 종래의 프록시 방식의 SSL/TLS 복호화의 예시를 도시한다.
도시되는 바와 같이, 클라이언트 및 서버 사이에 보안 장치가 존재할 수 있으며, 여기서 보안 장치는 예를 들어, SSL/TLS 복호화 장치, 응용 프로그램 등으로서, 클라이언트 및 서버에 대해 각각 새로운 서버 및 클라이언트가 되어 SSL/TLS로 암호화된 데이터를 복호화하게 된다. 이를 위해 보안 장치는 두 개의 소켓, 즉, 클라이언트와의 세션(세션 1)과, 서버와의 세션(세션 2)을 생성하게 된다. 구체적으로, 보안 장치는 서버와의 관계에서, 접속요청에 응답하여 서버로부터 전송되는 서버 인증서를 검증하고 서버와 상기 제 1 마스터 키를 교환한 후, 제 1 마스터 키를 이용한 데이터의 암호화 및 복호화를 통해 서버와의 데이터 통신을 수행하게 된다. 또한, 보안 장치는 클라이언트와의 관계에서, 클라이언트에 제공하기 위한 프록시 인증서를 생성하여 클라이언트에 제공하고, 클라이언트와 제 2 마스터 키를 교환한 후, 제 2 마스터 키를 통한 데이터의 암호화 및 복호화를 통하여 클라이언트와의 데이터 통신을 수행하게 된다.
그러나 이와 같이 소켓을 사용하여 세션을 하나 생성하기 위해서는 운영체제(Operating System, OS)가 제공하는 네트워크 서비스(패킷 데이터 하나를 네트워크 카드부터 상위 어플리케이션까지 전송해 주는 서비스)를 이용해야 하기 때문에, 보안 장치에 의해 두 개의 세션이 생성되면 성능이 감소하게 된다. 또한 클라이언트와 서버 각각과의 SSL/TLS 핸드쉐이크 과정이 필요함으로 이 과정의 부하 또한 무시할 수 없다. 프록시 방식은 소켓 기반으로 동작하기 때문에 클라이언트와 서버 간의 추가적인 소켓 연결이 필요하며 OS가 제공하는 네트워크 서비스를 모두 거쳐야 하기 때문에 매 패킷을 커널에서 보안 장치 어플리케이션으로 전달할 때마다 소켓 버퍼의 할당과 해제, 메모리 복사, 시스템 콜 등의 동작이 발생하게 되고 결국 시스템의 성능을 저하시키게 된다.
따라서 성능 저하를 최소화하면서 SSL/TLS 프로토콜에 따라 암호화된 데이터를 복호화할 수 있는 기술이 요구된다.
본 발명은 상기 문제점을 해결하기 위한 것으로서, 클라이언트와 서버 간의 암호화 데이터를 효율적으로 복호화하는 것을 목적으로 한다.
본 발명의 일 실시예에 따라, 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치의 동작 방법이 개시된다. 상기 방법은 클라이언트의 헬로우 메시지로부터 클라이언트 난수 값을 추출하는 단계; 서버의 헬로우 메시지로부터 서버 난수 값, 암호화 알고리즘 및 해쉬 알고리즘을 추출하는 단계; 상기 클라이언트의 키 교환 메시지로부터 프리-마스터 키를 생성하는 단계; 상기 서버 난수 값, 상기 클라이언트 난수 값 및 상기 프리-마스터 키로부터 상기 해쉬 알고리즘에 따라 마스터 키를 생성하는 단계; 및 상기 마스터 키를 이용하여 상기 암호화 알고리즘에 따라 상기 서버 및 상기 클라이언트 사이의 암호화 데이터를 복호화하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따라, 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치가 개시된다. 상기 보안 장치는 클라이언트 및 서버로부터 수신되는 헬로우 메시지로부터 클라이언트 난수 값, 서버 난수 값, 서버에 의해 선택된 암호화 알고리즘 및 해쉬 알고리즘을 추출하고, 상기 클라이언트로부터 수신되는 키 교환 메시지로부터 프리-마스터 키를 생성하기 위한 키 추출 유닛; 상기 서버 난수 값, 상기 클라이언트 난수 값 및 상기 프리-마스터 키로부터 상기 해쉬 알고리즘에 따라 마스터 키를 생성하기 위한 마스터 키 생성 유닛; 및 상기 마스터 키를 이용하여 상기 암호화 알고리즘에 따라 상기 서버 및 상기 클라이언트 사이의 암호화 데이터를 복호화하기 위한 복호화 유닛을 포함할 수 있다.
본 발명에서, 보안 장치는 클라이언트와 서버 간의 암호화 통신을 위한 마스터 키를 추출함하고 이를 이용하여 클라이언트와 서버 간의 암호화 데이터를 복호화함으로써, 종래의 프록시 방식에 의한 복호화와 달리 부가적인 소켓 및 생성을 생성하지 않고 운영체제의 네트워크 스택을 전부 사용하지 않음으로서 고성능의 효율적인 SSL/TLS 복호화를 가능하게 할 수 있다.
또한 본 발명에서, 보안 장치는 클라이언트의 암호화 알고리즘 목록에서 특정한 암호화 알고리즘(예를 들어, 복잡도가 낮은 암호화 알고리즘)만을 선택하여 서버에 전송함으로써, 서버가 복잡도가 높은 암호화 알고리즘을 선택하는 것을 방지하여, 보안 장치의 암호화 및 복호화에 따른 성능저하를 방지할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 클라이언트 및 서버 간의 종래의 SSL/TLS 핸드쉐이크 과정의 예시를 도시한다.
도 2는 종래의 프록시 방식의 SSL/TLS 복호화의 예시를 도시한다.
도 3은 본 발명의 일 실시예에 따른 보안 장치를 포함하는 네트워크 환경을 도시한다.
도 4는 본 발명의 일 실시예에 따른 보안 장치의 동작 방법을 도시한다.
도 5는 본 발명의 다른 실시예에 따른 보안 장치의 동작 방법을 도시한다.
도 6은 본 발명의 일 실시예에 따른 보안 장치를 도시한다.
이하, 본 발명에 따른 실시예들은 첨부된 도면들을 참조하여 설명한다. 한편, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 실시예들을 설명할 것이나, 본 발명의 기술적 사상은 이에 한정되거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 3은 본 발명의 일 실시예에 따른 보안 장치를 포함하는 네트워크 환경(300)을 도시한다.
네트워크 환경(300)은 웹 보안 프로토콜(즉, SSL/TLS 프로토콜)에 따른 암호화 통신을 수행하는 서버 및 클라이언트를 포함할 수 있다. 네트워크 환경(300)은 복호화 장치를 더 포함할 수 있는데, 여기서 복호화 장치는 서버 및 클라이언트 사이에 위치하여, 서버 및 클라이언트 간의 데이터 통신에 대해 보안 검사를 수행하기 것으로서, 예를 들어, 방화벽, 침입 감지 시스템(IDS), 침입 차단 시스템(IPS), UTM 등과 같은 보안 장치일 수 있다.
도시되는 바와 같이, 클라이언트와 서버만이 서로 간의 하나의 세션을 생성하며, 보안 장치는 종래 기술과 달리 클라이언트 및 서버 중 적어도 하나와 별도의 세션을 생성하지 않고, 클라이언트와 서버가 주고받는 데이터를 중계하는 역할을 수행한다. 클라이언트와 서버는 SSL/TLS 핸드쉐이크 과정을 통해 암호화 및 복호화를 위한 마스터 키를 생성할 수 있다. 마스터 키는 당해 기술분야에 공지된 다양한 알고리즘에 따라 생성될 수 있다.
서버 및 클라이언트의 SSL/TLS 핸드쉐이크에서 보안 장치는 마스터 키를 추출할 수 있다. 추출된 마스터 키를 이용하여 클라이언트와 서버 간의 암호화 데이터(특히, 클라이언트로부터 서버로 수신되는 암호화 데이터)를 복호화할 수 있다. 따라서 종래의 프록시 방식에 의한 복호화와 달리 부가적인 소켓 및 생성을 생성하지 않고 운영체제의 네트워크 스택을 전부 사용하지 않음으로서 고성능의 효율적인 SSL/TLS 복호화를 가능하게 할 수 있다.
또한, 보안 장치는 서버와 클라이언트 간의 암호화 통신을 위한 암호화 알고리즘을 선택할 수 있다. 종래에는 클라이언트의 헬로우 메시지의 암호화 알고리즘의 목록에서 서버가 선택한 암호화 알고리즘에 의해 클라이언트와 서버 간의 암호화 통신이 수행되었다. 따라서 이러한 환경 하에서는 서버와 클라이언트 사이에 위치한 보안 장치도 서버가 선택한 암호화 알고리즘에 따라 암호화 및 복호화를 수행해야 했으며, 이는 서버가 복잡도가 높은 암호화 알고리즘을 선택한 경우 보안 장치에 큰 부담을 주었다.
그러나 본 발명에 따른 보안 장치는 클라이언트의 암호화 알고리즘 목록에서 특정한 암호화 알고리즘(예를 들어, 복잡도가 낮은 암호화 알고리즘)만을 선택하여 서버에 전송함으로써, 서버가 복잡도가 높은 암호화 알고리즘을 선택하는 것을 방지하여, 보안 장치의 암호화 및 복호화에 따른 성능저하를 방지할 수 있다.
도 4는 본 발명의 일 실시예에 따른 보안 장치의 동작 방법(400)을 도시한다.
방법(400)은 도 1에서 도시된 SSL/TLS 프로토콜에 따른 핸드쉐이크 과정에 기초한 것으로서, 중복되는 부분은 설명을 생략한다.
단계(S410)에서, 보안 장치는 클라이언트로부터 헬로우(hello) 메시지를 수신한 후에, 헬로우 메시지로부터 클라이언트 난수 값을 추출할 수 있다. 여기서 헬로우 메시지는 클라이언트 SSL 버전, 클라이언트에서 생성한 임의의 난수 값, 세션 식별자, 암호화 알고리즘 목록(cipher suite list) 등의 정보를 포함할 수 있다. 클라이언트로부터 수신된 헬로우 메시지는 난수 값이 추출된 후에 서버로 전송될 수 있다.
단계(S420)에서, 보안 장치는 서버의 헬로우 메시지를 수신한 후에, 헬로우 메시지로부터 서버 난수 값, 서버가 선택한 암호화 알고리즘, 해쉬 알고리즘 및 압축 알고리즘을 추출할 수 있다. 서버의 헬로우 메시지는 서버가 수신한 클라이언트의 헬로우 메시지에 응답하는 것으로서, 서버 SSL 버젼, 서버에서 생성한 임의의 난수 값, 세션 식별자, 클라이언트의 암호화 알고리즘 목록에서 선택된 암호화 알고리즘, 해쉬 알고리즘, 인증 알고리즘 및 압축 알고리즘 등의 정보를 포함할 수 있다. 서버로부터 수신된 헬로우 메시지는 후에 클라이언트로 전송될 수 있다.
단계(S430)에서, 보안 장치는 서버로부터 제 1 인증서(certificate) 메시지를 수신한 후에, 제 1 인증서 메시지로부터 서버의 제 1 공개 키(public key)를 추출할 수 있다.
단계(S440)에서, 보안 장치는 제 1 인증서 메시지의 제 1 공개 키를 제 2 공개 키로 대체하여 제 2 인증서 메시지를 생성할 수 있다. 제 2 인증서 메시지를 클라이언트로 전송될 수 있다.
단계(S450)에서, 보안 장치는 클라이언트로부터 제 1 키 교환(key exchange) 메시지를 수신한 후에, 제 1 키 교환 메시지로부터 프리-마스터 키(pre-master key)를 생성할 수 있다. 프리-마스터 키는 클라이언트(310)에 의해, 예를 들어, SSL 버전, 시간 정보 등에 기초하여 생성될 수 있다. 이는 예시적인 것으로서 당해 기술분야에서 공지된 다양한 방식으로 마스터 키가 생성될 수 있다. 프리-마스터 키는 제 2 공개 키로 암호화된 후 제 1 키 교환 메시지에 의해 전송되며, 보안 장치는 제 1 키 교환 메시지로부터 암호화된 프리-마스터 키를 추출하고, 제 2 공개 키에 대응하는 사설 키(private key)를 이용하여 암호화된 프리-마스터 키를 복호화할 수 있다.
단계(S460)에서, 보안 장치는 프리-마스터 키를 제 1 공개 키를 이용하여 암호화하고 이를 제 1 키 교환 메시지의 암호화된 프리-마스터 키와 대체함으로써 제 2 키 교환 메시지를 생성할 수 있다. 제 2 키 교환 메시지는 서버로 전송될 수 있다.
단계(S470)에서, 보안 장치는 마스터 키를 생성할 수 있다. 이러한 마스터 키의 생성은 클라이언트 난수 값, 서버 난수 값 및 프리-마스터 키로부터 해쉬 알고리즘에 따라 생성될 수 있다. 이는 예시적인 것으로서, 당해 기술분야에서 공지된 다양한 방식으로 마스터 키가 생성될 수 있다.
단계(S480)에서, 보안 장치는 마스터 키를 이용하여 클라이언트 및 서버로부터 전송되는 암호화 데이터를 복호화할 수 있다. 상기 이후, 보안 장치는 복호화된 데이터에 대해 보안 검사를 수행할 수 있다(도시되지 않음). 보안 검사의 결과, 복호화된 데이터에 이상이 없으면, 암호화 데이터를 계속해서 전송할 수 있다. 반대로, 보안 검사의 결과, 복호화된 데이터에 이상이 발견되면, 암호화 데이터를 차단할 수 있다.
도 5는 본 발명의 다른 실시예에 따른 암호화 데이터의 복호화 방법(500)을 도시한다.
도 5에서 도시되는 단계(S530) 내지 단계(S580)는 도 4를 참조하여 설명된 단계(S420) 내지 단계(S450)와 마찬가지로 설명된다. 이하, 중복되는 설명은 생략된다.
단계(S510)에서, 보안 장치는 클라이언트로부터 헬로우 메시지를 수신한 후에, 헬로우 메시지로부터 클라이언트 난수 값 및 제 1 암호화 알고리즘 목록(cipher suite list)을 추출할 수 있다.
단계(520)에서, 보안 장치는 제 1 암호화 알고리즘 목록을 제 2 암호화 알고리즘으로 목록으로 대체함으로써 제 2 헬로우 메시지를 생성할 수 있다. 제 2 헬로우 메시지는 서버로 전송될 수 있다. 제 2 암호화 알고리즘 목록은 제 1 암호화 알고리즘 목록에 포함된 암호화 알고리즘 중 암호화 알고리즘의 복잡도에 기초하여 선택된 적어도 하나의 암호화 알고리즘의 목록을 의미한다. 예를 들어, 제 2 암호화 알고리즘 목록은 제 1 암호화 알고리즘 목록에 포함된 암호화 알고리즘 중 복잡도가 소정의 임계값 이상인 암호화 알고리즘을 제거함으로써 생성될 수 있다.
암호화 알고리즘의 복잡도는 암호화 알고리즘에 따른 암호화 및 복호화를 수행하는데 요구되는 보안 장치의 부하의 정도를 의미하는 것으로서, 암호화 알고리즘의 복잡도가 크면 암호화 알고리즘을 이용한 암호화 및/또는 복호화에는 더 많은 자원이 소모되고, 반대로 임의의 암호화 알고리즘의 복잡도가 작으면 상기 암호화 알고리즘을 이용한 암호화 및/또는 복호화에는 상대적으로 적은 자원이 소모될 수 있다.
종래에는 클라이언트의 헬로우 메시지의 암호화 알고리즘의 목록에서 서버가 선택한 암호화 알고리즘에 의해 클라이언트와 서버 간의 암호화 통신이 수행되었다. 따라서 이러한 환경 하에서는 서버와 클라이언트 사이에 위치한 보안 장치도 서버가 선택한 암호화 알고리즘에 따라 암호화 및 복호화를 수행해야 했으며, 이는 서버가 복잡도가 높은 암호화 알고리즘을 선택한 경우 보안 장치에 큰 부담을 주었다. 그러나 단계(S510) 및 단계(S520)를 통해, 보안 장치는 클라이언트의 헬로우 메시지의 암호화 알고리즘 목록에서 특정한 암호화 알고리즘(예를 들어, 복잡도가 낮은 암호화 알고리즘)만을 선택하여 서버에 전송함으로써, 서버가 복잡도가 높은 암호화 알고리즘을 선택하는 것을 방지하여, 보안 장치의 암호화 및 복호화에 따른 성능저하를 방지할 수 있다.
도 6은 본 발명의 일 실시예에 따른 암호화 장치(600)를 도시한다.
장치(600)는 키 추출 유닛(610); 마스터 키 생성 유닛(620); 복호화 유닛(630); 및 보안 유닛(640)을 포함할 수 있다.
키 추출 유닛(610)은 클라이언트 및 서버로부터 수신되는 헬로우 메시지로부터 클라이언트 난수 값, 서버 난수 값, 서버에 의해 선택된 암호화 알고리즘 및 해쉬 알고리즘을 추출하고, 클라이언트로부터 수신되는 키 교환 메시지로부터 프리-마스터 키를 생성할 수 있다. 키 추출 유닛(610)은, 서버의 제 1 인증서 메시지로부터 서버의 제 1 공개 키를 추출하고; 제 1 인증서 메시지에서 제 1 공개 키를 제 2 공개 키로 대체함으로써 생성되는 제 2 인증서 메시지를 클라이언트로 전송하고; 클라이언트의 키 교환 메시지로부터 암호화된 프리-마스터 키를 추출하며; 제 2 공개 키에 대응하는 사설 키를 이용하여 암호화된 프리-마스터 키를 복호화함으로써 프리-마스터 키를 생성할 수 있다. 또한 키 추출 유닛(610)은, 제 1 공개 키를 이용하여 프리-마스터 키를 암호화함으로써 제 2 프리-마스터 키를 생성하며, 제 2 프리-마스터 키를 포함하는 제 2 키 교환 메시지를 서버로 전송할 수 있다.
일 실시예에서, 키 추출 유닛(610)은, 클라이언트의 헬로우 메시지로부터 제 1 암호화 알고리즘 목록을 추출하고; 클라이언트의 헬로우 메시지에서 상기 제 1 암호화 알고리즘 목록을 제 2 암호화 알고리즘 목록으로 대체함으로써 생성되는 제 2 헬로우 메시지를 클라이언트로 전송할 수 있다. 제 2 암호화 알고리즘 목록은 암호화 알고리즘의 복잡도에 기초하여 제 1 암호화 알고리즘 목록 중 적어도 일부의 암호화 알고리즘만을 포함할 수 있다.
마스터 키 생성 유닛(620)은 클라이언트 난수 값, 서버 난수 값, 프리-마스터 키에 기초하여 해쉬 알고리즘에 따라 마스터 키를 생성할 수 있다. 이는 예시적인 것으로서 마스터 키의 생성을 위해 당해 기술분야에서 이용 가능한 다양한 알고리즘이 이용될 수 있다.
복호화 유닛(630)은 마스터 키를 이용하여 암호화 알고리즘에 따라 서버 및 클라이언트 사이의 암호화 데이터를 복호화할 수 있다.
보안 유닛(640)은 복호화 유닛(630)에 의해 복호화된 데이터에 대한 보안 검사를 수행할 수 있다. 보안 검사의 결과, 복호화된 데이터에 이상이 있으면 암호화 데이터는 차단되고, 반대로 보안 검사의 결과, 복호화된 데이터에 이상이 없으면, 암호화 데이터는 계속해서 전송될 수 있다.
도 6에서, 키 추출 유닛(610); 마스터 키 생성 유닛(620); 복호화 유닛(630); 및 보안 유닛(640)은 복수의 물리적인 장치들에 의해 구현될 수도 있고, 하나의 물리적인 장치에 의해 구현될 수 있음이 이해될 것이다. 예를 들면, 키 추출 유닛(610); 마스터 키 생성 유닛(620); 복호화 유닛(630); 및 보안 유닛(640)은 각각은 소프트웨어(software)를 이용하거나 펌웨어(firmware)를 이용하는 등 다양한 방식들을 이용하여 구현될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (12)

  1. 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치에 포함된 프로세서의 동작 방법으로서,
    클라이언트의 헬로우 메시지로부터 클라이언트 난수 값을 추출하는 단계;
    서버의 헬로우 메시지로부터 서버 난수 값, 암호화 알고리즘 및 해쉬 알고리즘을 추출하는 단계;
    상기 클라이언트의 키 교환 메시지로부터 프리-마스터 키(pre-master key)를 생성하는 단계;
    상기 서버 난수 값, 상기 클라이언트 난수 값 및 상기 프리-마스터 키로부터 상기 해쉬 알고리즘에 따라 마스터 키(master key)를 생성하는 단계; 및
    상기 마스터 키를 이용하여 상기 암호화 알고리즘에 따라 상기 서버 및 상기 클라이언트 사이의 암호화 데이터를 복호화하는 단계를 포함하고,
    상기 프리-마스터 키를 생성하는 단계는, 상기 서버의 제 1 인증서 메시지로부터 서버의 제 1 공개 키를 추출하는 단계; 상기 제 1 인증서 메시지에서 상기 제 1 공개 키를 제 2 공개 키로 대체함으로써 생성되는 제 2 인증서 메시지를 상기 클라이언트로 전송하는 단계; 상기 클라이언트의 상기 키 교환 메시지로부터 암호화된 프리-마스터 키를 추출하는 단계; 및 상기 제 2 공개 키에 대응하는 사설 키(private key)를 이용하여 상기 암호화된 프리-마스터 키를 복호화함으로써 상기 프리-마스터 키를 생성하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 복호화된 데이터에 대한 보안 검사를 수행하는 단계를 더 포함하는 동작 방법.
  3. 제 2 항에 있어서,
    상기 보안 검사를 수행하는 단계는, 상기 보안 검사의 결과, 상기 복호화된 데이터에 이상이 있으면 상기 암호화 데이터를 차단하는 단계를 포함하는 동작 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 프리-마스터 키를 생성하는 단계는, 상기 제 1 공개 키를 이용하여 상기 프리-마스터 키를 암호화함으로써 제 2 프리-마스터 키를 생성하는 단계; 및 상기 제 2 프리-마스터 키를 포함하는 제 2 키 교환 메시지를 서버로 전송하는 단계를 더 포함하는 동작 방법.
  6. 제 1 항에 있어서,
    상기 클라이언트 난수 값을 추출하는 단계는, 상기 클라이언트의 헬로우 메시지로부터 제 1 암호화 알고리즘 목록을 추출하는 단계; 및 상기 클라이언트의 헬로우 메시지에서 상기 제 1 암호화 알고리즘 목록을 제 2 암호화 알고리즘 목록으로 대체함으로써 생성되는 제 2 헬로우 메시지를 상기 클라이언트로 전송하는 단계를 포함하고,
    상기 제 2 암호화 알고리즘 목록은 암호화 알고리즘의 복잡도에 기초하여 제 1 암호화 알고리즘 목록 중 적어도 일부의 암호화 알고리즘만을 포함하는 동작 방법.
  7. 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치로서,
    클라이언트 및 서버로부터 수신되는 헬로우 메시지로부터 클라이언트 난수 값, 서버 난수 값, 서버에 의해 선택된 암호화 알고리즘 및 해쉬 알고리즘을 추출하고, 상기 클라이언트로부터 수신되는 키 교환 메시지로부터 프리-마스터 키를 생성하기 위한 키 추출 유닛;
    상기 서버 난수 값, 상기 클라이언트 난수 값 및 상기 프리-마스터 키로부터 상기 해쉬 알고리즘에 따라 마스터 키를 생성하기 위한 마스터 키 생성 유닛; 및
    상기 마스터 키를 이용하여 상기 암호화 알고리즘에 따라 상기 서버 및 상기 클라이언트 사이의 암호화 데이터를 복호화하기 위한 복호화 유닛을 포함하고,
    상기 키 추출 유닛은, 상기 서버의 제 1 인증서 메시지로부터 서버의 제 1 공개 키를 추출하고; 상기 제 1 인증서 메시지에서 상기 제 1 공개 키를 제 2 공개 키로 대체함으로써 생성되는 제 2 인증서 메시지를 상기 클라이언트로 전송하고; 상기 클라이언트의 상기 키 교환 메시지로부터 암호화된 프리-마스터 키를 추출하며; 상기 제 2 공개 키에 대응하는 사설 키를 이용하여 상기 암호화된 프리-마스터 키를 복호화함으로써 상기 프리-마스터 키를 생성하는 보안 장치.
  8. 제 7 항에 있어서,
    상기 복호화 유닛에 의해 복호화된 데이터에 대한 보안 검사를 수행하기 위한 보안 유닛을 더 포함하는 보안 장치.
  9. 제 8 항에 있어서,
    상기 보안 유닛의 보안 검사의 결과, 상기 복호화된 데이터에 이상이 있으면 상기 암호화 데이터는 차단되는 보안 장치.
  10. 삭제
  11. 제 7 항에 있어서,
    상기 키 추출 유닛은, 상기 제 1 공개 키를 이용하여 상기 프리-마스터 키를 암호화함으로써 제 2 프리-마스터 키를 생성하며, 상기 제 2 프리-마스터 키를 포함하는 제 2 키 교환 메시지를 서버로 전송하는 보안 장치.
  12. 제 7 항에 있어서,
    상기 키 추출 유닛은, 상기 클라이언트의 헬로우 메시지로부터 제 1 암호화 알고리즘 목록을 추출하고; 상기 클라이언트의 헬로우 메시지에서 상기 제 1 암호화 알고리즘 목록을 제 2 암호화 알고리즘 목록으로 대체함으로써 생성되는 제 2 헬로우 메시지를 상기 클라이언트로 전송하며,
    상기 제 2 암호화 알고리즘 목록은 암호화 알고리즘의 복잡도에 기초하여 제 1 암호화 알고리즘 목록 중 적어도 일부의 암호화 알고리즘만을 포함하는 보안 장치.
KR1020130003196A 2013-01-11 2013-01-11 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법 KR101448866B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130003196A KR101448866B1 (ko) 2013-01-11 2013-01-11 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130003196A KR101448866B1 (ko) 2013-01-11 2013-01-11 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20140091221A KR20140091221A (ko) 2014-07-21
KR101448866B1 true KR101448866B1 (ko) 2014-10-13

Family

ID=51738463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130003196A KR101448866B1 (ko) 2013-01-11 2013-01-11 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법

Country Status (1)

Country Link
KR (1) KR101448866B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101765207B1 (ko) * 2016-11-08 2017-08-04 한국전자통신연구원 교통 신호 보안 시스템 및 방법
KR20200001283A (ko) * 2018-06-27 2020-01-06 주식회사 수산아이앤티 보안 소켓 계층 복호화 장치에서 다양한 전자 서명 알고리즘을 지원하기 위한 전자 재서명 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468560B (zh) * 2014-12-02 2017-09-19 中国科学院声学研究所 网络保密数据明文的采集方法及***
EP3324571B1 (en) * 2015-08-25 2020-08-19 Huawei Technologies Co., Ltd. Service processing method and apparatus
KR102026533B1 (ko) * 2017-10-30 2019-09-27 (주) 빌트온 모바일용 애플리케이션과 애플리케이션 서버 사이에서 송수신되는 데이터를 중계하고 추출하는 프록시 서버 및 이를 포함하는 빅데이터 추출 시스템 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6789147B1 (en) 2001-07-24 2004-09-07 Cavium Networks Interface for a security coprocessor
US20120182884A1 (en) 2011-01-19 2012-07-19 Maksim Pyatkovskiy Fast SSL Testing Using Precalculated Cryptographyc Data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6789147B1 (en) 2001-07-24 2004-09-07 Cavium Networks Interface for a security coprocessor
US20120182884A1 (en) 2011-01-19 2012-07-19 Maksim Pyatkovskiy Fast SSL Testing Using Precalculated Cryptographyc Data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101765207B1 (ko) * 2016-11-08 2017-08-04 한국전자통신연구원 교통 신호 보안 시스템 및 방법
KR20200001283A (ko) * 2018-06-27 2020-01-06 주식회사 수산아이앤티 보안 소켓 계층 복호화 장치에서 다양한 전자 서명 알고리즘을 지원하기 위한 전자 재서명 방법
KR102086739B1 (ko) 2018-06-27 2020-03-09 주식회사 수산아이앤티 보안 소켓 계층 복호화 장치에서 다양한 전자 서명 알고리즘을 지원하기 위한 전자 재서명 방법

Also Published As

Publication number Publication date
KR20140091221A (ko) 2014-07-21

Similar Documents

Publication Publication Date Title
CN110190955B (zh) 基于安全套接层协议认证的信息处理方法及装置
US10270601B2 (en) Providing forward secrecy in a terminating SSL/TLS connection proxy using ephemeral Diffie-Hellman key exchange
CN110870277B (zh) 将中间盒引入到客户端与服务器之间的安全通信中
US10911409B2 (en) Engagement and disengagement of transport layer security proxy services with encrypted handshaking
US7321971B2 (en) System and method for secure remote access
US8646041B2 (en) Method for securing information exchange, and corresponding device and computer software product
JP5744172B2 (ja) 中間ストリーム再ネゴシエーションを介したプロキシsslハンドオフ
US8190875B2 (en) Reducing processing load in proxies for secure communications
WO2017001133A1 (en) Method, a system and computer program products for securely enabling in-network functionality over encrypted data sessions
EP3461097A1 (en) Encrypted content detection method and apparatus
JP2012213036A (ja) 通信装置及び通信システム
CN110999223A (zh) 安全加密的心跳协议
CN112637136A (zh) 加密通信方法及***
KR101448866B1 (ko) 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법
CN113225352A (zh) 一种数据传输方法、装置、电子设备及存储介质
US20130019092A1 (en) System to Embed Enhanced Security / Privacy Functions Into a User Client
CN105119894A (zh) 基于硬件安全模块的通信***及通信方法
US20170317836A1 (en) Service Processing Method and Apparatus
KR20090098542A (ko) 프록시를 이용한 암호화 데이터 통신시스템 및 암호화데이터 통신방법
CN102811225A (zh) 一种ssl中间代理访问web资源的方法及交换机
CN110839240A (zh) 一种建立连接的方法及装置
Ranjan et al. Security analysis of TLS authentication
US10015208B2 (en) Single proxies in secure communication using service function chaining
EP3216163B1 (en) Providing forward secrecy in a terminating ssl/tls connection proxy using ephemeral diffie-hellman key exchange
CN113904767A (zh) 一种基于ssl建立通信的***

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
FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 6