Nothing Special   »   [go: up one dir, main page]

WO2017014614A1 - Method for operating communication client of iot device, and iot device including communication client - Google Patents

Method for operating communication client of iot device, and iot device including communication client Download PDF

Info

Publication number
WO2017014614A1
WO2017014614A1 PCT/KR2016/008115 KR2016008115W WO2017014614A1 WO 2017014614 A1 WO2017014614 A1 WO 2017014614A1 KR 2016008115 W KR2016008115 W KR 2016008115W WO 2017014614 A1 WO2017014614 A1 WO 2017014614A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
server
key
iot device
identifier
Prior art date
Application number
PCT/KR2016/008115
Other languages
French (fr)
Korean (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 claimed from KR1020160094254A external-priority patent/KR101848300B1/en
Publication of WO2017014614A1 publication Critical patent/WO2017014614A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Definitions

  • the embodiments below relate to a method of operating a communication client of an IoT device and to an IoT device including the communication client.
  • IoT Internet of Things
  • Embodiments provide an IoT network based on a secure communication platform capable of assigning a communicable identifier without inputting user's personal information.
  • embodiments provide an IoT device that operates in an IoT network and a client that enables the IoT device to communicate over an IoT network.
  • the method of operating a client of the IoT device may include: generating a private key based on a public key stored in a memory, using the peer to peer communication method of operating the client of the IoT device; Transmitting the private key to a server and receiving a key-pair generation message for the public key and the private key from the server; Sending an identifier generation request including one or more unique information to the server; Receiving a security key corresponding to an identifier and unique information corresponding to the identifier generation request from the server; And transmitting an authentication request including the identifier and the security key to the server, and receiving an authentication result corresponding to the authentication request from the server. In response to the authentication result, transitioning the client to a communicable state; And transmitting data to the counterpart client through a server using a shared key transmitted from the server according to a paying request with the counterpart client.
  • An IoT device using peer-to-peer communication includes a communication interface for peer-to-peer communication; Memory stored in the client for performing peer-to-peer communication; And a central processing unit for controlling execution of the client, wherein the client generates a private key based on the public key stored in the memory; Transmitting the private key to a server and receiving a key-pair generation message for the public key and the private key from the server; Sending an identifier generation request including one or more unique information to the server; Receiving a security key corresponding to an identifier and unique information corresponding to the identifier generation request from the server; And transmitting an authentication request including the identifier and the security key to the server, and receiving an authentication result corresponding to the authentication request from the server. In response to the authentication result, transitioning the client to a communicable state; And transmitting data to the counterpart client through a server using a shared key transmitted from the server according to a paying request with the counterpart client.
  • Embodiments may provide an IoT network based on a secure communication platform capable of assigning a communicable identifier without inputting user's personal information.
  • embodiments may provide an IoT device that operates in an IoT network and a client that enables the IoT device to communicate via an IoT network. This makes it possible to easily implement IoT networks through wireless communication networks, not carrier-oriented IoT networks.
  • FIG. 1 is a flowchart illustrating a client authentication method according to an embodiment.
  • FIG. 2 is a flowchart illustrating a method for pairing a client of an IoT device according to an embodiment.
  • FIG. 3 is a block diagram illustrating an IoT device according to an embodiment.
  • FIG. 1 is a flowchart illustrating a client authentication method installed in an IoT device according to an embodiment.
  • the client 110 transmits a public key request to a server (111).
  • the server 120 issues a public key in response to the public key request received from the client 110 (121).
  • the size of the public key may be, for example, 64 bytes, ie 512 bits.
  • the server 120 transmits the public key to the client 110 (122).
  • the server 120 and the client 110 may perform unencrypted communication.
  • the client 110 stores the public key and generates a private key (112).
  • the size of the private key may be 64 bytes, for example.
  • the client 110 transmits the private key to the server 120 (113).
  • the client 110 may encrypt the private key using the public key, and transmit the encrypted private key to the server 120.
  • the server 120 receives a private key from the client 110. Since the server 120 has a public key, the server 120 can decrypt the encrypted private key using the public key.
  • the server 120 maps the public and private keys to key-pairs (123).
  • the server 120 may store the mapped key-pair in the server 120 (124).
  • the server 120 transmits a key-pair generation message to the client 110 (125).
  • the server 120 may encrypt the key-pair generation message using the private key.
  • the client 110 confirms the generation of the key-pair using the key-pair generation message.
  • Client 110 stores the key-pair (114). For example, when the generation of the key-pair is confirmed, the client 110 may map the private key and the public key to the key-pair, and store the mapped key-pair in the client 110.
  • the key-pair may be stored at the client 110 and the server 120.
  • the storage location of the above-mentioned key-pair is merely an exemplary matter, and the storage location of the key-pair is not limited to the above-described matter.
  • the key-pair may be stored in either client 110 or server 120.
  • the client 110 transmits an identifier generation request including the unique information to the server 120 (115).
  • the identifier generation request may be encrypted using a private key.
  • the unique information may include, for example, at least one of a device unique key corresponding to a physical device on which the client 110 is installed or an operating system (OS) and a manufacturing key corresponding to communication software executed on the client 110. It may include.
  • OS operating system
  • the physical device of the client 110 may include, for example, at least one of a CPU and a micro processor unit (MPU).
  • the device unique key may be obtained from identification information of the CPU or identification information of the MPU.
  • the operating system stored in the client 110 may have unique information to distinguish it from other operating systems. As a result, the client 110 may obtain the device unique key from the unique information of the operating system.
  • the manufacturing key may include a site key, a manufacturer key, and a product key.
  • the site key corresponds to site information.
  • Site information may, for example, represent information based on site IP addresses.
  • the manufacturer key corresponds to the manufacturer information.
  • the manufacturer information may, for example, represent identification information of the manufacturer who manufactures the communication software.
  • the product key corresponds to version information of the communication software.
  • the device unique key and the manufacture key may have a predetermined size.
  • the device unique key may be 128 bits in size and the manufacturing key may be 208 bits in size.
  • the site key, manufacturer key, and product key may have a predetermined size.
  • the size of the site key may be 80 bits
  • the size of the manufacturer key may be 64 bits
  • the size of the product key may be 64 bits.
  • the manufacturing key may be configured in the order of the site key, the manufacturer key, and the product key.
  • the order of the site key, the manufacturer key, and the product key is exemplary only, and the order of the site key, the manufacturer key, and the product key is not limited to the above-described matters.
  • the server 120 generates a security key.
  • the server 120 may generate a security key corresponding to the unique information of the client 110. For example, when the server 120 receives a device unique key and a manufacturing key from the client 110, the server 120 may generate a security key by modifying the device unique key and the manufacturing key.
  • the server 120 may generate a 256-bit security key based on the 128-bit device unique key and the 208-bit manufacturing key.
  • a security key can be used to encrypt a packet exchanged between a client and another client.
  • Server 120 generates an identifier.
  • the size of the identifier may be 64 bytes, for example.
  • the identifier will be described below.
  • the server 120 may randomly generate an identifier and assign the identifier to the client 110.
  • the identifier may be any one of n-digit random values n ⁇ n based on n pieces of distinguishing information. For example, when 64 pieces of distinguishing information of 1 byte, the identifier may be any one of 64 ⁇ 64 random values having 64 digits.
  • the server 120 may randomly arrange 64 pieces of distinguishing information to generate an identifier.
  • the server 120 may check whether the identifier overlaps with another identifier, and if not, assign the identifier to the client 110. As a result, the identifier may be unique for each client 110.
  • the server may use the identifier to distinguish between the client 110 and another client.
  • a hash index may be embedded in the identifier.
  • the size of the hash index may be 64 bits, for example.
  • the server 120 may embed the hash index in the identifier using the conversion logic. For example, suppose the size of the identifier is 64 bytes.
  • the server 120 may apply the conversion logic to a specific bit contained in the first byte. When the conversion logic is applied to a specific bit, the specific bit may or may not change to another bit. If the particular bit has a first logic value, the particular bit may be changed to or maintained by the conversion logic by the second logic value.
  • the specific bit may be one, for example.
  • the server can apply the conversion logic to specific bits contained in the remaining bytes.
  • a hash index can be embedded in the identifier.
  • ABCD may be AZDD by the conversion logic, and a hash index may be embedded in AZDD.
  • the server 120 may access the database using a hash index obtained from the identifier instead of the identifier of the client 110.
  • the server 120 may transmit the query based on the hash index to the database without transmitting the query based on the identifier of the client 110 to the database.
  • the database may compare the hash index and the DB index without comparing the string of the identifier of the client 110 and the string of the plurality of identifiers stored in the database. This may increase the response speed of the database or the speed of searching the database.
  • the server 120 generates a question for maintaining the UDP session to the client 110.
  • Server 120 may embed a hash index in the query.
  • the server 120 sends the question to the client 110.
  • the client 110 may generate an answer.
  • the UDP session may be maintained, and if the answer does not correspond to the question, then the UDP session is not maintained and is released.
  • the generated answer contains a hash index.
  • the client 110 may transmit an answer in which the hash index is embedded to the server 120.
  • the server 120 checks the answer of the client 110.
  • Server 120 may obtain a hash index from the answer. For example, the server 120 may obtain a hash index by performing an XOR operation on the bytes included in the answer.
  • the server 120 may check the identifier of the client 110. Since the server 120 obtains the hash index, the server 120 may access the database in which the identifier is stored using the hash index. The database may transmit an identifier corresponding to the hash index to the server 120.
  • the server 120 can identify the client 110 through a response to a query based on a hash index, without receiving an identifier from the client 110, thereby identifying the client 110 more quickly. have.
  • the validation of the UDP session can be confirmed faster, and the UDP session can be maintained.
  • the server 120 may quickly identify the client 110 using a hash index. As a result, even in an environment in which IP changes, such as P2P communication, validation of a UDP session can be confirmed, and a UDP session can be maintained.
  • the server 120 When the server 120 generates the identifier and the security key (126), the server 120 transmits the identifier and the security key to the client 110 (127).
  • the identifier and security key can be encrypted using a private key.
  • Client 110 stores the identifier and the security key (116).
  • the client 110 may transmit an authentication request including the identifier and the security key to the server 120 (116).
  • the authentication request can be encrypted using the private key.
  • the server 120 may check the identifier and the security key received from the client 110. More specifically, the server 120 may check whether the identifier and the security key received from the client 110 are the same as the identifier and the security key generated in step 125.
  • the server 120 authenticates the client 110 based on the identifier and the security key received from the client 110, and transmits the authentication result to the client 110 (129).
  • the authentication result can be encrypted using the private key.
  • the client 110 may transition to a state in which it can communicate with other clients according to the authentication result.
  • the server may authenticate other clients, and other clients may transition to a communicable state.
  • a list of other clients may be displayed in the communication software running on the client 110.
  • the client 110 and another client may enter an operation mode capable of peer-to-peer communication or direct communication.
  • the client 110 may encrypt the packet by using the security key, and transmit the encrypted packet to the other client.
  • FIG. 2 is a flowchart illustrating a method for pairing a client of an IoT device according to an embodiment.
  • the client 210 transmits an authentication request to the server 220.
  • the server 220 authenticates the client 210 (221).
  • the server 220 may authenticate the client 210 by the authentication method described above.
  • the authentication result is encrypted using the private key.
  • the server 220 transmits the authentication result to the client 210 (222).
  • the client 210 decrypts the authentication result using the private key. If the client 210 is authenticated, the client 210 transitions to a communicable state (212). The client 210 may transition to a peer-to-peer communication state.
  • the client 210 generates a paying request with the client 230 to the server 220 (213), and transmits a pairing request to the server 220 (214).
  • the server 220 generates a connection unique key between the clients 210 and 230 (223).
  • the server 220 transmits a wakeup signal to the client 230 that the client 210 requests paying (224).
  • the client 230 transitions to the communicable state in response to the wakeup signal transmitted from the server 220 (231).
  • the client 230 is previously given a security key and an identifier for P2P communication in the secure communication platform according to the method shown in FIG. 1.
  • the client 230 transmits an authentication request to the server 220 (232).
  • the server 220 authenticates the client 230 (225), and transmits the authentication result to the client 230 (226).
  • the server 220 transmits the shared key to the client 210 (227).
  • the server 220 transmits the shared key to the client 230 (228).
  • the client 210 stores the shared key transmitted from the server 220 (214), and transmits data to be transmitted to the client 230 to the server 220 (215).
  • the data may be encrypted with a shared key.
  • the client 230 stores the shared key transmitted from the server 220 (233), and receives the data transmitted by the client 210 from the server 220 (229).
  • Client 230 interprets the data (234).
  • the client 230 may decrypt the data with a shared key.
  • FIG. 2 illustrates an example of data transmission from the client 210 to the client 230
  • data transmission from the client 230 to the client 210 may be performed in the same manner.
  • 210 may be an IoT sensor
  • the client 230 may be a collector that collects sensing data collected by the IoT sensor, hereinafter with reference to FIG. Explain.
  • network-based IoT devices operate in the secure communication platform described with reference to FIGS. 1 and 2.
  • the IoT device may include the following component parts, and a client for enabling peer-to-peer communication in a secure communication platform may be installed in the memory of the IoT device.
  • the IoT Davias may further include a sensor unit (not shown) that senses various physical quantities such as temperature / light / pressure / humidity.
  • an IoT device 300 includes a power supply unit 301, a memory 302, a central processing unit 303, and a communication interface 304.
  • the power supply unit 301 may be a battery-type power supply, and may be a power storage unit including a capacitance capable of storing power for driving an IoT device for up to 5 seconds.
  • the memory 302 encrypts and stores a ROM or RAM in which a client for peer-to-peer communication described with reference to FIGS. 1 and 2 and a unique key of the IoT device or data of the IoT device, or stores a public key / private key. May include an EEPROM. Communication software included in the client may perform the following operations.
  • the communication software transmits the private key to the server via the communication interface, and receives a key-pair generation message for the public key and the private key from the server through the communication interface.
  • the communication software sends an identifier generation request including one or more unique information of the client to the server through the communication interface.
  • the communication software receives from the server via the communication interface an identifier corresponding to the identifier generation request and a security key corresponding to the unique information.
  • the communication software sends an authentication request including the identifier and the security key to the server via the communication interface.
  • the communication software receives an authentication result corresponding to the authentication request from the server through the communication interface.
  • the communication software controls the client to make the client transition to a state in which the client can communicate with other clients according to the authentication result.
  • the client may enter an operation mode in which P2P communication or direct communication is possible with other clients authenticated by the server.
  • IoT devices authenticated on a secure communication platform in the above manner may be paired with other IoT devices in the manner shown in FIG. 2, and may transmit and receive data with each other.
  • the central processing unit 303 controls the execution and operation of the client as well as the firmware and other software of the IoT device recorded in the memory 302.
  • the communication interface 304 enables the IoT device 300 to communicate peer-to-peer on a secure communication platform.
  • the communication interface 304 may include an interface for a wireless wide area network (WWAN) or a wireless local area network (WLAN).
  • WWANs are code division multiple access (CDMA) networks, time division multiple access (TDMA) networks, frequency division multiple access (FDMA) networks, orthogonal frequency division multiple access (OFDMA) networks, and / or single-carrier frequency division (SC-FDMA). Multiple Access) network or any combination thereof.
  • the WLAN may comprise an IEEE 802.11x network.
  • the communication interface 304 may include Bluetooth, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra-Wideband (UWB), ZigBee, Near Field Communication (NFC), or Z-wave. And the like.
  • RFID Radio Frequency Identification
  • IrDA Infrared Data Association
  • UWB Ultra-Wideband
  • ZigBee Ultra-Wideband
  • the IoT device 300 may be paired with a collector (not shown) that is responsible for collecting sensing data, and connected to a collector through P2P communication described with reference to FIGS. 1 and 2.
  • the sensing data can be transmitted.
  • the collector may be implemented to transmit driving power to the power supply unit 301 of the IoT device 300.
  • IoT device 300 operating in a secure communication platform may operate as follows.
  • the IoT device 300 may have been granted the public key described with reference to FIG. 1 but may not store the private key.
  • the public key may be previously given in the manufacturing process of the IoT device 300.
  • the private key may be granted by exchanging the private key with the server or collector of the secure communication platform.
  • the granted private key may be stored in an One Time Programmable (OTP) region of the EEPROM included in the memory 302 of the IoT device 300.
  • OTP One Time Programmable
  • all data in the IoT device 300 may be encrypted and stored with the public key and / or the private key. This encryption process can improve the integrity and security of the data.
  • the IoT device 300 may be powered by a passive RFID method from the collector by using RF while continuously communicating with the collector.
  • the IoT device 300 may store the sensing data sensed by the sensor in an EEPROM of the memory 302.
  • the IoT device 300 may encrypt the sensing data stored in the EEPROM with a private key, and then encrypt it with the public key, and transmit the sensing data to the collector together with the RFID unique key value.
  • the collector may first decrypt the sensed data encrypted with the public key, and secondly decrypt the sensed data by finding a private key with an RFID unique key value.
  • the collector may store sensing data for each RFID unique key value in a storage means.
  • the collector periodically transmits the encrypted sensing data to the secure communication platform using the public and private keys received from the secure communication platform.
  • the user must register the collector by connecting to the secure communication platform.
  • the server of the secure communication platform issues an RFID unique key value to the collector.
  • the user can browse the sensing data transmitted from the collector by using the RFID unique key value issued to the collector.
  • an encryption scheme such as SSL 3.0 / TLS 1.0+ or AES128 / AES256 can be used.
  • the apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components.
  • the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs).
  • ALUs arithmetic logic units
  • FPGAs field programmable gate arrays
  • PLU programmable logic unit
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
  • processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include.
  • the processing device may include a plurality of processors or one processor and one controller.
  • other processing configurations are possible, such as parallel processors.
  • the software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device.
  • Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted.
  • the software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner.
  • Software and data may be stored on one or more computer readable recording media.
  • the method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Landscapes

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

Abstract

An IoT device using a peer-to-peer communication is disclosed. A method for operating a client of the IoT device, which is a method for operating a client of the IoT device using a peer-to-peer communication, comprises the steps of: generating a personal key on the basis of a public key stored in a memory; sending the personal key to a server, and receiving a key-pair generation message for the public key and the personal key from the server; sending, to the server, an identifier generation request including at least one item of unique information; receiving, from the server, an identifier corresponding to the identifier generation request and a security key corresponding to the unique information; sending an authentication request including the identifier and the security key to the server, and receiving an authentication result corresponding the authentication request from the server; in response to the authentication result, shifting to a state in which the client is capable of communication; and sending data to a counterpart client via the server by using a sharing key sent from the server according to a request for pairing with the counterpart client.

Description

IOT 디바이스의 통신 클라이언트의 동작 방법 및 상기 통신 클라이언트를 포함하는 IOT 디바이스A method of operating a communication client of an IOT device and an IOT device including the communication client

아래 실시예들은 IoT 디바이스의 통신 클라이언트의 동작 방법 및 상기 통신 클라이언트를 포함하는 IoT 디바이스에 관한 것이다.The embodiments below relate to a method of operating a communication client of an IoT device and to an IoT device including the communication client.

최근 들어 사물 인터넷이라고 불리는 IoT(Internet of Things)가 화두가 되고 있다. Recently, the Internet of Things (IoT) has become a hot topic.

이러한 IoT를 통해 가전제품, 전자기기뿐만 아니라 헬스케어, 원격검침, 스마트홈, 스마트카 등 다양한 분야에서 사물을 네트워크로 연결해 정보를 공유할 수 있다. Through this IoT, not only home appliances and electronic devices but also healthcare, remote meter reading, smart home, smart car, etc. can be connected to network and share information.

이러한 IoT로의 기술 진화에 따라 다양한 회사 또는 연구소에서 IoT에 대한 기술 개발이 가속화 되고 있으나, 실제 생활에서 활용되기는 쉽지 않다. 이는 IoT의 기반이 되는 객체(entity)들에게 통신 기능을 부여하기가 어려울 뿐 아니라. 통신 기능을 부여한다고 해도 어떻게 통신을 할 것인지에 대한 표준 기술이 정의되어 있지 않기 때문이다. 따라서, 현재로서는 개별 통신 회사 별로 독자적인 기술에 기반하여 IoT 서비스를 준비하고 있으나, 범용성이 결여된다.According to this technology evolution to IoT, technology development of IoT is accelerating in various companies or research institutes, but it is not easy to use in real life. This is not only difficult to give a communication function to the entities on which the IoT is based. This is because even if the communication function is given, the standard technology for how to communicate is not defined. Therefore, at present, individual communication companies are preparing IoT services based on their own technologies, but they lack generality.

실시예들은 사용자의 개인 정보를 입력하지 않고 통신 가능한 식별자를 부여할 수 있는 보안 통신 플랫폼을 기반으로 한 IoT 네트워크를 제공한다. 또한, 실시예들은 IoT 네트워크에서 동작하는 IoT 디바이스 및 IoT 디바이스를 IoT 네트워크를 통해 통신 가능하도록 하는 클라이언트를 제공한다.Embodiments provide an IoT network based on a secure communication platform capable of assigning a communicable identifier without inputting user's personal information. In addition, embodiments provide an IoT device that operates in an IoT network and a client that enables the IoT device to communicate over an IoT network.

이러한 IoT 디바이스의 클라이언트의 동작 방법은, 피어투피어 통신을 이용한 IoT 디바이스의 클라이언트의 동작 방법은, 메모리에 저장된 공개키를 기초로 개인키를 생성하는 단계; 상기 개인키를 서버로 전송하고, 상기 서버로부터 공개키 및 개인키에 대한 키-페어 생성 메시지를 수신하는 단계; 상기 서버로 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 전송하는 단계; 상기 서버로부터 상기 식별자 생성 요청에 대응하는 식별자 및 고유 정보에 대응하는 보안키를 수신하는 단계; 및 상기 서버로 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 전송하고, 상기 서버로부터 상기 인증 요청에 대응하는 인증 결과를 수신하는 단계; 상기 인증 결과에 대응하여, 상기 클라이언트가 통신 가능한 상태로 천이하는 단계; 및 상대 클라이언트와의 페이링 요청에 따라 상기 서버로부터 전송된 공유키를 이용하여 데이터를 서버를 통해 상기 상대 클라이언트로 전송하는 단계를 포함한다.The method of operating a client of the IoT device may include: generating a private key based on a public key stored in a memory, using the peer to peer communication method of operating the client of the IoT device; Transmitting the private key to a server and receiving a key-pair generation message for the public key and the private key from the server; Sending an identifier generation request including one or more unique information to the server; Receiving a security key corresponding to an identifier and unique information corresponding to the identifier generation request from the server; And transmitting an authentication request including the identifier and the security key to the server, and receiving an authentication result corresponding to the authentication request from the server. In response to the authentication result, transitioning the client to a communicable state; And transmitting data to the counterpart client through a server using a shared key transmitted from the server according to a paying request with the counterpart client.

피어투피어 통신을 이용한 IoT 디바이스는, 피어투피어 통신을 위한 통신 인터페이스; 피어투피어 통신을 수행하는 클라이언트가 저장된 메모리; 및 상기 클라이언트의 실행을 제어하는 중앙처리장치를 포함하고, 상기 클라이언트는, 상기 메모리에 저장된 공개키를 기초로 개인키를 생성하는 단계; 상기 개인키를 서버로 전송하고, 상기 서버로부터 공개키 및 개인키에 대한 키-페어 생성 메시지를 수신하는 단계; 상기 서버로 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 전송하는 단계; 상기 서버로부터 상기 식별자 생성 요청에 대응하는 식별자 및 고유 정보에 대응하는 보안키를 수신하는 단계; 및 상기 서버로 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 전송하고, 상기 서버로부터 상기 인증 요청에 대응하는 인증 결과를 수신하는 단계; 상기 인증 결과에 대응하여, 상기 클라이언트가 통신 가능한 상태로 천이하는 단계; 및 상대 클라이언트와의 페이링 요청에 따라 상기 서버로부터 전송된 공유키를 이용하여 데이터를 서버를 통해 상기 상대 클라이언트로 전송하는 단계를 수행한다.An IoT device using peer-to-peer communication includes a communication interface for peer-to-peer communication; Memory stored in the client for performing peer-to-peer communication; And a central processing unit for controlling execution of the client, wherein the client generates a private key based on the public key stored in the memory; Transmitting the private key to a server and receiving a key-pair generation message for the public key and the private key from the server; Sending an identifier generation request including one or more unique information to the server; Receiving a security key corresponding to an identifier and unique information corresponding to the identifier generation request from the server; And transmitting an authentication request including the identifier and the security key to the server, and receiving an authentication result corresponding to the authentication request from the server. In response to the authentication result, transitioning the client to a communicable state; And transmitting data to the counterpart client through a server using a shared key transmitted from the server according to a paying request with the counterpart client.

실시예들은 사용자의 개인 정보를 입력하지 않고 통신 가능한 식별자를 부여할 수 있는 보안 통신 플랫폼을 기반으로 한 IoT 네트워크를 제공할 수 있다. 또한, 실시예들은 IoT 네트워크에서 동작하는 IoT 디바이스 및 IoT 디바이스를 IoT 네트워크를 통해 통신 가능하도록 하는 클라이언트를 제공할 수 있다. 이를 통해 통신사 위주의 IoT 네트워크가 아니라, 무선 통신망을 통해 쉽게 IoT 네트워크를 구현할 수 있도록 한다. Embodiments may provide an IoT network based on a secure communication platform capable of assigning a communicable identifier without inputting user's personal information. In addition, embodiments may provide an IoT device that operates in an IoT network and a client that enables the IoT device to communicate via an IoT network. This makes it possible to easily implement IoT networks through wireless communication networks, not carrier-oriented IoT networks.

도 1은 일실시예에 따른 클라이언트 인증 방법을 설명하기 위한 흐름도이다.1 is a flowchart illustrating a client authentication method according to an embodiment.

도 2는 일실시예에 따른 IoT 디바이스의 클라이언트의 페어링(paring) 동작 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a method for pairing a client of an IoT device according to an embodiment.

도 3은 일실시예에 따른 IoT 디바이스를 설명하기 위한 블록도이다.3 is a block diagram illustrating an IoT device according to an embodiment.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. The examples described below are not intended to be limited to the embodiments and should be understood to include all modifications, equivalents, and substitutes for them.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of examples. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described on the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and are not to be construed in ideal or excessively formal meanings unless expressly defined herein. Do not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components regardless of reference numerals will be given the same reference numerals and redundant description thereof will be omitted. In the following description of the embodiment, when it is determined that the detailed description of the related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

<< IoTIoT 디바이스device 간 통신을 위한 보안 통신 플랫폼(Secure Communication Platform(SCP)> Secure Communication Platform (SCP)>

도 1은 일실시예에 따른 IoT 디바이스에 설치되는 클라이언트 인증 방법을 설명하기 위한 흐름도이다.1 is a flowchart illustrating a client authentication method installed in an IoT device according to an embodiment.

도 1을 참조하면, 클라이언트(110)는 서버로 공개키(public key) 요청을 전송한다(111). 서버(120)는 클라이언트(110)로부터 수신된 공개키 요청에 대응하여 공개키를 발급한다(121). 공개키의 사이즈는, 예를 들어, 64 바이트, 즉, 512 비트일 수 있다. 서버(120)는 클라이언트(110)로 공개키를 전송한다(122). 서버(120)와 클라이언트(110)는 암호화되지 않은 통신을 수행할 수 있다.Referring to FIG. 1, the client 110 transmits a public key request to a server (111). The server 120 issues a public key in response to the public key request received from the client 110 (121). The size of the public key may be, for example, 64 bytes, ie 512 bits. The server 120 transmits the public key to the client 110 (122). The server 120 and the client 110 may perform unencrypted communication.

클라이언트(110)는 공개키를 저장하고, 개인키(private key)를 생성한다(112). 개인키의 사이즈는, 예를 들어, 64 바이트일 수 있다. 클라이언트(110)는 개인키를 서버(120)로 전송한다(113). 클라이언트(110)는 공개키를 이용하여 개인키를 암호화할 수 있고, 암호화된 개인키를 서버(120)로 전송할 수 있다. 서버(120)는 클라이언트(110)로부터 개인키를 수신한다. 서버(120)는 공개키를 가지고 있으므로, 공개키를 이용하여 암호화된 개인키를 복호화(decryption)할 수 있다.The client 110 stores the public key and generates a private key (112). The size of the private key may be 64 bytes, for example. The client 110 transmits the private key to the server 120 (113). The client 110 may encrypt the private key using the public key, and transmit the encrypted private key to the server 120. The server 120 receives a private key from the client 110. Since the server 120 has a public key, the server 120 can decrypt the encrypted private key using the public key.

서버(120)는 공개키 및 개인키를 키-페어(key pair)로 매핑한다(123). 서버(120)는 매핑된 키-페어를 서버(120)에 저장할 수 있다(124). 서버(120)는 키-페어 생성 메시지를 클라이언트(110)에게 전송한다(125). 서버(120)는 개인키를 이용하여 키-페어 생성 메시지를 암호화할 수 있다.The server 120 maps the public and private keys to key-pairs (123). The server 120 may store the mapped key-pair in the server 120 (124). The server 120 transmits a key-pair generation message to the client 110 (125). The server 120 may encrypt the key-pair generation message using the private key.

클라이언트(110)는 키-페어 생성 메시지를 이용하여 키-페어의 생성을 확인한다. 클라이언트(110)는 키-페어를 저장한다(114). 예를 들어, 키-페어의 생성이 확인된 경우, 클라이언트(110)는 개인키 및 공개키를 키-페어로 매핑할 수 있고, 매핑된 키-페어를 클라이언트(110)에 저장할 수 있다.The client 110 confirms the generation of the key-pair using the key-pair generation message. Client 110 stores the key-pair (114). For example, when the generation of the key-pair is confirmed, the client 110 may map the private key and the public key to the key-pair, and store the mapped key-pair in the client 110.

도 1에 도시된 예의 경우, 키-페어는 클라이언트(110) 및 서버(120)에 저장될 수 있다. 전술한 키-페어의 저장 위치는 일실시예에 따른 예시적인 사항일 뿐, 키-페어의 저장 위치는 전술한 사항으로 한정되지 않는다. 예를 들어, 키-페어는 클라이언트(110) 및 서버(120) 중 어느 하나에 저장될 수 있다.In the example shown in FIG. 1, the key-pair may be stored at the client 110 and the server 120. The storage location of the above-mentioned key-pair is merely an exemplary matter, and the storage location of the key-pair is not limited to the above-described matter. For example, the key-pair may be stored in either client 110 or server 120.

클라이언트(110)는 고유 정보를 포함하는 식별자 생성 요청을 서버(120)로 전송한다(115). 식별자 생성 요청은 개인키를 이용하여 암호화될 수 있다. 고유 정보는, 예를 들어, 클라이언트(110)가 설치되는 물리적 장치 또는 운영체제(Operating System, OS)에 대응하는 장치 고유키 및 클라이언트(110)에서 실행되는 통신 소프트웨어에 대응하는 제조키 중 적어도 하나를 포함할 수 있다.The client 110 transmits an identifier generation request including the unique information to the server 120 (115). The identifier generation request may be encrypted using a private key. The unique information may include, for example, at least one of a device unique key corresponding to a physical device on which the client 110 is installed or an operating system (OS) and a manufacturing key corresponding to communication software executed on the client 110. It may include.

클라이언트(110)의 물리적 장치는, 예를 들어, CPU 및 MPU(Micro Processor Unit) 중 적어도 하나를 포함할 수 있다. 장치 고유키는 CPU의 식별 정보 또는 MPU의 식별 정보로부터 획득될 수 있다. 클라이언트(110)에 저장된 운영체제는 다른 운영체제와 구별되게 하는 고유 정보를 가질 수 있다. 이로 인해, 클라이언트(110)는 운영체제의 고유 정보로부터 장치 고유키를 획득할 수 있다.The physical device of the client 110 may include, for example, at least one of a CPU and a micro processor unit (MPU). The device unique key may be obtained from identification information of the CPU or identification information of the MPU. The operating system stored in the client 110 may have unique information to distinguish it from other operating systems. As a result, the client 110 may obtain the device unique key from the unique information of the operating system.

제조키는 사이트키, 제조사키, 및 제품키를 포함할 수 있다. 사이트키는 사이트 정보에 대응한다. 사이트 정보는, 예를 들어, 사이트 IP 주소를 기초로 하는 정보를 나타낼 수 있다. 제조사키는 제조사 정보에 대응한다. 제조사 정보는, 예를 들어, 통신 소프트웨어를 제조하는 제조사의 식별 정보를 나타낼 수 있다. 제품키는 통신 소프트웨어의 버전 정보에 대응한다.The manufacturing key may include a site key, a manufacturer key, and a product key. The site key corresponds to site information. Site information may, for example, represent information based on site IP addresses. The manufacturer key corresponds to the manufacturer information. The manufacturer information may, for example, represent identification information of the manufacturer who manufactures the communication software. The product key corresponds to version information of the communication software.

장치 고유키 및 제조키는 미리 정해진 사이즈를 가질 수 있다. 예를 들어, 장치 고유키의 사이즈는 128 비트이고, 제조키의 사이즈는 208 비트일 수 있다. 마찬가지로, 사이트키, 제조사키, 및 제품키는 미리 정해진 사이즈를 가질 수 있다. 예를 들어, 사이트키의 사이즈는 80비트일 수 있고, 제조사키의 사이즈는 64비트일 수 있으며, 제품키의 사이즈는 64비트일 수 있다.The device unique key and the manufacture key may have a predetermined size. For example, the device unique key may be 128 bits in size and the manufacturing key may be 208 bits in size. Similarly, the site key, manufacturer key, and product key may have a predetermined size. For example, the size of the site key may be 80 bits, the size of the manufacturer key may be 64 bits, and the size of the product key may be 64 bits.

제조키는 사이트키, 제조사키, 및 제품키의 순서대로 구성될 수 있다. 사이트키, 제조사키, 및 제품키의 순서는 예시적인 사항일 뿐, 사이트키, 제조사키, 및 제품키의 순서는 전술한 사항으로 한정되지 않는다.The manufacturing key may be configured in the order of the site key, the manufacturer key, and the product key. The order of the site key, the manufacturer key, and the product key is exemplary only, and the order of the site key, the manufacturer key, and the product key is not limited to the above-described matters.

서버(120)는 보안키를 생성한다. 일실시예에 있어서, 서버(120)는 클라이언트(110)의 고유 정보에 대응하는 보안키를 생성할 수 있다. 예를 들어, 서버(120)가 클라이언트(110)로부터 장치 고유키 및 제조키를 수신한 경우, 서버(120)는 장치 고유키 및 제조키를 변형하여 보안키를 생성할 수 있다. 서버(120)는 128 비트의 장치 고유키 및 208 비트의 제조키를 기초로 256 비트의 보안키를 생성할 수 있다. 후술하겠지만, 보안키는 클라이언트와 다른 클라이언트 사이에 교환되는 패킷을 암호화하는데 사용될 수 있다.The server 120 generates a security key. In an embodiment, the server 120 may generate a security key corresponding to the unique information of the client 110. For example, when the server 120 receives a device unique key and a manufacturing key from the client 110, the server 120 may generate a security key by modifying the device unique key and the manufacturing key. The server 120 may generate a 256-bit security key based on the 128-bit device unique key and the 208-bit manufacturing key. As will be described later, a security key can be used to encrypt a packet exchanged between a client and another client.

서버(120)는 식별자를 생성한다. 식별자의 사이즈는, 예를 들어, 64 바이트일 수 있다. 이하, 식별자에 대해서 설명한다.Server 120 generates an identifier. The size of the identifier may be 64 bytes, for example. The identifier will be described below.

서버(120)는 클라이언트(110)의 식별자 생성 요청이 있는 경우, 식별자를 랜덤하게 생성할 수 있고, 식별자를 클라이언트(110)에 할당할 수 있다. 식별자는 n개의 구별 정보를 기초로 한 n자리의 랜덤 값(n^n) 중 어느 하나일 수 있다. 예를 들어, 1 바이트의 구별 정보가 64개인 경우, 식별자는 64자리를 갖는 64^64개의 랜덤 값 중에서 어느 하나일 수 있다. 서버(120)는 64개의 구별 정보를 랜덤하게 배열하여 식별자를 생성할 수 있다. 서버(120)는 식별자가 다른 식별자와 중복되는지 확인할 수 있고, 중복되지 않는 경우, 식별자를 클라이언트(110)에 할당할 수 있다. 이로 인해, 식별자는 클라이언트(110)마다 유니크(unique)할 수 있다. 서버는 식별자를 이용하여 클라이언트(110)와 다른 클라이언트를 구별할 수 있다.When there is a request for generating an identifier of the client 110, the server 120 may randomly generate an identifier and assign the identifier to the client 110. The identifier may be any one of n-digit random values n ^ n based on n pieces of distinguishing information. For example, when 64 pieces of distinguishing information of 1 byte, the identifier may be any one of 64 ^ 64 random values having 64 digits. The server 120 may randomly arrange 64 pieces of distinguishing information to generate an identifier. The server 120 may check whether the identifier overlaps with another identifier, and if not, assign the identifier to the client 110. As a result, the identifier may be unique for each client 110. The server may use the identifier to distinguish between the client 110 and another client.

식별자에는 해시 인덱스(Hash index)가 임베디드(embedded)될 수 있다. 해시 인덱스의 사이즈는, 예를 들어, 64 비트일 수 있다. 서버(120)는 변환 로직을 이용하여 식별자에 해시 인덱스를 임베디드할 수 있다. 예를 들어, 식별자의 사이즈가 64 바이트라 하자. 서버(120)는 첫 번째 바이트 내에 포함된 특정 비트에 변환 로직을 적용할 수 있다. 특정 비트에 변환 로직이 적용되는 경우, 특정 비트는 다른 비트로 변경되거나 변경되지 않을 수 있다. 특정 비트가 제1 논리값을 갖는 경우, 특정 비트는 변환 로직에 의해 제2 논리값으로 변경되거나 제1 논리값을 유지할 수 있다. 특정 비트는, 예를 들어, 1개일 수 있다. 서버는 나머지 바이트 내에 포함된 특정 비트에 변환 로직을 적용할 수 있다. 이로 인해, 식별자의 스트링(string) 중 일부는 변경될 수 있고, 해시 인덱스가 식별자에 임베디드될 수 있다. 예를 들어, 식별자가 ABCD의 스트링인 경우, ABCD는 변환 로직에 의해 AZDD가 될 수 있고, AZDD에 해시 인덱스가 임베디드될 수 있다.A hash index may be embedded in the identifier. The size of the hash index may be 64 bits, for example. The server 120 may embed the hash index in the identifier using the conversion logic. For example, suppose the size of the identifier is 64 bytes. The server 120 may apply the conversion logic to a specific bit contained in the first byte. When the conversion logic is applied to a specific bit, the specific bit may or may not change to another bit. If the particular bit has a first logic value, the particular bit may be changed to or maintained by the conversion logic by the second logic value. The specific bit may be one, for example. The server can apply the conversion logic to specific bits contained in the remaining bytes. As a result, some of the string of identifiers can be changed, and a hash index can be embedded in the identifier. For example, if the identifier is a string of ABCD, ABCD may be AZDD by the conversion logic, and a hash index may be embedded in AZDD.

서버(120)는 클라이언트(110)의 식별자 대신에 식별자로부터 획득되는 해시 인덱스를 이용하여 데이터베이스에 접근(access)할 수 있다. 서버(120)는 클라이언트(110)의 식별자에 기초하는 쿼리(query)를 데이터베이스로 전송하지 않고, 해시 인덱스에 기초하는 쿼리를 데이터베이스로 전송할 수 있다. 데이터베이스는 클라이언트(110)의 식별자의 스트링과 데이터베이스에 저장된 복수의 식별자의 스트링을 비교하지 않고, 해시 인덱스와 DB 인덱스를 비교할 수 있다. 이로 인해, 데이터베이스의 응답 속도 또는 데이터베이스를 검색하는 속도가 증가할 수 있다.The server 120 may access the database using a hash index obtained from the identifier instead of the identifier of the client 110. The server 120 may transmit the query based on the hash index to the database without transmitting the query based on the identifier of the client 110 to the database. The database may compare the hash index and the DB index without comparing the string of the identifier of the client 110 and the string of the plurality of identifiers stored in the database. This may increase the response speed of the database or the speed of searching the database.

서버(120)는 클라이언트(110)에게 UDP 세션 유지를 위한 질문(question)을 생성한다. 서버(120)는 질문에 헤시 인덱스를 임베디드할 수 있다. 서버(120)는 질문을 클라이언트(110)로 전송한다.The server 120 generates a question for maintaining the UDP session to the client 110. Server 120 may embed a hash index in the query. The server 120 sends the question to the client 110.

클라이언트(110)가 질문을 수신하는 경우, 클라이언트(110)는 답(answer)을 생성할 수 있다. 여기서, 답이 질문에 대응하는 경우, UDP 세션은 유지될 수 있고, 답이 질문에 대응하지 못한 경우, UDP 세션은 유지되지 못하고 해제(release)된다. When the client 110 receives a question, the client 110 may generate an answer. Here, if the answer corresponds to a question, the UDP session may be maintained, and if the answer does not correspond to the question, then the UDP session is not maintained and is released.

생성된 답에는 해시 인덱스가 임베디드된다. 클라이언트(110)는 해시 인덱스가 임베디드된 답을 서버(120)로 전송할 수 있다.The generated answer contains a hash index. The client 110 may transmit an answer in which the hash index is embedded to the server 120.

서버(120)는 클라이언트(110)의 답을 확인한다. 서버(120)는 답으로부터 해시 인덱스를 획득할 수 있다. 예를 들어, 서버(120)는 답에 포함된 바이트를 XOR 연산하여 해시 인덱스를 획득할 수 있다. UDP 세션 유지를 위해 서버(120)는 클라이언트(110)의 식별자를 확인할 수 있다. 서버(120)는 해시 인덱스를 획득하였으므로, 해시 인덱스를 이용하여 식별자가 저장된 데이터베이스에 접근할 수 있다. 데이터베이스는 해시 인덱스에 대응하는 식별자를 서버(120)로 전송할 수 있다. 이로 인해, 서버(120)는 클라이언트(110)로부터 식별자를 수신하지 않고, 해시 인덱스에 기초하는 쿼리에 대한 응답을 통해 클라이언트(110)를 식별할 수 있어, 보다 빠르게 클라이언트(110)를 식별할 수 있다. 이로 인해, UDP 세션의 validation이 보다 빠르게 확인될 수 있고, UDP 세션이 유지될 수 있다. 또한, 클라이언트(110)의 IP 주소가 변경되어도 서버(120)는 해시 인덱스를 이용하여 클라이언트(110)를 빠르게 식별할 수 있다. 이로 인해, 피투피 통신과 같이 IP가 변화하는 환경에서도 UDP 세션의 validation이 확인될 수 있고, UDP 세션이 유지될 수 있다.The server 120 checks the answer of the client 110. Server 120 may obtain a hash index from the answer. For example, the server 120 may obtain a hash index by performing an XOR operation on the bytes included in the answer. In order to maintain the UDP session, the server 120 may check the identifier of the client 110. Since the server 120 obtains the hash index, the server 120 may access the database in which the identifier is stored using the hash index. The database may transmit an identifier corresponding to the hash index to the server 120. As a result, the server 120 can identify the client 110 through a response to a query based on a hash index, without receiving an identifier from the client 110, thereby identifying the client 110 more quickly. have. As a result, the validation of the UDP session can be confirmed faster, and the UDP session can be maintained. In addition, even if the IP address of the client 110 is changed, the server 120 may quickly identify the client 110 using a hash index. As a result, even in an environment in which IP changes, such as P2P communication, validation of a UDP session can be confirmed, and a UDP session can be maintained.

서버(120)가 식별자 및 보안키를 생성한 경우(126), 서버(120)는 식별자 및 보안키를 클라이언트(110)로 전송한다(127). 식별자 및 보안키는 개인키를 이용하여 암호화될 수 있다.When the server 120 generates the identifier and the security key (126), the server 120 transmits the identifier and the security key to the client 110 (127). The identifier and security key can be encrypted using a private key.

클라이언트(110)는 식별자 및 보안키를 저장한다(116). 클라이언트(110)는 식별자 및 보안키를 포함하는 인증 요청을 서버(120)로 전송할 수 있다(116). 인증 요청은 개인키를 이용하여 암호화될 수 있다.Client 110 stores the identifier and the security key (116). The client 110 may transmit an authentication request including the identifier and the security key to the server 120 (116). The authentication request can be encrypted using the private key.

서버(120)는 클라이언트(110)로부터 수신된 식별자 및 보안키를 확인할 수 있다. 보다 구체적으로, 서버(120)는 클라이언트(110)로부터 수신된 식별자 및 보안키가 단계(125)에서 생성된 식별자 및 보안키와 동일한지 여부를 확인할 수 있다.The server 120 may check the identifier and the security key received from the client 110. More specifically, the server 120 may check whether the identifier and the security key received from the client 110 are the same as the identifier and the security key generated in step 125.

서버(120)는 클라이언트(110)로부터 수신된 식별자 및 보안키를 기초로 클라이언트(110)를 인증하고(128), 인증 결과를 클라이언트(110)로 전송한다(129). 인증 결과는 개인키를 이용하여 암호화될 수 있다.The server 120 authenticates the client 110 based on the identifier and the security key received from the client 110, and transmits the authentication result to the client 110 (129). The authentication result can be encrypted using the private key.

클라이언트(110)는 인증 결과에 따라 다른 클라이언트와 통신 가능한 상태로 천이할 수 있다. 서버는 다른 클라이언트를 인증할 수 있고, 다른 클라이언트는 통신 가능한 상태로 천이할 수 있다. 이로 인해, 클라이언트(110)에서 구동되는 통신 소프트웨어에는 다른 클라이언트의 목록이 표시될 수 있다. 클라이언트(110)와 다른 클라이언트는 피투피 통신 또는 다이렉트 통신이 가능한 동작 모드로 진입할 수 있다. 클라이언트(110)가 다른 클라이언트와 피투피 통신하는 경우, 클라이언트(110)는 보안키를 이용하여 패킷을 암호화할 수 있고, 암호화된 패킷을 다른 클라이언트에게 전송할 수 있다.The client 110 may transition to a state in which it can communicate with other clients according to the authentication result. The server may authenticate other clients, and other clients may transition to a communicable state. As a result, a list of other clients may be displayed in the communication software running on the client 110. The client 110 and another client may enter an operation mode capable of peer-to-peer communication or direct communication. When the client 110 communicates PPI with another client, the client 110 may encrypt the packet by using the security key, and transmit the encrypted packet to the other client.

<보안 통신 플랫폼(Secure Communication Platform(<Secure Communication Platform ( SCPSCP ) 상에서 클라이언트 간의 Between clients 페어링Pairing >>

도 2는 일실시예에 따른 IoT 디바이스의 클라이언트의 페어링(paring) 동작 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a method for pairing a client of an IoT device according to an embodiment.

도 2를 참조하면, 클라이언트(210)는 서버(220)로 인증 요청을 전송한다.2, the client 210 transmits an authentication request to the server 220.

서버(220)는 클라이언트(210)를 인증한다(221). 서버(220)는 위에서 설명한 인증 방법으로 클라이언트(210)를 인증할 수 있다. 인증 결과는 개인키를 이용하여 암호화된다. 서버(220)는 인증 결과를 클라이언트(210)에게 전송한다(222).The server 220 authenticates the client 210 (221). The server 220 may authenticate the client 210 by the authentication method described above. The authentication result is encrypted using the private key. The server 220 transmits the authentication result to the client 210 (222).

클라이언트(210)는 개인키를 이용하여 인증 결과를 복호화한다. 클라이언트(210)가 인증된 경우, 클라이언트(210)는 통신 가능한 상태로 천이된다(212). 클라이언트(210)는 피투피 통신 가능한 상태로 천이될 수 있다.The client 210 decrypts the authentication result using the private key. If the client 210 is authenticated, the client 210 transitions to a communicable state (212). The client 210 may transition to a peer-to-peer communication state.

클라이언트(210)는 서버(220)로 클라이언트(230)와의 페이링 요청을 생성하여(213), 서버(220)로 페어링 요청을 전송한다(214).The client 210 generates a paying request with the client 230 to the server 220 (213), and transmits a pairing request to the server 220 (214).

서버(220)는 클라이언트(210, 230) 간 연결 고유키를 생성한다(223).The server 220 generates a connection unique key between the clients 210 and 230 (223).

서버(220)는 클라이언트(210)이 페이링을 요청한 클라이언트(230)로 웨이크업 신호를 전송한다(224).The server 220 transmits a wakeup signal to the client 230 that the client 210 requests paying (224).

클라이언트(230)는 서버(220)로부터 전송된 웨이크업 신호에 대응하여 통신 가능 상태로 천이한다(231). 클라이언트(230)는 도 1에 도시된 방법에 따라 보안 통신 플랫폼에서 피투피 통신을 할 수 있는 보안키 및 식별자를 미리 부여 받은 것이다.The client 230 transitions to the communicable state in response to the wakeup signal transmitted from the server 220 (231). The client 230 is previously given a security key and an identifier for P2P communication in the secure communication platform according to the method shown in FIG. 1.

클라이언트(230)는 서버(220)로 인증 요청을 전송한다(232).The client 230 transmits an authentication request to the server 220 (232).

서버(220)는 클라이언트(230)를 인증하고(225), 인증 결과를 클라이언트(230)로 전송한다(226).The server 220 authenticates the client 230 (225), and transmits the authentication result to the client 230 (226).

서버(220)는 클라이언트(210)로 공유키를 전송한다(227).The server 220 transmits the shared key to the client 210 (227).

서버(220)는 클라이언트(230)로 공유키를 전송한다(228).The server 220 transmits the shared key to the client 230 (228).

클라이언트(210)는 서버(220)로부터 전송된 공유키를 저장하고(214), 클라이언트(230)로 전송하고자 하는 데이터를 서버(220)로 전송한다(215). 상기 데이터는 공유키로 암호화된 것일 수 있다.The client 210 stores the shared key transmitted from the server 220 (214), and transmits data to be transmitted to the client 230 to the server 220 (215). The data may be encrypted with a shared key.

클라이언트(230)는 서버(220)로부터 전송된 공유키를 저장하고(233), 서버(220)로부터 클라이언트(210)가 전송한 데이터를 수신한다(229).The client 230 stores the shared key transmitted from the server 220 (233), and receives the data transmitted by the client 210 from the server 220 (229).

클라이언트(230)는 데이터를 해석한다(234). 클라이언트(230)는 상기 데이터를 공유키로 복호화할 수 있다. Client 230 interprets the data (234). The client 230 may decrypt the data with a shared key.

위 도 2는 클라이언트(210에서 클라이언트(230)으로의 데이터 전송의 일례를 도시하고 있으나, 클라이언트(230)에서 클라이언트(210)로의 데이터 전송도 동일한 방식으로 수행될 수 있다. 도 2에 도시된 클라이언트(210)는 IoT 센서, 클라이언트(230)은 IoT 센서에서 수집된 센싱 데이터를 수집하는 수집기일 수 있다. 이하 도 3을 참조하여, 일실시예에 따른 IoT 디바이스 및 IoT 센서와 수집기의 일례를 상세히 설명한다.Although FIG. 2 illustrates an example of data transmission from the client 210 to the client 230, data transmission from the client 230 to the client 210 may be performed in the same manner. 210 may be an IoT sensor, and the client 230 may be a collector that collects sensing data collected by the IoT sensor, hereinafter with reference to FIG. Explain.

<네트워크 기반의 Network based IoTIoT 디바이스의Device 통신> Communication>

일실시예에 따른 네트워크 기반의 IoT 디바이스들은 도 1 및 도 2에서 설명한 보안 통신 플랫폼에서 동작한다.According to an embodiment, network-based IoT devices operate in the secure communication platform described with reference to FIGS. 1 and 2.

도 3은 일실시예에 따른 IoT 디바이스의 구조를 도시한 도면이다. IoT 디바이스는 아래의 구성 파트들을 포함할 수 있고, 보안 통신 플랫폼에서 피투피 통신이 가능하도록 하는 클라이언트는 IoT 디바이스의 메모리에 설치될 수 있다. IoT 다비아스는 온도/빛/압력/습도 등 다양한 물리량을 센싱하는 센서부(도시되지 않음)를 더 포함할 수 있다.3 is a diagram illustrating a structure of an IoT device according to an embodiment. The IoT device may include the following component parts, and a client for enabling peer-to-peer communication in a secure communication platform may be installed in the memory of the IoT device. The IoT Davias may further include a sensor unit (not shown) that senses various physical quantities such as temperature / light / pressure / humidity.

도 3을 참조하면, 일실시예에 따른 IoT 디바이스(300)는 전원부(301), 메모리(302), 중앙처리장치(303), 및 통신 인터페이스(304)을 포함한다.Referring to FIG. 3, an IoT device 300 according to an embodiment includes a power supply unit 301, a memory 302, a central processing unit 303, and a communication interface 304.

전원부(301)는 배터리 형식의 전원일 수 있고, 최대 5초 정도 IoT 디바이스를 구동할 수 있는 전력을 저장할 수 있도록 하는 캐패시턴스(capacitance)를 포함하는 축전부일 수 있다.The power supply unit 301 may be a battery-type power supply, and may be a power storage unit including a capacitance capable of storing power for driving an IoT device for up to 5 seconds.

메모리(302)는 도 1 및 도 2를 참조하여 설명한 피투피 통신을 위한 클라이언트가 설치되는 ROM 또는 RAM과, IoT 디바이스의 고유키 또는 IoT 디바이스의 데이터를 암호화하여 저장하거나, 공개키/개인키를 저장하는 EEPROM을 포함할 수 있다. 클라이언트에 포함되는 통신 소프트웨어는 아래의 동작을 수행할 수 있다.The memory 302 encrypts and stores a ROM or RAM in which a client for peer-to-peer communication described with reference to FIGS. 1 and 2 and a unique key of the IoT device or data of the IoT device, or stores a public key / private key. May include an EEPROM. Communication software included in the client may perform the following operations.

(1) 서버로부터 공개키 요청에 대응하는 공개키를 통신 인터페이스를 통해 수신하고, 개인키를 생성한다.(1) Receive a public key corresponding to the public key request from the server through a communication interface and generate a private key.

(2) 통신 소프트웨어는 개인키를 통신 인터페이스를 통해 서버로 전송하고, 서버로부터 공개키 및 개인키에 대한 키-페어 생성 메시지를 통신 인터페이스를 통해 수신한다.(2) The communication software transmits the private key to the server via the communication interface, and receives a key-pair generation message for the public key and the private key from the server through the communication interface.

(3) 통신 소프트웨어는 서버로 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 통신 인터페이스를 통해 전송한다.(3) The communication software sends an identifier generation request including one or more unique information of the client to the server through the communication interface.

(4) 통신 소프트웨어는 서버로부터 식별자 생성 요청에 대응하는 식별자 및 고유 정보에 대응하는 보안키를 통신 인터페이스를 통해 수신한다.(4) The communication software receives from the server via the communication interface an identifier corresponding to the identifier generation request and a security key corresponding to the unique information.

(5) 통신 소프트웨어는 서버로 식별자 및 보안키를 포함하는 인증 요청을 통신 인터페이스를 통해 전송한다.(5) The communication software sends an authentication request including the identifier and the security key to the server via the communication interface.

(6) 통신 소프트웨어는 서버로부터 인증 요청에 대응하는 인증 결과를 통신 인터페이스를 통해 수신한다.(6) The communication software receives an authentication result corresponding to the authentication request from the server through the communication interface.

(7) 통신 소프트웨어는 인증 결과에 따라 클라이언트가 다른 클라이언트와 통신 가능한 상태로 천이하도록 클라이언트를 제어한다. 이로 인해, 클라이언트는 서버에 의해 인증된 다른 클라이언트와 피투피 통신 또는 직접 통신이 가능한 동작 모드로 진입할 수 있다.(7) The communication software controls the client to make the client transition to a state in which the client can communicate with other clients according to the authentication result. As a result, the client may enter an operation mode in which P2P communication or direct communication is possible with other clients authenticated by the server.

위의 방식으로 보안 통신 플랫폼 상에서 인증된 다수의 IoT 디바이스들은 도 2에 도시된 방식으로 다른 IoT 디바이스들과 페어링될 수 있고, 서로의 데이터를 송수신할 수 있다. Multiple IoT devices authenticated on a secure communication platform in the above manner may be paired with other IoT devices in the manner shown in FIG. 2, and may transmit and receive data with each other.

중앙처리장치(303)는 메모리(302)에 기록된 IoT 디바이스의 펌웨어(Firmware) 및 기타 소프트웨어는 물론, 클라이언트의 실행 및 동작을 제어한다. The central processing unit 303 controls the execution and operation of the client as well as the firmware and other software of the IoT device recorded in the memory 302.

통신 인터페이스(304)는 IoT 디바이스(300)이 보안 통신 플랫폼 상에서 피투피 통신할 수 있도록 한다. 통신 인터페이스(304)는 WWAN(Wireless Wide Area Network) 또는 WLAN(Wireless Local Area Network)을 위한 인터페이스를 포함할 수 있다. WWAN은 CDMA(Code Division Multiple Access) 네트워크 TDMA(Time Division Multiple Access) 네트워크, FDMA(Frequency Division Multiple Access) 네트워크, OFDMA(Orthogonal Frequency Division Multiple Access) 네트워크, 및/또는 SC-FDMA(Single-Carrier Frequency Division Multiple Access) 네트워크 중 어느 하나 또는 이들의 조합을 포함할 수 있다. WLAN은 IEEE 802.11x 네트워크를 포함할 수 있다. 또한, 통신 인터페이스(304)는 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra-Wideband), ZigBee, NFC(Near Field Communication), 또는 Z-wave 등이 가능한 인터페이스를 포함할 수 있다. The communication interface 304 enables the IoT device 300 to communicate peer-to-peer on a secure communication platform. The communication interface 304 may include an interface for a wireless wide area network (WWAN) or a wireless local area network (WLAN). WWANs are code division multiple access (CDMA) networks, time division multiple access (TDMA) networks, frequency division multiple access (FDMA) networks, orthogonal frequency division multiple access (OFDMA) networks, and / or single-carrier frequency division (SC-FDMA). Multiple Access) network or any combination thereof. The WLAN may comprise an IEEE 802.11x network. In addition, the communication interface 304 may include Bluetooth, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra-Wideband (UWB), ZigBee, Near Field Communication (NFC), or Z-wave. And the like.

IoT 디바이스(300)에 센서부가 더 포함되는 경우, IoT 디바이스(300)는 센싱 데이터의 수집을 담당하는 수집기(도시되지 않음)와 페어링하여 도 1 및 도 2를 참조하여 설명한 피투피 통신을 통해 수집기로 센싱 데이터를 전송할 수 있다. 이 경우, 수집기는 IoT 디바이스(300)의 전원부(301)로 구동 전력을 전송하도록 구현될 수 있다.If the IoT device 300 further includes a sensor unit, the IoT device 300 may be paired with a collector (not shown) that is responsible for collecting sensing data, and connected to a collector through P2P communication described with reference to FIGS. 1 and 2. The sensing data can be transmitted. In this case, the collector may be implemented to transmit driving power to the power supply unit 301 of the IoT device 300.

다른 일실시예에 따른 보안 통신 플랫폼에서 동작하는 IoT 디바이스(300)는 아래와 같이 동작할 수 있다. IoT device 300 operating in a secure communication platform according to another embodiment may operate as follows.

(1) IoT 디바이스(300)는 도 1에서 설명한 공개키는 부여 받았지만 개인키는 저장하고 있지 않을 수 있다. 상기 공개키는 IoT 디바이스(300)의 제조 과정에서 미리 부여된 것일 수 있다.(1) The IoT device 300 may have been granted the public key described with reference to FIG. 1 but may not store the private key. The public key may be previously given in the manufacturing process of the IoT device 300.

(2) 개인키는 보안 통신 플랫폼 또는 수집기와의 최초 접속 이후, 보안 통신 플랫폼의 서버 또는 수집기와 개인키 교환을 진행하여 부여 받을 수 있다. 부여 받은 개인키는 IoT 디바이스(300)의 메모리(302)에 포함된 EEPROM 내의 OTP(One Time Programmable) 영역에 저장될 수 있다.(2) After the initial connection with the secure communication platform or collector, the private key may be granted by exchanging the private key with the server or collector of the secure communication platform. The granted private key may be stored in an One Time Programmable (OTP) region of the EEPROM included in the memory 302 of the IoT device 300.

(3) 보안 통신 플랫폼의 서버 또는 수집기와 개인키를 교환한 이후, IoT 디바이스(300) 내의 모든 데이터는 공개키 또는/및 개인키로 암호화 되어 저장될 수 있다. 이러한 암호화 과정을 통해 데이터의 무결성(integrity) 및 보안성이 향상될 수 있다.(3) After exchanging the private key with the server or collector of the secure communication platform, all data in the IoT device 300 may be encrypted and stored with the public key and / or the private key. This encryption process can improve the integrity and security of the data.

(4) IoT 디바이스(300)에 센서가 포함되는 경우, IoT 디바이스(300)는 수집기와 지속적으로 통신을 하는 과정에서, RF를 활용하여 수집기로부터 passive RFID 방식으로 전원을 공급 받을 수 있다. IoT 디바이스(300)는 센서에서 센싱한 센싱 데이터를 메모리(302)의 EEPROM에 저장할 수 있다. IoT 디바이스(300)는 수집기로부터 센싱 데이터 요청을 수신하는 경우, EEPROM에 저장된 센싱 데이터를 개인키로 암호화하고, 다시 공개키로 암호화하여, RFID 고유키값과 함께 수집기로 센싱 데이터를 전송할 수 있다. 수집기는 공개키로 암호화된 센싱 데이터를 1차 복호화하고, 다시 RFID 고유키값으로 개인키를 찾아 센싱 데이터를 2차 복호화할 수 있다. 수집기는 RFID 고유키값 별 센싱 데이터를 저장 수단에 저장할 수 있다.(4) When a sensor is included in the IoT device 300, the IoT device 300 may be powered by a passive RFID method from the collector by using RF while continuously communicating with the collector. The IoT device 300 may store the sensing data sensed by the sensor in an EEPROM of the memory 302. When the IoT device 300 receives a sensing data request from the collector, the IoT device 300 may encrypt the sensing data stored in the EEPROM with a private key, and then encrypt it with the public key, and transmit the sensing data to the collector together with the RFID unique key value. The collector may first decrypt the sensed data encrypted with the public key, and secondly decrypt the sensed data by finding a private key with an RFID unique key value. The collector may store sensing data for each RFID unique key value in a storage means.

(5) 수집기는 주기적으로 보안 통신 플랫폼으로부터 받은 공개키와 개인키를 활용하여 암호화된 센싱 데이터를 보안 통신 플랫폼으로 전송한다. 사용자는 수집기를 보안 통신 플랫폼에 접속시켜 등록을 해야 하고, 수집기가 보안 통신 플랫폼 상에 등록되면, 보안 통신 플랫폼의 서버는 해당 수집기로 RFID 고유키값을 발급한다. 사용자는 수집기에 발급된 RFID 고유키값을 활용하여 수집기로부터 전송된 센싱 데이터를 열람할 수 있다.(5) The collector periodically transmits the encrypted sensing data to the secure communication platform using the public and private keys received from the secure communication platform. The user must register the collector by connecting to the secure communication platform. When the collector is registered on the secure communication platform, the server of the secure communication platform issues an RFID unique key value to the collector. The user can browse the sensing data transmitted from the collector by using the RFID unique key value issued to the collector.

(6) 센싱 데이터의 보안을 위해, SSL 3.0 / TLS 1.0+ 또는 AES128 / AES256 등의 암호화 기법이 이용될 수 있다.(6) For the security of the sensed data, an encryption scheme such as SSL 3.0 / TLS 1.0+ or AES128 / AES256 can be used.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs). Can be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the following claims.

Claims (11)

피어투피어 통신을 이용한 IoT 디바이스의 클라이언트의 동작 방법에 있어서,In the method of operation of the client of the IoT device using peer-to-peer communication, 메모리에 저장된 공개키를 기초로 개인키를 생성하는 단계;Generating a private key based on the public key stored in the memory; 상기 개인키를 서버로 전송하고, 상기 서버로부터 공개키 및 개인키에 대한 키-페어 생성 메시지를 수신하는 단계;Transmitting the private key to a server and receiving a key-pair generation message for the public key and the private key from the server; 상기 서버로 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 전송하는 단계; Sending an identifier generation request including one or more unique information to the server; 상기 서버로부터 상기 식별자 생성 요청에 대응하는 식별자 및 고유 정보에 대응하는 보안키를 수신하는 단계; 및Receiving a security key corresponding to an identifier and unique information corresponding to the identifier generation request from the server; And 상기 서버로 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 전송하고, 상기 서버로부터 상기 인증 요청에 대응하는 인증 결과를 수신하는 단계; Transmitting an authentication request including the identifier and the security key to the server, and receiving an authentication result corresponding to the authentication request from the server; 상기 인증 결과에 대응하여, 상기 클라이언트가 통신 가능한 상태로 천이하는 단계; 및In response to the authentication result, transitioning the client to a communicable state; And 상대 클라이언트와의 페이링 요청에 따라 상기 서버로부터 전송된 공유키를 이용하여 데이터를 서버를 통해 상기 상대 클라이언트로 전송하는 단계Transmitting data to the counterpart client through the server using a shared key transmitted from the server according to a paying request with the counterpart client; 를 포함하는,Including, IoT 디바이스의 클라이언트의 동작 방법.Method of operation of the client of the IoT device. 제1항에 있어서,The method of claim 1, 상기 하나 이상의 고유 정보는,The at least one unique information is, 상기 IoT 디바이스의 장치 고유키 및 상기 클라이언트에서 구동되는 통신 소프트웨어에 대응하는 제조키를 포함하는,A device-specific key of the IoT device and a manufacturing key corresponding to communication software running on the client, IoT 디바이스의 클라이언트의 동작 방법.Method of operation of the client of the IoT device. 제1항에 있어서,The method of claim 1, 상기 개인키는 상기 메모리의 미리 정해진 영역에 저장되는,The private key is stored in a predetermined area of the memory, IoT 디바이스의 클라이언트의 동작 방법.Method of operation of the client of the IoT device. 제1항에 있어서,The method of claim 1, 상기 IoT 디바이스는 센서부를 포함하고,The IoT device includes a sensor unit, 상기 상대 클라이언트는 수집기인,The counterpart client is a collector; IoT 디바이스의 클라이언트의 동작 방법.Method of operation of the client of the IoT device. 제1항에 있어서,The method of claim 1, 상기 데이터는 상기 공유키로 암호화되는,The data is encrypted with the shared key, IoT 디바이스의 클라이언트의 동작 방법.Method of operation of the client of the IoT device. 제4항에 있어서,The method of claim 4, wherein 상기 IoT 디바이스는 상기 수집기로부터 전력을 공급받는.The IoT device is powered from the collector. IoT 디바이스의 클라이언트의 동작 방법.Method of operation of the client of the IoT device. 피어투피어 통신을 이용한 IoT 디바이스에 있어서,In an IoT device using peer-to-peer communication, 피어투피어 통신을 위한 통신 인터페이스;A communication interface for peer-to-peer communication; 피어투피어 통신을 수행하는 클라이언트가 저장된 메모리; 및Memory stored in the client for performing peer-to-peer communication; And 상기 클라이언트의 실행을 제어하는 중앙처리장치Central processing unit for controlling the execution of the client 를 포함하고, Including, 상기 클라이언트는,The client, 상기 메모리에 저장된 공개키를 기초로 개인키를 생성하는 단계;Generating a private key based on the public key stored in the memory; 상기 개인키를 서버로 전송하고, 상기 서버로부터 공개키 및 개인키에 대한 키-페어 생성 메시지를 수신하는 단계;Transmitting the private key to a server and receiving a key-pair generation message for the public key and the private key from the server; 상기 서버로 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 전송하는 단계; Sending an identifier generation request including one or more unique information to the server; 상기 서버로부터 상기 식별자 생성 요청에 대응하는 식별자 및 고유 정보에 대응하는 보안키를 수신하는 단계; 및Receiving a security key corresponding to an identifier and unique information corresponding to the identifier generation request from the server; And 상기 서버로 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 전송하고, 상기 서버로부터 상기 인증 요청에 대응하는 인증 결과를 수신하는 단계;Transmitting an authentication request including the identifier and the security key to the server, and receiving an authentication result corresponding to the authentication request from the server; 상기 인증 결과에 대응하여, 상기 클라이언트가 통신 가능한 상태로 천이하는 단계; 및In response to the authentication result, transitioning the client to a communicable state; And 상대 클라이언트와의 페이링 요청에 따라 상기 서버로부터 전송된 공유키를 이용하여 데이터를 서버를 통해 상기 상대 클라이언트로 전송하는 단계Transmitting data to the counterpart client through the server using a shared key transmitted from the server according to a paying request with the counterpart client; 를 수행하는,To do, IoT 디바이스.IoT device. 제7항에 있어서,The method of claim 7, wherein 상기 개인키는 상기 메모리의 미리 정해진 영역에 저장되는,The private key is stored in a predetermined area of the memory, IoT 디바이스.IoT device. 제7항에 있어서,The method of claim 7, wherein 상기 IoT 디바이스는 센서부를 포함하고,The IoT device includes a sensor unit, 상기 상대 클라이언트는 수집기인,The counterpart client is a collector; IoT 디바이스.IoT device. 제7항에 있어서,The method of claim 7, wherein 상기 데이터는 상기 공유키로 암호화되는,The data is encrypted with the shared key, IoT 디바이스.IoT device. 제9항에 있어서,The method of claim 9, 전원부Power supply 를 더 포함하고,More, 상기 전원부는 상기 수집기로부터 전력을 공급받는.The power supply unit receives power from the collector. IoT 디바이스.IoT device.
PCT/KR2016/008115 2015-07-23 2016-07-25 Method for operating communication client of iot device, and iot device including communication client WO2017014614A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2015-0104318 2015-07-23
KR20150104318 2015-07-23
KR1020160094254A KR101848300B1 (en) 2015-07-23 2016-07-25 METHOD FOR OPERATING COMMUNICATION CLIENT INSTALLED IN IoT DEVICE AND IoT DEVICE INCLUDING THE CLIENT
KR10-2016-0094254 2016-07-25

Publications (1)

Publication Number Publication Date
WO2017014614A1 true WO2017014614A1 (en) 2017-01-26

Family

ID=57834296

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/008115 WO2017014614A1 (en) 2015-07-23 2016-07-25 Method for operating communication client of iot device, and iot device including communication client

Country Status (1)

Country Link
WO (1) WO2017014614A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111447613A (en) * 2019-01-16 2020-07-24 南京快轮智能科技有限公司 Encryption system for shared products
WO2020258336A1 (en) * 2019-06-28 2020-12-30 Oppo广东移动通信有限公司 Method and device for resource configuration, and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023336A1 (en) * 2009-12-10 2012-01-26 Vijayarangan Natarajan System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
WO2013025060A2 (en) * 2011-08-16 2013-02-21 (주)아이씨티케이 Device and method for puf-based inter-device security authentication in machine-to-machine communication
KR20140045629A (en) * 2012-10-09 2014-04-17 삼성에스디에스 주식회사 Apparatus and method for transmitting data, and recording medium storing program for executing method of the same in computer
KR20140055509A (en) * 2012-10-31 2014-05-09 삼성에스디에스 주식회사 Method and system for id-based encryption and decryption
KR20140054970A (en) * 2012-10-30 2014-05-09 벨포스 주식회사 A gateway that facilitates connection to a Wi-Fi direct device without complicated procedures, and a connection method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023336A1 (en) * 2009-12-10 2012-01-26 Vijayarangan Natarajan System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
WO2013025060A2 (en) * 2011-08-16 2013-02-21 (주)아이씨티케이 Device and method for puf-based inter-device security authentication in machine-to-machine communication
KR20140045629A (en) * 2012-10-09 2014-04-17 삼성에스디에스 주식회사 Apparatus and method for transmitting data, and recording medium storing program for executing method of the same in computer
KR20140054970A (en) * 2012-10-30 2014-05-09 벨포스 주식회사 A gateway that facilitates connection to a Wi-Fi direct device without complicated procedures, and a connection method thereof
KR20140055509A (en) * 2012-10-31 2014-05-09 삼성에스디에스 주식회사 Method and system for id-based encryption and decryption

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111447613A (en) * 2019-01-16 2020-07-24 南京快轮智能科技有限公司 Encryption system for shared products
WO2020258336A1 (en) * 2019-06-28 2020-12-30 Oppo广东移动通信有限公司 Method and device for resource configuration, and storage medium
CN113169965A (en) * 2019-06-28 2021-07-23 Oppo广东移动通信有限公司 A resource allocation method, device and storage medium

Similar Documents

Publication Publication Date Title
Hou et al. A survey on internet of things security from data perspectives
US20230049177A1 (en) System, Apparatus And Method For Scalable Internet Of Things (IOT) Device On-Boarding With Quarantine Capabilities
WO2017111383A1 (en) Biometric data-based authentication device, control server linked to same, and biometric data-based login method for same
WO2015147547A1 (en) Method and apparatus for supporting login through user terminal
BR102019015369B1 (en) systems and method for provisioning a secure connection to an inter-device connection
EP3619886A1 (en) Method and an apparatus for onboarding in an iot network
CN105556403B (en) Restricting Communications in Industrial Control
WO2021256669A1 (en) Access security management method and system
WO2018062761A1 (en) Method for initializing device having enhanced security function and method for updating firmware of device
WO2019083082A1 (en) Ksi-based authentication and communication method for safe smart home environment, and system therefor
WO2014185594A1 (en) Single sign-on system and method in vdi environment
WO2022075563A1 (en) Electronic device for generating and authenticating identification information of hardware device, and operation method thereof
WO2019221419A1 (en) Hardware security module
WO2017209467A1 (en) Method and apparatus for providing p2p data security service in iot environment
CN113127914A (en) Electric power Internet of things data security protection method
EP3282639B1 (en) Method for operating server and client, server, and client apparatus
EP3566162A1 (en) Apparatus and method for certificate authority for certifying accessors
WO2017086757A1 (en) Method and device for controlling security of target device using secure tunnel
KR101848300B1 (en) METHOD FOR OPERATING COMMUNICATION CLIENT INSTALLED IN IoT DEVICE AND IoT DEVICE INCLUDING THE CLIENT
WO2019182377A1 (en) Method, electronic device, and computer-readable recording medium for generating address information used for transaction of blockchain-based cryptocurrency
WO2017014614A1 (en) Method for operating communication client of iot device, and iot device including communication client
KR20200084388A (en) Apparatus and method for open and private iot gateway using intel sgx
WO2016064040A1 (en) User terminal using signature information to detect whether application program has been tampered and method for tamper detection using the user terminal
WO2014003425A1 (en) Method and apparatus for secure communication and determining secret information
KR101757692B1 (en) Remote control system of home network device using token server authentication and method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16828118

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16828118

Country of ref document: EP

Kind code of ref document: A1