<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc rfcedstyle="yes"?>

<rfc number="7397" submissionType="independent" category="info" ipr="trust200902">

  <front>
    <title abbrev="Smart Object Security Workshop">
    Report from the Smart Object Security Workshop</title>
    <author fullname="Johannes Gilger" initials="J.G."
            surname="Gilger">
      <address>
      <postal>
        <street>Mies-van-der-Rohe-Str. 15</street>
        <city>Aachen</city>
        <region></region>
        <code>52074</code>
        <country>Germany</country>
      </postal>
      <phone>+49 (0)241 80 20 781</phone>
      <email>Gilger@ITSec.RWTH-Aachen.de</email>
      </address>
    </author>

   <author initials="H.T." surname="Tschofenig" fullname="Hannes Tschofenig ">
      <address>
        <postal>
          <street></street>
          <city>Hall in Tirol</city>
          <code>6060</code>
          <country>Austria</country>
        </postal>
        <email>Hannes.tschofenig@gmx.net </email>
        <uri>http://www.tschofenig.priv.at</uri>
      </address>
    </author>
    <date  month="December" year="2014" />

    <keyword>Smart Objects</keyword> 
    <keyword>Internet of Things</keyword> 
    <keyword>Workshop</keyword> 
    <keyword>Security</keyword>
    
    <abstract>
      <t> This document provides a summary of a workshop on 'Smart Object
        Security' that took place in Paris on March 23, 2012. The main goal of
        the workshop was to allow participants to share their thoughts about the
        ability to utilize existing and widely deployed security mechanisms for
        smart objects.</t>

      <t>This report summarizes the discussions and lists the conclusions and
        recommendations to the Internet Engineering Task Force (IETF) community. </t>
    </abstract>
  </front>

  <middle>


    <section title="Introduction">
     <t>In early 2011, the Internet Architecture Board (IAB) solicited position
        statements for a workshop on 'Interconnecting Smart
        Objects with the Internet', aiming to get feedback from the wider
        Internet community on their experience with deploying IETF protocols in
        constrained environments. The workshop took place in Prague on
        March 25, 2011. During the workshop, a range of topics were discussed, including
        architecture, routing, energy efficiency, and security. RFC 6574 <xref target="RFC6574"/>
        summarizes the discussion and suggests several next steps.</t>

      <t>During the months following the workshop, new IETF
        initiatives were started, such as the Light-Weight 
	Implementation Guidance (LWIG) working group, and
        hackathons were organized at IETF 80 and IETF 81 to better
        facilitate the exchange of ideas.
</t>


	<t>Contributions regarding security from the IETF Constrained RESTful 
        Environments (CoRE) working group and the IETF Transport Layer Security (TLS) 
	working group made it clear that further discussions on
        security were necessary and that those would have to incorporate implementation and
        deployment experience as well as a shared understanding of how various building
        blocks fit into a larger architecture.</t>


      <t>The workshop on 'Smart Object Security' was organized to bring together various
        disconnected discussions about smart object security happening in different IETF
        working groups and industry fora. It was a one-day workshop held prior to the
        IETF 83 in Paris on March 23, 2012.</t>

      <t>The workshop organizers were particularly interested in getting input on the following 
        topics, as outlined in the call for position papers:
        <list style="symbols">
          <t>What techniques for issuing credentials have been deployed?</t>
          <t>What extensions are useful to make existing security protocols more
            suitable for smart objects?</t>
          <t>What type of credentials are frequently used?</t>
          <t>What experience has been gained when implementing and deploying
            application-layer, transport-layer, network-layer, and link-layer security
            mechanisms (or a mixture of all of them)?</t>
          <t>How can "clever" implementations make security protocols a better fit for
            constrained devices?</t>
          <t>Are there lessons we can learn from existing deployments?</t>
        </list>
      </t>
      <t>This document lists some of the recurring discussion topics at the
        workshop. It also offers recommendations from the workshop participants.</t>
      <t>Note that this document is a report on the proceedings of the workshop.
        The views and positions documented in this report are those of the workshop
        participants and do not necessarily reflect the views of the
        authors or the Internet Architecture Board (IAB).</t>
    </section>

    <section title="Terminology">
      <t> This document uses security terminology from
        <xref target="RFC4949"/>
        and terms related to smart objects from
        <xref target="RFC6574"/>.</t>
    </section>
    <section anchor="structure" title="Workshop Structure">
<t>With 35 accepted position papers, there was a wealth of topics to talk about during the
one-day workshop. The program committee decided to divide the discussion
into four topic areas ("Requirements and Use Cases", "Implementation
Experience", "Authorization", and "Providing Credentials"), with two
or three invited talks per slot to get a discussion started. This section 
will summarize the points raised by the invited speakers as well as the 
essence of the ensuing discussions. </t>

<section title="Requirements and Use Cases">
<t>To design a security solution, an initial starting point is to understand 
the communication relationships, the constraints, and the security threats.
The typical IETF Security Considerations section describes security threats, security requirements, 
and security solutions at the level of a single protocol or a single document. 
To offer a meaningful solution for a smart object deployment, it is, however, 
necessary to go beyond this limited view to the analysis of the larger ecosystem. 
The security analysis documented in <xref target="RFC3552"/> and in <xref
target="RFC4101"/> still provides valuable guidance.</t>

<t>Typical questions that arise are:</t>
<t><list style="numbers">

<t>Who are the involved actors? 
<vspace blankLines="1"/>
Some usage scenarios look very simple at first but then, after a longer
investigation, turn out to be quite complex. 
The smart meter deployment, for example, certainly belongs to one of the more 
complex deployments due to the history of the energy sector (see <xref target="RFC6272"/>).</t>

<t>Who provisions credentials? 
<vspace blankLines="1"/>
Credentials may, for example, be provisioned by the end user, the hardware
manufacturer, an application service provider, or other parties. With security
provided at multiple layers, credentials from multiple parties may need to be provisioned.</t> 

<t>What constraints are imposed on the design? 
<vspace blankLines="1"/> 
For example, a constraint can be the need to interwork with existing
infrastructure. From an architectural point of view, an important question is
whether security is terminated at the border router (or proxy server) at the
customer's premise or if end-to-end security to servers in the Internet is
required. A more detailed discussion can be found at <xref target="SMART-OBJECT"/>.</t>

<t>What type of authorization is required by the identified actors? 
<vspace blankLines="1"/>
This may, for example, be authorization to get access to the network or
authorization at the application layer. Authorization decisions may be 
binary or may consist of complex, role-based access control policies.</t>

<t>What tasks are expected by the customer who deploys the solution? 
<vspace blankLines="1"/>
An end customer may, for example, be expected to enter short PIN codes to pair
devices, need to update the firmware, or need to connect to an appliance via
a web browser to make more sophisticated configuration settings. The
familiarity of end users with Internet-based devices certainly increases
constantly, but user-interface challenges contribute to a large number of
security weaknesses of the Internet and therefore have to be taken into
account. </t>
</list> 
</t>

<t>To illustrate the differences, consider a mass-market deployment for end
customers in comparison to a deployment that is targeting enterprise
customers.  In the latter case, enterprise system administrators are likely to 
utilize different management systems to provision security and other system-relevant parameters.</t>
 
<t>Paul Chilton illustrated the security and usability requirements in a
typical end-user scenario for small-scale smart lighting systems <xref
target="PaulChilton"/>. These systems present a substantial challenge for 
providing usable and secure communication because they are supposed to be 
cheap and very easy to set up, ideally as easy as their "dumb" predecessors. 
The example of IP-enabled light bulbs shows that the more constrained devices
are, the more difficult it is to get security right.  For this reason, and the
required usability, light bulbs might just be the perfect example for
examining the viability of security solutions.</t>

<t>Rudolf van der Berg focused on large-scale deployments of smart objects,
such as eBook readers, smart meters, and automobiles. The use of mobile
cellular networks is attractive because they are networks with adequate
coverage and capacity on a global scale. 
In order to make use of mobile networks, you need to make use of
authentication based on Subscriber Identity Modules (SIMs).
However, at this moment, the SIM is controlled by the network
operator. These companies could also use 
EAP-SIM (Extensible Authentication Protocol SIM) <xref target="RFC4186"/>
authentication in, for example, wireless LANs.</t>

<t>The end-user interaction may differ depending on the credentials being
used: for a light bulb deployed in the user's home, it is expected that the
user somehow configures devices so that only, for example, family members can
turn them on and off. Smart objects that are equipped with SIM-based
credential infrastructure do not require credential management by the 
end user since credential management by the operator can be assumed. 
Switching cellular operators may, however, pose challenges for these devices.</t> 

<t>Furthermore, we have a technology that will be both deployed by end users
and large enterprise customers. While the protocol building blocks may be the
same, there is certainly a big difference between deployments for large-scale 
industrial applications and deployments for regular end users in terms of the
architecture. Between these two, the security requirements differ
significantly, as do the threats.  It is difficult, if not impossible, to
develop a single security architecture that fulfills the needs of all users 
while at the same time meeting the constraints of all kinds of smart objects.</t>

<t>In the consumer market, security should not incur any overhead during
installation.  If an end user has to invest more time or effort to secure 
a smart object network, he or she will likely not do it. Consumer products
will often be retrofitted into the existing infrastructure, bought, and
installed by consumers themselves. This means that devices will have to come 
pre-installed to some extent and will most likely interoperate only with the 
infrastructure provided by the vendor, i.e., the devices will be able to
connect to the Internet but will only interoperate with the servers provided
by the vendor selling 
the device.</t>

<t>Closed systems (one bulb, one switch) typically work out of the box, as
they have been extensively tested and often come with factory-configured
security credentials.  Problems do arise when additional devices are added or
when these closed systems get connected to the Internet. It is still very
common to ship devices with default passwords. It is, however, not acceptable 
that a device is in a vulnerable, but Internet-connected, state before it has 
been correctly configured by a consumer.  It is easy to conceive that many
consumers do not configure their devices properly and may therefore make it
easy for an adversary to take control of the device by, for example, using the 
default password or outdated firmware.</t>

<t>Once security threats for a specific deployment scenario have been
identified, an assessment takes place to decide what security requirements can
be identified and what security  properties are desirable for the solution.
As part of this process, a conscious decision needs to take place about which 
countermeasures will be used to mitigate certain threats.  For some security
threats, the assessment may also lead to the conclusion that the threat is
considered out-of-scope and, therefore, no technical protection is
applied.  Different businesses are likely to come to different conclusions
about the priorities for protection and what security requirements will be derived. </t>

<t>Which security threats are worthwhile to protect against is certainly in
the eye of the beholder and remains an entertaining discussion even among
security specialists. For some of the workshop participants, the security
threats against a smart lighting system were considered relatively minor
compared to other smart home appliances. Clearly, the threats depend on the
specific application domain, but there is a certain danger that deployments of
vulnerable smart objects will increase. As the systems evolve and become more
pervasive, additional security features may be required and may be difficult
to incorporate into the already installed base, particularly if smart objects
have no software update mechanism incorporated in their initial design. Smart
objects that require human interaction to perform software updates will
likely be problematic in the future. This is particularly true for devices
that are expected to have service schedules of five to twenty-five
years. Experience shows that security breaches that are considered 
pranks usually evolve very rapidly to become destructive attacks.</t>

<t> Apart from the security requirements of individual households and users, 
it is also important to look at the implications of vulnerabilities in
large-scale smart object deployments, for example, in smart meters and the power grid.</t>

<t>Finally, there is the usual wealth of other requirements that need to be
taken into account, such as ability for remote configuration and software
updates, the ability to deal with transfer of ownership of a device, avoidance 
of operator or vendor lock-in, crypto agility, minimal production, license and IPR costs, etc.</t>
</section>

<section title="Implementation Experience">
<t>The second slot of the workshop was dedicated to reports from first-hand
implementation experience. Various participants had provided position papers
exploring different security protocols and cryptographic primitives. There
were three invited talks that covered tiny implementations of the Constrained
Application Protocol (CoAP) protected by Datagram Transport Layer Security
(DTLS), a TLS implementation using raw public keys, and general experience 
with implementing public key cryptography on smart object devices.</t>

<t>All three presenters demonstrated that implementations of IETF security
protocols on various constraint devices are feasible. This was confirmed by
other workshop participants as well. The overall code size and performance of
finished implementations will depend on the chosen feature set. It is fairly
obvious that more features translate to a more complex outcome. Luckily, IETF
security protocols in general (and TLS/DTLS is no exception) can be customized
in a variety of ways to fit a specific deployment environment. As such, an
engineer will have to decide which features are important for a given
deployment scenario and what trade-offs can be made. 
There was also the
belief that IETF security protocols offer useful customization features (such
as different ciphersuites in TLS/DTLS) to select the desired combination of
algorithms and cryptographic primitives. The need to optimize available
security protocols further or to even develop new cryptographic primitives for
smart objects was questioned and not seen as worthwhile by many participants.</t>

<t>The three common constraints for security implementations on smart objects
are code size, energy consumption, and bandwidth. The importance of
tailoring a solution to one of these constraints depends on the specific
deployment environment. It might be difficult to develop a solution that 
addresses all constraints at the same time.  For example, minimizing memory
use may lead to increased communication overhead.
</t>

<t>Waiting for the next generation of hardware typically does not magically
lift the constraints faced today. The workshop participants again reinforced 
the message that was made at the earlier smart object workshop <xref
target="RFC6574"/> regarding future developments in the smart object
space:</t>
<t><list style="empty"> 
<t>While there are constantly improvements being made, Moore's law tends to be 
less effective in the embedded system space than in personal computing
devices: gains made available by increases in transistor count and density 
are more likely to be invested in reductions of cost and power requirements 
than into continual increases in computing power.</t></list></t>

<t>The above statement is applicable to smart object designs in general, not
only for security. Thus, it is expected that designers will continue having to
deal with various constraints of smart objects in the future. A short
description of the different classes of smart objects can be found in <xref
target="RFC7228"/>, which also provides security-related guidance. The
workshop participants noted that making security protocols suitable for smart
objects must not water down their effectiveness. Security functionality will
demand some portion of the overall code size. It will have an impact on the
performance of communication interactions, lead to higher energy
consumption, and certainly make the entire product more complex. 
Still, omitting security functionality because of various constraints is not 
an option. The experience with implementing available security protocols was 
encouraging even though the need to make various architectural design
decisions for selecting the right set of protocols and protocol extensions 
that everyone must agree on was pointed out. Sometimes, the leading constraint 
is energy consumption, and in other cases, it is main memory, CPU performance,
or bandwidth. In any case, for an optimization, it is important to look at the 
entire system rather than a single protocol or even a specific algorithm.</t>

<t>Equally important to the code size of the protocols being used in a
deployed product are various other design decisions, such as the communication
model, the number of communication partners, the interoperability
requirements, and the threats that are being dealt with. Mohit Sethi noted
that even the execution time for relatively expensive operations like
asymmetric signature generation and verification are within acceptable limits
for very constrained devices, like an Arduino UNO. In either case, public key
cryptography will likely only be used for the initial communication setup to 
establish symmetric session keys. Perhaps surprisingly, the energy cost of 
transmitting data wirelessly dwarfs even expensive computations like public 
key cryptography. Since wireless reception is actually the most
power-consuming task on a smart object, protocols have to be designed
accordingly.</t>

<t>The workshop participants shared the view that the complexity of security 
protocols is a result of desired features. Redesigning a protocol with the
same set of features will, quite likely, lead to a similar outcome in terms 
of code size, memory consumption, and performance. It was, however, also 
acknowledged that the security properties offered by DTLS/TLS/IKEv2-IPsec 
may not be needed for all deployment environments. DTLS, for example, offers 
an authentication and key exchange framework combined with channel security 
offering data-origin authentication, integrity protection, and (optionally) 
confidentiality protection.</t>

<t>The biggest optimization in terms of code size can be gained when looking 
at the complete protocol stack, rather than only cryptographic algorithms. 
This also includes software update mechanisms and configuration mechanisms, 
all of which have to work together. What may not have been investigated enough 
is the potential of performing cross-layer and cross-protocol optimization. 
We also need to think about how many protocols for security setup we want to
have. Due to the desire to standardize generic building blocks, the ability to 
optimize for specific deployment environments has been reduced.</t>

<t>Finally, it was noted that scalability of security protocols does not imply 
usability. This means that while smart object technology might currently be 
developed in large-scale industrial  environments, it should be equally usable 
for consumers who want to equip their home with just a few light bulbs.</t>


<t>For details about the investigated protocol implementations, please consult 
the position papers, such as the ones by Bergmann et al., Perelman et al., 
Tschofenig, and Raza et al. (see <xref target="app-papers"/>).</t> 

</section>

<section title="Authorization">
<t>The discussion slot on authorization was meant to provide an idea of what 
kind of authorization decisions are common in smart object
networks. Authorization is defined as an "approval that is granted to a system 
entity to access a system resource" <xref target="RFC4949"/>.</t>

<t>Authorization requires a view on the entire smart object lifecycle to
determine when and how a device was added to a specific environment, what 
permissions have been granted for this device, and how users are allowed to 
interact with it. On a high level, there are two types of authorization
schemes. First, there are those systems that utilize an authenticated
identifier and match it against an access control list. Second, there are 
trait-based authorization mechanisms that separate the authenticated
identifier from the authorization rights and utilize roles and other
attributes to determine whether to grant or deny access to a protected resource.</t>

<t>Richard Barnes looked at earlier communication security work and argued that the model that dominates the web today will not be enough for the smart object environment. Simply identifying users by their credentials and servers via certificates is not something that translates well to smart object networks because it binds all the capabilities to the credentials. The evolution in access control is moving in the direction of granting third parties certain capabilities, with OAuth <xref target="RFC6749"/> being an example of a currently deployed technology. Access to a resource using OAuth can be done purely based on the capabilities rather than on the authenticated identifier.</t> 

  <t>At the time of the workshop, OAuth was very much focused on HTTP-based
protocols with early efforts to integrate OAuth into the Simple Authentication and
Security Layer (SASL) and the Generic
Security Service Application Program Interface (GSS-API) <xref target="SASL-OAUTH"/>. Further investigations need to be done to determine the suitability of OAuth as a protocol for the smart object environment.</t>

<t>Richard believed that it is important to separate authentication from authorization right from the beginning and to consider how users are supposed to interact with these devices to introduce them into their specific usage environment (and to provision them with credentials) and to manage access from different parties.</t>

<t>The relationship between the policy enforcement point and the policy decision point plays an important role regarding the standardization needs and the type of information that needs to be conveyed between these two entities.  </t>


  <t>For example, in an Authentication, Authorization, and Accounting (AAA)
  context, the authorization decision happens at the
  AAA server (after the user requesting access to a network or some
  application-level services had been authenticated). Then, the decision about 
  granting access (or rejecting it) is communicated from the AAA server to the 
  AAA client at the end of the network access authentication procedure. The
  AAA client then typically enforces the authorization decision over the
  lifetime of the granted user session. The dynamic authorization extension 
  <xref target="RFC5176"/> to the RADIUS protocol, for  example, also allows 
   the RADIUS server to make dynamic changes to a previously granted user
   session. This includes support for disconnecting users and changing
   authorizations applicable to a user session.</t>


 <t>The authorization decisions can range from 'only devices with passwords can
 use the network' to very detailed application-specific authorization
 policies.  The decisions are likely to be more sophisticated in those use
 cases where ownership of devices may be transferred from one person to another
 one, group membership concepts may be needed, access rights may be revocable,
 and fine-grained access rights have to be used. The authorization decisions
 may also take environmental factors into account, such as proximity of devices
 to each other, physical location of the device asking access, or the level of
 authentication. With the configuration of authorization policies, questions
 arise regarding who will create them and where these policies are stored. This 
 immediately raises questions about how devices are identified and who is 
 allowed to create these policies.</t> 

 <t>Since smart objects may be limited in terms of code size, persistent
 storage, and Internet connectivity, established authorization schemes may 
 not be well suited for such devices. Obviously, delegating every authorization 
 decision to another node in the network incurs a certain network overhead, 
 while storing sophisticated access control policies directly on the smart 
 object might be prohibitive because of the size of such a ruleset. 
 Jan Janak presented one approach to distribute access control policies to
 smart objects within a single administrative domain. </t>

 <t>In those cases where access control decisions are bound to the identifiers 
 of devices and humans need to either create or verify these access control 
 policies, the choice of identifier matters for readability and accessibility purposes.</t>

 <t>A single mechanism will likely not help with solving the wide range of
 authorization tasks. From the discussions, it was not clear whether there is a
 need for new authorization mechanisms or whether existing mechanisms can be
 reused. Examples of available protocols with built-in authorization mechanisms
 are Kerberos, OAuth, EAP/AAA, attribute certificates, etc. In many cases, it
 is even conceivable that the authorization decisions are internal to the
 system and that there is no need to standardize any additional authorization 
 mechanisms or protocols at all. In fact, many of the authentication and key
 exchange protocols have authorization mechanisms built in. </t>
</section>

       <section title="Provisioning of Credentials">
 <t>When a smart object is to be introduced into an environment, like a home 
 or an enterprise network, it usually has to be provisioned with some
 credentials first. The credentials that are configured at the smart object 
 and at some entity in the network are often an implicit authorization to 
 access the network or some other resource. The provisioned information at 
 the smart object will include some identifier of the smart object, keying
 material, and other configuration information (e.g., specific servers 
 it has to interact with).</t>

 <t>Some devices will be pre-configured with default security codes or
 passwords, or will have per-device or per-user credentials pre-configured, 
 when they are bought or when they arrive at the customer.</t> 

 <t>There is a limited set of solutions available (based on the available 
 interface support). The solutions for imprinting vary between the enterprise 
 and the consumer household scenarios. For large-scale deployments, the time 
 needed to pair two objects further excludes other schemes that rely on manual steps.</t>


 <t>Johannes Gilger dealt with the very basic ideas behind pairing schemes, 
 including the kinds of out-of-band channels that could be employed and their 
 limitations. Imprinting and pairing protocols usually establish a security 
 association between two equal devices, such as Bluetooth-equipped cell phones.  
 To deal with man-in-the-middle attacks during this phase, various forms of 
 additional verification checks exist. For example, devices with a display
 allow numeric values to be shown on each device and let the user verify
 whether they match. For other devices that have a keypad, a PIN may need to 
 be entered by the user. Where and how a smart object is to be paired with 
 other devices in the network can differ substantially from the specific use 
 cases and the hardware capabilities of devices. Note that pairing is not
 necessarily something that is only done once during the lifetime of a device. 
 Is group pairing something to be looked at? Or can any group key
 establishment be reduced to pairwise pairing with a central master device?</t>

 <t>Cullen Jennings presented a model for smart objects based on a deployment
 used for IP phones. The idea was that the smart object "phones home", i.e., 
 contacts a server offered by the manufacturer, when it is first switched
 on. This initial interaction can then be used for managing the device and 
 provisioning keying material for further use. Proof of ownership could be done 
 by identifying the user who purchased the device. This is an approach that is 
 increasingly being done today. Another option is some kind of secret
 information enclosed in the packaging.</t>

 <t>For interface-constrained devices, the solution of using (semi)-public 
 information in combination with an online manufacturer during imprinting 
 seems like a possible solution. This solution approach created a lot of 
 discussion among the participants, as it assumes an Internet connection 
 and means that the manufacturer effectively knows about the trust
 relationships of all the devices it sells.</t>


 <t>A few questions did arise with such a model:
Will there be third parties that have a business interest in providing
something like key distribution and key escrow over the lifetime of a smart
object? 
For constrained devices, will it always be possible to fall back to the 
 existing security associations between device and manufacturer to create new
 associations? 
Obviously, we do not want the lifetime of a smart object limited 
 by the manufacturer product support lifespan. What happens if a manufacturer 
 goes bankrupt, changes its business scope, or gets bought by another company?
Will end customers not be able to use their smart objects anymore in such a 
 case, or will they lose the ability to resell their devices because the
 ownership can no longer be transferred?</t>

 <t>One important design decision is that the compromise of the manufacturer 
 must not have any impact on the smart objects, which have already been
 imprinted to their new owners. Furthermore, the question arises of how to transfer 
 ownership, e.g., when reselling a device. While this may not be a
 requirement for all devices, there will likely be classes of large or
 expensive devices where support for transferring the ownership is an absolute necessity.</t>

 <t>Industrial users are comfortable when they have to rely on the manufacturer 
 during the imprinting phase, but they want to be in exclusive control over their devices afterwards.</t>

 <t>There are many classes of devices where we could assume online connectivity
 to be present; otherwise, these devices would not make sense in the first
 place. But, there are also other devices that need to be imprinted completely offline.</t>

 <t>Is it important to worry about security vulnerabilities, such as
 man-in-the-middle attacks, during the very short imprinting phase? Is it
 realistic that an adversary is in close proximity to mount an attack?
 Especially for devices with limited capabilities, such as light bulbs, the 
 concerns seemed rather small.</t>

 <t>What happens if such a device is not enrolled by the customer but still
 connected in a "naked" state? How does this impact security, and is it possible 
 for an attacker to perform a "drive-by" enrollment procedure of many devices? 
 How should a device behave in this situation?
  The safest option (for the user at least) would be to not allow
  the device to work with full functionality if it has not been
  enrolled.  This concern is particularly applicable for cases
  where smart objects are sold with default passwords or passwords using
  semi-public information; an example is Raspberry Pi computers with
  Linux images that use a default password <xref target="RaspberryPi"/>.</t>
 </section>
</section>

 <section title="Summary">

 <t>Designing for a smart object environment is about making an optimization
 decision that needs to take technical aspects, usage scenarios, security
 threats, and business models into account.  Some
 design constraints may be considered fixed while others are flexible.
 Compromises will need to be made, but they should not be made at
 the expense of security functionality.
</t>

 <t>Designing a software update mechanism into the system is crucial to
 ensure that functionality can be enhanced and vulnerabilities can be
 fixed.  Also, security threats are perceived differently over time. For
 example, many people considered pervasive monitoring less important
 prior to the Snowden revelations.</t>

 <t>New research and standardization on cryptographic algorithms (like
 encryption algorithms, hash functions, keyed message digests, and public key
 crypto systems) that are tailored to smart object environments was not
 seen as worthwhile by the participants.  A huge range of algorithms
 already exist, and standardized authentication and key exchange
 protocols can be customized to use almost any selection of algorithms
 available today.</t>

 <t>The integration of various building blocks into a complete system was
 considered important, and this document highlights a number of those
 areas in <xref target="structure"/>.  Searching for a single, universally applicable
 smart object security architecture was seen as a hopeless journey given
 the large number of use cases, business models, and constraints.</t>

 <t>In response to the workshop, follow-up work happened in a number of areas
 (and standardization activities are still ongoing). Here are a few examples:</t>

 <t><list style="symbols">

    <t>The Light-Weight Implementation Guidance (LWIG) working group was
 created to offer a venue to collect experiences from implementers of IP
 stacks, including security protocols, in constrained devices. The
 ability to tune IETF protocols via extensions and parameter choices
 gives implementers a lot of flexibility to meet the constraints of a
 smart object environment.</t>

   <t>The DTLS In Constrained Environments (DICE) working group was
 formed to define a DTLS profile that is suitable for Internet of Things
  applications and is reasonably implementable on many constrained devices,
 and to define how the DTLS record layer can be used to transmit multicast
 messages securely. DTLS is seen as an important enabling technology for
 securing communication interactions by smart objects.</t>

   <t>A new working group has been formed to standardize an authentication 
 and authorization protocol for constrained environments offering a dynamic 
 and fine-grained access control mechanism where clients and resource servers 
 are constrained and therefore have to make use of a trusted third party. 
 At the time of writing this document, the Authentication and Authorization
 for Constrained Environments (ACE) working group has just been started.</t>

 </list> 
 </t>
 </section>

     <section anchor="Security" title="Security Considerations">
       <t>This whole document is a report on the 'Smart Object Security Workshop'.
	 The focus of this workshop was on security only; privacy was not part of the workshop agenda. </t>
     </section>
   </middle>

 <back> 
 <references title="Normative References"> 

 <reference anchor='RFC6574' target="http://www.rfc-editor.org/info/rfc6574">
 <front>
 <title>Report from the Smart Object Workshop</title>
 <author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'>
 <organization /></author>
 <author initials='J.' surname='Arkko' fullname='J. Arkko'>
 <organization /></author>
 <date year='2012' month='April' />
 </front>
 <seriesInfo name='RFC' value='6574' />
 <format type='TXT' octets='74281' target='http://www.rfc-editor.org/rfc/rfc6574.txt' />
 </reference>

  </references>

 <references title="Informative References"> 

 <reference anchor='RFC4949' target="http://www.rfc-editor.org/info/rfc4949">
 <front>
 <title>Internet Security Glossary, Version 2</title>
 <author initials='R.' surname='Shirey' fullname='R. Shirey'>
 <organization /></author>
 <date year='2007' month='August' />
 </front>
 <seriesInfo name='RFC' value='4949' />
 <format type='TXT' octets='867626' target='http://www.rfc-editor.org/rfc/rfc4949.txt' />
 </reference>

 <reference anchor='RFC3552' target="http://www.rfc-editor.org/info/rfc3552">
 <front>
 <title>Guidelines for Writing RFC Text on Security Considerations</title>
 <author initials='E.' surname='Rescorla' fullname='E. Rescorla'>
 <organization /></author>
 <author initials='B.' surname='Korver' fullname='B. Korver'>
 <organization /></author>
 <date year='2003' month='July' />
 </front>
 <seriesInfo name='BCP' value='72' />
 <seriesInfo name='RFC' value='3552' />
 <format type='TXT' octets='110393' target='http://www.rfc-editor.org/rfc/rfc3552.txt' />
 </reference>

 <reference anchor='RFC4101' target="http://www.rfc-editor.org/info/rfc4101">
 <front>
 <title>Writing Protocol Models</title>
 <author initials='E.' surname='Rescorla' fullname='E. Rescorla'>
 <organization /></author>
 <author>
 <organization>IAB</organization></author>
 <date year='2005' month='June' />
 </front>
 <seriesInfo name='RFC' value='4101' />
 <format type='TXT' octets='47287' target='http://www.rfc-editor.org/rfc/rfc4101.txt' />
 </reference>

<!-- draft-iab-smart-object-architecture: I-D Exists -->
 <reference anchor='SMART-OBJECT'>
 <front>
 <title>Architectural Considerations in Smart Object Networking</title>
 <author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
     <organization />
 </author>
 <author initials='J' surname='Arkko' fullname='Jari Arkko'>
     <organization />
 </author>
 <author initials='D' surname='Thaler' fullname='Dave Thaler'>
     <organization />
 </author>
 <author initials='D' surname='McPherson' fullname='Danny McPherson'>
     <organization />
 </author>
 <date month='October' year='2014' />
 </front>
 <seriesInfo name='Work in Progress,' value='draft-iab-smart-object-architecture-06' />
 <format type='TXT'
	 target='http://www.ietf.org/internet-drafts/draft-iab-smart-object-architecture-04.txt' />
 </reference>

 <reference anchor='RFC7228' target="http://www.rfc-editor.org/info/rfc7228">
 <front>
 <title>Terminology for Constrained-Node Networks</title>
 <author initials='C.' surname='Bormann' fullname='C. Bormann'>
 <organization /></author>
 <author initials='M.' surname='Ersue' fullname='M. Ersue'>
 <organization /></author>
 <author initials='A.' surname='Keranen' fullname='A. Keranen'>
 <organization /></author>
 <date year='2014' month='May' />
 </front>
 <seriesInfo name='RFC' value='7228' />
 <format type='TXT' octets='37635' target='http://www.rfc-editor.org/rfc/rfc7228.txt' />
 </reference>

<!-- draft-ietf-kitten-sasl-oauth: I-D Exists -->
 <reference anchor='SASL-OAUTH'>
 <front>
 <title>A set of SASL Mechanisms for OAuth</title>

 <author initials='W' surname='Mills' fullname='William Mills'>
     <organization />
 </author>
 <author initials='T' surname='Showalter' fullname='Tim Showalter'>
     <organization />
 </author>
 <author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
     <organization />
 </author>
 <date month='November' year='2014' />
 </front>
 <seriesInfo name='Work in Progress,' value='draft-ietf-kitten-sasl-oauth-18' />
 <format type='TXT'
	 target='http://www.ietf.org/internet-drafts/draft-ietf-kitten-sasl-oauth-16.txt' />
 </reference>

 <reference anchor='RFC6272' target="http://www.rfc-editor.org/info/rfc6272">
 <front>
 <title>Internet Protocols for the Smart Grid</title>
 <author initials='F.' surname='Baker' fullname='F. Baker'>
 <organization /></author>
 <author initials='D.' surname='Meyer' fullname='D. Meyer'>
 <organization /></author>
 <date year='2011' month='June' />
 </front>
 <seriesInfo name='RFC' value='6272' />
 <format type='TXT' octets='162815' target='http://www.rfc-editor.org/rfc/rfc6272.txt' />
 </reference>


<reference anchor='RFC5176' target="http://www.rfc-editor.org/info/rfc5176">
<front>
<title>Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)</title>
<author initials='M.' surname='Chiba' fullname='M. Chiba'>
<organization /></author>
<author initials='G.' surname='Dommety' fullname='G. Dommety'>
<organization /></author>
<author initials='M.' surname='Eklund' fullname='M. Eklund'>
<organization /></author>
<author initials='D.' surname='Mitton' fullname='D. Mitton'>
<organization /></author>
<author initials='B.' surname='Aboba' fullname='B. Aboba'>
<organization /></author>
<date year='2008' month='January' />
</front>
<seriesInfo name='RFC' value='5176' />
<format type='TXT' octets='79541' target='http://www.rfc-editor.org/rfc/rfc5176.txt' />
</reference>



