US20220255910A1 - Registering, managing, and communicating with iot devices using domain name system processes - Google Patents
Registering, managing, and communicating with iot devices using domain name system processes Download PDFInfo
- Publication number
- US20220255910A1 US20220255910A1 US17/729,883 US202217729883A US2022255910A1 US 20220255910 A1 US20220255910 A1 US 20220255910A1 US 202217729883 A US202217729883 A US 202217729883A US 2022255910 A1 US2022255910 A1 US 2022255910A1
- Authority
- US
- United States
- Prior art keywords
- iot
- dns
- iot device
- domain name
- service
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 230000026676 system process Effects 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000006854 communication Effects 0.000 abstract description 20
- 238000004891 communication Methods 0.000 abstract description 19
- 238000004519 manufacturing process Methods 0.000 abstract description 7
- 238000012790 confirmation Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 34
- 230000007246 mechanism Effects 0.000 description 11
- 230000003993 interaction Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000008520 organization Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000000018 DNA microarray Methods 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 108020001568 subdomains Proteins 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/35—Protecting application or service provisioning, e.g. securing SIM application provisioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
Definitions
- IOT Internet of Things
- a method for registering an internet of things (“IoT”) device with a domain name system (“DNS”) registry can comprise obtaining, at a DNS server, an identifier, IP address, and a public key of an asymmetric key pair associated with the IoT device from a network gateway device that is in communication with the IoT device, wherein the asymmetric key pair is provisioned onto the IoT device and an associated private key stored within a memory of the IoT device at a time that IoT device is manufactured or during a predetermined time window after manufacturing; creating at least one DNS record for the IoT device; assigning a domain name associated with the internet protocol (“IP”) address to the IoT device; storing the identifier, IP address, the domain name, and the public key in the at least one DNS record; and providing confirmation of the registration to the IoT device.
- IP internet protocol
- the at least one DNS record is a TLSA record.
- the identifier, IP address, and the public key is obtained at a cloud-based DNS-registration interface associated with the DNS server.
- a device for registering an internet of things (“IoT”) device with a domain name system (“DNS”) registry can comprise a memory containing instructions; and at least one processor, operably connected to the memory, the executes the instructions to perform operations comprising: obtaining, at a DNS server, an identifier, IP address, and a public key of an asymmetric key pair associated with the IoT device from a network gateway device that is in communication with the IoT device, wherein the asymmetric key pair is provisioned onto the IoT device and an associated private key stored within a memory of the IoT device at a time that IoT device is manufactured or during a predetermined time window after manufacturing; creating at least one DNS record for the IoT device; assigning a domain name associated with the internet protocol (“IP”) address to the IoT device; storing the identifier, IP address, the domain name, and the public key in the at least one DNS record; and providing confirmation of the registration to the IoT device.
- IP internet protocol
- a method of authenticating a message produced by an internet of things (“IoT”) device can comprise obtaining the message from an IoT device, the message having been cryptographically signed by a private key of an asymmetric key pair associated with the IoT device and the message comprising an identifier of the IoT device and a data payload; obtaining a public key of the asymmetric key pair stored in at least one domain name system (“DNS”) record associated with the IoT device; and authenticating the message using the public key.
- DNS domain name system
- the at least one DNS record is TLSA or SMIMEA record type and the at least one DNS record is signed using DNSSEC.
- a device of authenticating a message produced by an internet of things (“IoT”) device can comprise a memory containing instructions; and at least one processor, operably connected to the memory, that executes the instructions to perform operations comprising: obtaining the message from an IoT device, the message having been cryptographically signed by a private key of an asymmetric key pair associated with the IoT device and the message comprising an identifier of the IoT device and a data payload; obtaining a public key of the asymmetric key pair stored in at least one domain name system (“DNS”) record associated with the IoT device; and authenticating the message using the public key.
- DNS domain name system
- FIG. 1 illustrates an IOT environment including an IOT service, according to various aspects of the present disclosure.
- FIG. 2 shows an example internal organization environment (denoted by “Company A”) having one or more IoT devices that can utilize an IOT service, according to various implementations.
- FIGS. 3A and 3B show an example IoT registration process with the DNS, according to aspects consistent with the present disclosure.
- FIGS. 4A and 4B show an example data stream verification process using DNS and DANE, according to aspects consistent with the present disclosure.
- FIGS. 5A and 5B shows an example discovery process that can allow for the extension of DNS to transparently interact with search engines, in accordance with aspects consistent with the present disclosure.
- FIG. 6 illustrates an example of a hardware configuration for a computer device, that can be used to perform one or more of the processes of the IoT service.
- the Internet utilizes communication processes, such as Domain Naming System (DNS) related standards, that can be leveraged in a number of ways to support data communications, device discovery and privacy protection.
- DNS Domain Naming System
- aspects of the present disclosure are related to an Internet of Things (IOT) service.
- the IOT service enables interactions between entities on the Internet and IOT capabilities, many of these incorporating new uses of DNS related processes.
- the IOT service includes a bundle of services that allow IOT devices to be registered, authenticated, and securely communicate with consuming entities and users.
- the IOT service utilizes DNS processes and services to register and authenticate the IOT devices.
- new capabilities can be defined that would extend those standards or provide capabilities that are not addressed by standards. The combination of these capabilities meets commonly found requirements for IOT security, privacy, communications, and data processing.
- FIG. 1 illustrates an IOT environment 100 including an IOT service 115 , according to various aspects of the present disclosure. While FIG. 1 illustrates various components contained in the IOT environment 100 , FIG. 1 illustrates one example of an IOT environment and additional components can be added and existing components can be removed.
- the IOT environment 100 can include a number of IOT devices 105 .
- the IOT devices 105 can be any type of electronic device that is capable of communicating with other electronic devices.
- the IOT devices 105 can include a wide variety of devices such as conventional computing device, smart phones, appliances (e.g. washer/dryers that utilize network communications, smart thermostat systems, etc.), sensors (e.g. remote monitoring heart monitoring implants, biochip transponders, automobiles sensors, etc.), and the like.
- the IOT devices 105 can include the necessary hardware and software to directly communicate with an IOT service 115 .
- the IOT devices can include the necessary hardware and software to communicate with the IOT service 115 using various protocols supported by the IOT service such as publish-subscribe messaging protocols, i.e., Message Queue Telemetry Transport (“MQTT”), and Domain Name System (“DNS”) processes and services.
- MQTT Message Queue Telemetry Transport
- DNS Domain Name System
- the IOT devices can be connected to an intermediary, such as a gateway 110 .
- the gateway 110 can include the necessary hardware and software to communicate with the IOT devices 105 and the necessary hardware and software to communicate with the IOT service utilizing various protocols supported by the IOT service such as MQTT and DNS processes and services.
- DNS Domain Name System
- IP Internet Protocol
- DNS allows users to refer to web sites, and other resources, using easier to remember domain names, such as “www.example.com”, rather than the numeric IP addresses associated with a website, e.g., 192.0.2.78, and assigned to computers on the Internet.
- Each domain name can be made up of a series of character strings (e.g., labels) separated by dots. The order of the labels represents a relationship between domain names within the DNS hierarchy.
- TLD top-level domain
- TLDs examples include “com”; “net”; “org”; and the like.
- Each TLD supports second-level domains, listed immediately to the left of the TLD, e.g., the “example” level in “www.example.com”. Domains can nest within the hierarchy for many levels. For example, each second-level domain can include a number of third-level domains located immediately to the left of the second-level domain, e.g. the “www” level in www.example.com.
- the labels in a domain name include one or more characters, each of which may either be an ASCII character or a language-specific character (e.g., Arabic, Chinese, Hindi, and Latin letters with diacritics (e.g., e)).
- IDNs Internationalized Domain Names
- each TLD including maintaining a registry of the second-level domains within the TLD, is delegated using a hierarchy of DNS services with different entities acting as the “registry” or “authoritative” registry for a portion of the hierarchy to a particular organization, known as a domain name registry (“registry”).
- the registry is primarily responsible for answering queries for IP addresses associated with domains (“resolving”), typically through DNS servers that maintain such information in large databases, and for operating its top-level domain.
- a registry may receive registrations from hundreds of registrars.
- a zone file is a text file that describes a portion of the DNS called a DNS zone.
- a zone file is organized in the form of resource records (RR) and contains information that defines mappings between domain names and IP addresses and other resources.
- the format of zone files is defined by a standard, with each line typically defining a single resource record.
- a line begins with a domain name, but if left blank, defaults to the previously defined domain name. Following the domain name is the time to live (TTL), the class (which is almost always “IN” for “internet” and rarely included), the type of resource record (A, MX, SOA, etc.), followed by type-specific data, such as the IPv4 address for A records. Comments can be included by using a semi-colon and lines can be continued by using parentheses. There are also file directives that are marked with a keyword starting with a dollar sign.
- the DNS distributes the responsibility of assigning domain names and mapping those names to IP addresses by designating authoritative name servers for each domain.
- Authoritative name servers are assigned to be responsible for their particular domains, and in turn can assign other authoritative name servers for their sub-domains. This mechanism generally helps avoid the need for a single central registry to be continually consulted and updated.
- the DNS resolution process allows for users to be directed to a desired domain by a lookup process whereby the user enters the desired domain, and the DNS returns appropriate IP numbers.
- a request for a given domain name is routed from a resolver (e.g., a stub resolver) to an appropriate server (e.g., a recursive resolver) to retrieve the IP address.
- a resolver e.g., a stub resolver
- an appropriate server e.g., a recursive resolver
- the DNS supports DNS cache servers that store DNS query results for a period of time determined by the time-to-live (TTL) of the domain name record in question.
- TTL time-to-live
- DNS caches also implement the recursive algorithm necessary to resolve a given name starting with the DNS root through to the authoritative name servers of the queried domain.
- Internet service providers ISPs typically provide recursive and caching DNS servers for their customers.
- home networking routers may implement DNS caches and proxies to improve efficiency in the local network.
- the IOT service 115 can assign a domain name to each of the IOT devices 105 .
- the domain name can then be associated with the IP address of the IOT device 105 .
- Domain names i.e., qnames, can also be assigned by an entity owner of the IoT device 105 .
- an IOT service can provide an application programming interface (API) that performs DNS registration of IOT devices on behalf of devices and gateways (DNS API not shown).
- API application programming interface
- DNS API gateways
- the IOT service 115 can provide a domain name that uniquely identifies the devices as IOT devices and also shows the relationship of the devices.
- the IOT service 115 can establish a domain for IOT devices such as “.iotservice.example.com.” As the devices are registered with the IOT service 115 , the IOT service assigns the domain name and creates the DNS records for the IOT devices. For example, if the IOT devices 105 are owned by “Company A,” the IOT service can create a domain “companyA.iotservice.example.com.” The IOT service 115 can assign a unique domain name to each of the IOT devices, for example, “iotdevicel.companyA.iotservice.example.com.” The domain and the domain names for each of the IOT devices allow consumers 140 to locate and communicate with the IOT devices 105 .
- the IOT service 115 can also include an API 125 to allow a user 130 to communicate with the IOT service 115 .
- the user 130 can communicate with the IOT service to establish the services of the IOT service 115 , register devices 105 , and the like.
- the IOT service 115 can also include an API 135 to allow the consumers 140 to locate and communicate with the IOT devices 105 .
- one or more services provided by the IOT service 115 can reside in the cloud.
- FIG. 2 shows an example internal organization environment 200 (denoted by “Company A”) having one or more IoT devices that can utilize an IOT service, according to various implementations.
- the internal organization environment can include a first IoT device, shown as sensor 205 , and a second IoT device, shown as actuator 210 , which are in communication with a gateway device 215 .
- the IoT devices can be utilized by Company A in daily operations.
- the sensor 205 can monitor the temperature of a piece of manufacturing equipment and the actuator 210 can be a component of the manufacturing equipment, e.g. cooling fan.
- Company A can desire to monitor and utilize the IoT devices using a IoT service.
- the IoT service can be implemented as an IoT services container.
- An IoT services container provides one or more services to an IoT device via one or more APIs.
- the one or more services can include, but are not limited to, an administrative service, a datameeter service, a crawler service, a messaging service, a DNS service.
- the IoT services container 220 is arranged between the gateway device 215 and a back office computer 225 and a control computer 230 .
- the IoT services container can be included in the gateway device 215 .
- the IoT services container can be hosted by Company A or can be hosted by a separate entity or organization.
- the sensor 205 such as a temperature sensor, can detect the temperature of a particular area of Company A and send temperature readings, either continuously or periodically, to the to the gateway device 215 through a data feed.
- the gateway device 215 can communicate with the IoT services container 220 , through a device API 235 over a communications protocol, i.e., TCP/IP, to provide the data feed to subscribers/consumers thereof.
- the back office computer 225 through a consume API 240 of the IoT services container 220 over a communications protocol, i.e., TCP/IP, may be operable to perform various functions, including, but are not limited, administrative, record keeping, etc.
- the control computer 230 may be operable to monitor the temperature from the sensor 205 and determine that a particular action is warranted based its readings. In this example, if the control computer 230 determines that the temperature monitored by the sensor 205 is too high, the control computer 230 can send a signal through the IoT services container 220 to the actuator 210 to lower the temperature by turning on a fan for a given time period
- the IOT service 115 can utilize DNS process and services, such as DNS-based Authentication of Named Entities (DANE) and DNSSEC to register and authenticate IOT devices, this enabling authentication of data received from IOT devices and also supporting encryption of data sent by IOT devices.
- DNSNE DNS-based Authentication of Named Entities
- DNSSEC DNS-based Authentication of Named Entities
- DANE provides a mechanism for associating the public key or a certificate containing a public key with an IOT device that can be identified by means of a unique domain name associated with a device. This association of a device with its public key or certificate containing a public key is stored in DNS registry records, either TLSA or SMIMEA, that are identified by the unique domain name associated with a device
- the need for IoT device authentication becomes more apparent as more and more IoT devices are attached to the Internet. As a result, it becomes less and less likely that there will be direct communication between the IoT devices and the applications that will be used to monitor and control them.
- the current model for authentication is based on verifying the endpoints of the communication where typically the client verifies the X.509 certificate provided by the server against the local trust store, and the server verifies the client based on a credential.
- the credential provided by the client is typically a username/password combination, an API key, or an X.509 client certificate.
- the current model requires placing trust in the message bus.
- the IoT device authenticates with the message bus and the application authenticates with the message bus. However, since there is no direct communication between the IoT device and the application, the IoT device never authenticates with the application and the application never authenticates with the IoT device. It is also possible that many, untrusted entities may exist between the IoT device and the application. For instance, due to unreliable or intermittent communication, it may be desirable to introduce multiple gateways and/or multiple containers, each of which are capable of storing a message until network conditions are such that the message can be forwarded along the path towards the destination.
- two entities i.e, the IoT device and the application (or another IoT device or a container)
- the approach to validating the information sources in these scenarios taught in the invention described here-in is based on creating a binding between a name and a public key in a globally accessible registry.
- This validation mechanism can be arranged such that one entity, i.e., the IoT device, first generates a private and public key pair. The private key is stored locally within an electronic memory of the IoT device.
- the name of the IoT device and the public key is sent to a globally accessible registry, i.e., a DNS registry, where it is stored.
- a DNS registry When the IoT device has information to send, the IoT device generates a payload in an application specific way.
- a cryptographic signature is computed over the name of the IoT device and the payload.
- the resulting message is the combination of the name of the IoT device, the payload, and the cryptographic signature.
- the message is then forwarded towards the recipient, i.e., an application, another IoT device, or a container.
- the name of the IoT device, the payload, and the signature are extracted from the message.
- the public key of the IoT device is retrieved from the globally accessible registry using the name of the IoT device as the key.
- the public key is used by the recipient to verify the source of the message and that the message has not been modified in transit. Every entity has a private/public key pair.
- the private key is used by the entity for signing data to be sent and decrypting data that is received, and the public key is used by entities wishing to verify the authenticity of signed data received from an entity and/or to encrypt encrypted data to be sent to an entity.
- DANE can be used for authentication and privacy for entities registered into the DNS as described above, i.e., IoT devices, containers, and applications.
- DANE provides a standards-based mechanism for storing and retrieving the public keys used in authentication and encryption mechanisms.
- the public key for registered entities is available from DNS by querying the DNS for the DANE defined record corresponding to the entity.
- the record to be retrieved is identified in the query using a derivation of the domain name (qname) as the search value.
- a retrieved record containing the public key for an entity is the one created by the IOT registration process.
- These records will be of a type defined by the DANE protocol, either TLSA or SMIMEA.
- Messages (data) that are digitally signed with the corresponding private key of the IoT device can be authenticated using the public key that is registered in DNS.
- the integrity of the authentication and encryption processes described herein relies on trusting that only the entity to which a private key applies will use that private key to sign messages or for decrypting communications (messages) received by the entity. Entities are expected to keep the private key in secure storage in which only the entity has access. An entity can use the private and public keys as part of a communication using a secure transport, TLS/DTLS. This present disclosure also applies to messages originated from an entity and which have been signed by the entity as a means of assuring the authenticity of such messages. Additionally, a device (A) could encrypt messages using the public key of another device (B) so as to protect the privacy of the data contained in the messages. Since only device B has the private key, only device B is able to decrypt the message.
- a service is a publish/subscribe messaging infrastructure on which a feed-based messaging protocol is based.
- an entity can publish messages to a specific feed based on a feed identifier (feed ID) that is unique within the messaging service. Entities subscribed to a feed identified by that feed identifier will receive messages published to the feed.
- feed ID feed identifier
- the message data published to feeds can be described with a shared ontology that standardizes the terms used for the data elements contained in messages, i.e., temperature, speed, etc.
- Message flows are typically one-way. Two-way messaging uses two one-way flows i.e. for two entities to communicate, each would subscribe to a feed to which the other publishes messages.
- Entities can be broadly characterized as IoT devices, applications, services, and containers (IoT service containers), and can be grouped into a variety of arrangements including, but not limited to the following: a device (such as a thermometer) that publishes data (such as temperature) to a feed, which then provides that data to an entity interested in using that data (a web app that displays current temperature); an entity (a light bulb) that can be controlled via messages it receives from a feed it subscribes to which a controlling entity (Web app) publishes control messages (toggle light bulb on and off).
- a device such as a thermometer
- data such as temperature
- a web app that displays current temperature
- an entity a light bulb
- Web app controls entity
- FIGS. 3A and 3B show an example IoT registration process with the DNS, according to aspects consistent with the present disclosure.
- an IoT device is provisioned with a public/private key pair.
- IoT device 350 can comprise a device ID and public/private key pair.
- the IoT device 350 can be provisioned with the public/private key pair in a variety of ways including: (1) embedded in IoT device 350 at manufacturing; (2) generated by the IoT device 350 ; (3) generated/regenerated by the IoT device 305 based on “factory reset,” time-to-live configuration, or request from an authorized entity, (4) generated by a third party (e.g. IoT service), and the like.
- a third party e.g. IoT service
- the IoT device transmits registration data to an IoT service.
- the IoT device 350 can communicates with a registration service 355 of an IoT service 360 .
- the IoT device 350 can communicate registration data such as the device ID, and the public key to the registration service 355 .
- the IoT device 350 can transmit any additional registration data to the registration service 355 , which can assist in the registration, such as IoT device type, location, owner of the IoT device, type of data collected by the IoT device etc.
- the IoT service can map the registration data to a unique identifier in the IoT service.
- the registration service 355 can be configured to map the device ID of the IoT device 350 to a “qname,” which is a valid identifier for the DNS 365 .
- the DNS 365 can be part of the IoT service 360 .
- the DNS 365 can be a standalone service and hosted by a separate entity.
- the public key of the IoT device can be registered with the DNS service.
- the registration service 355 can act on behalf of the IoT device 350 to register its public key in the DNS 365 .
- the registration service 310 can first map the device ID of the IoT device 350 to a unique qname.
- the qname can be a valid DNS identifier, i.e., domain name.
- the registration service 355 can then interact with the appropriate DNS server to create DNS entries for qname including one to contain the public key for the IoT device 350 .
- the DNS record could be either a TLSA or SMIMEA record.
- the registration service 310 can be service provided by a DNS registry or another entity.
- FIGS. 4A and 4B show an example data stream verification process using DNS and DANE, according to aspects consistent with the present disclosure.
- an IoT device signs a message with a private key.
- IoT device 450 can publish data to a data feed.
- the IoT device 450 can include an IoT device ID, a private key of a public/private key pair, data, and a feed ID that is used to identify the data that is generated by the IoT device 450 to be published.
- the feed ID to which the IoT device 450 publishes can be configured by an out-of-band process.
- the public/private key pair can be generated by the processes discussed above in FIGS. 3A and 3B .
- the public key can be published in a DNSSEC secured zone file (SMIMEA or TLSA with usage type either 1 or 3 and matching type 0 [“1 0 0”, “1 1 0”, “3 0 0”, “3 1 0”]).
- the usage type must be either 1 or 3 to indicate that the public key is the actual public key for the device.
- the selector can be either type 0 or 1 as both formats include the public key.
- the matching type must be 0 so that the public key can be extracted from the data in the resource record.
- the message 525 can include the device ID, the feed ID, and the digital signature of the IoT device 450 (the message 525 signed by the private key of the IoT device 450 ).
- the IoT device 450 sends the signed message 452 to an IoT service.
- the IoT device 450 can communicate with a messaging service 455 of an IoT service 460 .
- the IoT device 450 can communicate the signed message 452 such as the device ID, the feed ID to the messaging service 455 .
- the IoT service 460 can publish the signed message to a data feed 465 .
- the IoT service 460 can also receive additional signed messages from other IoT devices 480 and publish those additional signed messages to additional data feeds 485 .
- the digitally signed message 452 from the IoT device 450 and from other IoT devices 480 can then be published to the feed identified by the feed ID.
- the messaging service 455 can include records for the feed for a particular feed ID from the IoT device 450 as well as other feeds associated with other feed IDs from other IoT devices 480 .
- the subscribers (also called consumers or recipients) 470 can subscribe to a feed identified by a specific feed ID and receive messages published to that feed.
- the subscriber 470 uses the IoT device ID from the message to determine the qname for the IoT device in 425 .
- the subscriber 470 performs a DNS query to the DNS 475 to look up the DNS record for the qname that contains the public key for the IoT device 450 .
- the subscriber 470 then uses the public key to verify the digital signature on the message 452 .
- the message 452 may be contained within another message (not shown) with the containing message signed by the IoT device/subscriber which generated the containing message. This allows for a method for data provenance as signatures for all messages signers provides evidence of the routing/handling of a message.
- an IoT device has associated with it a DNS service (SRV) record, (defined in RFC 2782) or a text (TXT) record that is used to define a location, i.e., a hostname and port number, of one or more services provided by the IoT device, to discover a gateway and IoT device.
- DNS DNS service
- TXT text
- this mechanism has limitations in the flexibility and retrieval capabilities of the search mechanism.
- IOT it is desirable that more powerful search mechanisms be available for discovering devices that are registered in the DNS.
- FIGS. 5A and 5B shows an example discovery process that can allow for the extension of DNS to interact transparently with search engines, in accordance with aspects consistent with the present disclosure.
- an application can format and send a DNS query to a DNS resolver.
- a DNS resolver 560 i.e., a stub resolver, a recursive DNS server, or other DNS resolver.
- the DNS query 570 can include some characteristics of the query format, the domain name being resolved and/or the record type being requested that flags to the DNS resolver 560 that the request is targeted for resolution via a search engine 565 rather than be resolved by the DNS resolver 560 .
- the DNS query 570 can be a new query type or an existing query type with a flag that can be interpreted by the DNS resolver 560 to send the query to a search engine 565 for processing.
- the DNS query 570 can include a first portion that includes search parameters that can be interpreted to indicate a specific external search engine to use.
- the DNS query 570 can include a second portion that includes information indicating a type of search to be performed.
- the DNS query 570 can include a third portion that includes a domain that is a flag that the DNS query 560 is intended for an external search.
- the DNS query could be for the IP address that corresponds with a domain name, such as, return IP address for “myquery01-temperature-coordinates75-09-15-36-05-04.iot.search.mydomain.com.”
- the DNS resolver 560 and the search engine 565 can be part of an IOT service 555 .
- the DNS resolver 560 and/or the search engine 565 can be part of other services or devices.
- the DNS resolver receives the DNS query and determines if the DNS query is intended for the search engine.
- the mechanism whereby the DNS resolver 560 is able to determine that the DNS query 570 is intended for the search engine 560 can include the following examples.
- a domain name within the DNS query 570 can be formatted according to a particular naming convention where part of the domain name is a flag to indicate the external search engine to use.
- a new DNS query type can be defined and supported by the DNS resolver 560 , e.g. the stub resolver or the recursive DNS server, to allow for the DNS query in this new format to be searched by a search engine 565 rather than resolved by a DNS resolver 560 .
- the DNS resolver can form a search query and send the search query to the search engine.
- the DNS resolver 560 can then interpret the DNS query 570 to form a query to the search engine 565 indicated by the DNS query 570 and can send the query to the search engine 565 .
- the search engine can process the search query, generate search results, and forward the results to the DNS server and or the requestor.
- the search engine 565 can process the query and generates a result of 0 or more IP addresses and/or domain names that serve as the result of the query.
- the search engine 565 or the DNS resolver 560 can then create a transient IP address that provides an interaction point for retrieving the search results and stores the search results at the interaction point.
- the DNS resolver 560 could store search results on the local machine and then return the IP address of the local machine to the originating application 550 .
- the originating process can then use the returned IP address to retrieve the results of the query. For example, if the results are stored locally by the DNS resolver, the returned IP address might be 127.0.0.1 and the originating process could retrieve them using a known port and folder, i.e., 127.0.0.1:9999/myquery-01-temperature-coordinates75-09-15-36-05-04.
- processing for the IoT device can be arranged at one or more edge locations (geographically dispersed) to reduce and simplify data amount and load. For example, by running a container (a collected set of IoT services assessable from a common location on the Internet) on edge locations allow the containers to get closer to production point or IoT devices.
- the edge processing can allow for a reduction of the data size in the path between the producer and the consumer that provides for a conservation of bandwidth resources. If processing is not required or is not reducing the data size, then arranging processing at edge location allows for the path between the producer and consumer to be minimized so that the consumer gets the data as soon as possible.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- a general-purpose processor can be a microprocessor, but, in the alternative, the processor can be any conventional processor, controller, microcontroller, or state machine.
- a processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- the functions described can be implemented in hardware, software, firmware, or any combination thereof.
- the techniques described herein can be implemented with modules (e.g., procedures, functions, subprograms, programs, routines, subroutines, modules, software packages, classes, and so on) that perform the functions described herein.
- a module can be coupled to another module or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents.
- Information, arguments, parameters, data, or the like can be passed, forwarded, or transmitted using any suitable means including memory sharing, message passing, token passing, network transmission, and the like.
- the software codes can be stored in memory units and executed by processors.
- the memory unit can be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor via various means as is known in the art.
- FIG. 6 illustrates an example of a hardware configuration for a computer device 600 , that can be used to perform one or more of the processes of the IoT service described above. While FIG. 6 illustrates various components contained in the computer device 600 , FIG. 6 illustrates one example of a computer device and additional components can be added and existing components can be removed.
- the computer device 600 can be any type of computer devices, such as desktops, laptops, servers, etc., or mobile devices, such as smart telephones, tablet computers, cellular telephones, personal digital assistants, etc. As illustrated in FIG. 6 , the computer device 600 can include one or more processors 602 of varying core configurations and clock frequencies. The computer device 600 can also include one or more memory devices 604 that serve as a main memory during the operation of the computer device 600 . For example, during operation, a copy of the software that supports the IoT service can be stored in the one or more memory devices 604 . The computer device 600 can also include one or more peripheral interfaces 606 , such as keyboards, mice, touchpads, computer screens, touchscreens, etc., for enabling human interaction with and manipulation of the computer device 600 .
- peripheral interfaces 606 such as keyboards, mice, touchpads, computer screens, touchscreens, etc.
- the computer device 600 can also include one or more network interfaces 608 for communicating via one or more networks, such as Ethernet adapters, wireless transceivers, or serial network components, for communicating over wired or wireless media using protocols.
- the computer device 600 can also include one or more storage device 610 of varying physical dimensions and storage capacities, such as flash drives, hard drives, random access memory, etc., for storing data, such as images, files, and program instructions for execution by the one or more processors 602 .
- the computer device 600 can include one or more software programs 612 that enable the functionality of the IoT service described above.
- the one or more software programs 612 can include instructions that cause the one or more processors 602 to perform the processes described herein. Copies of the one or more software programs 612 can be stored in the one or more memory devices 604 and/or on in the one or more storage devices 610 .
- the data, for example, DNS records, utilized by one or more software programs 612 can be stored in the one or more memory devices 604 and/or on in the one or more storage devices 610 .
- the computer device 600 can communicate with one or more IoT devices 614 via a network 616 .
- the one or more IoT devices 614 can be any types of devices as described above.
- the network 616 can be any type of network, such as a local area network, a wide-area network, a virtual private network, the Internet, an intranet, an extranet, a public switched telephone network, an infrared network, a wireless network, and any combination thereof.
- the network 616 can support communications using any of a variety of commercially-available protocols, such as TCP/IP, UDP, OSI, FTP, UPnP, NFS, CIFS, AppleTalk, and the like.
- the network 616 can be, for example, a local area network, a wide-area network, a virtual private network, the Internet, an intranet, an extranet, a public switched telephone network, an infrared network, a wireless network, and any combination thereof.
- the computer device 600 can include a variety of data stores and other memory and storage media as discussed above. These can reside in a variety of locations, such as on a storage medium local to (and/or resident in) one or more of the computers or remote from any or all of the computers across the network. In some implementations, information can reside in a storage-area network (“SAN”) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers, servers, or other network devices may be stored locally and/or remotely, as appropriate.
- SAN storage-area network
- the components of the computer device 600 as described above need not be enclosed within a single enclosure or even located in close proximity to one another.
- the above-described componentry are examples only, as the computer device 600 can include any type of hardware componentry, including any necessary accompanying firmware or software, for performing the disclosed implementations.
- the computer device 600 can also be implemented in part or in whole by electronic circuit components or processors, such as application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs).
- ASICs application-specific integrated circuits
- FPGAs field-programmable gate arrays
- Computer-readable media includes both tangible, non-transitory computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
- a storage media can be any available tangible, non-transitory media that can be accessed by a computer.
- tangible, non-transitory computer-readable media can comprise RAM, ROM, flash memory, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
- Disk and disc includes CD, laser disc, optical disc, DVD, floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.
- any connection is properly termed a computer-readable medium.
- the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave
- the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Combinations of the above should also be included within the scope of computer-readable media.
- the terms “including”, “includes”, “having”, “has”, “with”, or variants thereof are used in the detailed description, such terms are intended to be inclusive in a manner similar to the term “comprising.”
- the terms “one or more of” and “at least one of” with respect to a listing of items such as, for example, A and B means A alone, B alone, or A and B.
- the term “set” should be interpreted as “one or more.”
- the term “couple” or “couples” is intended to mean either an indirect or direct connection. Thus, if a first device couples to a second device, that connection can be through a direct connection, or through an indirect connection via other devices, components, and connections.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
- This application is a continuation of U.S. patent application titled, “REGISTERING, MANAGING, AND COMMUNICATING WITH IOT DEVICES USING DOMAIN NAME SYSTEM PROCESSES,” filed on Sep. 11, 2017 and having Ser. No. 15/701,408, which is a Divisional of U.S. patent application titled, “REGISTERING, MANAGING, AND COMMUNICATING WITH IOT DEVICES USING DOMAIN NAME SYSTEM PROCESSES,” filed on Jan. 9, 2015 and having Ser. No. 14/593,919, which issued on Sep. 12, 2017 as U.S. Pat. No. 9,762,556. The subject matter of these related applications is hereby incorporated herein by reference.
- The use of the Internet for purposes that extend beyond the current model of Web browsers interacting with Websites is growing rapidly. In particular, many devices are now being exposed on the Internet so as to enable interactions with those devices from devices and applications that are also connected to the Internet. As a result of this increasing usage of the Internet for interaction with connected devices, commonly called the Internet of Things (IOT), there is a growing demand for technology that enables these interactions to be performed securely in a way that protects the privacy of the data being exchanged in the interactions.
- In some aspects, a method for registering an internet of things (“IoT”) device with a domain name system (“DNS”) registry is disclosed. The method can comprise obtaining, at a DNS server, an identifier, IP address, and a public key of an asymmetric key pair associated with the IoT device from a network gateway device that is in communication with the IoT device, wherein the asymmetric key pair is provisioned onto the IoT device and an associated private key stored within a memory of the IoT device at a time that IoT device is manufactured or during a predetermined time window after manufacturing; creating at least one DNS record for the IoT device; assigning a domain name associated with the internet protocol (“IP”) address to the IoT device; storing the identifier, IP address, the domain name, and the public key in the at least one DNS record; and providing confirmation of the registration to the IoT device.
- In some aspects, the at least one DNS record is a TLSA record.
- In some aspects, the identifier, IP address, and the public key is obtained at a cloud-based DNS-registration interface associated with the DNS server.
- In some aspects, a device for registering an internet of things (“IoT”) device with a domain name system (“DNS”) registry is disclosed. The device can comprise a memory containing instructions; and at least one processor, operably connected to the memory, the executes the instructions to perform operations comprising: obtaining, at a DNS server, an identifier, IP address, and a public key of an asymmetric key pair associated with the IoT device from a network gateway device that is in communication with the IoT device, wherein the asymmetric key pair is provisioned onto the IoT device and an associated private key stored within a memory of the IoT device at a time that IoT device is manufactured or during a predetermined time window after manufacturing; creating at least one DNS record for the IoT device; assigning a domain name associated with the internet protocol (“IP”) address to the IoT device; storing the identifier, IP address, the domain name, and the public key in the at least one DNS record; and providing confirmation of the registration to the IoT device.
- In some aspects, a method of authenticating a message produced by an internet of things (“IoT”) device is disclosed. The method can comprise obtaining the message from an IoT device, the message having been cryptographically signed by a private key of an asymmetric key pair associated with the IoT device and the message comprising an identifier of the IoT device and a data payload; obtaining a public key of the asymmetric key pair stored in at least one domain name system (“DNS”) record associated with the IoT device; and authenticating the message using the public key.
- In some aspects, the at least one DNS record is TLSA or SMIMEA record type and the at least one DNS record is signed using DNSSEC.
- In some aspects, a device of authenticating a message produced by an internet of things (“IoT”) device is disclosed. The device can comprise a memory containing instructions; and at least one processor, operably connected to the memory, that executes the instructions to perform operations comprising: obtaining the message from an IoT device, the message having been cryptographically signed by a private key of an asymmetric key pair associated with the IoT device and the message comprising an identifier of the IoT device and a data payload; obtaining a public key of the asymmetric key pair stored in at least one domain name system (“DNS”) record associated with the IoT device; and authenticating the message using the public key.
-
FIG. 1 illustrates an IOT environment including an IOT service, according to various aspects of the present disclosure. -
FIG. 2 shows an example internal organization environment (denoted by “Company A”) having one or more IoT devices that can utilize an IOT service, according to various implementations. -
FIGS. 3A and 3B show an example IoT registration process with the DNS, according to aspects consistent with the present disclosure. -
FIGS. 4A and 4B show an example data stream verification process using DNS and DANE, according to aspects consistent with the present disclosure. -
FIGS. 5A and 5B shows an example discovery process that can allow for the extension of DNS to transparently interact with search engines, in accordance with aspects consistent with the present disclosure. -
FIG. 6 illustrates an example of a hardware configuration for a computer device, that can be used to perform one or more of the processes of the IoT service. - For simplicity and illustrative purposes, the principles of the present teachings are described by referring mainly to examples of various implementations thereof. However, one of ordinary skill in the art would readily recognize that the same principles are equally applicable to, and can be implemented in, all types of information and systems, and that any such variations do not depart from the true spirit and scope of the present teachings. Moreover, in the following detailed description, references are made to the accompanying figures, which illustrate specific examples of various implementations. Logical and structural changes can be made to the examples of the various implementations without departing from the spirit and scope of the present teachings. The following detailed description is, therefore, not to be taken in a limiting sense and the scope of the present teachings is defined by the appended claims and their equivalents.
- The Internet utilizes communication processes, such as Domain Naming System (DNS) related standards, that can be leveraged in a number of ways to support data communications, device discovery and privacy protection. Aspects of the present disclosure are related to an Internet of Things (IOT) service. According to aspects, the IOT service enables interactions between entities on the Internet and IOT capabilities, many of these incorporating new uses of DNS related processes. The IOT service includes a bundle of services that allow IOT devices to be registered, authenticated, and securely communicate with consuming entities and users. The IOT service utilizes DNS processes and services to register and authenticate the IOT devices. In addition to capabilities based on new techniques of leveraging existing Internet-related processes, new capabilities can be defined that would extend those standards or provide capabilities that are not addressed by standards. The combination of these capabilities meets commonly found requirements for IOT security, privacy, communications, and data processing.
-
FIG. 1 illustrates anIOT environment 100 including anIOT service 115, according to various aspects of the present disclosure. WhileFIG. 1 illustrates various components contained in theIOT environment 100,FIG. 1 illustrates one example of an IOT environment and additional components can be added and existing components can be removed. - As illustrated, the
IOT environment 100 can include a number ofIOT devices 105. TheIOT devices 105 can be any type of electronic device that is capable of communicating with other electronic devices. For example, theIOT devices 105 can include a wide variety of devices such as conventional computing device, smart phones, appliances (e.g. washer/dryers that utilize network communications, smart thermostat systems, etc.), sensors (e.g. remote monitoring heart monitoring implants, biochip transponders, automobiles sensors, etc.), and the like. - In aspects, the
IOT devices 105 can include the necessary hardware and software to directly communicate with anIOT service 115. In this example, the IOT devices can include the necessary hardware and software to communicate with theIOT service 115 using various protocols supported by the IOT service such as publish-subscribe messaging protocols, i.e., Message Queue Telemetry Transport (“MQTT”), and Domain Name System (“DNS”) processes and services. Likewise, the IOT devices can be connected to an intermediary, such as agateway 110. In this example, thegateway 110 can include the necessary hardware and software to communicate with theIOT devices 105 and the necessary hardware and software to communicate with the IOT service utilizing various protocols supported by the IOT service such as MQTT and DNS processes and services. - The Domain Name System (“DNS”) is the part of the Internet infrastructure that translates human-readable domain names into the Internet Protocol (“IP”) numbers needed to establish TCP/IP communication over the Internet. DNS allows users to refer to web sites, and other resources, using easier to remember domain names, such as “www.example.com”, rather than the numeric IP addresses associated with a website, e.g., 192.0.2.78, and assigned to computers on the Internet. Each domain name can be made up of a series of character strings (e.g., labels) separated by dots. The order of the labels represents a relationship between domain names within the DNS hierarchy. The right-most label in a domain name is known as the top-level domain (“TLD”). Examples of well-known TLDs are “com”; “net”; “org”; and the like. Each TLD supports second-level domains, listed immediately to the left of the TLD, e.g., the “example” level in “www.example.com”. Domains can nest within the hierarchy for many levels. For example, each second-level domain can include a number of third-level domains located immediately to the left of the second-level domain, e.g. the “www” level in www.example.com. The labels in a domain name include one or more characters, each of which may either be an ASCII character or a language-specific character (e.g., Arabic, Chinese, Hindi, and Latin letters with diacritics (e.g., e)). Domain names represented, in whole or in part, by language-specific characters are called Internationalized Domain Names (IDNs). While not yet available, potential IDN versions of well-known TLDs, such as “.com,” “.net,” and “.org.” could also be created.
- The responsibility for operating each TLD, including maintaining a registry of the second-level domains within the TLD, is delegated using a hierarchy of DNS services with different entities acting as the “registry” or “authoritative” registry for a portion of the hierarchy to a particular organization, known as a domain name registry (“registry”). The registry is primarily responsible for answering queries for IP addresses associated with domains (“resolving”), typically through DNS servers that maintain such information in large databases, and for operating its top-level domain.
- For most TLDs, in order for end-users to obtain a domain name, that domain name has to be registered with a registry through a domain name registrar, an entity authorized to register Internet domain names on behalf of end-users. Alternatively, an end-user can register a domain name indirectly through one or more layers of resellers. A registry may receive registrations from hundreds of registrars.
- A zone file is a text file that describes a portion of the DNS called a DNS zone. A zone file is organized in the form of resource records (RR) and contains information that defines mappings between domain names and IP addresses and other resources. The format of zone files is defined by a standard, with each line typically defining a single resource record. A line begins with a domain name, but if left blank, defaults to the previously defined domain name. Following the domain name is the time to live (TTL), the class (which is almost always “IN” for “internet” and rarely included), the type of resource record (A, MX, SOA, etc.), followed by type-specific data, such as the IPv4 address for A records. Comments can be included by using a semi-colon and lines can be continued by using parentheses. There are also file directives that are marked with a keyword starting with a dollar sign.
- The DNS distributes the responsibility of assigning domain names and mapping those names to IP addresses by designating authoritative name servers for each domain. Authoritative name servers are assigned to be responsible for their particular domains, and in turn can assign other authoritative name servers for their sub-domains. This mechanism generally helps avoid the need for a single central registry to be continually consulted and updated. The DNS resolution process allows for users to be directed to a desired domain by a lookup process whereby the user enters the desired domain, and the DNS returns appropriate IP numbers. During the DNS resolution process, a request for a given domain name is routed from a resolver (e.g., a stub resolver) to an appropriate server (e.g., a recursive resolver) to retrieve the IP address. To improve efficiency, reduce DNS traffic across the Internet, and increase performance in end-user applications, the DNS supports DNS cache servers that store DNS query results for a period of time determined by the time-to-live (TTL) of the domain name record in question. Typically, such caching DNS servers, also called DNS caches, also implement the recursive algorithm necessary to resolve a given name starting with the DNS root through to the authoritative name servers of the queried domain. Internet service providers (ISPs) typically provide recursive and caching DNS servers for their customers. In addition, home networking routers may implement DNS caches and proxies to improve efficiency in the local network.
- According to aspects of the present disclosure, the
IOT service 115 can assign a domain name to each of theIOT devices 105. The domain name can then be associated with the IP address of theIOT device 105. Domain names, i.e., qnames, can also be assigned by an entity owner of theIoT device 105. To facilitate the registration of IOT devices, an IOT service can provide an application programming interface (API) that performs DNS registration of IOT devices on behalf of devices and gateways (DNS API not shown). TheIOT service 115 can provide a domain name that uniquely identifies the devices as IOT devices and also shows the relationship of the devices. For example, theIOT service 115 can establish a domain for IOT devices such as “.iotservice.example.com.” As the devices are registered with theIOT service 115, the IOT service assigns the domain name and creates the DNS records for the IOT devices. For example, if theIOT devices 105 are owned by “Company A,” the IOT service can create a domain “companyA.iotservice.example.com.” TheIOT service 115 can assign a unique domain name to each of the IOT devices, for example, “iotdevicel.companyA.iotservice.example.com.” The domain and the domain names for each of the IOT devices allowconsumers 140 to locate and communicate with theIOT devices 105. - The
IOT service 115 can also include anAPI 125 to allow auser 130 to communicate with theIOT service 115. Theuser 130 can communicate with the IOT service to establish the services of theIOT service 115, registerdevices 105, and the like. TheIOT service 115 can also include anAPI 135 to allow theconsumers 140 to locate and communicate with theIOT devices 105. In some aspects, one or more services provided by theIOT service 115 can reside in the cloud. -
FIG. 2 shows an example internal organization environment 200 (denoted by “Company A”) having one or more IoT devices that can utilize an IOT service, according to various implementations. As illustrated inFIG. 2 , the internal organization environment can include a first IoT device, shown assensor 205, and a second IoT device, shown asactuator 210, which are in communication with agateway device 215. The IoT devices can be utilized by Company A in daily operations. For example, thesensor 205 can monitor the temperature of a piece of manufacturing equipment and theactuator 210 can be a component of the manufacturing equipment, e.g. cooling fan. Company A can desire to monitor and utilize the IoT devices using a IoT service. - In this example, the IoT service can be implemented as an IoT services container. An IoT services container provides one or more services to an IoT device via one or more APIs. The one or more services can include, but are not limited to, an administrative service, a datameeter service, a crawler service, a messaging service, a DNS service. The IoT services
container 220 is arranged between thegateway device 215 and aback office computer 225 and acontrol computer 230. In some example, the IoT services container can be included in thegateway device 215. The IoT services container can be hosted by Company A or can be hosted by a separate entity or organization. - In this example, the
sensor 205, such as a temperature sensor, can detect the temperature of a particular area of Company A and send temperature readings, either continuously or periodically, to the to thegateway device 215 through a data feed. Thegateway device 215 can communicate with theIoT services container 220, through adevice API 235 over a communications protocol, i.e., TCP/IP, to provide the data feed to subscribers/consumers thereof. Theback office computer 225, through a consumeAPI 240 of theIoT services container 220 over a communications protocol, i.e., TCP/IP, may be operable to perform various functions, including, but are not limited, administrative, record keeping, etc. Thecontrol computer 230, through anadministrator API 245 of theIot services container 220 over a communication protocol, i.e., TCP/IP, may be operable to monitor the temperature from thesensor 205 and determine that a particular action is warranted based its readings. In this example, if thecontrol computer 230 determines that the temperature monitored by thesensor 205 is too high, thecontrol computer 230 can send a signal through theIoT services container 220 to theactuator 210 to lower the temperature by turning on a fan for a given time period - According to aspects of the present disclosure, the
IOT service 115 can utilize DNS process and services, such as DNS-based Authentication of Named Entities (DANE) and DNSSEC to register and authenticate IOT devices, this enabling authentication of data received from IOT devices and also supporting encryption of data sent by IOT devices. DANE provides a mechanism for associating the public key or a certificate containing a public key with an IOT device that can be identified by means of a unique domain name associated with a device. This association of a device with its public key or certificate containing a public key is stored in DNS registry records, either TLSA or SMIMEA, that are identified by the unique domain name associated with a device - The need for IoT device authentication becomes more apparent as more and more IoT devices are attached to the Internet. As a result, it becomes less and less likely that there will be direct communication between the IoT devices and the applications that will be used to monitor and control them. The current model for authentication is based on verifying the endpoints of the communication where typically the client verifies the X.509 certificate provided by the server against the local trust store, and the server verifies the client based on a credential. The credential provided by the client is typically a username/password combination, an API key, or an X.509 client certificate. When interaction between the IoT device and the application is separated messaging middleware, such as a message bus of a middleware container, the current model requires placing trust in the message bus. The IoT device authenticates with the message bus and the application authenticates with the message bus. However, since there is no direct communication between the IoT device and the application, the IoT device never authenticates with the application and the application never authenticates with the IoT device. It is also possible that many, untrusted entities may exist between the IoT device and the application. For instance, due to unreliable or intermittent communication, it may be desirable to introduce multiple gateways and/or multiple containers, each of which are capable of storing a message until network conditions are such that the message can be forwarded along the path towards the destination.
- As a consequence, two entities, i.e, the IoT device and the application (or another IoT device or a container), would benefit by a mechanism of validating that the information they receive came from the expected source and was not modified in transit, even when the information passed through one or more untrusted intermediaries. The approach to validating the information sources in these scenarios taught in the invention described here-in is based on creating a binding between a name and a public key in a globally accessible registry. This validation mechanism can be arranged such that one entity, i.e., the IoT device, first generates a private and public key pair. The private key is stored locally within an electronic memory of the IoT device. The name of the IoT device and the public key is sent to a globally accessible registry, i.e., a DNS registry, where it is stored. When the IoT device has information to send, the IoT device generates a payload in an application specific way. A cryptographic signature is computed over the name of the IoT device and the payload. The resulting message is the combination of the name of the IoT device, the payload, and the cryptographic signature.
- The message is then forwarded towards the recipient, i.e., an application, another IoT device, or a container. When received by the recipient, the name of the IoT device, the payload, and the signature are extracted from the message. The public key of the IoT device is retrieved from the globally accessible registry using the name of the IoT device as the key. The public key is used by the recipient to verify the source of the message and that the message has not been modified in transit. Every entity has a private/public key pair. The private key is used by the entity for signing data to be sent and decrypting data that is received, and the public key is used by entities wishing to verify the authenticity of signed data received from an entity and/or to encrypt encrypted data to be sent to an entity.
- DANE can be used for authentication and privacy for entities registered into the DNS as described above, i.e., IoT devices, containers, and applications. DANE provides a standards-based mechanism for storing and retrieving the public keys used in authentication and encryption mechanisms. The public key for registered entities is available from DNS by querying the DNS for the DANE defined record corresponding to the entity. The record to be retrieved is identified in the query using a derivation of the domain name (qname) as the search value. A retrieved record containing the public key for an entity is the one created by the IOT registration process. These records will be of a type defined by the DANE protocol, either TLSA or SMIMEA. Messages (data) that are digitally signed with the corresponding private key of the IoT device can be authenticated using the public key that is registered in DNS.
- The integrity of the authentication and encryption processes described herein relies on trusting that only the entity to which a private key applies will use that private key to sign messages or for decrypting communications (messages) received by the entity. Entities are expected to keep the private key in secure storage in which only the entity has access. An entity can use the private and public keys as part of a communication using a secure transport, TLS/DTLS. This present disclosure also applies to messages originated from an entity and which have been signed by the entity as a means of assuring the authenticity of such messages. Additionally, a device (A) could encrypt messages using the public key of another device (B) so as to protect the privacy of the data contained in the messages. Since only device B has the private key, only device B is able to decrypt the message.
- Entities communicate with each other via IOT message services. One example of such a service is a publish/subscribe messaging infrastructure on which a feed-based messaging protocol is based. In this example, an entity can publish messages to a specific feed based on a feed identifier (feed ID) that is unique within the messaging service. Entities subscribed to a feed identified by that feed identifier will receive messages published to the feed. The message data published to feeds can be described with a shared ontology that standardizes the terms used for the data elements contained in messages, i.e., temperature, speed, etc. Message flows are typically one-way. Two-way messaging uses two one-way flows i.e. for two entities to communicate, each would subscribe to a feed to which the other publishes messages. Entities can be broadly characterized as IoT devices, applications, services, and containers (IoT service containers), and can be grouped into a variety of arrangements including, but not limited to the following: a device (such as a thermometer) that publishes data (such as temperature) to a feed, which then provides that data to an entity interested in using that data (a web app that displays current temperature); an entity (a light bulb) that can be controlled via messages it receives from a feed it subscribes to which a controlling entity (Web app) publishes control messages (toggle light bulb on and off).
-
FIGS. 3A and 3B show an example IoT registration process with the DNS, according to aspects consistent with the present disclosure. Once the process begins, in 305 an IoT device is provisioned with a public/private key pair. For example, as illustrated inFIG. 3B ,IoT device 350 can comprise a device ID and public/private key pair. TheIoT device 350 can be provisioned with the public/private key pair in a variety of ways including: (1) embedded inIoT device 350 at manufacturing; (2) generated by theIoT device 350; (3) generated/regenerated by theIoT device 305 based on “factory reset,” time-to-live configuration, or request from an authorized entity, (4) generated by a third party (e.g. IoT service), and the like. - In 310, the IoT device transmits registration data to an IoT service. For example, the
IoT device 350 can communicates with aregistration service 355 of anIoT service 360. For instance, theIoT device 350 can communicate registration data such as the device ID, and the public key to theregistration service 355. Likewise, theIoT device 350 can transmit any additional registration data to theregistration service 355, which can assist in the registration, such as IoT device type, location, owner of the IoT device, type of data collected by the IoT device etc. - Once received, in 315, the IoT service can map the registration data to a unique identifier in the IoT service. For example, the
registration service 355 can be configured to map the device ID of theIoT device 350 to a “qname,” which is a valid identifier for theDNS 365. As illustrated inFIG. 3B , theDNS 365 can be part of theIoT service 360. Likewise, theDNS 365 can be a standalone service and hosted by a separate entity. - Next, in 320, the public key of the IoT device can be registered with the DNS service. For example, the
registration service 355 can act on behalf of theIoT device 350 to register its public key in theDNS 365. In this process, theregistration service 310 can first map the device ID of theIoT device 350 to a unique qname. The qname can be a valid DNS identifier, i.e., domain name. Theregistration service 355 can then interact with the appropriate DNS server to create DNS entries for qname including one to contain the public key for theIoT device 350. The DNS record could be either a TLSA or SMIMEA record. Theregistration service 310 can be service provided by a DNS registry or another entity. -
FIGS. 4A and 4B show an example data stream verification process using DNS and DANE, according to aspects consistent with the present disclosure. Once the process begins, in 405 an IoT device signs a message with a private key. For example, as illustrated inFIG. 4B ,IoT device 450 can publish data to a data feed. TheIoT device 450 can include an IoT device ID, a private key of a public/private key pair, data, and a feed ID that is used to identify the data that is generated by theIoT device 450 to be published. The feed ID to which theIoT device 450 publishes can be configured by an out-of-band process. The public/private key pair can be generated by the processes discussed above inFIGS. 3A and 3B . The public key can be published in a DNSSEC secured zone file (SMIMEA or TLSA with usage type either 1 or 3 and matching type 0 [“1 0 0”, “1 1 0”, “3 0 0”, “3 1 0”]). The usage type must be either 1 or 3 to indicate that the public key is the actual public key for the device. The selector can be either type 0 or 1 as both formats include the public key. The matching type must be 0 so that the public key can be extracted from the data in the resource record. The message 525 can include the device ID, the feed ID, and the digital signature of the IoT device 450 (the message 525 signed by the private key of the IoT device 450). - In 410, the
IoT device 450 sends the signedmessage 452 to an IoT service. For example, theIoT device 450 can communicate with amessaging service 455 of anIoT service 460. For instance, theIoT device 450 can communicate the signedmessage 452 such as the device ID, the feed ID to themessaging service 455. - Once received, in 415, the
IoT service 460 can publish the signed message to adata feed 465. TheIoT service 460 can also receive additional signed messages fromother IoT devices 480 and publish those additional signed messages to additional data feeds 485. The digitally signedmessage 452 from theIoT device 450 and fromother IoT devices 480 can then be published to the feed identified by the feed ID. Themessaging service 455 can include records for the feed for a particular feed ID from theIoT device 450 as well as other feeds associated with other feed IDs fromother IoT devices 480. - Next, in 420, the subscribers (also called consumers or recipients) 470, i.e., applications, other IoT devices, IoT service containers, and other entities, can subscribe to a feed identified by a specific feed ID and receive messages published to that feed. When the
subscriber 470 receives a message, thesubscriber 470 uses the IoT device ID from the message to determine the qname for the IoT device in 425. Thesubscriber 470 performs a DNS query to theDNS 475 to look up the DNS record for the qname that contains the public key for theIoT device 450. At 430, thesubscriber 470 then uses the public key to verify the digital signature on themessage 452. In some instances, themessage 452 may be contained within another message (not shown) with the containing message signed by the IoT device/subscriber which generated the containing message. This allows for a method for data provenance as signatures for all messages signers provides evidence of the routing/handling of a message. - In some aspects, an IoT device has associated with it a DNS service (SRV) record, (defined in RFC 2782) or a text (TXT) record that is used to define a location, i.e., a hostname and port number, of one or more services provided by the IoT device, to discover a gateway and IoT device. In such case, standard DNS queries based on the DNS-SD (defined in RFC 6763) standard can be used to discover those records. However, this mechanism has limitations in the flexibility and retrieval capabilities of the search mechanism. In the case of IOT, it is desirable that more powerful search mechanisms be available for discovering devices that are registered in the DNS. To support this, a method is disclosed here-in for extending the DNS query mechanism to interact with external search engines.
FIGS. 5A and 5B shows an example discovery process that can allow for the extension of DNS to interact transparently with search engines, in accordance with aspects consistent with the present disclosure. - After the process begins, in 505, an application can format and send a DNS query to a DNS resolver. For example, as illustrated in
FIG. 5B , anapplication 550 running on aclient device 552 can format and send aDNS query 570 to aDNS resolver 560, i.e., a stub resolver, a recursive DNS server, or other DNS resolver. TheDNS query 570 can include some characteristics of the query format, the domain name being resolved and/or the record type being requested that flags to theDNS resolver 560 that the request is targeted for resolution via asearch engine 565 rather than be resolved by theDNS resolver 560. TheDNS query 570 can be a new query type or an existing query type with a flag that can be interpreted by theDNS resolver 560 to send the query to asearch engine 565 for processing. In one example, theDNS query 570 can include a first portion that includes search parameters that can be interpreted to indicate a specific external search engine to use. TheDNS query 570 can include a second portion that includes information indicating a type of search to be performed. TheDNS query 570 can include a third portion that includes a domain that is a flag that theDNS query 560 is intended for an external search. For example, the DNS query could be for the IP address that corresponds with a domain name, such as, return IP address for “myquery01-temperature-coordinates75-09-15-36-05-04.iot.search.mydomain.com.” - As illustrated in
FIG. 5B , theDNS resolver 560 and thesearch engine 565 can be part of anIOT service 555. Likewise, theDNS resolver 560 and/or thesearch engine 565 can be part of other services or devices. - In 510, the DNS resolver receives the DNS query and determines if the DNS query is intended for the search engine. The mechanism whereby the
DNS resolver 560 is able to determine that theDNS query 570 is intended for thesearch engine 560 can include the following examples. In one example, a domain name within theDNS query 570 can be formatted according to a particular naming convention where part of the domain name is a flag to indicate the external search engine to use. In another example, a new DNS query type can be defined and supported by theDNS resolver 560, e.g. the stub resolver or the recursive DNS server, to allow for the DNS query in this new format to be searched by asearch engine 565 rather than resolved by aDNS resolver 560. - Then, 515, if the DNS query is intended for the search engine, the DNS resolver can form a search query and send the search query to the search engine. As illustrated in
FIG. 5B , for example, theDNS resolver 560 can then interpret theDNS query 570 to form a query to thesearch engine 565 indicated by theDNS query 570 and can send the query to thesearch engine 565. - In 520, the search engine can process the search query, generate search results, and forward the results to the DNS server and or the requestor. For example, the
search engine 565 can process the query and generates a result of 0 or more IP addresses and/or domain names that serve as the result of the query. Thesearch engine 565 or theDNS resolver 560 can then create a transient IP address that provides an interaction point for retrieving the search results and stores the search results at the interaction point. For example, theDNS resolver 560 could store search results on the local machine and then return the IP address of the local machine to the originatingapplication 550. - The originating process can then use the returned IP address to retrieve the results of the query. For example, if the results are stored locally by the DNS resolver, the returned IP address might be 127.0.0.1 and the originating process could retrieve them using a known port and folder, i.e., 127.0.0.1:9999/myquery-01-temperature-coordinates75-09-15-36-05-04.
- In some aspects, processing for the IoT device can be arranged at one or more edge locations (geographically dispersed) to reduce and simplify data amount and load. For example, by running a container (a collected set of IoT services assessable from a common location on the Internet) on edge locations allow the containers to get closer to production point or IoT devices. The edge processing can allow for a reduction of the data size in the path between the producer and the consumer that provides for a conservation of bandwidth resources. If processing is not required or is not reducing the data size, then arranging processing at edge location allows for the path between the producer and consumer to be minimized so that the consumer gets the data as soon as possible.
- The foregoing description is illustrative, and variations in configuration and implementation can occur to persons skilled in the art. For instance, the various illustrative logics, logical blocks, modules, and circuits described in connection with the embodiments disclosed herein can be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but, in the alternative, the processor can be any conventional processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- In one or more exemplary embodiments, the functions described can be implemented in hardware, software, firmware, or any combination thereof. For a software implementation, the techniques described herein can be implemented with modules (e.g., procedures, functions, subprograms, programs, routines, subroutines, modules, software packages, classes, and so on) that perform the functions described herein. A module can be coupled to another module or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, or the like can be passed, forwarded, or transmitted using any suitable means including memory sharing, message passing, token passing, network transmission, and the like. The software codes can be stored in memory units and executed by processors. The memory unit can be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor via various means as is known in the art.
- For example,
FIG. 6 illustrates an example of a hardware configuration for acomputer device 600, that can be used to perform one or more of the processes of the IoT service described above. WhileFIG. 6 illustrates various components contained in thecomputer device 600,FIG. 6 illustrates one example of a computer device and additional components can be added and existing components can be removed. - The
computer device 600 can be any type of computer devices, such as desktops, laptops, servers, etc., or mobile devices, such as smart telephones, tablet computers, cellular telephones, personal digital assistants, etc. As illustrated inFIG. 6 , thecomputer device 600 can include one ormore processors 602 of varying core configurations and clock frequencies. Thecomputer device 600 can also include one ormore memory devices 604 that serve as a main memory during the operation of thecomputer device 600. For example, during operation, a copy of the software that supports the IoT service can be stored in the one ormore memory devices 604. Thecomputer device 600 can also include one or moreperipheral interfaces 606, such as keyboards, mice, touchpads, computer screens, touchscreens, etc., for enabling human interaction with and manipulation of thecomputer device 600. - The
computer device 600 can also include one ormore network interfaces 608 for communicating via one or more networks, such as Ethernet adapters, wireless transceivers, or serial network components, for communicating over wired or wireless media using protocols. Thecomputer device 600 can also include one ormore storage device 610 of varying physical dimensions and storage capacities, such as flash drives, hard drives, random access memory, etc., for storing data, such as images, files, and program instructions for execution by the one ormore processors 602. - Additionally, the
computer device 600 can include one ormore software programs 612 that enable the functionality of the IoT service described above. The one ormore software programs 612 can include instructions that cause the one ormore processors 602 to perform the processes described herein. Copies of the one ormore software programs 612 can be stored in the one ormore memory devices 604 and/or on in the one ormore storage devices 610. Likewise, the data, for example, DNS records, utilized by one ormore software programs 612 can be stored in the one ormore memory devices 604 and/or on in the one ormore storage devices 610. - In implementations, the
computer device 600 can communicate with one or more IoT devices 614 via anetwork 616. The one or more IoT devices 614 can be any types of devices as described above. Thenetwork 616 can be any type of network, such as a local area network, a wide-area network, a virtual private network, the Internet, an intranet, an extranet, a public switched telephone network, an infrared network, a wireless network, and any combination thereof. Thenetwork 616 can support communications using any of a variety of commercially-available protocols, such as TCP/IP, UDP, OSI, FTP, UPnP, NFS, CIFS, AppleTalk, and the like. Thenetwork 616 can be, for example, a local area network, a wide-area network, a virtual private network, the Internet, an intranet, an extranet, a public switched telephone network, an infrared network, a wireless network, and any combination thereof. - The
computer device 600 can include a variety of data stores and other memory and storage media as discussed above. These can reside in a variety of locations, such as on a storage medium local to (and/or resident in) one or more of the computers or remote from any or all of the computers across the network. In some implementations, information can reside in a storage-area network (“SAN”) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers, servers, or other network devices may be stored locally and/or remotely, as appropriate. - In implementations, the components of the
computer device 600 as described above need not be enclosed within a single enclosure or even located in close proximity to one another. Those skilled in the art will appreciate that the above-described componentry are examples only, as thecomputer device 600 can include any type of hardware componentry, including any necessary accompanying firmware or software, for performing the disclosed implementations. Thecomputer device 600 can also be implemented in part or in whole by electronic circuit components or processors, such as application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs). - If implemented in software, the functions can be stored on or transmitted over a computer-readable medium as one or more instructions or code. Computer-readable media includes both tangible, non-transitory computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media can be any available tangible, non-transitory media that can be accessed by a computer. By way of example, and not limitation, such tangible, non-transitory computer-readable media can comprise RAM, ROM, flash memory, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes CD, laser disc, optical disc, DVD, floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Combinations of the above should also be included within the scope of computer-readable media.
- While the teachings have been described with reference to examples of the implementations thereof, those skilled in the art will be able to make various modifications to the described implementations without departing from the true spirit and scope. The terms and descriptions used herein are set forth by way of illustration only and are not meant as limitations. In particular, although the processes have been described by examples, the stages of the processes can be performed in a different order than illustrated or simultaneously. Furthermore, to the extent that the terms “including”, “includes”, “having”, “has”, “with”, or variants thereof are used in the detailed description, such terms are intended to be inclusive in a manner similar to the term “comprising.” As used herein, the terms “one or more of” and “at least one of” with respect to a listing of items such as, for example, A and B, means A alone, B alone, or A and B. Further, unless specified otherwise, the term “set” should be interpreted as “one or more.” Also, the term “couple” or “couples” is intended to mean either an indirect or direct connection. Thus, if a first device couples to a second device, that connection can be through a direct connection, or through an indirect connection via other devices, components, and connections.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/729,883 US20220255910A1 (en) | 2015-01-09 | 2022-04-26 | Registering, managing, and communicating with iot devices using domain name system processes |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/593,919 US9762556B2 (en) | 2015-01-09 | 2015-01-09 | Registering, managing, and communicating with IOT devices using domain name system processes |
US15/701,408 US11323422B2 (en) | 2015-01-09 | 2017-09-11 | Registering, managing, and communicating with IoT devices using domain name system processes |
US17/729,883 US20220255910A1 (en) | 2015-01-09 | 2022-04-26 | Registering, managing, and communicating with iot devices using domain name system processes |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/701,408 Continuation US11323422B2 (en) | 2015-01-09 | 2017-09-11 | Registering, managing, and communicating with IoT devices using domain name system processes |
Publications (1)
Publication Number | Publication Date |
---|---|
US20220255910A1 true US20220255910A1 (en) | 2022-08-11 |
Family
ID=55237490
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/593,919 Active 2035-04-24 US9762556B2 (en) | 2015-01-09 | 2015-01-09 | Registering, managing, and communicating with IOT devices using domain name system processes |
US15/701,408 Active US11323422B2 (en) | 2015-01-09 | 2017-09-11 | Registering, managing, and communicating with IoT devices using domain name system processes |
US17/729,883 Pending US20220255910A1 (en) | 2015-01-09 | 2022-04-26 | Registering, managing, and communicating with iot devices using domain name system processes |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/593,919 Active 2035-04-24 US9762556B2 (en) | 2015-01-09 | 2015-01-09 | Registering, managing, and communicating with IOT devices using domain name system processes |
US15/701,408 Active US11323422B2 (en) | 2015-01-09 | 2017-09-11 | Registering, managing, and communicating with IoT devices using domain name system processes |
Country Status (2)
Country | Link |
---|---|
US (3) | US9762556B2 (en) |
EP (1) | EP3043535A1 (en) |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9762556B2 (en) * | 2015-01-09 | 2017-09-12 | Verisign, Inc. | Registering, managing, and communicating with IOT devices using domain name system processes |
US9900382B2 (en) * | 2015-02-18 | 2018-02-20 | Anna Mazor | Promotion of internet-of-things (IOT) connectivity |
WO2016134267A1 (en) * | 2015-02-20 | 2016-08-25 | Convida Wireless, Llc | Message bus service directory |
US9762392B2 (en) * | 2015-03-26 | 2017-09-12 | Eurotech S.P.A. | System and method for trusted provisioning and authentication for networked devices in cloud-based IoT/M2M platforms |
JP6419660B2 (en) * | 2015-07-29 | 2018-11-07 | 株式会社日立製作所 | Secret information setting method, secret information setting system, and secret information setting device |
US10547503B2 (en) * | 2015-07-30 | 2020-01-28 | Cisco Technology, Inc. | Network connected device usage profile management |
US9503969B1 (en) * | 2015-08-25 | 2016-11-22 | Afero, Inc. | Apparatus and method for a dynamic scan interval for a wireless device |
US9843929B2 (en) * | 2015-08-21 | 2017-12-12 | Afero, Inc. | Apparatus and method for sharing WiFi security data in an internet of things (IoT) system |
US10057261B2 (en) * | 2015-11-09 | 2018-08-21 | Fotonation Limited | Method for configuring access for a limited user interface (UI) device |
US10033706B2 (en) * | 2015-12-04 | 2018-07-24 | Samsara Networks Inc. | Secure offline data offload in a sensor network |
US10805344B2 (en) | 2015-12-14 | 2020-10-13 | Afero, Inc. | Apparatus and method for obscuring wireless communication patterns |
US10171462B2 (en) * | 2015-12-14 | 2019-01-01 | Afero, Inc. | System and method for secure internet of things (IOT) device provisioning |
US10091242B2 (en) * | 2015-12-14 | 2018-10-02 | Afero, Inc. | System and method for establishing a secondary communication channel to control an internet of things (IOT) device |
US10116573B2 (en) | 2015-12-14 | 2018-10-30 | Afero, Inc. | System and method for managing internet of things (IoT) devices and traffic using attribute classes |
US10447784B2 (en) | 2015-12-14 | 2019-10-15 | Afero, Inc. | Apparatus and method for modifying packet interval timing to identify a data transfer condition |
US10455452B2 (en) | 2015-12-14 | 2019-10-22 | Afero, Inc. | System and method for flow control in an internet of things (IoT) system |
FR3053548B1 (en) * | 2016-06-30 | 2019-07-19 | Ingenico Group | METHOD OF AUTHENTICATING PAYMENT DATA, DEVICES AND PROGRAMS THEREFOR. |
US11256828B1 (en) * | 2016-07-05 | 2022-02-22 | Wells Fargo Bank, N.A. | Method and apparatus for controlling IoT devices by agent device |
US10887397B2 (en) | 2016-07-28 | 2021-01-05 | Citrix Systems, Inc. | System and method for controlling internet of things devices using namespaces |
US10834586B2 (en) * | 2016-07-29 | 2020-11-10 | Amzetta Technologies, Llc | System and method for controlling heterogeneous internet of things (IoT) devices using single application |
TWI624163B (en) * | 2016-08-03 | 2018-05-11 | Chunghwa Telecom Co Ltd | System for controlling IPv6 networking of IoT devices |
US10284684B2 (en) * | 2016-09-14 | 2019-05-07 | Microsoft Technology Licensing, Llc | IoT hardware certification |
US10063518B2 (en) * | 2016-09-27 | 2018-08-28 | International Business Machines Corporation | Reducing data connections for transmitting secured data |
US9860677B1 (en) * | 2016-09-30 | 2018-01-02 | Intel Corporation | Internet-of-things gateway coordination |
US10425242B2 (en) | 2016-10-14 | 2019-09-24 | Microsoft Technology Licensing, Llc | IoT provisioning service |
US10798216B2 (en) * | 2016-10-15 | 2020-10-06 | Microsoft Technology Licensing, Llc | Automatic provisioning of IoT devices |
CN108024248B (en) * | 2016-10-31 | 2022-11-08 | 中兴通讯股份有限公司 | Authentication method and device for Internet of things platform |
CN108156126B (en) * | 2016-12-02 | 2020-12-08 | 阿里巴巴集团控股有限公司 | Burning verification method and device and identity authentication method and device for Internet of things equipment |
US11323427B2 (en) * | 2016-12-02 | 2022-05-03 | Carrier Corporation | Mixed-mode cloud on-premise secure communication |
WO2018145056A1 (en) * | 2017-02-06 | 2018-08-09 | Pcms Holdings, Inc. | Securing communication of devices in the internet of things |
US10356124B2 (en) | 2017-03-01 | 2019-07-16 | Cisco Technology, Inc. | Dynamic device isolation in a network |
US10244406B2 (en) | 2017-03-07 | 2019-03-26 | Lonza Ltd. | Wireless sensor information monitoring |
JP6749281B2 (en) * | 2017-03-23 | 2020-09-02 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | IoT device, signaling server, message bus management server, connection forming method, and program |
US10687212B2 (en) | 2017-04-07 | 2020-06-16 | At&T Mobility Ii Llc | Mobile network core component for managing security keys |
WO2018188882A1 (en) * | 2017-04-10 | 2018-10-18 | Arcelik Anonim Sirketi | A household appliance system |
US10693680B2 (en) * | 2017-05-17 | 2020-06-23 | Hand Held Products, Inc. | Methods and apparatuses for enabling secure communication between mobile devices and a network |
US10447822B2 (en) | 2017-06-19 | 2019-10-15 | Silicon Laboratories, Inc. | DotDot gateway |
US10558812B2 (en) | 2017-06-21 | 2020-02-11 | Microsoft Technology Licensing, Llc | Mutual authentication with integrity attestation |
US10440006B2 (en) | 2017-06-21 | 2019-10-08 | Microsoft Technology Licensing, Llc | Device with embedded certificate authority |
US10938560B2 (en) | 2017-06-21 | 2021-03-02 | Microsoft Technology Licensing, Llc | Authorization key escrow |
US11032127B2 (en) * | 2017-06-26 | 2021-06-08 | Verisign, Inc. | Resilient domain name service (DNS) resolution when an authoritative name server is unavailable |
US10356092B2 (en) * | 2017-08-23 | 2019-07-16 | Redpine Signals, Inc. | Uncloneable registration of an internet of things (IoT) device in a network |
US11374760B2 (en) | 2017-09-13 | 2022-06-28 | Microsoft Technology Licensing, Llc | Cyber physical key |
US10819794B2 (en) | 2017-09-26 | 2020-10-27 | Verizon Patent And Licensing Inc. | Distribution hub for internet-of-things data |
US10542585B2 (en) | 2017-09-27 | 2020-01-21 | Silicon Laboratories, Inc. | Gateway using resource directory |
CN108073829B (en) * | 2017-12-29 | 2024-10-15 | 巍乾全球技术有限责任公司 | Method, medium, internet of things device, blockchain platform and internet of things system for recording transportation data of objects |
US11196705B2 (en) * | 2018-01-05 | 2021-12-07 | Nextroll, Inc. | Identification services for internet-enabled devices |
TWI656446B (en) * | 2018-02-08 | 2019-04-11 | 瑞軒科技股份有限公司 | Network device management device, communication system and communication method |
JP6973152B2 (en) * | 2018-02-14 | 2021-11-24 | セイコーエプソン株式会社 | Electronics, communication systems and programs |
US11153309B2 (en) * | 2018-03-13 | 2021-10-19 | At&T Mobility Ii Llc | Multifactor authentication for internet-of-things devices |
CN110392014B (en) | 2018-04-17 | 2022-08-05 | 阿里巴巴集团控股有限公司 | Communication method and device between Internet of things devices |
US11496356B2 (en) * | 2018-08-13 | 2022-11-08 | Microsoft Technology Licensing, Llc | Device lifecycle management via a central identity service |
US11062017B2 (en) * | 2018-08-24 | 2021-07-13 | Microsoft Technology Licensing, Llc | Scoping mechanism for globally unique device identification |
US11363104B2 (en) * | 2018-12-18 | 2022-06-14 | Hewlett Packard Enterprise Development Lp | Subscription based directory services for IOT devices |
US10735370B1 (en) * | 2019-02-28 | 2020-08-04 | International Business Machines Corporation | Name based internet of things (IoT) data discovery |
CN110121175A (en) * | 2019-04-12 | 2019-08-13 | 国家计算机网络与信息安全管理中心 | It is a kind of for moving the data monitoring method and system of Intelligent terminal for Internet of things |
US11916912B2 (en) | 2019-08-21 | 2024-02-27 | Aeris Communications, Inc. | Method and system for providing secure access to IoT devices using access control |
US20210103978A1 (en) * | 2019-10-07 | 2021-04-08 | Instant! Communications LLC | Transactive communication network |
US11297147B2 (en) | 2019-11-22 | 2022-04-05 | Amazon Technologies, Inc. | Managed data export to a remote network from edge devices |
WO2021150799A1 (en) | 2020-01-22 | 2021-07-29 | Valimail Inc. | Interaction control list determination and device adjacency and relative topography |
US12069095B2 (en) | 2020-01-22 | 2024-08-20 | Valimail Inc. | Automated authentication and authorization in a communication system |
US20210243038A1 (en) * | 2020-02-04 | 2021-08-05 | Valimail Inc. | Spatial broadcasting device authentication |
EP3901807B1 (en) * | 2020-04-20 | 2022-07-27 | Siemens Aktiengesellschaft | Creation of a domain name system container image for creating a domain name system container instance |
US11558390B2 (en) | 2020-07-01 | 2023-01-17 | International Business Machines Corporation | System to control access to web resources based on an internet of things authorization mechanism |
CN111818146A (en) * | 2020-07-01 | 2020-10-23 | 深圳市中深农创科技有限公司 | SOA cloud computing intelligent agricultural data processing method and system |
US11570793B2 (en) | 2020-07-31 | 2023-01-31 | T-Mobile Usa, Inc. | Connectivity scheduler for NB-IoT devices |
US11664977B2 (en) | 2020-07-31 | 2023-05-30 | T-Mobile Usa, Inc. | Encryption key management for NB-IoT devices |
US11451397B2 (en) | 2020-07-31 | 2022-09-20 | T-Mobile Usa, Inc. | Configurable UICC integrated in NB-IoT device |
CN114079645B (en) * | 2020-08-13 | 2022-12-30 | 花瓣云科技有限公司 | Method and device for registering service |
US12081979B2 (en) * | 2020-11-05 | 2024-09-03 | Visa International Service Association | One-time wireless authentication of an Internet-of-Things device |
US11849043B2 (en) | 2020-11-13 | 2023-12-19 | Sony Group Corporation | Zero-knowledge authentication based on device information |
US11677630B2 (en) * | 2021-04-30 | 2023-06-13 | Cisco Technology, Inc. | Secure device management |
CN113992735B (en) * | 2021-11-23 | 2024-05-24 | 康佳集团股份有限公司 | MQTT connection system and connection method thereof, server and storage medium |
CN114826740B (en) * | 2022-04-27 | 2023-07-07 | 南京邮电大学 | Information interaction system of Internet of things user/application and object |
CN118779133A (en) * | 2022-05-07 | 2024-10-15 | 支付宝(杭州)信息技术有限公司 | Event processing method and device applied to internet of things (IoT) device |
CN116436705B (en) * | 2023-06-13 | 2023-08-11 | 武汉绿色网络信息服务有限责任公司 | Network security detection method and device, electronic equipment and storage medium |
CN117082152B (en) * | 2023-09-27 | 2024-01-12 | 新华三技术有限公司 | Service processing method, system and device |
CN117955649B (en) * | 2024-03-26 | 2024-06-18 | 杭州海康威视数字技术股份有限公司 | Safe and efficient data transmission method and system for Internet of things and electronic equipment |
Citations (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233454A1 (en) * | 2002-06-03 | 2003-12-18 | Alkhatib Hasan S. | Creating a public identity for an entity on a network |
US20060233322A1 (en) * | 2005-03-24 | 2006-10-19 | Mark Allman | Methods and apparatus for switching between data streams |
WO2008066249A1 (en) * | 2006-12-01 | 2008-06-05 | Netpia.Com, Inc. | System and method of processing keyword and storage medium of storing program executing the same |
US7600166B1 (en) * | 2005-06-28 | 2009-10-06 | David Dunn | Method and system for providing trusted access to a JTAG scan interface in a microprocessor |
CN1951081B (en) * | 2004-06-25 | 2010-06-16 | 苹果公司 | Method and apparatus for looking up configuration information for a network node |
US20100318468A1 (en) * | 2009-06-16 | 2010-12-16 | Carr Robert O | Tamper-Resistant Secure Methods, Systems and Apparatuses for Credit and Debit Transactions |
US20110119743A1 (en) * | 2009-11-17 | 2011-05-19 | General Instrument Corporation | Communication of content to event attendees |
US20110265016A1 (en) * | 2010-04-27 | 2011-10-27 | The Go Daddy Group, Inc. | Embedding Variable Fields in Individual Email Messages Sent via a Web-Based Graphical User Interface |
US20120155646A1 (en) * | 2010-12-21 | 2012-06-21 | Microsoft Corporation | Supporting dns security in a multi-master environment |
US20120173685A1 (en) * | 2010-12-30 | 2012-07-05 | Verisign, Inc. | Systems and Methods for Domain Name Exchange |
US20120185924A1 (en) * | 2011-01-19 | 2012-07-19 | Qualcomm Incorporated | Record creation for resolution of application identifier to connectivity identifier |
US20120224516A1 (en) * | 2009-10-12 | 2012-09-06 | Saso Stojanovski | Mobile Terminated Communication Method and Related Devices |
US20120254386A1 (en) * | 2011-04-01 | 2012-10-04 | Verisign, Inc. | Transfer of DNSSEC Domains |
US20120284505A1 (en) * | 2011-05-02 | 2012-11-08 | Verisign, Inc. | Dnssec signing server |
US20120304004A1 (en) * | 2011-05-27 | 2012-11-29 | Verisign, Inc. | Recovery of a failed registry |
CN102957681A (en) * | 2011-08-30 | 2013-03-06 | 海尔集团公司 | Embedded browser, intelligent household appliance and intelligent system of internet of things |
US20130080341A1 (en) * | 2011-09-26 | 2013-03-28 | Srikanth Veeramachaneni | Protect intellectual property (ip) rights across namespaces |
CN101883042B (en) * | 2009-05-05 | 2013-04-24 | 华为技术有限公司 | Mapping method, system and domain name server based on hierarchical routing framework |
US20130262860A1 (en) * | 2012-04-02 | 2013-10-03 | Richard Lamb | Automated secure DNSSEC provisioning system |
US20140006930A1 (en) * | 2012-06-15 | 2014-01-02 | Investinghouse, Inc. | System and method for internet publishing |
US20140012967A1 (en) * | 2012-07-05 | 2014-01-09 | Gopal Agarwal | System and method for supporting multicast domain name system device and service classification |
US20140040975A1 (en) * | 2009-01-28 | 2014-02-06 | Headwater Partners I Llc | Virtualized Policy & Charging System |
US20140244768A1 (en) * | 2013-02-25 | 2014-08-28 | Qualcomm Incorporated | Automatic iot device social network expansion |
US20140244998A1 (en) * | 2010-11-09 | 2014-08-28 | Secure64 Software Corporation | Secure publishing of public-key certificates |
US20140280849A1 (en) * | 2009-08-18 | 2014-09-18 | Verisign, Inc. | Systems and methods for multi-tenant generic top level domain deployment |
US20140287687A1 (en) * | 2013-03-20 | 2014-09-25 | Elbrys Networks, Inc. | Method and system for managing bluetooth bonding for pre-pairing and impersonation |
US20140304785A1 (en) * | 2012-01-26 | 2014-10-09 | National Institute Of Information And Communications Technology | Method for securing name registries, network access and data communication in id/locator split-base networks |
US20140359131A1 (en) * | 2013-05-28 | 2014-12-04 | Convida Wireless, Llc | Load balancing in the internet of things |
US20140376378A1 (en) * | 2012-06-13 | 2014-12-25 | All Purpose Networks LLC | Methods and systems of an all purpose broadband network |
CN104253793A (en) * | 2013-06-27 | 2014-12-31 | 政务和公益机构域名注册管理中心 | Method for updating key-signing keys and zone-signing keys in domain name system security extension |
US20150012751A1 (en) * | 2013-07-03 | 2015-01-08 | Sailpoint Technologies, Inc. | System and method for securing authentication information in a networked environment |
US20150081440A1 (en) * | 2013-09-19 | 2015-03-19 | Jeffrey Blemaster | Methods and systems for generating domain name and directory recommendations |
US20150121070A1 (en) * | 2013-10-28 | 2015-04-30 | Disney Enterprises, Inc. | Firmware security |
US20150207857A1 (en) * | 2014-01-21 | 2015-07-23 | Time Warner Cable Enterprises Llc | Publish-subscribe messaging in a content network |
US9154571B2 (en) * | 2007-12-19 | 2015-10-06 | Telefonaktiebolaget L M Ericsson (Publ) | Publish/subscribe networks |
US20150312331A1 (en) * | 2014-04-25 | 2015-10-29 | Shinkuro, Inc. | System and Method for Group Collaboration Using a Distributed Network File Repository |
US20150347432A1 (en) * | 2014-06-03 | 2015-12-03 | Go Daddy Operating Company, LLC | System and methods for auto-aligning website elements |
FR3021828A1 (en) * | 2014-05-28 | 2015-12-04 | Orange | TECHNIQUE FOR OBTAINING A ROUTING POLICY OF REQUESTS ISSUED BY A SOFTWARE MODULE EXECUTING A CLIENT DEVICE |
US9258303B1 (en) * | 2014-08-08 | 2016-02-09 | Cellcrypt Group Limited | Method of providing real-time secure communication between end points in a network |
US20160112284A1 (en) * | 2014-10-21 | 2016-04-21 | RiskIQ, Inc. | System and method of identifying internet-facing assets |
WO2016093845A1 (en) * | 2014-12-11 | 2016-06-16 | Nokia Technologies Oy | Extending the range of mesh networks |
GB2533348A (en) * | 2014-12-17 | 2016-06-22 | Arm Ip Ltd | Management of relationships between a device and a service provider |
US20160205106A1 (en) * | 2015-01-12 | 2016-07-14 | Verisign, Inc. | Systems and methods for providing iot services |
US20160203234A1 (en) * | 2015-01-12 | 2016-07-14 | Verisign, Inc. | Systems and methods for ontological searching in an iot environment |
US20160205097A1 (en) * | 2015-01-12 | 2016-07-14 | Verisign, Inc. | Systems and methods for establishing ownership and delegation ownership of iot devices using domain name system services |
US20170161743A1 (en) * | 2014-12-16 | 2017-06-08 | Empire Technology Development Llc | Use of encryption to provide secure credit card payments |
US9762556B2 (en) * | 2015-01-09 | 2017-09-12 | Verisign, Inc. | Registering, managing, and communicating with IOT devices using domain name system processes |
US9860235B2 (en) * | 2013-10-17 | 2018-01-02 | Arm Ip Limited | Method of establishing a trusted identity for an agent device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8144611B2 (en) * | 2009-02-10 | 2012-03-27 | Microsoft Corporation | Network coordinate systems using IP information |
US9411612B2 (en) * | 2013-11-12 | 2016-08-09 | Software Ag | Techniques for creating and/or maintaining scalable heterogeneous read-only federations of registries |
CN103929435B (en) | 2014-05-05 | 2017-04-12 | 中国科学院计算机网络信息中心 | Credibility verification method based on DNSSEC and DANE protocols |
-
2015
- 2015-01-09 US US14/593,919 patent/US9762556B2/en active Active
-
2016
- 2016-01-08 EP EP16150640.7A patent/EP3043535A1/en not_active Withdrawn
-
2017
- 2017-09-11 US US15/701,408 patent/US11323422B2/en active Active
-
2022
- 2022-04-26 US US17/729,883 patent/US20220255910A1/en active Pending
Patent Citations (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233454A1 (en) * | 2002-06-03 | 2003-12-18 | Alkhatib Hasan S. | Creating a public identity for an entity on a network |
CN1951081B (en) * | 2004-06-25 | 2010-06-16 | 苹果公司 | Method and apparatus for looking up configuration information for a network node |
US20060233322A1 (en) * | 2005-03-24 | 2006-10-19 | Mark Allman | Methods and apparatus for switching between data streams |
US7600166B1 (en) * | 2005-06-28 | 2009-10-06 | David Dunn | Method and system for providing trusted access to a JTAG scan interface in a microprocessor |
WO2008066249A1 (en) * | 2006-12-01 | 2008-06-05 | Netpia.Com, Inc. | System and method of processing keyword and storage medium of storing program executing the same |
US9154571B2 (en) * | 2007-12-19 | 2015-10-06 | Telefonaktiebolaget L M Ericsson (Publ) | Publish/subscribe networks |
US20140040975A1 (en) * | 2009-01-28 | 2014-02-06 | Headwater Partners I Llc | Virtualized Policy & Charging System |
CN101883042B (en) * | 2009-05-05 | 2013-04-24 | 华为技术有限公司 | Mapping method, system and domain name server based on hierarchical routing framework |
US20100318468A1 (en) * | 2009-06-16 | 2010-12-16 | Carr Robert O | Tamper-Resistant Secure Methods, Systems and Apparatuses for Credit and Debit Transactions |
US20140280849A1 (en) * | 2009-08-18 | 2014-09-18 | Verisign, Inc. | Systems and methods for multi-tenant generic top level domain deployment |
US20120224516A1 (en) * | 2009-10-12 | 2012-09-06 | Saso Stojanovski | Mobile Terminated Communication Method and Related Devices |
US20110119743A1 (en) * | 2009-11-17 | 2011-05-19 | General Instrument Corporation | Communication of content to event attendees |
US20110265016A1 (en) * | 2010-04-27 | 2011-10-27 | The Go Daddy Group, Inc. | Embedding Variable Fields in Individual Email Messages Sent via a Web-Based Graphical User Interface |
US20140244998A1 (en) * | 2010-11-09 | 2014-08-28 | Secure64 Software Corporation | Secure publishing of public-key certificates |
US20120155646A1 (en) * | 2010-12-21 | 2012-06-21 | Microsoft Corporation | Supporting dns security in a multi-master environment |
US20120173685A1 (en) * | 2010-12-30 | 2012-07-05 | Verisign, Inc. | Systems and Methods for Domain Name Exchange |
US20120185924A1 (en) * | 2011-01-19 | 2012-07-19 | Qualcomm Incorporated | Record creation for resolution of application identifier to connectivity identifier |
US20120254386A1 (en) * | 2011-04-01 | 2012-10-04 | Verisign, Inc. | Transfer of DNSSEC Domains |
US20120284505A1 (en) * | 2011-05-02 | 2012-11-08 | Verisign, Inc. | Dnssec signing server |
US20120304004A1 (en) * | 2011-05-27 | 2012-11-29 | Verisign, Inc. | Recovery of a failed registry |
CN102957681A (en) * | 2011-08-30 | 2013-03-06 | 海尔集团公司 | Embedded browser, intelligent household appliance and intelligent system of internet of things |
US20130080341A1 (en) * | 2011-09-26 | 2013-03-28 | Srikanth Veeramachaneni | Protect intellectual property (ip) rights across namespaces |
US20140304785A1 (en) * | 2012-01-26 | 2014-10-09 | National Institute Of Information And Communications Technology | Method for securing name registries, network access and data communication in id/locator split-base networks |
US20130262860A1 (en) * | 2012-04-02 | 2013-10-03 | Richard Lamb | Automated secure DNSSEC provisioning system |
US20140376378A1 (en) * | 2012-06-13 | 2014-12-25 | All Purpose Networks LLC | Methods and systems of an all purpose broadband network |
US20140006930A1 (en) * | 2012-06-15 | 2014-01-02 | Investinghouse, Inc. | System and method for internet publishing |
US20140012967A1 (en) * | 2012-07-05 | 2014-01-09 | Gopal Agarwal | System and method for supporting multicast domain name system device and service classification |
US20140244768A1 (en) * | 2013-02-25 | 2014-08-28 | Qualcomm Incorporated | Automatic iot device social network expansion |
US20140287687A1 (en) * | 2013-03-20 | 2014-09-25 | Elbrys Networks, Inc. | Method and system for managing bluetooth bonding for pre-pairing and impersonation |
US20140359131A1 (en) * | 2013-05-28 | 2014-12-04 | Convida Wireless, Llc | Load balancing in the internet of things |
CN104253793A (en) * | 2013-06-27 | 2014-12-31 | 政务和公益机构域名注册管理中心 | Method for updating key-signing keys and zone-signing keys in domain name system security extension |
US20150012751A1 (en) * | 2013-07-03 | 2015-01-08 | Sailpoint Technologies, Inc. | System and method for securing authentication information in a networked environment |
US20150081440A1 (en) * | 2013-09-19 | 2015-03-19 | Jeffrey Blemaster | Methods and systems for generating domain name and directory recommendations |
US9860235B2 (en) * | 2013-10-17 | 2018-01-02 | Arm Ip Limited | Method of establishing a trusted identity for an agent device |
US20150121070A1 (en) * | 2013-10-28 | 2015-04-30 | Disney Enterprises, Inc. | Firmware security |
US20150207857A1 (en) * | 2014-01-21 | 2015-07-23 | Time Warner Cable Enterprises Llc | Publish-subscribe messaging in a content network |
US20150312331A1 (en) * | 2014-04-25 | 2015-10-29 | Shinkuro, Inc. | System and Method for Group Collaboration Using a Distributed Network File Repository |
FR3021828A1 (en) * | 2014-05-28 | 2015-12-04 | Orange | TECHNIQUE FOR OBTAINING A ROUTING POLICY OF REQUESTS ISSUED BY A SOFTWARE MODULE EXECUTING A CLIENT DEVICE |
US20150347432A1 (en) * | 2014-06-03 | 2015-12-03 | Go Daddy Operating Company, LLC | System and methods for auto-aligning website elements |
US9258303B1 (en) * | 2014-08-08 | 2016-02-09 | Cellcrypt Group Limited | Method of providing real-time secure communication between end points in a network |
US20160112284A1 (en) * | 2014-10-21 | 2016-04-21 | RiskIQ, Inc. | System and method of identifying internet-facing assets |
WO2016093845A1 (en) * | 2014-12-11 | 2016-06-16 | Nokia Technologies Oy | Extending the range of mesh networks |
US20170161743A1 (en) * | 2014-12-16 | 2017-06-08 | Empire Technology Development Llc | Use of encryption to provide secure credit card payments |
GB2533348A (en) * | 2014-12-17 | 2016-06-22 | Arm Ip Ltd | Management of relationships between a device and a service provider |
US9762556B2 (en) * | 2015-01-09 | 2017-09-12 | Verisign, Inc. | Registering, managing, and communicating with IOT devices using domain name system processes |
US20170374042A1 (en) * | 2015-01-09 | 2017-12-28 | Verisign, Inc. | Registering, managing, and communicating with iot devices using domain name system processes |
US11323422B2 (en) * | 2015-01-09 | 2022-05-03 | Verisign, Inc. | Registering, managing, and communicating with IoT devices using domain name system processes |
US20160205097A1 (en) * | 2015-01-12 | 2016-07-14 | Verisign, Inc. | Systems and methods for establishing ownership and delegation ownership of iot devices using domain name system services |
US20160203234A1 (en) * | 2015-01-12 | 2016-07-14 | Verisign, Inc. | Systems and methods for ontological searching in an iot environment |
US20160205106A1 (en) * | 2015-01-12 | 2016-07-14 | Verisign, Inc. | Systems and methods for providing iot services |
Also Published As
Publication number | Publication date |
---|---|
US20170374042A1 (en) | 2017-12-28 |
US20160205078A1 (en) | 2016-07-14 |
US11323422B2 (en) | 2022-05-03 |
US9762556B2 (en) | 2017-09-12 |
EP3043535A1 (en) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220255910A1 (en) | Registering, managing, and communicating with iot devices using domain name system processes | |
US9935950B2 (en) | Systems and methods for establishing ownership and delegation ownership of IOT devices using domain name system services | |
EP3043585A1 (en) | Systems and methods for providing iot services | |
Afanasyev et al. | NDNS: A DNS-like name service for NDN | |
US10282484B2 (en) | Systems and methods for ontological searching in an IOT environment | |
JP6514365B2 (en) | Central verification of email senders with EHLO name and IP address targeting | |
US9172619B1 (en) | Maintaining IP tables | |
AU2012202493B2 (en) | DNSSEC signing server | |
US11824829B2 (en) | Methods and systems for domain name data networking | |
US9497063B2 (en) | Maintaining IP tables | |
JP2011530867A (en) | Secure resource name resolution using cache | |
KR20050010717A (en) | Secure hierarchical namespaces in peer-to-peer networks | |
US20220109653A1 (en) | Techniques for templated domain management | |
US11218326B1 (en) | System and method for generating current live and test versions of DNS data for rollover | |
US11297033B2 (en) | System and method for generating current live and test versions of DNS data for HSM changes | |
US11405353B2 (en) | System and method for generating concurrently live and test versions of DNS data | |
US11233767B1 (en) | System and method for publishing DNS records of a domain including either signed or unsigned records | |
US11695773B2 (en) | Distributing dynamic access control lists for managing interactions with a cloud datacenter | |
Matsumoto et al. | Designing a global authentication infrastructure | |
Bormann et al. | CoRE Z. Shelby Internet-Draft ARM Intended status: Standards Track M. Koster Expires: January 3, 2019 SmartThings | |
JP2012199607A (en) | Dnssec proxy device | |
Ali et al. | DNS Using BIND and DHCP | |
KR20120124044A (en) | DNSSEC signing server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: VERISIGN, INC., VIRGINIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JAMES, STEPHEN DANIEL;SCHONFELD, DANIEL;FREGLY, ANDREW;AND OTHERS;SIGNING DATES FROM 20150205 TO 20150306;REEL/FRAME:059735/0473 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |