A software developer of IoT components
supports an ICS with stores identity certificates of
all sold code and code updates. The certificates do
not contain any public keys, just signed and time
stamped hashes of provided code. The certificate can
have a status signed by the developer, e.g.
“depreciated code”. The status should be time
stamped too.
If a given code, when running, is a
communicating entity in the IoT system, then the
entity has to be authenticated. If the entity runs on a
device having a cryptoprocessor, then the
cryptoprocessor can sign an authentication message
to be sent, and even to cipher messages if needed.
An IoT device or gateway does not have to be
equipped in a cryptoprocessor, when it is placed in a
physically secure environment. In that case the
ciphering keys are generated on the device during
setup time together with the corresponding identity
certificate. Then the certificate is stored in
corresponding infield and maintenance ICSes.
Similarly, IoT services, running somewhere in the
Internet or in an intranet, have keys and certificates
generated during setup time.
Depending on the purpose of the IoT system,
access to the infield and maintenance ICSes can be
opened to any Internet query, or can be protected.
The first case suits those IoT systems that offer data
for public usage directly from IoT devices,
guaranteeing their source. In the second case, the
IoT system is a private one, and is accessible via the
Internet using VPNs or it offers only pre-processed
data via network services.
Many IoT systems are closed solutions for
private usages. However, there are some publicly
accessible IoT devices or services to find in the
Internet. There are concepts, and may be already
deployments, of federated systems (where services
of one owner can access devices belonging to
another one). There are also concepts of mobile
devices that can move from one gateway to another.
The more open is a system the more important is the
identity checking. Moreover, trust information about
IoT devices and services becomes desired. The
ICSes help to quickly find and check identity of
entities in question. Moreover, a relevant party may
sign trust label of a selected device or service adding
that signature to the identity certificate in its ICS. A
certification body that approves legality of medical
devices or services could be such a party. The
certification body can maintain its own ICS to
enable easy access to certified by the body identities
of approved devices/services.
The described ICSes should be able to
communicate with each other, to download required
certificates or to update their status. The ICSes
belong to different parties and can run on various
computer platforms. To facilitate the communication
a common protocol has to be chosen and standard
data structures for certificate representation has to be
applied.
Key servers widely used today could be adapted
to the schema described above. A common
infrastructure for carrying signed identities of
components would be efficient, even if some of
them do not have attached public keys (i.e. code
identities). LDAP/LDAPS could be applied for
message exchange between ISCes. OpenPGP can be
used and may be extended as a data structure
standard for IoT identity certificates. An attempt of
such extension has been already proposed in an
Internet-draft (Atkins 2015). This draft defines a set
of notations that may be used when signing an IoT
device certificate. However the draft does not cover
code identities, neither above-mentioned attributes
of IoT devices or code status.
5 CONCLUSIONS
The techniques for digital certification available
nowadays can be used in IoT systems to improve
security of gathered data and to provide better trust
for the systems. However they do not allow
building such infrastructure of cooperating ICS as
described in the previous chapter. The proposed
infrastructure could help in more efficient certificate
distribution between the parties concerned. It is
expected that IoT system will be very numerous.
Therefore, we could deploy such ISC infrastructures
along with them without scalability problems.
Moreover, the infrastructure provides two important
features: identification of responsible parties thanks
to their certificates, and cryptographically secured
states of IoT components (which can change over
time). The features could strengthen security of IoT
systems, and ease their software design.
We are going to check out the presented above
concept building an experimental network of
cooperating ICSes. The network will serve a set of
sensors attached to a gateway. Stored certificates
will be grouped in domains related to responsibilities
of ICSes’ owners. Access rights for reading and
updating of the domains will be defined in policy
descriptors. Automatic certificate synchronization
could be performed according to the policies.
Moreover, we are going to propose a structure of
Key-Server Adaptation to IoT Systems
159