<reference anchor='RFC6749' target="http://www.rfc-editor.org/info/rfc6749">
<front>
<title>The OAuth 2.0 Authorization Framework</title>
<author initials='D.' surname='Hardt' fullname='D. Hardt'>
<organization /></author>
<date year='2012' month='October' />
</front>
<seriesInfo name='RFC' value='6749' />
<format type='TXT' octets='163498' target='http://www.rfc-editor.org/rfc/rfc6749.txt' />
</reference>

<reference anchor='RFC4186' target="http://www.rfc-editor.org/info/rfc4186">
<front>
<title>Extensible Authentication Protocol Method for Global System for Mobile Communications (GSM) Subscriber Identity Modules (EAP-SIM)</title>
<author initials='H.' surname='Haverinen' fullname='H. Haverinen'>
<organization /></author>
<author initials='J.' surname='Salowey' fullname='J. Salowey'>
<organization /></author>
<date year='2006' month='January' />
</front>
<seriesInfo name='RFC' value='4186' />
<format type='TXT' octets='220807' target='http://www.rfc-editor.org/rfc/rfc4186.txt' />
</reference>
	  
 <reference anchor="RaspberryPi" target="http://www.raspberrypi.org">
      <front>
        <title>Raspberry Pi</title>
        <author>
          <organization>Raspberry Pi Foundation</organization>
        </author>
        <date month="February" year="2013"/>
      </front>
	    <format target="http://www.raspberrypi.org"
	      type="HTML" />
	    
    </reference>

      <reference anchor="PaulChilton" target="http://www.lix.polytechnique.fr/hipercom/SmartObjectSecurity/papers/PaulChilton.pdf">
        <front>
          <title>Experiences and Challenges in using constrained Smart
	  Objects</title>
          <author fullname="Paul Chilton" initials="P" surname="Chilton">
          </author>
          <date month="March" year="2012"/>
        </front>
        <format target="http://www.tschofenig.priv.at/sos-papers/PaulChilton.pdf"
          type="HTML" />
      </reference>
      
      
	</references>

  <section anchor="app-program" title="Program Committee">
    <t>The workshop was organized by the following individuals:

      <list style="symbols">
  <?rfc subcompact="yes" ?>
        <t>Hannes Tschofenig</t>
        <t>Jari Arkko</t>
        <t>Carsten Bormann</t>
        <t>Peter Friess</t>
        <t>Cullen Jennings</t>
        <t>Antonio Skarmeta</t>
        <t>Zach Shelby</t>
        <t>Thomas Heide Clausen</t>
      </list>
    </t>
  <?rfc subcompact="no" ?>
  </section>

  <section anchor="app-material" title="Published Workshop Material">

    <t>
      <list style="symbols">
        <t>Main Workshop Page<vspace />
	&lt;http://www.lix.polytechnique.fr/hipercom/SmartObjectSecurity&gt;</t>
       	<t>Position Papers
	&lt;http://www.lix.polytechnique.fr/hipercom/SmartObjectSecurity/papers&gt;</t>
       	<t>Slides
	&lt;http://www.lix.polytechnique.fr/hipercom/SmartObjectSecurity/slides&gt;</t>
    </list> </t>
  </section>

  <section anchor="app-papers" title="Accepted Position Papers">

    <t>

      <list style="numbers">
        <t>Michael Richardson, "Challenges in Smart Object Security: too many
	layers, not enough ram"</t>
        <t>Mitsuru Kanda, Yoshihiro Ohba, Subir Das, Stephen Chasko, "PANA
	applicability in constrained environments"</t>
        <t>Randy Bush, "An Operational View of Trust Needs of Moving Objects"</t>
        <t>Andrei Gurtov, Ilya Nikolaevsky, Andrey Lukyanenko, "Using HIP DEX
	for Key Management and Access Control in Smart Objects"</t>
        <t>Jens-Matthias Bohli, "Access Tokens for the IoT"</t>
        <t>Martina Brachmann, Oscar Garcia-Morchon, Sye-Loong Keoh,
	 Sandeep S.&nbsp;Kumar, "Security Considerations 
	around End-to-End Security in the IP-based Internet of Things"</t>
        <t>Kazunori Miyazawa, "Convergence of Smart Objects in industrial wireless sensor network"</t>
        <t>Thomas Bartzsch, Dirk Burggraf, Laura Cristina Gheorghe, Alexis Olivereau,
	Nouha Oualha, Emil Slusanschi, Dan Tudose, Markus Wehner, Sven
	Zeisberg, "AAA-based Infrastructure for Industrial Wireless Sensor Networks"</t>

	<t>Fida Khattak, Philip Ginzboorg, Valtteri Niemi,
	Jan-Erik Ekberg, "Role of Border Router in 6LoWPAN Security"</t>
        <t>Thomas Fossati, Angelo Castellani, Salvatore Loreto, "(Un)trusted Intermediaries in CoAP"</t>
        <t>Rene Hummen, Christian Roeller, Klaus Wehrle, "Modeling
	User-defined Trust Overlays for the IP-based Internet of Things"</t>
        <t>Sam Hartman, Margaret Wasserman, "Federation, ABFAB and Smart Devices"</t>
        <t>Cary Bran, Joseph Stachula, "Device Pairing: Lessons Learned"</t>
        <t>Jan Janak, Hyunwoo Nam, Henning Schulzrinne, 
	"On Access Control in the Internet of Things"</t>
        <t>Rene Struik, "Cryptography and Security for Highly Constrained Networks"</t>
        <t>Zhen Cao, Hui Deng, Judy Zhu, "The Architecture of Open Security Capability"</t>
        <t>Sujing Zhou, Zhenhua Xie, "On Cryptographic Approaches to Internet-Of-Things Security"</t>
        <t>Nancy Cam-Winget, Monique Morrow, "Security Implications to Smart Addressable Objects"</t>
        <t>Jouni Korhonen, "Applying Generic Bootstrapping Architecture for
	use with Constrained Devices"</t>
        <t>Olaf Bergmann, Stefanie Gerdes, Carsten Bormann, "Simple Keys for Simple Smart Objects"</t>
        <t>Mohit Sethi, Jari Arkko, Ari Keranen, Heidi-Maria Rissanen, "Practical Considerations and
	Implementation Experiences in Securing Smart Object Networks"</t>
        <t>Paul Chilton, "Experiences and Challenges in using constrained Smart Objects"</t>
        <t>Vladislav Perelman, Mehmet Ersue, "TLS with PSK for Constrained Devices"</t>
        <t>Richard Barnes, "Security for Smart Objects beyond COMSEC: Principals and Principles"</t>
        <t>Rudolf van der Berg, "OECD Publication on Machine-to-Machine
	Communications: Connecting Billions of Devices", OECD Digital Economy
	Papers, No. 192, OECD Publishing</t>
        <t>Cullen Jennings, "Transitive Trust Enrollment for Constrained Devices"</t>
        <t>Barbara Fraser, Paul Duffy, Maik Seewald, "Smart Objects: Security
	Challenges from the Power Sector"</t>
        <t>Hannes Tschofenig, "Smart Object Security: Considerations for
	Transport Layer Security Implementations"</t>
        <t>Johannes Gilger, Ulrike Meyer, "Secure Pairing &amp; Context
        Management"</t>
        <t>Klaas Wierenga, "Scalable Authentication for Smart Objects"</t>
        <t>Dirk Stegemann, Jamshid Shokrollahi, "Security in the Internet of
	Things - Experiences from Use Cases"</t>
        <t>Alper Yegin, "Credentials for Smart Objects: A Challenge for the Industry"</t>
        <t>Shahid Raza, Thiemo Voigt, Vilhelm Jutvik, "Lightweight IKEv2: A
	Key Management Solution for both the Compressed IPsec and the IEEE 802.15.4 Security"</t>
        <t>Eric Rescorla, "A Brief Survey of Imprinting Options for Constrained Devices"</t>
        <t>Fred Baker, "Security in distributed telemetry and control networks"</t>
      </list>
    </t>
  </section>
  <section anchor="app-participants" title="Workshop Participants">
    <t>We would like to thank the following participants for attending the workshop:
      <list style="symbols">
  <?rfc subcompact="yes" ?>
        <t>Jari Arkko</t>
        <t>Carsten Bormann</t>
        <t>Cullen Jennings</t>
        <t>Antonio Skarmeta</t>
        <t>Sean Turner</t>
        <t>Thomas Heide Clausen</t>
        <t>Hannes Tschofenig</t>
        <t>Michael Richardson</t>
        <t>Yoshihiro Ohba</t>
        <t>Subir Das</t>
        <t>Randy Bush</t>
        <t>Andrei Gurtov</t>
        <t>Ilya Nikolaevsky</t>
        <t>Andrey Lukyanenko</t>
        <t>Jens-Matthias Bohli</t>
        <t>Kazunori Miyazawa</t>
        <t>Philip Ginzboorg</t>
        <t>Fida Khattak</t>
        <t>Angelo Castellani</t>
        <t>Salvatore Loreto</t>
        <t>Rene Hummen</t>
        <t>Klaus Wehrle</t>
        <t>Sam Hartman</t>
        <t>Margaret Wasserman</t>
        <t>Cary Bran</t>
        <t>Jan Janak</t>
        <t>Rene Struik</t>
        <t>Zhen Cao</t>
        <t>Hui Deng</t>
        <t>Zhou Sujing</t>
        <t>Xie Zhenhua</t>
        <t>Monique Morrow</t>
        <t>Nancy Cam-Winget</t>
        <t>Jouni Korhonen</t>
        <t>Ari Keranen</t>
        <t>Paul Chilton</t>
        <t>Vladislav Perelman</t>
        <t>Mehmet Ersue</t>
        <t>Richard Barnes</t>
        <t>Rudolf van der Berg</t>
        <t>Barbara Fraser</t>
        <t>Johannes Gilger</t>
        <t>Sye Loong Keoh</t>
        <t>Olaf Bergmann</t>
        <t>Stefanie Gerdes</t>
        <t>Klaus Hartke</t>
        <t>Oualha Nouha</t>
        <t>Alexis Olivereau</t>
        <t>Alper Yegin</t>
        <t>Klaas Wierenga</t>
        <t>Jiazi Yi</t>
        <t>Juan Antonio Cordero Fuertes</t>
        <t>Antonin Bas</t>
        <t>David Schinazi</t>
        <t>Valerie Lecomte</t>
        <t>Ulrich Herberg</t>
        <t>Shahid Raza</t>
        <t>Stephen Farrell</t>
        <t>Eric Rescorla</t>
        <t>Thomas Fossati</t>
        <t>Mohit Sethi</t>
        <t>Alan Duric</t>
        <t>Guido Moritz</t>
        <t>Sebstian Unger</t>
        <t>Hans Loehr</t>
      </list>
  <?rfc subcompact="no" ?>
    </t>
  </section>
  
  <section anchor="app-additional" title="Acknowledgements">
    <t>We would like to thank the participants and the authors of the
   position papers for their input.</t>

   <t>Special thanks go to Thomas Heide Clausen and Ecole Polytechnique
   (Paris) for providing the venue and organization.</t>

   <t>Finally, we would like to thank Rudolf van der Berg for his review
   comments.</t>
  </section>

</back>
</rfc>
