5. Evaluation
Previous work has already demonstrated techniques to
reduce the protocol header overhead during data transmission
[14] and has proven the feasibility of performing software
encryption and hashing on the sensor node [9], also
called mote. Indeed, even for DTLS, first proposals for a
compressed header format have been made by Raza et al.
recently [16]. Gupta et al. showed the feasibility of a server
authenticated SSL handshake [10]. Therefore, the component
of our security architecture that is currently least
understood in the context of the IoT is the fully authenticated
DTLS handshake, which includes both client and server
authentication.
We have implemented a DTLS client that performs the
DTLS handshake with an OpenSSL 1.0.0d server. The client
is targeted at the OPAL sensor node [21] which features an
Atmel SAM3U micro-controller and the Atmel
AT97SC3203S TPM. It has 48 kB RAM and the micro-controller
is clocked at 48 MHz in our implementation. In
the following sections we will evaluate our implementation
with regards to its performance during the handshake
and data transmission, as well as its energy and memory
consumption. Unless otherwise stated, the DTLS cipher
suite performed was TLS-RSA-with-AES-128-CBC-SHA.
AES-128 has been shown to be one of the fastest block ciphers
on motes [22] and offers sufficient security. Furthermore,
the cipher suite we chose is the required block
cipher suite for DTLS from version 1.2 onwards. Other common
cipher suites are either based on RC4, which is a
stream cipher and thus not permitted by DTLS, or 3DES
which is very slow and thus causes a large cryptographic
overhead.
5.1. Data transfer latency
In this section we will consider latency as a measure of
the system’s cryptographic performance. Fig. 5 shows the
round-trip time (RTT) for different sizes of plaintext data
through a single hop network and a multi hop network
with four hops. We measured the timing for the DTLS packets
on the mote. Readings for pure plaintext data without
any additional headers were obtained by issuing the ping6
command on the subscriber.