KR102017758B1 - 의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법 - Google Patents

의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법 Download PDF

Info

Publication number
KR102017758B1
KR102017758B1 KR1020160087299A KR20160087299A KR102017758B1 KR 102017758 B1 KR102017758 B1 KR 102017758B1 KR 1020160087299 A KR1020160087299 A KR 1020160087299A KR 20160087299 A KR20160087299 A KR 20160087299A KR 102017758 B1 KR102017758 B1 KR 102017758B1
Authority
KR
South Korea
Prior art keywords
message
application
authentication
medical device
gateway device
Prior art date
Application number
KR1020160087299A
Other languages
English (en)
Other versions
KR20180006664A (ko
Inventor
이석준
권혁찬
안개일
정도영
정병호
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020160087299A priority Critical patent/KR102017758B1/ko
Priority to US15/638,133 priority patent/US20180013832A1/en
Publication of KR20180006664A publication Critical patent/KR20180006664A/ko
Application granted granted Critical
Publication of KR102017758B1 publication Critical patent/KR102017758B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • H04W12/0471Key exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/0002Remote monitoring of patients using telemetry, e.g. transmission of vital signals via a communication network
    • A61B5/0015Remote monitoring of patients using telemetry, e.g. transmission of vital signals via a communication network characterised by features of the telemetry system
    • A61B5/0022Monitoring a patient using a global network, e.g. telephone networks, internet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/22Social work
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/67ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for remote operation

Abstract

의료기기, 게이트웨이 및 이를 이용한 프로토콜 보안 방법이 개시된다. 본 발명의 일실시예에 따른 방법은 의료 기기 및 게이트웨이 기기를 이용하는 프로토콜 보안 방법에 있어서, 상기 의료 기기와 상기 게이트웨이 기기가 보안 세션 정보에 기반하여 인증 및 키 교환을 수행하는 단계; 상기 의료 기기 및 상기 게이트웨이 기기 중 어느 하나가 상기 보안 세션 정보에 기반하여 보호된 응용 메시지를 송신하는 단계 및 상기 의료 기기 및 상기 게이트웨이 기기 중 어느 하나가 상기 보호된 응용 메시지를 수신하는 단계를 포함한다.

Description

의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법 {HEALTH DEVICE, GATEWAY DEVICE AND METHOD FOR SECURING PROTOCOL USING THE SAME}
본 발명은 의료 기기와 게이트웨이 기기 사이의 데이터 전송 기술에 관한 것으로, 보다 상세하게는 의료 기기용 데이터 전송 프로토콜 표준 IEEE 11073-20601에 기반한 프로토콜 보안 기술에 관한 것이다.
최근 들어, 고령화 사회로 진입하면서 독거 노인의 수가 많아지고, 의료 서비스의 목적이 치료 중심에서 예방 중심으로 진화하면서 병원에 방문하지 않고도 개인의 건강 상태를 확인할 수 있는 원격 의료 서비스에 대한 관심도가 더욱 증가하고 있다.
이러한 원격 의료 서비스에서는 개인의 혈압이나 몸무게, 혈당치 등의 개인 건강데이터를 비교적 정확하게 측정해주는 기기와 함께, 이들 기기에서 측정된 데이터를 수집하여 의료정보시스템 혹은 기타 개인건강관리서비스에 전달하는 기기가 필수적이다.
개인건강 데이터를 측정하여 유무선 네트워크를 통하여 수집 장치에게 전송하여 각종 서비스에서 활용할 수 있도록 구성된 기기를 스마트 의료기기라고 한다.
IEEE에서 규정한 11073-20601 프로토콜은 스마트 의료기기(에이전트, Agent)와 데이터 수집 장치인 게이트웨이(매니저, Manager) 사이에 개인건강 데이터를 주고받는데 있어 상호 운용성을 제공하는 표준이다. 상기 표준에서는 스마트 의료기기로부터 측정된 개인건강 데이터의 전달 관점에서, 데이터 표현 모델, 기기의 데이터에 접근하는 서비스 모델, 데이터 교환을 위한 통신 모델 등을 정의하고 있다.
개인건강 데이터는 그 자체로 개인의 프라이버시가 되는 민감한 데이터이므로, 데이터가 전송될 때 타인에게 노출되지 않아야 한다. 또한, 개인건강관리 서비스의 신뢰성 및 차후 의료시스템과의 연계를 고려하면 측정된 데이터가 위변조되지 않고 전달되는 것이 매우 중요하다. 그럼에도 불구하고 IEEE 11073-20601은 자체적으로 어떠한 보안 매커니즘도 포함하고 있지 않으며, 데이터의 전송을 담당하는 하위전송계층의 보안성에 전적으로 의존하고 있다. 이는 곧, 전송계층에서 보안 취약점이 존재한다면, IEEE 11073-20601 프로토콜에서 전달되는 데이터의 보안성, 프라이버시와 신뢰성에 영향을 주는 치명적인 문제가 발생할 수 있음을 의미한다.
한편, 한국등록특허 제 10-1474252 호"IEEE 11073 에이전트의 인증 방법 및 그 시스템"는 IEEE 11073 매니저가 에이전트를 인증하는 방법 및 그 시스템에 관한 것으로, 비밀 키를 저장하는 IEEE 11073 매니저가, 상기 비밀 키를 이용하여 생성된 인증 씨드를 저장하는 IEEE 11073 에이전트로부터, 상기 인증 씨드를 이용하여 상기 IEEE 11073 에이전트에 의하여 생성된 기기 인증 코드를 수신하고, 상기 비밀 키를 이용하여 상기 인증 코드를 인증하는 방법에 관하여 개시하고 있다.
그러나, 한국등록특허 제 10-1474252 호는 기 저장된 비밀키를 이용하는 한계를 가지고 있으며, IEEE 11073 에이전트와 IEEE 11073 매니저 사이의 인증이 이루어진 이후, 응용 메시지 송수신에 관한 보안 방법에 대해서는 침묵하고 있다.
본 발명은 상기 종래 기술의 문제점을 해결하기 위하여, IEEE 11073-20601 프로토콜 구성을 수정하여 하위 전송 계층에 독립적으로 보안성을 제공하는 것을 목적으로 한다.
또한, 본 발명은 하위 전송 계층에 독립적으로 보안성을 제공하기 위하여 프로토콜에 기밀성 및 무결성이 보장되는 상호 인증 및 키 교환, 메시지 보호 기능 및 보호 계층이 분리된 스테이트 머신을 제공하는 것을 목적으로 한다.
또한, 본 발명은 IEEE 11073-20601 프로토콜에서 전달되는 데이터의 보안성 및 프라이버시와 신뢰성을 보장하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 프로토콜 보안 방법은 의료 기기 및 게이트웨이 기기를 이용하는 프로토콜 보안 방법에 있어서, 상기 의료 기기와 상기 게이트웨이 기기가 보안 세션 정보에 기반하여 인증 및 키 교환을 수행하는 단계; 상기 의료 기기 및 상기 게이트웨이 기기 중 어느 하나가 상기 보안 세션 정보에 기반하여 보호된 응용 메시지를 송신하는 단계 및 상기 의료 기기 및 상기 게이트웨이 기기 중 어느 하나가 상기 보호된 응용 메시지를 수신하는 단계를 포함한다.
이 때, 상기 보안 세션 정보는 보안 등급에 따라 사용되는 암호화 알고리즘들의 조합이 다르게 정의된 보안 세트들(CipherSuites)을 포함할 수 있다.
이 때, 상기 암호화 알고리즘들은 사전공유키(Pre-Shared Key, PSK) 암호화 알고리즘, 초타원 곡선 디피-헬만 임시(Elliptic Curve Diffie-Hellman Ephemeral, ECDHE)-PSK 암호화 알고리즘, 고급 암호 표준(Advanced Encryption Standard, AES), 메시지 다이제스트 알고리즘(Message-Digest algorithm 5, MD5) 및 안전한 해시 알고리즘(Secure Hash Algorithm, SHA) 중 어느 하나 이상에 상응할 수 있다.
이 때, 상기 인증 및 키 교환을 수행하는 단계는 상기 의료 기기가 보안 세션 정보가 포함된 어소시에이션 요청 메시지(Application Association ReQuest, AARQ)를 상기 게이트웨이 기기에 송신하는 단계; 상기 의료 기기가, 상기 게이트웨이 기기가 상기 보안 세션 정보에 기반하여 세션 ID를 할당한 어소시에이션 응답 메시지(Application Association REsponse, AARE)를 수신하는 단계; 상기 의료 기기가 상기 AARE에 기반하여 생성된 에이전트 피니쉬드(finished) 메시지가 포함된 AARQ를 상기 게이트웨이 기기에 전송하는 단계; 상기 게이트웨이 기기가 상기 피니쉬드 메시지가 포함된 AARQ에 기반하여 생성된 매니저 피니쉬드 메시지가 포함된 AARE를 상기 의료 기기에 전송하는 단계; 및 상기 의료 기기 및 상기 게이트웨이 기기가 각각 상기 매니저 피니쉬드 메시지와 상기 에이전트 메시지를 비교하여 상기 인증 및 키 교환 성공 여부를 확인하는 단계를 포함할 수 있다.
이 때, 상기 인증 및 키 교환을 수행하는 단계는 상기 PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우, 상기 PSK 에 기반하여 프리마스터 시크릿(premaster secret)을 생성하고, 상기 ECDHE-PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우, 상기 PSK, 상기 ECDHE-PSK 기반 에이전트 임시 공개키 및 매니저 임시 공개키를 이용하여 상기 프리마스터 시크릿을 생성할 수 있다.
이 때, 상기 프리마스터 시크릿은 아더 시크릿(other_secret)의 길이와 상기 PSK의 길이를 합한 길이의 옥텟스트링으로 구성될 수 있다.
이 때, 상기 아더 시크릿의 길이는 상기 PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우, 상기 PSK의 길이와 동일하고, 상기 ECDHE-PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우, 상기 에이전트 임시 공개키 및 상기 매니저 임시 공개키에 기반한 초타원 곡선 상의 포인트 좌표값에 상응하는 옥텟스트링의 길이와 동일할 수 있다.
이 때, 상기 인증 및 키 교환을 수행하는 단계는 상기 생성된 프리마스터 시크릿을 유사 난수 함수(Pseudo Random Function)를 이용하여 마스터 시크릿(master secret)을 생성할 수 있다.
이 때, 상기 인증 및 키 교환을 수행하는 단계는 상기 생성된 마스터 시크릿과 상기 보안 세션 정보에 기반하여 상기 유사 난수 함수를 이용하여 피니쉬드(Finished) 메시지를 생성할 수 있다.
이 때, 상기 인증 및 키 교환을 수행하는 단계는 상기 마스터 시크릿을 상기 유사 난수 함수를 이용하여 MAC(Media Access Control) 보안 키 및 암복호화 키로 분리된 키 블록을 생성하고, 상기 키 블록의 길이는 상기 암호 세트에 기반하여 결정될 수 있다.
상기 인증 및 키 교환을 수행하는 단계는 상기 게이트웨이 기기가 상기 의료 기기로부터 수신한 PSK 식별자에 기반하여 생성한 매니저 피니쉬드 메시지와 상기 의료 기기로부터 수신한 에이전트 피니쉬드 메시지를 비교하여 일치하는 경우, 상기 게이트웨이 기기가 상기 매니저 피니쉬드 메시지를 상기 의료 기기에 송신하고, 상기 의료 기기가 상기 에이전트 피니쉬드 메시지와 상기 수신한 매니저 피니쉬드 메시지를 비교하여 일치하는 경우 상기 인증 및 키 교환이 성공할 수 있다.
이 때, 상기 인증 및 키 교환을 수행하는 단계에서, 상기 의료 기기와 상기 게이트웨이 기기가 송수신하는 어소시에이션 요청 메시지(Application Association ReQuest, AARQ)와 어소시에이션 응답 메시지(Application Association REsponse, AARE)는 어소시에이션 정보(PhdAssociationInformation)의 기능 유닛(Functionalunits)에 보안 프로토콜을 위한 메시지(secureassoc)가 정의될 수 있다.
이 때, 상기 AARQ 및 상기 AARE는 어소시에이션 정보(PhdAssociationInformation)의 옵션 리스트(option-list)에 상기 보안 세션 정보가 정의될 수 있다.
이 때, 상기 보호된 응용 메시지는 어플리케이션 프로토콜 데이터 유닛 타입(Application Protocol Data Unit Type, ApduType)에 보안 프리젠테이션(Secure Presentation, secprst)이 정의될 수 있다.
이 때, 상기 보호된 응용 메시지를 송신하는 단계는 상기 MAC 보안 키를 이용하여 MAC 코드를 생성하는 단계; 상기 응용 메시지에 상기 MAC 코드를 덧붙이는 단계; 상기 암복호화 키 및 이니셜 백터(Initial Vector)를 이용하여 상기 응용 메시지의 암호화를 수행하는 단계 및 상기 암호화된 응용 메시지를 송신하는 단계를 포함할 수 있다.
이 때, 상기 MAC 코드를 생성하는 단계는 상기 MAC 보안 키를 해시 기반 메시지 인증 코드(Hash-based Message Authentication Code, HMAC) 함수를 이용하여 상기 MAC 코드를 생성할 수 있다.
이 때, 상기 덧붙이는 단계는 상기 MAC 코드가 덧붙여진 응용 메시지의 길이가 상기 정의된 암호화 알고리즘의 블록 길이의 정수배가 아닌 경우, 상기 MAC 코드가 덧붙여진 응용 메시지에 패딩(Padding)을 덧붙일 수 있다.
이 때, 상기 암호화를 수행하는 단계는 상기 정의된 암호화 알고리즘의 블록 길이와 동일한 길이의 상기 이니셜 벡터를 이용하여 상기 응용 메시지를 암호화할 수 있다.
이 때, 상기 보호된 응용 메시지를 수신하는 단계는 상기 수신한 응용 메시지의 시퀀스 넘버를 확인하는 단계; 상기 확인된 응용 메시지를 상기 암복호화 키를 이용하여 복호화를 수행하는 단계; 상기 복호화된 응용메시지로부터 분리된 MAC 코드를 상기 MAC 보안 키를 이용하여 검증하는 단계 및 상기 분리된 MAC 코드의 검증이 성공인 경우, 상기 응용 메시지를 상위 계층에 전달하는 단계를 포함할 수 있다.
이 때, 상기 의료 기기와 상기 게이트웨이 기기의 스테이트 머신(State Machine)은 하위 계층과 분리된 보안 계층(Security layer)에서 상기 보안 세션 정보를 처리하고, 상기 수신한 응용 메시지를 복호화하여 상위 계층에 전달할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 의료 기기는 게이트웨이 기기와 메시지를 송수신하는 통신부; 보안 세션 정보에 기반하여 어소시에이션 요청 메시지(Application Association ReQuest, AARQ)를 생성하는 메시지 생성부; 상기 어소시에이션 요청 메시지와 상기 게이트웨이 기기로부터 수신한 어소시에이션 응답 메시지(Application Association REsponse, AARE)에 기반하여 인증 및 키 교환을 수행하는 인증부; 상기 보안 세션 정보에 기반하여 상기 게이트웨이 기기에 송신할 응용 메시지를 보호 처리하는 보호 처리부 및 상기 보호 처리된 응용 메시지를 복호화하는 복호화부를 포함한다.
이 때, 상기 의료 기기의 스테이트 머신(State Machine)은 하위 계층과 분리된 보안 계층(Security layer)에서 상기 보안 세션 정보를 처리하고, 상기 게이트웨이 기기로부터 수신한 응용 메시지를 복호화하여 상위 계층에 전달할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 게이트웨이 기기는 의료 기기와 메시지를 송수신하는 통신부; 상기 의료 기기로부터 수신한 어소시에이션 요청 메시지(Application Association ReQuest, AARQ)의 보안 세션 정보에 기반하여 어소시에이션 응답 메시지를 생성하는 메시지 생성부; 상기 어소시에이션 요청 메시지와 상기 어소시에이션 응답 메시지 (Application Association REsponse, AARE)에 기반하여 인증 및 키 교환을 수행하는 인증부; 상기 보안 세션 정보에 기반하여 상기 의료 기기에 송신할 응용 메시지를 보호 처리하는 암호화부 및 상기 의료 기기로부터 수신한 보호 처리된 응용 메시지를 복호화하는 복호화부를 포함한다.
이 때, 상기 게이트웨이 기기의 스테이트 머신(State Machine)은 하위 계층과 분리된 보안 계층(Security layer)에서 상기 보안 세션 정보를 처리하고, 상기 의료 기기로부터 수신한 응용 메시지를 복호화하여 상위 계층에 전달할 수 있다.
본 발명은 상기 종래 기술의 문제점을 해결하기 위하여, IEEE 11073-20601 프로토콜 구성을 수정하여 하위 전송 계층에 독립적으로 보안성을 제공할 수 있다.
또한, 본 발명은 하위 전송 계층에 독립적으로 보안성을 제공하기 위하여 프로토콜에 기밀성 및 무결성이 보장되는 상호 인증 및 키 교환, 메시지 보호 기능 및 보호 계층이 분리된 스테이트 머신을 제공할 수 있다.
또한, 본 발명은 IEEE 11073-20601 프로토콜에서 전달되는 데이터의 보안성 및 프라이버시와 신뢰성을 보장할 수 있다.
도 1은 본 발명의 일실시예에 따른 프로토콜 보안 방법을 나타낸 동작흐름도이다.
도 2는 도 1에 도시된 인증 및 키 교환 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 3은 본 발명의 일실시예에 따른 보안 등급에 따라 달리 정의되는 암호화 알고리즘을 포함하는 암호 세트들(CipherSuites)을 나타낸 표이다.
도 4는 본 발명의 일실시예에 따른 완전 인증 시, 의료 기기(에이전트)가 송신하는 보안 세션 정보를 나타낸 표이다.
도 5는 본 발명의 일실시예에 따른 축약 인증 시, 의료 기기(에이전트)가 송신하는 보안 세션 정보를 나타낸 표이다.
도 6은 본 발명의 일실시예에 따른 완전 인증 시, 게이트웨이 기기(매니저)가 송신하는 보안 세션 정보를 나타낸 표이다.
도 7은 본 발명의 일실시예에 따른 축약 인증 시, 게이트웨이 기기(매니저)가 송신하는 보안 세션 정보를 나타낸 표이다.
도 8은 도 2에 도시된 에이전트 피니쉬드 메시지가 포함된 AARQ를 송신하는 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 9는 본 발명의 일실시예에 따른 의료 기기(에이전트)가 송신하는 에이전트 피니쉬드 메시지가 포함된 AARQ의 정보를 나타낸 표이다.
도 10은 본 발명의 일실시예에 따른 마스터 시크릿으로부터 생성된 키 블록에 포함된 정보를 나타낸 표이다.
도 11은 도 2에 도시된 매니저 피니쉬드 메시지가 포함된 AARE를 수신하는 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 12는 본 발명의 일실시예에 따른 게이트웨이(매니저)가 송신하는 매니저 피니쉬드 메시지가 포함된 AARE의 정보를 나타낸 표이다.
도 13은 본 발명의 일실시예에 따른 완전 인증 시, 인증 및 키 교환 과정을 나타낸 시퀀스 다이어그램이다.
도 14는 본 발명의 일실시예에 따른 축약 인증 시, 인증 및 키 교환 과정을 나타낸 시퀀스 다이어그램이다.
도 15 내지 도 18은 본 발명의 일실시예에 따른 보안 세션 정보가 삽입된 어소시에이션 요청 메시지(AARQ) 및 어소시에이션 응답 메시지(AARE)를 나타낸 도면이다.
도 19는 본 발명의 일실시예에 따른 AARQ와 AARE를 이용한 인증 및 키 교환 과정을 나타낸 시퀀스 다이어그램이다.
도 20은 도 1에 도시된 응답 메시지 송신 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 21은 본 발명의 일실시예에 따른 응용 메시지 보호에 필요한 정보를 나타낸 표이다.
도 22는 본 발명의 일실시예에 따른 응용 메시지의 암호화 과정을 나타낸 도면이다.
도 23은 도 1에 도시된 응용 메시지 수신 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 24는 본 발명의 일실시예에 따른 스테이트 머신을 나타낸 블록도이다.
도 25는 본 발명의 일실시예에 따른 스테이트 머신의 보안(Security) 계층에서 사용되는 상태 정보를 나타낸 표이다.
도 26은 본 발명의 일실시예에 따른 스테이트 머신의 보안(Security) 계층에서 사용되는 이벤트 정보를 나타낸 표이다.
도 27 내지 도 30은 의료 기기의 스테이트 머신의 보안(Security) 계층에서 사용되는 천이도 정보를 나타낸 표이다.
도 31 내지 도 34는 게이트웨이 기기의 스테이트 머신의 보안(Security) 계층에서 사용되는 천이도 정보를 나타낸 표이다.
도 35는 본 발명의 일실시예에 따른 의료 기기를 나타낸 블록도이다.
도 36은 본 발명의 일실시예에 따른 의료 기기의 스테이트 머신을 나타낸 다이어그램이다.
도 37은 본 발명의 일실시예에 따른 게이트웨이 기기를 나타낸 블록도이다.
도 38은 본 발명의 일실시예에 따른 게이트웨이 기기의 스테이트 머신을 나타낸 다이어그램이다.
도 39는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명은 IEEE 11073-20601에서 규정하는 프로토콜을 보안하는 보안 프로토콜을 구성할 수 있다. 이를 위하여 본 발명은 기본적으로 PSK-TLS(RFC4279, Pre-Shared Key Ciphersuites for Transport Layer Security (TLS))를 참고하여 설계될 수 있다. PSK-TLS는 사전 공유키를 이용한 TLS(version 1.0: RFC2246) 통신에 관한 IETF RFC 표준으로 총 12개의 암호 세트(CipherSuite)과 함께 TLS Handshake 프로토콜 확장에 관하여 개시하고 있다.
본 발명에서는 PSK-TLS 및 TLS 1.0, 1.1, 1.2 등 관련 표준을 적용하여 IEEE 11073-20601 프로토콜에 대한 보안 프로토콜을 설계할 수 있다. 상기 관련 표준을 이용하여 구현하고자 하는 하드웨어를 고려한 암호 세트, TLS의 Handshake 프로토콜에 해당하는 인증 및 키 교환 프로토콜, TLS의 Record 프로토콜에 해당하며 메시지 인증 및 암호화 기능을 담당하는 메시지 보호 프로토콜 등을 정의할 수 있다.
보안 프로토콜이 사용될 의료환경에서는 의료 기기의 하드웨어 수준과 응용 서비스 환경에 따라 적절한 보안 등급 분류가 요구될 수 있다. 예를 들어, 인증 및 키 교환을 위하여 PSK 기반의 인증을 사용하는 경우 보다 더 높은 안전성을 위해서 완전 순방향 비밀성(Perfect Forward Secrecy)를 요구할 경우, DH(Diffie-Hellman, 디피-헬만)을 활용한 키 교환이 필요할 수 있다.
그러나 하드웨어 성능이 매우 떨어지는 의료 기기의 경우 이를 활용하는 것이 어려우므로 본 발명에서 DH 기반 암호화 알고리즘 배제하며, ECDHE(Elliptic Curve Diffie-Hellman Ephemeral, 타원곡선 디피-헬만 임시) 기반 암호화 알고리즘을 인증 및 키 교환에 이용할 수 있다.
본 발명에서 TLS 프로토콜(v1.0: RFC2246, v1.1: RFC4346, v1.2: RFC5246), ECC Ciphersuites for TLS(RFC4492), PSK-TLS 프로토콜(RFC4279) 및 ECDHE_PSK Ciphersuites for TLS(RFC5489)와 HMAC(RFC2104) 등을 참조하여 각 암호 알고리즘의 보안성을 고려하여 선택된 암호 알고리즘은 인증 및 키 교환, 메시지 및 해시(키 생성/메시지 인증 코드용)로 분류될 수 있다.
첫째, 인증 및 키 교환에 사용되는 암호화 알고리즘은 PSK 기반 암호화 알고리즘과 ECDHE-PSK 기반 암호화 알고리즘이 사용될 수 있다.
PSK 기반 암호화 알고리즘은 RFC4279의 2장(PSK Key Exchange Algorithm)과 유사한 방식으로 공개키 기반 알고리즘 없이 PSK 만을 이용하여 상호 인증 및 키 교환을 수행하고자 할 때 사용될 수 있다.
이 때, PSK 기반 암호화 알고리즘은 속도 면에서 빠르나 Perfect Forward Secrecy는 지원하지 않을 수 있다.
ECDHE-PSK 기반 암호화 알고리즘은 RFC5489와 유사한 방식으로 ECDHE(타원곡선 디피-헬만 임시) 기반의 키 교환 알고리즘을 통하여 도출되는 임시(Ephemeral)키와 PSK를 이용하여 상호 인증 및 키 교환을 수행할 수 있다.
이 때, ECDHE-PSK 기반 암호화 알고리즘은 PSK만 사용하는 방식에 비해 속도가 느리며, RSA_PSK, DHE_PSK 방식에 비해서는 속도가 빠르고 저전력 기기에 적합하며 Perfect Forward Secrecy 지원할 수 있다.
또한, ECDHE-PSK 기반 암호화 알고리즘은 사용되는 타원곡선에 따라 속도 및 보안강도를 조절할 수 있다.
둘째, 메시지 암호화에 사용되는 암호화 알고리즘은 AES(Advanced Encryption Standard, 고급 암호 표준)-128 및 AES-256 암호화 알고리즘이 사용될 수 있다.
AES-128 암호화 알고리즘은 128bit 키를 이용하여 128bit 메시지 블록을 암호화할 수 있다. 1999년에 발표된 TLS 1.0에서는 사용되지 않았으나 RFC3268(AES Ciphersuites for TLS)에서 AES-128, AES-256을 사용하는 암호 세트(Ciphersuites)를 정의한 바 있다.
AES-256 암호화 알고리즘은 256bit 키를 이용하여 128bit 메시지 블록을 암호화할 수 있다.
셋째, 해시(키 생성/메시지 인증 코드용) 암호화에 사용되는 암호화 알고리즘은 MD5 (Message-Digest algorithm 5, 메시지 다이제스트 알고리즘 5)+SHA1(Secure Hash Algorithm 1, 안전한 해시 알고리즘 1) 및 SHA-256 암호화 알고리즘이 사용될 수 있다.
MD5+SHA1 암호화 알고리즘은 임의의 메시지 블록에 대하여 각각 128bit, 160bit 해시값을 생성하는 해시 알고리즘으로, 이들은 각각 키 생성을 위해 사용되는 PRF(Pseudo Random Function, 유사 난수 함수)(내부에서 HMAC 사용) 및 메시지 인증코드 생성을 위해 사용되는 HMAC(Hash-based Message Authentication Code, 해시 기반 메시지 인증 코드)에서 이용될 수 있다. TLS 1.0, 1.1에서는 PRF 내부의 해시 알고리즘으로 MD5와 SHA-1이 동시에 사용할 수 있다.
이 때, MD5와 SHA-1은 충돌 공격으로 인한 취약점이 알려지고 있으나, MD5 혹은 SHA-1을 사용하는 HMAC에서는 현재까지 충돌 공격으로 인한 취약점이 알려져 있지 않다.
SHA-256 암호화 알고리즘은 임의의 메시지 블록에 대하여 256bit 해시값을 생성하는 해시 알고리즘으로, TLS 1.2부터는 PRF 내부의 해시 알고리즘으로 SHA-256이 사용될 수 있다.
도 1은 본 발명의 일실시예에 따른 프로토콜 보안 방법을 나타낸 동작흐름도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 프로토콜 보안 방법은 먼저 인증 및 키 교환을 수행한다(S110).
즉, 단계(S110)는 의료 기기(200)와 게이트웨이 기기(300) 사이에 보안 세션 정보에 기반하여 암호화 알고리즘을 이용하여 인증 및 키 교환을 수행할 수 있다.
이 때, 단계(S110)는 의료 기기(200)와 게이트웨이 기기(300)에 존재하는 세션 정보에 기반하여 완전 인증 및 축약 인증 중 어느 하나에 기반하여 인증 및 키 교환을 수행할 수 있다.
이 때, 단계(S110)는 의료 기기(200)와 게이트웨이 기기(300)가 인증 및 키 교환 성공 여부를 확인하여, 상호 인증이 성공인 경우, 응용 메시지 송수신을 수행할 수 있다.
또한, 본 발명의 일실시예에 따른 프로토콜 보안 방법은 응용 메시지를 송신할 수 있다(S120).
즉, 단계(S120)는 상호 인증 및 키 교환이 수행된 의료 기기(200) 및 게이트웨이 기기(300) 중 어느 하나가 응용 메시지를 암호화하여 송신할 수 있다.
이 때, 단계(S120)는 의료 기기(200)가 응용 메시지를 암호화하여 게이트웨이 기기(300)에 송신하거나, 게이트웨이 기기(300)가 응용 메시지를 암호화하여 의료 기기(200)에 송신할 수 있다.
또한, 본 발명의 일실시예에 따른 프로토콜 보안 방법은 응용 메시지를 수신할 수 있다(S130).
즉, 단계(S130)는 의료 기기(200) 및 게이트웨이 기기(300)중 어느 하나가 응용 메시지를 수신하여 복호화 할 수 있다.
이 때, 단계(S130)는 복호화된 응용 메시지를 검증하고, 검증이 성공인 경우, 응용 메시지를 스테이트 머신의 상위 계층에 전달할 수 있다.
이하, 본 발명의 일실시예에 따른 프로토콜 보안 방법에 대한 세부적인 단계를 상세하게 설명한다.
도 2는 도 1에 도시된 인증 및 키 교환 단계의 일 예를 세부적으로 나타낸 동작흐름도이다. 도 3은 본 발명의 일실시예에 따른 보안 등급에 따라 달리 정의되는 암호화 알고리즘을 포함하는 암호 세트(CipherSuite)를 나타낸 표이다. 도 4는 본 발명의 일실시예에 따른 완전 인증 시, 의료 기기(에이전트)가 송신하는 보안 세션 정보를 나타낸 표이다. 도 5는 본 발명의 일실시예에 따른 축약 인증 시, 의료 기기(에이전트)가 송신하는 보안 세션 정보를 나타낸 표이다. 도 6은 본 발명의 일실시예에 따른 완전 인증 시, 게이트웨이 기기(매니저)가 송신하는 보안 세션 정보를 나타낸 표이다. 도 7은 본 발명의 일실시예에 따른 축약 인증 시, 게이트웨이 기기(매니저)가 송신하는 보안 세션 정보를 나타낸 표이다. 도 8은 도 2에 도시된 에이전트 피니쉬드 메시지가 포함된 AARQ를 송신하는 단계의 일 예를 세부적으로 나타낸 동작흐름도이다. 도 9는 본 발명의 일실시예에 따른 마스터 시크릿으로부터 생성된 키 블록에 포함된 정보를 나타낸 표이다. 도 10은 본 발명의 일실시예에 따른 의료 기기(에이전트)가 송신하는 에이전트 피니쉬드 메시지가 포함된 AARQ의 정보를 나타낸 표이다. 도 11은 도 2에 도시된 매니저 피니쉬드 메시지가 포함된 AARE를 수신하는 단계의 일 예를 세부적으로 나타낸 동작흐름도이다. 도 12는 본 발명의 일실시예에 따른 게이트웨이(매니저)가 송신하는 매니저 피니쉬드 메시지가 포함된 AARE의 정보를 나타낸 표이다.
도 2를 참조하면, 단계(S110)는 먼저 보안 세션 정보가 포함된 AARQ를 송신할 수 있다(S111).
즉, 단계(S111)는 의료 기기(200)가 보안 세션 정보가 포함된 어소시에이션 요청 메시지(Application Association ReQuest, AARQ)를 게이트웨이 기기(300)에 송신할 수 있다.
보안 세션 정보는 보안 등급에 따라 사용되는 암호화 알고리즘들의 조합이 다르게 정의된 암호 세트들(CipherSuites)을 포함할 수 있다.
도 3을 참조하면, 본 발명의 일실시예에 따른 보안 등급에 따라 달리 정의되는 암호화 알고리즘을 포함하는 암호 세트들(CipherSuites)을 나타낸 것을 알 수 있다.
의료 기기(200)와 게이트웨이 기기(300)는 특성상 TLS가 사용되는 인터넷상의 서버 환경에 비해 계산 능력이 상대적으로 떨어지는 환경이므로, TLS에서 정의되는 암호 세트(CipherSuite)와 같이 다양한 조합을 지원하지 않을 수 있다.
따라서, 의료기기 및 서비스 환경에 따라 도 3과 같이 보안 등급을 나누고 각 등급에 따르는 암호 세트를 정의할 수 있다.
암호 세트(CipherSuite) 코드값은 TLS와 독립적으로 정의되는 2바이트 값으로, 첫번째 바이트는 인증 및 키교환, 두번째 바이트는 인증 후 메시지 보호를 위해 사용되는 보안 기술에 상응할 수 있다.
보안 등급 0 에서는 사용되는 암호 알고리즘이 존재하지 않고, 보안 등급 1에서는 PSK, AES-128, MD5 및 SHA1 이 사용될 수 있고, 보안 등급 2에서는 PSK, AES-256 및 SHA256 이 사용될 수 있고, 보안 등급 3에서는 ECDHE-PSK, AES-256 및 SHA-256 이 사용될 수 있다.
단계(S111)는 완전 인증 및 축약 인증 중 어느 하나에 따라, 송신하는 AARQ가 달라질 수 있다.
완전 인증은 의료 기기(200)와 게이트웨이 기기(300)가 처음으로 인증을 수행하거나, 기존에 수행했던 보안 세션 정보를 더 이상 사용할 수 없는 경우에 수행될 수 있다.
축약 인증은 기존에 수행했던 보안 세션 정보가 상호 유지되고 있으며, 유효기간이 종료되지 않은 경우 수행될 수 있다.
도 4를 참조하면, 본 발명의 일실시예에 따른 완전 인증 시, 의료 기기(200)가 송신하는 보안 세션 정보를 나타낸 것을 알 수 있다.
즉, 단계(S111)는 완전 인증 시, 의료 기기(200)가 도 4에 도시된 보안 세션 정보를 포함하는 AARQ를 게이트웨이 기기(300)에 송신할 수 있다.
도 5를 참조하면, 본 발명의 일실시예에 따른 축약 인증 시, 의료 기기(200)가 송신하는 보안 세션 정보를 나타낸 것을 알 수 있다.
도 5에 도시된 바와 같이, 의료 기기(200)에 세션 정보가 남아 있으므로 축약 인증 시, 의료 기기(200)가 송신하는 AARQ에 포함되는 보안 세션 정보에는 세션 ID가 포함되는 것을 알 수 있다.
즉, 단계(S111)는 축약 인증 시, 의료 기기(200)가 도 5에 도시된 보안 세션 정보를 포함하는 AARQ를 게이트웨이 기기(300)에 송신할 수 있다.
또한, 단계(S110)는 세션 ID가 할당된 AARE를 수신할 수 있다(S112).
즉, 단계(S112)는 의료 기기(200)가, 게이트웨이 기기(300)가 수신한 AARQ의 보안 세션 정보에 기반하여 세션 ID를 할당한 어소시에이션 응답 메시지(Application Association REsponse, AARE)를 수신할 수 있다.
이 때, 단계(S112)는 완전 인증 시, 의료 기기(200)가 게이트웨이 기기(300)로부터 보안 세션 정보에 세션 ID 가 할당된 AARE 를 수신할 수 있다.
이 때, 단계(S112)는 게이트웨이 기기(300)가 수신한 AARQ를 확인하고, 자체적으로 현재 보안 세션을 식별할 수 있는 새로운 세션 ID를 할당할 수 있다.
또한, 단계(S112)는 수신한 AARQ에 포함된 암호 세트(Cipher Suite)와 네임드 커브 리스트(Named Curve List)을 확인할 수 있다.
이 때, 단계(S112)는 암호 세트가 ECDHE-PSK 기반 암호화 알고리즘인 경우에만, 네임드 커브 리스트 중 적절한 네임드 커브를 선택하고, 임시 매니저 공개키(Manager EC PK)를 선택할 수 있다.
도 6을 참조하면, 본 발명의 일실시예에 따른 완전 인증 시, 게이트웨이 기기(300)가 송신하는 보안 세션 정보를 나타낸 것을 알 수 있다.
즉, 단계(S112)는 완전 인증 시, 게이트웨이 기기(300)가 도 6에 도시된 보안 세션 정보를 포함하는 AARE를 의료 기기(200)에 송신할 수 있고, 의료 기기(200)는 게이트웨이 기기(300)로부터 세션 ID가 할당된 AARE를 수신할 수 있다.
이 때, 단계(S112)는 축약 인증 시, 의료 기기(200)가 게이트웨이 기기(300)로부터 매니저 피니쉬드 메시지가 포함된 AARE 를 수신할 수 있다.
이 때, 단계(S112)는 게이트웨이 기기(300)가 의료 기기(200)가 송신한 AARQ에 포함된 세션 ID로 식별되는 보안 세션 정보를 저장하고 있는 경우, 동일한 세션 ID를 AARE에 할당할 수 있다.
이 때, 단계(S112)는 의료 기기(200)가 송신한 AARQ에 포함된 세션 ID로 식별되는 보안 세션 정보를 저장하고 있지 않은 경우이거나 세션 ID의 유효 기간이 만료된 경우, 세션 ID를 새롭게 생성하여 완전 인증으로 전환할 수도 있다.
또한, 단계(S112)는 축약 인증 시, 게이트웨이 기기(300)가 기존 보안 세션에 활용된 암호 세트(Cipher Suite)와 네임드 커브(Named Curve)를 AARE에 포함시킬 수 있다.
또한, 단계(S112)는 기존 보안 세션에 활용된 정보를 참조하여 매니저 피니쉬드 메시지를 생성하고, AARE에 포함시킬 수 있다.
피니쉬드 메시지 생성 방법에 관한 상세한 내용은 단계(S113)에서 설명한다.
도 7을 참조하면, 본 발명의 일실시예에 따른 축약 인증 시, 게이트웨이 기기(300)가 송신하는 보안 세션 정보를 나타낸 것을 알 수 있다.
즉, 단계(S112)는 축약 인증 시, 게이트웨이 기기(300)가 도 7에 도시된 보안 세션 정보를 포함하는 AARE를 의료 기기(200)에 송신할 수 있고, 의료 기기(200)는 게이트웨이 기기(300)로부터 매니저 피니쉬드 메시지가 포함된 AARE를 수신할 수 있다.
또한, 단계(S110)는 에이전트 피니쉬드 메시지가 포함된 AARQ를 송신할 수 있다(S113).
도 8을 참조하면, 단계(113)는 먼저 프리마스터 시크릿을 생성할 수 있다(S113a)
이 때, 단계(S113a)는 수신한 AARE에 포함된 암호 세트(Cipher Suite)와 네임드 커브(Named Curve)를 확인할 수 있다.
이 때, 단계(S113a)는 암호 세트가 ECDHE-PSK 기반 암호화 알고리즘인 경우에만, 네임드 커브에 기반하여 임시 에이전트 공개키(Agent EC PK)를 선택할 수 있다.
이 때, 단계(S113a)는 임시 에이전트 공개키와 임시 매니저 공개키에 기반하여 ECDHE 키 교환 프로토콜을 통해 상호 교환된 ECDHE 키를 생성할 수 있다.
또한, 단계(S113a)는 PSK 및 PSK+ECDHE 키 중 어느 하나에 기반하여 프리마스터 시크릿(premaster secret)을 생성할 수 있다.
이 때, 프리마스터 시크릿은 아더 시크릿(other_secret)의 길이와 PSK의 길이를 합한 길이의 옥텟스트링으로 구성될 수 있다.
[수학식 1]
premaster secret =M + other_secret + N + psk
이 때, 수학식 1의 '+'는 양 옆의 바이트 문구를 연결하는 명령에 상응할 수 있다.
프리마스터 시크릿은 M 바이트 길이의 other_secret과 N 바이트 길이의 psk의 정보를 기반으로 하여, 총 길이는 (4+M+N) 바이트에 상응할 수 있다.
이 때, 단계(S113a)는 PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우, PSK 에 기반하여 프리마스터 시크릿을 생성할 수 있고, ECDHE-PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우, PSK와 ECDHE 키에 기반하여 프리마스터 시크릿을 생성할 수 있다.
PSK 기반 암호 세트(CipherSuite)(PSK_WITH_NULL_SHA, PSK_WITH_AES_128_CBC_SHA, PSK_WITH_NULL_SHA256, PSK_WITH_AES_256_CBC_SHA256)에서 other_secret은 N 바이트(psk와 같은 길이)길이의 0x00을 연결한 스트링에 상응할 수 있다.
ECDHE-PSK 기반 암호 세트(CipherSuite)(ECDHE_PSK_WITH_NULL_SHA256, ECDHE_PSK_WITH_AES_256_CBC_SHA256)에서 other_secret은 IEEE P1363-2000 표준에서 정의하는 ECKAS-DH1을 사용하여 ECDHE 키 교환을 수행한 후, 교환된 타원곡선 상의 포인트 좌표값을 옥텟스트링으로 표현한 값에 상응할 수 있다.
이 때, 포인트 좌표값은 X 축 좌표값에 상응할 수도 있다.
옥텟스트링은 FE2OSP(IEEE 1363-2000의 5.5.4절 참조)의 결과에 상응할 수 있고, 필드가 주어질 경우 정해진 길이를 출력하므로 옥텟스트링 맨 앞에 0x00이 오더라도 이를 생략할 수 없다. 이 때, 옥텟스트링의 길이가 M이 되며, 옥텟스트링은 other_secret에 상응할 수 있다.
즉, ECDHE-PSK 암호화 알고리즘이 사용되는 경우, other_secret은 타원 곡선 상의 포인트 좌표값에 상응하는 옥텟스트링의 길이와 동일할 수 있다.
또한, 단계(S113)는 마스터 시크릿을 생성할 수 있다(S113b).
이 때, 단계(S113b)는 생성된 프리마스터 시크릿을 유사 난수 함수(Pseudo Random Function, PRF)를 이용하여 마스터 시크릿(master secret)을 생성할 수 있다.
master secret은 보안 세션에서 세션 ID와 함께 유지하여야 하는 값으로, 차후 축약 인증 시 재활용될 수도 있다.
premaster secret의 길이가 가변적인 것과 다르게, master secret의 길이는 총 48바이트의 길이에 상응할 수 있다.
[수학식 2]
master secret = PRF(premaster secret, "master secret", Agent Random + Gateway Random) [0..47]
이 때, 수학식 2의 '+'는 양 옆의 바이트 문구를 연결하는 명령에 상응할 수 있다.
또한, 수학식 2의 [0..47]은 PRF의 결과 중 총 48바이트의 길이를 출력한다는 의미에 상응할 수 있다.
수학식 2에서 PRF는 아래 수학식 3의 TLS v1.2에서 정의한 내용에 상응할 수 있다.
[수학식 3]
PRF (secret, label, seed) = P_<hash> (secret, label + seed)
이 때, 수학식 3의 '+'는 양 옆의 바이트 문구를 연결하는 명령에 상응할 수 있다.
수학식 3에서, label은 ASCII 스트링에 상응할 수 있고, 스트링의 길이나 null 캐릭터를 추가하지 않을 수 있다. 예를 들어, "slithy toves"는 "73 6C 69 74 68 79 20 74 6F 76 65 73"로 처리될 수 있다.
[수학식 4]
PRF(secret, label, seed) = P_MD5(S1, label + seed) xor P_SHA-1(S2, label + seed)
이 때, 수학식 4의 '+'는 양 옆의 바이트 문구를 연결하는 명령에 상응할 수 있다.
이 때, 암호 세트에서 SHA-1 암호화 알고리즘이 사용된다면(PSK_WITH_NULL_SHA, PSK_WITH_AES_128_CBC_SHA), 수학식 4를 이용할 수 있다.
수학식 4에서, P_MD5 및 P_SHA-1은 TLS v1.0에서 정의한 내용에 상응할 수 있다.
수학식 4에서, S1과 S2는 secret을 반으로 자른 결과에 상응할 수 있다.
예를 들어, secret의 길이가 홀수 인 경우, S1과 S2의 길이는 secret의 길이를 2로 나눈 값을 반올림한 값에 상응할 수 있고, S1의 마지막 바이트와 S2의 첫 바이트가 동일한 값을 가지게 될 수 있다.
[수학식 5]
PRF (secret, label, seed) = P_SHA-256 (secret, label + seed)
이 때, 수학식 5의 '+'는 양 옆의 바이트 문구를 연결하는 명령에 상응할 수 있다.
이 때, 암호 세트에서 SHA-256 암호화 알고리즘이 사용된다면(PSK_WITH_NULL_SHA, PSK_WITH_AES_128_CBC_SHA, PSK_WITH_NULL_SHA256, PSK_WITH_AES_256_CBC_SHA256), 수학식 5를 이용할 수 있다.
수학식 5에서, P_SHA-256은 TLS v1.2에서 정의한 내용에 상응할 수 있다.
또한, 단계(S113)는 피니쉬드 메시지를 생성할 수 있다(S113c).
즉, 단계(S113c)는 생성된 마스터 시크릿과 보안 세션 정보에 기반하여 유사 난수 함수를 이용하여 피니쉬드 메시지를 생성할 수 있다.
[수학식 6]
Finished = PRF(master secret, finished_label, Hash(handshake messages) [0..11]
수학식 6에서, [0..11]로 기재된 바와 같이 피니쉬드 메시지는 12바이트 길이에 상응할 수 있다. finished_label은 의료 기기(200)가 전송하는 에이전트 피니쉬드 메시지의 경우 "agent finished"에 상응할 수 있고, 게이트웨이 기기(300)가 전송하는 매니저 피니쉬드 메시지의 경우 "manager finished"에 상응할 수 있다. handshake messages는 피니쉬드 메시지를 전송하기 직전까지 주고 받은 모든 메시지(Version, Random 등)를 연결한 것으로, 보안 세션 정보의 속성(Attribute)의 속성값(attribute-value)에 상응하는 값만을 포함할 수 있다. Hash() 함수는 사용되는 암호 세트(CipherSuite)에 따라 결정되는 해시 함수에 상응할 수 있다.
또한, 단계(S113)는 세션 키를 생성할 수 있다(S113d)
즉, 단계(S113d)는 의료 기기(200)가 생성된 마스터 시크릿을 유사 난수 함수를 이용하여 MAC(Media Access Control) 보안 키 및 암복호화 키로 분리된 키 블록(Key Block)을 생성할 수 있다.
[수학식 7]
Key Block = PRF(master secret, "key expansion", Manager Random + Agent Random)
이 때, 수학식 7의 '+'는 양 옆의 바이트 문구를 연결하는 명령에 상응할 수 있다.
이 때, 키 블록의 길이는 암호 세트에 기반하여 결정될 수 있다. 생성된 키 블록은 각각 Agent MAC secret(에이전트 MAC 보안 키), Manager MAC Secret(매니저 MAC 보안 키), Agent Encryption Key(에이전트 암복호화 키) 및 Manager Encryption Key(매니저 암복호화 키)로 분리될 수 있다.
Agent MAC secret는 의료 기기(200)가 송신하는 응용 메시지의 MAC 생성/검증용 키에 상응할 수 있다.
Manager MAC Secret는 게이트웨이 기기(300)가 송신하는 응용 메시지의 MAC 생성/검증용 키에 상응할 수 있다.
Agent Encryption Key는 의료 기기(200)가 송신하는 응용 메시지의 암복호화용 키에 상응할 수 있다.
Manager Encryption Key는 게이트웨이 기기(300)가 송신하는 응용 메시지의 암복호화용 키에 상응할 수 있다.
이 때, 생성된 키 블록으로부터 분리된 키들은 세션 키에 상응할 수 있다.
도 9를 참조하면, 본 발명의 일실시예에 따른 마스터 시크릿으로부터 생성된 키 블록에 포함된 정보를 나타낸 것을 알 수 있다.
특히, 도 9에 도시된 바에 따르면, MAC 보안 키 및 암복화 키의 길이는 암호 세트에 따라 달라지는 것을 알 수 있다.
또한, 단계(S113)는 에이전트 피니쉬드 메시지가 포함된 AARQ를 송신할 수 있다(S113e).
즉, 단계(S113e)는 의료 기기(200)가 임시 에이전트 공개키(Agent EC PK), 의료 기기(200)의 PSK 식별자 및 생성한 피니쉬드 메시지가 포함된 AARQ를 게이트웨이 기기(300)에 송신할 수 있다.
도 10을 참조하면, 본 발명의 일실시예에 따른 의료 기기(에이전트)가 송신하는 에이전트 피니쉬드 메시지가 포함된 AARQ의 정보를 나타낸 것을 알 수 있다.
에이전트 피니쉬드 메시지가 포함된 AARQ의 정보는 임시 에이전트 공개키(Agent EC PK), PSK 식별자(PSK Identity) 및 에이전트 피니쉬드 메시지(Finished)를 포함할 수 있다.
이 때, PSK 식별자는 현재 인증 및 키 교환을 수행하는 의료 기기(200)의 식별 정보에 상응할 수 있다.
또한, 단계(S110)는 매니저 피니쉬드 메시지가 포함된 AARE를 수신할 수 있다(S114).
도 11을 참조하면, 단계(S114)는 먼저 게이트웨이 기기(300)가 마스터 시크릿을 생성할 수 있다(S114a).
이 때, 단계(S114a)는 게이트웨이 기기(300)가 에이전트 피니쉬드 메시지가 포함된 AARQ를 수신할 수 있다(S114a).
이 때, 단계(S114a)는 게이트웨이 기기(300)가 수신한 AARQ에서 도 9에 도시된, PSK 식별자에 기반하여 인증 DB를 참조할 수 있다.
이 때, 단계(S114a)는 게이트웨이 기기(300)가 PSK 식별자에 기반하여 인증 DB로부터 의료 기기(200)의 암호 세트에 따라 PSK 또는 ECDHE 키를 수신할 수 있다.
이 때, 단계(S114a)는 게이트웨이 기기(300)가 상기 단계(S113b)에서 설명한 마스터 시크릿 생성 과정에 따라 인증 DB로부터 수신한 의료 기기(200)의 PSK 또는 ECDHE 키에 기반하여 마스터 시크릿을 생성할 수 있다.
또한, 단계(S114)는 매니저 피니쉬드 메시지를 생성할 수 있다(S114b).
즉, 단계(S114b)는 게이트웨이 기기(300)가 생성한 마스터 시크릿을 이용하여 매니저 피니쉬드 메시지를 생성할 수 있다.
이 때, 단계(S114b)는 게이트웨이 기기(300)가 상기 단계(S113c)에서 설명한 피니쉬드 메시지 생성 과정에 따라 상기 단계(S113b)에서 생성한 마스터 시크릿을 이용하여 매니저 피니쉬드 메시지를 생성할 수 있다.
또한, 단계(S114)는 생성한 매니저 피니쉬드 메시지와 수신한 에이전트 피니쉬드 메시지를 비교할 수 있다(S114c).
이 때, 단계(S114c)는 수신한 에이전트 피니쉬드 메시지와 생성한 매니저 피니쉬드 메시지가 일치하는 경우, 매니저 피니쉬드 메시지가 포함된 AARE를 생성할 수 있다.
이 때, 단계(S114c)는 수신한 에이전트 피니쉬드 메시지와 생성한 매니저 피니쉬드 메시지가 일치하지 않는 경우, 상기의 과정들 중 어느 하나부터 재시작 하거나 인증 및 키 교환 과정을 종료할 수도 있다.
또한, 단계(S114)는 매니저 피니쉬드 메시지가 포함된 AARE를 수신할 수 있다(S114d).
이 때, 단계(S114d)는 게이트웨이(300)가 생성한 매니저 피니쉬드 메시지가 포함된 AARE를 의료 기기(200)에 송신할 수 있다.
도 12를 참조하면, 본 발명의 일실시예에 따른 게이트웨이(300)가 송신하는 매니저 피니쉬드 메시지가 포함된 AARE의 정보를 나타낸 것을 알 수 있다.
도 12에 도시된 바와 같이, 게이트웨이(300)가 수신한 에이전트 피니쉬드 메시지와 게이트웨이(300)가 생성한 매니저 피니쉬드 메시지가 일치하였으므로, AARE에는 매니저 피니쉬드 메시지만 포함된 것을 알 수 있다.
즉, 단계(S114d)는 의료 기기(200)가, 게이트웨이(300)가 생성한 매니저 피니쉬드 메시지가 포함된 AARE를 수신할 수 있다.
또한, 단계(S110)는 인증 및 키 교환 성공 여부를 확인할 수 있다(S115).
이 때, 단계(S115)는 상기 단계(S113c)에서 의료 기기(300)가 생성한 에이전트 피니쉬드 메시지와 게이트웨이 기기(300)로부터 수신한 매니저 피니쉬드 메시지를 비교할 수 있다.
이 때, 단계(S115)는 생성한 에이전트 피니쉬드 메시지와 수신한 매니저 피니쉬드 메시지가 일치하는 경우, 인증 및 키 교환이 성공인 것을 확인할 수 있다.
즉, 단계(S115)에서 인증 및 키 교환이 성공인 경우, 의료 기기(200)와 게이트웨이 기기(300)가 상호 인증이 될 수 있고, 동일한 세션 키를 공유하고 있음을 확인할 수 있다.
즉, 인증 및 키 교환 성공 이후, 의료 기기(200)와 게이트웨이 기기(300)는 동일한 Agent MAC secret(에이전트 MAC 보안 키), Manager MAC Secret(매니저 MAC 보안 키), Agent Encryption Key(에이전트 암복호화 키) 및 Manager Encryption Key(매니저 암복호화 키)를 보유할 수 있다.
이 때, 단계(S115)는 생성한 에이전트 피니쉬드 메시지와 수신한 매니저 피니쉬드 메시지가 일치하지 않는 경우, 상기의 과정들 중 어느 하나부터 재시작 하거나 인증 및 키 교환 과정을 종료할 수 있다.
또한, 단계(S113)는 축약 인증 시, 의료 기기(200)는 피니쉬드 메시지가 포함된 AARE를 수신할 수 있다.
이 때, 단계(S113)는 수신한 AARE의 세션 ID와 보유한 세션 ID를 비교하여 일치하는 경우, 기존 보안 세션 상의 마스터 시크릿을 검색하여 에이전트 피니쉬드 메시지를 생성할 수 있다.
이 때, 단계(S113)는 수신한 AARE의 세션 ID와 보유한 세션 ID를 비교하여 일치하지 않는 경우, 완전 인증으로 전환하여 인증 및 키 교환을 수행할 수 있다.
이 때, 단계(S113)는 생성한 에이전트 피니쉬드 메시지와 수신한 매니저 피니쉬드 메시지를 비교하여 일치하는 경우, 의료 기기(200)는 에이전트 피니쉬드 메시지가 포함된 AARQ를 게이트웨이 기기(300)에 송신할 수 있다.
이 때, 에이전트 피니쉬드 메시지가 포함된 AARQ의 정보는 도 12에 도시된 바와 같이 에이전트 피니쉬드 메시지만 포함하는 것을 알 수 있다.
이 때, 단계(S113)는 생성한 에이전트 피니쉬드 메시지와 수신한 매니저 피니쉬드 메시지를 비교하여 일치하지 않는 경우, 완전 인증 전환, 상기의 과정들 중 어느 하나부터 재시작 또는 인증 및 키 교환 과정을 종료할 수 있다.
또한, 단계(S115)는 축약 인증 시, 게이트웨이 기기(300)가 에이전트 피니쉬드 메시지가 포함된 AARQ를 수신하여, 수신한 AARQ의 에이전트 피니쉬드 메시지와 생성한 매니저 피니쉬드 메시지를 비교할 수 있다.
이 때, 단계(S115)는 수신한 에이전트 피니쉬드 메시지와 생성한 매니저 피니쉬드 메시지가 일치하는 경우, 인증 및 키 교환이 성공인 것을 확인할 수 있다.
즉, 단계(S115)에서 인증 및 키 교환이 성공인 경우, 의료 기기(200)와 게이트웨이 기기(300)가 상호 인증이 될 수 있고, 동일한 세션 키를 공유하고 있음을 확인할 수 있다.
즉, 인증 및 키 교환 성공 이후, 의료 기기(200)와 게이트웨이 기기(300)는 동일한 Agent MAC secret(에이전트 MAC 보안 키), Manager MAC Secret(매니저 MAC 보안 키), Agent Encryption Key(에이전트 암복호화 키) 및 Manager Encryption Key(매니저 암복호화 키)를 보유할 수 있다.
이 때, 단계(S115)는 수신한 에이전트 피니쉬드 메시지와 생성한 매니저 피니쉬드 메시지가 일치하지 않는 경우, 상기의 과정들 중 어느 하나부터 재시작 하거나 인증 및 키 교환 과정을 종료할 수 있다.
도 13은 본 발명의 일실시예에 따른 완전 인증 시, 인증 및 키 교환 과정을 나타낸 시퀀스 다이어그램이다.
도 13을 참조하면 완전 인증 시, 의료 기기(Agent)(200)는 먼저 Version, Random, Cipher Suites 및 Named Curve List 를 AARQ에 포함시켜 게이트웨이 기기(Manager)(300)에 송신하는 것을 알 수 있다(①).
이 때, Named Curve List는 암호 세트(Cipher Suites)에 따라 ECDHE-PSK 암호화 알고리즘에 상응하는 경우에만 AARQ에 포함될 수 있다.
또한, 게이트웨이 기기(300)는 AARQ를 수신하여 Version, Random, Session ID, Cipher Suite 및 Manager EC PK를 AARE에 포함시켜 의료 기기(200)에 송신하는 것을 알 수 있다(②).
이 때, Named Curve 와 Manager EC PK는 암호 세트(Cipher Suites)에 따라 ECDHE-PSK 암호화 알고리즘에 상응하는 경우에만 AARE에 포함될 수 있다.
또한, 의료 기기(200)는 AARE를 수신하여, Agent EC PK, PSK identity 및 Finished(에이전트 피니쉬드 메시지)를 AARQ에 포함시켜 게이트웨이 기기(300)에 송신하는 것을 알 수 있다(③).
이 때, Agent EC PK 는 암호 세트(Cipher Suites)에 따라 ECDHE-PSK 암호화 알고리즘에 상응하는 경우에만 AARE에 포함될 수 있다.
또한, 게이트웨이 기기(300)는 수신한 PSK Identity에 기반하여 생성한 매니저 피니쉬드 메시지와 수신한 에이전트 피니쉬드 메시지를 비교하여 일치하는 경우 Finished(매니저 피니쉬드 메시지)가 포함된 AARQ 를 의료 기기(200)에 송신할 수 있다(④).
또한, 의료 기기(200)는 수신한 매니저 피니쉬드 메시지와 생성한 에이전트 피니쉬드 메시지를 비교하여 인증 및 키 교환 성공 여부를 확인할 수 있다(⑤).
즉, 도 13에 도시된 바와 같이, 완전 인증 시 인증 및 키 교환 과정은 총 4번의 메시지 송수신(AARQ, AARE)이 이루어질 수 있다.
도 14는 본 발명의 일실시예에 따른 축약 인증 시, 인증 및 키 교환 과정을 나타낸 시퀀스 다이어그램이다.
도 14를 참조하면 축약 인증 시, 의료 기기(Agent)(200)는 먼저 Version, Random, Session ID, Cipher Suites 및 Named Curve List 를 AARQ에 포함시켜 게이트웨이 기기(Manager)(300)에 송신하는 것을 알 수 있다(①).
이 때, Named Curve List는 암호 세트(Cipher Suites)에 따라 ECDHE-PSK 암호화 알고리즘에 상응하는 경우에만 AARQ에 포함될 수 있다.
또한, 게이트웨이 기기(300)는 AARQ를 수신하여 Version, Random, Session ID, Cipher Suite, Named Curve 및 Finished(매니저 피니쉬드 메시지)를 AARE에 포함시켜 의료 기기(200)에 송신하는 것을 알 수 있다(②).
이 때, Named Curve 는 암호 세트(Cipher Suites)에 따라 ECDHE-PSK 암호화 알고리즘에 상응하는 경우에만 AARE에 포함될 수 있다.
또한, 의료 기기(200)는 AARE를 수신하여, 수신한 매니저 피니쉬드 메시지와 생성한 에이전트 피니쉬드 메시지를 비교하여 일치하는 경우 Finished(에이전트 피니쉬드 메시지)가 포함된 AARQ 를 게이트웨이 기기(300)에 송신할 수 있다(③).
또한, 게이트웨이 기기(300)는 수신한 에이전트 피니쉬드 메시지와 생성한 매니저 피니쉬드 메시지를 비교하여 인증 및 키 교환 성공 여부를 확인할 수 있다(④).
즉, 도 14에 도시된 바와 같이, 축약 인증 시 인증 및 키 교환 과정은 총 3번의 메시지 송수신(AARQ, AARE)이 이루어질 수 있다.
도 15 내지 도 18은 본 발명의 일실시예에 따른 보안 세션 정보가 삽입된 어소시에이션 요청 메시지(AARQ) 및 어소시에이션 응답 메시지(AARE)를 나타낸 도면이다.
IEEE 11073-20601 프로토콜의 보안을 수행하기 위하여는 다음의 2가지가 추가적으로 고려될 수 있다. 첫째, IEEE 11073-20601 내부에서 접속(Association) 절차는 AARQ, AARE를 서로 주고받는 것이 전부이나, 완전 인증 및 축약 인증은 각각 4번 및 3번의 메시지 교환이 필요하다. 둘째, 완전 인증 및 축약 인증, 메시지 보호 프로토콜 상에서 전송되어야 하는 정보들이 포함될 수 있도록 IEEE 11073-20601 의 AARQ와 AARE가 수정되어야 한다.
즉, 단계(S110)의 인증 및 키 교환 과정에서 사용되는 AARQ 및 AARE는 ASN.1 (Abstract Syntax Notation One) 식이 본 발명에서 새롭게 정의될 수 있다.
IEEE 11073-20601 Annex A에서는 통신 과정에서 주고 받는 메시지(AARQ, AARE)의 ASN.1 식을 정의하고 있으며 가장 높은 수준의 메시지 프레임에 메시지 보호를 위해서 secprst (Secure PRST)를 추가적으로 정의할 수 있다.
도 15를 참조하면, AARQ 및 AARE의 어플리케이션 프로토콜 데이터 유닛 타입(Application Protocol Data Unit Type, ApduType)에 보안 프리젠테이션(Secure Presentation, secprst)이 정의되는 것을 알 수 있다.
AARQ는 IEEE 11073-20601 프로토콜에서 AarqApdu로 정의가 될 수 있고, 내부적으로 인증 및 키 교환에 필요한 보안 세션 정보가 AarqApdu에 추가될 수 있다.
AarqApdu는 AarpApdu 내부 구조체인 DataProtoList는 내부적으로 DataProto의 List에 상응할 수 있고, DataProto는 data-proto-id와 data-proto-info로 구성될 수 있다.
이 때, data-proto-id의 값이 data-proto-id-20601로 정의 되는 경우, data-proto-info는 PhdAssociationInformation 구조체가 올 수 있다.
즉, AARQ의 내부에는 PhdAssociationInformation 구조체가 있어, PhdAssociationInformation 구조체 안에서 접속(Assocation), 인증 및 키 교환을 위한 보안 세션 정보를 게이트웨이 기기(300)와 교환 할 수 있다.
다음으로, AARE는 IEEE 11073-20601 프로토콜에서 AareApdu로 정의가 될 수 있고, 내부적으로 인증 및 키 교환에 필요한 보안 세션 정보가 AareApdu에 추가될 수 있다.
AareApdu의 내부에는 AarqApdu로부터 수신한 DataProtoList 중 선택된 DataProto가 존재할 수 있다.
이 때, data-proto-id의 값이 data-proto-id-20601로 정의 되는 경우, data-proto-info는 PhdAssociationInformation 구조체가 올 수 있다.
도 16을 참조하면, 보호된 응용 메시지는 어소시에이션 정보(PhdAssociationInformation)의 기능 유닛(Functionalunits)에 보안 프로토콜을 위한 메시지(secureassoc)가 정의되는 것을 알 수 있다.
인증 및 키 교환을 위한 보안 세션 정보는 AARQ 및 AARE의 PhdAssociationInformation의 option-list에 추가될 수 있다. option-list로 들어가는 구조체는 AVA-Type으로 정의 될 수 있도록 attribute-id에 대한 식별자 값과 attribute-value의 구조체로 정의 될 수 있다.
첫번째 송신되는 AARQ에 포함되는 속성(Attribute)은 다음과 같다.
- Version
- Random
- Session ID (축약 인증 시)
- Cipher Suites
- Named Curve List (ECDHE 기반 Cipher Suites 포함 협상 시)
두번째 AARQ에 포함되는 속성(Attribute)은 다음과 같다.
- Agent EC PK (ECDHE 기반 Cipher Suite으로 키 교환 시)
- PSK Identity
- Finished
AarqApdu 내부의 DataProtoList에 2개 이상의 복수개의 DataProto가 존재하는 경우, 각각에는 동일한 option-list가 포함될 수 있다.
첫번째 송신되는 AARE에 포함되는 속성(Attribute)은 다음과 같다.
- Version
- Random
- Session ID
- Cipher Suite
- Named Curve (ECDHE 기반 Cipher Suite으로 키 교환 진행 시)
- Manager EC PK (ECDHE 기반 Cipher Suite으로 키 교환 진행 시 및 완전 인증 시)
- Finished (축약 인증 시)
두번째 AARE에 포함되는 속성(Attribute)은 다음과 같다.
- Finished(완전 인증 시 포함, 축약 인증 시에는 포함되지 않음)
도 17을 참조하면, 본 발명의 일실시예에 따른 Association 결과를 표현하는 AssociateResult를 나타낸 것을 알 수 있다.
이 때, AssociateResult 값에 reject를 포함하는 결과값이 담긴 AARE를 리턴하는 경우, PhdAssociationInformation은 포함되지 않을 수 있고, 인증 관련 정보가 담긴 option-list도 포함되지 않을 수 있다.
도 18을 참조하면, 본 발명의 일실시예에 따른 ASN.1 식으로 정의된 Secure PRST 메시지를 나타낸 것을 알 수 있다.
CipherSuite에 따라서 SecprstApdu의 message에 authenticated-msg와 encrypted-msg가 올 수 있다.
즉, MAC만 지원하는 CipherSuite(PSK_WITH_NULL_SHA, PSK_WITH_NULL_SHA_256, ECDHE_PSK_WITH_NULL_SHA_256)인 경우, authenticated-msg만 올 수 있고, 암호화를 지원하는 CipherSuite(PSK_WITH_AES_128_CBC_SHA, PSK_WITH_AES_256_CBC_SHA_256, ECDHE_PSK_WITH_AES_256_CBC_SHA_256)의 경우, encrypted-msg가 올 수 있다.
이 때, CipherSuite과 일치하지 않는 메시지가 오게 되면 무시할 수 있다.
도 19는 본 발명의 일실시예에 따른 AARQ와 AARE를 이용한 인증 및 키 교환 과정을 나타낸 시퀀스 다이어그램이다.
도 19를 참조하면, 본 발명의 일실시예에 따른 의료 기기(Agent)(200)와 게이트웨이 기기(Manager)(300)가 단계(S110)의 완전 인증 시, 인증 및 키 교환을 수행하는 것을 알 수 있다.
이 때, 상기 도 15 내지 도 18에서 설명한 바와 같이, AARQ 및 AARE의 옵션 리스트(option_list)에 인증 및 키 교환에서 사용되는 보안 세션 정보가 포함되어 인증 및 키 교환을 수행하는 것을 알 수 있다.
도 20은 도 1에 도시된 응답 메시지 송신 단계의 일 예를 세부적으로 나타낸 동작흐름도이다. 도 21은 본 발명의 일실시예에 따른 응용 메시지 보호에 필요한 정보를 나타낸 표이다.
도 20에 도시된 응용 메시지를 송신하는 단계(S120)는 상호 인증 및 키 교환 단계(S110)이 성공적으로 이루어진 이후, 상호 합의된 보안 세션 정보를 기반으로 응용 메시지를 보호하여 송신하는 단계에 상응할 수 있다. 단계(S120)에서 사용되는 메시지 보호 프로토콜은 메시지가 송신자로부터 송신되어 위변조 되지 않은 채 도착했음을 검증할 수 있는 기능 및 메시지의 내용을 제 3자가 볼 수 없는 암호화 기능을 지원할 수 있다.
응용 메시지 보호는 선택되는 CipherSuite에 따라 MAC만 지원할 수도 있고(PSK_WITH_NULL_SHA, PSK_WITH_NULL_SHA256, ECDHE_PSK_WITH_NULL_SHA256), MAC과 암호화를 동시에 지원할 수도 있다(PSK_WITH_AES_128_CBC_SHA, PSK_WITH_AES_256_CBC_SHA256, ECDHE_PSK_WITH_AES_256_CBC_SHA256).
도 20을 참조하면, 단계(S120)는 먼저 MAC 코드를 생성할 수 있다(S121).
즉, 단계(S121)는 MAC 보안 키를 이용하여 MAC 코드를 생성할 수 있다.
[수학식 8]
HMAC_hash(MAC_secret, Sequence Number + Version + Original Message Length (2바이트) + Original Message)
이 때, 수학식 8의 '+'는 양 옆의 바이트 문구를 연결하는 명령에 상응할 수 있다.
이 때, 단계(S121)은 수학식 8과 같이, 해시 기반 메시지 인증 코드(Hash-based Message Authentication Code, HMAC) 함수를 이용하여 MAC 코드를 생성할 수 있다.
이 때, 단계(S121)는 수학식 8에 따라, 원본 응용 메시지(Original Message), Version 및 Sequence Number에 기반하여 MAC 보안 키(Agent MAC Secret 혹은 Manager MAC Secret)를 이용하여 MAC 코드를 생성할 수 있다.
이 때, Sequence Number는 자신이 저장하고 있는 Sequence Number에 1을 더하여 계산될 수 있고, 즉시 새로운 값으로 갱신될 수 있다.
수학식 8의 HMAC_hash는 RFC2104의 정의를 따를 수 있다.
또한, 단계(S120)는 응용 메시지에 MAC 코드를 덧붙일 수 있다(S122).
즉, 단계(S122)는 원본 응용 메시지(Original Message)에 생성한 MAC 코드를 덧붙일 수 있고, 필요에 따라 패딩(Padding)을 추가로 덧붙일 수 있다.
이 때, 단계(S122)는 MAC 코드가 덧붙여진 응용 메시지의 길이가 상기 정의된 암호화 알고리즘의 블록 길이의 정수배가 아닌 경우, 상기 MAC 코드가 덧붙여진 응용 메시지에 패딩(Padding)을 덧붙일 수 있다.
패딩(Padding)은 원본 응용 메시지(Original Message)와 MAC 코드를 더한 길이가 암호화 알고리즘의 블록 크기(16 or 32바이트)의 정수배가 아닐 경우, 이를 맞춰주기 위해 추가하는 정보에 상응할 수 있다.
이 때, 패딩(Padding)은 최대 255바이트까지 추가될 수 있으며, 최소한도로 추가되어야 하는 길이 이상으로 추가될 수도 있다.
예를 들어, AES-256을 암호화 알고리즘으로 사용하는 환경에서 원본 응용 메시지(Original Message)와 MAC 코드를 더한 길이가 135바이트인 경우, AES-256의 블록크기인 32바이트의 정수배로 만들기 위하여 필요한 패딩(Padding)의 최소 길이는 25바이트(32 x 5 - 135)에 상응할 수 있다.
그러나, 블록 크기의 정수배만 만족을 한다면 더 큰 값(예, 61바이트 = 25 + 32)이어도 관계가 없을 수 있으며, 안전성 면에서 외부 공격자가 전체 패킷의 크기를 예상하는 것을 방해할 수 있다.
본 발명의 일실시예에 따른 패딩(Padding) 값은 하위호환성 등을 고려한 TLS 1.2 및 그 이하 버전에서 정의하는 패딩(Padding) 규칙과는 상이한 것으로, PKCS #7및 IETF RFC 2315의 패딩(Padding) 규칙에 기반하여 구현 및 표준적합성을 고려한 패딩(Padding) 값은 다음과 같이 생성될 수 있다.
예를 들어, 단계(S122)는 블록 크기를 맞추기 위해 추가적으로 N바이트의 패딩(Padding)을 덧붙이는 경우, 1바이트 길이의 정수 N을 N번 붙인 옥텟스트링이 패딩(Padding)에 상응할 수 있다. 즉, 덧붙여야 하는 패딩(Padding)의 길이가 6바이트인 경우, 0x06을 6개 연결한 "0x06 0x06 0x06 0x06 0x06 0x06"이 패딩(Padding)으로 추가될 수 있다.
이 때, 단계(S122)는 6바이트의 패딩(Padding)이 필요한 환경인 경우, 38바이트(6+32)의 패딩(Padding)이 추가될 수도 있다. 이 경우, 38바이트 길이의 0x26(십진수 38)을 나열한 값, 즉 "0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26 0x26"에 상응하는 패딩(Padding)이 추가될 수도 있다.
또한, 단계(S122)는 CipherSuite가 암호화를 수행하지 않는 경우, 패딩(Padding) 덧붙임(추가) 과정을 진행하지 않을 수도 있다.
이 때, 도 18을 다시 참조하면, 상기 Original Message에 해당하는 original-apdu에 보호 되어야 할 원본 메시지는 ApduType 중 secprst를 제외한 다양한 메시지가 올 수 있다.
이 때, IEEE 11073-20601에서 정의하는 MDER(Medical Device Encoding Rules) 형태로 인코딩 된 메시지가 올 수 있다.
AuthenticatedMessage에서 MAC는 정의된 해시 알고리즘에 따라 original-apdu, version, sequence-number의 정보를 MAC 생성용 키로 HMAC 함수에 적용하여 생성된 값에 상응할 수 있다.
이 때, 사용되는 해시 알고리즘에 따라 그 길이가 각각 20바이트(SHA-1) 또는 32바이트(SHA-256)에 상응할 수 있다.
본 발명에서 암호화는 블록 기반 암호 알고리즘을 사용할 수 있다. 따라서 암호화를 하고자 하는 메시지는 블록 크기에 맞춰져야 하며, 맞춰지지 않은 경우 블록 크기에 맞도록 패딩(padding)이 추가될 수 있다. 암호화를 하는 메시지는 총 3가지를 포함할 수 있다. 3가지는 MDER 인코딩 된 암호화대상 메시지(original-apdu), 메시지 인증 코드(MAC), 그리고 블록 크기에 맞추기 위한 패딩(padding) 값에 상응할 수 있다.
패딩(padding)을 추가하는 방법은 상술한 방법에 따르며, 이 때 MDER 방식에 따라 인코딩에 포함되는 OCTET STRING의 길이 값은 무시할 수 있다. 즉, 패딩(padding) 생성은 original-apdu의 MDER 인코딩 결과와 MAC의 실제값(길이 제외)만을 붙인 후 생성할 수 있다.
또한, 단계(S120)는 응용 메시지를 암호화할 수 있다(S123).
즉, 단계(S123)는 암복호화 키 및 이니셜 백터(Initial Vector, IV)를 이용하여 응용 메시지의 암호화를 수행할 수 있다.
이 때, 단계(S123)는 AES-128 및 AES-256 중 어느 하나의 CBC 모드 암호화 알고리즘을 사용할 수 있다. CBC 모드는 IV를 랜덤하게 생성할 수 있고, 생성된 IV를 이용할 수 있다. IV의 길이는 사용되는 블록 암호화 알고리즘의 단위 블록 길이에 상응할 수 있으며, AES-128와 AES-256의 경우 16바이트에 상응할 수 있다.
이 때, IV는 응용 메시지를 전송할 때마다 랜덤하게 생성될 수 있다.
이 때, 암복화 키는 Agent Encryption Key 또는 Manager Encryption Key에 상응할 수 있다.
이 때, 도 18을 참조하면, 암호 세트에서 정의된 암호화 알고리즘에 따라 응용 메시지와 암복호화 키, IV를 이용하여 암호화를 수행한 결과가 EncryptedMessage의 encrypted-data에 포함될 수 있다. IV는 initial-vector에 포함될 수 있다.
또한, 단계(S122)는 CipherSuite가 암호화를 수행하지 않는 경우, 진행하지 않을 수 있다.
또한, 단계(S120)는 응용 메시지를 송신할 수 있다(S124).
즉, 단계(S124)는 의료 기기(200) 및 게이트웨이 기기(300) 중 어느 하나가 암호화된 응용 메시지를 게이트웨이 기기(300) 및 의료 기기(200)중 어느 하나에 송신할 수 있다.
이 때, 단계(S124)는 송신할 응용 메시지의 헤더 정보에 Version, Sequence Number 및 Initial Vector를 삽입할 수 있다.
이 때, 단계(S124)는 헤더 정보가 삽입되고, 암호화된 응용 메시지를 송신할 수 있다.
도 21을 참조하면, 응용 메시지 보호가 필요한 원본 응용 메시지(Original Message)에 대하여, 메시지 보호 프로토콜이 추가적으로 필요한 정보를 나타낸 것을 알 수 있다.
메시지 보호 프로토콜이 추가적으로 필요한 정보는 Version, Sequence Number 및 Initial Vector를 포함하는 것을 알 수 있다.
Sequence Number는 의료 기기(200)와 게이트웨이 기기(300)가 각각 전송하는 메시지에 대해 개별적으로 유지될 수 있다. 메시지 보안 프로토콜이 사용되는 환경에서는 메시지 전송에 대한 신뢰성이 보장되지 않으므로, Sequence Number가 명시적으로 유지될 수 있으며, 응용 메시지를 수신하는 측에서는(예를 들어, 의료 기기(200)가 송신 메시지라면 게이트웨이 기기(300)는 수신측에 상응할 수 있다.), 상대가 송신한 응용 메시지의 Sequence Number가 자신이 유지하는 최신 Sequence Number보다 크지 않을 경우 수신한 응용 메시지를 무시할 수 있다. 만약, 이러한 문제가 기설정된 값 이상 발생할 경우, Replay Attack으로 간주하고 현 보안 세션을 종료할 수도 있다.
도 22는 본 발명의 일실시예에 따른 응용 메시지의 암호화 과정을 나타낸 도면이다.
도 22를 참조하면, 원본 응용 메시지(Original Message)가 단계(S120)에서 설명한 일련의 과정을 통해 암호화되는 것을 알 수 있다.
본 발명의 일실시예에 따른 응용 메시지의 암호화 과정은 Original Message, MAC 보안 키, Version 및 Sequence Number에 기반하여 HMAC를 통해 MAC 코드를 생성할 수 있다.
이 때, 응용 메시지의 암호화 과정은 생성된 MAC 코드를 Original Message에 덧붙이고, 필요에 따라 패딩을 추가로 덧붙인 이후 암호화(Encrypt)를 수행할 수 있다.
이 때, 덧붙여진 응용 메시지의 암호화(Encrypt)는 암복호화 키와 이니셜 백터를 이용하여 수행될 수 있다.
마지막으로, 응용 메시지의 암호화 과정은 암호화된 응용 메시지의 헤더 정보에 Version(Ver.), Sequence Number(SQ) 및 Initial Vector(IV)를 삽입하여 응용 메시지의 암호화 과정이 완료되는 것을 알 수 있다.
도 23은 도 1에 도시된 응용 메시지 수신 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 23을 참조하면, 단계(S130)는 먼저, 시퀀스 넘버를 확인할 수 있다(S131).
즉, 단계(S131)는 수신한 응용 메시지의 시퀀스 넘버를 확인할 수 있다.
이 때, 단계(S131)는 수신한 응용 메시지에 삽입된 헤더 정보에서 Version, Sequence Number 및 Initial Vector를 분리할 수 있다.
이 때, 단계(S131)는 수신한 Sequence Number가 현재 유지하고 있는 송신측 Sequence Number보다 큰지 확인한다.
이 때, 단계(S131)는 수신한 Sequence Number가 송신측 Sequence Number보다 큰 것으로 확인된 경우, 송신측 Sequence Number를 수신하여, 현재 Sequence Number로 갱신할 수 있다.
이 때, 단계(S131)는 수신한 Sequence Number가 송신측 Sequence Number보다 작거나 같다면 수신한 응용 메시지를 무시할 수 있고, 필요에 따라 에러 처리할 수도 있다.
또한, 단계(S130)는 복호화를 수행할 수 있다(S132).
즉, 단계(S132)는 시퀀스 넘버가 확인된 응용 메시지를 암복호화 키를 이용하여 복호화를 수행할 수 있다.
이 때, 단계(S132)는 수신한 응용 메시지를 분리된 Initial Vector와 송신측 암복호화 키(Encryption Key)를 이용하여 복호화를 수행할 수 있다.
이 때, 송신측이 의료 기기(200)인 경우, 암복호화 키는 Agent Encryption Key에 상응할 수 있고, 송신측이 게이트웨이 기기(300)인 경우, 암복호화 키는 Manager Encryption Key에 상응할 수 있다.
또한, 단계(S130)는 MAC 코드를 검증할 수 있다(S133).
즉, 단계(S133)는 복호화된 응용메시지로부터 분리된 MAC 코드를 MAC 보안 키를 이용하여 검증할 수 있다.
이 때, 단계(S133)는 복호화된 응용메시지에서 먼저 패딩(Padding)이 존재하는 경우, 패딩(Padding)을 먼저 분리할 수 있다.
이 때, 단계(S133)는 복호화된 응용메시지에서 패딩이 존재하지 않거나, 패딩이 분리된 경우, MAC 코드를 분리할 수 있다.
이 때, 단계(S133)는 상기 단계(S131)에서 분리한 Version, Sequence Number 및 Initial Vector를 이용하여 MAC 코드를 생성할 수 있다.
이 때, 단계(S133)는 생성한 MAC 코드와 분리한 MAC 코드의 일치 여부를 검증할 수 있다.
또한, 단계(S130)는 응용 메시지를 상위 계층에 전달할 수 있다(S134).
즉, 단계(S134)는 생성한 MAC 코드와 분리한 MAC 코드가 일치하여 검증이 성공인 경우, 응용 메시지를 스테이트 머신의 상위 계층에 전달할 수 있다.
도 24는 본 발명의 일실시예에 따른 스테이트 머신을 나타낸 블록도이다.
도 24를 참조하면, 본 발명의 일실시예에 따른 스테이트 머신(State Machine)은 최상위 계층인 Application 계층, 상위 계층 인 20601 계층, 보안 계층(Security) 및 하위 계층 인 Transport 계층을 포함한다.
IEEE 11073-20601 규격의 Communication Model에서는 스마트 의료기기와 게이트웨이 사이의 접속(Association) 및 Configuration 정보의 교환, 스마트 의료기기 MDS 정보의 획득 등의 과정에 대하여 State Machine 형태로 정의를 내리고 있는데, 여기에서는 현재 상태에서 특정한 이벤트(Application 계층의 요청, Transport 계층의 Indication, Transport 계층을 통해 전송 받은 프레임)가 발생하였을 때 취해야 하는 행동(주로, 패킷 생성 후 전송) 및 상태를 정의하고 있다.
이 때, IEEE 11073-20601 규격의 8.4절에서는 Communication Model에 대한 State Machine의 개요에 대해서 언급하고 있으며, 이 State Machine의 구체적인 State Table은 Appendix E에서 정리되어 있다.
본 발명의 일실시예에 따른 보안 프로토콜을 IEEE 11073-20601 프로토콜에 적용 하게 되면, 의료 기기(200)와 게이트웨이 기기(300)는 서로 주고 받는 메시지의 의미와 내용이 변경될 수 있다.
앞서 언급한 바와 같이, AARQ와 AARE에 인증 정보 및 보안 세션 정보가 추가된 메시지를 두번씩 주고 받아야 하며, 이를 받았을 때 처리하는 과정 또한 기존과 달라진다. 따라서, 본 발명의 일실시예에 따른 스테이트 머신(State Machine) 상의 상태, 이벤트 및 수행 동작이 모두 새롭게 정의될 수 있다.
State Machine에 보안 기능을 내재화하기 위하여, 본 발명에서는 보안 기능을 별도의 계층으로 분리하는 모델을 선택하였다.
도 24에 도시된 보안 계층(Security 계층)은 인증 및 키 교환 과정에서의 option-list 처리 및 응용 메시지 처리를 수행할 수 있다.
이 때, 본 발명의 일실시예에 따른 State Machine은 응용에서 접속을 요청할 때, 인증 정보를 option-list에 포함시켜 전송하고, option-list에 인증 정보가 포함되어 온 경우 이를 처리할 수 있다.
또한, 본 발명의 일실시예에 따른 State Machine은 상호 인증 및 키 교환 완료 이후, 응용 메시지를 보호하여 전송하고자 할 때, 20601 계층에서 전송하고자 하는 응용 메시지가 Transport 계층으로 전달되기 전에 메시지 보호 프로토콜을 적용할 수 있다.
또한, 본 발명의 일실시예에 따른 State Machine은 수신한 암호화된 응용 메시지를 검증하고 복호화하여 상위 계층인 20601 계층으로 전달할 수 있다.
본 발명의 일실시예에 따르면, State Machine은 하위 계층인 Transport 계층(ex. Bluetooth)과 별도의 하위 계층인 Security 계층을 별도로 가질 수 있다.
따라서, Transport 계층으로부터 특정 이벤트(연결이 맺어짐 혹은 끊어짐 등)가 발생하게 되면, Security 계층에서 이를 처리한 후 필요에 따라 동일한 이벤트를 발생시켜 상위 계층인 20601 계층으로 전달할 수 있다.
도 25는 본 발명의 일실시예에 따른 스테이트 머신의 보안(Security) 계층에서 사용되는 상태 정보를 나타낸 표이다.
도 25를 참조하면, 본 발명의 일실시예에 따른 스테이트 머신의 보안(Security) 계층에서 사용되는 상태 정보가 의료 기기(에이전트)(200)에서 사용되는 경우와 게이트웨이 기기(매니저)(300)에서 사용되는 경우가 차이점이 있는 것을 알 수 있다.
즉, 의료 기기(200)의 Security 계층에서는 Connected Authenticated 를 제외한 상태 정보가 사용되는 것을 알 수 있고, 게이트웨이 기기(300)의 Security 계층에서는 Connected Key Generating 를 제외한 상태 정보가 사용되는 것을 알 수 있다.
도 26은 본 발명의 일실시예에 따른 스테이트 머신의 보안(Security) 계층에서 사용되는 이벤트 정보를 나타낸 표이다.
도 26을 참조하면, 본 발명의 일실시예에 따른 의료 기기(200)와 게이트웨이 기기(300)의 스테이트 머신의 보안(Security) 계층에서 사용되는 이벤트 정보를 나타낸 것을 알 수 있다. 이러한 이벤트 정보에 기반하여 스테이트 머신의 계층간에 정보를 전달하는 것을 알 수 있다.
도 27 내지 도 30은 의료 기기의 스테이트 머신의 보안(Security) 계층에서 사용되는 천이도 정보를 나타낸 표이다.
도 27 내지 도 30을 참고하면, 의료 기기(200)의 스테이트 머신의 Security 계층에서 상태 별로 이벤트의 종류, 행동, 출력 이벤트 및 다음 상태를 확인할 수 있다.
도 31 내지 도 34는 게이트웨이 기기의 스테이트 머신의 보안(Security) 계층에서 사용되는 천이도 정보를 나타낸 표이다.
도 31 내지 도 34를 참고하면, 게이트웨이 기기(300)의 스테이트 머신의 Security 계층에서 상태 별로 이벤트의 종류, 행동, 출력 이벤트 및 다음 상태를 확인할 수 있다.
도 35는 본 발명의 일실시예에 따른 의료 기기를 나타낸 블록도이다.
도 35를 참조하면, 본 발명의 일실시예에 따른 의료 기기(200)는 통신부(210), 메시지 생성부(220), 인증부(230), 암호화부(240) 및 복호화부(250)를 포함한다.
통신부(210)는 게이트웨이 기기(300)와 메시지를 송수신할 수 있다.
이 때, 통신부(210)는 게이트웨이 기기(300)와 인증 및 키 교환 과정에서의 AARQ, AARE 및 응용 메시지 송수신 과정에서의 응용 메시지를 송수신할 수 있다.
메시지 생성부(220)는 보안 세션 정보에 기반하여 AARQ를 생성할 수 있다.
AARQ 생성 과정은 상기 단계(S110)에서 설명한 내용에 상응할 수 있다.
인증부(230)는 AARQ와 게이트웨이 기기(300)로부터 수신한 AARE에 기반하여 인증 및 키 교환을 수행할 수 있다.
인증 및 키 교환 과정은 상기 단계(S110)에서 설명한 내용에 상응할 수 있다.
암호화부(240)는 보안 세션 정보에 기반하여 게이트웨이 기기(300)에 송신할 응용 메시지를 보호 처리할 수 있다.
응용 메시지를 보호 처리하는 과정은 상기 단계(S120)에서 설명한 내용에 상응할 수 있다.
복호화부(250)는 게이트웨이 기기(300)로부터 수신한 보호 처리된 응용 메시지를 복호화 할 수 있다.
응용 메시지를 복호화하는 과정은 상기 단계(S130)에서 설명한 내용에 상응할 수 있다.
도 36은 본 발명의 일실시예에 따른 의료 기기의 스테이트 머신을 나타낸 다이어그램이다.
도 36을 참조하면, 본 발명의 일실시예에 따른 의료 기기(200)의 스테이트 머신은 크게 Disconnected 스테이트와 Connected 스테이트로 구별된다.
Cpnnected 스테이트는 SecureOperating 스테이트와 Not-secured 스테이트로 구별될 수 있다.
Not-secured 스테이트는 Initalized 스테이트, SecureAssociating 스테이트, Authenticating 스테이트, KeyGenerating 스테이트 및 UnsecureOperating 스테이트로 구별될 수 있다.
각각의 스테이트들에 대한 이벤트, 행동 및 출력 이벤트는 도 27 내지 30에 도시되어 있다.
도 37은 본 발명의 일실시예에 따른 게이트웨이 기기를 나타낸 블록도이다.
본 발명의 일실시예에 따른 게이트웨이 기기(300)는 통신부(310), 메시지 생성부(320), 인증부(330), 암호화부(340) 및 복호화부(350)를 포함한다.
통신부(310)는 의료 기기(200)와 메시지를 송수신할 수 있다.
이 때, 통신부(310)는 의료 기기(200)와 인증 및 키 교환 과정에서의 AARQ, AARE 및 응용 메시지 송수신 과정에서의 응용 메시지를 송수신할 수 있다.
메시지 생성부(320)는 의료 기기(200)로부터 수신한 AARQ의 보안 세션 정보에 기반하여 AARE를 생성할 수 있다.
AARE 생성 과정은 상기 단계(S110)에서 설명한 내용에 상응할 수 있다.
인증부(330)는 의료 기기(200)로부터 수신한 AARQ와 AARE에 기반하여 인증 및 키 교환을 수행할 수 있다.
인증 및 키 교환 과정은 상기 단계(S110)에서 설명한 내용에 상응할 수 있다.
암호화부(340)는 보안 세션 정보에 기반하여 의료 기기(200)에 송신할 응용 메시지를 보호 처리할 수 있다.
응용 메시지를 보호 처리하는 과정은 상기 단계(S120)에서 설명한 내용에 상응할 수 있다.
복호화부(250)는 의료 기기(200)로부터 수신한 보호 처리된 응용 메시지를 복호화 할 수 있다.
응용 메시지를 복호화하는 과정은 상기 단계(S130)에서 설명한 내용에 상응할 수 있다.
도 38은 본 발명의 일실시예에 따른 게이트웨이 기기의 스테이트 머신을 나타낸 다이어그램이다.
본 발명의 일실시예에 따른 의료 기기(200)의 스테이트 머신은 크게 Disconnected 스테이트와 Connected 스테이트로 구별된다.
Cpnnected 스테이트는 SecureOperating 스테이트와 Not-secured 스테이트로 구별될 수 있다.
Not-secured 스테이트는 Initalized 스테이트, SecureAssociating 스테이트, Authenticating 스테이트, Authenticated 스테이트 및 UnsecureOperating 스테이트로 구별될 수 있다.
각각의 스테이트들에 대한 이벤트, 행동 및 출력 이벤트는 도 31 내지 34에 도시되어 있다.
도 39는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
도 39를 참조하면, 본 발명의 실시예는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 39에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 입력 장치(1140), 사용자 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
이상에서와 같이 본 발명에 따른 의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
200: 의료기기 300: 게이트웨이 기기
210, 310: 통신부 220, 320: 메시지 생성부
230, 330: 인증부 240, 340: 암호화부
250, 350: 복호화부 1100: 컴퓨터 시스템
1110: 프로세서 1120: 버스
1130: 메모리 1131: 롬
1132: 램 1140: 사용자 입력 장치
1150: 사용자 출력 장치 1160: 스토리지
1170: 네트워크 인터페이스 1180: 네트워크

Claims (20)

  1. 의료 기기 및 게이트웨이 기기를 이용한 프로토콜 보안 방법에 있어서,
    상기 의료 기기와 상기 게이트웨이 기기가 보안 세션 정보에 기반하여 인증 및 키 교환을 수행하는 단계;
    상기 의료 기기 및 상기 게이트웨이 기기 중 어느 하나가 상기 보안 세션 정보에 기반하여 보호된 응용 메시지를 송신하는 단계; 및
    상기 의료 기기 및 상기 게이트웨이 기기 중 어느 하나가 상기 보호된 응용 메시지를 수신하는 단계;
    를 포함하고,
    상기 인증 및 키 교환을 수행하는 단계는
    상기 의료기기가, 상기 보안 세션 정보가 포함된 제1 응용 요청 메시지를 상기 게이트웨이 기기에게 송신하고,
    상기 게이트웨이 기기가, 상기 제1 응용 요청 메시지에 포함된 상기 보안 세션 정보에 기반하여 어느 하나의 암호세트 및 어느 하나의 네임드 커브를 선택하고, 선택된 상기 암호 세트 및 상기 네임드 커브를 포함시킨 제1 응용 응답 메시지를 상기 의료 기기에게 송신하고,
    상기 의료기기가, 상기 제1 응용 응답 메시지에 포함된 상기 암호 세트 및 상기 네임드 커브에 기반하여 생성한 에이전트 피니쉬드 메시지를 포함시킨 제2 응용 요청 메시지를 상기 게이트웨이 기기에게 송신하고,
    상기 게이트웨이 기기가, 상기 제2 응용 요청 메시지에 포함된 상기 에이전트 피니쉬드 메시지와 상기 암호 세트 및 상기 네임드 커브에 기반하여 생성한 매니저 피니쉬드 메시지를 비교하여 일치하는 경우, 상기 의료 기기를 인증하고, 상기 매니저 피니쉬드 메시지를 포함시킨 제2 응용 응답 메시지를 상기 의료 기기에게 송신하고,
    상기 의료 기기가, 수신한 상기 제2 응용 응답 메시지에 포함된 매니저 피니쉬드 메시지와 상기 에이전트 피니쉬드 메시지를 비교하여 일치하는 경우, 상기 게이트웨이 기기와의 인증이 성공인 것으로 판단하는 것을 특징으로 하는 프로토콜 보안 방법.
  2. 청구항 1에 있어서,
    상기 보안 세션 정보는
    보안 등급에 따라 사용되는 암호화 알고리즘들의 조합이 다르게 정의된 암호 세트들(CipherSuites)을 포함하는 것을 특징으로 하는 프로토콜 보안 방법.
  3. 청구항 2에 있어서,
    상기 암호화 알고리즘들은
    사전공유키(Pre-Shared Key, PSK) 암호화 알고리즘, 타원 곡선 디피-헬만 임시(Elliptic Curve Diffie-Hellman Emepheral, ECDHE)-PSK 암호화 알고리즘, 고급 암호 표준(Advanced Encryption Standard, AES), 메시지 다이제스트 알고리즘(Message-Digest algorithm 5, MD5) 및 안전한 해시 알고리즘(Secure Hash Algorithm, SHA) 중 어느 하나 이상에 상응하는 것을 특징으로 하는 프로토콜 보안 방법.
  4. 청구항 3에 있어서,
    상기 인증 및 키 교환을 수행하는 단계는
    상기 PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우,
    상기 PSK 에 기반하여 프리마스터 시크릿(premaster secret)을 생성하고,
    상기 ECDHE-PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우,
    상기 PSK, 상기 ECDHE-PSK 기반 에이전트 임시 공개키 및 매니저 임시 공개키를 이용하여 상기 프리마스터 시크릿을 생성하는 것을 특징으로 하는 프로토콜 보안 방법.
  5. 청구항 4에 있어서,
    상기 프리마스터 시크릿은
    아더 시크릿(other_secret)의 길이와 상기 PSK의 길이를 합한 길이의 옥텟스트링으로 구성되는 것을 특징으로 하는 프로토콜 보안 방법.
  6. 청구항 5에 있어서,
    상기 아더 시크릿의 길이는
    상기 PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우, 상기 PSK의 길이와 동일하고,
    상기 ECDHE-PSK 암호화 알고리즘 기반 인증 및 키 교환을 수행하는 경우, 상기 에이전트 임시 공개키 및 상기 매니저 임시 공개키에 기반한 타원 곡선 상의 포인트 좌표값에 상응하는 옥텟스트링의 길이와 동일한 것을 특징으로 하는 프로토콜 보안 방법.
  7. 청구항 6에 있어서,
    상기 인증 및 키 교환을 수행하는 단계는
    상기 생성된 프리마스터 시크릿을 유사 난수 함수를 이용하여 마스터 시크릿을 생성하는 것을 특징으로 하는 프로토콜 보안 방법.
  8. 청구항 7에 있어서,
    상기 인증 및 키 교환을 수행하는 단계는
    상기 생성된 마스터 시크릿과 상기 보안 세션 정보에 기반하여 상기 유사 난수 함수를 이용하여 피니쉬드 메시지를 생성하는 것을 특징으로 하는 프로토콜 보안 방법.
  9. 청구항 8에 있어서,
    상기 인증 및 키 교환을 수행하는 단계는
    상기 마스터 시크릿을 상기 유사 난수 함수를 이용하여 MAC 보안 키 및 암복호화 키로 분리된 키 블록을 생성하고,
    상기 키 블록의 길이는 상기 암호 세트들에 기반하여 결정되는 것을 특징으로 하는 프로토콜 보안 방법.
  10. 청구항 9에 있어서,
    상기 인증 및 키 교환을 수행하는 단계는
    상기 게이트웨이 기기가 상기 의료 기기로부터 수신한 PSK 식별자에 기반하여 생성한 매니저 피니쉬드 메시지와 상기 의료 기기로부터 수신한 에이전트 피니쉬드 메시지를 비교하여 일치하는 경우,
    상기 게이트웨이 기기가 상기 매니저 피니쉬드 메시지를 상기 의료 기기에 송신하고, 상기 의료 기기가 상기 에이전트 피니쉬드 메시지와 상기 수신한 매니저 피니쉬드 메시지를 비교하여 일치하는 경우 상기 인증 및 키 교환이 성공하는 것을 특징으로 하는 프로토콜 보안 방법.
  11. 청구항 10에 있어서,
    상기 인증 및 키 교환을 수행하는 단계에서,
    상기 의료 기기와 상기 게이트웨이 기기가 송수신하는 어소시에이션 요청 메시지(Application Association ReQuest, AARQ)와 어소시에이션 응답 메시지(Application Association REsponse, AARE)는
    어소시에이션 정보(PhdAssociationInformation)의 기능 유닛(Functionalunits)에 보안 프로토콜을 위한 메시지(secureassoc)가 정의되는 것을 특징으로 하는 프로토콜 보안 방법.
  12. 청구항 11에 있어서,
    상기 AARQ 및 상기 AARE는
    어소시에이션 정보(PhdAssociationInformation)의 옵션 리스트(option-list)에 상기 보안 세션 정보가 정의되는 것을 특징으로 하는 프로토콜 보안 방법.
  13. 청구항 12에 있어서,
    상기 보호된 응용 메시지는
    어플리케이션 프로토콜 데이터 유닛 타입(Application Protocol Data Unit Type, ApduType)에 보안 프리젠테이션(Secure Presentation, secprst)이 정의되는 것을 특징으로 하는 프로토콜 보안 방법.
  14. 청구항 13에 있어서,
    상기 보호된 응용 메시지를 송신하는 단계는
    상기 MAC 보안 키를 이용하여 MAC 코드를 생성하는 단계;
    상기 응용 메시지에 상기 MAC 코드를 덧붙이는 단계;
    상기 암복호화 키 및 이니셜 백터(Initial Vector)를 이용하여 상기 응용 메시지의 암호화를 수행하는 단계; 및
    상기 암호화된 응용 메시지를 송신하는 단계;
    를 포함하는 것을 특징으로 하는 프로토콜 보안 방법.
  15. 청구항 14에 있어서,
    상기 MAC 코드를 생성하는 단계는
    상기 MAC 보안 키를 해시 기반 메시지 인증 코드(Hash-based Message Authentication Code, HMAC) 함수를 이용하여 상기 MAC 코드를 생성하는 것을 특징으로 하는 프로토콜 보안 방법.
  16. 청구항 15에 있어서,
    상기 암호화를 수행하는 단계는
    상기 정의된 암호화 알고리즘의 블록 길이와 동일한 길이의 상기 이니셜 백터를 이용하여 상기 응용 메시지를 암호화하는 것을 특징으로 하는 프로토콜 보안 방법.
  17. 청구항 16에 있어서,
    상기 보호된 응용 메시지를 수신하는 단계는
    상기 수신한 응용 메시지의 시퀀스 넘버를 확인하는 단계
    상기 확인된 응용 메시지를 상기 암복호화 키를 이용하여 복호화를 수행하는 단계;
    상기 복호화된 응용메시지로부터 분리된 MAC 코드를 상기 MAC 보안 키를 이용하여 검증하는 단계; 및
    상기 분리된 MAC 코드의 검증이 성공인 경우, 상기 응용 메시지를 상위 계층에 전달하는 단계;
    를 포함하는 것을 특징으로 하는 프로토콜 보안 방법.
  18. 청구항 17에 있어서,
    상기 의료 기기와 상기 게이트웨이 기기의 스테이트 머신(State Machine)은
    하위 계층과 분리된 보안 계층(Security layer)에서 상기 보안 세션 정보를 처리하고, 상기 수신한 응용 메시지를 복호화하여 상위 계층에 전달하는 것을 특징으로 하는 프로토콜 보안 방법.
  19. 게이트웨이 기기와 메시지를 송수신하는 통신부;
    보안 세션 정보에 기반하여 어소시에이션 요청 메시지(Application Association ReQuest, AARQ)를 생성하는 메시지 생성부;
    상기 어소시에이션 요청 메시지와 상기 게이트웨이 기기로부터 수신한 어소시에이션 응답 메시지(Application Association REsponse, AARE)에 기반하여 인증 및 키 교환을 수행하는 인증부;
    상기 보안 세션 정보에 기반하여 상기 게이트웨이 기기에 송신할 응용 메시지를 보호 처리하는 암호화부; 및
    상기 게이트웨이 기기로부터 수신한 보호 처리된 응용 메시지를 복호화하는 복호화부;
    를 포함하고,
    상기 메시지 생성부는
    상기 보안 세션 정보가 포함된 제1 응용 요청 메시지를 생성하고
    상기 통신부는
    상기 제1 응용 요청 메시지를 상기 게이트웨이 기기에게 송신하고,
    상기 게이트웨이 기기가, 상기 제1 응용 요청 메시지에 포함된 상기 보안 세션 정보에 기반하여 어느 하나의 암호세트 및 어느 하나의 네임드 커브를 선택하고, 선택된 상기 암호 세트 및 상기 네임드 커브를 포함시킨 제1 응용 응답 메시지를 수신하고,
    상기 메시지 생성부는
    상기 제1 응용 응답 메시지에 포함된 상기 암호 세트 및 상기 네임드 커브에 기반하여 생성한 에이전트 피니쉬드 메시지를 포함시킨 제2 응용 요청 메시지를 생성하고,
    상기 통신부는
    상기 제2 응용 요청 메시지를 상기 게이트웨이 기기에게 송신하고,
    상기 게이트웨이 기기가, 상기 제2 응용 요청 메시지에 포함된 상기 에이전트 피니쉬드 메시지와 상기 암호 세트 및 상기 네임드 커브에 기반하여 상기 메시지 생성부가 생성한 매니저 피니쉬드 메시지를 비교하여 일치하는 경우, 의료 기기를 인증하고, 상기 매니저 피니쉬드 메시지를 포함시킨 제2 응용 응답 메시지를 수신하고,
    상기 인증부는
    상기 제2 응용 응답 메시지에 포함된 매니저 피니쉬드 메시지와 상기 에이전트 피니쉬드 메시지를 비교하여 일치하는 경우, 상기 게이트웨이 기기와의 인증이 성공인 것으로 판단하는 것을 특징으로 하는 의료 기기.
  20. 의료 기기와 메시지를 송수신하는 통신부;
    상기 의료 기기로부터 수신한 어소시에이션 요청 메시지(Application Association ReQuest, AARQ)의 보안 세션 정보에 기반하여 어소시에이션 응답 메시지를 생성하는 메시지 생성부;
    상기 어소시에이션 요청 메시지와 상기 어소시에이션 응답 메시지 (Application Association REsponse, AARE)에 기반하여 인증 및 키 교환을 수행하는 인증부;
    상기 보안 세션 정보에 기반하여 상기 의료 기기에 송신할 응용 메시지를 보호 처리하는 암호화부; 및
    상기 의료 기기로부터 수신한 보호 처리된 응용 메시지를 복호화하는 복호화부;
    를 포함하고,
    상기 통신부는
    상기 의료기기로부터 상기 보안 세션 정보가 포함된 제1 응용 요청 메시지를 수신하고,
    상기 메시지 생성부는
    상기 제1 응용 요청 메시지에 포함된 상기 보안 세션 정보에 기반하여 어느 하나의 암호세트 및 어느 하나의 네임드 커브를 선택하고, 선택된 상기 암호 세트 및 상기 네임드 커브를 포함시킨 제1 응용 응답 메시지를 생성하고,
    상기 통신부는
    상기 제1 응용 응답 메시지를 상기 의료 기기에게 송신하고,
    상기 의료기기가, 상기 제1 응용 응답 메시지에 포함된 상기 암호 세트 및 상기 네임드 커브에 기반하여 생성한 에이전트 피니쉬드 메시지를 포함시킨 제2 응용 요청 메시지를 수신하고,
    상기 인증부는
    상기 제2 응용 요청 메시지에 포함된 상기 에이전트 피니쉬드 메시지와 상기 암호 세트 및 상기 네임드 커브에 기반하여 상기 메시지 생성부가 생성한 매니저 피니쉬드 메시지를 비교하여 일치하는 경우, 상기 의료 기기를 인증하고, 상기 매니저 피니쉬드 메시지를 포함시킨 제2 응용 응답 메시지를 생성하고,
    상기 통신부는
    상기 제2 응용 응답 메시지를 상기 의료 기기에게 송신하고,
    상기 의료 기기는
    상기 제2 응용 응답 메시지에 포함된 매니저 피니쉬드 메시지와 상기 에이전트 피니쉬드 메시지를 비교하여 일치하는 경우, 게이트웨이 기기와의 인증이 성공인 것으로 판단하는 것을 특징으로 하는 게이트웨이 기기.
KR1020160087299A 2016-07-11 2016-07-11 의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법 KR102017758B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160087299A KR102017758B1 (ko) 2016-07-11 2016-07-11 의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법
US15/638,133 US20180013832A1 (en) 2016-07-11 2017-06-29 Health device, gateway device and method for securing protocol using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160087299A KR102017758B1 (ko) 2016-07-11 2016-07-11 의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법

Publications (2)

Publication Number Publication Date
KR20180006664A KR20180006664A (ko) 2018-01-19
KR102017758B1 true KR102017758B1 (ko) 2019-10-21

Family

ID=60892406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160087299A KR102017758B1 (ko) 2016-07-11 2016-07-11 의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법

Country Status (2)

Country Link
US (1) US20180013832A1 (ko)
KR (1) KR102017758B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG10201700811VA (en) * 2017-02-01 2018-09-27 Huawei Int Pte Ltd System and method for efficient and secure communications between devices
CN108683650A (zh) * 2018-05-03 2018-10-19 电子科技大学 一种医疗设备数据安全传输系统
KR102557051B1 (ko) * 2020-02-21 2023-07-19 한국전자통신연구원 사물 인터넷 개방형 플랫폼에서의 디바이스 인증 방법 및 장치
CN111431629B (zh) * 2020-05-15 2021-09-21 南京邮电大学 基于ecc的水声传感器网络节点间身份认证协议方法
US11736456B2 (en) * 2020-09-29 2023-08-22 International Business Machines Corporation Consensus service for blockchain networks
KR102635842B1 (ko) 2022-03-29 2024-02-13 주식회사 한아아이티 심혈관 질병 관련 개인 건강 관리시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085848A1 (en) * 2004-10-19 2006-04-20 Intel Corporation Method and apparatus for securing communications between a smartcard and a terminal
US20170272945A1 (en) 2016-03-17 2017-09-21 M2MD Technologies, Inc. Method and system for managing security keys for user and M2M devices in a wireless communication network environment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070122313A (ko) * 2006-06-26 2007-12-31 주식회사 대우일렉트로닉스 데이터 보안방법 및 이를 이용한 홈 네트워크 시스템
DE102009051383A1 (de) * 2009-10-30 2011-05-12 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum sicheren Übertragen von Daten
US20120026088A1 (en) * 2010-08-01 2012-02-02 T-Mobile Usa, Inc. Handheld device with projected user interface and interactive image
KR20140092499A (ko) * 2012-12-31 2014-07-24 경북대학교 산학협력단 Ieee 11073 매니저 및 ieee 11073 에이전트의 상호 인증 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085848A1 (en) * 2004-10-19 2006-04-20 Intel Corporation Method and apparatus for securing communications between a smartcard and a terminal
US20170272945A1 (en) 2016-03-17 2017-09-21 M2MD Technologies, Inc. Method and system for managing security keys for user and M2M devices in a wireless communication network environment

Also Published As

Publication number Publication date
KR20180006664A (ko) 2018-01-19
US20180013832A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
KR102017758B1 (ko) 의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법
CN108599925B (zh) 一种基于量子通信网络的改进型aka身份认证系统和方法
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
US11533297B2 (en) Secure communication channel with token renewal mechanism
CN111052672B (zh) 无证书或预共享对称密钥的安全密钥传输协议
JP4944886B2 (ja) 展性攻撃に対して改良された安全性を有する技術(これに限定されない)を含む非ワンタイムパッド暗号で暗号化した署名鍵を用いた、暗号認証、及び/又は共有暗号鍵の設定
US8577039B2 (en) Cryptographic communication apparatus and cryptographic communication system
CN103763356A (zh) 一种安全套接层连接的建立方法、装置及系统
KR20170035665A (ko) 키 교환 장치 및 방법
CN110020524B (zh) 一种基于智能卡的双向认证方法
JPWO2007125877A1 (ja) 通信装置、及び通信システム
WO2014114191A1 (zh) 一种智能卡安全通讯的方法
CN109714360B (zh) 一种智能网关及网关通信处理方法
WO2016058404A1 (zh) 基于预共享密钥的实体鉴别方法及装置
CN108599926B (zh) 一种基于对称密钥池的HTTP-Digest改进型AKA身份认证系统和方法
JP2022537733A (ja) 認証付き鍵共有
KR101531662B1 (ko) 사용자 단말과 서버간 상호 인증 방법 및 시스템
TW201537937A (zh) 統一身份認證平臺及認證方法
JP2017163612A (ja) 端末認証システム、サーバ装置、及び端末認証方法
CN112165386B (zh) 一种基于ecdsa的数据加密方法及系统
US10630466B1 (en) Apparatus and method for exchanging cryptographic information with reduced overhead and latency
CN114172745A (zh) 一种物联网安全协议系统
CN111262693B (zh) 一种信息处理方法及系统
CN114978542B (zh) 面向全生命周期的物联网设备身份认证方法、系统及存储介质
CN114928503B (zh) 一种安全通道的实现方法及数据传输方法

Legal Events

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