KR101996333B1 - Method of Key Agreement and Authentication for Communicating with IoT Device and Method for Tranceiving Message Using the Same - Google Patents
Method of Key Agreement and Authentication for Communicating with IoT Device and Method for Tranceiving Message Using the Same Download PDFInfo
- Publication number
- KR101996333B1 KR101996333B1 KR1020180038936A KR20180038936A KR101996333B1 KR 101996333 B1 KR101996333 B1 KR 101996333B1 KR 1020180038936 A KR1020180038936 A KR 1020180038936A KR 20180038936 A KR20180038936 A KR 20180038936A KR 101996333 B1 KR101996333 B1 KR 101996333B1
- Authority
- KR
- South Korea
- Prior art keywords
- security element
- value
- java security
- key
- server
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
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)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 사물 인터넷 장치와의 메시지 송수신 방법에 대한 것으로서 좀 더 자세하게는 사물 인터넷 환경의 복수 주체 간에 키 교환 및 인증 방법과 그 방법에 의해 키 교환 및 인증이 완료된 후에 사물 인터넷 장치와 사용자 단말기간의 암호화된 메시지 송수신 방법에 대한 것이다.The present invention relates to a method of transmitting and receiving messages to and from an object Internet device. More particularly, the present invention relates to a key exchange and authentication method between a plurality of subjects in an object Internet environment, And a method of transmitting and receiving the message.
최근에 들어 전자 장치의 동작을 원격으로 제어할 수 있는 사물 인터넷(Internet of Things: IoT) 기술이 활발하게 개발되고 널리 사용되어 가는 추세다.Recently, Internet of Things (IoT) technology, which can remotely control the operation of electronic devices, has been actively developed and widely used.
사물 인터넷 장치의 특성상 동작에 저전력이 소모되어야 하며 장치의 사양 역시 저사양으로 제공되는 것이 바람직하다. 저사양 사물 인터넷 장치의 한계상 통신의 암호화에 대칭키를 사용해야 하는데 그 경우 키 교환 및 관리에 대한 보안성이 저하되는 문제가 발생한다. 또한, 사물 인터넷 환경에서는, 사물 인터넷 장치에 대해 제어 명령을 내리는 사용자 단말기와, 서버와, 사물 인터넷 장치와, 사물 인터넷 장치와 서버와의 통신을 중계하는 게이트웨이가 동작하는데, 사용자 단말기와 사물 인터넷 장치 사이에 여러 중계 주체가 포함되기 때문에 암호화 통신을 위해서는 기존의 방법이 아닌 새로운 방법의 필요성이 대두되고 있다.It is desirable that low-power operation should be consumed in the operation of the Internet device and the specification of the device should be provided at a low level. Limitations of low-end Internet devices A symmetric key must be used to encrypt communications, which in turn leads to the problem of poor security for key exchange and management. In addition, in the Internet environment of objects, a gateway for relaying communication between the user terminal for giving a control command to the object Internet apparatus, the server, the object internet apparatus, and the object internet apparatus and the server operates. , There is a need for a new method for encryption communication instead of an existing method.
본 발명은 이러한 종래 기술의 문제점을 해결하기 위해, 사물 인터넷 장치의 저전력 저사양 특성에 적합한 키 교환 및 암호화 방법과 메시지 송수신 방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a key exchange and encryption method and a message transmission / reception method suitable for low-power low-end characteristics of a thing Internet device.
본 발명은, 제1 자바 보안 요소(JAVA Secure Element)를 포함하는 사용자 단말기와, 하드웨어 보안 모듈(Hardware Security Module)을 포함하는 서버와, 제2 자바 보안 요소(JAVA Secure Element)를 포함하는 게이트웨이와, 제3 자바 보안 요소(JAVA Secure Element)를 포함하는 사물 인터넷 장치를 포함하는 환경에서 수행되는 키 교환 및 인증 방법으로서, 제1 자바 보안 요소와 서버가 제1 키 교환 및 인증 과정을 수행하여 제1 세션키(CK1)와 제1 무결성 검증키(IK1)을 제1 자바 보안 요소와 서버가 공유하는 제1 단계와; 서버와 게이트웨이가 제2 키 교환 및 인증 과정을 수행하여 제2 세션키(CK2)와 제2 무결성 검증키(IK2)를 서버와 게이트웨이가 공유하는 제2 단계와; 게이트웨이와 제3 자바 보안 요소가 제3 키 교환 및 인증 과정을 수행하여 제3 세션키(CK3)와 제3 무결성 검증키(IK3)를 게이트웨이와 제3 자바 보안 요소가 공유하는 제3 단계를 포함한다.The present invention relates to a method and system for providing a secure connection between a user terminal including a first Java secure element, a server including a hardware security module, a gateway including a second Java secure element, , And a third Java security element (JAVA Secure Element), wherein the first Java security element and the server perform a first key exchange and authentication process, A first step of sharing a session key (CK1) and a first integrity verification key (IK1) with a first Java security element and a server; A server and a gateway performing a second key exchange and authentication process to share a second session key (CK2) and a second integrity verification key (IK2) with a server and a gateway; The gateway and the third Java security element perform a third key exchange and authentication process to share the third session key (CK3) and the third integrity verification key (IK3) between the gateway and the third Java security element do.
본 발명에 의한, 상기 키 교환 및 인증 방법에 의해 키 교환 및 인증이 완료된 환경에서 수행되는 사물 인터넷 제어 메시지의 송수신 방법은, 제1 자바 보안 요소가, 제어 명령(DCTL)를 제1 세션키(CK1)로 암호화한 제어 명령 암호화값(ECK1(DCTL))을 포함하는 제1 메시지(M1)를, 제1 무결성 검증키(IK1) 및 제1 메시지를 해쉬한 제1 해쉬값(Hmac(IK1, M1))과 함께, 서버로 전송하는 제1 단계와; 서버가, 제어 명령 암호화값(ECK1(DCTL))과, 제1 세션키(CK1) 및 제1 무결성 검증키(IK1)을 연접한 값을 제2 세션키(CK2)로 암호화한 값(ECK2(CK1∥IK1))을 포함하는 제2 메시지(M2)를, 제2 무결성 검증키(IK2) 및 제2 메시지(M2)를 해쉬한 제2 해쉬값(Hmac(IK2, M2))과 함께, 게이트웨이로 전송하는 제2 단계와; 게이트웨이가, 제어 명령 암호화값(ECK1(DCTL))과, 제1 세션키(CK1) 및 제1 무결성 검증키(IK1)을 연접한 값을 제3 세션키(CK3)로 암호화한 값(ECK3(CK1∥IK1))을 포함하는 제3 메시지(M3)를, 제3 무결성 검증키(IK3) 및 제3 메시지(M3)를 해쉬한 제3 해쉬값(Hmac(IK3, M3))과 함께, 제3 자바 보안 요소로 전송하는 제3 단계와; 제3 자바 보안 요소가, 제어 명령에 대한 결과값(DCTL_Result)을 제1 세션키로 암호화한 제4 메시지(M4)를, 제1 무결성 검증키(IK1) 및 제4 메시지(M4)를 해쉬한 제4 해쉬값(Hmac(IK1, M4))과 함께, 게이트웨이와 서버를 거쳐서 제1 자바 보안 요소로 전송하는 제4 단계를 포함한다.A method for transmitting and receiving a destination Internet control message in an environment where key exchange and authentication are completed by the key exchange and authentication method according to the present invention is characterized in that a first Java security element transmits a control command (D CTL ) The first message M1 containing the control command encryption value E CK1 (D CTL ) encrypted with the first integrity verification key IK1 and the first hash value Hmac (IK1, M1) to the server; The server encrypts the value obtained by concatenating the control command encryption value (E CK1 (D CTL )) with the first session key (CK1) and the first integrity verification key (IK1) by encrypting the value with the second session key (CK2) E CK2 second message (M2) to a second integrity check key (IK2), and a second hash value obtained by hashing the message (M2) (Hmac (IK2, M2) containing the (CK1∥IK1))) and Together, to a gateway; The gateway encrypts the value obtained by concatenating the control command encryption value (E CK1 (D CTL )) with the first session key (CK1) and the first integrity verification key (IK1) by encrypting with the third session key (CK3) The third hash value Hmac (IK3, M3) obtained by hashing the third integrity verification key IK3 and the third message M3 with the third hash value ECM3 (ECK3 (CK1∥IK1) To a third Java security element; Third Java security element is a hash result value (D CTL _Result) to the fourth message (M4) obtained by encrypting the first session key, the first integrity check key (IK1) and the fourth message (M4) for the control commands To the first Java security element via a gateway and a server together with a fourth hash value (Hmac (IK1, M4)).
본 발명에 의한 사용자 단말기와 사물 인터넷 장치간의 메시지 송수신 방법은, 제1 자바 보안 요소가, 제1 무결성 검증키를 이용하여 제4 메시지의 무결성을 검증하는 제5 단계와; 제4 메시지를 복호화하여 제어 명령에 대한 결과값을 획득하는 제6 단계를 더 포함할 수 있다.A method for transmitting / receiving a message between a user terminal and a destination Internet device according to the present invention includes: a fifth step of a first Java security element verifying the integrity of a fourth message using a first integrity verification key; And a sixth step of decrypting the fourth message to obtain a result value for the control command.
상기 제1 단계는, 제1 자바 보안 요소가 제1 랜덤 시퀀스 값(SQN1)를 생성하는 제1-1 단계와; 제1 자바 보안 요소가 제1 랜덤 시퀀스 값(SQN1)를 제1 자바 보안 요소의 키(AK)로 암호화하여 제1 암호화값(EAKe(SQN1))을 생성하는 제1-2 단계와; 제1 자바 보안 요소가, 제1 자바 보안 요소의 임시 ID(ATID)와 제1 암호화값(EAKe(SQN1))을 포함하는 메시지를, 서버로 전송하고 세션을 요청하는 제1-3 단계와; 서버가, 제1 자바 보안 요소의 임시 ID(ATID)와 제1 자바 보안 요소의 키를 생성하기 위한 속성값 ID(AKID)를 하드웨어 보안 모듈에 조회하는 제1-4 단계와; 서버가, 제1 자바 보안 요소의 키(AK)와 제1 자바 보안 요소의 운용 주체의 암호화된 고유키 값(AOPc)을 생성하는 제1-5 단계와; 서버가, 제1 암호화 값(EAKe(SQN1))을 복호화하는 제1-6 단계와; 서버가, 제1 랜덤 시퀀스 값에 1을 더하는 제1-7 단계와; 서버가, 제1-7 단계에서 산출된 값과 제1 자바 보안 요소의 고유 ID(AUID)의 배타적 논리합을 산출하는 제1-8 단계와; 서버가, 제1 랜덤값(RAND1)을 생성하는 제1-9 단계와; 서버가, 제1 자바 보안 요소의 임시 ID(ATID)와, 제1 자바 보안 요소의 고유 ID(AUID)와, 제1 자바 보안 요소의 키(AK)와, 제1 자바 보안 요소 운용 주체의 암호화된 고유키 값(AOPc)과, 제1 랜덤값(RAND1)과, 제1 랜덤 시퀀스 값(SQN1)에 기반하여 제1 세션키(CK1)과, 제1 무결성 검증키(IK1)을 생성하는 제1-10 단계와; 서버가, 제1 인증값(AUTN1 = AUID XOR SQN1∥ATID)과, 제1-1 메시지 검증 코드(MAC1)을 생성하는 제1-11 단계와; 서버가, 제1 자바 보안 요소의 임시 ID(ATID)와, 제1 랜덤값(RAND)과 제1 인증값(AUTN1)이 연접된 값을 암호화한 암호화값(EAKe(RAND1∥AUTN1))을 포함하는 메시지를, 제1 자바 보안 요소로 전송하는 제1-12 단계와; 제1 자바 보안 요소가, 암호화값(EAKe(RAND1∥AUTN1))을 복호화하는 제1-13 단계와; 제1 자바 보안 요소가, 제1 랜덤 시퀀스 값(SQN)을 검증하는 제1-14 단계와; 제1 자바 보안 요소가, 제1 자바 보안 요소의 임시 ID(ATID)와, 제1 자바 보안 요소의 고유 ID(AUID)와, 제1 자바 보안 요소의 키(AK)와, 제1 자바 보안 요소 운용 주체의 암호화된 고유키 값(AOPc)과, 제1 랜덤값(RAND1)과, 제1 랜덤 시퀀스 값(SQN1)에 기반하여 제1 세션키(CK1)와 제1 무결성 검증키(IK1)를 생성하는 제1-15 단계와; 제1 자바 보안 요소가, 제1-1 메시지 검증 코드(MAC1)를 검증하는 제1-16 단계와; 제1 자바 보안 요소가, 제1 자바 보안 요소의 임시 ID(ATID)와, (SQN1 + 2)을 제1-2 메시지 검증 코드(RES1)와 연접한 값을 제1 자바 보안 요소의 키로 암호화한 암호화값(EAKe(SQN1 + 2∥RES1)) 을 포함하는 메시지를, 서버로 전송하는 제1-17 단계와; 서버가, 제1-15 단계에서 수신한 암호화값을 복호화하는 제1-18 단계와; 서버가, 제1 랜덤 시퀀스 값(SQN1)을 검증하는 제1-19 단계와; 서버가, 제1-2 메시지 검증 코드(RES1)를 검증하는 제1-20 단계를 포함할 수 있다.The first step includes a first step of the first Java security element generating a first random sequence value (SQN1); The first Java security element encrypts the first random sequence value SQN1 with the key AK of the first Java security element to generate a first encrypted value E AKe (SQN1); The first Java security element transmits a message including a temporary ID (ATID) of the first Java security element and a first encrypted value (E AKe (SQN1)) to the server and requests a session; ; A step of the server inquiring the hardware security module for the temporary ID (ATID) of the first Java security element and the attribute value ID (AKID) for generating the key of the first Java security element; The server generating the key (AK) of the first Java security element and the encrypted unique key value (AOPc) of the principal of the first Java security element; The server decrypting the first encrypted value (E AKe (SQN1)); The server adding 1 to the first random sequence value; The server calculates an exclusive OR of the value calculated in operation 1 - 7 and the unique ID (AUID) of the first Java security element; (1-9) in which the server generates the first random value RAND1; The server includes a temporary ID (ATID) of a first Java security element, a unique ID (AUID) of a first Java security element, a key (AK) of a first Java security element, (IK1) generating a first session key (CK1) and a first integrity verification key (IK1) based on a first unique value (AOPc), a first random value (RAND1) and a first random sequence value Steps 1-10; The server generates a first authentication value (AUTN1 = AUID XOR SQN1∥ATD) and a 1-1 message validation code (MAC1); The server transmits an encryption value E AKe (RAND1∥AUTN1) obtained by encrypting a temporary ID (ATID) of the first Java security element, a value obtained by concatenating the first random value RAND and the first authentication value AUTN1 Transmitting the message including the message to the first Java security element; The first Java security element decrypting the encryption value (E AKe (RAND1? AUTN1)); The first Java security element verifying the first random sequence value (SQN); The first Java security element comprises a temporary ID (ATID) of the first Java security element, a unique ID (AUID) of the first Java security element, a key (AK) of the first Java security element, The first session key CK1 and the first integrity verification key IK1 based on the encrypted unique key value AOPc of the operating entity, the first random value RAND1 and the first random sequence value SQN1 (1-15); (1-16) the first Java security element verifies the 1-1 message validation code (MAC1); The first Java security element encrypts a value obtained by concatenating the temporary ID (ATID) of the first Java security element and the (SQN1 + 2) with the (1-2) message verification code (RES1) with the key of the first Java security element Step 1-17 of transmitting a message including an encryption value (E AKe (SQN1 + 2∥RES1)) to the server; Step 1-18 is a step in which the server decrypts the encrypted value received in operation 1-15; (1-19) in which the server verifies the first random sequence value (SQN1); The server may include a 1-20 step of verifying the 1-2 message verification code (RES1).
상기 제2 단계는, 제2 자바 보안 요소가 제2 랜덤 시퀀스값(SQN2)을 생성하는 제2-1 단계와; 제2 자바 보안 요소가 제2 랜덤 시퀀스값(SQN2)을 제2 자바 보안 요소의 키(GK)로 암호화하여 제2 암호화값(EGKe(SQN2))을 생성하는 제2-2 단계와; 게이트웨이가, 제2 자바 보안 요소의 임시 ID(GTID)와 제2 암호화값(EGKe(SQN2))을 포함하는 메시지를, 서버로 전송하고 세션을 요청하는 제2-3 단계와; 서버가, 제2 자바 보안 요소의 임시 ID(ATID)와 제2 자바 보안 요소의 키를 생성하기 위한 속성값 ID(GKID)를 하드웨어 보안 모듈에 조회하는 제2-4 단계와; 서버가, 제2 자바 보안 요소의 키(GK)와 제2 자바 보안 요소의 운용 주체의 암호화된 고유키 값(GOPc)을 생성하는 제2-5 단계와; 서버가, 제2 암호화값을 복호화하는 제2-6 단계와; 서버가, 제2 랜덤 시퀀스 값에 1을 더하는 제2-7 단계와; 서버가, 제2-7 단계에서 산출된 값과 제2 자바 보안 요소의 고유 ID(GUID)의 배타적 논리합을 산출하는 제2-8 단계와; 서버가, 제2 랜덤값(RAND2)을 생성하는 제2-9 단계와; 서버가, 제2 자바 보안 요소의 임시 ID(GTID)와, 제2 자바 보안 요소의 고유 ID(GUID)와, 제2 자바 보안 요소의 키(GK)와, 제2 자바 보안 요소 운용 주체의 암호화된 고유키 값(GOPc)과, 제2 랜덤값(RAND2)과, 제2 랜덤 시퀀스 값(SQN2)에 기반하여 제2 세션키(CK2)과, 제1 무결성 검증키(IK2)을 생성하는 제2-10 단계와; 서버가, 제2 인증값(AUTN2 = GUID XOR SQN2∥GTID)과, 제2-1 메시지 검증 코드(MAC2)을 생성하는 제2-11 단계와; 서버가, 제2 자바 보안 요소의 임시 ID(GTID)와, 제2 랜덤값(RAND2)과 제2 인증값(AUTN2)이 연접된 값을 암호화한 암호화값(EGKe(RAND2∥AUTN2))을 포함하는 메시지를, 게이트웨이로 전송하는 제2-12 단계와; 게이트웨이가, 암호화값(EGKe(RAND2∥AUTN2))을 복호화하는 제2-13 단계와; 게이트웨이가, 제2 랜덤 시퀀스 값(SQN2)을 검증하는 제2-14 단계와; 게이트웨이가, 제2 자바 보안 요소의 임시 ID(GTID)와, 제2 자바 보안 요소의 고유 ID(GUID)와, 제1 자바 보안 요소의 키(GK)와, 제2 자바 보안 요소 운용 주체의 암호화된 고유키 값(GOPc)과, 제2 랜덤값(RAND2)과, 제2 랜덤 시퀀스 값(SQN2)에 기반하여 제2 세션키(CK2)와 제2 무결성 검증키(IK2)를 생성하는 제2-15 단계와; 게이트웨이가, 제2-1 메시지 검증 코드(MAC2)를 검증하는 제2-16 단계와; 게이트웨이가, 제2 자바 보안 요소의 임시 ID(GTID)와, (SQN2 + 2)을 제2-2 메시지 검증 코드(RES2)와 연접한 값을 제2 자바 보안 요소의 키로 암호화한 암호화값(EGKe(SQN2 + 2∥RES2)) 을 포함하는 메시지를, 서버로 전송하는 제2-17 단계와; 서버가, 제2-17 단계에서 수신한 암호화값을 복호화하는 제2-18 단계와; 서버가, 제2 랜덤 시퀀스 값(SQN2)을 검증하는 제2-19 단계와; 서버가, 제2-2 메시지 검증 코드(RES2)를 검증하는 제2-20 단계를 포함할 수 있다.The second step includes: a second step of the second Java security element generating a second random sequence value (SQN2); The second Java security element encrypts the second random sequence value SQN2 with the key GK of the second Java security element to generate the second encrypted value E GKe (SQN2); A second step of the gateway transmitting a message including a temporary ID (GTID) of the second Java security element and a second encrypted value (E GKe (SQN2)) to the server and requesting a session; The server inquiring the hardware security module of the temporary ID (ATID) of the second Java security element and the attribute value ID (GKID) for generating the key of the second Java security element; The server generates the key (GK) of the second Java security element and the encrypted unique key value (GOPc) of the operating entity of the second Java security element; (2-6) the server decrypts the second encrypted value; (2-7) the server adds 1 to the second random sequence value; The server calculates an exclusive OR of the value calculated in the step 2-7 and the unique ID (GUID) of the second Java security element; (2-9) in which the server generates a second random value RAND2; The server sends a temporary ID (GTID) of the second Java security element, a unique ID (GUID) of the second Java security element, a key (GK) of the second Java security element, A second session key CK2 and a first integrity verification key IK2 based on the first unique random key value GOPc, the second random value RAND2, the second random sequence value SQN2, Steps 2-10; The server generates a second authentication value (AUTN2 = GUID XOR SQN2∥GTID) and a second-1 message verification code (MAC2); The server transmits an encryption value E GKe (RAND2∥AUTN2) obtained by encrypting a temporary ID (GTID) of the second Java security element and a value obtained by concatenating the second random value RAND2 and the second authentication value AUTN2 A second step of transmitting the message including the message to the gateway; A second step of the gateway decrypting the encrypted value (E GKe (RAND2? AUTN2)); The second step of the gateway verifying the second random sequence value (SQN2); The gateway encrypts the temporary ID (GTID) of the second Java security element, the unique ID (GUID) of the second Java security element, the key (GK) of the first Java security element, Generating a second session key (CK2) and a second integrity verification key (IK2) based on the first random value (SQN2), the second random value (SQN2) -15 steps; The second step of the gateway verifying the second-1 message verification code (MAC2); The gateway encrypts a value obtained by concatenating the temporary ID (GTID) of the second Java security element and (SQN2 + 2) with the (2-2) message verification code (RES2) by using the encryption value E GKe (SQN2 + 2∥RES2)) to the server; A second step of the server decrypting the encrypted value received in step 2-17; A step 2-19 in which the server verifies the second random sequence value (SQN2); The server may include a second-20 step of verifying the second-2 message verification code (RES2).
상기 제3 단계는, 제3 자바 보안 요소가, 제3 랜덤 시퀀스값(SQN3)을 생성하는 제3-1 단계와; 제3 자바 보안 요소가, 제3 랜덤 시퀀스값(SQN3)을 제3 자바 보안 요소의 키(DK)로 암호화하여 제3 암호화값(EDKe(SQN3))을 생성하는 제3-2 단계와; 제3 자바 보안 요소가, 제3 자바 보안 요소의 임시 ID(DTID)와 제3 암호화값(EDKe(SQN3))을 포함하는 메시지를, 제2 자바 보안 요소로 전송하고 세션을 요청하는 제3-3 단계와; 제2 자바 보안 요소가, 제3 자바 보안 요소의 임시 ID(DTID)와 제3 자바 보안 요소의 키를 생성하기 위한 속성값 ID(DKID)를 조회하는 제3-4 단계와; 제2 자바 보안 요소가, 제3 자바 보안 요소의 키(DK)와 제3 자바 보안 요소의 운용 주체의 암호화된 고유키 값(DOPc)을 생성하는 제3-5 단계와; 제2 자바 보안 요소가, 제3 암호화값을 복호화하는 제3-6 단계와; 제2 자바 보안 요소가, 제3 랜덤 시퀀스 값에 1을 더하는 제3-7 단계와; 제2 자바 보안 요소가, 제3-7 단계에서 산출된 값과 제3 자바 보안 요소의 고유 ID(DUID)의 배타적 논리합을 산출하는 제3-8 단계와; 제2 자바 보안 요소가, 제3 랜덤값(RAND3)을 생성하는 제3-9 단계와; 게이트웨이가, 제3 자바 보안 요소의 임시 ID(DTID)와, 제3 자바 보안 요소의 고유 ID(DUID)와, 제3 자바 보안 요소의 키(DK)와, 제3 자바 보안 요소 운용 주체의 암호화된 고유키 값(DOPc)과, 제3 랜덤값(RAND3)과, 제3 랜덤 시퀀스 값(SQN3)에 기반하여 제3 세션키(CK3)과, 제3 무결성 검증키(IK3)을 생성하는 제3-10 단계와; 게이트웨이가 제3 인증값(AUTN3 = DUID XOR SQN3∥DTID)과, 제3-1 메시지 검증 코드(MAC3)을 생성하는 제3-11 단계와; 게이트웨이가, 제3 자바 보안 요소의 임시 ID(DTID)와, 제3 랜덤값(RAND3)과 제3 인증값(AUTN3)이 연접된 값을 암호화한 암호화값(EDKe(RAND3∥AUTN3))을 포함하는 메시지를, 사물 인터넷 장치로 전송하는 제3-12 단계와; 제3 자바 보안 요소가, 암호화값(EDKe(RAND3∥AUTN3))을 복호화하는 제3-13 단계와; 제3 자바 보안 요소가, 제3 랜덤 시퀀스 값(SQN3)을 검증하는 제3-14 단계와; 제3 자바 보안 요소가, 제3 자바 보안 요소의 임시 ID(DTID)와, 제3 자바 보안 요소의 고유 ID(DUID)와, 제3 자바 보안 요소의 키(DK)와, 제3 자바 보안 요소 운용 주체의 암호화된 고유키 값(DOPc)과, 제3 랜덤값(RAND3)과, 제3 랜덤 시퀀스 값(SQN3)에 기반하여 제3 세션키(CK3)와 제3 무결성 검증키(IK3)를 생성하는 제3-15 단계와; 제3 자바 보안 요소가, 제3-1 메시지 검증 코드(MAC3)를 검증하는 제3-16 단계와; 제3 자바 보안 요소가, 제2 자바 보안 요소의 임시 ID(DTID)와, (SQN3 + 2)을 제3-2 메시지 검증 코드(RES3)와 연접한 값을 제3 자바 보안 요소의 키로 암호화한 암호화값(EDKe(SQN3 + 2∥RES3)) 을 포함하는 메시지를, 게이트웨이로 전송하는 제3-17 단계와; 게이트웨이가, 제3-17 단계에서 수신한 암호화값을 복호화하는 제3-18 단계와; 게이트웨이가, 제3 랜덤 시퀀스 값(SQN3)을 검증하는 제3-19 단계와; 게이트웨이가, 제3-2 메시지 검증 코드(RES3)를 검증하는 제3-20 단계를 포함할 수 있다.The third step includes: a third step of the third Java security element generating a third random sequence value (SQN3); The third Java security element encrypts the third random sequence value SQN3 with the key DK of the third Java security element to generate the third encrypted value E DKe (SQN3); The third Java security element sends a message containing the temporary ID (DTID) of the third Java security element and the third encrypted value (E DKe (SQN3)) to the second Java security element, Step 3; The second Java security element inquiring the temporary ID (DTID) of the third Java security element and the attribute value ID (DKID) for generating the key of the third Java security element; The third Java security element generating the key (DK) of the third Java security element and the encrypted inherent key value (DOPc) of the principal of the third Java security element; A third Java security element decrypting the third encrypted value; The second Java security element adding 1 to the third random sequence value; The third Java security element calculates an exclusive OR of the value calculated in operation 3 - 7 and the unique ID (DUID) of the third Java security element; The third Java security element generating a third random value RAND3; (DIDD) of the third Java security element, the unique ID (DUID) of the third Java security element, the key (DK) of the third Java security element, the encryption of the third Java security element operating entity A third session key CK3 and a third integrity verification key IK3 based on the first unique random key value DOPc, the third random value RAND3, the third random sequence value SQN3, Steps 3-10; A third step of the gateway generating a third authentication value (AUTN3 = DUID XOR SQN3∥DTID) and a third-message validation code (MAC3); The gateway obtains the encryption value (E DKe (RAND3∥AUTN3)) obtained by encrypting the temporary ID (DTID) of the third Java security element and the value obtained by concatenating the third random value RAND3 and the third authentication value AUTN3 A third step of transmitting the message including the message to the object Internet device; The third Java security element decrypts the encryption value (E DKe (RAND3∥AUTN3)); The third Java security element verifying the third random sequence value SQN3; The third Java security element comprises a temporary ID (DTID) of the third Java security element, a unique ID (DUID) of the third Java security element, a key (DK) of the third Java security element, The third session key CK3 and the third integrity verification key IK3 based on the encrypted unique key value DOPc of the operating entity, the third random value RAND3 and the third random sequence value SQN3, (3-15); The third Java security element verifying the third-1 message verification code MAC3; The third Java security element encrypts a value obtained by concatenating the temporary ID (DTID) of the second Java security element and (SQN3 + 2) with the (3-2) message verification code (RES3) with the key of the third Java security element A step 3-17 of transmitting a message including an encryption value (E DKe (SQN3 + 2∥RES3)) to the gateway; A third step of the gateway decrypting the encrypted value received in step 3-17; A step 3-19 in which the gateway verifies the third random sequence value (SQN3); And a third step of the gateway verifying the third-second message verification code (RES3).
본 발명에 의하면, 하드웨어 기반의 자바 보안 요소를 사용하여 키 교환 및 인증 과정을 수행함으로써, 사물 인터넷 환경에 적합한 대칭키 사용을 하되, 대칭키의 낮은 보안성을 보완할 수 있는 작용 효과가 제공된다. 특히, 본 발명의 독특한 방식에 의해 자바 보안 요소를 이용한 경량 암호화를 멀티 도메인 환경에서 구현함으로써 사용자 단말기와 사물 인터넷 장치간에 경량 암호화 통신을 가능하게 하면서도 보안성 저하의 문제를 극복하는 효과가 제공된다.According to the present invention, by performing a key exchange and authentication process using a hardware-based Java security element, an effect of using a symmetric key suitable for the object Internet environment and supplementing low security of the symmetric key is provided . In particular, by implementing a lightweight encryption using a Java security element in a multi-domain environment by using a unique method of the present invention, lightweight encryption communication is enabled between a user terminal and a destination Internet device, and the effect of overcoming security degradation is provided.
도 1은 본 발명에 의한 키 교환 및 인증 과정과, 사물 인터넷 장치와 사용자 단말기 간의 제어 명령 및 결과값 송수신 과정이 도시된 도면.
도 2는 제1 키 교환 및 인증 과정의 자세한 순서도.
도 3은 제2 키 교환 및 인증 과정의 자세한 순서도.
도 4는 제3 키 교환 및 인증 과정의 자세한 순서도.1 is a diagram illustrating a key exchange and authentication process according to the present invention, and a control command and a result value transmission / reception process between a destination Internet device and a user terminal.
2 is a detailed flowchart of a first key exchange and authentication process;
3 is a detailed flowchart of a second key exchange and authentication process.
4 is a detailed flowchart of a third key exchange and authentication process.
이하에서는 첨부 도면을 참조하여 본 발명에 대해서 구체적으로 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
본 명세서에서 수행되는 정보(데이터) 전송/수신 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, A로부터 B까지 직접 전송(전달) 또는 수신되는 것 만을 표현하는 것은 아니다. 본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행 단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 “A 또는 B”은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.Encryption / decryption may be applied to the information transmission / reception process performed in the present specification, and the description of the process of transmitting information (data) in the present specification and claims is not limited to encryption / Decryption is also included. Expressions of the form "transfer from A to B" or "receive from A" in this specification include transmission (transfer) or reception of another medium in between, But does not represent only transmission (forwarding) or reception. In the description of the present invention, the order of each step should be understood to be non-limiting, unless the preceding step must be performed logically and temporally before the next step. That is to say, except for the exceptional cases mentioned above, even if the process described in the following stage is performed before the process described in the preceding stage, it does not affect the essence of the invention and the scope of the right should be defined regardless of the order of the stages. &Quot; A " or " B " is defined herein to mean not only selectively pointing to either A or B, but also including both A and B. It is also to be understood that the term "comprising " is intended to encompass further including other elements in addition to the elements listed as being included.
본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 필수적이지 않은 특정 구성요소를 배제하거나 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.Only essential components necessary for explanation of the present invention are described in this specification, and components not related to the essence of the present invention are not mentioned. And should not be construed in an exclusive sense that includes only the recited elements, and should be interpreted in a non-exclusive sense, excluding certain elements that are not essential and may include other elements.
도 1에는 본 발명에 의한 키 교환 및 인증 과정, 그리고 그 과정이 완료된 후에 제어 명령과 그 결과값의 송수신 과정이 도시되어 있다. 도 2 내지 도 4은 각 키 교환 및 인증 과정의 상세 실시예가, 도 5에는 제어 메시지의 송수신 방법의 과정이 도시되어 있다.FIG. 1 shows a key exchange and authentication process according to the present invention, and a process of transmitting and receiving control commands and result values after the process is completed. FIGS. 2 to 4 show detailed processes of exchanging and authenticating each key, and FIG. 5 shows a process of transmitting and receiving a control message.
도 1에는 도시의 편의를 위해 도시되어 있지 않지만, 사용자 단말기(10)는 제1 자바 보안 요소(JAVA Secure Element; 15)를, 서버(20)는 하드웨어 보안 모듈(HSM; Hardware Security Module)을, 게이트웨이(30)는 제2 자바 보안 요소(35)를, 사물 인터넷 장치(40)는 제3 자바 보안 모듈(45)를 포함한다. 자바 보안 요소(JSE)는 하드웨어 기반의 장치로서 내부에 키를 생성할 수 있는 보안 속성값들이 저장되기 때문에 해킹이 불가하여 경량 암호화가 필요한 사물 인터넷 환경에 사용되는 대칭키 암호화 방식이 가지는 낮은 보안성을 보완할 수 있다.Although not shown in FIG. 1 for the sake of convenience, the
도 2 내지 도 4에서 자바 보안 요소(15, 35, 45) 내부에 표시된 단계는 자바 보안 요소에 의해서 수행되며, 자바 보안 요소 외부에 표시된 단계는 각 수행 주체에서 소프트웨어적으로 수행될 수 있다.2 to 4, the steps displayed inside the Java
각 자바 보안 요소(15, 35, 45)에는 각 장치의 암호화/복호화 키를 생성할 수 있는 보안 속성값이 저장되어 있다. 서버(20)의 하드웨어 보안 모듈(HSM)에는 서버단의 키를 생성할 수 있는 보안 속성값이 저장되어 있다.Each Java
먼저 사용자 단말기(10)와 서버(20)가 제1 키 교환 및 인증 과정을 거친다(단계 100). 제1 키 교환 및 인증 과정에서는, 제1 세션키(CK1)와 제1 무결성 검증키(IK1)를 제1 자바 보안 요소(15)와 서버(20)가 공유한다.First, the
다음으로, 서버(20)와 게이트웨이(30)가 제2 키 교환 및 인증 과정을 거친다(단계 200). 제2 키 교환 및 인증 과정에서는, 제2 세션키(CK2)와 제2 무결성 검증키(IK2)를 서버(20)와 게이트웨이(30)가 공유한다.Next, the
다음으로, 게이트웨이(30)와 사물 인터넷 장치(40)가 제3 키 교환 및 인증 과정을 거친다(단계 300). 제3 키 교환 및 인증 과정에서는, 제3 세션키(CK3)와 제3 무결성 검증키(IK3)를 게이트웨이(30)와 사물 인터넷 장치(40)의 제3 자바 보안 요소(45)가 공유한다.Next, the
위 과정을 거쳐서 키 교환 및 인증이 완료되면, 사용자 단말기(10)가 사물 인터넷 장치(40)의 제어 명령을 사물 인터넷 장치(40)로 전송한다.When the key exchange and authentication are completed through the above process, the
사용자 단말기(10)는 먼저 제어 명령을 포함하는 제1 메시지와, 제1 해쉬값을 전송한다(단계 400). 제1 메시지는 제어 명령(DCTL)을 제1 세션키(CK1)로 암호화한 제어 명령 암호화값(ECK1(DCTL))을 포함한다. 제1 해쉬값은, 제1 무결성 검증키(IK1) 및 제1 메시지를 해쉬한 값이 될 수 있다.The
서버(20)는 제2 메시지와 제2 해쉬값을 게이트웨이(30)로 전송한다(단계 500). 제2 메시지는, 제어 명령 암호화값(ECK1(DCTL))과, 제1 세션키(CK1) 및 제1 무결성 검증키(IK1)를 연접한 값을 제2 세션키(CK2)로 암호화한 값을 포함한다. 제2 해쉬값은, 제2 무결성 검증키(IK2) 및 제2 메시지를 해쉬한 값이 될 수 있다.The
게이트웨이(30)는, 제3 메시지 및 제3 해쉬값을 사물 인터넷 장치(40)로 전송한다(단계 600). 제3 메시지는, 제어 명령 암호화값(ECK1(DCTL))과, 제1 세션키(CK1) 및 제1 무결섬 검증키(IK1)를 연접한 값을 제3 세션키(CK3)로 암호화한 값을 포함한다. 제3 해쉬값은, 제3 무결성 검증키(IK3) 및 제3 메시지를 해쉬한 값이 될 수 있다.The
사물 인터넷 장치(40)는, 게이트웨이(30)로 제4 메시지 및 제4 해쉬값을 전송한다(단계 700). 제4 메시지 및 제4 해쉬값은 게이트웨이(30)와 서버(20)를 거쳐서 사용자 단말기(10)로 전달된다.The
제4 메시지는 제어 명령에 대한 결과값(DCTL_Result)을 제1 세션키(CK1)로 암호화한 값을 포함한다. 제4 해쉬값은, 제1 무결성 검증키 및 제4 메시지를 해쉬한 값이 될 수 있다.The fourth message includes a value obtained by encrypting the result value (D CTL _Result) for the control command with the first session key (CK 1). The fourth hash value may be a value obtained by hashing the first integrity verification key and the fourth message.
도 2 내지 도 4를 참조하여 본 발명에 의한 키 교환 및 인증 과정에 대해서 보다 더 자세하게 설명하기로 한다.The key exchange and authentication process according to the present invention will be described in more detail with reference to FIG. 2 to FIG.
도 2에는 사용자 단말기(10)와 서버(20)간의 제1 키 교환 및 인증 과정이 자세하게 도시되어 있다.2, a first key exchange and authentication process between the
사용자 단말기(10)는 제1 자바 보안 요소(JAVA Security암호화값 15)를 포함하고 있으며, 사용자 단말기(10)측의 과정은 제1 자바 보안 요소(15)에 의해서 수행된다. 제1 자바 보안 요소(15)에는 제1 자바 보안 요소와 관련한 키를 생성할 수 있는 보안 속성값(16)이 기록되어 있다.The
제1 자바 보안 요소(15)는, 제1 랜덤 시퀀스 값(SQN1)을 생성하고(단계100-1), SQN1을 제1 자바 보안 요소(15)의 키로 암호화한다(EAKe(SQN1))(단계 100-2).The first
제1 자바 보안 요소(15)는, 헤더에 제1 자바 보안 요소(15)의 임시 ID(ATID)를 포함하고, 바디에는 EAKe(SQN1)를 포함하는 메시지를 서버(20)로 전송하고 세션 ID를 요청한다(단계 100-3).The first
서버(20)는, 하드웨어 보안 모듈(25; HSM)에 ATID와 제1 자바 보안 요소(15)의 키를 생성하기 위한 속성값(AKID)를 조회하고, 제1 자바 보안 요소(15)의 키(AK)와, 제1 자바 보안 요소(15)의 운용 주체에 대해서 암호화된 고유키 값(AOPc)를 생성한다.The
다음으로, EAKe(SQN1)를 복호화하고, SQN1에 1을 더한다. SQN에 1을 더하는 이유는 재전송공격(Replay Attack)을 방지하고 각 단계에서의 순서를 확인하기 위함이다.Next, E AKe (SQN1) is decoded and 1 is added to SQN1. The reason for adding 1 to the SQN is to prevent a replay attack and to check the order in each step.
이어서 (SQN1+1)과 제1 자바 보안 요소(15)의 고유 아이디(AUID)의 배타적 논리합을 산출한다. 이와 같이 배타적 논리합을 수행하는 이유는, 후술하는 바와 같이 SQN1을 제1 자바 보안 요소(15)가 검증하기 위해서이다.Then, the exclusive OR of the (SQN1 + 1) and the unique ID (AUID) of the first
검증에 성공하면 서버(20)는, ATID/AUID/AK/AOPc/SQN1/RAND1을 속성값으로 사용하여 제1 세션키(CK1)와 제1 무결성 검증키(IK1)을 생성한다. 제1 랜덤값(RAND1)은 서버(20)가 생성한 일종의 랜덤값이다.If the verification is successful, the
SQN1과 상대 장치(즉 제1 자바 보안 요소)의 인증을 위한 제1 인증값(AUTN1)과, 제1-1 메시지 검증 코드(MAC1)도 함께 생성한다. 제1-1 메시지 검증 코드(MAC1)는, 상대 장치 즉 제1 자바 보안 요소(15)에서, 서버(20)가 정상적으로 키를 생성했는지에 대한 검증값으로서의 기능을 한다.A first authentication value AUTN1 for authentication of the SQN1 and the partner device (i.e., the first Java security element), and a 1-1 message validation code MAC1. The 1-1 message validation code MAC1 functions as a verification value for whether the
제1 인증값(AUTN1)은 다음과 같이 생성한다.The first authentication value AUTN1 is generated as follows.
AUTN1 = (AUID XOR SQN1)∥ATIDAUTN1 = (AUID XOR SQN1) ∥ATID
서버(20)는, 헤더에 ATID를 포함하고, 바디에는 제1 랜덤값(RAND1)과 AUTN1을 연접한 값을 제1 자바 보안 요소(15)의 키로 암호화한 암호화값(EAKe(RAND1∥AUTN1)을, 제1 자바 보안 요소(15)로 전송한다(단계 100-5).The
제1 자바 보안 요소(15)는, 암호화값(EAKe(RAND1∥AUTN1)을 복호화하고, SQN1을 검증한다.The first
SQN1의 검증 과정은 다음과 같다.The verification process of SQN1 is as follows.
먼저, 복호화하여 획득한 AUTN1에서 ATID를 제거하고, 제1 자바 보안 요소(15)가 다음과 같이 AUTN1에 포함된 <AUID XOR SQN1>와 AUID의 배타적 논리합을 산출하고, 그 결과값이 SQN1과 일치하는지를 판단하면 된다.First, the ATID is removed from the AUTN1 obtained by decryption, and the first
(AUID XOR SQN1) XOR AUID =? SQN1(AUID XOR SQN1) XOR AUID =? SQN1
검증에 성공하면, 제1 자바 보안 요소(15)는, ATID/AUID/AK/AOPc/SQN1/RAND1을 기반으로 제1 세션키(CK1)와 제1 무결성 검증키(IK1)을 생성한다.If the verification is successful, the first
제1 자바 보안 요소(15)는, 제1-1 메시지 검증 코드(MAC1)를 검증한다.The first
제1 자바 보안 요소(15)는, 헤더에 ATID를, (SQN1 + 2)을 제1-2 메시지 검증 코드(RES1))와 연접한 값을 제1 자바 보안 요소의 키로 암호화한 암호화값(EAKe(SQN1 + 2∥RES1))을 포함하는 메시지를, 서버로 전송한다(단계 100-7).The first
서버(20)는, EAKe(SQN1+2∥RES1)를 복호화하고, SQN1을 검증한다. 그리고 RES1 값도 검증하고 성공하면, 헤더에 ATID를, 바디에는 키 교환 및 인증 성공 메시지(AKA Success)를 제1 자바 보안 요소(15)의 키로 암호화한 값을 포함하는 메시지(H(ATID)∥B(EAKe(AKA Success))를, 제1 자바 보안 요소(15)로 전송하고(단계100-9), 제1 키 교환 및 인증 과정을 완료한다.The
도 3에는 서버(20)와 게이트웨이(30)간의 제2 키 교환 및 인증 과정이 자세하게 도시되어 있다.3, a second key exchange and authentication process between the
게이트웨이(30)는 제2 자바 보안 요소(JAVA Secure element; 35)를 포함하고 있다. 게이트웨이(30)의 제2 자바 보안 요소(35)에는 제2 자바 보안 요소와 관련한 키를 생성할 수 있는 보안 속성값(36)이 기록되어 있고, 후술하는 단계(200-1)와 단계(200-2)가 제2 자바 보안 요소(35)에 의해서 수행된다.The
먼저, 제2 자바 보안 요소(35)가 제2 랜덤 시퀀스 값(SQN2)을 생성하고(단계 200-1), SQN2를 제2 자바 보안 요소(35)의 키로 암호화한다(EGKe(SQN2))(단계 200-2).First, the second
게이트웨이(30)는, 헤더에 게이트웨이의 임시 ID(GTID)를 포함하고, 바디에는 EGKe(SQN2)를 포함하는 메시지를 서버(20)로 전송하고 세션 ID를 요청한다(단계 200-3).
서버(20)는, 하드웨어 보안 모듈(25)에 GTID와 제2 자바 보안 요소(15)의 키를 생성하기 위한 속성값(GKID)를 조회하고, 제2 자바 보안 요소(35)의 키(GK)와, 제2 자바 보안 요소(35)의 운용 주체에 대해서 암호화된 고유키값(GOPc)을 생성한다.The
서버(20)는, EGKe(SQN2)를 복호화하고, SQN2에 1을 더한다. 이는 앞서 제1 키 교환 및 인증 과정에서 설명했던 바와 같이 재전송공격(Replay Attack)을 방지하고 각 단계에서의 순서를 확인하기 위함이다.The
이어서 (SQN2+1)과 제2 자바 보안 요소(35)의 고유 아이디(GUID)의 배타적 논리합을 산출한다. 이 역시 앞서 제1 키 교환 및 인증 과정에서 설명한 바와 같이 SQN2를 제2 자바 보안 요소(35)가 검증하기 위해서이다.And then calculates an exclusive OR of the unique ID (GUID) of the second Java security element 35 (SQN2 + 1). This is also because the second
검증에 성공하면, 서버(20)는, GTID/GUID/GK/GOPc/SQN2/RAND2를 속성값으로 사용하여 제2 세션키(CK2)와 제2 무결성 검증키(IK2)를 생성한다. 제2 랜덤값(RAND2)은 서버(20)가 생성한 일종의 랜덤값이다.If the verification is successful, the
SQN2와 상대 장치(즉 제2 자바 보안 요소)의 인증을 위한 제2 인증값(AUTN2)과, 제2-1 메시지 검증 코드(MAC2)도 함께 생성한다. 제2-1 메시지 검증 코드(MAC2)는, 상대 장치 즉 제2 자바 보안 요소(35)에서, 서버(20)가 정상적으로 키를 생성했는지에 대한 검증값으로서의 기능을 한다.A second authentication value AUTN2 for authentication of the SQN2 and the partner device (i.e., the second Java security element), and a second-1 message verification code MAC2. The second-1 message validation code MAC2 serves as a verification value as to whether the
제2 인증값(AUTN2)은 다음과 같이 생성한다.The second authentication value AUTN2 is generated as follows.
AUTN2 = (GUID XOR SQN2)∥GTIDAUTN2 = (GUID XOR SQN2) GTID
서버(20)는, 헤더에 GTID를 포함하고, 바디에는 제2 랜덤값(RAND2)과 AUTN2를 연접한 값을 제2 자바 보안 요소(35)의 키로 암호화한 암호화값(EGKe(RAND2∥AUTN2)을, 게이트웨이(30)로 전송한다(단계 200-5).The
게이트웨이(30)는, EGKe(RAND2∥AUTN2)을 복호화하고, SQN2를 검증한다.The
SQN1의 검증 과정은 다음과 같다.The verification process of SQN1 is as follows.
먼저, 복호화하여 획득한 AUTN2에서 GTID를 제거하고, 게이트웨이(20)가 다음과 같이 AUTN2에 포함된 <GUID XOR SQN2>와 GUID의 배타적 논리합을 산출하고, 그 결과값이 SQN2와 일치하는지를 판단하면 된다.First, the GTID is removed from the AUTN2 obtained by decryption, and the
(GUID XOR SQN2) XOR GUID =? SQN2(GUID XOR SQN2) XOR GUID =? SQN2
검증에 성공하면, 게이트웨이(20)가 GTID/GUID/GK/GOPc/SQN2/RAND2를 기반으로 제2 세션키(CK2)와 제2 무결성 검증키(IK2)를 생성한다.If the verification is successful, the
게이트웨이(30)는, 제2-1 메시지 검증 코드(MAC2)를 검증한다.The
검증에 성공하면, 게이트웨이(20)는, 헤더에 GTID를, (SQN2+2)를 제2-2 메시지 검증 코드(RES2)와 연접한 값을 제2 자바 보안 요소(35)의 키로 암호화한 값(EGKe(SQN2+2∥RES2))을 포함하는 메시지를, 서버(20)로 전송한다(단계 200-7).If the verification is successful, the
서버(20)는, EGKe(SQN2+2∥RES2))를 복호화하고, SQN2를 검증한다. 제2-2 메시지 검증 코드(RES2)도 검증하여 성공하면, 헤더에 GTID를, 바디에는 키 교환 및 인증 성공 메시지(AKA Success)를 제2 자바 보안 요소(35)의 키로 암호화한 값을 포함하는 메시지(H(GTID∥B(EGKe(AKA Success))를, 게이트웨이(30)로 전송하고(단계 200-9), 제2 키 교환 및 인증 과정을 완료한다.The server 20 decodes E GKe (SQN2 + 2? RES2) and verifies SQN2. If the second-2 message validation code RES2 is also verified and succeeded, the GTID is included in the header, and the body includes a value obtained by encrypting the key exchange and authentication success message (AKA Success) with the key of the second
도 4에는 게이트웨이(30)와, 사물 인터넷 장치(40)의 제3 자바 보안 요소(45)간의 제3 키 교환 및 인증 과정이 자세하게 도시되어 있다.4 shows in detail a third key exchange and authentication process between the
사물 인터넷 장치(40)는, 제3 자바 보안 요소(45)를 포함하고 있으며, 사물 인터넷 장치(40)측의 과정은 제3 자바 보안 요소(45)에 의해서 수행된다. 제3 자바 보안 요소(45)에는 제3 자바 보안 요소와 관련한 키를 생성할 수 있는 보안 속성값(46)이 기록되어 있다.The
제3 자바 보안 요소(45)는, 제3 랜덤 시퀀스 값(SQN3)을 생성하고(단계 300-1), SQN3을 제3 자바 보안 요소(45)의 키로 암호화한다(EDKe(SQN3))(단계 300-2).The third
제3 자바 보안 요소(45)는, 헤더에 제3 자바 보안 요소(45)의 임시 ID(DTID)를 포함하고, 바디에는 EDKe(SQN3)를 포함하는 메시지를 게이트웨이(30)로 전송하고 세션 ID를 요청한다(단계 300-3).The third
게이트웨이(30)는, 제2 자바 보안 요소(35)에 DTID와 제3 자바 보안 요소(45)의 키를 생성하기 위한 속성값(DKID)를 조회하고, 제3 자바 보안 요소(45)의 키(DK)와, 제3 자바 보안 요소(45)의 운용 주체에 대하여 암호화된 고유키(DOPc)를 생성한다.The
제2 자바 보안 요소(35)는, EDKe(SQN3)를 복호화하고, SQN3에 1을 더한다. 그 이유는 앞서 설명한 바와 같이 재전송공격을 방지하고 각 단계에서의 순서를 확인하기 위함이다.The second
제2 자바 보안 요소(35)는, (SQN3+1)과 제3 자바 보안 요소(45)의 고유 아이디(DUID)의 배타적 논리합을 산출한다. 이 과정은, 후술하는 바와 같이 SQN3을 제3 자바 보안 요소(45)가 검증하기 위함이다.The second
게이트웨이(30)는, DTID/DUID/DK/DOPc/SQN3/RAND3을 속성값으로 하여 제3 세션키(CK3)와 제3 무결성 검증키(IK3)를 생성한다(단계 300-5). 제3 랜덤값(RAND3)은 게이트웨이가 생성한 일종의 랜덤값이다.The
SQN3과 상대 장치(즉 제3 자바 보안 요소)의 인증을 위한 제3 인증값(AUTN3)과, 제3-1 메시지 검증 코드(MAC3)도 함께 생성한다. 제3-1 메시지 검증 코드(MAC3)는, 상대 장치 즉 제3 자바 보안 요소(45)에서, 게이트웨이(30)가 정상적으로 키를 생성했는지에 대한 검증값으로서의 기능을 한다.A third authentication value AUTN3 for authentication of the SQN3 and the partner device (i.e., the third Java security element), and a third-message verification code MAC3. The third-1 message validation code MAC3 serves as a verification value for whether the
제3 인증값(AUTN3)은 다음과 같이 생성한다.The third authentication value AUTN3 is generated as follows.
AUTN3 = (DUID XOR SQN3)∥DTIDAUTN3 = (DUID XOR SQN3) DTID
게이트웨이(30)는, 헤더에 DTID를 포함하고, 바디에는 제3 랜덤값(RAND3)과 AUTN3을 연접한 값을 제3 자바 보안 요소(45)의 키로 암호화한 암호화값(EDKe(RAND3∥AUTN3))을, 제3 자바 보안 요소(45)로 전송한다(단계 300-6).The
제3 자바 보안 요소(45)는, EDKe(RAND3∥AUTN3)을 복호화하고, SQN3을 검증한다.The third
SQN3의 검증 과정은 다음과 같다.The verification process of SQN3 is as follows.
먼저, 복호화하여 획득한 AUTN3에서 DTID를 제거하고, 제3 자바 보안 요소(45)가 다음과 같이 AUTN3에 포함된 <DUID XOR SQN3)과 DUID의 배타적 논리합을 산출하고, 그 결과값이 SQN3과 일치하는지를 판단하면 된다.First, the DTID is removed from the AUTN3 obtained by decryption, and the third
(DUID XOR SQN3) XOR DUID =? SQN3(DUID XOR SQN3) XOR DUID =? SQN3
검증에 성공하면, 제3 자바 보안 요소(45)는, DTID/DUID/DK/DOPc/SQN3/RAND3을 기반으로 제3 세션키(CK3)와 제3 무결성 검증키(IK3)를 생성한다.If the verification is successful, the third
제3 자바 보안 요소(45)는, 제3-1 메시지 검증 코드(MAC3)를 검증한다,The third
제3 자바 보안 요소(45)는, 헤더에 DTID를, (SQN3+2)를 제3-2 메시지 검증 코드(RES3)와 연접한 값을 제3 자바 보안 요소(45)의 키로 암호화한 암호화값(EDKe(SQN3+2∥RES3))을 포함하는 메시지를, 게이트웨이(30)로 전송한다(단계 300-8).The third
게이트웨이(30)는, EDKe(SQN3+2∥RES3)을 복호화하고, SQN3을 검증한다. 그리고 RES3 값도 검증하고 성공하면, 헤더에 DTID를, 바디에는 키 교환 및 인증 성공 메시지(AKA Success)를 제3 자바 보안 요소(45)의 키로 암호화한 값을 포함하는 메시지(H(DTID∥B(EDKe(AKA Success))를, 제3 자바 보안 요소(45)로 전송하고(단계 300-10), 제3 키 교환 및 인증 과정을 완료한다.The
본 발명에 의하면, 하드웨어 기반의 자바 보안 요소를 사용하여 키 교환 및 인증 과정을 수행함으로써, 사물 인터넷 환경에 적합한 대칭키 사용을 하되, 대칭키의 낮은 보안성을 보완할 수 있는 작용 효과가 제공된다. 특히, 본 발명의 독특한 방식에 의해 자바 보안 요소를 이용한 경량 암호화를 멀티 도메인 환경에서 구현함으로써 사용자 단말기와 사물 인터넷 장치간에 경량 암호화 통신을 가능하게 하면서도 보안성 저하의 문제를 극복하는 효과가 제공된다.According to the present invention, by performing a key exchange and authentication process using a hardware-based Java security element, an effect of using a symmetric key suitable for the object Internet environment and supplementing low security of the symmetric key is provided . In particular, by implementing a lightweight encryption using a Java security element in a multi-domain environment by using a unique method of the present invention, lightweight encryption communication is enabled between a user terminal and a destination Internet device, and the effect of overcoming security degradation is provided.
이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.While the present invention has been described with reference to the accompanying drawings, it is to be understood that the scope of the present invention is defined by the claims that follow, and should not be construed as limited to the above-described embodiments and / or drawings. It is to be expressly understood that improvements, changes and modifications that are obvious to those skilled in the art are also within the scope of the present invention as set forth in the claims.
10: 사용자 단말기
20: 서버
30: 게이트웨이
40: 사물 인터넷 장치10: User terminal
20: Server
30: Gateway
40: Things Internet Devices
Claims (6)
제1 자바 보안 요소와 서버가 제1 키 교환 및 인증 과정을 수행하여 제1 세션키(CK1)와 제1 무결성 검증키(IK1)을 제1 자바 보안 요소와 서버가 공유하는 제1 단계와,
서버와 게이트웨이가 제2 키 교환 및 인증 과정을 수행하여 제2 세션키(CK2)와 제2 무결성 검증키(IK2)를 서버와 게이트웨이가 공유하는 제2 단계와,
게이트웨이와 제3 자바 보안 요소가 제3 키 교환 및 인증 과정을 수행하여 제3 세션키(CK3)와 제3 무결성 검증키(IK3)를 게이트웨이와 제3 자바 보안 요소가 공유하는 제3 단계와,
제1 자바 보안 요소가, 제어 명령(DCTL)를 제1 세션키(CK1)로 암호화한 제어 명령 암호화값(ECK1(DCTL))을 포함하는 제1 메시지(M1)를, 제1 무결성 검증키(IK1) 및 제1 메시지를 해쉬한 제1 해쉬값(Hmac(IK1, M1))과 함께, 서버로 전송하는 제4 단계와,
서버가, 제어 명령 암호화값(ECK1(DCTL))과, 제1 세션키(CK1) 및 제1 무결성 검증키(IK1)을 연접한 값을 제2 세션키(CK2)로 암호화한 값(ECK2(CK1∥IK1))을 포함하는 제2 메시지(M2)를, 제2 무결성 검증키(IK2) 및 제2 메시지(M2)를 해쉬한 제2 해쉬값(Hmac(IK2, M2))과 함께, 게이트웨이로 전송하는 제5 단계와,
게이트웨이가, 제어 명령 암호화값(ECK1(DCTL))과, 제1 세션키(CK1) 및 제1 무결성 검증키(IK1)을 연접한 값을 제3 세션키(CK3)로 암호화한 값(ECK3(CK1∥IK1))을 포함하는 제3 메시지(M3)를, 제3 무결성 검증키(IK3) 및 제3 메시지(M3)를 해쉬한 제3 해쉬값(Hmac(IK3, M3))과 함께, 제3 자바 보안 요소로 전송하는 제6 단계와,
제3 자바 보안 요소가, 제어 명령에 대한 결과값(DCTL_Result)을 제1 세션키로 암호화한 제4 메시지(M4)를, 제1 무결성 검증키(IK1) 및 제4 메시지(M4)를 해쉬한 제4 해쉬값(Hmac(IK1, M4))과 함께, 게이트웨이와 서버를 거쳐서 제1 자바 보안 요소로 전송하는 제7 단계를 포함하는,
사물 인터넷 제어 메시지의 송수신 방법.
A user terminal including a first Java security element, a server including a hardware security module, a gateway including a second Java security element, a third Java security element, A method for transmitting and receiving a destination Internet control message in an environment including a destination Internet device including a secure element (JAVA Secure Element)
A first Java security element and a server performing a first key exchange and authentication process to share a first Java security element and a server with a first session key (CK1) and a first integrity verification key (IK1)
A server and a gateway performing a second key exchange and authentication process to share a second session key (CK2) and a second integrity verification key (IK2) with a server and a gateway;
A third step of the gateway and the third Java security element performing a third key exchange and authentication process so that the gateway and the third Java security element share the third session key CK3 and the third integrity verification key IK3;
First Java security element is a control command (D CTL) for the first session key, a control command encryption value encrypted with (CK1) (E CK1 (D CTL)) a first message (M1), comprising a first integrity A verification key (IK1) and a first hash value (Hmac (IK1, M1) having been hashed) to the server;
The server encrypts the value obtained by concatenating the control command encryption value (E CK1 (D CTL )) with the first session key (CK1) and the first integrity verification key (IK1) by encrypting the value with the second session key (CK2) E CK2 second message (M2) to a second integrity check key (IK2), and a second hash value obtained by hashing the message (M2) (Hmac (IK2, M2) containing the (CK1∥IK1))) and Together with the gateway,
The gateway encrypts the value obtained by concatenating the control command encryption value (E CK1 (D CTL )) with the first session key (CK1) and the first integrity verification key (IK1) by encrypting with the third session key (CK3) The third hash value Hmac (IK3, M3) obtained by hashing the third integrity verification key IK3 and the third message M3 with the third hash value ECM3 (ECK3 (CK1∥IK1) To a third Java security element,
Third Java security element is a hash result value (D CTL _Result) to the fourth message (M4) obtained by encrypting the first session key, the first integrity check key (IK1) and the fourth message (M4) for the control commands To a first Java security element via a gateway and a server together with a fourth hash value (Hmac (IK1, M4)).
A method for transmitting and receiving Internet control messages.
제1 자바 보안 요소가, 제1 무결성 검증키를 이용하여 제4 메시지의 무결성을 검증하는 제8 단계와,
제4 메시지를 복호화하여 제어 명령에 대한 결과값을 획득하는 제9 단계를 포함하는,
사물 인터넷 제어 메시지의 송수신 방법.
The method of claim 2,
The first Java security element verifying the integrity of the fourth message using the first integrity verification key,
And decrypting the fourth message to obtain a result value for the control command.
A method for transmitting and receiving Internet control messages.
제1 자바 보안 요소와 서버가 제1 키 교환 및 인증 과정을 수행하여 제1 세션키(CK1)와 제1 무결성 검증키(IK1)을 제1 자바 보안 요소와 서버가 공유하는 제1 단계와,
서버와 게이트웨이가 제2 키 교환 및 인증 과정을 수행하여 제2 세션키(CK2)와 제2 무결성 검증키(IK2)를 서버와 게이트웨이가 공유하는 제2 단계와,
게이트웨이와 제3 자바 보안 요소가 제3 키 교환 및 인증 과정을 수행하여 제3 세션키(CK3)와 제3 무결성 검증키(IK3)를 게이트웨이와 제3 자바 보안 요소가 공유하는 제3 단계를 포함하며,
제1 단계는,
제1 자바 보안 요소가 제1 랜덤 시퀀스 값(SQN1)를 생성하는 제1-1 단계와,
제1 자바 보안 요소가 제1 랜덤 시퀀스 값(SQN1)를 제1 자바 보안 요소의 키(AK)로 암호화하여 제1 암호화값(EAKe(SQN1))을 생성하는 제1-2 단계와,
제1 자바 보안 요소가, 제1 자바 보안 요소의 임시 ID(ATID)와 제1 암호화값(EAKe(SQN1))을 포함하는 메시지를, 서버로 전송하고 세션을 요청하는 제1-3 단계와,
서버가, 제1 자바 보안 요소의 임시 ID(ATID)와 제1 자바 보안 요소의 키를 생성하기 위한 속성값 ID(AKID)를 하드웨어 보안 모듈에 조회하는 제1-4 단계와,
서버가, 제1 자바 보안 요소의 키(AK)와 제1 자바 보안 요소의 운용 주체의 암호화된 고유키 값(AOPc)을 생성하는 제1-5 단계와,
서버가, 제1 암호화 값(EAKe(SQN1))을 복호화하는 제1-6 단계와,
서버가, 제1 랜덤 시퀀스 값에 1을 더하는 제1-7 단계와,
서버가, 제1-7 단계에서 산출된 값과 제1 자바 보안 요소의 고유 ID(AUID)의 배타적 논리합을 산출하는 제1-8 단계와,
서버가, 제1 랜덤값(RAND1)을 생성하는 제1-9 단계와,
서버가, 제1 자바 보안 요소의 임시 ID(ATID)와, 제1 자바 보안 요소의 고유 ID(AUID)와, 제1 자바 보안 요소의 키(AK)와, 제1 자바 보안 요소 운용 주체의 암호화된 고유키 값(AOPc)과, 제1 랜덤값(RAND1)과, 제1 랜덤 시퀀스 값(SQN1)에 기반하여 제1 세션키(CK1)과, 제1 무결성 검증키(IK1)을 생성하는 제1-10 단계와,
서버가, 제1 인증값(AUTN1 = AUID XOR SQN1∥ATID)과, 제1-1 메시지 검증 코드(MAC1)을 생성하는 제1-11 단계와,
서버가, 제1 자바 보안 요소의 임시 ID(ATID)와, 제1 랜덤값(RAND)과 제1 인증값(AUTN1)이 연접된 값을 암호화한 암호화값(EAKe(RAND1∥AUTN1))을 포함하는 메시지를, 제1 자바 보안 요소로 전송하는 제1-12 단계와,
제1 자바 보안 요소가, 암호화값(EAKe(RAND1∥AUTN1))을 복호화하는 제1-13 단계와,
제1 자바 보안 요소가, 제1 랜덤 시퀀스 값(SQN)을 검증하는 제1-14 단계와,
제1 자바 보안 요소가, 제1 자바 보안 요소의 임시 ID(ATID)와, 제1 자바 보안 요소의 고유 ID(AUID)와, 제1 자바 보안 요소의 키(AK)와, 제1 자바 보안 요소 운용 주체의 암호화된 고유키 값(AOPc)과, 제1 랜덤값(RAND1)과, 제1 랜덤 시퀀스 값(SQN1)에 기반하여 제1 세션키(CK1)와 제1 무결성 검증키(IK1)를 생성하는 제1-15 단계와,
제1 자바 보안 요소가, 제1-1 메시지 검증 코드(MAC1)를 검증하는 제1-16 단계와,
제1 자바 보안 요소가, 제1 자바 보안 요소의 임시 ID(ATID)와, (SQN1 + 2)을 제1-2 메시지 검증 코드(RES1)와 연접한 값을 제1 자바 보안 요소의 키로 암호화한 암호화값(EAKe(SQN1 + 2∥RES1)) 을 포함하는 메시지를, 서버로 전송하는 제1-17 단계와,
서버가, 제1-15 단계에서 수신한 암호화값을 복호화하는 제1-18 단계와,
서버가, 제1 랜덤 시퀀스 값(SQN1)을 검증하는 제1-19 단계와,
서버가, 제1-2 메시지 검증 코드(RES1)를 검증하는 제1-20 단계를 포함하는,
키 교환 및 인증 방법.
A user terminal including a first Java security element, a server including a hardware security module, a gateway including a second Java security element, a third Java security element, A key exchange and authentication method performed in an environment including an object Internet apparatus including a secure element (JAVA Secure Element)
A first Java security element and a server performing a first key exchange and authentication process to share a first Java security element and a server with a first session key (CK1) and a first integrity verification key (IK1)
A server and a gateway performing a second key exchange and authentication process to share a second session key (CK2) and a second integrity verification key (IK2) with a server and a gateway;
The gateway and the third Java security element perform a third key exchange and authentication process to share the third session key (CK3) and the third integrity verification key (IK3) between the gateway and the third Java security element In addition,
In the first step,
A first step of the first Java security element generating a first random sequence value (SQN1)
The first Java security element encrypting the first random sequence value SQN1 with the key AK of the first Java security element to generate a first encrypted value E AKe (SQN1)
The first Java security element transmits a message including a temporary ID (ATID) of the first Java security element and a first encrypted value (E AKe (SQN1)) to the server and requests a session; ,
A step of the server inquiring the hardware security module for the temporary ID (ATID) of the first Java security element and the attribute value ID (AKID) for generating the key of the first Java security element,
The server generates a key (AK) of the first Java security element and an encrypted unique key value (AOPc) of the principal of the first Java security element,
The server decrypting the first encrypted value (E AKe (SQN1));
The server adds 1 to the first random sequence value,
The server calculates an exclusive OR of the value calculated in the step 1-7 and the unique ID (AUID) of the first Java security element,
A 1-9 step in which the server generates a first random value RAND1,
The server includes a temporary ID (ATID) of a first Java security element, a unique ID (AUID) of a first Java security element, a key (AK) of a first Java security element, (IK1) generating a first session key (CK1) and a first integrity verification key (IK1) based on a first unique value (AOPc), a first random value (RAND1) and a first random sequence value Steps 1-10,
The server generates a first authentication value (AUTN1 = AUID XOR SQN1∥ATD) and a 1-1 message validation code (MAC1)
The server transmits an encryption value E AKe (RAND1∥AUTN1) obtained by encrypting a temporary ID (ATID) of the first Java security element, a value obtained by concatenating the first random value RAND and the first authentication value AUTN1 Transmitting the message including the message to the first Java security element;
The first Java security element decrypts the encrypted value (E AKe (RAND1? AUTN1)),
The first Java security element verifying the first random sequence value (SQN)
The first Java security element comprises a temporary ID (ATID) of the first Java security element, a unique ID (AUID) of the first Java security element, a key (AK) of the first Java security element, The first session key CK1 and the first integrity verification key IK1 based on the encrypted unique key value AOPc of the operating entity, the first random value RAND1 and the first random sequence value SQN1 (1-15)
Step 1-16, in which the first Java security element verifies the 1-1 message validation code MAC1,
The first Java security element encrypts a value obtained by concatenating the temporary ID (ATID) of the first Java security element and the (SQN1 + 2) with the (1-2) message verification code (RES1) with the key of the first Java security element A step of transmitting a message including an encryption value (E AKE (SQN1 + 2∥RES1)) to the server,
The server decrypts the encrypted value received in operation 1-15,
Step 1-19, in which the server verifies the first random sequence value (SQN1)
The server verifying the first-second message verification code (RES1)
Key exchange and authentication methods.
제2 단계는,
제2 자바 보안 요소가 제2 랜덤 시퀀스값(SQN2)을 생성하는 제2-1 단계와,
제2 자바 보안 요소가 제2 랜덤 시퀀스값(SQN2)을 제2 자바 보안 요소의 키(GK)로 암호화하여 제2 암호화값(EGKe(SQN2))을 생성하는 제2-2 단계와,
게이트웨이가, 제2 자바 보안 요소의 임시 ID(GTID)와 제2 암호화값(EGKe(SQN2))을 포함하는 메시지를, 서버로 전송하고 세션을 요청하는 제2-3 단계와,
서버가, 제2 자바 보안 요소의 임시 ID(ATID)와 제2 자바 보안 요소의 키를 생성하기 위한 속성값 ID(GKID)를 하드웨어 보안 모듈에 조회하는 제2-4 단계와,
서버가, 제2 자바 보안 요소의 키(GK)와 제2 자바 보안 요소의 운용 주체의 암호화된 고유키 값(GOPc)을 생성하는 제2-5 단계와,
서버가, 제2 암호화값을 복호화하는 제2-6 단계와,
서버가, 제2 랜덤 시퀀스 값에 1을 더하는 제2-7 단계와,
서버가, 제2-7 단계에서 산출된 값과 제2 자바 보안 요소의 고유 ID(GUID)의 배타적 논리합을 산출하는 제2-8 단계와,
서버가, 제2 랜덤값(RAND2)을 생성하는 제2-9 단계와,
서버가, 제2 자바 보안 요소의 임시 ID(GTID)와, 제2 자바 보안 요소의 고유 ID(GUID)와, 제2 자바 보안 요소의 키(GK)와, 제2 자바 보안 요소 운용 주체의 암호화된 고유키 값(GOPc)과, 제2 랜덤값(RAND2)과, 제2 랜덤 시퀀스 값(SQN2)에 기반하여 제2 세션키(CK2)과, 제1 무결성 검증키(IK2)을 생성하는 제2-10 단계와,
서버가, 제2 인증값(AUTN2 = GUID XOR SQN2∥GTID)과, 제2-1 메시지 검증 코드(MAC2)을 생성하는 제2-11 단계와,
서버가, 제2 자바 보안 요소의 임시 ID(GTID)와, 제2 랜덤값(RAND2)과 제2 인증값(AUTN2)이 연접된 값을 암호화한 암호화값(EGKe(RAND2∥AUTN2))을 포함하는 메시지를, 게이트웨이로 전송하는 제2-12 단계와,
게이트웨이가, 암호화값(EGKe(RAND2∥AUTN2))을 복호화하는 제2-13 단계와,
게이트웨이가, 제2 랜덤 시퀀스 값(SQN2)을 검증하는 제2-14 단계와,
게이트웨이가, 제2 자바 보안 요소의 임시 ID(GTID)와, 제2 자바 보안 요소의 고유 ID(GUID)와, 제1 자바 보안 요소의 키(GK)와, 제2 자바 보안 요소 운용 주체의 암호화된 고유키 값(GOPc)과, 제2 랜덤값(RAND2)과, 제2 랜덤 시퀀스 값(SQN2)에 기반하여 제2 세션키(CK2)와 제2 무결성 검증키(IK2)를 생성하는 제2-15 단계와,
게이트웨이가, 제2-1 메시지 검증 코드(MAC2)를 검증하는 제2-16 단계와,
게이트웨이가, 제2 자바 보안 요소의 임시 ID(GTID)와, (SQN2 + 2)을 제2-2 메시지 검증 코드(RES2)와 연접한 값을 제2 자바 보안 요소의 키로 암호화한 암호화값(EGKe(SQN2 + 2∥RES2)) 을 포함하는 메시지를, 서버로 전송하는 제2-17 단계와,
서버가, 제2-17 단계에서 수신한 암호화값을 복호화하는 제2-18 단계와,
서버가, 제2 랜덤 시퀀스 값(SQN2)을 검증하는 제2-19 단계와,
서버가, 제2-2 메시지 검증 코드(RES2)를 검증하는 제2-20 단계를 포함하는,
키 교환 및 인증 방법.
The method of claim 4,
In the second step,
A second step of the second Java security element generating a second random sequence value SQN2,
The second Java security element encrypts the second random sequence value SQN2 with the key GK of the second Java security element to generate the second encrypted value E GKe (SQN2)
A second step of the gateway transmitting a message including a temporary ID (GTID) and a second encrypted value (E GKe (SQN2)) of the second Java security element to the server and requesting a session;
The server inquiring the hardware security module for the temporary ID (ATID) of the second Java security element and the attribute value ID (GKID) for generating the key of the second Java security element;
The server generates the key (GK) of the second Java security element and the encrypted unique key value (GOPc) of the operating entity of the second Java security element;
(2-6) in which the server decrypts the second encrypted value,
A step 2-7 in which the server adds 1 to the second random sequence value,
The server calculates an exclusive OR of the value calculated in the step 2-7 and the unique ID (GUID) of the second Java security element,
(2-9) in which the server generates a second random value RAND2,
The server sends a temporary ID (GTID) of the second Java security element, a unique ID (GUID) of the second Java security element, a key (GK) of the second Java security element, A second session key CK2 and a first integrity verification key IK2 based on the first unique random key value GOPc, the second random value RAND2, the second random sequence value SQN2, Steps 2-10,
The server generates a second authentication value (AUTN2 = GUID XOR SQN2∥GTID) and a second-1 message verification code (MAC2)
The server transmits an encryption value E GKe (RAND2∥AUTN2) obtained by encrypting a temporary ID (GTID) of the second Java security element and a value obtained by concatenating the second random value RAND2 and the second authentication value AUTN2 A step 2-12 of transmitting a message including the message to the gateway,
A step 2-13 of the gateway decrypting the encryption value (E GKe (RAND2∥AUTN2)),
A second step of the gateway verifying the second random sequence value (SQN2)
The gateway encrypts the temporary ID (GTID) of the second Java security element, the unique ID (GUID) of the second Java security element, the key (GK) of the first Java security element, Generating a second session key (CK2) and a second integrity verification key (IK2) based on the first random value (SQN2), the second random value (SQN2) Step 15,
A second step of the gateway verifying the second-1 message verification code (MAC2)
The gateway encrypts a value obtained by concatenating the temporary ID (GTID) of the second Java security element and (SQN2 + 2) with the (2-2) message verification code (RES2) by using the encryption value E GKe (SQN2 + 2? RES2)) to the server,
A step 2-18 of the server decrypting the encrypted value received in step 2-17,
A step 2-19 in which the server verifies the second random sequence value SQN2,
The server verifies the second-2 message verification code (RES2)
Key exchange and authentication methods.
제3 단계는,
제3 자바 보안 요소가, 제3 랜덤 시퀀스값(SQN3)을 생성하는 제3-1 단계와,
제3 자바 보안 요소가, 제3 랜덤 시퀀스값(SQN3)을 제3 자바 보안 요소의 키(DK)로 암호화하여 제3 암호화값(EDKe(SQN3))을 생성하는 제3-2 단계와,
제3 자바 보안 요소가, 제3 자바 보안 요소의 임시 ID(DTID)와 제3 암호화값(EDKe(SQN3))을 포함하는 메시지를, 제2 자바 보안 요소로 전송하고 세션을 요청하는 제3-3 단계와,
제2 자바 보안 요소가, 제3 자바 보안 요소의 임시 ID(DTID)와 제3 자바 보안 요소의 키를 생성하기 위한 속성값 ID(DKID)를 조회하는 제3-4 단계와,
제2 자바 보안 요소가, 제3 자바 보안 요소의 키(DK)와 제3 자바 보안 요소의 운용 주체의 암호화된 고유키 값(DOPc)을 생성하는 제3-5 단계와,
제2 자바 보안 요소가, 제3 암호화값을 복호화하는 제3-6 단계와,
제2 자바 보안 요소가, 제3 랜덤 시퀀스 값에 1을 더하는 제3-7 단계와,
제2 자바 보안 요소가, 제3-7 단계에서 산출된 값과 제3 자바 보안 요소의 고유 ID(DUID)의 배타적 논리합을 산출하는 제3-8 단계와,
제2 자바 보안 요소가, 제3 랜덤값(RAND3)을 생성하는 제3-9 단계와,
게이트웨이가, 제3 자바 보안 요소의 임시 ID(DTID)와, 제3 자바 보안 요소의 고유 ID(DUID)와, 제3 자바 보안 요소의 키(DK)와, 제3 자바 보안 요소 운용 주체의 암호화된 고유키 값(DOPc)과, 제3 랜덤값(RAND3)과, 제3 랜덤 시퀀스 값(SQN3)에 기반하여 제3 세션키(CK3)과, 제3 무결성 검증키(IK3)을 생성하는 제3-10 단계와,
게이트웨이가 제3 인증값(AUTN3 = DUID XOR SQN3∥DTID)과, 제3-1 메시지 검증 코드(MAC3)을 생성하는 제3-11 단계와,
게이트웨이가, 제3 자바 보안 요소의 임시 ID(DTID)와, 제3 랜덤값(RAND3)과 제3 인증값(AUTN3)이 연접된 값을 암호화한 암호화값(EDKe(RAND3∥AUTN3))을 포함하는 메시지를, 사물 인터넷 장치로 전송하는 제3-12 단계와,
제3 자바 보안 요소가, 암호화값(EDKe(RAND3∥AUTN3))을 복호화하는 제3-13 단계와,
제3 자바 보안 요소가, 제3 랜덤 시퀀스 값(SQN3)을 검증하는 제3-14 단계와,
제3 자바 보안 요소가, 제3 자바 보안 요소의 임시 ID(DTID)와, 제3 자바 보안 요소의 고유 ID(DUID)와, 제3 자바 보안 요소의 키(DK)와, 제3 자바 보안 요소 운용 주체의 암호화된 고유키 값(DOPc)과, 제3 랜덤값(RAND3)과, 제3 랜덤 시퀀스 값(SQN3)에 기반하여 제3 세션키(CK3)와 제3 무결성 검증키(IK3)를 생성하는 제3-15 단계와,
제3 자바 보안 요소가, 제3-1 메시지 검증 코드(MAC3)를 검증하는 제3-16 단계와,
제3 자바 보안 요소가, 제2 자바 보안 요소의 임시 ID(DTID)와, (SQN3 + 2)을 제3-2 메시지 검증 코드(RES3)와 연접한 값을 제3 자바 보안 요소의 키로 암호화한 암호화값(EDKe(SQN3 + 2∥RES3)) 을 포함하는 메시지를, 게이트웨이로 전송하는 제3-17 단계와,
게이트웨이가, 제3-17 단계에서 수신한 암호화값을 복호화하는 제3-18 단계와,
게이트웨이가, 제3 랜덤 시퀀스 값(SQN3)을 검증하는 제3-19 단계와,
게이트웨이가, 제3-2 메시지 검증 코드(RES3)를 검증하는 제3-20 단계를 포함하는,
키 교환 및 인증 방법.
The method according to claim 4 or 5,
In the third step,
A third Java security element generates a third random sequence value SQN3,
The third Java security element encrypts the third random sequence value SQN3 with the key DK of the third Java security element to generate a third encrypted value E DKe (SQN3)
The third Java security element sends a message containing the temporary ID (DTID) of the third Java security element and the third encrypted value (E DKe (SQN3)) to the second Java security element, 3,
The second Java security element includes a third step of inquiring the temporary ID (DTID) of the third Java security element and the attribute value ID (DKID) for generating the key of the third Java security element,
A third Java security element generates a key (DK) of a third Java security element and an encrypted inherent key value (DOPc) of a principal of a third Java security element,
The second Java security element decrypting the third encryption value,
The second Java security element adding 1 to the third random sequence value;
The third Java security element calculates an exclusive OR of the value calculated in operation 3 - 7 and the unique ID (DUID) of the third Java security element,
The third Java security element generates a third random value RAND3;
(DIDD) of the third Java security element, the unique ID (DUID) of the third Java security element, the key (DK) of the third Java security element, the encryption of the third Java security element operating entity A third session key CK3 and a third integrity verification key IK3 based on the first unique random key value DOPc, the third random value RAND3, the third random sequence value SQN3, Steps 3-10,
A third step of the gateway generating a third authentication value (AUTN3 = DUID XOR SQN3∥DTID) and a third-message validation code (MAC3)
The gateway obtains the encryption value (E DKe (RAND3∥AUTN3)) obtained by encrypting the temporary ID (DTID) of the third Java security element and the value obtained by concatenating the third random value RAND3 and the third authentication value AUTN3 A step 3-12 of transmitting a message including the message to the object Internet device,
The third Java security element decrypts the encryption value (E DKe (RAND3∥AUTN3));
The third Java security element verifying the third random sequence value SQN3,
The third Java security element comprises a temporary ID (DTID) of the third Java security element, a unique ID (DUID) of the third Java security element, a key (DK) of the third Java security element, The third session key CK3 and the third integrity verification key IK3 based on the encrypted unique key value DOPc of the operating entity, the third random value RAND3 and the third random sequence value SQN3, (3-15)
The third Java security element verifying the third-first message verification code MAC3,
The third Java security element encrypts a value obtained by concatenating the temporary ID (DTID) of the second Java security element and (SQN3 + 2) with the (3-2) message verification code (RES3) with the key of the third Java security element A message including an encryption value (E DKe (SQN3 + 2∥RES3)) to the gateway;
A third step of the gateway decrypting the encrypted value received in step 3-17,
A step 3-19 in which the gateway verifies the third random sequence value SQN3,
The gateway verifying the third-2 message verification code (RES3)
Key exchange and authentication methods.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180038936A KR101996333B1 (en) | 2018-04-04 | 2018-04-04 | Method of Key Agreement and Authentication for Communicating with IoT Device and Method for Tranceiving Message Using the Same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180038936A KR101996333B1 (en) | 2018-04-04 | 2018-04-04 | Method of Key Agreement and Authentication for Communicating with IoT Device and Method for Tranceiving Message Using the Same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101996333B1 true KR101996333B1 (en) | 2019-07-04 |
Family
ID=67259353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180038936A KR101996333B1 (en) | 2018-04-04 | 2018-04-04 | Method of Key Agreement and Authentication for Communicating with IoT Device and Method for Tranceiving Message Using the Same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101996333B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474921B (en) * | 2019-08-28 | 2020-06-26 | 中国石油大学(北京) | Perception layer data fidelity method for local area Internet of things |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060044315A (en) * | 2004-03-11 | 2006-05-16 | 마이크로소프트 코포레이션 | Methods and systems for protecting media content |
KR101839048B1 (en) * | 2016-04-18 | 2018-03-16 | 이니텍(주) | End-to-End Security Platform of Internet of Things |
-
2018
- 2018-04-04 KR KR1020180038936A patent/KR101996333B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060044315A (en) * | 2004-03-11 | 2006-05-16 | 마이크로소프트 코포레이션 | Methods and systems for protecting media content |
KR101839048B1 (en) * | 2016-04-18 | 2018-03-16 | 이니텍(주) | End-to-End Security Platform of Internet of Things |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474921B (en) * | 2019-08-28 | 2020-06-26 | 中国石油大学(北京) | Perception layer data fidelity method for local area Internet of things |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5307191B2 (en) | System and method for secure transaction of data between a wireless communication device and a server | |
US9112860B2 (en) | Method and apparatus for mutual authentication | |
WO2018045817A1 (en) | Mobile network authentication method, terminal device, server and network authentication entity | |
CN108599925B (en) | Improved AKA identity authentication system and method based on quantum communication network | |
US7979707B2 (en) | Secure seed generation protocol | |
TWI507059B (en) | Mobile station and base station and method for deriving traffic encryption key | |
US8583809B2 (en) | Destroying a secure session maintained by a server on behalf of a connection owner | |
US20060059344A1 (en) | Service authentication | |
US20090276629A1 (en) | Method for deriving traffic encryption key | |
JP2011139457A (en) | System and method for secure transaction of data between wireless communication device and server | |
KR20180095873A (en) | Wireless network access method and apparatus, and storage medium | |
JP2012110009A (en) | Methods and arrangements for secure linking of entity authentication and ciphering key generation | |
JP2009510978A (en) | Constrained encryption key | |
KR20210045676A (en) | Vehicle communication system and method of secure communication therefor | |
US10637651B2 (en) | Secure systems and methods for resolving audio device identity using remote application | |
Claeys et al. | Securing complex IoT platforms with token based access control and authenticated key establishment | |
WO2011142353A1 (en) | Communication device and communication method | |
CN104243452A (en) | Method and system for cloud computing access control | |
KR101996333B1 (en) | Method of Key Agreement and Authentication for Communicating with IoT Device and Method for Tranceiving Message Using the Same | |
KR20190040443A (en) | Apparatus and method for creating secure session of smart meter | |
CN113918971A (en) | Block chain based message transmission method, device, equipment and readable storage medium | |
KR101204648B1 (en) | Method for exchanging key between mobile communication network and wireless communication network | |
CN108737093B (en) | Encryption method, device and system | |
US11102655B1 (en) | Secure device action initiation using a remote device | |
CN115314278B (en) | Trusted network connection identity authentication method, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |