KR20190133972A - IoT 환경에서 기기 인증키를 활용한 메시지 암호키 운용을 위한 단말 기기, 서버, 시스템 및 방법 - Google Patents

IoT 환경에서 기기 인증키를 활용한 메시지 암호키 운용을 위한 단말 기기, 서버, 시스템 및 방법 Download PDF

Info

Publication number
KR20190133972A
KR20190133972A KR1020180059029A KR20180059029A KR20190133972A KR 20190133972 A KR20190133972 A KR 20190133972A KR 1020180059029 A KR1020180059029 A KR 1020180059029A KR 20180059029 A KR20180059029 A KR 20180059029A KR 20190133972 A KR20190133972 A KR 20190133972A
Authority
KR
South Korea
Prior art keywords
key
message
authentication
verification
terminal device
Prior art date
Application number
KR1020180059029A
Other languages
English (en)
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 KR20190133972A publication Critical patent/KR20190133972A/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

IoT 환경에서 기기 인증키를 활용한 메시지 암호키 운용을 위한 단말 기기, 서버, 시스템 및 방법이 개시된다. 본 발명의 일실시예에 따른 메시지 암호키 운용을 위한 방법은 메시지 암호키 운용을 위한 단말 기기, 서버 및 시스템을 이용한 방법에 있어서, 상기 단말 기기가, 인증용 키 페어를 생성하거나 네트워크 서버의 정보 주입 프로그램을 이용하여 생성된 상기 인증용 키 페어를 전달 받고, 키 관리 서버가, 검증용 키 페어를 생성하는 단계; 상기 단말 기기가, 상기 인증용 키 페어의 인증용 개인키 및 상기 검증용 키 페어의 검증용 공개키를 이용하여 요청 메시지를 암호화하는 단계 및 어플리케이션 서버가, 상기 인증용 키 페어의 인증용 공개키 및 상기 검증용 키 페어의 검증용 개인키를 이용하여 상기 요청 메시지를 복호화하는 단계를 포함한다.

Description

IoT 환경에서 기기 인증키를 활용한 메시지 암호키 운용을 위한 단말 기기, 서버, 시스템 및 방법 {TERMMINAL DEVICE, SERVER, SYSTEM AND METHOD FOR OPERATING MESSAGE ENCRYPTION KEY USING DEVICE AUTHENTICATION KEY IN IoT ENVIRONMENT}
본 발명은 사물인터넷(Internet of Things, IoT) 기술에 관한 것으로, 보다 상세하게는 IoT 환경에서의 키 관리 및 보안 기술에 관한 것이다.
IoT(사물인터넷, Internet of Things)는 자동차, 집, 웨어러블 장치 등과 함께 현대 생활의 모든 정보를 수집할 수 있게 하였다. 이 정보는 단순한 장치에서 수집된 수치 데이터뿐만 아니라 개인의 생활에 밀접하면서도 개인의 사생활까지 엿볼 수 있는 은밀한 데이터를 포함하고 기술이 발전함에 따라 폭발적으로 증가하는 추세다.
그러나 데이터의 보호 및 보안에는 아직 많이 미흡하다. 특히 무선망을 이용하는 경우가 많으며, 인터넷에 연결되면서 사이버공격과 위협이 크게 늘어나고 있지만 보안을 제대로 강구하고 있지 못하고 있어 암호화 프로토콜을 활용해 송신되는 데이터 안전성을 강구할 수 있는 안전한 통신이 구현돼야 하며, 경량화된 플랫폼에 최적화된 암호화 및 인증 기술의 필요성이 강조된다.
IoT 플랫폼은 주로 무선으로 연결되는데, 이를 위해 LoRA, 지그비(ZigBee), 블루투스(Bluetooth), 와이파이(Wi-Fi), 6LoWPAN, Z-Wave 등의 프로토콜을 사용한다. 이들 프로토콜은 TDES(TripleDES), SHA-1과 같이 보안 강도가 낮은 암호부터 AES-256, SHA-2, RSA-2048 등 보안 강도가 높은 암호까지 다양하게 지원하나 여전히 IoT 환경에 적합한 경량화된 특성을 갖춘 암호 알고리즘을 지원하지 않고 있다.
IoT 환경에서 자원이 제한적인 환경에서 IETF 표준화 그룹에서는 안전한 IoT 서비스를 위해 경량화된 DTLS(Datagram TLS) 프로토콜의 활용을 제안하고 있지만 초경량 기기에는 한계가 있다. RSA(Rivest Shamir Adleman)나 ECC(Elliptic Curve Cryptosystem)와 같은 암호화 모듈을 탑재 할 수 없는 경량 센서에는 적용이 어렵다.
초소형 IoT 기기는 기존 PC나 모바일 기기와는 달리 저전력으로 동작하기 때문에 컴퓨팅 성능이 낮고 프로세서의 경우 비교적 고성능 기기에 적합한 32비트 프로세서 외에도 경량 기기에는 8비트와 16비트 프로세서까지 다양하게 탑재되고 있다. 대칭키 암호화의 경우 8비트 프로세서 기준으로 128비트 AES 암·복호화가 무난하게 수행되는 것으로 알려져 있다.
IoT기기, 센서들은 기존보다 훨씬 가벼운 펌웨어를 통해 구동되기 때문에 안드로이드OS 등에 적용되는 보안기능을 그대로 적용하기 어렵다는 한계가 발생한다. 기존 암호화 통신은 최소한의 컴퓨팅 성능을 가진 IoT기기, 센서에 적용하기에는 무리가 되고 소프트웨어적인 암호화 기술보다는 하드웨어적인 암호화 기술을 적용한다면, 별도 암호화 칩을 사용으로 비용이 상승한다는 문제가 있어 하드웨어적인 암호화 기술 적용은 한계가 있다.
한편, 한국공개특허 제 10-2016-0099256 호“IoT 기반 스마트 워크 환경에서 디바이스 인증을 위한 인증 서버, 인증 방법 및 시스템”는 IoT 기반의 스마트 워크 환경에서 지능형 디바이스의 식별값과 임시 암호값을 인증하여 인가 티켓을 생성하고, 인가 티켓을 이용하여 디바이스 인증을 수행하는 인증 서버, 인증 방법 및 시스템에 관하여 개시하고 있다.
본 발명은 기존 대칭키 암호화를 이용하여 안전한 키의 관리 및 분배를 목적으로 한다.
또한, 본 발명은 기존 대칭키 암호화를 이용한 공개키 인증, 암호화 및 복호화를 목적으로 한다.
또한, 본 발명은 암호화 기술 적용의 비용을 절감하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 메시지 암호키 운용을 위한 방법은 메시지 암호키 운용을 위한 단말 기기, 서버 및 시스템을 이용한 방법에 있어서, 상기 단말 기기가, 인증용 키 페어를 생성하거나 네트워크 서버의 정보 주입 프로그램을 이용하여 생성된 상기 인증용 키 페어를 전달 받고, 키 관리 서버가, 검증용 키 페어를 생성하는 단계; 상기 단말 기기가, 상기 인증용 키 페어의 인증용 개인키 및 상기 검증용 키 페어의 검증용 공개키를 이용하여 요청 메시지를 암호화하는 단계 및 어플리케이션 서버가, 상기 인증용 키 페어의 인증용 공개키 및 상기 검증용 키 페어의 검증용 개인키를 이용하여 상기 요청 메시지를 복호화하는 단계를 포함한다.
이 때, 상기 메시지 암호키 운용을 위한 방법은 상기 어플리케이션 서버가, 상기 인증용 공개키 및 상기 검증용 개인키를 이용하여 상기 요청 메시지에 대한 응답 메시지를 암호화하는 단계 및 상기 단말 기기가, 상기 인증용 개인키 및 상기 검증용 공개키를 이용하여 상기 응답 메시지를 복호화하는 단계를 더 포함할 수 있다.
이 때, 상기 생성하는 단계는 상기 단말 기기가, 상기 인증용 공개키 및 상기 단말 기기의 단말 식별 정보를 상기 키 관리 서버에 송신하고, 상기 키 관리 서버가, 사전 공유키를 생성하여, 상기 검증용 공개키 및 상기 사전 공유키를 상기 단말 기기에 송신할 수 있다.
이 때, 상기 생성하는 단계는 상기 단말 기기가, 상기 인증용 개인키, 상기 검증용 공개키, 상기 단말 식별 정보 및 상기 사전 공유키를 저장하고, 상기 키 관리 서버가, 상기 인증용 공개키, 상기 검증용 개인키, 상기 단말 식별 정보 및 상기 사전 공유키를 저장할 수 있다.
이 때, 상기 요청 메시지를 암호화하는 단계는 상기 단말 기기가, 디피-헬만 키 교환(Diffie-Hellman key exchange) 방식을 이용하여 상기 인증용 개인키 및 상기 검증용 공개키로부터 제1 비밀키를 생성하고, 상기 요청 메시지를 복호화하는 단계는 상기 어플리케이션 서버가, 디피-헬만 키 교환 방식을 이용하여 상기 인증용 공개키 및 상기 검증용 개인키로부터 제2 비밀키를 생성할 수 있다.
이 때, 상기 요청 메시지를 암호화하는 단계는 상기 단말 기기가, 키 유도 함수(Key derivation function)를 이용하여 상기 제1 비밀키 및 상기 사전 공유키로부터 제1 암호키 및 제1 MAC 키를 생성하고, 상기 요청 메시지를 복호화하는 단계는 상기 어플리케이션 서버가, 상기 키 유도 함수를 이용하여 상기 제2 비밀키 및 상기 사전 공유키로부터 제2 암호키 및 제2 MAC 키를 생성할 수 있다.
이 때, 상기 요청 메시지를 암호화하는 단계는 상기 단말 기기가, 상기 제1 암호키를 이용하여 상기 요청 메시지를 암호화한 암호화 메시지를 생성하고, 상기 제1 MAC 키를 이용하여 상기 암호화 메시지, 상기 단말 식별 정보 및 상기 암호화 메시지의 메시지 헤더를 MAC(Message Authentication Code) 연산하여 제1 MAC 값을 산출할 수 있다.
이 때, 상기 요청 메시지를 복호화하는 단계는 상기 어플리케이션 서버가, 상기 제2 MAC 키를 이용하여 상기 단말 기기로부터 수신한 상기 암호화 메시지, 상기 단말 식별 정보 및 상기 암호화 메시지의 메시지 헤더를 MAC 연산하여 제2 MAC 값을 산출할 수 있다.
이 때, 상기 요청 메시지를 복호화하는 단계는 상기 어플리케이션 서버가, 상기 단말 기기로부터 수신한 상기 제1 MAC 값과 상기 제2 MAC 값을 비교하여 상기 암호화 메시지를 검증하고, 상기 제2 암호키를 이용하여 상기 암호화 메시지를 복호화할 수 있다.
이 때, 상기 요청 메시지를 복호화하는 단계는 상기 제1 MAC 값과 상기 제2 MAC 값을 Xor 연산하여 상기 암호화 메시지의 패딩 존재 여부를 확인하고, 상기 패딩 존재 여부에 따라 상기 암호화 메시지를 복호화 후, 패딩 처리할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 메시지 암호키 운용을 위한 방법은 메시지 암호키 운용을 위한 단말 기기, 서버 및 시스템을 이용한 방법에 있어서, 상기 단말 기기가, 인증용 키 페어를 생성하거나 네트워크 서버의 정보 주입 프로그램을 이용하여 생성된 상기 인증용 키 페어를 전달 받고, 키 관리 서버가, 검증용 키 페어를 생성하는 단계; 상기 단말 기기가, 상기 인증용 키 페어의 인증용 개인키 및 상기 검증용 키 페어의 검증용 공개키를 이용하여 수행 명령을 포함하는 요청 메시지를 생성하는 단계 및 어플리케이션 서버가, 상기 인증용 키 페어의 인증용 공개키 및 상기 검증용 키 페어의 검증용 개인키를 이용하여 수행 명령을 포함하는 요청 메시지를 검증하는 단계를 포함한다.
상기 메시지 암호키 운용을 위한 방법은 상기 어플리케이션 서버가, 상기 메시지의 검증이 성공인 경우, 수행 명령을 처리하고, 상기 수행 명령에 대한 응답 메시지를 생성하는 단계 및 상기 단말 기기가, 상기 응답 메시지를 검증하고, 상기 응답 메시지의 검증이 성공인 경우, 상기 응답 메시지를 복호화하여 상기 수행 명령을 처리하는 단계를 더 포함할 수 있다.
이 때, 상기 요청 메시지를 생성하는 단계는 상기 단말 기기가, 디피-헬만 키 교환(Diffie-Hellman key exchange) 방식을 이용하여 상기 인증용 개인키 및 상기 검증용 공개키로부터 제1 비밀키를 생성하고, 상기 요청 메시지를 검증하는 단계는 상기 어플리케이션 서버가, 디피-헬만 키 교환방식을 이용하여 상기 인증용 공개키 및 상기 검증용 개인키로부터 제2 비밀키를 생성할 수 있다.
이 때, 상기 요청 메시지를 생성하는 단계는 상기 단말 기기가, 키 유도 함수(Key derivation function)를 이용하여 상기 제1 비밀키 및 상기 키 관리 서버가 생성한 사전 공유키로부터 제1 암호키 및 제1 MAC 키를 생성하고, 상기 요청 메시지를 검증하는 단계는 상기 어플리케이션 서버가, 상기 키 유도 함수를 이용하여 상기 제2 비밀키 및 상기 사전 공유키로부터 제2 암호키 및 제2 MAC 키를 생성할 수 있다.
이 때, 상기 요청 메시지를 생성하는 단계는 상기 요청 메시지의 메시지 헤더에 수행 명령의 요청을 설정할 수 있다.
이 때, 상기 요청 메시지를 검증하는 단계는 상기 요청 메시지의 메시지 헤더에 포함된 수행 명령을 확인하여 상기 수행 명령의 요청을 처리할 수 있다.
이 때, 상기 응답 메시지를 생성하는 단계는 상기 어플리케이션 서버가 상기 제2 암호키를 이용하여 상기 수행 명령을 요청한 결과를 암호화하여 상기 응답 메시지를 생성하고, 상기 수행 명령을 처리하는 단계는 상기 응답 메시지의 검증이 성공인 경우, 상기 단말 기기가, 상기 제1 암호키를 이용하여 상기 응답 메시지를 복호화하여 상기 수행 명령을 요청한 결과를 처리할 수 있다.
이 때, 상기 수행 명령을 처리하는 단계는 상기 수행 명령이 키 발급 요청인 경우, 상기 응답 메시지를 복호화하여 획득한 발급 요청 암호키를 상기 키 유도 함수에 사용되도록 사전 공유키 식별자를 지정하여 사전 공유키로 저장할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 메시지 암호키 운용을 위한 시스템은 검증용 키 페어를 생성하는 키 관리 서버; 인증용 키 페어를 생성하거나 네트워크 서버의 정보 주입 프로그램을 이용하여 생성된 상기 인증용 키 페어를 전달 받아, 상기 인증용 키 페어의 인증용 개인키 및 상기 검증용 키 페어의 검증용 공개키를 이용하여 요청 메시지를 암호화하는 단말 기기 및 상기 인증용 키 페어의 인증용 공개키 및 상기 검증용 키 페어의 검증용 개인키를 이용하여 상기 요청 메시지를 복호화하는 어플리케이션 서버를 포함한다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 메시지 암호키 운용을 위한 어플리케이션 서버는 인증용 키 페어를 생성하거나 네트워크 서버의 정보 주입 프로그램을 이용하여 생성된 상기 인증용 키 페어를 전달 받은 단말 기기로부터 상기 인증용 키 페어의 인증용 개인키 및 검증용 키 페어의 검증용 공개키를 이용하여 암호화된 요청 메시지를 수신하고, 검증용 키 페어를 생성하는 키 관리 서버로부터 상기 인증용 키 페어의 인증용 공개키 및 상기 검증용 키 페어의 검증용 개인키를 수신하는 서버 통신부 및 상기 인증용 공개키 및 상기 검증용 개인키를 이용하여 상기 요청 메시지를 복호화하는 서버 암호화부를 포함한다.
본 발명은 기존 대칭키 암호화를 이용하여 안전한 키의 관리 및 분배를 제공할 수 있다.
또한, 본 발명은 기존 대칭키 암호화를 이용한 공개키 인증, 암호화 및 복호화를 제공할 수 있다.
또한, 본 발명은 암호화 기술 적용의 비용을 절감할 수 있다.
도 1은 본 발명의 일실시예에 따른 메시지 암호키 운용을 위한 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 단말 기기를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 어플리케이션 서버를 나타낸 블록도이다.
도 4는 본 발명의 일실시예에 따른 키 관리 서버를 나타낸 블록도이다.
도 5는 본 발명의 일실시예에 따른 키 저장 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 6은 본 발명의 일실시예에 따른 요청 메시지 암호화 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 7은 본 발명의 일실시예에 따른 요청 메시지 복호화 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 8은 본 발명의 일실시예에 따른 응답 메시지 암호화 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 9는 본 발명의 일실시예에 따른 응답 메시지 복호화 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 10은 본 발명의 일실시예에 따른 암호화 메시지의 구성를 나타낸 도면이다.
도 11 내지 13은 본 발명의 일실시예에 따른 니블 넘버(Nibble Number)로 숫자들을 나타낸 도면이다.
도 14는 본 발명의 일실시예에 따른 암호 데이터의 패딩 여부에 따른 MAC Xor 연산 과정을 나타낸 동작흐름도이다.
도 15는 본 발명의 일실시예에 따른 MAC 검증 시 암호 데이터의 패딩 여부 확인 과정을 나타낸 동작흐름도이다.
도 16은 본 발명의 일실시예에 따른 메시지 헤더의 구조와 KDF 호출 시 인자 설정을 나타낸 도면이다.
도 17은 본 발명의 일실시예에 따른 키 발급 요청 메시지 생성 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 18은 본 발명의 일실시예에 따른 키 발급 요청 메시지 검증 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 19는 본 발명의 일실시예에 따른 키 발급 응답 메시지 생성 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 20은 본 발명의 일실시예에 따른 키 발급 응답 메시지 검증 및 암호키 저장 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 21은 본 발명의 일실시예에 따른 PSK를 메시지 헤더에 설정하는 것을 나타낸 도면이다.
도 22는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 메시지 암호키 운용을 위한 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 메시지 암호키 운용을 위한 시스템은 단말 기기(10), 네트워크 서버(20), 어플리케이션 서버(30) 및 키 관리 서버(100)를 포함할 수 있다.
단말 기기(10)는 메시지를 암호화 및 복호화하기 위한 인증용 키 페어 및 단말 식별 정보를 생성할 수 있다.
이 때, 단말 기기(10)는 네트워크 서버(20)가 정보 주입 프로그램을 이용하여 생성한 인증용 키 페어 및 단말 식별 정보를 제공받을 수도 있다.
정보 주입 프로그램은 인증용 키 페어 및 단말 식별 정보 등을 생성하여 단말 기기(10)에 주입하는 프로그램에 상응할 수 있다.
네트워크 서버(20)는 단말 기기(10)가 낮은 성능인 경우, 단말 기기(10)가 인증용 키 페어를 생성하기는 어려울 수 있으므로, 정보 주입 프로그램을 이용하여 인증용 키 페어 및 단말 식별 정보를 생성하여 단말 기기(10)에 주입할 수 있다.
키 관리 서버(Key Management Server, KMS)(100)는 암호키의 라이프사이클을 관리하는 전용 시스템으로, 암호키의 생성, 저장, 백업, 복구, 분배 및 파기 등의 기능을 제공할 수 있다.
키 관리 서버(100)는 메시지를 암호화 및 복호화하기 위한 검증용 키 페어 및 사전 공유키(Pre-Shared Key, PSK)를 생성할 수 있다.
이 때, 키 관리 서버(100)는 어플리케이션 서버(30)를 등록할 수 있다.
이 때, 단말 기기(10)는 키 관리 서버(100)로부터 검증용 키 페어의 검증용 공개키 및 사전 공유키를 제공 받을 수 있다.
이 때, 단말 기기(100)는 키 관리 서버(100)에 인증용 키 페어의 인증용 공개키 및 단말 식별 정보를 제공할 수 있다.
이 때, 단말 기기(10)는 인증용 키 페어의 인증용 개인키, 검증용 키 페어의 검증용 공개키, 단말 식별 정보 및 사전 공유키를 안전 영역에 저장할 수 있다.
또한, 키 관리 서버(100)는 단말 기기(10)로부터 인증용 키 페어의 인증용 공개키 및 단말 식별 정보를 제공 받을 수 있다.
이 때, 키 관리 서버(100)는 네트워크 서버(20)가 생성한 인증용 키 페어 및 단말 식별 정보를 제공받을 수도 있다.
이 때, 키 관리 서버(100)는 단말 기기(10)에 검증용 키 페어의 검증용 공개키 및 사전 공유키를 제공할 수 있다.
이 때, 키 관리 서버(100)는 인증용 키 페어의 인증용 공개키, 검증용 키 페어의 검증용 개인키, 단말 식별 정보 및 사전 공유키를 안전 영역에 저장할 수 있다.
이 때, 키 관리 서버(100)는 안전 영역에 저장된 인증용 키 페어의 인증용 공개키, 검증용 키 페어의 검증용 개인키 및 사전 공유키를 어플리케이션 서버(30)에 제공할 수 있다.
또한, 단말 기기(10)는 요청 메시지를 암호화하여 어플리케이션 서버(30)에 송신할 수 있다.
이 때, 단말 기기(10)는 어플리케이션 서버(30)로부터 요청 메시지에 대한 응답 메시지를 수신하여 검증 및 복호화 할 수 있다.
또한, 단말 기기(10)는 어플리케이션 서버(30)에 키 발급을 위한 키 발급 요청 메시지를 송신할 수 있다.
이 때, 단말 기기(10)는 어플리케이션 서버(30)로부터 키 발급 요청 메시지에 대한 키 발급 응답 메시지를 수신하여 검증 및 복호화 할 수 있다.
이 때, 단말 기기(10)는 키 발급 응답 메시지를 복호화하여 발급을 요청한 암호키를 획득할 수 있고, 암호키를 저장할 수 있다.
네트워크 서버(20)는 단말 기기(10)와 어플리케이션 서버(30) 사이에서 단말 기기(10)의 관리 및 유·무선 통신을 위한 서비스를 지원할 수 있다.
이 때, 네트워크 서버(20)는 단말 기기(10)와 어플리케이션 서버(30) 사이의 메시지 송수신을 중개할 수 있다.
이 때, 네트워크 서버(20)는 어플리케이션 서버(30)를 등록할 수 있다.
어플리케이션 서버(30)는 단말 기기(10)에서 생산된 데이터를 수집 및 요청 처리하고 사용자에게 서비스를 제공할 수 있다.
어플리케이션 서버(30)는 단말 기기(10)로부터 수신한 요청 메시지를 검증 및 복호화할 수 있다.
이 때, 어플리케이션 서버(30)는 단말 기기(10) 또는 네트워크 서버(20)로부터 단말 식별 정보를 제공받을 수 있다.
이 때, 어플리케이션 서버(30)는 단말 식별 정보를 이용하여 키 관리 서버(100)로부터 메시지 암호화 및 복호화에 필요한 인증용 공개키, 검증용 개인키 및 사전 공유키를 요청할 수 있다.
이 때, 어플리케이션 서버(30)는 요청 메시지에 대한 응답 메시지를 암호화하여 단말 기기(10)에 송신할 수 있다.
또한, 어플리케이션 서버(30)는 단말 기기(10)로부터 수신한 키 발급 요청 메시지를 검증 및 복호화할 수 있다.
이 때, 어플리케이션 서버(30)는 키 발급 요청에 대한 암호키 발급을 키 관리 서버(100)에 요청할 수 있다.
이 때, 어플리케이션 서버(30)는 키 관리 서버(100)로부터) 발급 받은 암호키를 수신하여 암호화한 키 발급 응답 메시지를 단말 기기(10)에 송신할 수 있다.
키 관리 서버(100)는 어플리케이션 서버(30)가 발급을 요청한 암호키를 생성하여 어플리케이션 서버(30)에 제공할 수 있다.
도 2는 본 발명의 일실시예에 따른 단말 기기를 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 단말 기기(10)는 단말 통신부(11), 단말 키 관리부(12) 및 단말 키 저장부(13)를 포함할 수 있다.
단말 통신부(11)는 메시지를 송수신 할 수 있다.
단말 키 관리부(12)는 단말 기기(10)는 메시지를 암호화 및 복호화하기 위한 인증용 키 페어 및 단말 식별 정보를 생성할 수 있다.
이 때, 단말 통신부(11)는 네트워크 서버(20)가 생성한 인증용 키 페어 및 단말 식별 정보를 제공받을 수도 있다.
이 때, 단말 통신부(11)는 키 관리 서버(100)로부터 검증용 키 페어의 검증용 공개키 및 사전 공유키를 제공 받을 수 있다.
이 때, 단말 통신부(11)는 키 관리 서버(100)에 인증용 키 페어의 인증용 공개키 및 단말 식별 정보를 제공할 수 있다.
또한, 단말 키 관리부(12)는 요청 메시지를 암호화하여 단말 통신부(11)를 통해 어플리케이션 서버(30)에 송신할 수 있다.
이 때, 단말 키 관리부(12)는 단말 통신부(11)를 통해 어플리케이션 서버(30)로부터 요청 메시지에 대한 응답 메시지를 수신하여 검증 및 복호화 할 수 있다.
이 때, 단말 키 관리부(11)는 키 발급을 위한 키 발급 요청 메시지를 생성하여 단말 통신부(11)를 통해 어플리케이션 서버(30)에 송신할 수 있다.
이 때, 단말 키 관리부(12)는 단말 통신부(11)를 통해 어플리케이션 서버(30)로부터 키 발급 요청 메시지에 대한 키 발급 응답 메시지를 수신하여 검증 및 복호화 할 수 있다.
이 때, 단말 키 관리부(12)는 키 발급 응답 메시지를 복호화하여 발급을 요청한 암호키를 획득할 수 있고, 암호키를 단말 키 저장부(13)의 안전 영역에 저장할 수 있다.
단말 키 저장부(13)는 안전 영역에 인증용 개인키, 검증용 공개키, 단말 식별 정보 및 사전 공유키를 저장할 수 있다.
도 3은 본 발명의 일실시예에 따른 어플리케이션 서버를 나타낸 블록도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 어플리케이션 서버(30)는 서버 통신부(31) 및 서버 암호화부(32)를 포함할 수 있다.
서버 통신부(31)는 메시지를 송수신 할 수 있다.
이 때, 서버 통신부(31)는 단말 기기(10) 또는 네트워크 서버(20)로부터 단말 식별 정보를 제공 받을 수 있다.
서버 암호화부(32)는 서버 통신부(31)를 통해 단말 기기(10)로부터 수신한 요청 메시지를 검증 및 복호화할 수 있다.
이 때, 서버 암호화부(32)는 서버 통신부(31)를 통해 단말 식별 정보를 이용하여 키 관리 서버(100)로부터 메시지 암호화 및 복호화에 필요한 인증용 공개키, 검증용 개인키 및 사전 공유키를 요청할 수 있다.
이 때, 서버 암호화부(32)는 요청 메시지에 대한 응답 메시지를 암호화하여 서버 통신부(31)를 통해 단말 기기(10)에 송신할 수 있다.
또한, 서버 암호화부(32)는 서버 통신부(31)를 통해 단말 기기(10)로부터 수신한 키 발급 요청 메시지를 검증 및 복호화할 수 있다.
이 때, 서버 암호화부(32)는 키 발급 요청에 대한 암호키 발급을 키 관리 서버(100)에 요청할 수 있다.
이 때, 서버 암호화부(32)는 서버 통신부(31)를 통해 키 관리 서버(100)로부터 발급 받은 암호키를 수신하여 암호화한 키 발급 응답 메시지를 단말 기기(10)에 송신할 수 있다.
도 4는 본 발명의 일실시예에 따른 키 관리 서버를 나타낸 블록도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 키 관리 서버(100)는 통신부(110), 키 관리부(120) 및 키 저장부(130)를 포함할 수 있다.
통신부(110)는 단말 기기(10)에 검증용 키 페어의 검증용 공개키 및 사전 공유키를 제공할 수 있다.
이 때, 통신부(100)는 단말 기기(10)로부터 인증용 키 페어의 인증용 공개키 및 단말 식별 정보를 제공 받을 수 있다.
이 때, 통신부(100)는 네트워크 서버(20)가 생성한 인증용 키 페어 및 단말 식별 정보를 제공받을 수도 있다.
키 관리부(120)는 메시지를 암호화 및 복호화하기 위한 검증용 키 페어 및 사전 공유키를 생성할 수 있다.
이 때, 키 관리부(120)는 어플리케이션 서버(30)를 등록할 수 있다.
이 때, 키 관리부(120)는 어플리케이션 서버(30)가 발급을 요청한 암호키를 생성하여 어플리케이션 서버(30)에 제공할 수 있다.
키 저장부(130)는 인증용 키 페어의 인증용 공개키, 검증용 키 페어의 검증용 개인키, 단말 식별 정보 및 사전 공유키를 안전 영역에 저장할 수 있다.
이 때, 키 관리부(120)는 안전 영역에 저장된 인증용 키 페어의 인증용 공개키, 검증용 키 페어의 검증용 개인키 및 사전 공유키를 어플리케이션 서버(30)에 제공할 수 있다.
도 5는 본 발명의 일실시예에 따른 키 저장 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 키 저장 과정에서의 메시지 암호키 운용을 위한 방법은 먼저 어플리케이션 서버(30)가 네트워크 서버(20) 및 키 관리 서버(100)에 등록을 요청할 수 있다(S210).
이 때, 단계(S210)는 네트워크 서버(20)와 키 관리 서버(100)가 어플리케이션 서버(30)를 등록할 수 있다.
단계(S220)는 네트워크 서버(20)가 정보 주입 프로그램을 이용하여 단말 기기(10)에 단말 식별 정보(Device Unique identifier)를 주입할 수 있다.
이 때, 단계(S220)는 단말 기기(10)의 출하 전에 단말 식별 정보를 오프라인 상으로 주입할 수도 있다.
이 때, 단계(S220)는 단말 기기(10)가 단말 식별 정보를 생성할 수도 있다.
단계(S230)는 네트워크 서버(20)가 정보 주입 프로그램을 이용하여 인증용 키 페어(인증용 공개키 및 인증용 개인키)를 생성할 수 있다.
이 때, 단계(S230)는 단말 기기(10)가 인증용 키 페어(인증용 공개키 및 인증용 개인키)를 생성할 수도 있다.
단계(S240)는 단말 기기(10) 또는 네트워크 서버(20)가 단말 식별 정보 및 인증용 공개키를 키 관리 서버(100)에 제공할 수 있다.
이 때, 단계(S240)는 단말 식별 정보 및 인증용 공개키를 키 관리 서버(100)에 온라인 또는 오프라인 상으로 등록 및 관리할 수 있다.
단계(S250)는 네트워크 서버(20)가 인증용 키 페어를 생성한 경우, 인증용 개인키를 오프라인 상으로 안전하게 단말 기기(10)에 주입할 수 있다.
단계(S260)는 키 관리 서버(100)가 검증용 키 페어(검증용 공개키 및 검증용 개인키) 및 사전 공유키(Pre-Shared Key, PSK)를 생성할 수 있다.
단계(S270)는 키 관리 서버(100)가 검증용 공개키 및 사전 공유키를 단말 기기(10)에 제공할 수 있다.
이 때, 단계(S270)는 네트워크 서버(20)가 제공하는 정보 주입 프로그램 또는 키 관리 서버(100)가 제공하는 정보 주입 프로그램을 이용하여 온라인 또는 오프라인 상으로 검증용 공개키 및 사전 공유키를 안전하게 단말 기기에 주입할 수 있다.
단계(S280)는 단말 기기(10)가 인증용 개인키, 검증용 공개키, 단말 식별 정보 및 사전 공유키를 단말 키 저장부(13)의 안전 영역에 주입 및 저장할 수 있다.
단계(S290)는 키 관리 서버(100)가 인증용 공개키, 검증용 개인키, 단말 식별 정보 및 사전 공유키를 키 저장부(130)의 안전 영역에 주입 및 저장할 수 있다.
관리주체
키 구분
단말 기기 키 관리 서버
인증용 키 개인키 공개키
검증용 키 공개키 개인키
표 1은 관리 주체에 따른 키 분류를 나타낸 것을 알 수 있다.
도 6은 본 발명의 일실시예에 따른 요청 메시지 암호화 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 요청 메시지 암호화 과정에서의 메시지 암호키 운용을 위한 방법은 먼저 단말 기기(10)가 인증용 개인키 및 검증용 공개키를 이용하여 제1 비밀키(Secret key, Sk)를 생성할 수 있다(S310).
단계(S310)는 단말 기기(10)가 디피-헬만 키 교환(Diffie-Hellman key exchange, DH) 방식을 이용하여 인증용 개인키 및 검증용 공개키로부터 제1 비밀키를 생성할 수 있다.
공개키를 이용한 디피-헬만 키 교환을 통한 비밀키 암호화는 기존 대칭키 암호화를 활용하면서 공개키를 사용하는 인증 및 안전한 키의 분배가 가능하다.
단계(S320)는 단말 기기(10)가 키 유도 함수(Key Derivation Function, KDF)를 이용하여 제1 비밀키 및 사전 공유키로부터 제1 암호키(ENCRYPT KEY) 및 제1 MAC 키(MAC KEY)를 생성할 수 있다.
이 때, 단계(S320)는 단말 기기(10)가 키 유도 함수의 반복 사용 횟수(i)를 메시지 헤더(42)에 설정할 수 있다.
단계(S330)는 단말 기기(10)가 제1 암호키를 이용하여 암호 알고리즘(ENCRYPT ALGORITHM)을 통해 요청 메시지(51)를 암호화한 암호화 메시지(ENCRYPTED MESSAGE)(52)를 생성할 수 있다.
단말 기기(10)가 송신하고자 하는 메시지는 단말 기기(10)에서 수집된 센서 데이터 또는 키 관리 요청 등 안전하게 전송되어야 할 메시지들이 대상이 될 수 있다. 메시지의 구조는 메시지 헤더(Message Header)(42)와 인증을 위한 MAC(메시지 인증 코드; Message Authentication Code) 정보(MAC 값) 그리고 전송할 데이터를 암호화한 메시지 바디(Message Body)로 구성될 수 있다.
암호 알고리즘은 단말 기기(10)에서 지원하고, 메시지(51)의 패킷 크기 및 암호 비도 등을 고려한 알맞은 알고리즘이 사용될 수 있다.
이 때, 단계(S330)는 단말 기기(10)가 제1 암호키로 대칭키 암호 알고리즘을 이용하여 요청 메시지(51)를 암호화할 수 있다.
단계(S340)는 단말 기기(10)가 제1 MAC 키를 이용하여 암호화 메시지(52), 단말 식별 정보(41) 및 암호화 메시지(52)의 메시지 헤더(42)를 MAC 알고리즘(MAC ALGORITHM)을 통해 MAC(Message Authentication Code) 연산하여 제1 MAC 값을 산출할 수 있다.
MAC 알고리즘은 다양한 상황을 고려한 알고리즘이 사용될 수 있다.
단계(S350)는 단말 기기(10)가 어플리케이션 서버(30)에 메시지 헤더(42)와 함께 제1 MAC 값이 포함된 암호화 메시지(52)를 전송할 수 있다.
도 7은 본 발명의 일실시예에 따른 요청 메시지 복호화 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 요청 메시지 복호화 과정에서의 메시지 암호키 운용을 위한 방법은 먼저 어플리케이션 서버(30)가 키 관리 서버(100)에 로그인 할 수 있다(S410).
단계(S410)는 키 관리 서버(100)에 로그인 하기 이전에, 단말 기기(10) 또는 네트워크 서버(30)로부터 단말 식별 정보(41)를 제공 받을 수 있고, 단말 기기(10)로부터 암호화 메시지(52)를 수신할 수 있다.
단계(S420)는 어플리케이션 서버(30)가 키 관리 서버(100)에 단말 식별 정보(41)에 상응하는 인증용 공개키, 검증용 개인키 및 사전 공유키를 요청할 수 있다.
단계(S430)는 어플리케이션 서버(30)의 키 발급 요청에 따라, 단말 식별 정보에 상응하는 인증용 공개키, 검증용 개인키 및 사전 공유키를 제공할 수 있다.
단계(S440)는 어플리케이션 서버(30)가 인증용 공개키 및 검증용 개인키를 이용하여 제2 비밀키(Secret key, Sk)를 생성할 수 있다.
이 때, 단계(S440)는 어플리케이션 서버(30)가 디피-헬만 키 교환 방식(Diffie-Hellman key exchange, DH)을 이용하여 인증용 공개키 및 검증용 개인키로부터 제2 비밀키를 생성할 수 있다.
단계(S450)는 어플리케이션 서버(30)가 키 유도 함수(Key Derivation Function, KDF)를 이용하여 제2 비밀키 및 사전 공유키로부터 제2 암호키(ENCRYPT KEY) 및 제2 MAC 키(MAC KEY)를 생성할 수 있다.
이 때, 단계(S450)는 키 유도 함수 사용을 위해 메시지 헤더(42)에 설정된 키 유도 함수의 반복 사용 횟수(i)를 참조할 수 있다.
단계(S460)는 어플리케이션 서버(30)가 제2 MAC 키를 이용하여 단말 기기(10)로부터 수신한 암호화 메시지(52), 단말 식별 정보(41) 및 상기 암호화 메시지(52)의 메시지 헤더(42)를 MAC 알고리즘(MAC ALGORITHM)을 통해 MAC(Message Authentication Code) 연산하여 제2 MAC 값을 산출할 수 있다.
단계(S470)는 어플리케이션 서버(30)가 단말 기기(10)로부터 수신한 제1 MAC 값과 제2 MAC 값을 비교하여 암호화 메시지(52)를 검증할 수 있다.
이 때, 단계(S470)는 어플리케이션 서버(30)가 제1 MAC 값과 제2 MAC 값의 무결성 검증을 수행한 결과가 실패인 경우, 에러 메시지를 출력하고, 암호화 메시지(52)의 복호화를 수행하지 않을 수 있다.
단계(S480)는 어플리케이션 서버(30)가 제1 MAC 값과 제2 MAC 값의 무결성 검증을 수행한 결과가 성공인 경우, 암호화 메시지(52)의 검증이 성공인 것으로 판단할 수 있고, 제2 암호키를 이용하여 암호화 메시지(52)를 복호화할 수 있다.
이 때, 단계(S480)는 복호화한 단말 기기(10)의 요청 메시지(51)를 확인할 수 있다.
도 8은 본 발명의 일실시예에 따른 응답 메시지 암호화 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 응답 메시지 암호화 과정에서의 메시지 암호키 운용을 위한 방법은 먼저 어플리케이션 서버(30)가 키 관리 서버(100)에 로그인 할 수 있다(S510).
단계(S510)는 키 관리 서버(100)에 로그인 하기 이전에, 단말 기기(10) 또는 네트워크 서버(30)로부터 단말 식별 정보(41)를 제공 받을 수 있다.
단계(S520)는 어플리케이션 서버(30)가 키 관리 서버(100)에 단말 식별 정보(41)에 상응하는 인증용 공개키, 검증용 개인키 및 사전 공유키를 요청할 수 있다.
단계(S530)는 어플리케이션 서버(30)의 키 발급 요청에 따라, 단말 식별 정보에 상응하는 인증용 공개키, 검증용 개인키 및 사전 공유키를 제공할 수 있다.
단계(S540)는 어플리케이션 서버(30)가 인증용 공개키 및 검증용 개인키를 이용하여 제3 비밀키(Secret key, Sk)를 생성할 수 있다.
이 때, 단계(S540)는 어플리케이션 서버(30)가 디피-헬만 키 교환 방식(Diffie-Hellman key exchange, DH)을 이용하여 인증용 공개키 및 검증용 개인키로부터 제3 비밀키를 생성할 수 있다.
단계(S550)는 어플리케이션 서버(30)가 키 유도 함수(Key Derivation Function, KDF)를 이용하여 제3 비밀키 및 사전 공유키로부터 제3 암호키(ENCRYPT KEY) 및 제3 MAC 키(MAC KEY)를 생성할 수 있다.
이 때, 단계(S550)는 어플리케이션 서버(30)가 키 유도 함수의 반복 사용 횟수(i)를 메시지 헤더(42)에 설정할 수 있다.
단계(S560)는 어플리케이션 서버(30)가 제3 암호키를 이용하여 암호 알고리즘(ENCRYPT ALGORITHM)을 통해 응답 메시지(51)를 암호화한 암호화 메시지(ENCRYPTED MESSAGE)(52)를 생성할 수 있다.
이 때, 단계(S560)는 어플리케이션 서버(30)가 제3 암호키로 대칭키 암호 알고리즘을 이용하여 응답 메시지(51)를 암호화할 수 있다.
단계(S570)는 어플리케이션 서버(30)가 제3 MAC 키를 이용하여 암호화 메시지(52), 단말 식별 정보(41) 및 암호화 메시지(52)의 메시지 헤더(42)를 MAC 알고리즘(MAC ALGORITHM)을 통해 MAC(Message Authentication Code) 연산하여 제3 MAC 값을 산출할 수 있다.
단계(S580)는 어플리케이션 서버(30)가 단말 기기(10)에 메시지 헤더(42)와 함께 제3 MAC 값이 포함된 암호화 메시지(52)를 전송할 수 있다.
도 9는 본 발명의 일실시예에 따른 응답 메시지 복호화 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 9를 참조하면, 본 발명의 일실시예에 따른 응답 메시지 복호화 과정에서의 메시지 암호키 운용을 위한 방법은 먼저 단말 기기(10)가 어플리케이션 서버(30)로부터 응답 메시지(51)를 암호화한 암호화 메시지(52)를 수신할 수 있다(S610).
단계(S610)는 단말 기기(10)가 인증용 개인키 및 검증용 공개키를 이용하여 제4 비밀키(Secret key, Sk)를 생성할 수 있다.
이 때, 단계(S610)는 단말 기기(10)가 디피-헬만 키 교환 방식(Diffie-Hellman key exchange, DH)을 이용하여 인증용 개인키 및 검증용 공개키로부터 제4 비밀키를 생성할 수 있다.
단계(S620)는 단말 기기(10)가 키 유도 함수(Key Derivation Function, KDF)를 이용하여 제4 비밀키 및 사전 공유키로부터 제4 암호키(ENCRYPT KEY) 및 제4 MAC 키(MAC KEY)를 생성할 수 있다.
이 때, 단계(S620)는 키 유도 함수 사용을 위해 메시지 헤더(42)에 설정된 키 유도 함수의 반복 사용 횟수(i)를 참조할 수 있다.
단계(S630)는 단말 기기(10)가 제4 MAC 키를 이용하여 어플리케이션 서버(30)로부터 수신한 암호화 메시지(52), 단말 식별 정보(41) 및 상기 암호화 메시지(52)의 메시지 헤더(42)를 MAC 알고리즘(MAC ALGORITHM)을 통해 MAC(Message Authentication Code) 연산하여 제4 MAC 값을 산출할 수 있다.
단계(S640)는 단말 기기(10)가 어플리케이션 서버(30)로부터 수신한 제3 MAC 값과 제4 MAC 값을 비교하여 암호화 메시지(52)를 검증할 수 있다.
이 때, 단계(S640)는 단말 기기(10)가 제3 MAC 값과 제4 MAC 값의 무결성 검증을 수행한 결과가 실패인 경우, 에러 메시지를 출력하고, 암호화 메시지(52)의 복호화를 수행하지 않을 수 있다.
단계(S650)는 단말 기기(10)가 제3 MAC 값과 제4 MAC 값의 무결성 검증을 수행한 결과가 성공인 경우, 암호화 메시지(52)의 검증이 성공인 것으로 판단할 수 있고, 제4 암호키를 이용하여 암호화 메시지(52)를 복호화할 수 있다.
이 때, 단계(S650)는 복호화한 어플리케이션 서버(30)의 응답 메시지(51)를 확인할 수 있다.
도 10은 본 발명의 일실시예에 따른 암호화 메시지의 구성를 나타낸 도면이다. 도 11 내지 13은 본 발명의 일실시예에 따른 니블 넘버(Nibble Number)로 숫자들을 나타낸 도면이다.
도 10을 참조하면, 본 발명의 일실시예에 따른 복호화된 암호화 메시지(ENCRYPTED MESSAGE)는 패딩이 존재할 경우, 패딩(PADDING)과 원본 데이터(PLAINTEXT)로 구성되는 것을 알 수 있다.
메시지의 블럭 암호화 시 암호 블럭 크기의 배수가 되어야 하는데, 배수가 되지 않는 경우, 배수에 맞게 데이터의 앞 또는 뒤에 패딩을 추가하여 블럭 크기의 배수로 맞게 처리하여 암호화할 수 있다.
이 때, 패딩은 랜덤 니블(RANDOM NIBBLE, 4bit), 패딩 길이 정보(LENGTH OF PADDING) 및 랜덤 패딩(RANDOM PADDING)를 포함할 수 있다.
패딩 길이 정보는 도 11 내지 도 13에 도시된 니블 넘버(NIBBLE NUMBER) 형태에 상응할 수 있다.
니블 넘버는 숫자값을 4bit 단위로 표현한 것이며, 0 ~ 7까지의 숫자를 4bit에 표현할 수 있다. 니블 넘버의 첫번째 비트가 0이고, 8이상의 숫자는 첫번째 비트가 1이며, 두번째, 세번째, 네번째 비트는 숫자를 표현을 위한 Nibble(4bit)의 갯수를 의미할 수 있다.
니블 넘버는 최대 7개의 니블(Nibble)을 사용할 수 있고, 0부터 268,435,456까지 숫자를 표현할 수 있다. 니블 넘버는 작은 숫자(0~7)의 사용 빈도가 높을 경우 저장 공간을 줄일 수 있어 효율적이다.
도 11을 참조하면, 숫자 6을 표현 하는 경우의 니블 넘버를 나타낸 것을 알 수 있고, 도 12를 참조하면, 숫자 30을 표현하는 경우의 니블 넘버를 나타낸 것을 알 수 있고, 도 13을 참조하면, 숫자 425를 표현하는 경우의 니블 넘버를 나타낸 것을 알 수 있다.
다시 도 10을 참조하면, 패딩의 처리는 패딩의 첫 4bit가 랜덤한 패딩인 랜덤 니블(Random Nibble, 4bit)이며, 다음 4bit 또는 8bit는 페딩 길이 정보(Length of Padding)일 수 있다. 패딩의 길이는 암호 메시지에서 패딩의 길이를 상응할 수 있으므로, 복호화된 암호화 메시지에서 패딩 길이 정보의 다음 bit부터 끝까지의 데이터가 원본 메시지 데이터(PLAINTEXT)에 상응할 수 있다
다만, 복호화되지 않은 암호화 메시지에서는 패딩 여부를 알 수 없다.
도 14는 본 발명의 일실시예에 따른 암호 데이터의 패딩 여부에 따른 MAC Xor 연산 과정을 나타낸 동작흐름도이다.
도 14를 참조하면, 본 발명의 일실시예에 따른 암호 데이터의 패딩 여부에 따른 MAC Xor 연산 과정은 먼저, 메시지 암호화 시, 메시지에 패딩이 존재하는 지 여부를 확인할 수 있다(S710).
이 때, 단계(S710)는 메시지에 패딩이 존재하는 경우, MAC = MAC Xor 1의 Xor 연산을 수행할 수 있고(S720), 메시지에 패딩이 존재하지 않는 경우, MAC= MAC Xor 0의 Xor 연산(S730)을 수행할 수 있다.
도 14에 도시된 MAC Xor 연산 과정은 도 6의 단계(S330), 단계(S340) 및 도 8의 단계(S560), 단계(S570)의 암호화 메시지 생성 과정에서 수행될 수 있다.
도 15는 본 발명의 일실시예에 따른 MAC 검증 시 암호 데이터의 패딩 여부 확인 과정을 나타낸 동작흐름도이다.
도 15를 참조하면, 본 발명의 일실시예에 따른 MAC 검증 시 암호 데이터의 패딩 여부 확인 과정은 먼저 피검증 대상의 제1 MAC 값(MAC(1))과 수신한 메시지에 포함된 제2 MAC 값(MAC(2))의 Xor 연산을 수행할 수 있다(S810).
단계(S820)는 단계(S810)에서 메시지의 Xor 연산 수행 결과가 0 또는 1이 아닌 경우, 에러 메시지로 판단하여 에러를 출력할 수 있고(S830), 메시지의 Xor 연산 수행 결과가 0 또는 1인 경우, 메시지의 패딩 여부를 확인할 수 있다(S840).
단계(S840)는 메시지의 Xor 연산 수행 결과가 1인 경우, 메시지에 패딩이 포함된 것으로 확인할 수 있고(S850), 메시지의 Xor 연산 수행 결과가 0인 경우, 메시지에 패딩이 포함되지 않은 것으로 확인할 수 있다(S860).
단계(S850)는 메시지에 패딩이 포함되어 있으므로, 메시지 복호화후 패딩에 관련한 처리를 요청할 수 있다.
도 15에 도시된 패딩 여부 확인 과정은 도 7의 단계(S470) 및 도 9의 단계(S640)의 MAC 검증 과정에서 수행될 수 있다.
본 발명의 일실시예에 따른 단말 기기(10) 및 어플리케이션 서버(30)는 디피-헬만 키 교환(DH) 방식을 이용하여 인증용 키 페어 및 검증용 키 페어로부터 비밀키(Sk)를 생성할 수 있고, 사전 공유키(PSK)와 함께 KDF로 암호키와 MAC 키를 생성할 수 있고, 암호키와 MAC 키를 이용하여 메시지를 암호화한 암호화 메시지를 생성할 수 있다. 이 때, 암호화 메시지의 크기는 암호화 알고리즘과 MAC 알고리즘에 따라 메시지의 크기가 결정될 수 있다.
무선망 환경에서 메시지의 크기는 패킷 손실률과 비례적인 관계를 가지고 있어 메시지의 크기가 클수록 패킷의 손실률도 커질 수 있다.
암호화 알고리즘과 MAC 알고리즘에 따른 메시지 크기는 표 2 및 표 3과 같이 나타낼 수 있다.
Crypto MAC
Algorithm Size of Block
(byte)
Algorithm Size of MAC (byte)
TripleDES 8 MD5 16
AES 16 SHA1 20
ARIA 16 SHA256 32
SEED 16
LEA 16
Crypto MAC 원본 데이터 크기
(byte)
메시지 크기
(byte)
TripleDES MD5 8 24
16 32
32 48
AES, ARIA,
SEED, LEA
SHA1 16 36
32 52
SHA256 16 48
32 64
표 2 및, 표 3을 참조하면, 원본 데이터 크기가 8byte를 기준으로 메시지의 크기는 최소 24byte 인 것을 알 수 있고, 원본 데이터의 크기가 16byte 기준으로 메시지의 크기가 32byte에서 최대 48byte 인 것을 알 수 있다(단, 암호화 운영모드 NoPadding이며, 메시지 크기에서 헤더는 제외되었다.).
AES 암호화 알고리즘과 HMAC-SHA1을 사용할 경우 요청 데이터의 크기가 15byte이라면, 암호 블럭 크기가 16byte와 HMAC-SHA1의 크기 20byte로 암호화 요청 메시지의 크기는 총 36byte 인 것을 알 수 있다. 동일한 암호화 알고리즘으로 응답 데이터 크기가 32byte는 NoPadding 방식의 운영모드일 경우 암호화 응답 메시지는 총 52byte가 될 수 있다.
도 16은 본 발명의 일실시예에 따른 메시지 헤더의 구조와 KDF 호출 시 인자 설정을 나타낸 도면이다.
도 16을 참조하면, 본 발명의 일실시예에 따른 메시지 헤더(42)는 VERSION, OPCODE, PSK ID, NUMBER OF ITERATION, LENGTH OF MAC, LENGTH OF ENCRYPTED 를 포함할 수 있다.
메시지 헤더(42)의 구조는 표 4와 같이 나타낼 수 있다.
구 분 크기(bit) 설 명
Version 4 메시지 버전( 0, 1 )
OpCode 4 수행 명령의 코드 값
PSK ID 8 PSK가 복수개 일 경우 해당 기기의 PSK 식별 고유 값
Number of Iteration 8 KDF 함수 호출의 Iteration 값(값 단위 32)
Length of MAC 4 최소값은 0이며, MAC 데이터의 길이(값 단위 4byte)
Length of Encrypted 4 최소값은 0이며, 암호 데이터의 길이(값 단위 8byte)
Padding 0 ~ 4 헤더 크기(bit)가 8의 배수가 되도록 한다.
본 발명의 일실시예에 따른 OPCODE는 표 5과 같이 나타낼 수 있다.
Version OpCode 수행명령 설 명
0 0000(2) NOP No Operation
0 0001(2) Create 암호키 생성
0 0010(2) Register 암호키 등록
0 0011(2) Re-Key 암호키 갱신
0 0100(2) Revoke 암호키 폐기
0 0000(2) Encrypted 암호화 데이터로 첫번째 비트가 0인 경우
0 1000(2) Non-encryption 비암호화 데이터로 첫번째 비트가 1인 경우
1 0000(2) NOP No Operation
1 0001(2) Cretae 암호키 생성
1 0010(2) Register 암호키 등록
1 0011(2) Re-Key 기존 대칭키의 대체키 생성
1 0100(2) Derive 암호키 파생
1 0101(2) Activate 암호키 활성화
1 0110(2) Locate 암호키 조회
1 0111(2) Check 암호키 검사
1 1000(2) Get 암호키 획득
1 1001(2) Get Attributes 속성 가져오기
1 1010(2) Add Attribute 속성 추가
1 1011(2) Modify Attribute 속성 수정
1 1100(2) Delete Attribute 속성 삭제
1 1101(2) Revoke 암호키 폐기
1 1110(2) Archive 암호키를 사용하지 못하도록 다른 저장소에 보관
1 1111(2) Recover Archive된 암호키를 복구
본 발명의 일실시예에 따른 PSK ID는 PSK가 복수개 일 경우 해당 기기의 PSK 식별 고유 값으로 KDF 호출 시 PSK가 선택적으로 사용될 수 있다. PSK 식별 고유 값은 키 관리 서버(100)가 발급할 수 있고, 키 발급 또는 갱신 시 PSK ID가 생성된다. PSK는 해당 기기에 대한 PSK 식별 고유 값으로 다른 기기의 PSK ID와 중복 될 수 있다.
단말 기기(10)는 키 관리 서버(100)에 의해서 최초 PSK가 1개가 주입될 수 있다. 이후, 단말 기기(10)는 키 관리 서버(100)에 직·간접적으로 키를 요청 할 수도 있다. 키의 요청은 생성(Create, Re-Key) 일 수도 있고 등록(Register)일 수도 있다. 이 때, 암호키는 PSK로 다수 개가 존재할 수도 있다. 또한, 키 관리 서버(100)는 PSK를 사전에 여러 개를 생성해서 무작위로 사용 할 수도 있다.
본 발명의 일실시예에 따른 단말 기기(10) 및 어플리케이션 서버(30)는 메시지 암호화를 위한 KDF 호출 시 반복 횟수(Number of Iteration, i)의 인자를 메시지 헤더(42)에 설정할 수 있다.
이 때, 반복 횟수(i)는 최소 1024회 이상이 권장될 수 있으며, 매회 호출 시 랜덤으로 생성한 32배수의 반복 횟수 값이 KDF 호출 시 인자로 설정될 수 있다.
설정된 반복 횟수는 헤더에 32를 나눈값으로 설정될 수 있고, 헤더의 반복 횟수 값(Number of Iteration)에 32를 곱한 값을 KDF 호출 시 인자로 설정될 수도 있다.
본 발명의 일실시예에 따른 Length of MAC 은 MAC의 길이 값에 상응할 수 있다. Length of MAC 의 최소값은 0이며, 값 1은 MAC의 길이가 4byte를 의미하며, 니블 넘버(Nibble Number) 형태로 표현될 수 있다.
본 발명의 일실시예에 따른 Length of Encrypted 는 암호화 메시지의 길이 값에 상응할 수 있다. Length of Encrypted 의 최소값은 0이며, 값 1은 암호화 메시지의 길이가 8byte를 의미하며, 니블 넘버(Nibble Number) 형태로 표현될 수 있다.
즉, 본 발명의 일실시예에 따른 단말 기기(10) 및 어플리케이션 서버(30)는 메시지 헤더의 VERSION 및 OPCODE의 수행 명령 설정에 따라, 메시지를 통해서 수행 명령을 요청, 검증 및 응답할 수 있다.
본 발명의 일실시예에 따라 도 17 내지 도 21에서는 단말 기기(10)가 어플리케이션 서버(30)에 키 발급을 요청, 검증, 응답하고 발급 요청한 암호키를 저장하는 수행 명령을 처리하는 과정을 상세히 설명한다.
도 17은 본 발명의 일실시예에 따른 키 발급 요청 메시지 생성 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 17을 참조하면, 본 발명의 일실시예에 따른 키 발급 요청 메시지 생성 과정에서의 메시지 암호키 운용을 위한 방법은 먼저 단말 기기(10)가 인증용 개인키 및 검증용 공개키를 이용하여 제1 비밀키(Secret key, Sk)를 생성할 수 있다(S910).
단계(S910)는 단말 기기(10)가 디피-헬만 키 교환(Diffie-Hellman key exchange, DH) 방식을 이용하여 인증용 개인키 및 검증용 공개키로부터 제1 비밀키를 생성할 수 있다.
단계(S920)는 단말 기기(10)가 키 유도 함수(Key Derivation Function, KDF)를 이용하여 제1 비밀키 및 사전 공유키로부터 제1 암호키(ENCRYPT KEY) 및 제1 MAC 키(MAC KEY)를 생성할 수 있다.
이 때, 단계(S920)는 단말 기기(10)가 키 유도 함수의 반복 사용 횟수(i)를 메시지 헤더(42)에 설정할 수 있다.
이 때, 단계(S920)는 메시지 헤더(42)에 VERSION 과 OPCODE를 설정하여 요청하고자 하는 수행 명령을 설정할 수 있다.
이 때, 단계(S920)는 키 발급 요청을 위해 메시지 헤더(42)의 VERSION은 0으로 설정할 수 있고, OPCODE는 2:CREATE 로 설정할 수 있다.
단계(S930)는 암호화 메시지가 없어 별도의 암호 처리는 생략될 수 있다.
단계(S940)는 단말 기기(10)가 제1 MAC 키를 이용하여 단말 식별 정보(41) 및 메시지 헤더(42)를 MAC 알고리즘(MAC ALGORITHM)을 통해 MAC(Message Authentication Code) 연산하여 제1 MAC 값을 산출할 수 있다.
이 때, 단계(S940)는 도 14에서 설명한 MAC Xor 연산 과정을 수행할 수 도 있다.
단계(S950)는 단말 기기(10)가 어플리케이션 서버(30)에 메시지 헤더(42)와 함께 제1 MAC 값이 포함된 키 발급 요청 메시지(53)를 전송할 수 있다.
도 18은 본 발명의 일실시예에 따른 키 발급 요청 메시지 검증 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 18을 참조하면, 본 발명의 일실시예에 따른 키 발급 요청 메시지 검증 과정에서의 메시지 암호키 운용을 위한 방법은 먼저 어플리케이션 서버(30)가 키 관리 서버(100)에 로그인 할 수 있다(S1010).
단계(S1010)는 키 관리 서버(100)에 로그인 하기 이전에, 단말 기기(10) 또는 네트워크 서버(30)로부터 단말 식별 정보(41)를 제공 받을 수 있고, 단말 기기(10)로부터 키 발급 요청 메시지(53)를 수신할 수 있다.
단계(S1020)는 어플리케이션 서버(30)가 키 관리 서버(100)에 단말 식별 정보(41)에 상응하는 인증용 공개키, 검증용 개인키 및 사전 공유키를 요청할 수 있다.
단계(S1030)는 어플리케이션 서버(30)의 키 발급 요청에 따라, 단말 식별 정보에 상응하는 인증용 공개키, 검증용 개인키 및 사전 공유키를 제공할 수 있다.
단계(S1040)는 어플리케이션 서버(30)가 인증용 공개키 및 검증용 개인키를 이용하여 제2 비밀키(Secret key, Sk)를 생성할 수 있다.
이 때, 단계(S1040)는 어플리케이션 서버(30)가 디피-헬만 키 교환 방식(Diffie-Hellman key exchange, DH)을 이용하여 인증용 공개키 및 검증용 개인키로부터 제2 비밀키를 생성할 수 있다.
단계(S1050)는 어플리케이션 서버(30)가 키 유도 함수(Key Derivation Function, KDF)를 이용하여 제2 비밀키 및 사전 공유키로부터 제2 암호키(ENCRYPT KEY) 및 제2 MAC 키(MAC KEY)를 생성할 수 있다.
이 때, 단계(S1050)는 키 유도 함수 사용을 위해 메시지 헤더(42)에 설정된 키 유도 함수의 반복 사용 횟수(i)를 참조할 수 있다.
이 때, 단계(S1050)는 메시지 헤더(42)에 설정된 VERSION 과 OPCODE를 확인할 수 있다.
이 때, 단계(S1050)는 메시지 헤더(42)에 설정된 VERSION 과 OPCODE를 확인하여 단말 기기(10)가 요청한 수행 명령을 확인할 수 있다.
이 때, 단계(S1050)는 메시지 헤더(42)에 VERSION은 0, OPCODE는 2:CREATE 로 설정된 것을 확인하고, 메시지가 키 발급 요청 메시지인 것을 확인할 수 있다.
단계(S1060)는 어플리케이션 서버(30)가 제2 MAC 키를 이용하여 단말 기기(10)로부터 수신한 키 발급 요청 메시지(53), 단말 식별 정보(41) 및 상기 키 발급 요청 메시지(53)의 메시지 헤더(42)를 MAC 알고리즘(MAC ALGORITHM)을 통해 MAC(Message Authentication Code) 연산하여 제2 MAC 값을 산출할 수 있다.
단계(S1070)는 어플리케이션 서버(30)가 단말 기기(10)로부터 수신한 제1 MAC 값과 제2 MAC 값을 비교하여 키 발급 요청 메시지(53)를 검증할 수 있다.
이 때, 단계(S1070)는 어플리케이션 서버(30)가 제1 MAC 값과 제2 MAC 값의 무결성 검증을 수행한 결과가 실패인 경우, 에러 메시지를 출력할 수 있다.
이 때, 단계(S1070)는 도 15에서 설명한 패딩 여부 확인 과정을 수행할 수도 있다.
단계(S1080)는 어플리케이션 서버(30)가 제1 MAC 값과 제2 MAC 값의 무결성 검증을 수행한 결과가 성공인 경우, 키 발급 요청 메시지(53)의 검증이 성공인 것으로 판단할 수 있고, 키 발급 요청을 수행할 수 있다.
도 19는 본 발명의 일실시예에 따른 키 발급 응답 메시지 생성 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 19를 참조하면, 본 발명의 일실시예에 따른 키 발급 응답 메시지 생성 과정에서의 메시지 암호키 운용을 위한 방법은 먼저 어플리케이션 서버(30)가 키 관리 서버(100)에 로그인 할 수 있다(S1110).
단계(S1110)는 키 관리 서버(100)에 로그인 하기 이전에, 단말 기기(10) 또는 네트워크 서버(30)로부터 단말 식별 정보(41)를 제공 받을 수 있다.
단계(S1120)는 어플리케이션 서버(30)가 키 관리 서버(100)에 발급 요청 암호키, 단말 식별 정보(41)에 상응하는 인증용 공개키, 검증용 개인키 및 사전 공유키를 요청할 수 있다.
단계(S1130)는 어플리케이션 서버(30)의 키 발급 요청에 따라, 발급 요청 암호키를 생성할 수 있다.
단계(S1140)는 어플리케이션 서버(30)의 키 발급 요청에 따라, 발급 요청 암호키, 단말 식별 정보에 상응하는 인증용 공개키, 검증용 개인키 및 사전 공유키를 제공할 수 있다.
단계(S1150)는 어플리케이션 서버(30)가 인증용 공개키 및 검증용 개인키를 이용하여 제3 비밀키(Secret key, Sk)를 생성할 수 있다.
이 때, 단계(S1150)는 어플리케이션 서버(30)가 디피-헬만 키 교환 방식(Diffie-Hellman key exchange, DH)을 이용하여 인증용 공개키 및 검증용 개인키로부터 제3 비밀키를 생성할 수 있다.
단계(S1160)는 어플리케이션 서버(30)가 키 유도 함수(Key Derivation Function, KDF)를 이용하여 제3 비밀키 및 사전 공유키로부터 제3 암호키(ENCRYPT KEY) 및 제3 MAC 키(MAC KEY)를 생성할 수 있다.
이 때, 단계(S1160)는 어플리케이션 서버(30)가 키 유도 함수의 반복 사용 횟수(i)를 메시지 헤더(42)에 설정할 수 있다.
이 때, 단계(S1160)는 메시지 헤더(42)에 VERSION 과 OPCODE를 설정하여 요청하고자 하는 수행 명령을 설정할 수 있다.
이 때, 단계(S1160)는 키 발급 요청을 위해 메시지 헤더(42)의 VERSION은 0으로 설정할 수 있고, OPCODE는 2:CREATE 로 설정할 수 있다.
단계(S1170)는 어플리케이션 서버(30)가 제3 MAC 키를 이용하여 발급 요청 암호키, 단말 식별 정보(41) 및 메시지 헤더(42)를 MAC 알고리즘(MAC ALGORITHM)을 통해 MAC(Message Authentication Code) 연산하여 제3 MAC 값을 산출할 수 있다.
단계(S1180)는 어플리케이션 서버(30)가 제3 암호키를 이용하여 암호 알고리즘(ENCRYPT ALGORITHM)을 통해 발급 요청 암호키를 암호화한 키 발급 응답 메시지(52)를 생성할 수 있다.
이 때, 단계(S1180)는 어플리케이션 서버(30)가 제3 암호키로 대칭키 암호 알고리즘을 이용하여 발급 요청 암호키를 암호화할 수 있다.
이 때, 단계(S1180)는 어플리케이션 서버(30)가 단말 기기(10)에 메시지 헤더(42), 제3 MAC 값 및 발급 요청 암호키가 포함된 키 발급 응답 메시지(52)를 전송할 수 있다.
도 20은 본 발명의 일실시예에 따른 키 발급 응답 메시지 검증 및 암호키 저장 과정에서의 메시지 암호키 운용을 위한 방법을 나타낸 시퀀스 다이어그램이다.
도 20을 참조하면, 본 발명의 일실시예에 따른 키 발급 응답 메시지 검증 및 암호키 저장 과정에서의 메시지 암호키 운용을 위한 방법은 먼저 단말 기기(10)가 어플리케이션 서버(30)로부터 발급 요청 암호키를 암호화한 키 발급 응답 메시지(52)를 수신할 수 있다(S1210).
단계(1210)는 단말 기기(10)가 인증용 개인키 및 검증용 공개키를 이용하여 제4 비밀키(Secret key, Sk)를 생성할 수 있다.
이 때, 단계(S1210)는 단말 기기(10)가 디피-헬만 키 교환 방식(Diffie-Hellman key exchange, DH)을 이용하여 인증용 개인키 및 검증용 공개키로부터 제4 비밀키를 생성할 수 있다.
단계(S1220)는 단말 기기(10)가 키 유도 함수(Key Derivation Function, KDF)를 이용하여 제4 비밀키 및 사전 공유키로부터 제4 암호키(ENCRYPT KEY) 및 제4 MAC 키(MAC KEY)를 생성할 수 있다.
이 때, 단계(S1220)는 키 유도 함수 사용을 위해 메시지 헤더(42)에 설정된 키 유도 함수의 반복 사용 횟수(i)를 참조할 수 있다.
이 때, 단계(S1220)는 메시지 헤더(42)에 설정된 VERSION 과 OPCODE를 확인할 수 있다.
이 때, 단계(S1220)는 메시지 헤더(42)에 설정된 VERSION 과 OPCODE를 확인하여 단말 기기(10)가 요청한 수행 명령을 확인할 수 있다.
이 때, 단계(S1220)는 메시지 헤더(42)에 VERSION은 0, OPCODE는 2:CREATE 로 설정된 것을 확인하고, 메시지가 키 발급 요청 메시지에 대한 키 발급 응답 메시지인 것을 확인할 수 있다.
단계(S1230)는 단말 기기(10)가 제4 MAC 키를 이용하여 어플리케이션 서버(30)로부터 수신한 키 발급 응답 메시지(52), 단말 식별 정보(41) 및 상기 키 발급 응답 메시지(52)의 메시지 헤더(42)를 MAC 알고리즘(MAC ALGORITHM)을 통해 MAC(Message Authentication Code) 연산하여 제4 MAC 값을 산출할 수 있다.
단계(S1240)는 단말 기기(10)가 어플리케이션 서버(30)로부터 수신한 제3 MAC 값과 제4 MAC 값을 비교하여 암호화 메시지(52)를 검증할 수 있다.
이 때, 단계(S1240)는 단말 기기(10)가 제3 MAC 값과 제4 MAC 값의 무결성 검증을 수행한 결과가 실패인 경우, 에러 메시지를 출력할 수 있다.
이 때, 단계(S1240)는 도 15에서 설명한 패딩 여부 확인 과정을 수행할 수도 있다.
단계(S1250)는 단말 기기(10)가 제3 MAC 값과 제4 MAC 값의 무결성 검증을 수행한 결과가 성공인 경우, 키 발급 응답 메시지(52)의 검증이 성공인 것으로 판단할 수 있고, 제4 암호키를 이용하여 키 발급 응답 메시지(52)를 복호화할 수 있다.
이 때, 단계(S1250)는 키 발급 응답 메시지(52)를 복호화하여 발급 요청 암호키(61)를 획득 할 수 있고, 발급 요청 암호키(61)를 단말 키 저장부(13)의 안전 영역의 사전 공유키 식별자를 지정하여 PSK POOL에 저장할 수 있다.
도 21은 본 발명의 일실시예에 따른 PSK를 메시지 헤더에 설정하는 것을 나타낸 도면이다.
도 21을 참조하면, 본 발명의 일실시예에 따른 단말 기기(10)는 단말 키 저장부(13)에 저장된 발급 요청 암호키(61)를 사전 공유키로 사용할 수 있다.
이 때, 단말 기기(10)는 발급 요청 암호키(61)를 KDF 수행을 위한 사전 공유키로 사용할 수 있다.
이 때, 단말 기기(10)는 사용된 PSK의 개별 ID를 메시지 헤더(42)의 'PSK ID'로 설정할 수 있다.
도 22은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 22을 참조하면, 본 발명의 일실시예에 따른 단말 기기(10), 네트워크 서버(20) 및 어플리케이션 서버(30)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 22에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
이상에서와 같이 본 발명에 따른 IoT 환경에서 기기 인증키를 활용한 메시지 암호키 운용을 위한 단말 기기, 서버, 시스템 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
10: 단말 기기 11: 단말 통신부
12: 단말 키 관리부 13: 단말 키 저장부
20: 네트워크 서버 30: 어플리케이션 서버
31: 서버 통신부 32: 서버 암호화부
100: 키 관리 서버 110: 통신부
120: 키 관리부 130: 키 저장부
41: 단말 식별 정보 42: 메시지 헤더
51: 메시지 52: 암호화 메시지
53: MAC
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크

Claims (20)

  1. 메시지 암호키 운용을 위한 단말 기기, 서버 및 시스템을 이용한 방법에 있어서,
    상기 단말 기기가, 인증용 키 페어를 생성하거나 네트워크 서버의 정보 주입 프로그램을 이용하여 생성된 상기 인증용 키 페어를 전달 받고, 키 관리 서버가, 검증용 키 페어를 생성하는 단계;
    상기 단말 기기가, 상기 인증용 키 페어의 인증용 개인키 및 상기 검증용 키 페어의 검증용 공개키를 이용하여 요청 메시지를 암호화하는 단계; 및
    어플리케이션 서버가, 상기 인증용 키 페어의 인증용 공개키 및 상기 검증용 키 페어의 검증용 개인키를 이용하여 상기 요청 메시지를 복호화하는 단계;
    를 포함하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  2. 청구항 1에 있어서,
    상기 메시지 암호키 운용을 위한 방법은
    상기 어플리케이션 서버가, 상기 인증용 공개키 및 상기 검증용 개인키를 이용하여 상기 요청 메시지에 대한 응답 메시지를 암호화하는 단계; 및
    상기 단말 기기가, 상기 인증용 개인키 및 상기 검증용 공개키를 이용하여 상기 응답 메시지를 복호화하는 단계;
    를 더 포함하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  3. 청구항 2에 있어서,
    상기 생성하는 단계는
    상기 단말 기기가, 상기 인증용 공개키 및 상기 단말 기기의 단말 식별 정보를 상기 키 관리 서버에 송신하고,
    상기 키 관리 서버가, 사전 공유키를 생성하여, 상기 검증용 공개키 및 상기 사전 공유키를 상기 단말 기기에 송신하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  4. 청구항 3에 있어서,
    상기 생성하는 단계는
    상기 단말 기기가, 상기 인증용 개인키, 상기 검증용 공개키, 상기 단말 식별 정보 및 상기 사전 공유키를 저장하고,
    상기 키 관리 서버가, 상기 인증용 공개키, 상기 검증용 개인키, 상기 단말 식별 정보 및 상기 사전 공유키를 저장하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  5. 청구항 4에 있어서,
    상기 요청 메시지를 암호화하는 단계는
    상기 단말 기기가, 디피-헬만 키 교환(Diffie-Hellman key exchange) 방식을 이용하여 상기 인증용 개인키 및 상기 검증용 공개키로부터 제1 비밀키를 생성하고,
    상기 요청 메시지를 복호화하는 단계는
    상기 어플리케이션 서버가, 디피-헬만 키 교환 방식을 이용하여 상기 인증용 공개키 및 상기 검증용 개인키로부터 제2 비밀키를 생성하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  6. 청구항 5에 있어서,
    상기 요청 메시지를 암호화하는 단계는
    상기 단말 기기가, 키 유도 함수(Key derivation function)를 이용하여 상기 제1 비밀키 및 상기 사전 공유키로부터 제1 암호키 및 제1 MAC 키를 생성하고,
    상기 요청 메시지를 복호화하는 단계는
    상기 어플리케이션 서버가, 상기 키 유도 함수를 이용하여 상기 제2 비밀키 및 상기 사전 공유키로부터 제2 암호키 및 제2 MAC 키를 생성하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  7. 청구항 6에 있어서,
    상기 요청 메시지를 암호화하는 단계는
    상기 단말 기기가, 상기 제1 암호키를 이용하여 상기 요청 메시지를 암호화한 암호화 메시지를 생성하고, 상기 제1 MAC 키를 이용하여 상기 암호화 메시지, 상기 단말 식별 정보 및 상기 암호화 메시지의 메시지 헤더를 MAC(Message Authentication Code) 연산하여 제1 MAC 값을 산출하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  8. 청구항 7에 있어서,
    상기 요청 메시지를 복호화하는 단계는
    상기 어플리케이션 서버가, 상기 제2 MAC 키를 이용하여 상기 단말 기기로부터 수신한 상기 암호화 메시지, 상기 단말 식별 정보 및 상기 암호화 메시지의 메시지 헤더를 MAC 연산하여 제2 MAC 값을 산출하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  9. 청구항 8에 있어서,
    상기 요청 메시지를 복호화하는 단계는
    상기 어플리케이션 서버가, 상기 단말 기기로부터 수신한 상기 제1 MAC 값과 상기 제2 MAC 값을 비교하여 상기 암호화 메시지를 검증하고, 상기 제2 암호키를 이용하여 상기 암호화 메시지를 복호화하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  10. 청구항 9에 있어서,
    상기 요청 메시지를 복호화하는 단계는
    상기 제1 MAC 값과 상기 제2 MAC 값을 Xor 연산하여 상기 암호화 메시지의 패딩 존재 여부를 확인하고, 상기 패딩 존재 여부에 따라 상기 암호화 메시지를 복호화 후, 패딩 처리하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  11. 메시지 암호키 운용을 위한 단말 기기, 서버 및 시스템을 이용한 방법에 있어서,
    상기 단말 기기가, 인증용 키 페어를 생성하거나 네트워크 서버의 정보 주입 프로그램을 이용하여 생성된 상기 인증용 키 페어를 전달 받고, 키 관리 서버가, 검증용 키 페어를 생성하는 단계;
    상기 단말 기기가, 상기 인증용 키 페어의 인증용 개인키 및 상기 검증용 키 페어의 검증용 공개키를 이용하여 수행 명령을 포함하는 요청 메시지를 생성하는 단계; 및
    어플리케이션 서버가, 상기 인증용 키 페어의 인증용 공개키 및 상기 검증용 키 페어의 검증용 개인키를 이용하여 수행 명령을 포함하는 요청 메시지를 검증하는 단계;
    를 포함하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  12. 청구항 11에 있어서,
    상기 메시지 암호키 운용을 위한 방법은
    상기 어플리케이션 서버가, 상기 메시지의 검증이 성공인 경우, 수행 명령을 처리하고, 상기 수행 명령에 대한 응답 메시지를 생성하는 단계; 및
    상기 단말 기기가, 상기 응답 메시지를 검증하고, 상기 응답 메시지의 검증이 성공인 경우, 상기 응답 메시지를 복호화하여 상기 수행 명령을 처리하는 단계;
    를 더 포함하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  13. 청구항 12에 있어서,
    상기 요청 메시지를 생성하는 단계는
    상기 단말 기기가, 디피-헬만 키 교환(Diffie-Hellman key exchange) 방식을 이용하여 상기 인증용 개인키 및 상기 검증용 공개키로부터 제1 비밀키를 생성하고,
    상기 요청 메시지를 검증하는 단계는
    상기 어플리케이션 서버가, 디피-헬만 키 교환방식을 이용하여 상기 인증용 공개키 및 상기 검증용 개인키로부터 제2 비밀키를 생성하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  14. 청구항 13에 있어서,
    상기 요청 메시지를 생성하는 단계는
    상기 단말 기기가, 키 유도 함수(Key derivation function)를 이용하여 상기 제1 비밀키 및 상기 키 관리 서버가 생성한 사전 공유키로부터 제1 암호키 및 제1 MAC 키를 생성하고,
    상기 요청 메시지를 검증하는 단계는
    상기 어플리케이션 서버가, 상기 키 유도 함수를 이용하여 상기 제2 비밀키 및 상기 사전 공유키로부터 제2 암호키 및 제2 MAC 키를 생성하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  15. 청구항 14에 있어서,
    상기 요청 메시지를 생성하는 단계는
    상기 요청 메시지의 메시지 헤더에 수행 명령의 요청을 설정하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  16. 청구항 15에 있어서,
    상기 요청 메시지를 검증하는 단계는
    상기 요청 메시지의 메시지 헤더에 포함된 수행 명령을 확인하여 상기 수행 명령의 요청을 처리하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  17. 청구항 16에 있어서,
    상기 응답 메시지를 생성하는 단계는
    상기 어플리케이션 서버가 상기 제2 암호키를 이용하여 상기 수행 명령을 요청한 결과를 암호화하여 상기 응답 메시지를 생성하고,
    상기 수행 명령을 처리하는 단계는
    상기 응답 메시지의 검증이 성공인 경우, 상기 단말 기기가, 상기 제1 암호키를 이용하여 상기 응답 메시지를 복호화하여 상기 수행 명령을 요청한 결과를 처리하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  18. 청구항 17에 있어서,
    상기 수행 명령을 처리하는 단계는
    상기 수행 명령이 키 발급 요청인 경우, 상기 응답 메시지를 복호화하여 획득한 발급 요청 암호키를 상기 키 유도 함수에 사용되도록 사전 공유키 식별자를 지정하여 사전 공유키로 저장하는 것을 특징으로 하는 메시지 암호키 운용을 위한 방법.
  19. 검증용 키 페어를 생성하는 키 관리 서버;
    인증용 키 페어를 생성하거나 네트워크 서버의 정보 주입 프로그램을 이용하여 생성된 상기 인증용 키 페어를 전달 받아, 상기 인증용 키 페어의 인증용 개인키 및 상기 검증용 키 페어의 검증용 공개키를 이용하여 요청 메시지를 암호화하는 단말 기기; 및
    상기 인증용 키 페어의 인증용 공개키 및 상기 검증용 키 페어의 검증용 개인키를 이용하여 상기 요청 메시지를 복호화하는 어플리케이션 서버;
    를 포함하는 것을 특징으로 하는 메시지 암호키 운용을 위한 시스템.
  20. 인증용 키 페어를 생성하거나 네트워크 서버의 정보 주입 프로그램을 이용하여 생성된 상기 인증용 키 페어를 전달 받은 단말 기기로부터 상기 인증용 키 페어의 인증용 개인키 및 검증용 키 페어의 검증용 공개키를 이용하여 암호화된 요청 메시지를 수신하고, 검증용 키 페어를 생성하는 키 관리 서버로부터 상기 인증용 키 페어의 인증용 공개키 및 상기 검증용 키 페어의 검증용 개인키를 수신하는 서버 통신부; 및
    상기 인증용 공개키 및 상기 검증용 개인키를 이용하여 상기 요청 메시지를복호화하는 서버 암호화부;
    를 포함하는 것을 특징으로 하는 메시지 암호키 운용을 위한 어플리케이션 서버.
KR1020180059029A 2017-12-28 2018-05-24 IoT 환경에서 기기 인증키를 활용한 메시지 암호키 운용을 위한 단말 기기, 서버, 시스템 및 방법 KR20190133972A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170183220 2017-12-28
KR20170183220 2017-12-28

Publications (1)

Publication Number Publication Date
KR20190133972A true KR20190133972A (ko) 2019-12-04

Family

ID=69004299

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180059029A KR20190133972A (ko) 2017-12-28 2018-05-24 IoT 환경에서 기기 인증키를 활용한 메시지 암호키 운용을 위한 단말 기기, 서버, 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20190133972A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112989370A (zh) * 2021-02-09 2021-06-18 腾讯科技(深圳)有限公司 密钥灌装方法、***、装置、设备以及存储介质
CN113099443A (zh) * 2019-12-23 2021-07-09 阿里巴巴集团控股有限公司 设备认证方法、装置、设备和***
CN114513357A (zh) * 2022-02-15 2022-05-17 成都国信安信息产业基地有限公司 嵌入式设备的集成控制方法及***

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113099443A (zh) * 2019-12-23 2021-07-09 阿里巴巴集团控股有限公司 设备认证方法、装置、设备和***
CN113099443B (zh) * 2019-12-23 2024-05-17 阿里巴巴集团控股有限公司 设备认证方法、装置、设备和***
CN112989370A (zh) * 2021-02-09 2021-06-18 腾讯科技(深圳)有限公司 密钥灌装方法、***、装置、设备以及存储介质
CN112989370B (zh) * 2021-02-09 2023-06-30 腾讯科技(深圳)有限公司 密钥灌装方法、***、装置、设备以及存储介质
CN114513357A (zh) * 2022-02-15 2022-05-17 成都国信安信息产业基地有限公司 嵌入式设备的集成控制方法及***

Similar Documents

Publication Publication Date Title
US10218502B2 (en) Confidential communication management
US9197411B2 (en) Protocol and method for client-server mutual authentication using event-based OTP
EP1387236B1 (en) Key management system and method for secure data transmission
JP5815294B2 (ja) セキュアなフィールドプログラマブルゲートアレイ(fpga)アーキテクチャ
US8245039B2 (en) Extensible authentication protocol authentication and key agreement (EAP-AKA) optimization
JP5307191B2 (ja) 無線通信機器とサーバとの間でのデータの安全なトランザクションのためのシステムおよび方法
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
JP6764753B2 (ja) 制限帯域幅を有するチャネルにおける効率的かつ強秘匿性の対称暗号化のためのシステムおよび方法
US10171235B2 (en) User-initiated migration of encryption keys
US20190280858A1 (en) Key exchange schemes with addressable elements
CN105721153B (zh) 基于认证信息的密钥交换***及方法
CN111052672A (zh) 无证书或预共享对称密钥的安全密钥传输协议
CN108599926B (zh) 一种基于对称密钥池的HTTP-Digest改进型AKA身份认证***和方法
CN110087240B (zh) 基于wpa2-psk模式的无线网络安全数据传输方法及***
US10630466B1 (en) Apparatus and method for exchanging cryptographic information with reduced overhead and latency
JP2012235214A (ja) 暗号通信装置および暗号通信システム
CN116132043B (zh) 会话密钥协商方法、装置及设备
KR20190133972A (ko) IoT 환경에서 기기 인증키를 활용한 메시지 암호키 운용을 위한 단말 기기, 서버, 시스템 및 방법
Noh et al. Secure authentication and four-way handshake scheme for protected individual communication in public wi-fi networks
US20240113885A1 (en) Hub-based token generation and endpoint selection for secure channel establishment
KR102219086B1 (ko) 드론(Unnamed Aerial vehicle)시스템을 위한 HMAC기반의 송신원 인증 및 비밀키 공유 방법 및 시스템
US20220345298A1 (en) Systems and methods for providing signatureless, confidential and authentication of data during handshake for classical and quantum computing environments
TW202334848A (zh) 安全金鑰產生
Yoon et al. Security enhancement scheme for mobile device using H/W cryptographic module
KR20130136119A (ko) 디바이스 인증 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application