KR102145679B1 - Https 프로토콜에서 mitm 공격을 회피하는 방법 - Google Patents

Https 프로토콜에서 mitm 공격을 회피하는 방법 Download PDF

Info

Publication number
KR102145679B1
KR102145679B1 KR1020190002583A KR20190002583A KR102145679B1 KR 102145679 B1 KR102145679 B1 KR 102145679B1 KR 1020190002583 A KR1020190002583 A KR 1020190002583A KR 20190002583 A KR20190002583 A KR 20190002583A KR 102145679 B1 KR102145679 B1 KR 102145679B1
Authority
KR
South Korea
Prior art keywords
server
public key
information
terminal
certificate
Prior art date
Application number
KR1020190002583A
Other languages
English (en)
Other versions
KR20200086436A (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 KR1020190002583A priority Critical patent/KR102145679B1/ko
Publication of KR20200086436A publication Critical patent/KR20200086436A/ko
Application granted granted Critical
Publication of KR102145679B1 publication Critical patent/KR102145679B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

HTTPS 프로토콜에 기초하여 서버와 통신하는 단말의 동작 방법이 개시된다. 일실시예에 따른 단말의 동작 방법은 서버와 공유하는 OTP 생성 로직에 기초하여, 서버로부터 서버의 공개키에 관한 제1 정보를 수신하는 단계; 서버로의 접속 요청에 반응하여 서버에 의하여 제공되는 인증서를 수신하는 단계; 인증서에 포함된 공개키에 관한 제2 정보와 제1 정보를 비교함으로써, 인증서에 포함된 공개키를 검증하는 단계; 검증 결과에 따라, 서버와의 보안 통신을 위한 비밀키를 공개키로 암호화하여 서버로 전송하는 단계; 및 비밀키에 기초하여, 서버와 보안 통신을 수행하는 단계를 포함한다.

Description

HTTPS 프로토콜에서 MITM 공격을 회피하는 방법{METHOD FOR EVADING MITM ATTACK FOR HTTPS PROTOCOL}
아래 실시예들은 HTTPS 프로토콜에서 MITM 공격을 회피하는 방법에 관한 것으로, 예를 들어 암호학과 관련된 기술에 관한 것이다.
암호학(Cryptography)은 정보를 보호하기 위한 언어학적 및 수학적 방법론을 다루는 학문으로, 수학을 중심으로 컴퓨터, 통신 등의 분야에서 연구 및 개발이 진행되고 있다. 초기의 암호는 메시지 보안에 초점이 맞추어져 군사 또는 외교적 목적으로 사용되었지만, 현재는 메시지 보안 이외에도 인증, 서명 등이 암호에 포함되어 일상적인 분야에서 활용되고 있다.
암호 시스템은 대칭키 암호 시스템 및 공개키 암호 시스템을 포함한다. 대칭키 암호 시스템은 암호문을 생성(암호화)할 때 사용하는 키와 암호문으로부터 평문을 복원(복호화)할 때 사용하는 키가 동일한 암호 시스템이다. 암호문의 작성자와 이의 수신자가 동일한 키를 비밀리에 관리해야 하므로 폐쇄적인 특성을 갖는 사용자 그룹에 적합한 암호 시스템이다. 대칭키 암호 시스템은 알고리즘이 상대적으로 단순한 장점이 있지만 키를 관리하는 것이 쉽지 않다는 단점이 존재할 수 있다.
공개키 암호 시스템에서 각 사용자는 두 개의 키를 부여받는다. 두 개의 키 중 하나의 키는 공개되고(공개키, Public key), 다른 하나의 키는 사용자에 의해 비밀리에 관리될 수 있다(비밀키, Private key). 공개키 암호 시스템에서 각 사용자는 자신의 비밀키만 관리하면 되므로 키 관리의 어려움을 줄일 수 있다. 공개키 암호 시스템은 메시지를 암호화 및 복호화 하는 과정에 여러 단계의 산술 연산이 들어가기 때문에, 대칭키 암호 시스템에 비하여 속도가 매우 느리다는 단점이 존재할 수 있다.
암호화 해시 함수(Cryptographic hash function)는 해시 함수의 일종으로, 해시 값과 원래의 입력값의 관계를 찾기 어려운 성질을 가질 수 있다. 구체적으로, 암호화 해시 함수는 해시값이 주어져 있을 때, 그 해시값을 출력하는 입력값을 찾는 제1 역상 공격(first preimage attack)이 계산상 어려운 역상 저항성(preimage resistance)을 가질 수 있다. 또한, 암호화 해시 함수는 입력값이 주어져 있을 때, 그 입력과 같은 해시값을 출력하는 다른 입력값을 찾는 제2 역상 공격(second preimage attack)이 어려운 제2 역상 저항성(second preimage resistance)을 가질 수 있다.
일실시예에 따른 HTTPS 프로토콜에 기초하여 서버와 통신하는 단말의 동작 방법은 상기 서버와 공유하는 OTP 생성 로직에 기초하여, 상기 서버로부터 상기 서버의 공개키에 관한 제1 정보를 수신하는 단계; 상기 서버로의 접속 요청에 반응하여 상기 서버에 의하여 제공되는 인증서를 수신하는 단계; 상기 인증서에 포함된 공개키에 관한 제2 정보와 상기 제1 정보를 비교함으로써, 상기 인증서에 포함된 공개키를 검증하는 단계; 상기 검증 결과에 따라, 상기 서버와의 보안 통신을 위한 비밀키를 상기 공개키로 암호화하여 상기 서버로 전송하는 단계; 및 상기 비밀키에 기초하여, 상기 서버와 보안 통신을 수행하는 단계를 포함한다.
일실시예에 따르면, 상기 서버의 공개키에 관한 제1 정보를 수신하는 단계는 상기 서버에 의하여 생성된 제1 OTP로 암호화된 설정파일을 수신하는 단계; 상기 단말에 의하여 생성된 제2 OTP로 상기 암호화된 설정파일을 복호화하는 단계; 및 상기 복호화된 설정파일로부터 상기 서버의 공개키에 관한 제1 정보를 추출하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 인증서를 수신하는 단계는 상기 서버로 접속 요청을 전송하는 단계; 및 상기 서버로부터 상기 공개키를 포함하는 상기 인증서를 수신하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 인증서에 포함된 공개키를 검증하는 단계는 상기 인증서에 포함된 공개키에 관한 제2 정보를 결정하는 단계; 및 상기 제1 정보와 상기 제2 정보를 비교함으로써, 상기 인증서에 포함된 공개키를 검증하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 서버의 공개키에 관한 제1 정보를 수신하는 단계는 상기 단말의 부팅 시, 상기 서버에 의하여 생성된 제1 OTP로 암호화된 설정파일을 수신하는 단계를 포함하고, 상기 설정파일은 상기 단말의 부팅을 위한 구성파일을 포함할 수 있다.
일실시예에 따르면, 상기 제1 정보는 상기 서버의 공개키가 상기 서버에 의하여 변환된 결과를 포함할 수 있다.
일실시예에 따르면, 상기 서버의 공개키가 변환된 결과는 상기 서버의 공개키의 해시(Hash); 및 상기 서버의 공개키와 미리 정해진 솔트(Salt)에 기초하여 결정된 정보의 해시 중 적어도 하나를 포함할 수 있다.
일실시예에 따르면, 상기 제2 정보는 상기 인증서에 포함된 공개키가 상기 단말에 의하여 변환된 결과를 포함할 수 있다.
일실시예에 따르면, 상기 인증서에 포함된 공개키가 변환된 결과는 상기 인증서에 포함된 공개키의 해시; 및 상기 인증서에 포함된 공개키와 미리 정해진 솔트에 기초하여 결정된 정보의 해시 중 적어도 하나를 포함할 수 있다.
일실시예에 따른 HTTPS 프로토콜에 기초하여 단말과 통신하는 서버의 동작 방법은 상기 단말과 공유하는 OTP 생성 로직에 기초하여, 상기 단말로 공개키에 관한 제1 정보를 전송하는 단계; 상기 단말로부터 수신된 접속 요청에 반응하여 상기 공개키를 포함하는 인증서를 전송하는 단계; 상기 공개키로 암호화된 보안 통신을 위한 비밀키를 상기 단말로부터 수신하는 단계; 및 상기 비밀키에 기초하여, 상기 단말과 보안 통신을 수행하는 단계를 포함한다.
일실시예에 따르면, 상기 단말로 공개키에 관한 제1 정보를 전송하는 단계는 상기 서버의 공개키에 관한 제1 정보를 포함하는 설정파일을 제1 OTP로 암호화하는 단계; 및 상기 제1 OTP로 암호화된 설정파일을 상기 단말로 전송하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 인증서를 전송하는 단계는 상기 단말로부터 접속 요청을 수신하는 단계; 및 상기 단말로 상기 공개키를 포함하는 인증서를 제공하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 단말로 공개키에 관한 제1 정보를 전송하는 단계는 상기 단말의 부팅에 따른 요청에 반응하여, 상기 단말로 제1 OTP로 암호화된 설정파일을 전송하는 단계를 포함하고, 상기 설정파일은 상기 단말의 부팅을 위한 구성파일을 포함할 수 있다.
일실시예에 따르면, 상기 제1 정보는 상기 공개키 및 상기 공개키가 상기 서버에 의하여 변환된 결과를 포함할 수 있다.
일실시예에 따르면, 상기 공개키가 변환된 결과는 상기 공개키의 해시(Hash) 및 상기 공개키와 미리 정해진 솔트(Salt)에 기초하여 결정된 정보의 해시 중 적어도 하나를 포함할 수 있다.
일실시예에 따르면, 상기 단말에서, 상기 제1 정보와 상기 인증서에 포함된 공개키에 관한 제2 정보 사이의 비교를 통하여 상기 인증서에 포함된 공개키가 검증되고, 상기 제2 정보는 상기 인증서에 포함된 공개키가 상기 서버에 의하여 변환된 결과를 포함할 수 있다.
일실시예에 따르면, 상기 인증서에 포함된 공개키가 변환된 결과는 상기 인증서에 포함된 공개키의 해시; 및 상기 인증서에 포함된 공개키와 미리 정해진 솔트에 기초하여 결정된 정보의 해시 중 적어도 하나를 포함할 수 있다.
일실시예에 따르면, 상기 서버는 폐쇄형 네트워크 서비스(walled garden) 내의 서버일 수 있다.
일실시예에 따른 HTTPS 프로토콜에 기초하여 서버와 단말이 통신하는 시스템은 단말 및 서버 간의 통신 중에 중간자 공격이 발생하는 것을 방지할 수 있다.
도 1은 일실시예에 따른 보안 통신을 수행하기 위한 단말 및 서버의 동작 방법을 설명하기 위한 동작 흐름도이다.
도 2는 일실시예에 따른 중간자(MITM, Man-In-The-Middle) 공격을 설명하기 위한 도면이다.
도 3은 일실시예에 따른 해시 함수(Hash Function) 및 솔트(salt)를 설명하기 위한 도면이다.
도 4는 일실시예에 따른 제1 정보 및 제2 정보를 비교함으로써, 인증서에 포함된 공개키를 검증하는 방법을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 보안 통신을 수행하기 위한 제어 신호의 생성과 관련된 시스템을 설명하기 위한 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 보안 통신을 수행하기 위한 단말 및 서버의 동작 방법을 설명하기 위한 동작 흐름도이다.
도 1을 참조하면, 보안 통신과 관련된 시스템은 단말(101) 및 서버(102)를 포함할 수 있다. 단말(101)은 보안 통신과 관련된 시스템에서 서버(102)와 정보를 송수신할 수 있는 장치로서, 예를 들어 태블릿, 스마트폰, 및 셋톱 박스 등 다양한 형태를 포함할 수 있다. 서버(102)는 보안 통신과 관련된 시스템에서 단말(101)과 정보를 송수신할 수 있는 장치일 수 있다. 단말(101)은 서버(102)와 송수신한 정보들에 기초하여 공개키를 검증할 수 있고, 보안 통신을 위한 비밀키를 공개키로 암호화할 수 있다. 단말(101)은 공개키로 암호화된 비밀키를 서버(102)와 공유한 뒤, 비밀키를 이용하여 서버(102)와 보안 통신을 수행할 수 있다. 일실시예에 따르면, 단말(101) 및 서버(102) 간의 통신은 HTTPS 프로토콜에 기초하여 수행될 수 있다.
단말(101) 및 서버(102)는 OTP(One-Time Password, 일회용 패스워드) 생성 로직을 사전에 공유할 수 있다. 서버(102)는 사전에 공유된 OTP 생성 로직에 기초하여, 제1 OTP를 생성할 수 있다. 서버(102)는 제1 OTP로 암호화된 설정파일을 생성할 수 있다. 서버(102)는 제1 OTP로 암호화된 설정파일을 단말(101)로 전송할 수 있다. 일실시예에 따르면, 단말(101)은 부팅 시, 제1 OTP로 암호화된 설정파일을 수신할 수 있다. 제1 OTP와 제2 OTP가 동일한 시간 구간 내에 생성되는 경우, 제1 OTP와 제2 OTP는 동일할 수 있다. 이 경우, 제1 OTP로 암호화된 설정파일은 단말(101)의 부팅을 위한 구성파일을 포함할 수 있다.
단말(101)은 사전에 공유된 OTP 생성 로직에 기초하여, 제2 OTP를 생성할 수 있다. 단말(101)은 서버(102)로부터 제1 OTP로 암호화된 설정파일을 수신할 수 있다. 단말(101)은 제1 OTP로 암호화된 설정파일을 제2 OTP로 복호화할 수 있다. 일실시예에 따르면, 단말(101)은 제1 OTP로 암호화된 설정파일을 수신한 후에 제2 OTP를 생성할 수 있다. 일실시예에 따르면, 단말(101)은 제2 OTP를 생성한 후에 제1 OTP로 암호화된 설정파일을 수신할 수 있다.
단말(101)은 복호화된 설정파일로부터 서버(102)의 공개키에 관한 제1 정보를 추출한다(110). 일실시예에 따르면, 제1 정보는 서버(102)의 공개키 및 서버(102)의 공개키가 변환된 결과 중 적어도 하나를 포함할 수 있다. 제1 정보가 서버(102)의 공개키가 변환된 결과를 포함하는 경우, 제1 정보는 서버(102)의 공개키가 서버(102)에 의하여 변환된 결과를 포함할 수 있다. 일실시예에 따르면, 서버(102)의 공개키가 변환된 결과는 서버(102)의 공개키의 해시(Hash) 및 서버(102)의 공개키와 미리 정해진 솔트(Salt)에 기초하여 결정된 정보의 해시 중 적어도 하나를 포함할 수 있다. 예를 들어, 서버(102)의 공개키가 변환된 결과는 서버(102)의 공개키에 미리 정해진 솔트(Salt)를 이어 붙인(concatenation) 정보의 해시를 포함할 수 있다.
단말(101)은 서버(102)로 접속 요청을 전송한다(120). 일실시예에 따르면, 단말(101)이 서버(102)로 전송하는 접속 요청은 HTTPS 프로토콜에 기초한 접속 요청일 수 있다. 서버(102)는 단말(101)로부터 수신한 접속 요청에 기초하여, 공개키를 포함하는 인증서를 단말(101)에 제공할 수 있다.
단말(101)은 서버(102)에 의하여 제공되는 인증서를 수신한다(130). 단말(101)은 인증서에 포함된 공개키에 관한 제2 정보를 결정할 수 있다. 일실시예에 따르면, 제2 정보는 인증서에 포함된 공개키 및 인증서에 포함된 공개키가 변환된 결과 중 적어도 하나를 포함할 수 있다. 제2 정보가 인증서에 포함된 공개키가 변환된 결과를 포함하는 경우, 제2 정보는 인증서에 포함된 공개키가 단말(101)에 의하여 변환된 결과를 포함할 수 있다. 일실시예에 따르면, 인증서에 포함된 공개키가 변환된 결과는 인증서에 포함된 공개키의 해시(Hash) 및 인증서의 공개키와 미리 정해진 솔트에 기초하여 결정된 정보의 해시 중 적어도 하나를 포함할 수 있다. 예를 들어, 단말(101)의 공개키가 변환된 결과는 인증서에 포함된 공개키에 미리 정해진 솔트를 이어 붙인 정보의 해시를 포함할 수 있다. 솔트는 단말(101)과 서버(102) 사이의 미리 공유된 정보로, 예를 들어 단말(101)의 제작 시 솔트가 단말(101)에 저장될 수 있다.
일실시예에 따르면, 단말(101)은 제1 정보와 제2 정보가 동일한지 여부를 검사함으로써, 인증서에 포함된 공개키를 검증할 수 있다. 제1 정보 및 제2 정보는 동일한 종류의 정보를 포함할 수 있다. 예를 들어, 제1 정보와 제2 정보는 각각 서버(102)의 공개키 자체를 포함하거나, 공개키의 해시를 포함할 수 있다. 또는, 제1 정보 및 제2 정보는 각각 서버(102)의 공개키에 미리 정해진 솔트를 이어 붙인 정보의 해시를 포함할 수 있다.
일실시예에 따르면, 제1 정보가 포함하는 서버(102)의 공개키가 변환된 결과 및 제2 정보가 포함하는 인증서에 포함된 공개키가 변환된 결과는 동일한 변환 과정에 의한 결과일 수 있다. 예를 들어, 제1 정보가 서버(102)의 공개키의 뒤에 '3ab9'라는 솔트를 이어 붙인 정보의 해시를 포함하는 경우, 제2 정보 또한 인증서에 포함된 공개키의 뒤에 '3ab9'라는 솔트를 이어 붙인 정보의 해시를 포함할 수 있다. 또한, 이 경우 제1 정보 및 제2 정보는 동일한 해시 함수(Hash Function)에 의하여 생성된 해시일 수 있다.
해시 함수(Hash Function) 및 솔트와 관련된 보다 상세한 사항은 도 3을 통하여 후술한다.
단말(101)은 인증서에 포함된 제2 정보와 복호화된 설정파일로부터 추출된 제1 정보를 비교함으로써, 인증서에 포함된 공개키를 검증한다(140). 검증에 의하여 제1 정보 및 제2 정보가 일치한다고 판단되는 경우, 단말(101)과 서버(102) 사이의 통신 과정에서 중간자(MITM, Man-In-The-Middle) 공격이 없었다고 판단될 수 있다.
중간자 공격과 관련된 보다 상세한 사항은 도 2를 통하여 후술한다. 제1 정보 및 제2 정보를 비교하는 것과 관련된 보다 상세한 사항은 도 2 및 도 4를 통하여 후술한다.
검증 결과, 제1 정보 및 제2 정보가 일치하는 경우, 단말(101)은 서버(102)와의 보안 통신을 위한 비밀키를 공개키로 암호화한다(150). 단말(101)은 암호화된 비밀키를 서버(102)로 전송한다(160). 제1 정보 및 제2 정보가 일치하는 경우, 중간자 공격이 없었다고 판단될 수 있으므로, 제1 정보 및 제2 정보가 일치하는 경우, 공개키로 암호화하여 전송된 비밀키는 안전하게 서버(102)로 전송되었다고 판단될 수 있다.
단말(101)은 서버(102)로 전송된 비밀키에 기초하여, 서버(102)와 보안 통신을 수행할 수 있다(170). 구체적으로, 서버(102)는 개인키를 이용하여 암호화된 비밀키를 복호화할 수 있다. 비밀키를 복호화함으로써 단말(101) 및 서버(102)에서 동일한 대칭키를 생성할 수 있고, 생성된 대칭키를 이용하여 보안 통신을 수행할 수 있다. 공개키 암호 시스템은 메시지를 암호화 및 복호화 하는 과정에 여러 단계의 산술 연산이 들어갈 수 있으므로, 대칭키 암호 시스템에 비하여 그 통신 속도가 느릴 수 있다. 따라서, 단말(101) 및 서버(102)가 공유되는 동일한 대칭키로 통신하는 경우, 더 빠른 통신이 가능해질 수 있다.
실시예들에 의하면, 제1 정보 및 제2 정보가 일치한다고 판단되는 경우에만 공개키로 비밀키를 암호화하여 단말(101) 및 서버(102) 간에 통신이 수행되므로, 단말(101) 및 서버(102) 간의 통신 중에 중간자 공격이 발생하는 것을 방지할 수 있다. 특히, HTTPS 프로토콜이 중간자 공격에 취약할 수 있음을 고려했을 때, 단말(101) 및 서버(102) 간의 통신이 HTTPS 프로토콜에 기초하여 수행되는 경우 본 발명이 더욱 효과적으로 실시될 수 있다.
일반적인 공개키 정보의 피닝(pinning) 기법에 따르면, 공개키 자체 혹은 공개키의 해쉬 값을 단말에 내장함으로써, MITM 공격을 감지할 수 있다. 하지만, 이 경우 공개키 변경 시에 유연하게 대응할 수 없다.
반면, 실시예들에 따르면, 하기의 방법들을 통하여 공개키 변경 시에 유연하게 대응 가능한 기술을 제공한다.
- 해쉬값을 단말이 유연하게 내장할 수 있는 방법 (예를 들어, 사전에 정의된 구성파일에 해쉬값을 전달하되, 약속된 대칭키 암호화 방식으로 파일을 전달)
- 해쉬값의 노출에 대비하는 방법 (예를 들어, salt)
도 2는 일실시예에 따른 중간자(MITM, Man-In-The-Middle) 공격을 설명하기 위한 도면이다.
도 2를 참조하면, 일실시예에 따른 중간자 공격은 통신하고 있는 두 당사자 사이에 끼어들어 당사자들이 교환하는 공개 정보를 자신의 것과 바꿈으로써 통신 내용을 훔쳐보거나 그 내용을 바꾸는 공격 방법이다. 예를 들어, 서버(220)는 단말(210)로부터 수신한 접속 요청에 기초하여, 공개키를 포함하는 인증서를 단말(210)에 제공할 수 있는데, 이 과정에서 중간자(230)는 서버(220)가 수신하는 접속 요청의 내용을 변경하거나, 서버(220)가 전송하는 인증서에 포함된 공개키를 변경할 수 있다.
도 1의 실시예들에 의하면, 제1 정보 및 제2 정보가 일치한다고 판단되는 경우에만 공개키로 비밀키를 암호화하여 단말(210) 및 서버(220) 간에 보안 통신이 수행된다. 일실시예에 따르면, 제1 정보는 서버(220)의 공개키가 서버(220)에 의하여 변환된 결과를 포함할 수 있으며, 제2 정보는 인증서에 포함된 공개키가 단말(210)에 의하여 변환된 결과를 포함할 수 있다. 제1 정보는 사전에 공유된 OTP 생성 로직에 기초하여 암호화되는 설정파일로부터 추출되는 정보이므로, 사전에 공유된 OTP 생성 로직에 대하여 알지 못하는 제3자는 설정파일로부터 제1 정보를 추출할 수 없다. 또한, 제1 정보 및 제2 정보가 공개키가 변환된 결과를 포함하는 경우, 제1 정보가 포함하는 결과는 서버(220)에서 변환된 결과일 수 있고, 제2 정보가 포함하는 결과는 단말(210)에서 변환된 결과일 수 있으며, 제1 정보가 포함하는 결과 및 제2 정보가 포함하는 결과는 미리 정해진 동일한 변환 과정에 의하여 변환된 결과일 수 있다. 중간자가 미리 정해진 변환 과정에 대해 알고 있지 않은 한, 중간자 공격이 발생하면 제1 정보 및 제2 정보가 일치하지 않을 수 있다. 따라서, 제1 정보 및 제2 정보가 일치하지 않는 경우 중간자가 제1 정보 또는 제2 정보의 내용을 변경하였다고 판단할 수 있다.
제1 정보 및 제2 정보를 비교하는 것과 관련된 보다 상세한 사항은 도 4를 통하여 후술한다.
제1 정보 및 제2 정보를 비교함으로써, 단말(210) 및 서버(220) 간의 통신 중에 중간자 공격이 발생하는 것을 방지할 수 있다. 특히, HTTPS 프로토콜이 중간자 공격에 취약할 수 있음을 고려했을 때, 단말(101) 및 서버(102) 간의 통신이 HTTPS 프로토콜에 기초하여 수행되는 경우 본 발명이 더욱 효과적으로 실시될 수 있다.
도 3은 일실시예에 따른 해시 함수(Hash Function) 및 솔트(salt)를 설명하기 위한 도면이다.
도 3을 참조하면, 해시 함수(340)는 임의의 길이의 입력 메시지를 고정된 길이의 출력 값으로 변환하는 함수이다. 해시 함수는 해시값이 주어져 있을 때, 그 해시값을 출력하는 입력값을 찾는 제1 역상 공격(first preimage attack)이 계산상 어려운 역상 저항성(preimage resistance), 및 입력값이 주어져 있을 때, 그 입력과 같은 해시값을 출력하는 다른 입력값을 찾는 제2 역상 공격(second preimage attack)이 어려운 제2 역상 저항성(second preimage resistance)을 가질 수 있다. 예를 들어, 입력 메시지 'hello3ab9'(330)에 해시 함수(340)를 적용하면 '39e19b234…'(350)의 출력 값을 출력할 수 있지만, '39e19b234…'(350)의 출력 값으로부터 'hello3ab9'(330)를 얻는 것이 계산상(computationally) 어려울 수 있다. 또한, '39e19b234…'(350)의 출력 값을 출력할 수 있는 다른 입력 메시지를 찾는 것이 계산상 어려울 수 있다.
해시 함수(340)의 알고리즘은 공개되어 있는 경우가 많으므로, 해시 함수(340)를 사용하는 것만으로는 원문으로의 복원이 가능할 우려가 있다. 따라서, 문자열과 미리 정해진 솔트(320)에 기초하여 결정된 정보에 해시 함수를 적용함으로써 중간자 공격을 방어할 수 있다. 솔트(320)는 미리 정해진 특정 문자열로서, 일실시예에 따른 솔트(320)는 난수 생성을 통해 작성된 수천 비트 단위의 바이너리 문자열일 수 있다. 일실시예에 따르면, 문자열의 앞 및/또는 뒤에 솔트(320)를 더 끼워 넣은 메시지에 해시 함수(340)를 적용할 수 있다. 예를 들어, 메시지 'hello'(310)의 뒤에 '3ab9'라는 솔트(320) 값을 이어 붙임으로써, 해시 함수의 입력 메시지 'hello3ab9'(330)가 생성될 수 있다.
도 1의 제1 정보는 공개키가 서버에 의하여 변환된 결과를 포함할 수 있고, 제2 정보는 인증서에 포함된 공개키가 서버에 의하여 변환된 결과를 포함할 수 있다. 일실시예에 따르면, 제1 정보 및 제2 정보에서 공개키가 변환된 결과는 공개키의 해시 및 공개키와 미리 정해진 솔트에 기초하여 결정된 정보의 해시 중 적어도 하나를 포함할 수 있다. 이 경우, 해시 함수 및 솔트는 미리 정해진 형태로 단말 및 서버에 저장되어 있을 수 있다. 또한, 중간자가 솔트 및 해시 함수를 모두 알고 있는 경우가 아닌 한, 중간자 공격이 발생하면 제1 정보 및 제2 정보가 일치하지 않을 수 있다.
도 4는 일실시예에 따른 제1 정보 및 제2 정보를 비교함으로써, 인증서에 포함된 공개키를 검증하는 방법을 설명하기 위한 도면이다.
도 4를 참조하면, 제1 정보(410)는 서버의 공개키 및 서버의 공개키가 변환된 결과 중 적어도 하나를 포함할 수 있다. 일실시예에 따르면, 서버의 공개키가 변환된 결과는 서버의 공개키의 해시 및 서버의 공개키와 미리 정해진 솔트에 기초하여 결정된 정보의 해시 중 적어도 하나를 포함할 수 있다. 제2 정보(420)는 인증서에 포함된 공개키 및 인증서에 포함된 공개키가 변환된 결과 중 적어도 하나를 포함할 수 있다. 일실시예에 따르면, 인증서에 포함된 공개키가 변환된 결과는 인증서에 포함된 공개키의 해시 및 인증서에 포함된 공개키와 미리 정해진 솔트에 기초하여 결정된 정보의 해시 중 적어도 하나를 포함할 수 있다.
일실시예에 따르면, 제1 정보(410) 및 제2 정보(420)는 동일한 종류의 정보를 포함할 수 있다. 또한, 일실시예에 따르면, 제1 정보(410)가 포함하는 서버의 공개키가 변환된 결과 및 제2 정보(420)가 포함하는 인증서에 포함된 공개키가 변환된 결과는 동일한 변환 과정에 의한 결과일 수 있다. 예를 들어, 서버의 공개키가 'hello'인 경우, 서버의 공개키 'hello'의 뒤에 '3ab9'라는 솔트를 이어 붙인 입력 메시지 'hello3ab9'에 해시 함수를 적용하여 출력되는 출력값 '39e19b234…'이 제1 정보에 포함될 수 있다. 이 경우, 제2 정보는 동일한 종류의 정보를 포함하고 동일한 변환 과정에 의하여 공개키를 변환해야 하므로, 인증서에 포함된 공개키가 'hello'인 경우, 인증서의 공개키 'hello'의 뒤에 '3ab9'라는 솔트를 이어 붙인 입력 메시지 'hello3ab9'에 해시 함수를 적용하여 출력되는 출력값 '39e19b234…'이 제2 정보에 포함될 수 있다.
일실시예에 따른 제1 정보(410) 및 제2 정보(420)는 공개키와 미리 정해진 솔트에 기초하여 결정된 정보의 해시를 포함할 수 있다. 이 경우, 중간자가 솔트 및 해시 함수를 모두 알고 있는 경우가 아닌 한, 중간자 공격이 발생하면 제1 정보(410) 및 제2 정보(420)가 일치하지 않을 수 있다.
제1 정보(410)가 포함하는 결과는 공개키가 서버에 의하여 변환된 결과를 포함할 수 있고, 제2 정보(420)가 포함하는 결과는 공개키가 단말에 의하여 변환된 결과를 포함할 수 있다. 따라서, 제1 정보(410) 및 제2 정보(420)가 일치하지 않는 경우 제3자가 제1 정보(410) 또는 제2 정보(420)의 내용을 변경하였다고 판단될 수 있다. 제1 정보(410) 및 제2 정보(420)를 비교함으로써, 단말 및 서버 간의 통신 중에 중간자 공격이 발생하는 것을 방지할 수 있다.
도 5는 일실시예에 따른 보안 통신을 수행하기 위한 데이터의 송수신과 관련된 시스템을 설명하기 위한 도면이다.
도 5를 참조하면, 보안 통신을 수행하기 위한 데이터를 송수신하는 것과 관련된 시스템은 단말(501) 및 서버(502)를 포함할 수 있다. 단말(501)은 도 1의 단말(101)에 대응될 수 있고, 서버(502)는 도 1의 서버(102)에 대응될 수 있다.
일실시예에 따른 단말(501)은 서버(502)로 '단말 hello' 메시지를 전송할 수 있다(510). '단말 hello' 메시지는 단말(501)이 생성한 랜덤 데이터(이하, 랜덤 데이터 1) 및 사용 가능한 암호화 방식의 후보들과 관련된 정보를 포함하는 메시지일 수 있다.
서버(502)는 단말(501)로 '서버 hello' 메시지를 전송할 수 있다(520). '서버 hello' 메시지는 서버(502)가 생성한 랜덤 데이터(이하, 랜덤 데이터 2), 인증서, 및 서버(502)가 선택한 단말(501) 암호화 방식과 관련된 정보를 포함하는 메시지일 수 있다. 단계 520은 도 1의 단계 130을 포함하는 단계일 수 있다.
단말(501)은 서버(502)로부터 수신한 인증서를 확인하고, 'pre master secret'을 암호화할 수 있다(530). 구체적으로, 단말(501)은 인증서가 CA에 의해서 발급된 것인지 확인할 수 있다. 또한, 단말(501)은 랜덤 데이터 1 및 랜덤 데이터 2를 조합하여 'pre master secret' 키를 생성할 수 있다. 'Pre master secret' 키는 도 1의 보안 통신을 위한 비밀키에 대응될 수 있다. 단계 530은 도 1의 단계 140을 포함하는 단계일 수 있다.
단말(501)은 'pre master secret'을 서버(502)로 전송할 수 있다(540). 구체적으로, 단말(501)은 인증서 안에 들어 있는 공개키를 이용하여 'pre master secret' 값을 암호화하고, 서버(502)로 전송할 수 있다. 단계 540은 도 1의 단계 150 및 단계 160을 포함하는 단계일 수 있다.
서버(502)는 'pre master secret'을 복호화할 수 있다(550). 서버(502)는 자신의 비공개 키를 이용하여 'pre master secret' 값을 복호화할 수 있다. 'Pre master secret' 값을 복호화한 결과에 기초하여, 단말(501) 및 서버(502)에서는 'master secret' 및 'session key'를 생성할 수 있다(560)(단말(501)의 경우 'pre master secret'을 암호화한 주체이므로, 복호화 과정을 거칠 필요가 없다). 단말(501) 및 서버(502)는 'session key'를 활용하여, 대칭키 암호화 방식으로 상호간에 통신할 수 있다(570). 'Session key'는 도 1에서 생성된 비밀키에 대응될 수 있다. 단계 550, 단계 560, 및 단계 570이 포함되는 단계는 도 1의 단계 170을 포함하는 단계일 수 있다.
통신이 완료되면, 시스템은 세션을 종료하고 'session key'를 폐기할 수 있다(580). 통신의 완료 여부를 결정하는 기준은 다양하게 선택될 수 있다. 일실시예에 따르면, 미리 정해진 시간이 지나면 통신이 완료되고 세션이 종료될 수 있다. 일실시예에 따르면, 미리 정해진 용량의 데이터가 송수신되면 통신이 완료되고 세션이 종료될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (19)

  1. HTTPS 프로토콜에 기초하여 서버와 통신하는 단말의 동작 방법에 있어서,
    상기 서버로의 부팅을 위한 구성파일의 요청에 반응하여, 상기 서버와 공유하는 OTP 생성 로직에 따라 암호화된 설정파일을 수신하는 단계;
    상기 암호화된 설정파일을 상기 OTP 생성 로직에 따라 복호화하여, 상기 설정파일에 포함된 상기 서버의 공개키에 관한 제1 정보를 저장하는 단계;
    상기 서버로의 접속 요청에 반응하여 상기 서버에 의하여 제공되는 인증서를 수신하는 단계;
    상기 인증서에 포함된 공개키에 관한 제2 정보와 상기 제1 정보를 비교함으로써, 상기 인증서에 포함된 공개키를 검증하는 단계;
    상기 검증 결과에 따라, 상기 서버와의 보안 통신을 위한 비밀키를 상기 공개키로 암호화하여 상기 서버로 전송하는 단계; 및
    상기 비밀키에 기초하여, 상기 서버와 보안 통신을 수행하는 단계
    를 포함하고,
    상기 설정파일은 상기 단말의 부팅을 위한 구성파일 및 상기 서버의 공개키에 관한 제1 정보를 포함하는,
    단말의 동작 방법.
  2. 제1항에 있어서,
    상기 설정파일을 수신하는 단계는
    상기 단말의 부팅 시, 상기 서버에 의하여 생성된 제1 OTP로 암호화된 설정파일을 수신하는 단계를 포함하고,
    상기 서버의 공개키에 관한 제1 정보를 저장하는 단계는
    상기 단말에 의하여 생성된 제2 OTP로 상기 암호화된 설정파일을 복호화하는 단계; 및
    상기 복호화된 설정파일로부터 상기 서버의 공개키에 관한 제1 정보를 추출하는 단계
    를 포함하는, 단말의 동작 방법.
  3. 제1항에 있어서,
    상기 인증서를 수신하는 단계는
    상기 서버로 접속 요청을 전송하는 단계; 및
    상기 서버로부터 상기 공개키를 포함하는 상기 인증서를 수신하는 단계
    를 포함하는, 단말의 동작 방법.
  4. 제1항에 있어서,
    상기 인증서에 포함된 공개키를 검증하는 단계는
    상기 인증서에 포함된 공개키에 관한 제2 정보를 결정하는 단계; 및
    상기 제1 정보와 상기 제2 정보를 비교함으로써, 상기 인증서에 포함된 공개키를 검증하는 단계
    를 포함하는, 단말의 동작 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 제1 정보는
    상기 서버의 공개키가 상기 서버에 의하여 변환된 결과를 포함하는,
    단말의 동작 방법.
  7. 제6항에 있어서,
    상기 서버의 공개키가 변환된 결과는
    상기 서버의 공개키의 해시(Hash); 및
    상기 서버의 공개키와 미리 정해진 솔트(Salt)에 기초하여 결정된 정보의 해시
    중 적어도 하나를 포함하는,
    단말의 동작 방법.
  8. 제1항에 있어서,
    상기 제2 정보는
    상기 인증서에 포함된 공개키가 상기 단말에 의하여 변환된 결과를 포함하는,
    단말의 동작 방법.
  9. 제8항에 있어서,
    상기 인증서에 포함된 공개키가 변환된 결과는
    상기 인증서에 포함된 공개키의 해시; 및
    상기 인증서에 포함된 공개키와 미리 정해진 솔트에 기초하여 결정된 정보의 해시
    중 적어도 하나를 포함하는,
    단말의 동작 방법.
  10. HTTPS 프로토콜에 기초하여 단말과 통신하는 서버의 동작 방법에 있어서,
    상기 단말로부터 수신된 부팅을 위한 구성파일의 요청을 수신하는 단계;
    상기 구성파일 및 공개키에 관한 제1 정보를 포함하는 설정파일을 상기 단말과 공유하는 OTP 생성 로직에 따라 암호화하여 전송하는 단계;
    상기 단말로부터 수신된 접속 요청에 반응하여 상기 공개키를 포함하는 인증서를 전송하는 단계;
    상기 공개키로 암호화된 보안 통신을 위한 비밀키를 상기 단말로부터 수신하는 단계; 및
    상기 비밀키에 기초하여, 상기 단말과 보안 통신을 수행하는 단계
    를 포함하는, 서버의 동작 방법.
  11. 제10항에 있어서,
    상기 설정파일을 상기 단말과 공유하는 OTP 생성 로직에 따라 암호화하여 전송하는 단계는
    상기 서버의 공개키에 관한 제1 정보를 포함하는 설정파일을 제1 OTP로 암호화하는 단계; 및
    상기 제1 OTP로 암호화된 설정파일을 상기 단말로 전송하는 단계
    를 포함하는, 서버의 동작 방법.
  12. 제10항에 있어서,
    상기 인증서를 전송하는 단계는
    상기 단말로부터 접속 요청을 수신하는 단계; 및
    상기 단말로 상기 공개키를 포함하는 인증서를 제공하는 단계
    를 포함하는, 서버의 동작 방법.
  13. 삭제
  14. 제10항에 있어서,
    상기 제1 정보는
    상기 공개키가 상기 서버에 의하여 변환된 결과를 포함하는,
    서버의 동작 방법.
  15. 제14항에 있어서,
    상기 공개키가 변환된 결과는
    상기 공개키의 해시(Hash); 및
    상기 공개키와 미리 정해진 솔트(Salt)에 기초하여 결정된 정보의 해시
    중 적어도 하나를 포함하는,
    서버의 동작 방법.
  16. 제10항에 있어서,
    상기 단말에서, 상기 제1 정보와 상기 인증서에 포함된 공개키에 관한 제2 정보 사이의 비교를 통하여 상기 인증서에 포함된 공개키가 검증되고,
    상기 제2 정보는 상기 인증서에 포함된 공개키가 상기 서버에 의하여 변환된 결과를 포함하는,
    서버의 동작 방법.
  17. 제16항에 있어서,
    상기 인증서에 포함된 공개키가 변환된 결과는
    상기 인증서에 포함된 공개키의 해시; 및
    상기 인증서에 포함된 공개키와 미리 정해진 솔트에 기초하여 결정된 정보의 해시
    중 적어도 하나를 포함하는,
    서버의 동작 방법.
  18. 제10항에 있어서,
    상기 서버는 폐쇄형 네트워크 서비스(walled garden) 내의 서버인,
    서버의 동작 방법.
  19. 하드웨어와 결합되어 제1항 내지 제4항, 제6항 내지 제12항 및 제14항 내지 제18항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
KR1020190002583A 2019-01-09 2019-01-09 Https 프로토콜에서 mitm 공격을 회피하는 방법 KR102145679B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190002583A KR102145679B1 (ko) 2019-01-09 2019-01-09 Https 프로토콜에서 mitm 공격을 회피하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190002583A KR102145679B1 (ko) 2019-01-09 2019-01-09 Https 프로토콜에서 mitm 공격을 회피하는 방법

Publications (2)

Publication Number Publication Date
KR20200086436A KR20200086436A (ko) 2020-07-17
KR102145679B1 true KR102145679B1 (ko) 2020-08-18

Family

ID=71832219

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190002583A KR102145679B1 (ko) 2019-01-09 2019-01-09 Https 프로토콜에서 mitm 공격을 회피하는 방법

Country Status (1)

Country Link
KR (1) KR102145679B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110231650A1 (en) * 2001-05-01 2011-09-22 Frank Coulier Use and generation of a session key in a secure socket layer connection
KR101508859B1 (ko) * 2013-12-30 2015-04-07 삼성에스디에스 주식회사 클라이언트와 서버 간 보안 세션을 수립하기 위한 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110231650A1 (en) * 2001-05-01 2011-09-22 Frank Coulier Use and generation of a session key in a secure socket layer connection
KR101508859B1 (ko) * 2013-12-30 2015-04-07 삼성에스디에스 주식회사 클라이언트와 서버 간 보안 세션을 수립하기 위한 방법 및 장치

Also Published As

Publication number Publication date
KR20200086436A (ko) 2020-07-17

Similar Documents

Publication Publication Date Title
US11736298B2 (en) Authentication using key distribution through segmented quantum computing environments
US10469469B1 (en) Device-based PIN authentication process to protect encrypted data
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
CN110214440B (zh) 计算系统,传送受保护数据的方法和可读存储介质
CN108809646B (zh) 安全共享密钥共享系统
CN110249336B (zh) 使用签名密钥对可信执行环境的寻址
US8775794B2 (en) System and method for end to end encryption
TWI489847B (zh) 資料加密方法、資料驗證方法及電子裝置
US9673979B1 (en) Hierarchical, deterministic, one-time login tokens
US20220006835A1 (en) Tls integration of post quantum cryptographic algorithms
US20180091487A1 (en) Electronic device, server and communication system for securely transmitting information
KR101739203B1 (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
EP3732821B1 (en) Secure provisioning of keys
US11153074B1 (en) Trust framework against systematic cryptographic
US20200195446A1 (en) System and method for ensuring forward & backward secrecy using physically unclonable functions
US20220014367A1 (en) Decentralized computing systems and methods for performing actions using stored private data
WO2020155812A1 (zh) 一种数据存储方法、装置及设备
CN110235134B (zh) 使用洁净室供应来寻址可信执行环境
KR20080025121A (ko) 비대칭 개인키로부터 비밀키 생성
US20210144002A1 (en) Secondary Channel Authentication of Public Keys
EP3292654B1 (en) A security approach for storing credentials for offline use and copy-protected vault content in devices
Das et al. A decentralized open web cryptographic standard
KR102145679B1 (ko) Https 프로토콜에서 mitm 공격을 회피하는 방법
KR102094606B1 (ko) 인증 장치 및 방법
KR102315560B1 (ko) 랜덤오라클 모델에서 공개키 암호로부터 동등성테스트가 가능한 공개키 암호로의 변환 기술

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant