KR102162018B1 - Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법 - Google Patents

Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법 Download PDF

Info

Publication number
KR102162018B1
KR102162018B1 KR1020180166148A KR20180166148A KR102162018B1 KR 102162018 B1 KR102162018 B1 KR 102162018B1 KR 1020180166148 A KR1020180166148 A KR 1020180166148A KR 20180166148 A KR20180166148 A KR 20180166148A KR 102162018 B1 KR102162018 B1 KR 102162018B1
Authority
KR
South Korea
Prior art keywords
gateway
communication
platform
protocol
data
Prior art date
Application number
KR1020180166148A
Other languages
English (en)
Other versions
KR20200084388A (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 KR1020180166148A priority Critical patent/KR102162018B1/ko
Publication of KR20200084388A publication Critical patent/KR20200084388A/ko
Application granted granted Critical
Publication of KR102162018B1 publication Critical patent/KR102162018B1/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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • 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/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)

Abstract

Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법이 개시된다. IoT 환경에서의 게이트웨이 장치는, IoT 기기 간의 통신을 인텔 SGX(software guard extension)가 제공하는 엔클레이브(Enclave) 프로그램을 사용하여 처리할 수 있다.

Description

Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법{APPARATUS AND METHOD FOR OPEN AND PRIVATE IOT GATEWAY USING INTEL SGX}
아래의 설명은 IoT(Internet of Things) 환경에서의 게이트웨이 기술에 관한 것이다.
IoT(Internet of Things)이란, 통신 가능한 모든 사물들을 네트워크에 연결하여 상호 통신을 수행하는 것을 의미한다. 시스템적으로 인지할 수 있는 모든 객체는 Things 또는 Object로 분류하며, 여기에는 근거리 및 원거리 통신 기능을 탑재하고, 센서 등 데이터 생산 및 이용이 가능한 사물 또는 사람이 포함될 수 있다.
IoT는 유비쿼터스 공간을 구현하기 위한 인프라로 볼 수 있다. 이러한 유비쿼터스 공간은 특정 기능이 내재된 컴퓨팅 기기들이 환경과 사물에 심어져 환경이나 사물 그 자체가 지능화되는 것부터 시작된다.
일례로, 한국 공개특허공보 제10-2014-0008667호(공개일 2014년 01월 22일)에는 다양한 사물에 대해 사물 인터넷 서비스를 체계적으로 제공하기 위한 방법이 개시되어 있다.
Intel사의 SGX(software guard extension) 기술을 이용해 동일 플랫폼 내부에 속한 IoT 기기간의 프로토콜 변환에서 기밀성을 보장하는 방법을 제공한다.
서로 다른 플랫폼에 속한 IoT 기기간의 통신을 안전하고 가능하게 해주는 방법을 제공한다.
IoT 환경에서 말단 디바이스로 안전하게 소프트웨어를 배포하는 방법을 제공한다.
IoT 환경에서의 게이트웨이 장치에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, IoT 기기 간의 통신을 인텔 SGX(software guard extension)가 제공하는 엔클레이브(Enclave) 프로그램을 사용하여 처리하는 것을 특징으로 하는 게이트웨이 장치를 제공한다.
일 측면에 따르면, 상기 적어도 하나의 프로세서는, 동일 플랫폼에서 제1 통신 프로토콜을 사용하는 제1 IoT 기기가 제2 통신 프로토콜을 사용하는 제2 IoT 기기로 데이터를 전달하고자 하는 경우, 상기 제1 IoT 기기로부터 상기 데이터를 전달받아 상기 엔클레이브 프로그램을 통해 복호화한 후 상기 복호화된 데이터를 상기 제2 프로토콜로 변환하여 상기 제2 IoT 기기로 전달할 수 있다.
다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 상기 인텔 SGX가 제공하는 실링(sealing) 기능을 통해 상기 IoT 기기와의 통신에 사용되는 키를 암호화하여 스토리지에 저장할 수 있다.
또 다른 측면에 따르면, 서로 다른 플랫폼에 속한 IoT 기기 간의 통신을 위해 각 플랫폼 별로 하나의 독립된 엔클레이브 프로그램으로 구성되는 가상의 게이트웨이를 포함하는 상호운용성(Interoperability) 게이트웨이로 구성될 수 있다.
또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 상기 인텔 SGX가 제공하는 리모트 어테스테이션(remote attestation) 기능을 통해 서버로부터 각 플랫폼의 명령어와 데이터 포맷을 사전에 정의된 중간 프로토콜 언어로 변환하기 위한 알고리즘을 전달받을 수 있다.
또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 제1 플랫폼에 속한 제1 IoT 기기가 제2 플랫폼에 속한 제2 IoT 기기로 데이터를 전달하고자 하는 경우, 상기 제1 플랫폼에 해당되는 가상의 게이트웨이로부터 상기 데이터를 전달 받아 사전에 정의된 중간 프로토콜 언어로 변환한 후, 상기 중간 프로토콜 언어로 변환된 데이터를 상기 제2 플랫폼에 대응되는 프로토콜의 언어로 변환하여 상기 제2 플랫폼에 해당되는 가상의 게이트웨이로 전달할 수 있다.
또 다른 측면에 따르면, 상기 인텔 SGX가 제공하는 로컬 어테스테이션(local attestation) 기능을 통해 상기 상호운용성 게이트웨이 내에서 상기 가상의 게이트웨이 간의 통신이 이루어질 수 있다.
또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 상기 인텔 SGX가 제공하는 리모트 어테스테이션 기능을 통해 서버로부터 상기 IoT 기기와의 통신에 사용되는 키를 전달받고, 상기 인텔 SGX가 제공하는 실링 기능을 통해 상기 키를 암호화하여 스토리지에 저장할 수 있다.
또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 상기 인텔 SGX가 제공하는 리모트 어테스테이션 기능을 통해 상기 서버로부터 상기 IoT 기기의 소프트웨어 업데이트를 제공받고, 상기 스토리지에 저장된 키를 복호화한 후 상기 복호화된 키로 상기 소프트웨어 업데이트를 암호화하여 상기 IoT 기기로 전달할 수 있다.
IoT 환경의 게이트웨이 장치에서 수행되는 통신 방법에 있어서, 상기 게이트웨이 장치에서 IoT 기기 간의 통신을 인텔 SGX가 제공하는 엔클레이브 프로그램을 사용하여 처리하는 단계를 포함하는 통신 방법을 제공한다.
본 발명의 실시예들에 따르면, Intel사의 SGX 기술을 이용해 동일 플랫폼 내부에 속한 IoT 기기간의 프로토콜 변환에서 기밀성을 보장할 수 있다.
본 발명의 실시예들에 따르면, Intel SGX를 기반으로 서로 다른 플랫폼에 속한 IoT 기기간의 통신을 안전하고 가능하게 해줄 수 있다.
본 발명의 실시예들에 따르면, Intel SGX를 이용하여 IoT 환경에서 말단 디바이스로 안전하게 소프트웨어를 배포할 수 있다.
도 1은 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 있어서 하나의 플랫폼 내부에서 안전한 프로토콜 전환을 위한 방법을 설명하기 위한 예시 도면이다.
도 3은 여러 플랫폼을 사용하는 IoT 환경을 설명하기 위한 예시 도면이다.
도 4는 본 발명의 일 실시예에 있어서 하나의 플랫폼 내부에서 안전한 프로토콜 전환을 위한 방법을 설명하기 위한 예시 도면이다.
도 5 내지 도 6은 본 발명의 일 실시예에 있어서 말단 디바이스로 안전하게 소프트웨어를 배포하는 방법을 설명하기 위한 예시 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
현재의 IoT 환경에서는 서로 다른 IoT 디바이스 간에 안전하고 원활한 통신이 이루어질 수 있도록 각 제조사마다 자신들의 독립적인 IoT 플랫폼을 제공하고 있다. 이러한 플랫폼은 IoT 디바이스, 원격 서버, 그리고 IoT 디바이스와 원격 서버 사이에서 모든 통신과 명령을 제어하는 게이트웨이로 구성되어 있다.
IoT 디바이스의 경우 기존의 스마트폰과는 다르게 계산 능력이 떨어지고 다양한 통신 모듈을 가지고 있지 않은 경우가 많아, IoT 디바이스를 게이트웨이에 연결함으로써 해당 플랫폼에 연결된 디바이스 간의 안전하고 원활한 통신이 이루어질 수 있도록 돕는 역할을 하거나 플랫폼 안에 묶여있는 디바이스들과 외부망에 묶여있는 원격 서버 혹은 다른 플랫폼 간의 통신을 가능하게 한다.
이러한 게이트웨이의 역할을 살펴보면, 크게 이기종 IoT 디바이스간의 프로토콜 변환, 서로 다른 플랫폼 간의 원활한 통신 서비스, 말단 디바이스로의 안전한 펌웨어 업데이트 등의 역할 등으로 나누어 볼 수 있다.
보안적인 관점에서 현재의 IoT 플랫폼을 살펴보면, 모든 IoT 디바이스들이 생성한 데이터들이 중앙의 게이트웨이를 통해 외부망이나 내부망의 다른 디바이스로 전달되게 되고, 원격 서버로부터 중요한 소프트웨어 업데이트들이 게이트웨이를 통해 각각의 디바이스들에게 알맞는 형태로 전달되기 때문에 이를 중재하는 게이트웨이의 보안성은 앞으로 중요한 문제가 될 수 있다. 예를 들어, 스마트 홈 플랫폼을 제공하는 사물인터넷 환경에서, 게이트웨이가 공격을 받는다면 해당 플랫폼을 사용하고 있는 모든 IoT 디바이스들이 생성하는 데이터들을 공격자가 탈취할 수 있게 되어 심각한 개인정보 유출이 우려될 뿐 아니라, 감염된 게이트웨이를 통해 악성 프로그램을 각각의 단말로 배포해 추가적인 피해가 발생할 수 있다.
이러한 IoT 환경에서 발생할 수 있는 문제들을 해결하기 위해, 본 발명에서는 신뢰 실행 환경(Trusted Execution Environment)의 대표적 주자 중 하나인 Intel사의 SGX(software guard extension) 기술을 이용해 동일 플랫폼 내부에 속한 IoT 기기 간의 프로토콜 변환에서 기밀성을 보장하는 방법과, 서로 다른 플랫폼에 속한 IoT 기기간의 통신을 안전하고 가능하게 해주는 방법, 및 IoT 환경에서 말단 디바이스로 안전하게 소프트웨어를 배포하는 방법에 대해 제안한다.
Intel SGX는 시스템 소프트웨어가 공격자에 의해 감염 되더라도, 'Enclave'라고 불리는 신뢰 실행환경 내부에서 동작하는 프로그램의 코드와 데이터의 무결성과 기밀성을 보장한다. 이러한 Intel SGX의 모델은 배포된 Enclave 프로그램의 동적 정보(runtime state)를 Intel SGX 하드웨어를 제외한 그 누구도 알 수 없도록 강력한 보안성을 제공하고 있다. 그리고, Intel SGX 모델은 개발자가 배포한 Enclave 프로그램이 개발자가 상정한 소프트웨어 및 하드웨어 플랫폼 환경에서 정상적으로 배포되어 작동하고 있는지에 대한 정보 등을 외부로 제공하고 있다(attestation).
도 1은 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
본 발명의 실시예들에 따른 IoT 게이트웨이 장치가 도 1의 컴퓨터 시스템(100)을 통해 구현될 수 있다. 도 1에 도시한 바와 같이, 컴퓨터 시스템(100)은 이하에서 설명될 IoT 게이트웨이 통신 방법을 실행하기 위한 구성요소로서 프로세서(110), 메모리(120), 영구 저장 장치(130), 버스(140), 입출력 인터페이스(150) 및 네트워크 인터페이스(160)를 포함할 수 있다.
프로세서(110)는 명령어들의 시퀀스를 처리할 수 있는 임의의 장치를 포함하거나 그의 일부일 수 있다. 프로세서(110)는 예를 들어 컴퓨터 프로세서, 이동 장치 또는 다른 전자 장치 내의 프로세서 및/또는 디지털 프로세서를 포함할 수 있다. 프로세서(110)는 예를 들어, 서버 컴퓨팅 디바이스, 서버 컴퓨터, 일련의 서버 컴퓨터들, 서버 팜, 클라우드 컴퓨터, 컨텐츠 플랫폼, 이동 컴퓨팅 장치, 스마트폰, 태블릿, 셋톱 박스 등에 포함될 수 있다. 프로세서(110)는 버스(140)를 통해 메모리(120)에 접속될 수 있다.
메모리(120)는 컴퓨터 시스템(100)에 의해 사용되거나 그에 의해 출력되는 정보를 저장하기 위한 휘발성 메모리, 영구, 가상 또는 기타 메모리를 포함할 수 있다. 예를 들어, 메모리(120)는 랜덤 액세스 메모리(RAM: random access memory) 및/또는 동적 RAM(DRAM: dynamic RAM)을 포함할 수 있다. 메모리(120)는 컴퓨터 시스템(100)의 상태 정보와 같은 임의의 정보를 저장하는 데 사용될 수 있다. 메모리(120)는 예를 들어 안전한 IoT 게이트웨이 통신을 제어하기 위한 명령어들을 포함하는 컴퓨터 시스템(100)의 명령어들을 저장하는 데에도 사용될 수 있다. 컴퓨터 시스템(100)은 필요에 따라 또는 적절한 경우에 하나 이상의 프로세서(110)를 포함할 수 있다.
버스(140)는 컴퓨터 시스템(100)의 다양한 컴포넌트들 사이의 상호작용을 가능하게 하는 통신 기반 구조를 포함할 수 있다. 버스(140)는 컴퓨터 시스템(100)의 컴포넌트들 사이에, 예를 들어 프로세서(110)와 메모리(120) 사이에 데이터를 운반할 수 있다. 버스(140)는 컴퓨터 시스템(100)의 컴포넌트들 간의 무선 및/또는 유선 통신 매체를 포함할 수 있으며, 병렬, 직렬 또는 다른 토폴로지 배열들을 포함할 수 있다.
영구 저장 장치(130)는 (예를 들어 메모리(120)에 비해) 소정의 연장된 기간 동안 데이터를 저장하기 위해 컴퓨터 시스템(100)에 의해 사용되는 바와 같은 메모리 또는 다른 영구 저장 장치와 같은 컴포넌트들을 포함할 수 있다. 영구 저장 장치(130)는 컴퓨터 시스템(100) 내의 프로세서(110)에 의해 사용되는 바와 같은 비휘발성 메인 메모리를 포함할 수 있다. 예를 들어, 영구 저장 장치(130)는 플래시 메모리, 하드 디스크, 광 디스크 또는 다른 컴퓨터 판독 가능 매체를 포함할 수 있다.
입출력 인터페이스(150)는 키보드, 마우스, 마이크, 카메라, 디스플레이 또는 다른 입력 또는 출력 장치에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 IoT 게이트웨이 통신과 관련된 입력이 입출력 인터페이스(150)를 통해 수신될 수 있다.
네트워크 인터페이스(160)는 근거리 네트워크 또는 인터넷과 같은 네트워크들에 대한 하나 이상의 인터페이스를 포함할 수 있다. 네트워크 인터페이스(160)는 유선 또는 무선 접속들에 대한 인터페이스들을 포함할 수 있다. 구성 명령들은 네트워크 인터페이스(160)를 통해 수신될 수 있다. 그리고, IoT 게이트웨이 통신과 관련된 정보들은 네트워크 인터페이스(160)를 통해 수신 또는 송신될 수 있다.
또한, 다른 실시예들에서 컴퓨터 시스템(100)은 도 1의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 시스템(100)은 상술한 입출력 인터페이스(150)와 연결되는 입출력 장치들 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 컴퓨터 시스템(100)이 스마트폰과 같은 모바일 기기의 형태로 구현되는 경우, 일반적으로 모바일 기기가 포함하고 있는 카메라, 가속도 센서나 자이로 센서, 카메라, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 컴퓨터 시스템(100)에 더 포함되도록 구현될 수 있다.
이하에서는 Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법의 구체적인 실시예를 설명하기로 한다.
동일 플랫폼 내부에 속한 IoT 기기간의 프로토콜 변환에서 기밀성을 보장하는 방법
도 2는 본 발명의 일 실시예에 있어서 하나의 플랫폼 내부에서 안전한 프로토콜 전환을 위한 방법을 설명하기 위한 예시 도면이다.
도 2를 참조하면, IoT 환경에서 NFC 통신만을 제공하는 스마트워치(201)에서 블루투스 통신만을 제공하는 세탁기(202)로 명령을 보낸다고 가정해보자. 세탁기(202)는 NFC로 전달되는 메시지를 바로 받을 수 없기 때문에 이는 가상 게이트웨이(100)로 먼저 전달된다(S1).
여기서, NFC를 통해 전달되는 데이터는 암호화 되어 있다고 가정할 때 가상 게이트웨이(100)는 스마트워치(201)로부터 전달받은 데이터를 먼저 복호화하여 평문의 데이터를 얻어낸다. 그 이후, 세탁기(202)가 이해할 수 있는 프로토콜인 블루투스로 변경한다(S2).
이러한 과정에서 공격자가 통합된 게이트웨이(100)를 점령한다고 하더라도, Intel SGX가 제공하는 강력한 보안 기능 때문에 가상 게이트웨이(100)가 동적으로 처리하는 데이터에 대한 정보를 절대 얻을 수 없다.
마지막으로, 가상 게이트웨이(100)가 변환된 명령을 세탁기(202)로 보내주면 서로 다른 두 통신 프로토콜을 사용하는 IoT 기기간의 명령 전달이 안전하게 이루어질 수 있다(S3).
대부분의 IoT 기기는 가격 경쟁력을 위해 비교적 컴퓨팅 파워가 약하고 적은 수의 통신 모듈만을 가지고 있기 때문에 서로 다른 통신 프로토콜을 사용하는 IoT 디바이스 간의 직접적인 통신이 불가능한 경우가 많다. 예를 들어, 특정 단말에서 생성된 메시지가 지그비 통신 프로토콜을 통해 다른 디바이스로 전달된다면, 이 메시지를 받고자 하는 디바이스는 반드시 지그비 통신 프로토콜을 지원해야 한다. 하지만, 현재 IoT 시장에는 디바이스 간의 통신 프로토콜 기술이 표준화 되어 있지 않기 때문에 지그비, 이더넷, 블루투스 등 다양한 프로토콜과 수많은 경량화 통신 프로토콜이 존재하고 있다. 그렇기 때문에, 다른 디바이스들과의 통신을 위해서는 모든 디바이스가 상대방이 지원하는 통신 프로토콜을 지원해야 하고 이는 각 단말에 모든 통신 모듈을 부착하도록 하여 가격 상승의 큰 요인이 될 수 있다.
이러한 문제를 해결하고자, 여러 종류의 통신 모듈을 장착한 중앙화된 게이트웨이가 특정 프로토콜을 사용해 생성된 데이터가 각각의 IoT 기기들이 이해할 수 있는 통신 프로토콜로 변환하여 전달해 주는 역할을 하고 있다. 하지만 이 중에는 매우 민감한 데이터가 존재할 수 있고, 이를 중간에서 다른 매개체가 변환하여 볼 수 있게 된다면 데이터의 기밀성이 보장되지 않게 된다. 또한, 기밀성을 보장하기 위해 각 플랫폼들은 암호화 방식이 도입된 프로토콜을 사용하고 있다. 그 때문에 암호화된 메시지를 다른 통신 프로토콜이 이해할 수 있는 포맷으로 변경하여 보내기 위해서는 중간에 위치한 게이트웨이가 암호화 키를 가지고 메시지를 복호화 한 뒤 다시 다른 프로토콜로 변환하여 메시지를 전송해야 한다. 이 과정에서 데이터의 기밀성이 보장되지 않을 뿐 아니라, 각 디바이스간의 암호화에 사용되는 키를 게이트웨이 중앙에서 모두 관리해 위험 요소가 더욱 증가하게 된다. 즉, 각각의 디바이스를 공격자가 공격하지 않더라도, 게이트웨이 하나만을 점령하게 되면 모든 데이터를 얻을 수 있을 뿐 아니라 그에 상응하는 키값 들도 모두 유출되는 큰 보안 문제가 발생할 가능성이 존재한다.
이러한 보안문제 발생을 막기 위해 프로토콜을 변환하는 모든 과정을 Intel SGX가 제공하는 Enclave 프로그램을 사용해 처리하고, 각 디바이스와의 암호화 통신을 위해 사용하는 키를 Intel SGX가 사용하는 실링(Sealing) 기능을 통해 보호하도록 한다.
먼저, Intel SGX는 강력한 기밀성을 보호하기 때문에, 게이트웨이가 공격자에 의해 감염될 지라도, Enclave 프로그램이 처리하는 데이터에 관해서는 개발자뿐 아니라 그 누구도 볼 수 없게 된다. 이러한 점을 이용하여 게이트웨이가 받은 모든 데이터를 Enclave 프로그램을 통해 복호화하고, 복호화된 데이터를 다른 기기가 이해할 수 있는 프로토콜로 변환함으로써 데이터의 기밀성을 보장할 수 있게 된다.
또한, 복호화 과정에서 사용되는 모든 하드웨어 키들은 제조 과정에서 생산하여 프로토콜 변환 Enclave 프로그램만 접근할 수 있도록 제한한다. 이를 위해서, Intel SGX가 제공하는 실링 기능을 통해 먼저 프로토콜 변환에 사용되는 키들을 프로토콜 변환 Enclave 프로그램만이 접근할 수 있는 하드웨어적 암호화 키로 암호화 하여 일반 스토리지에 저장해 놓는다. 암호화된 키값들은 프로토콜 변환 Enclave 프로그램 이외에는 그 누구도 복호화 할 수 없고, 이를 복호화하기 위한 키는 해당 Enclave 프로그램만이 접근 가능한 하드웨어에 의해 생성되기 ‹š문에 프로토콜 변환 Enclave 프로그램만 이 키값들을 복호화 할 수 있게 된다. 이를 통하여 안전하게 프로토콜 변환 키를 저장할 수 있게 되어 키값들을 관리하는 문제와 프로토콜 변환과정에서 발생할 수 있는 기밀성 문제를 동시에 해결할 수 있다.
서로 다른 플랫폼에 속한 기기간의 통신을 안전하고 가능하게 해주는 방법
도 3은 여러 플랫폼을 사용하는 IoT 환경을 설명하기 위한 예시 도면이다.
도 3을 참조하면, 한 유저가 서로 다른 플랫폼(301, 302)을 사용할지라도, 여러 개의 가상 게이트웨이(100-1, 100-2)를 Intel SGX를 사용하여 분리 및 관리할 수 있다. 이때 단 하나의 물리적인 통합된 게이트웨이가 필요하므로 구매비용을 아낄 수 있다.
또한, 서로 다른 플랫폼(301, 302)은 서로 다른 명령어 프로토콜을 사용할 수 있다. 즉, 삼성의 ARTIK에 포함되어 있는 기기들은 동일한 명령어나 데이터 포맷을 사용하여 디바이스 간의 데이터 교환을 가능하게 할 수 있다. 반면, 구글사의 HomeKit에 포함된 기기들은 구글에서 제공하는 데이터 포맷과 명령어를 사용해 데이터를 교환하게 된다. 결과적으로, 동일한 플랫폼 내부에 존재하는 기기들은 원활하게 소통이 가능하지만, 서로 다른 플랫폼(301, 302)에 속해 있는 기기들은 명령어나 데이터 포맷 등의 프로토콜이 일치하지 않아 통신이 불가능하게 된다. 이는 서로 다른 두 기기가 같은 통신 프로토콜, 예를 들어 지그비를 사용할 지라도 서로 이해하는 명령어와 데이터가 다르기 때문에 의미 있는 소통이 불가능하다.
도 4는 본 발명의 일 실시예에 있어서 서로 다른 플랫폼 간의 데이터 교환 방법을 설명하기 위한 예시 도면이다.
먼저, 상호운용성(Interoperability) 게이트웨이(100)를 사용하려면 각 제조사들은 통합된 게이트웨이 제조사가 정의하고 있는 중간 프로토콜 언어로 자신들의 명령어와 데이터 포맷을 바꿀 수 있도록 돕는 알고리즘을 생성하여 상호운용성 게이트웨이(100)에 전달해야 한다(S1). 이러한 알고리즘은 각 제조사들의 지적 재산이므로 이를 안전하게 전송 받아 사용하기 위해서는 먼저 Intel SGX가 제공하는 리모트 어테스테이션(remote attestation)을 통하여 원격 서버와 상호운용성 게이트웨이(100) 간의 안전한 채널을 만들고, 이를 통해 제조사가 제공하는 알고리즘을 받아 설치한다.
예를 들어, 제조사 A가 가상 게이트웨이 1을 배포하였고 제조사 B가 가상 게이트웨이 2를 배포하였다고 가정해보자. 만약, 제조사 A의 플랫폼에 속해 있는 디바이스가 제조사 B의 플랫폼에 속해 있는 디바이스와 메시지를 교환하고 싶다면, 먼저 가상 게이트웨이 1에서 상호운용성 게이트웨이(100)로 자신이 어떤 플랫폼과 통신하고 싶은지, 즉 가상 게이트웨이 2의 식별번호(virtual gateway number)와 함께 전달하고자 하는 메시지를 보낸다(S2). 이때, 상호운용성 게이트웨이(100)에서는 앞서 원격 서버로 전달 받은 알고리즘을 사용해 가상 게이트웨이 1로부터 전달받은 데이터와 명령어를 중간 프로토콜 언어로 변경한다.
상호운용성 게이트웨이(100)는 중간 프로토콜 언어로 변경된 데이터와 명령어는 해당 데이터를 어떤 플랫폼과 통신하고 싶은지에 따라 이를 해당 플랫폼이 이해할 수 있는 언어로 변경한다(S3). 중간 프로토콜 언어로 변경된 데이터를 제조사 B의 가상 게이트웨이 2로 보내고 싶다면, 이를 제조사 B가 가상 게이트웨이 2에서 보내준 프로토콜을 사용해 제조사 B의 플랫폼이 이해할 수 있는 언어로 변경한다.
이러한 전 과정(S1~S3)은 상호운용성 게이트웨이(100)에 의해 이루어지고, 상호운용성 게이트웨이(100)의 코드는 각 제조사에 공개하여 프로토콜 변환 과정 중에서 데이터를 유출하거나 변조하지 않는다는 것을 보장하여 각 제조사들이 이를 믿고 이용할 수 있도록 한다.
상기한 바와 같이, 대부분의 제조사들은 자신들의 프로토콜(각각의 디바이스로 명령을 내리는 방식 등)과 플랫폼을 IoT 환경에서의 기준으로 만들기 위해 서로 다른 플랫폼 간의 호환성과 보안성을 고려하기 보다는 동일한 프로토콜을 사용하는 디바이스간의 안전하고 원활한 통신의 개발에만 집중하고 있다. 그 결과, IoT 환경에서는 서로 다른 기능을 제공하는 수많은 프로토콜이 개발되어 사용되고 있고, 또 보안성을 위해 서로 다른 암호화 방식을 사용하여 서로 다른 프로토콜을 사용하는 기기간의 통신이 불가능하여 진정한 사물 인터넷을 구성하는 데에 큰 장해물이 되고 있다.
이러한 환경에서 본 발명에 따른 게이트웨이가 적용된다면 서로 다른 프로토콜을 사용하는 IoT 플랫폼 간의 통신을 안전하고 원활하게 하여 이기종 간의 통신이 가능해 질 수 있다. 이뿐만 아니라, 각각의 플랫폼마다 물리적 게이트웨이를 도입하는 방식이 아닌 하나의 통합된 물리적 게이트웨이를 제공하고 이를 이용하는 가상의 게이트웨이를 플랫폼 마다 배포함으로써 비용을 절감할 수 있게 된다.
먼저, 각 플랫폼마다 하나의 물리적 게이트웨이를 도입하지 않고 Intel SGX를 사용하는 통합된 게이트웨이를 배포한 뒤, 각 플랫폼에서 물리적 게이트웨이가 하는 역할을 하나의 독립된 Enclave 프로그램이 제공할 수 있도록 한다. 각 제조사의 소프트웨어는 그 제조사의 지적재산에 포함되기 때문에 이는 다른 제조사나 통합된 게이트웨이를 제조하여 배포하는 제조사가 접근하지 못하도록 해야 한다. 즉, 서로 다른 가상의 게이트웨이를 구동하는 소프트웨어의 보안성을 보장하기 위해 암호화된 소프트웨어를 각 제조사로부터 공급받아 각 소프트웨어를 하나의 독립된 Enclave 프로그램으로 구성한다. 다시 말해, 여러 제조사의 게이트웨이 소프트웨어는 하나의 Enclave 프로그램으로 작동함으로써 암호화된 소프트웨어를 Enclave 프로그램 내부에서 복호화 하여 작동할 수 있도록 한다. 이때, 가상 게이트웨이 소프트웨어 프로그램을 복호화 하는 키는 제조사의 원격 서버로부터 안전하게 받아 오게 된다. 복호화 키를 안전하게 받아오기 위해서는 Intel SGX가 제공하는 리모트 어테스테이션을 사용해 자신들이 배포한 가상 게이트웨이 프로그램과 이를 복호화 하는 Enclave 프로그램이 잘 배포되었는지 확인하고, 하드웨어적인 메커니즘을 사용해 안전하게 복호화 키를 가상화된 게이트웨이 Enclave 프로그램에 전달한다. 이를 통해, 그 누구도 각 제조사의 게이트웨이 소프트웨어를 접근할 수 없게 되며 안전하게 각 제조사의 가상 게이트웨이 소프트웨어에 대한 지적 재산권을 보장할 수 있게 된다.
또한, 각 가상 게이트웨이는 Intel SGX가 제공하는 보안성에 의해 다른 가상 게이트웨이와는 독립된 Enclave 프로그램으로 동작하게 된다. 가상 게이트웨이들을 Intel SGX를 사용하여 독립시키는 방법을 통해 하나의 가상 게이트웨이에 문제가 생기거나 공격을 받는 경우에도 다른 가상 게이트웨이는 그 영향을 받지 않게 된다.
그리고, 각각의 가상 게이트웨이 간의 통신이 외부망을 거치지 않고 하나의 통합된 게이트웨이 안에서 이루어짐으로써 통신에 발생하는 비용을 절감할 수 있다. 이는 서로 다른 플랫폼 간의 빠른 데이터 전송을 가능하게 소비자가 서로 다른 플랫폼을 빠르고 간편하게 이용할 수 있도록 한다. 또한, 외부망을 사용하여 데이터를 전송하게 되면 보안성을 위해 복잡한 암호화 과정을 거쳐야 하는 반면, 가상 게이트웨이 간의 통신은 Intel SGX가 제공하는 로컬 어테스테이션(local attestation) 기능을 이용하여 하나의 기기 안에서 데이터를 안전하게 주고 받을 수 있게 된다. 로컬 어테스테이션을 사용하게 되면 두 가상 게이트웨이 간의 통신은 하드웨어적인 메커니즘에 의해 안전하게 보호되므로 블루투스, 지그비와 같은 외부 통신 모듈을 이용하는 경우보다 서로 다른 플랫폼 사이의 데이터 전송이 빠르고 안전해 진다.
마지막으로, 가상 게이트웨이 간의 원활한 통신이 가능할 수 있도록 하는 상호운용성 Enclave 프로그램을 제공한다. 각 가상 게이트웨이는 다른 제조사가 만든 플랫폼과의 통신을 고려하지 않은 상태로 개발되고 배포되기 때문에, 서로 다른 제조사의 IoT 디바이스들과의 통신이 불가능하다. 이러한 프로토콜 변환 과정에서는 데이터의 기밀성이 유지되지 않을 수 있으며, 프로토콜 변환과 관련된 모든 소프트웨어는 각 제조사의 지적 재산이므로 안전하고 중립적으로 데이터를 서로 다른 플랫폼이 이해할 수 있는 형태로 변형해 줄 수 있는 중간자가 필요하게 된다. 이를 위해, 통합된 게이트웨이를 제공하는 제조사에서 상호운용성 Enclave를 배포하여, 서로 다른 제조사가 개발한 가상 게이트웨이 간의 서로 다른 프로토콜을 안전하게 변환해주는 역할을 한다. 이를 가능하게 하기 위해 먼저 중간 프로토콜 언어를 정의한다. 중간 프로토콜 언어는 모든 제조사가 사용하는 프로토콜의 공통점을 추출하여 작성된다. 또, 각 제조사는 자신들의 프로토콜이 중간 프로토콜 언어로 변경될 수 있도록 하는 알고리즘을 작성하여 상호운용성 Enclave에 제공하게 된다. 그 후 상호운용성 Enclave는 각 가상 게이트웨이에서 전달 받은 메시지를 먼저 중간 프로토콜 언어로 변경한 후, 메시지를 전달하고자 하는 플랫폼의 언어로 변경한다. 이때, 중간 프로토콜 언어에서 각 플랫폼의 프로토콜로 변환하는 알고리즘 역시 제조사에서 제공한다. 먼저, 각 제조사의 프로토콜에 대한 정보는 각 제조사의 지적 재산권에 해당하기 때문에, 제조사의 프로토콜을 중간 프로토콜 언어로 변경하는 알고리즘과 중간 프로토콜 언어를 제조사의 프로토콜로 변경할 수 있도록 하는 알고리즘을 암호화하여 상호운용성 Enclave로 전달하게 된다. 이때, Intel SGX가 제공하는 리모트 어테스테이션 기능을 통하여 안전하게 암호화된 알고리즘들이 전달되면 상호운용성 Enclave는 이를 사용하여 각 플랫폼 간의 프로토콜 변경을 하게 된다. 이때 상호운용성 Enclave가 각 제조사의 전달 받은 알고리즘을 외부로 유출하지 않는 것을 보장하기 위하여 상호운용성 Enclave 프로그램의 소스코드와 바이너리 코드를 모두 공개하여 검수하며, 결국 중요한 프로토콜 변환 알고리즘은 상호운용성 Enclave가 실행 중에 동적으로 원격에서 받아 오기 때문에 외부에 노출되지 않게 된다.
말단 디바이스로 안전하게 소프트웨어를 배포하는 방법
도 5 내지 도 6은 본 발명의 일 실시예에 있어서 말단 디바이스로 안전하게 소프트웨어를 배포하는 방법을 설명하기 위한 예시 도면이다.
도 5를 참조하면, 먼저 소프트웨어를 배포하기에 앞서 각 제조사는 자신들이 배포한 디바이스들과의 안전한 통신을 가능하게 해주는 암호화 키들을 Intel SGX가 제공하는 리모트 어테스테이션 기능을 사용하여 자신들이 배포한 가상 게이트웨이(100)로 전송한다(S1).
가상 게이트웨이(100)는 전송된 키값들을 바로 받아와서 추후에 안전하게 사용하기 위해서 먼저 이 키값들을 안전한 저장소에 저장해야 한다. 하지만, 공격자가 통합된 게이트웨이를 공격하여 감염시킬 수 있으므로 스토리지에 평문으로 키값을 저장하는 것은 위험하다. 그러므로, Intel SGX가 제공하는 실링 기능을 사용하여 배포받은 키들을 특정 가상 게이트웨이(100)만이 접근할 수 있는 키로 암호화하여 스토리지에 저장한다(S2). 이때, 사용된 키는 하드웨어적으로 반드시 특정 가상 게이트웨이(100)만이 접근할 수 있도록 되어 있기 때문에 공격자가 아무리 통합된 게이트웨이를 공격하여 점령하더라도 암호화에 쓰인 키를 얻을 수 없고 결과적으로 디바이스 키들도 얻을 수 없다.
도 6을 참조하면, 가상 게이트웨이(100)는 원격서버로부터 소프트웨어 업데이트를 Intel SGX가 제공하는 리모트 어테스테이션을 통해 안전하게 제공 받는다(S1).
앞서 설명한 것과 같이, 암호화되어 저장된 디바이스 키들을 가상 게이트웨이(100)로 불러들여 다시 복호화한다(S2).
가상 게이트웨이(100)는 복호화한 키들로 먼저 소프트웨어 업데이트를 암호화하고 각 디바이스에 알맞은 형태의 프로토콜로 소프트웨어 업데이트를 전달한다(S3). 여기서, 각 디바이스 키로 암호화 하는 이유는 Intel SGX가 강력한 하드웨어 툴이기 때문에 비용이 비싸 각 IoT 디바이스에 설치할 수 없기 때문에 디바이스와 가상 게이트웨이(100) 간의 통신에는 비교적 저렴한 소프트웨어 기반의 암호화 알고리즘을 사용한다. 하지만, 디바이스 키 자체는 Intel SGX에 의해 안전하게 보호되므로 전체 프로세스가 안전하게 된다.
다시 말해, 말단 디바이스로 안전하게 소프트웨어를 배포하기 위해서는 두 가지 통신 채널을 보호해야 한다. 첫째는 가상 게이트웨이(100)와 원격 서버간의 통신 채널이고, 둘째는 가상 게이트웨이(100)와 각 디바이스간의 통신 채널이다. 먼저, 가상 게이트웨이(100)와 원격 서버간의 통신 채널은 Intel SGX가 제공하는 리모트 어테스테이션 기능에 의해 보호된다. 이는 하드웨어적인 특성을 사용하는 기법으로, 생성된 채널을 통해 전달되는 데이터를 위/변조 할 수 없게 된다. 이렇게 전달받은 소프트웨어 업데이트를 각 디바이스로 전달하기 위하여 사전에 제공받아 안전하게 저장해 놓은 디바이스의 키로 다시 암호화 하여 각 디바이스로 전달하게 된다. 이때, 디바이스로 전달하는 채널은 비교적 암호화 강도가 낮은 지그비, 블루투스 등과 같은 채널이므로 반드시 소프트웨어 자체에 대한 암호화가 필요하다. 이때 사용되는 키값 역시 Intel SGX가 사용하는 실링 기능을 사용해 안전한 스토리지에 저장해 놓았다가 소프트웨어 업데이트 시에 이를 가상 게이트웨이(100)로 불러들여 사용하고 다시 저장하는 방식을 취한다.
이처럼 본 발명의 실시예들에 따르면, 두 가지의 효과를 창출할 수 있을 것으로 기대된다. 첫째는, 이기종 간의 원활하고 안전한 통신을 보장할 수 있다. 사용자가 서로 다른 제조사의 IoT 디바이스를 사용한다고 할 때, 현재의 플랫폼 상에서는 두 기종간의 통신이 불가능한 경우가 많다. 그 이유는 서로 다른 제조사의 기기가 동일한 통신 프로토콜을 사용하고 있지 않기 때문이다. 더욱이, 서로 다른 플랫폼에서 암호화 되거나 공개되지 않은 프로토콜을 사용할 경우 특정 플랫폼에서 작동하는 디바이스가 생성한 메시지는 다른 플랫폼에서 작동하는 디바이스로 전달될 수 없다. 그러나, 본 발명에서는 서로 다른 플랫폼에 속한 디바이스 일지라도 통합된 가상 게이트웨이를 통해 안전하고 원활한 통신을 사용할 수 있다. 둘째는, 서로 다른 제조사가 만든 IoT 디바이스를 사용하기 위해 필요한 플랫폼 구매 비용을 절감할 수 있다. 현재 IoT 시스템에서는 특정 제조사의 IoT 디바이스를 사용하기 위해서는 해당 플랫폼을 제공하는 물리적 게이트웨이를 추가로 구매해야 하는 경우가 많다. 그러나, 본 발명에서 제안하는 통합된 가상 게이트웨이를 사용함으로써 소비자가 하나의 게이트웨이를 구매하는 것과 동일한 비용으로 서로 다른 제조사의 IoT 플랫폼을 사용할 수 있게 된다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (18)

  1. IoT 환경에서의 게이트웨이 장치에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    IoT 기기 간의 통신을 인텔 SGX(software guard extension)가 제공하는 엔클레이브(Enclave) 프로그램을 사용하여 처리하고,
    상기 적어도 하나의 프로세서는,
    동일 플랫폼에 속한 상기 IoT 기기 간에 통신 프로토콜을 변환하여 전달하는 역할의 게이트웨이로서,
    제1 통신 프로토콜을 사용하는 제1 IoT 기기가 제2 통신 프로토콜을 사용하는 제2 IoT 기기로 데이터를 전달하고자 하는 경우,
    상기 인텔 SGX가 제공하는 실링(sealing) 기능을 통해 프로토콜 변환에 사용되는 제1 키를 암호화하여 스토리지에 저장하는 과정;
    상기 제1 IoT 기기로부터 상기 데이터를 전달받아 상기 엔클레이브 프로그램을 통해 복호화하는 과정;
    상기 엔클레이브 프로그램을 통해 상기 스토리지에 저장된 제1 키를 복호화하는 과정; 및
    상기 복호화된 데이터를 상기 복호화된 제1 키를 이용하여 상기 제2 통신 프로토콜로 변환하여 상기 제2 IoT 기기로 전달하는 과정
    을 처리하고,
    서로 다른 플랫폼에 속한 상기 IoT 기기 간의 통신을 위해 각 플랫폼 별로 하나의 독립된 엔클레이브 프로그램으로 구성되는 가상의 게이트웨이를 포함하는 상호운용성(Interoperability) 게이트웨이로서,
    제1 플랫폼에 속한 제1 IoT 기기가 제2 플랫폼에 속한 제2 IoT 기기로 데이터를 전달하고자 하는 경우,
    상기 제1 플랫폼의 프로토콜을 사전에 정의된 중간 프로토콜 언어로 변환하는 제1 알고리즘과 상기 중간 프로토콜 언어를 상기 제2 플랫폼의 프로토콜로 변환하는 제2 알고리즘을 전달받는 과정;
    상기 제1 플랫폼에 해당되는 가상의 게이트웨이로부터 상기 데이터를 전달 받아 상기 데이터를 상기 제1 알고리즘을 통해 상기 중간 프로토콜 언어로 변환하는 과정; 및
    상기 중간 프로토콜 언어로 변환된 데이터를 상기 제2 알고리즘을 통해 상기 제2 플랫폼의 프로토콜로 변환하여 상기 제2 플랫폼에 해당되는 가상의 게이트웨이로 전달하는 과정
    을 처리하는 것
    을 특징으로 하는 게이트웨이 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 인텔 SGX가 제공하는 리모트 어테스테이션(remote attestation) 기능을 통해 서버로부터 각 플랫폼의 명령어와 데이터 포맷을 사전에 정의된 중간 프로토콜 언어로 변환하기 위한 알고리즘을 전달받는 것
    을 특징으로 하는 게이트웨이 장치.
  6. 삭제
  7. 제1항에 있어서,
    상기 인텔 SGX가 제공하는 로컬 어테스테이션(local attestation) 기능을 통해 상기 상호운용성 게이트웨이 내에서 상기 가상의 게이트웨이 간의 통신이 이루어지는 것
    을 특징으로 하는 게이트웨이 장치.
  8. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 인텔 SGX가 제공하는 리모트 어테스테이션 기능을 통해 서버로부터 상기 IoT 기기와의 통신에 사용되는 제2 키를 전달받고,
    상기 인텔 SGX가 제공하는 실링 기능을 통해 상기 제2 키를 암호화하여 스토리지에 저장해놓는 것
    을 특징으로 하는 게이트웨이 장치.
  9. 제8항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 인텔 SGX가 제공하는 리모트 어테스테이션 기능을 통해 상기 서버로부터 상기 IoT 기기의 소프트웨어 업데이트를 제공받고,
    상기 스토리지에 저장된 제2 키를 복호화한 후 상기 복호화된 제2 키로 상기 소프트웨어 업데이트를 암호화하여 상기 IoT 기기로 전달하는 것
    을 특징으로 하는 게이트웨이 장치.
  10. IoT 환경의 게이트웨이 장치에서 수행되는 통신 방법에 있어서,
    상기 게이트웨이 장치에서 IoT 기기 간의 통신을 인텔 SGX가 제공하는 엔클레이브 프로그램을 사용하여 처리하는 단계
    를 포함하고,
    상기 게이트웨이 장치는,
    동일 플랫폼에 속한 상기 IoT 기기 간에 통신 프로토콜을 변환하여 전달하는 게이트웨이 역할을 하며,
    상기 처리하는 단계는,
    제1 통신 프로토콜을 사용하는 제1 IoT 기기가 제2 통신 프로토콜을 사용하는 제2 IoT 기기로 데이터를 전달하고자 하는 경우,
    상기 인텔 SGX가 제공하는 실링 기능을 통해 프로토콜 변환에 사용되는 제1 키를 암호화하여 스토리지에 저장하는 단계;
    상기 제1 IoT 기기로부터 상기 데이터를 전달받아 상기 엔클레이브 프로그램을 통해 복호화하는 단계;
    상기 엔클레이브 프로그램을 통해 상기 스토리지에 저장된 제1 키를 복호화하는 단계; 및
    상기 복호화된 데이터를 상기 복호화된 제1 키를 이용하여 상기 제2 통신 프로토콜로 변환하여 상기 제2 IoT 기기로 전달하는 단계
    를 포함하고,
    상기 게이트웨이 장치는,
    서로 다른 플랫폼에 속한 상기 IoT 기기 간의 통신을 위해 각 플랫폼 별로 하나의 독립된 엔클레이브 프로그램으로 구성되는 가상의 게이트웨이를 포함하는 상호운용성(Interoperability) 게이트웨이 역할을 하며
    상기 처리하는 단계는,
    제1 플랫폼에 속한 제1 IoT 기기가 제2 플랫폼에 속한 제2 IoT 기기로 데이터를 전달하고자 하는 경우,
    상기 제1 플랫폼의 프로토콜을 사전에 정의된 중간 프로토콜 언어로 변환하는 제1 알고리즘과 상기 중간 프로토콜 언어를 상기 제2 플랫폼의 프로토콜로 변환하는 제2 알고리즘을 전달받는 단계;
    상기 제1 플랫폼에 해당되는 가상의 게이트웨이로부터 상기 데이터를 전달 받아 상기 데이터를 상기 제1 알고리즘을 통해 상기 중간 프로토콜 언어로 변환하는 단계; 및
    상기 중간 프로토콜 언어로 변환된 데이터를 상기 제2 알고리즘을 통해 상기 제2 플랫폼의 프로토콜로 변환하여 상기 제2 플랫폼에 해당되는 가상의 게이트웨이로 전달하는 단계
    를 포함하는 통신 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 제10항에 있어서,
    상기 처리하는 단계는,
    상기 인텔 SGX가 제공하는 리모트 어테스테이션 기능을 통해 서버로부터 각 플랫폼의 명령어와 데이터 포맷을 사전에 정의된 중간 프로토콜 언어로 변환하기 위한 알고리즘을 전달받는 단계
    를 포함하는 통신 방법.
  15. 삭제
  16. 제10항에 있어서,
    상기 처리하는 단계는,
    상기 인텔 SGX가 제공하는 로컬 어테스테이션 기능을 통해 상기 상호운용성 게이트웨이 내에서 상기 가상의 게이트웨이 간의 통신이 이루어지는 단계
    를 포함하는 통신 방법.
  17. 제10항에 있어서,
    상기 처리하는 단계는,
    상기 인텔 SGX가 제공하는 리모트 어테스테이션 기능을 통해 서버로부터 상기 IoT 기기와의 통신에 사용되는 제2 키를 전달받고, 상기 인텔 SGX가 제공하는 실링 기능을 통해 상기 제2 키를 암호화하여 스토리지에 저장해놓는 단계
    를 포함하는 통신 방법.
  18. 제17항에 있어서,
    상기 처리하는 단계는,
    상기 인텔 SGX가 제공하는 리모트 어테스테이션 기능을 통해 상기 서버로부터 상기 IoT 기기의 소프트웨어 업데이트를 제공받고, 상기 스토리지에 저장된 제2 키를 복호화한 후 상기 복호화된 제2 키로 상기 소프트웨어 업데이트를 암호화하여 상기 IoT 기기로 전달하는 단계
    를 포함하는 통신 방법.
KR1020180166148A 2018-12-20 2018-12-20 Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법 KR102162018B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180166148A KR102162018B1 (ko) 2018-12-20 2018-12-20 Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180166148A KR102162018B1 (ko) 2018-12-20 2018-12-20 Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법

Publications (2)

Publication Number Publication Date
KR20200084388A KR20200084388A (ko) 2020-07-13
KR102162018B1 true KR102162018B1 (ko) 2020-10-06

Family

ID=71570915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180166148A KR102162018B1 (ko) 2018-12-20 2018-12-20 Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법

Country Status (1)

Country Link
KR (1) KR102162018B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697355B (zh) * 2020-12-28 2024-05-07 比亚迪股份有限公司 一种数据处理方法及物联网网关设备
GB2605133A (en) * 2021-03-19 2022-09-28 Arm Cloud Tech Inc Methods and apparatus for transmitting data
US20240275768A1 (en) * 2021-05-25 2024-08-15 Paladi Nicolae Protocol translation for encrypted data traffic

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180241572A1 (en) * 2017-02-22 2018-08-23 Intel Corporation Techniques for remote sgx enclave authentication

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160133615A (ko) * 2015-05-12 2016-11-23 주식회사 퓨쳐시스템 사물 인터넷을 위한 사물기기 제어 시스템과 가상화 사물 서버에서 실행되는 사물기기 제어방법
KR20170112663A (ko) * 2016-04-01 2017-10-12 한국전자통신연구원 사물 인터넷 중계 장치, 그를 포함한 시스템 및 그 방법
KR20180089978A (ko) * 2017-02-02 2018-08-10 한국전자통신연구원 통합 서비스 플랫폼 장치 및 이의 서비스 제공 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180241572A1 (en) * 2017-02-22 2018-08-23 Intel Corporation Techniques for remote sgx enclave authentication

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Intel® Software Guard Extensions: EPID Provisioning and Attestation Services, Intel Corporation, 2016.10월 1부.*

Also Published As

Publication number Publication date
KR20200084388A (ko) 2020-07-13

Similar Documents

Publication Publication Date Title
EP3937424B1 (en) Blockchain data processing methods and apparatuses based on cloud computing
CN109154972B (zh) 使用基于硬件的安全隔离区域来防止电子设备上的盗版和作弊
KR102162018B1 (ko) Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법
US11736304B2 (en) Secure authentication of remote equipment
TWI420339B (zh) 軟體授權系統及方法
WO2022140903A1 (zh) 一种ota升级方法及装置
US20170310479A1 (en) Key Replacement Direction Control System and Key Replacement Direction Control Method
US11251972B2 (en) Remote control of a computing device
JP2018534852A (ja) デバイス間のセキュアアソシエーションのためのインターネット鍵交換(ike)
US9838868B1 (en) Mated universal serial bus (USB) wireless dongles configured with destination addresses
KR20200137040A (ko) 암호화된 메시지를 송수신하기 위해 동적 공개키 기반 구조를 사용하기 위한 방법, 시스템, 및 매체
CN112822177A (zh) 数据传输方法、装置、设备和存储介质
CN117061105A (zh) 数据处理方法、装置、可读介质及电子设备
EP3221996B1 (en) Symmetric keying and chain of trust
CN111786955B (zh) 用于保护模型的方法和装置
US11722295B2 (en) Methods, apparatus, and articles of manufacture to securely audit communications
JP6939313B2 (ja) 分散認証システム
KR101701625B1 (ko) 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템
KR20190007336A (ko) 보안채널 생성 방법 및 그 장치와 이를 이용한 보안정보의 송수신 방법 및 그 장치
JP6527115B2 (ja) 機器リスト作成システムおよび機器リスト作成方法
EP3665859A1 (en) Apparatus and method for encapsulation of profile certificate private keys or other data
JP6318246B2 (ja) ユーザ端末機及びそれを用いた応用プログラムの核心コード保護方法
JP6394322B2 (ja) 鍵データ生成システム、及び鍵データ生成方法
US20240214185A1 (en) Protecting secret processing, secret input data, and secret output data using enclaves
WO2023019386A1 (en) Network configuration protocol datastore encryption

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant