KR102443259B1 - 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법 - Google Patents

하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법 Download PDF

Info

Publication number
KR102443259B1
KR102443259B1 KR1020220100693A KR20220100693A KR102443259B1 KR 102443259 B1 KR102443259 B1 KR 102443259B1 KR 1020220100693 A KR1020220100693 A KR 1020220100693A KR 20220100693 A KR20220100693 A KR 20220100693A KR 102443259 B1 KR102443259 B1 KR 102443259B1
Authority
KR
South Korea
Prior art keywords
security
api
execution request
module
secure
Prior art date
Application number
KR1020220100693A
Other languages
English (en)
Other versions
KR20220116136A (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
Priority claimed from KR1020190171018A external-priority patent/KR20210060281A/ko
Application filed by 주식회사 시옷 filed Critical 주식회사 시옷
Publication of KR20220116136A publication Critical patent/KR20220116136A/ko
Application granted granted Critical
Publication of KR102443259B1 publication Critical patent/KR102443259B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y10/00Economic sectors
    • G16Y10/75Information technology; Communication
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y30/00IoT infrastructure
    • G16Y30/10Security thereof
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Telephonic Communication Services (AREA)
  • Storage Device Security (AREA)
  • Alarm Systems (AREA)
  • Burglar Alarm Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 개시는 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템을 제공한다. 이 시스템은, 보안 서비스 API의 호출을 통해서 보안 서비스 요청을 전송하는 호스트 디바이스, 및 상기 보안 서비스 요청을 보안 실행 요청으로 변환하고, 보안 API의 호출을 통해 상기 보안 실행 요청을 실행하는 보안 모듈을 포함하고, 상기 보안 모듈은, 상기 보안 API의 호출에 따라, 상기 보안 실행 요청을 보안 요소 및 보안 저장소 중 적어도 하나에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환한다.

Description

하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법{SYSTEMS AND METHODS FOR PROVIDING IOT SECURITY SERVICE USING HARDWARE SECURITY MODULE}
본 개시는 하드웨어 보안 모듈을 이용한 IoT 보안 서비스 제공 시스템 및 방법에 관한 것으로, 보다 상세하게는, 하드웨어 보안 모듈을 이용한 IoT 보안 서비스 제공을 위해, IoT 디바이스의 보안 서비스 요청의 처리를 위한 상위 레벨의 프로그래밍 인터페이스를 제공함으로써, 하드웨어 보안 모듈의 운영 및 제어를 효율적이고 용이하게 실행할 수 있는 IoT 보안 서비스 제공 시스템 및 방법에 관한 것이다.
일반적으로 사물 인터넷(IoT, Internet of Thing)은 사물 또는 그 주변의 데이터를 센서 등과 같은 제한된 리소스를 갖는 장치를 이용하여 수집하고, 수집된 데이터를 무선 네트워크를 통해 송수신하는 기술이나 환경을 말하며, 여러 분야에 적용되어 사용되고 있다. 예를 들어, 사물 인터넷은 스마트 공장과 같은 제조 시설, 실시간 진료 및 건강데이터 수집을 위한 의료 기기, 스마트자동차 등의 교통 시설, 스마트 폰이나 웨어러블 장치를 이용한 금융 결제 서비스 등과 같이 원격에서 실시간으로 관리 및 모니터링 할 수 있는 방법을 제공한다.
하지만 사물 인터넷은 대부분 개방된 인터넷망과 무선 통신을 기반으로 하고 있기 때문에, 네트워크에 연결된 사물 인터넷 디바이스는 악의적인 공격자의 대상이 될 수 있다. 따라서, 사물 인터넷에 연결된 디바이스들의 보안 문제가 제기되고 있다.
또한, 사물 인터넷에 연결된 디바이스는 경량의 소형 전자 장치 형태로 제작되어 제한된 하드웨어 자원(예를 들어, 제한된 용량의 메모리, 전원 및 프로세서)을 보유하므로, 자체적으로 충분한 보안 기능을 적용하기 위한 소프트웨어를 설치 및 실행하는데 한계가 있다. 또한, 디바이스의 프로세서와 메모리를 이용하여 암호화 같은 다양한 보안 기능을 실행하기 위한 알고리즘을 이용한 소프트웨어 개발 과정이 매우 복잡하여 많은 시간과 비용을 필요로 한다.
본 개시는, 이상 설명한 사물 인터넷 보안의 문제점을 해결하기 위해, 하드웨어 기반의 보안 모듈의 제어 또는 보안 알고리즘을 용이하게 실행할 수 있는 하드웨어 시스템 구성 및 프로그래밍 인터페이스를 제공한다.
본 개시의 일 실시예에 따른 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템은, 보안 서비스 API의 호출을 통해서 보안 서비스 요청을 전송하는 호스트 디바이스; 및 상기 보안 서비스 요청을 보안 실행 요청으로 변환하고, 보안 API의 호출을 통해 상기 보안 실행 요청을 실행하는 보안 모듈을 포함하고, 상기 보안 모듈은, 상기 보안 API의 호출에 따라, 상기 보안 실행 요청을 보안 요소 및 보안 저장소 중 적어도 하나에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환한다.
일 실시예에 따르면, 상기 보안 모듈은, 상기 보안 알고리즘 실행 요청에 따라 상기 보안 요소 및 보안 저장소 중 적어도 하나를 제어하여 보안 알고리즘을 실행하도록 구성된다.
일 실시예에 따르면, 상기 보안 저장소는, 디바이스 인증을 위한 개인키, 디바이스 인증서, 보안 펌웨어를 포함하는 보안 데이터의 적어도 일부를 저장한다.
일 실시예에 따르면, 상기 보안 요소는, 디바이스 인증을 위한 키 생성, 암호화 엔진의 가속 기능을 포함하는 보안 기능을 실행한다.
일 실시예에 따르면, 상기 보안 서비스 API는, 상기 호스트 디바이스에 의해 호출될 때, 상기 보안 서비스 요청을 정의하기 위한 제1 파라미터를 수신하고, 상기 제1 파라미터는 상기 보안 모듈이 처리할 수 있는 제2 파라미터로 변환되며, 상기 보안 API는, 상기 보안 모듈에 의해 호출될 때, 상기 제2 파라미터는 상기 보안 알고리즘이 처리할 수 있는 제3 파라미터로 변환되며, 상기 보안 알고리즘은 상기 제3 파라미터에 기초하여, 상기 보안 요소, 상기 보안 저장소 중 적어도 하나를 제어하도록 실행된다.
본 개시의 다른 실시예에 따른 하드웨어 보안 모듈을 이용한 IoT 보안 서비스 제공 방법은, 호스트 디바이스에 의해, 보안 서비스 API의 호출을 통해서 보안 서비스 요청을 전송하는 단계; 보안 모듈에 의해, 상기 보안 서비스 요청을 보안 실행 요청으로 변환하고, 상기 보안 실행 요청의 실행을 위한 보안 API를 호출하는 단계; 및 상기 보안 모듈에 의해, 상기 보안 API의 호출에 따라, 상기 보안 실행 요청을 보안 요소 및 보안 저장소 중 적어도 하나에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환하는 단계를 포함한다.
일 실시예에 따르면, 상기 방법은, 상기 보안 요소 및 보안 저장소 중 적어도 하나에 의해, 상기 보안 알고리즘 실행 요청에 따라 보안 알고리즘을 실행하는 단계를 더 포함한다.
일 실시예에 따르면, 상기 방법은, 상기 보안 서비스 API에 의해, 상기 호스트 디바이스에 의해 호출될 때, 상기 보안 서비스 요청을 정의하기 위한 제1 파라미터를 수신하고, 상기 제1 파라미터를 상기 보안 모듈이 처리할 수 있는 제2 파라미터로 변환하는 단계; 상기 보안 API에 의해, 상기 보안 모듈에 의해 호출될 때, 상기 제2 파라미터를 상기 보안 알고리즘이 처리할 수 있는 제3 파라미터로 변환하는 단계; 및 상기 보안 알고리즘에 의해, 상기 제3 파라미터에 기초하여, 상기 보안 요소, 상기 보안 저장소 중 적어도 하나를 제어하도록 실행하는 단계를 더 포함한다.
본 개시의 다양한 실시예들에 따르면, IoT 호스트 디바이스가 하드웨어 기반의 보안 모듈을 용이하게 제어할 수 있는 하드웨어 시스템 구성과 직관적이고 이해하기 쉬운 프로그래밍 인터페이스를 제공할 수 있다. 본 개시의 하드웨어 시스템 구성과 프로그래밍 인터페이스를 이용하면, IoT 디바이스에 의해 제공되는 보안 서비스를 효율적으로 실행할 수 있다.
본 개시의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 개시의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.
도 1은 본 개시의 일 실시예에 따른 클라우드에 연결된 IoT 디바이스가 하드웨어 보안 모듈을 이용하여 보안 서비스를 제공하는 시스템의 구조를 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 하드웨어 보안 모듈과 IoT 디바이스의 구성을 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따른 하드웨어 보안 모듈의 운영과 제어를 실행할 수 있는 보안 서비스 API를 포함하는 시스템 구조를 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른 하드웨어 보안 모듈의 구성을 나타내는 블록도이다.
도 5는 본 개시의 다른 실시예에 따른 하드웨어 보안 모듈의 구성을 나타내는 블록도이다.
도 6은 본 개시의 또 다른 실시예에 따른 하드웨어 보안 모듈의 구성을 나타내는 블록도이다.
도 7은 본 개시의 일 실시예에 따른 하드웨어 보안 모듈을 이용한 IoT 보안 서비스 제공 시스템의 구조를 나타내는 도면이다.
도 8은 본 개시의 일 실시예에 따른 하드웨어 보안 모듈을 이용한 IoT 보안 서비스 제공 방법을 나타내는 흐름도이다.
이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.
첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.
본 개시에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다.
본 개시의 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
본 개시에서, 용어 '모듈'은 소프트웨어 구성요소, 하드웨어 구성요소 또는 이들의 조합을 의미하며, '모듈'은 특정 역할이나 기능을 수행하기 위해 구성될 수 있다. 그렇지만 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 따라서, 일 예로서 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 본 개시에서 설명되는 구성요소들과 '모듈'들은 그 내부에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈'들로 결합되거나 추가적인 구성요소들과 '모듈'들로 더 분리될 수 있다.
본 개시에서, '보안 모듈(security module)'은 IoT 디바이스 인증을 위한 키 생성, 암호화 또는 보안 모니터링 기능과 같은 임의의 보안 기능을 실행하는 하드웨어 구성요소, 소프트웨어 구성요소 또는 이들의 조합을 의미할 수 있다. 이하 본 개시의 실시예들에 있어서 하드웨어 보안 모듈을 설명하는 경우, 해당 보안 모듈은 IoT 디바이스에 내장 또는 결합될 수 있는 형태로 제작된 경량의 하드웨어 보안 모듈을 의미할 수 있다.
본 개시에서, '보안 요소(security element)'는 IoT 디바이스 인증을 위한 키의 생성 및 저장, 암호화, 암호화 가속 기능 또는 보안 모니터링 기능과 같은 임의의 보안 기능을 실행하는 하드웨어 구성요소를 의미할 수 있다.
본 개시에서, '보안 저장소(security storage)'는 IoT 디바이스의 인증을 위한 인증서, 보안 기능을 실행하는 펌웨어(firmware), 또는 기타 보안 관련 데이터를 저장하는 메모리 또는 다른 형태의 저장 구성요소를 의미할 수 있다.
본 개시에서, '시스템'은 하나 이상의 IoT 디바이스, 컴퓨팅 장치, 보안 모듈, 보안 기능을 실행하는 소프트웨어 모듈 또는 구성요소들, 또는 이들이 결합된 형태를 포함하는 구성을 지칭할 수 있으며, 예를 들어, 하나 이상의 컴퓨팅 장치, 서버 장치, 또는 클라우드 서비스를 제공하는 분산된 컴퓨팅 장치를 지칭할 수 있으나, 이에 한정되는 것은 아니다. 이하 보안 서비스 API를 포함하는 시스템의 실시예들을 설명하는 경우, 시스템은 보안 서비스 API를 구현하는 소프트웨어 구조(software architecture), 운영 체제, 라이브러리, 드라이버 또는 이들과 하드웨어 보안 모듈의 하나 이상의 구성요소들이 결합된 것을 의미할 수 있다.
본 개시에서, '클라우드(cloud)' 또는 '클라우드 환경(cloud environment)'는 , 네트워크 상에서 서비스로서 확장 가능한 컴퓨팅 자원들을 제공하는 클라우드 컴퓨팅 시스템 또는 클라우드 컴퓨팅 인프라스트럭쳐(cloud computing infrastructure)를 지칭할 수 있다. 구체적으로, 클라우드 컴퓨팅은, 컴퓨팅 자원과 그 내부의 기술적인 구조(예를 들어, 서버, 저장소, 네트워크 등) 사이의 추상화(abstraction)을 제공하는 컴퓨팅 능력을 의미할 수 있으며, 이를 이용하여, 서비스 제공자와의 상호 작용이나 관리 노력을 최소화하면서 신속하게 제공될 수 있는 구성 가능한 컴퓨팅 자원의 공유 풀에 대한 온디맨드(on-demand) 네트워크 엑세스를 제공할 수 있다. 이에 따라 사용자는, 클라우드에서, 컴퓨팅 자원을 제공하는데 사용되는 물리적 시스템(또는 시스템의 위치) 등을 알 필요 없이, 가상의 컴퓨팅 자원들(예를 들어, 저장소, 데이터, 애플리케이션, 및 가상화된 컴퓨팅 시스템 등)에 접근할 수 있다.
본 개시에 있어서, 'API(application programming interface)'는 컴퓨터 장치에 의해 실행되는 컴퓨터 프로그램들 또는 코드들의 구현과 관리를 단순화하기 위해서, 이들 컴퓨터 프로그램 또는 코드의 서로 다른 부분들 사이의 인터페이스 또는 통신 프로토콜을 지칭할 수 있다. 예를 들어, API는 컴퓨터 하드웨어 또는 소프트웨어, 운영 소프트웨어를 위한 것일 수 있으며, 루틴(routine), 데이터 구조(data structure), 객체 클래스(object class), 변수(variable) 또는 원격 호출(remote call)과 같은 다양한 형태를 가질 수 있다. 본 개시에서 사용되는 '보안 서비스 API' 또는 '보안 API'는 IoT 디바이스와 이에 연결되는 하드웨어 보안 모듈 사이의 특정 인터페이스를 지칭할 수 있다. 예를 들어, IoT 디바이스가 보안 서비스 API를 통해 특정 보안 서비스를 요청한 경우, IoT 디바이스는 보안 모듈로부터 특정 답변 데이터 또는 정보(예를 들어, 보안 키, 암호화된 데이터)를 획득하거나, 보안 모듈로 하여금 사전에 정의된 특정 행위(예를 들어, 보안 키의 생성, 데이터의 암호화)를 개시하도록 할 수 있다.
도 1은 본 개시의 일 실시예에 따른 클라우드에 연결된 IoT 디바이스가 하드웨어 보안 모듈을 이용하여 보안 서비스를 제공하는 시스템의 구조를 나타내는 도면이다.
도시된 바와 같이, 클라우드에 연결된 IoT 디바이스가 하드웨어 보안 모듈을 이용하여 보안 서비스를 제공하는 시스템(100)은, 하나 이상의 IoT 디바이스(110), 인증 서버(150), 클라우드(160), 게이트웨이(130), 보안 모듈(120)을 포함할 수 있다.
IoT 디바이스(110)는, 게이트웨이(130)를 통해 클라우드(160)에 연결될 수 있다. 도 1에서는, IoT 디바이스(110)가 게이트웨이(130)를 통해 클라우드(160)에 연결된 형태로 도시되어 있으나, 이에 한정되지 않으며, IoT 디바이스(110)가 게이트웨이(130)를 거치지 않고 클라우드(160)에 직접 접속할 수 있다. 도 1에서 설명의 편의상 하나의 IoT 디바이스(110)가 도시되었지만, 이에 한정되는 것은 아니며, 2개 이상의 IoT 디바이스(110)가 클라우드(160) 또는 게이트웨이(130)에 연결될 수 있다.
클라우드(160)는, 클라우드(160)에 연결된 IoT 디바이스와 다른 서버들, 컴퓨팅 장치들, 시스템들 사이의 하드웨어 연결, 서로 다른 디바이스, 서버, 장치, 시스템들 사이의 통신 프로토콜 처리, IoT 디바이스, 서비스 및 사용자용 보안과 인증, IoT 디바이스가 수집하는 데이터의 취합, 시각화 및 분석, 이들 기능을 다른 서비스와 통합하는 기능을 제공할 수 있다.
일 실시예에서, 클라우드(160)는, IoT 디바이스(110)의 관리를 위한 데이터를 저장 및 전송하는 기능을 제공할 수 있다. IoT 디바이스(110)의 관리에 사용되는 데이터는, IoT 디바이스의 온보딩(onboarding)에 사용되는 데이터, IoT 디바이스의 관리에 사용되는 데이터, 및 IoT 디바이스의 보안 실행에 사용되는 데이터를 포함할 수 있다. 예를 들어, 클라우드(160)에 저장되는 데이터는, IoT 디바이스의 식별자(ID), IoT 디바이스의 온보딩을 위한 세션 키(session key), IoT 디바이스의 온보딩 제어에 사용되는 IoT 방화벽(firewall) 규칙, IoT 디바이스들과 송수신되는 다양한 데이터를 포함할 수 있다. 또한, 클라우드(160)는, IoT 디바이스(110)에게 제공될 서비스에 관한 데이터를 저장 및 전송할 수 있다. 예를 들어, 클라우드(160)에 저장되는 데이터는, 서비스 등록에 필요한 데이터, 서비스 식별자(ID), 서비스 제공을 위한 세션 키, IoT 디바이스들과 IoT 서비스(서버) 사이에 송수신되는 다양한 데이터를 포함할 수 있다.
게이트웨이(130)는, IoT 디바이스(110)과 클라우드(160) 사이의 데이터를 송수신하는 기능을 제공한다. 예를 들어, 게이트웨이(130)는, IoT 디바이스(110)와 클라우드(160) 사이에 송수신되는 데이터를 무선 또는 유선의 통신 채널을 통해 전송할 수 있는 무선 및/또는 유선 통신 인터페이스를 포함할 수 있다. 게이트웨이(130)는, 예를 들어, IEEE 802.11 표준에 따른 Wi-Fi, 블루투스, LoRa(Long Range)와 같은 저전력 광역 네트워크(LPWAN: low-power wide-area network)를 포함하는 무선 네트워크의 일부를 형성하는 통신 프로토콜에 따른 통신 기능을 실행할 수 있다.
보안 모듈(120)은, 보안 키의 생성, IoT 디바이스(110)의 인증, 암호화 등의 보안 기능을 실행할 수 있는 하드웨어 또는 하드웨어와 소프트웨어가 결합된 구성을 포함하는 장치이다. 예를 들어, 보안 모듈(120)은, IoT 디바이스(110)에 내장된 회로 기판과 같은 하드웨어 부품이거나, IoT 디바이스(110)에 탈부착 가능하도록 구성된 경량의 하드웨어 장치일 수 있다.
예를 들어, 보안 모듈(120)은, IoT 디바이스(110)의 인증을 위한 공개키 및 개인키 쌍을 생성할 수 있다. IoT 디바이스(110)는 보안 모듈(120)에서 생성된 공개키와 디바이스 식별자를 포함하는 인증서 생성 요청을 클라우드(160)를 통해 인증 서버(150)로 전송할 수 있다. 인증 서버(150)는, 인증 기관(certification authority)의 역할을 실행하는 하나 이상의 컴퓨팅 장치를 포함하는 서버 장치일 수 있다. 인증 서버(150)는, IoT 디바이스(110)로부터 수신한 인증서 생성 요청에 포함된 공개키와 디바이스 식별자에 대한 검증을 진행한 후 인증서를 생성할 수 있다. 인증 서버(150)는, 생성된 인증서를 클라우드(160)를 통해 IoT 디바이스(110)로 전송할 수 있다. IoT 디바이스(110)는 인증서버(150)로부터 수신한 인증서와 개인키를 보안 모듈(122)에 저장할 수 있다.
이상 설명한 예에서, IoT 디바이스(110)는, 보안 서비스 API(application programming interface)를 통해 보안 모듈(120)에 디바이스 인증을 위한 공개키 및 개인키 쌍의 생성을 요청할 수 있다. 또한, IoT 디바이스(110)는, 보안 서비스 API를 통해 인증서 생성 요청에 포함되는 개인키를 보안 모듈(120)로부터 획득할 수 있다. 또한, IoT 디바이스(110)는, 보안 서비스 API를 통해 인증서버(150)로부터 수신한 인증서와 개인키를 보안 모듈(122)에 저장 요청할 수 있다. 이와 같이 보안 서비스 API를 사용함으로써, IoT 디바이스(110)는 보안 모듈(120)에서 실행되는 보안 함수 또는 보안 알고리즘들을 개별적으로 호출할 필요 없이 다양한 보안 기능의 실행 및 보안 데이터의 획득과 저장을 실행할 수 있다.
일 실시예에서, IoT 디바이스(110)는, 보안 기능의 실행이 필요할 경우 보안 서비스 API를 클라우드(160)로부터 다운로드 받아 설치할 수 있다. 다른 실시예에서 보안 서비스 API는 IoT 디바이스(110)의 제작 시에 디바이스 내에 저장 및 설치될 수도 있다.
도 2는 본 개시의 일 실시예에 따른 하드웨어 보안 모듈과 IoT 디바이스의 구성을 나타내는 도면이다.
IoT 디바이스(110)은 메모리(112), 프로세서(114), 통신 모듈(116) 및 입출력 인터페이스(118)를 포함할 수 있다. 이와 유사하게, 하드웨어 보안 모듈(120)은 메모리(122), 프로세서(124), 및 입출력 인터페이스(126)를 포함할 수 있다. 도 2에 도시된 바와 같이, IoT 디바이스(110) 및 하드웨어 보안 모듈(120)은 각각의 입출력 인터페이스(126, 118)을 통해 정보 및/또는 데이터를 통신할 수 있도록 구성될 수 있다.
메모리(122, 112)는 비-일시적인 임의의 컴퓨터 판독 가능한 기록매체를 포함할 수 있다. 일 실시예에 따르면, 메모리(122, 112)는 RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 다른 예로서, ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리(122, 112)와는 구분되는 별도의 영구 저장 장치로서 IoT 디바이스(110) 또는 하드웨어 보안 모듈(120)에 포함될 수 있다. 또한, 메모리(122, 112)에는 운영체제 및/또는 미들웨어와 적어도 하나의 프로그램 코드(예를 들어, IoT 디바이스(110)에 설치되어 구동되는 보안 서비스 API나, 보안 서비스 API의 호출에 의해 구동되는 하드웨어 보안 모듈(120)에 설치되는 보안 API 또는 보안 알고리즘의 실행을 위한 코드)가 저장될 수 있다.
이러한 소프트웨어 구성요소들은 메모리(122, 112)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 이러한 IoT 디바이스(110) 또는 하드웨어 보안 모듈(120)에 직접 연결가능한 기록 매체를 포함할 수 있는데, 예를 들어, 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 예로서, 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 입출력 인터페이스(118, 126) 또는 통신 모듈(116)을 통해 메모리(122, 112)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 네트워크(210)를 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(일례로 상술된 보안 서비스 API)에 기반하여 메모리(122, 112)에 로딩될 수 있다.
프로세서(124, 114)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(122, 112) 또는 통신 모듈(116)에 의해 프로세서(124, 114)로 제공될 수 있다. 예를 들어, 프로세서(124, 114)는 메모리(122, 112)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 모듈(116)은 네트워크(210)를 통해 IoT 디바이스(110)와 클라우드(160) 또는 게이트웨이(130)가 서로 통신하기 위한 구성 또는 기능을 제공할 수 있으며, IoT 디바이스(110)가 다른 컴퓨팅 장치 또는 다른 시스템(일례로 별도의 클라우드 시스템, IoT 서비스 서버 등)과 통신하기 위한 구성 또는 기능을 제공할 수 있다. 일례로, IoT 디바이스(110)의 프로세서(114)가 메모리(112)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청(예를 들어, 보안 서비스 API를 통한 보안 키의 생성 요청)은 입출력 인터페이스(126, 118)를 통해 하드웨어 보안 모듈(120)로 전달될 수 있다. 역으로, 하드웨어 보안 모듈(120)의 프로세서(124)의 제어에 따라 제공되는 제어 신호나 명령 등이 입출력 인터페이스(126, 118)를 거쳐 IoT 디바이스(110)로 수신될 수 있다. 예를 들어, IoT 디바이스(110)은 입출력 인터페이스(118)를 통해 하드웨어 보안 모듈(120)로부터 디바이스 인증을 위한 공개키와 관련된 정보를 수신할 수 있다.
입출력 인터페이스(126, 118)는, 데이터 또는 정보의 입출력 또는 전력의 공급을 위한 입출력 인터페이스일 수 있다. 예를 들어, 입출력 인터페이스(126, 118)은, 네트워크 인터페이스(예를 들어 이더넷 인터페이스), 카드 인터페이스(예를 들어, compact Flash), 시리얼 I/O 인터페이스, USB(universal serial bus) 연결을 제공하는 인터페이스 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다. 도 2에서는 입출력 인터페이스(126, 118)가 프로세서(124, 114)과 별도로 구성된 요소로서 도시되었으나, 이에 한정되지 않으며, 입출력 인터페이스(126, 118)가 프로세서(124, 114)에 포함되도록 구성될 수 있다.
IoT 디바이스(110) 또는 하드웨어 보안 모듈(120)은 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 일 실시예에 따르면, IoT 디바이스(110)는 상술된 구성요소들 중 적어도 일부를 포함하도록 구현될 수 있다. 또한, IoT 디바이스(110)는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수 있다.
일 실시예에 따르면, IoT 디바이스(110)의 프로세서(114)는 디바이스 인증을 위한 키 생성, 암호화, 인증서의 생성 또는 저장과 같은 보안 서비스를 실행하기 위한 보안 서비스 API를 호출 또는 실행하도록 구성될 수 있다. 이 때, 해당 보안 서비스 API와 연관된 프로그램 코드가 IoT 디바이스(110)의 메모리(112)에 로딩될 수 있다. 보안 서비스 API가 호출 또는 실행되는 동안에, IoT 디바이스(110)의 프로세서(114)는 입출력 인터페이스(118)를 통해 하드웨어 보안 모듈(120)로부터 정보 및/또는 데이터를 수신할 수 있으며, 수신된 정보 및/또는 데이터를 처리하여 메모리(112)에 저장할 수 있다. 또한, 이러한 정보 및/또는 데이터는 통신 모듈(116)을 통해 네트워크(210)에 연결된 다른 컴퓨팅 장치 도는 클라우드(160)에 제공할 수 있다.
프로세서(114)는 IoT 디바이스(110)의 디스플레이 출력 가능 장치(예: 터치 스크린, 디스플레이 등), 음성 출력 가능 장치(예: 스피커) 등의 출력 장치를 통해 처리된 정보 및/또는 데이터를 출력하도록 구성될 수 있다. 일 실시예에 따르면, 보안 서비스 API가 제공하는 정보 및/또는 데이터는 디스플레이 출력 가능 장치 등을 통해 표시될 수 있다. 다른 실시예에 따르면, 보안 서비스 API가 제공하는 정보 및/또는 데이터는 음성 출력 가능 장치 등을 통해 출력될 수 있다.
이하에서는 IoT 디바이스(100)의 프로세서(114)가 보안 서비스 API를 호출 또는 실행하여 보안 서비스를 제공하는 구체적인 방식에 대해서 상세히 설명된다.
도 3은 본 개시의 일 실시예에 따른 하드웨어 보안 모듈의 운영과 제어를 실행할 수 있는 보안 서비스 API를 포함하는 시스템 구조를 나타내는 도면이다.
도 3에 도시된 시스템(300)은, 호스트 디바이스(110), 및 호스트 디바이스(110)에 연결되는 보안 모듈(130)을 포함할 수 있다. 일 예에서, 호스트 디바이스(110)는, 사물 인터넷(IoT)에 연결되어 데이터를 수집 및 분석하는 IoT 디바이스로서, 예를 들어, 스마트 팩토리에 설치되는 하나 이상의 센서 또는 액튜에이터 중의 하나일 수 있다. 또한, 보안 모듈(130)은, 호스트 디바이스(110)에 내장되거나 연결될 수 있는 하드웨어 기반의 보안 장치로서, 기판 또는 다른 형태의 경량의 하드웨어 장치, 또는 소프트웨어와 하드웨어가 결합된 장치로 구현될 수 있다.
보안 모듈(130)은, 디바이스 인증을 위한 키 생성, 암호화 엔진의 가속기 기능을 실행하는 보안 요소(340), 개인키, 디바이스 인증서, 보안 펌웨어(firmware) 등과 보안 데이터를 저장하는 보안 저장소(360), 및 암호화 등과 같은 보안 기능을 실행하는 암호화 엔진(380)을 포함할 수 있다. 암호화 엔진(380)은, MCU(micro controller unit)와 같은 하드웨어 컴퓨팅 장치로 구현될 수 있으나, 이에 한정되는 것은 아니며, 반도체 칩과 같은 하드웨어 장치와 소프트웨어가 결합된 형태로 구현될 수도 있다.
도 3에 도시된 바와 같이, 보안 서비스 API를 포함하는 시스템(300)은, 호스트 디바이스(110)가 호출할 수 있는 보안 서비스 API(310)를 포함할 수 있다. 보안 서비스 API(310)는, 호스트 디바이스(110)에 내장되거나 클라우드(160)와 같은 외부 컴퓨팅 장치 또는 서버로부터 다운로드되어 호스트 디바이스(110)에 설치되는 소프트웨어 구성요소일 수 있다.
보안 서비스 API(310)는 호스트 디바이스(110)가 요청하는 보안 서비스를 정의하기 위한 파라미터들(예를 들어, 암호화 대상인 데이터)을 수신하고, 해당 파라미터들은 보안 모듈(130)이 처리할 수 있는 다른 파라미터들(예를 들어, 암호화 방법, 암호화할 데이터의 크기 등)로 변환될 수 있다.
보안 모듈(130)은 변환된 파라미터들을 이용하여 보안 API(320)를 호출할 수 있다. 보안 API(320)는 입력된 파라미터들을 보안 알고리즘(330)이 처리할 수 있는 또 다른 파라미터들(예를 들어, 보안 요소(340)와 같은 하드웨어 구성요소가 실행할 수 있는 명령어 또는 데이터)로 변환할 수 있다. 보안 알고리즘(330)은 보안 API(320)에 의해 변환된 파라미터들에 기초하여 보안 요소(340), 보안 저장소(360), 암호화 엔진(380) 등을 제어하도록 실행될 수 있다.
이와 같이, 호스트 디바이스(110)는 호스트 디바이스에 내장 또는 설치된 보안 서비스 API(310)를 통해서 보안 서비스 요청을 보안 모듈(120)로 전송할 수 있다. 보안 모듈(120)은 보안 서비스 API(310)를 통해 수신한 보안 서비스 요청을 보안 실행 요청으로 변환하고, 변환된 보안 실행 요청을 보안 API(320)를 통해 보안 알고리즘(330)으로 변환할 수 있다. 보안 모듈(120)이 보안 알고리즘(330)을 실행함에 따라, 보안 요소(340), 보안 저장소(360), 암호화 엔진(380) 중 하나 이상이 제어되어 디바이스 인증을 위한 키 생성 및 저장, 암호화 등의 보안 기능이 실행될 수 있다.
도 4는 본 개시의 일 실시예에 따른 하드웨어 보안 모듈의 구성을 나타내는 블록도이다. 도시된 바와 같이, 보안 모듈(400)은, MCU(Micro Controller Unit)(410), 보안 요소(420), 및 보안 저장소(430)를 포함할 수 있다.
MCU(410)는, 예를 들어 마이크로프로세서와 입출력 모듈을 하나의 반도체 칩으로 제작한, 정해진 기능을 수행하는 하드웨어 장치를 지칭할 수 있다. 일 예에서, MCU(410)는 프로세서 코어, 메모리, 프로그램 가능한 입/출력을 포함할 수 있다. 다른 예에서, MCU(410)는, NOR 플래시 메모리, EPROM, OTP ROM 등과 같은 메모리에 사전 결정된 보안 기능을 수행하도록 프로그래밍된 기계어 코드를 저장할 수 있다. 또한, MCU(410)는 기계어 코드가 실행되기 위한 변수나 데이터 저장을 위해 제한된 용량의 SRAM을 포함할 수 있다.
일 실시예에서, MCU(410)는, 보안 서비스 API를 저장, 설치 및/또는 실행할 수 있다. 또한, MCU(410)는, 보안 요소(420) 및 보안 저장소(430)를 운영 및 제어하는 기능을 실행하는 보안 매니저를 실행할 수 있다. MCU(410)는 암호화를 실행하는 암호화 엔진을 저장, 설치 및/또는 실행할 수 있다. 암호화 엔진은 암호화 알고리즘을 실행하는 소프트웨어, 하드웨어 또는 이들의 조합일 수 있다.
보안 요소(420)는, 디바이스 인증을 위한 키 생성, 암호화 엔진의 가속기 기능을 포함하는 보안 기능을 실행하기 위한 하드웨어 장치일 수 있다. 예를 들어, 보안 요소(420)는, TPM(Trusted Platform Module) 규격에 따라 제작된 보안 칩 또는 보안 장치, HSM(Hardware Security Module)과 같이 보안 기능을 실행하는 보안 요소를 포함할 수 있다. 도 4에서는, 보안 요소(420)가 MCU(410)의 외부에 구성되어 있는 것으로 도시되어 있으나, 이에 한정되지 않으며, 구현예에 따라서 MCU(410) 내부에 구성될 수 있다.
보안 저장소(430)는, MCU(410) 및/또는 보안 요소(420)에 의해 생성되는 디바이스 인증용 키, 암호화된 데이터, 디바이스 인증서, 보안 펌웨어 등을 포함하는 다양한 보안 데이터를 저장할 수 있다. 일 실시예에서, 보안 저장소(430)는, 플래시 메모리, RAM 등과 같은 반도체 메모리 장치로 구현될 수 있으나, 이에 한정되는 것은 아니다. 보안 저장소(430)는, MCU(410) 또는 보안 요소(420)가 특정 저장 영역(예를 들어, 특정 블록, 세그먼트 또는 페이지)에만 접근할 수 있도록 구성될 수 있다. 또한, 보안 저장소(430)는, MCU(410), 보안 요소(420) 또는 외부 장치가 허가되지 않은 저장 영역에 접근하는 것을 막을 수 있도록 보호키(protection key)를 사용하도록 구성될 수 있다. 보안 저장소(430)가 보호키 구조를 이용하는 경우, 각 저장 영역에 보호키를 연결시킬 수 있다. 이 경우, 보안 저장소(430)의 특정 저장 영역에 접근하려는 프로세서 또는 외부 장치의 보호키가 접근되는 저장 영역에 연결된 값과 일치하면, 해당 저장 영역에 접근할 수 있다.
도 5는 본 개시의 다른 실시예에 따른 하드웨어 보안 모듈의 구성을 나타내는 블록도이다.
도시된 바와 같이, 보안 모듈(500)은, MCU(510) 및 보안 요소(520)를 포함할 수 있다. MCU(510) 및 보안 요소(520)는, 앞서 설명한 도 4의 MCU(410) 및 보안 요소(420)와 각각 동일 또는 유사한 기능 또는 구성을 포함할 수 있다. 따라서, MCU(510) 및 보안 요소(520)의 상세한 기능 및 구성에 대한 설명을 생략한다.
또한, MCU(510) 및/또는 보안 요소(520)는, MCU(510) 및/또는 보안 요소(520)에 의해 생성되는 디바이스 인증용 키, 암호화된 데이터, 디바이스 인증서, 보안 펌웨어 등을 포함하는 다양한 보안 데이터를 저장하는 메모리부를 더 포함할 수 있다. 일 실시예에서, MCU(510) 및/또는 보안 요소(520)는, 플래시 메모리, RAM 등과 같은 반도체 메모리부를 더 포함하도록 구현될 수 있으나, 이에 한정되는 것은 아니다. 이 경우, MCU(510) 및/또는 보안 요소(520)는, 외부 장치가 메모리부의 허가되지 않은 저장 영역에 접근하는 것을 방지할 수 있도록 구성될 수 있다.
도 6은 본 개시의 또 다른 실시예에 따른 하드웨어 보안 모듈의 구성을 나타내는 블록도이다.
도시된 바와 같이, 보안 모듈(600)은, MCU(610)를 포함할 수 있다. MCU(610)는, 앞서 설명한 도 4의 MCU(410) 또는 도 5의 MCU(510)와 동일 또는 유사한 기능 또는 구성을 포함할 수 있다.
또한, MCU(610)는, 디바이스 인증을 위한 키 생성, 암호화 엔진의 가속기 기능 등을 포함하는 보안 기능을 실행하기 위한 하드웨어 요소를 더 포함할 수 있다. 예를 들어, MCU(610)는, TPM에 따라 제작된 보안 칩 또는 보안 장치, HSM과 같이 보안 기능을 실행하는 보안 요소를 더 포함할 수 있다.
또한, MCU(610)는, MCU(610)에 의해 생성되는 디바이스 인증용 키, 암호화된 데이터, 디바이스 인증서, 보안 펌웨어 등을 포함하는 다양한 보안 데이터를 저장할 수 있는 메모리부를 더 포함할 수 있다. 일 실시예에서, MCU(610)는, 플래시 메모리, RAM 등과 같은 반도체 메모리부를 포함하도록 구현될 수 있으나, 이에 한정되는 것은 아니다. 이 경우, MCU(610)는, 외부 장치가 메모리부의 허가되지 않은 저장 영역에 접근하는 것을 방지할 수 있도록 구성될 수 있다.
도 7은 본 개시의 일 실시예에 따른 하드웨어 보안 모듈을 이용한 IoT 보안 서비스 제공 시스템의 구조를 나타내는 도면이다.
도시된 바와 같이, 시스템(700)은, 호스트 디바이스(110), 호스트 디바이스(110)와 연결되어 통신하는 보안 모듈(120)을 포함할 수 있다. 일 예에서, 호스트 디바이스(110)는, 사물 인터넷(IoT)에 연결되어 데이터를 수집 및 분석하는 IoT 디바이스로서, 예를 들어, 스마트 팩토리에 설치되는 하나 이상의 센서 또는 액튜에이터 중의 하나일 수 있다. 또한, 보안 모듈(120)은, 호스트 디바이스(110)에 내장되거나 연결될 수 있는 하드웨어 기반의 보안 장치로서, 기판 또는 다른 형태의 경량의 하드웨어 장치, 또는 소프트웨어와 하드웨어가 결합된 장치로 구현될 수 있다.
일 실시예에 따르면, IoT 보안 서비스의 요청을 위해 호스트 디바이스(110)는 보안 서비스 API(310)의 호출을 통해 보안 서비스 요청을 보안 모듈(120)로 전송할 수 있다. 여기서 보안 모듈(120)은 도 4 내지 도 6에 도시된 구성들 중 어느 하나를 포함할 수 있다.
이때, 보안 모듈(120)은 보안 서비스 API(310)로 표현된 보안 서비스 요청을 보안 실행 요청으로 변환할 수 있다. 이 과정에서, 보안 모듈(120)은 보안 서비스 요청에 포함된 파라미터들(예를 들어, 암호화 대상인 데이터)를 보안 실행 요청의 파라미터들(예를 들어, 암호화 방법, 암호화할 데이터의 크기 등)로 변환할 수 있다. 보안 모듈(120)의 MCU(380)는 수신한 보안 실행 요청을 보안 API(320)의 호출을 통해 실행할 수 있다.
이와 같이 보안 API(320)가 실행됨에 따라, 보안 실행 요청은 보안 알고리즘(330)(예를 들어, 제1 알고리즘, 제2 알고리즘 등) 실행 요청으로 변환될 수 있다. 이 과정에서 MCU(380)는 보안 실행 요청의 파라미터들을 보안 알고리즘(330)이 처리할 수 있는 또 다른 파라미터들(예를 들어, 보안 요소와 같은 하드웨어 구성요소가 실행할 수 있는 명령어 또는 데이터)로 변환할 수 있다. MCU(380)는 변환된 보안 알고리즘 실행 요청에 따라 보안 요소(340) 또는 보안 저장소(360)를 제어하여 보안 알고리즘을 실행하도록 구성할 수 있다.
이상 설명한 실시예들의 구성에 따르면, IoT 호스트 디바이스가 하드웨어 기반의 보안 모듈을 용이하게 제어할 수 있는 하드웨어 시스템 구성과 직관적이고 이해하기 쉬운 프로그래밍 인터페이스를 이용하여 사물인터넷 보안 기술을 효율적으로 실행할 수 있다. 구체적으로 호스트 디바이스는 보안 모듈의 구체적인 하드웨어 구성요소들이나 그 하드웨어 구성요소들을 실행할 수 있는 알고리즘 또는 명령어들의 실행방법 또는 파라미터들에 대한 정보 없이도 상위 레벨의 보안 서비스 API를 이용하여 보안 서비스 요청을 실행할 수 있다. 한편, 보안 모듈은 내부 하드웨어 구성요소들이 처리 또는 저장하는 보안 데이터를 외부에 노출하지 않고 보안 서비스 API를 통해 수신되는 보안 서비스 요청을 실행함으로써, 보안 모듈에 의해 실행되는 보안 서비스의 안전성과 보안성을 더욱 강화할 수 있다.
도 8은 본 개시의 일 실시예에 따른 하드웨어 보안 모듈을 이용한 IoT 보안 서비스 제공 방법을 나타내는 흐름도이다.
도시된 바와 같이, 하드웨어 보안 모듈을 이용한 IoT 보안 서비스 제공 방법(800)은, 호스트 디바이스에 의해, 보안 서비스 API의 호출을 통해서 보안 서비스 요청을 전송하는 단계(810)로 개시될 수 있다. 일 실시예에 따르면, 도 1 내지 도 7을 참조하면, IoT 보안 서비스의 요청을 위해 호스트 디바이스(110)는 보안 서비스 API(310)의 호출을 통해 보안 서비스 요청을 보안 모듈(120)로 전송할 수 있다. 여기서 보안 모듈(120)은 도 4 내지 도 6에 도시된 구성들 중 어느 하나를 포함할 수 있다.
보안 모듈은, 보안 서비스 요청을 보안 실행 요청으로 변환하고, 보안 실행 요청의 실행을 위한 보안 API를 호출할 수 있다(820). 일 실시예에서, 도 1 내지 도 7을 참조하면, 보안 모듈(120)은 보안 서비스 API(310)로 표현된 보안 서비스 요청을 보안 실행 요청으로 변환할 수 있다. 이 과정에서, 보안 모듈(120)은 보안 서비스 요청에 포함된 파라미터들(예를 들어, 암호화 대상인 데이터)를 보안 실행 요청의 파라미터들(예를 들어, 암호화 방법, 암호화할 데이터의 크기 등)로 변환할 수 있다. 보안 모듈(120)의 MCU(380)는 수신한 보안 실행 요청을 보안 API(320)의 호출을 통해 실행할 수 있다.
보안 API의 호출에 따라, 보안 모듈은, 보안 실행 요청을 보안 요소 및 보안 저장소 중 적어도 하나에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환할 수 있다(830). 일 실시예에 따르면, 도 1 내지 도 7을 참조하면, 보안 API(320)가 실행됨에 따라, 보안 실행 요청은 보안 알고리즘(330)(예를 들어, 제1 알고리즘, 제2 알고리즘 등) 실행 요청으로 변환될 수 있다. 이 과정에서 MCU(380)는 보안 실행 요청의 파라미터들을 보안 알고리즘(330)이 처리할 수 있는 또 다른 파라미터들(예를 들어, 보안 요소와 같은 하드웨어 구성요소가 실행할 수 있는 명령어 또는 데이터)로 변환할 수 있다.
보안 요소 및 보안 저장소 중 적어도 하나에 의해, 보안 알고리즘 실행 요청에 따라 보안 알고리즘을 실행할 수 있다(840). 일 실시예에서, 도 1 내지 도 7을 참조하면, MCU(380)는 변환된 보안 알고리즘 실행 요청에 따라 보안 요소(340) 또는 보안 저장소(360)를 제어하여 보안 알고리즘을 실행하도록 구성할 수 있다.
이상 설명된 다양한 실시예에 따른 시스템은, 데스크탑 컴퓨터, 랩탑 컴퓨터, 무선 전화기, 셀룰러 전화기, 무선 멀티미디어 디바이스, PDA, 컴퓨터의 외부에 설치된 모뎀이나 내부에 설치된 모뎀, 무선 채널을 통해 통신하는 디바이스 등과 같은 다양한 타입들의 디바이스들을 나타낼 수도 있다. 이와 같은 디바이스는, 액세스 단말기 (access terminal; AT), 액세스 유닛, 가입자 유닛, 이동국, 모바일 디바이스, 모바일 유닛, 모바일 전화기, 모바일, 원격국, 원격 단말, 원격 유닛, 유저 디바이스, 유저 장비 (user equipment), 핸드헬드 디바이스 등과 같은 다양한 이름들을 가질 수도 있다. 본원에 설명된 임의의 디바이스는, 이상 설명한 인터넷 상에서 불법 콘텐츠의 배포를 방지하는 방법의 실행에 필요한 명령들 및 데이터를 저장하기 위한 메모리, 뿐만 아니라 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합들을 가질 수도 있다.
본원에 기술된 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시 적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 당업자들은 더 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 설명하기 위해, 다양한 예시 적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능성의 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는 지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 당업자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.
하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들 (digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들 (programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들 (field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본원에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다.
따라서, 본원의 개시와 연계하여 설명된 다양한 예시 적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안에서, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성의 조합으로써 구현될 수도 있다.
펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리 (random access memory; RAM), 판독 전용 메모리 (read-only memory; ROM), 불휘발성 RAM (non-volatile random access memory; NVRAM), PROM (programmable read-only memory), EPROM (erasable programmable read-only memory), EEPROM (electrically erasable PROM), 플래시 메모리, 컴팩트 디스크 (compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로써 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본원에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.
소프트웨어로 구현되면, 상기 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능한 매체 상에 저장되거나 또는 컴퓨터 판독 가능한 매체를 통해 전송될 수도 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체들 및 통신 매체들 양자를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체들일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다.
예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 본원에서 사용된 디스크 (disk)와 디스크 (disc)는, CD, 레이저 디스크, 광 디스크, DVD (digital versatile disc), 플로피디스크, 및 블루레이 디스크를 포함하며, 여기서 디스크들 (disks) 은 보통 자기적으로 데이터를 재생하고, 반면 디스크들 (discs) 은 레이저를 이용하여 광학적으로 데이터를 재생한다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체 내에 상주할 수도 있다. 예시 적인 저장 매체는, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링 될 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 ASIC 내에 존재할 수도 있다. ASIC은 유저 단말 내에 존재할 수도 있다. 대안으로, 프로세서와 저장 매체는 유저 단말에서 개별 컴포넌트들로써 존재할 수도 있다.
본 개시의 앞선 설명은 당업자들이 본 개시를 행하거나 이용하는 것을 가능하게 하기 위해 제공된다. 본 개시의 다양한 수정예들이 당업자들에게 쉽게 자명할 것이고, 본원에 정의된 일반적인 원리들은 본 개시의 취지 또는 범위를 벗어나지 않으면서 다양한 변형예들에 적용될 수도 있다. 따라서, 본 개시는 본원에 설명된 예들에 제한되도록 의도된 것이 아니고, 본원에 개시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위가 부여되도록 의도된다.
비록 예시 적인 구현예들이 하나 이상의 독립형 컴퓨터 시스템의 맥락에서 현재 개시된 주제의 양태들을 활용하는 것을 언급할 수도 있으나, 본 주제는 그렇게 제한되지 않고, 오히려 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 현재 개시된 주제의 양상들은 복수의 프로세싱 칩들이나 디바이스들에서 또는 그들에 걸쳐 구현될 수도 있고, 스토리지는 복수의 디바이스들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 디바이스들은 PC들, 네트워크 서버들, 및 핸드헬드 디바이스들을 포함할 수도 있다.
비록 본 주제가 구조적 특징들 및/또는 방법론적 작용들에 특정한 언어로 설명되었으나, 첨부된 청구항들에서 정의된 주제가 위에서 설명된 특정 특징들 또는 작용들로 반드시 제한되는 것은 아님이 이해될 것이다. 오히려, 위에서 설명된 특정 특징들 및 작용들은 청구항들을 구현하는 예시 적인 형태로서 설명된다.
이 명세서에서 언급된 방법은 특정 실시예들을 통하여 설명되었지만, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.
110: 호스트 디바이스 120: 보안 모듈
130: 게이트웨이 150: 인증 서버
160: 클라우드 210: 네트워크
310: 보안 서비스 API 320: 보안 API
330: 보안 알고리즘

Claims (3)

  1. 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템에 있어서,
    보안 서비스 API의 호출을 통해서 보안 서비스 요청을 전송하는 호스트 디바이스; 및
    상기 보안 서비스 요청을 보안 실행 요청으로 변환하고, 보안 API의 호출을 통해 상기 보안 실행 요청을 실행하는 보안 모듈을 포함하고,
    상기 보안 모듈은, 상기 보안 API의 호출에 따라, 상기 보안 실행 요청을 상기 보안 모듈에 포함된 보안 요소 및 보안 저장소 중 적어도 하나에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환하고,
    상기 보안 모듈은, 상기 보안 알고리즘 실행 요청에 따라 상기 보안 요소 및 상기 보안 저장소 중 적어도 하나를 제어하여 보안 알고리즘을 실행하도록 구성되고,
    상기 보안 모듈은, 상기 보안 API의 호출에 따라, 상기 보안 실행 요청을 상기 보안 모듈에 포함된 암호화 엔진에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환하고, 상기 보안 알고리즘 실행 요청에 따라 상기 암호화 엔진을 제어하여 보안 알고리즘을 실행하도록 구성되고,
    상기 보안 요소는, 상기 호스트 디바이스의 인증을 위한 공개키 및 개인키 쌍의 생성 및 상기 암호화 엔진의 가속 기능을 포함하는 보안 기능을 실행하고,
    상기 호스트 디바이스는, 상기 공개키 및 상기 호스트 디바이스의 식별자를 포함하는 인증서 생성 요청을 인증 서버로 전송하고, 상기 인증 서버가 상기 인증서 생성 요청에 포함된 상기 공개키 및 상기 호스트 디바이스의 식별자에 대한 검증 후에 생성된 인증서를 수신하고,
    상기 암호화 엔진은, 상기 보안 API의 호출에 따라, 상기 보안 알고리즘의 실행으로 보안 기능을 실행하고,
    상기 보안 저장소는 상기 개인키, 상기 인증서 및 보안 펌웨어를 포함하는 보안 데이터의 적어도 일부를 저장하고,
    상기 보안 저장소의 특정 저장 영역은 상기 보안 요소 또는 외부 장치가 상기 특정 저장 영역에 접근하는 것을 방지할 수 있도록 제1 보호키와 연결되어, 상기 보안 요소 또는 상기 외부 장치의 제2 보호키가 상기 제1 보호키와 일치하는 경우 상기 보안 요소 또는 상기 외부 장치가 상기 특정 저장 영역에 접근 가능하도록 구성되고,
    상기 보안 서비스 API는, 상기 호스트 디바이스에 의해 호출될 때, 상기 보안 서비스 요청을 정의하기 위한 제1 파라미터를 수신하고, 상기 제1 파라미터를 상기 보안 모듈이 처리할 수 있는 제2 파라미터로 변환하며,
    상기 보안 API는, 상기 보안 모듈에 의해 호출될 때, 상기 제2 파라미터를 상기 보안 알고리즘이 처리할 수 있는 제3 파라미터로 변환하며,
    상기 보안 알고리즘은 상기 제3 파라미터에 기초하여, 상기 보안 요소, 상기 암호화 엔진 및 상기 보안 저장소 중 적어도 하나를 제어하도록 실행되는, 시스템.
  2. 하드웨어 보안 모듈을 이용한 IoT 보안 서비스 제공 방법에 있어서,
    호스트 디바이스에 의해, 보안 서비스 API의 호출을 통해서 보안 서비스 요청을 전송하는 단계;
    보안 모듈에 의해, 상기 보안 서비스 요청을 보안 실행 요청으로 변환하고, 상기 보안 실행 요청의 실행을 위한 보안 API를 호출하는 단계; 및
    상기 보안 모듈에 의해, 상기 보안 API의 호출에 따라, 상기 보안 실행 요청을 상기 보안 모듈에 포함된 보안 요소 및 보안 저장소 중 적어도 하나에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환하는 단계를 포함하고,
    상기 보안 모듈은, 상기 보안 알고리즘 실행 요청에 따라 상기 보안 요소 및 상기 보안 저장소 중 적어도 하나를 제어하여 보안 알고리즘을 실행하도록 구성되고,
    상기 보안 모듈은, 상기 보안 API의 호출에 따라, 상기 보안 실행 요청을 상기 보안 모듈에 포함된 암호화 엔진에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환하고, 상기 보안 알고리즘 실행 요청에 따라 상기 암호화 엔진을 제어하여 보안 알고리즘을 실행하도록 구성되고,
    상기 보안 요소는, 상기 호스트 디바이스의 인증을 위한 공개키 및 개인키 쌍의 생성 및 상기 암호화 엔진의 가속 기능을 포함하는 보안 기능을 실행하고,
    상기 호스트 디바이스는, 상기 공개키 및 상기 호스트 디바이스의 식별자를 포함하는 인증서 생성 요청을 인증 서버로 전송하고, 상기 인증 서버가 상기 인증서 생성 요청에 포함된 상기 공개키 및 상기 호스트 디바이스의 식별자에 대한 검증 후에 생성한 인증서를 수신하고,
    상기 암호화 엔진은, 상기 보안 API의 호출에 따라, 상기 보안 알고리즘의 실행으로 보안 기능을 실행하고,
    상기 보안 저장소는 상기 개인키, 상기 인증서 및 보안 펌웨어를 포함하는 보안 데이터의 적어도 일부를 저장하고,
    상기 보안 저장소의 특정 저장 영역은 상기 보안 요소 또는 외부 장치가 상기 특정 저장 영역에 접근하는 것을 방지할 수 있도록 제1 보호키와 연결되어, 상기 보안 요소 또는 상기 외부 장치의 제2 보호키가 상기 제1 보호키와 일치하는 경우 상기 보안 요소 또는 상기 외부 장치가 상기 특정 저장 영역에 접근 가능하도록 구성되고,
    상기 보안 서비스 API는, 상기 호스트 디바이스에 의해 호출될 때, 상기 보안 서비스 요청을 정의하기 위한 제1 파라미터를 수신하고, 상기 제1 파라미터를 상기 보안 모듈이 처리할 수 있는 제2 파라미터로 변환하며,
    상기 보안 API는, 상기 보안 모듈에 의해 호출될 때, 상기 제2 파라미터를 상기 보안 알고리즘이 처리할 수 있는 제3 파라미터로 변환하며,
    상기 보안 알고리즘은 상기 제3 파라미터에 기초하여, 상기 보안 요소, 상기 암호화 엔진 및 상기 보안 저장소 중 적어도 하나를 제어하도록 실행되는, 방법.
  3. 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 비일시적 컴퓨터 판독가능 저장매체로서,
    상기 하나 이상의 프로그램은,
    호스트 디바이스에 의해, 보안 서비스 API의 호출을 통해서 보안 서비스 요청을 전송하는 단계;
    보안 모듈에 의해, 상기 보안 서비스 요청을 보안 실행 요청으로 변환하고, 상기 보안 실행 요청의 실행을 위한 보안 API를 호출하는 단계; 및
    상기 보안 모듈에 의해, 상기 보안 API의 호출에 따라, 상기 보안 실행 요청을 상기 보안 모듈에 포함된 보안 요소 및 보안 저장소 중 적어도 하나에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환하는 단계를 포함하는 방법을 수행하기 위한 명령어들을 포함하고,
    상기 보안 모듈은, 상기 보안 알고리즘 실행 요청에 따라 상기 보안 요소 및 상기 보안 저장소 중 적어도 하나를 제어하여 보안 알고리즘을 실행하도록 구성되고,
    상기 보안 모듈은, 상기 보안 API의 호출에 따라, 상기 보안 실행 요청을 상기 보안 모듈에 포함된 암호화 엔진에 의해 실행 가능한 보안 알고리즘 실행 요청으로 변환하고, 상기 보안 알고리즘 실행 요청에 따라 상기 암호화 엔진을 제어하여 보안 알고리즘을 실행하도록 구성되고,
    상기 보안 요소는, 상기 호스트 디바이스의 인증을 위한 공개키 및 개인키 쌍의 생성 및 상기 암호화 엔진의 가속 기능을 포함하는 보안 기능을 실행하고,
    상기 호스트 디바이스는, 상기 공개키 및 상기 호스트 디바이스의 식별자를 포함하는 인증서 생성 요청을 인증 서버로 전송하고, 상기 인증 서버가 상기 인증서 생성 요청에 포함된 상기 공개키 및 상기 호스트 디바이스의 식별자에 대한 검증 후에 생성한 인증서를 수신하고,
    상기 암호화 엔진은, 상기 보안 API의 호출에 따라, 상기 보안 알고리즘의 실행으로 보안 기능을 실행하고, 상기 보안 저장소는 상기 개인키, 상기 인증서 및 보안 펌웨어를 포함하는 보안 데이터의 적어도 일부를 저장하고,
    상기 보안 저장소의 특정 저장 영역은 상기 보안 요소 또는 외부 장치가 상기 특정 저장 영역에 접근하는 것을 방지할 수 있도록 제1 보호키와 연결되어, 상기 보안 요소 또는 상기 외부 장치의 제2 보호키가 상기 제1 보호키와 일치하는 경우 상기 보안 요소 또는 상기 외부 장치가 상기 특정 저장 영역에 접근 가능하도록 구성되고,
    상기 보안 서비스 API는, 상기 호스트 디바이스에 의해 호출될 때, 상기 보안 서비스 요청을 정의하기 위한 제1 파라미터를 수신하고, 상기 제1 파라미터를 상기 보안 모듈이 처리할 수 있는 제2 파라미터로 변환하며,
    상기 보안 API는, 상기 보안 모듈에 의해 호출될 때, 상기 제2 파라미터를 상기 보안 알고리즘이 처리할 수 있는 제3 파라미터로 변환하며,
    상기 보안 알고리즘은 상기 제3 파라미터에 기초하여, 상기 보안 요소, 상기 암호화 엔진 및 상기 보안 저장소 중 적어도 하나를 제어하도록 실행되는, 비일시적 컴퓨터 판독가능 저장매체.
KR1020220100693A 2019-11-18 2022-08-11 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법 KR102443259B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20190147867 2019-11-18
KR1020190147867 2019-11-18
KR1020190171018A KR20210060281A (ko) 2019-11-18 2019-12-19 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190171018A Division KR20210060281A (ko) 2019-11-18 2019-12-19 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20220116136A KR20220116136A (ko) 2022-08-22
KR102443259B1 true KR102443259B1 (ko) 2022-09-14

Family

ID=75909359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220100693A KR102443259B1 (ko) 2019-11-18 2022-08-11 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법

Country Status (2)

Country Link
US (1) US11316683B2 (ko)
KR (1) KR102443259B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7185978B2 (ja) * 2018-07-03 2022-12-08 株式会社ソラコム 認証情報の設定を仲介するための装置及び方法
EP4128651A4 (en) * 2020-03-31 2024-04-24 Entrust Corporation HARDWARE SECURITY MODULE PROXY DEVICE FOR STORAGE EXPANSION
US11563579B2 (en) * 2020-10-02 2023-01-24 Nvidia Corporation Token-based zero-touch enrollment for provisioning edge computing applications
US11677746B2 (en) * 2020-10-30 2023-06-13 Microsoft Technology Licensing, Llc Device capability model sharing
CN113312224B (zh) * 2021-06-08 2022-09-13 合肥磐芯电子有限公司 一种用于测试otp型mcu及其测试方法
US20230012013A1 (en) * 2021-07-08 2023-01-12 Data I/O Corporation Secure device programming system with hardware security module and security interop layer
CN113407367A (zh) * 2021-08-18 2021-09-17 万商云集(成都)科技股份有限公司 一种接口配置方法及系统
WO2023156006A1 (en) * 2022-02-18 2023-08-24 Volkswagen Aktiengesellschaft Control device comprising a processor circuit for executing applications that use cryptographic service functions and method for operating the control device and motor vehicle

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101348079B1 (ko) 2013-06-07 2014-01-08 라온시큐어(주) 휴대단말을 이용한 전자서명 시스템
KR101688812B1 (ko) 2016-04-18 2016-12-22 (주)케이사인 소유자 인증 서버 기반의 IoT 기기 인가관리 방법 및 시스템

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101807645B1 (ko) 2010-12-23 2018-01-18 주식회사 케이티 Usim 공인인증서를 유선환경에서 활용하기 위한 방법 및 시스템
US10332081B2 (en) * 2012-03-16 2019-06-25 Visa International Service Association Pin entry for internet banking on media device
KR102153149B1 (ko) * 2012-10-24 2020-09-07 도쿄엘렉트론가부시키가이샤 보정값 산출 장치, 보정값 산출 방법 및 컴퓨터 프로그램
KR102149313B1 (ko) 2013-08-23 2020-08-31 주식회사 비즈모델라인 유심기반 전자서명 처리 방법
KR20150116344A (ko) * 2014-04-07 2015-10-15 한국전자통신연구원 사물 인터넷 브로커링 방법 및 장치
KR101453372B1 (ko) * 2014-04-15 2014-10-22 주식회사 스마티랩 사물인터넷 환경에서 디바이스간 이질적 데이터 교환 방식의 중재 시스템
US9571279B2 (en) * 2014-06-05 2017-02-14 Cavium, Inc. Systems and methods for secured backup of hardware security modules for cloud-based web services
US9977415B2 (en) * 2015-07-03 2018-05-22 Afero, Inc. System and method for virtual internet of things (IOT) devices and hubs
KR102164473B1 (ko) * 2015-08-26 2020-10-12 주식회사 케이티 사물 인터넷 시스템에서의 데이터 공유 장치 및 데이터 공유 방법
US10230710B2 (en) * 2016-08-04 2019-03-12 Visa International Service Association Token based network service among IoT applications
TWI764971B (zh) * 2016-12-30 2022-05-21 美商英特爾公司 物聯網
US10243731B2 (en) * 2017-01-27 2019-03-26 Accenture Global Solutions Limited Hardware blockchain acceleration
US20190158370A1 (en) * 2017-11-17 2019-05-23 Electronics And Telecommunications Research Institute Computing system and method for intelligent ioe information framework
US10560349B2 (en) * 2018-01-31 2020-02-11 Salesforce.Com, Inc. Data consistency of policy enforcement for distributed applications
US10909250B2 (en) * 2018-05-02 2021-02-02 Amazon Technologies, Inc. Key management and hardware security integration
US10346614B1 (en) * 2019-03-01 2019-07-09 Hajoon Ko Security system and method for internet of things
CN110505216A (zh) * 2019-08-02 2019-11-26 阿里巴巴集团控股有限公司 一种物联网风险防控方法、装置、系统及电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101348079B1 (ko) 2013-06-07 2014-01-08 라온시큐어(주) 휴대단말을 이용한 전자서명 시스템
KR101688812B1 (ko) 2016-04-18 2016-12-22 (주)케이사인 소유자 인증 서버 기반의 IoT 기기 인가관리 방법 및 시스템

Also Published As

Publication number Publication date
US11316683B2 (en) 2022-04-26
KR20220116136A (ko) 2022-08-22
US20210152341A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
KR102443259B1 (ko) 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법
US11336635B2 (en) Systems and methods for authenticating device through IoT cloud using hardware security module
US10735472B2 (en) Container authorization policies for network trust
US11196742B2 (en) Method, system, and device for communicating data between devices to control one of the devices
US9965653B2 (en) Trusted computing
US10341321B2 (en) System and method for policy based adaptive application capability management and device attestation
US9485231B1 (en) Securing internet of things communications across multiple vendors
US11356450B2 (en) Managing data access
US9948668B2 (en) Secure host communications
US20160188896A1 (en) Secure host interactions
EP3036928B1 (en) Mobile device authentication
US9547773B2 (en) Secure event log management
US20150356293A1 (en) Secure application development and execution
US20210152543A1 (en) Automatic escalation of trust credentials
Busold et al. Smart and secure cross-device apps for the internet of advanced things
WO2019037603A1 (zh) 一种用于对用户设备进行无线连接预授权的方法与设备
KR102377045B1 (ko) 하드웨어 보안 모듈을 이용한 클라우드를 통한 IoT(Internet of Thing) 디바이스 인증 시스템 및 방법
US20200119919A1 (en) Electronic device authentication managing apparatus
US10193892B2 (en) Resource restriction
KR20210060281A (ko) 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법
US20140372612A1 (en) Information processing device, information processing method, and program
US20240241769A1 (en) System for secure and reliable node lifecycle in elastic workloads
KR102388797B1 (ko) 하드웨어 보안칩을 이용한 하드웨어 제어 장치
CN114879980A (zh) 车载应用安装方法、装置、计算机设备、存储介质

Legal Events

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