<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc, which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC5246 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5246.xml">
<!ENTITY RFC5280 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5280.xml">
<!ENTITY RFC6066 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6066.xml">
<!ENTITY RFC6277 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6277.xml">

]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), please see ttp://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes"?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->

<rfc category="std" docName="draft-cheng-intarea-ugccnet-security-00" ipr="trust200902">

<!-- category values: std, bcp, info, exp, and historic ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902, or pre5378Trust200902 you can add the attributes updates="NNNN" and obsoletes="NNNN" they will automatically be output with "(if approved)" -->


  <!-- ***** FRONT MATTER ***** -->
  <front>
  <!-- The abbreviated title is used in the page header - it is only necessary if the full title is longer than 39 characters -->

    <title abbrev="UGCC Network Security">    
    Security for Ubiquitous Green Community Control Network
    </title>

    <author fullname="Mike Cheng" initials="M." surname="Cheng">
      <organization>BII Group Holdings Ltd.</organization>
      <address>
        <postal>
          <street></street>
          <city>Beijing</city>
          <region></region>
          <code></code>
          <country>P. R. China</country>
        </postal>
        <email>mikecheng@biigroup.com</email>
      </address>
    </author>

    <author fullname="Frankey Feng" initials="F." surname="Feng">
      <organization>BII Group Holdings Ltd.</organization>
      <address>
        <postal>
          <street></street>
          <city>Beijing</city>
          <region></region>
          <code></code>
          <country>P. R. China</country>
        </postal>
        <email>gfeng@biigroup.cn</email>
      </address>
    </author>
    
    <date year="2014"/>

    <!-- Meta-data Declarations -->
    <area>Internet</area>
    <workgroup>Intarea Working Group</workgroup>
    <keyword>Ubiquitous Network, Security</keyword>



<abstract>
<t>
This document describes enhanced security management function for the protocol defined in "Ubiquitous Green Community Control Network", specifies security requirements, defines system security architecture, gives a standardized description of authentication, authorization, along with security procedures and protocols. This standard can avoid unintended data disclosure to the public and unauthorized access to resources, while providing enhanced integrity and confidentiality of transmitted data in the ubiquitous green community control network.
</t>
</abstract>


  </front>

  <!-- ***** MIDDLE MATTER ***** -->

  <middle>


<section anchor="s1" title="Introduction">

<t>This document describes enhanced security management function for the protocol defined in "Ubiquitous Green Community Control Network" (UGCCNet), specifies security requirements, defines system security architecture, gives a standardized description of authentication, authorization,along with security procedures and protocols. This standard can avoid unintended data disclosure to the public and unauthorized access to resources, while providing enhanced integrity and confidentiality of transmitted data in the ubiquitous green community control network.</t>
<t>The purpose of this standard is to define a security management function in the ubiquitous green community control network that provides an interoperable, high quality and secure applications operation platform. As an open system, ubiquitous green community control network assumes multi-domain operation and public access from other system components.</t>
<t>This specification defines the architecture and framework that provides security for UGCCNet systems. As an interactive monitoring and control system based on sensor-actuator networks, UGCCNet systems without security suffer from some potential security threats. Unintended users or systems may capture sensor readings and control HVAC or lights easily;Information exchanged and data stored may be overwritten by unauthorized users or components. This document specifies a security framework to protect the message exchange path of both data plane and control plane of UGCCNet system from such security threats, providing mutual authentication, access control, message integrity, data confidentiality and so on.</t>
<t>UGCCNet protocol is bound to SOAP and normally takes HTTP for the transportation of its SOAP messages. To meet the security requirements and protect from security threats, HTTP over TLS (HTTPS) shall be adopted. This is because HTTPS has been widely used, and can satisfy the security requirements with small implementation cost.</t>


</section>


<section anchor="s2" title="Terminology and Conventions">

<t> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119"/>.
</t>

<t>
<list style="symbols">
<t>access control: The means to allow authorized entry and usage of resources.</t>
<t>Access control: The prevention of unauthorized use of a resource, including the prevention of use of a resource in an unauthorized manner.</t>
<t>Confidentiality: The property that information is not made available or disclosed to unauthorized individuals, entities, or processes.</t>
<t>Data integrity: The property that data has not been altered or destroyed in an unauthorized manner without detection or awareness.</t>
<t>Digital signature: Data appended to, or a cryptographic transformation of, a data unit that allows a recipient of the data unit to verify the source and integrity of the data unit and protect against forgery.</t>
</list>
</t>

</section>


<section anchor="s3" title="Security Requirements">

<t>a) Comprehensive security protection</t>
<t>The security defined in this standard should cover all functions and procedures in UGCCNet, including information retrieval, information storage, information transmission, integrated utilization of information, remote control, registration and so on.</t>
<t>b) High-efficient with low-cost</t>
<t>The security methods and protocols defined in this document shall limit the additional time cost, communication resources consumption and computational resources consumption within a reasonable and acceptable range.</t>
<t>c) Confidentiality of the UGCCNet  exchanging message</t>
<t>Confidentiality is the security service that protects data from unauthorized disclosure. The goal is to protect information from passive threat.</t>
<t>d) Integrity of UGCCNet  exchanging message</t>
<t>Integrity means to protect information, data and other resources from being unintentionally altered during the transmission procedures. Besides, all modifications to data should be detectable. The purpose is to improve accuracy and completeness for information and corresponding processing methods, protecting information from active threat.</t>
<t>e) Access control of components</t>
<t>Access control provides the capability to verify access right to a certain resource from a certain component.  UGCCNet security shall deal with the access control for pointIDs in UGCCNet components to which other UGCCNet components can access.</t>
<t>f) Mutual authentication between components</t>
<t>A pair of requester and responder is called "peers". Mutual authentication enables both peers to authenticate each other. UGCCNet  security shall enable a client to connect to the intended server (e.g. Storage), and a server to know which client (e.g. APP) is connected.  This allows them to protect from miss-sending or miss-receiving UGCCNet messages between a malicious or unintended UGCCNet  component.  In some cases, the server may allow the clients to access to some data with no authentication.  Furthermore, the client may also not need to authenticate the server.  The UGCCNet  security allows those cases by the configuration.</t>
<t>g) Scalable authentication and access control mechanisms</t>
<t>UGCCNet Security shall be applied into various types of UGCCNet  system because the UGCCNet would be used in wide varieties of system scalability, and in several types of management formation. Even when an UGCCNet system deploys millions of devices, the authentication and access control mechanisms shall scale easily.</t>

</section>


<section anchor="s4" title="Design Principles">

<t>a) Reuse existing technologies</t>
<t>Applications of standardized and widely-used security technologies are adopted. UGCCNet  security can inherit the basic properties by using standard interfaces and software libraries. Since UGCCNet  is designed over HTTP, this standard employs TLS-based HTTP(HTTPS). TLS is widely used for mutual authentication, data integrity and confidentiality. By adopting HTTPS, UGCCNet  can easily take these properties. To satisfy authentication requirement,  X.509 is employed in this standard. This is because X.509 is widely deployed and TLS can handle it.</t>
<t>b) Separate Certificate Management and Access Control Management Functionality</t>
<t>In order to meet the requirement of scalability of UGCCNet security, Certificate Management and Access Control Management are separated as independent function in this standard.</t>
<t>c) Compatibility</t>
<t>The security architecture should introduce modification to UGCCNet architecture and functional entities as less as possible.</t>

</section>

<section anchor="s5" title="Security Architecture">

<section anchor="s5.1" title="System Architecture">

<t>The goal of UGCCNet security system is to protect an UGCCNet system against security threats.UGCCNet system takes TLS (HTTPS instead of plain HTTP) to protect the communication among components and registries. UGCCNet system shall be cognizant of application requirements before initiating TLS procedure. Components and registries should have a certificate to identify their identifiers over the TLS connection.</t>
<t>The components (APP, Storage and GW) and the registry are typically defined in UGCCNet. AAA Function has three functionalities: TLS Configuration Manager (TCM), Authentication Manager (AM) and Access Control Manager (ACM).</t>
<t>TCM manages and maintains TLS parameters configuration depending on application requirements. TCM enforces some TLS configuration such as encryption algorithms, key length and so on (CipherSuite parameters).</t>
<t>AM has two functions: Certificate Verification (CV) and Identifier Verification (IV). CV checks the certificate posted from TLS Client or TLS Server, and provides the answer whether the certificate is trustable or not. CV verifies the certificate based on the list of trust anchors pre-installed in itself. IV handles peer authentication.</t>
<t>ACM replies whether the connected TLS Client has the access rights to the requested resources (e.g., methods and points) or not. The policy of access control is managed here, usually in the form of pre-configured access control list (ACL).</t>

</section>
<section anchor="s5.2" title="Initiator and responder">

<t>UGCCNet defines components and registries as the communication entities. However, from the point of security, the implementers should be aware of the direction of communication rather than the role of entities. Therefore, the entities should be classified based on the direction of the communication and their roles within the secure communication procedure. This specification introduces the new terms of "Initiator" and "Responder" to describe security- enabled UGCCNet entities. This concept corresponds to "TLS Client" and "TLS Server" defined in the TLS specification (RFC5246).</t>

</section>
<section anchor="s5.3" title="Identifier">

<t>Assign identifier for UGCCNet entities: An original UGCCNet component or registry (hereafter, referred simply as "entity") itself does not have an identifier -- it only has an access URI to address in the Internet space. In the context of the UGCCNet security, each component and registry must have an identifier (ID) to identify itself for authentication with each other, and to enable access control of the peer at the server side. This specification defines the following rules to assign an ID for each UGCCNet entity.</t>
<t>Initiator and responder shall contain only one UGCCNet component or registry.</t>
<t>Initiator or responder shall have a globally unique name and put their name in subject alternative name (SAN) section in X.509 certificate format (RFC 5280 section 4.2.1.6). This globally unique name is an identifier.
</t>
<t>Format of Subject Alternative Name (SAN):(1)Host-Role Certificate: Host-role certificate shall have either a FQDN-formatted identifier [ref: RFC1035] or IPv4 address [ref: RFC791] or IPv6 address [ref: RFC2460]. The identifier is stored in their sole SAN (i.e., type:2- dNSName [ref: RFC5280 section 4.2.1.6]). The access URI of the Responder shall contain the FQDN or IP address. In addition, if the dentifier uses FQDN format, it shall be resolved by some name resolution systems, typically by the domain name system (DNS).(2)Client-Role Certificate: Client-Role Certificate shall have an E-mail-formatted identifier [ref: RFC5322 Section 3.4.1] and stores the ID in their sole SAN (i.e., type:1 - rfc822Name [ref: RFC2459 section 4.2.1.7]). The e-mail address does not have to be reachable (as an e-mail address).</t>
<t>"Anonymous" Identifier:If a component cannot be identified, the component can be handled as a component that has the identifier "anonymous". In other words, identifier "anonymous" is reserved and shall not intentionally assigned to any components.
</t>
</section>
</section>
<section anchor="s6" title="AAA Function Definition">

<section anchor="s6.1" title="TLS Configuration Manager(TCM)">
<t>TLS Configuration Manager (TCM) manages TLS configurable connection parameters. For example, TCM may enforce to use a specific encryption algorithm that will be used for any connections or a specific connection that is categorized by peer identifiers or Access URI and so on.</t>
<t>TCM shall provide two functions: for initiators (TLS Client), TCM provides candidate TLS parameter suites. While for responders (TLS Server), TCM allows or rejects a given parameter suites from the communication peer initiator (TLS Client).</t>
<t>TCM may provide a function that returns a connection parameters for a given peer identifier of a domain name or an IP address.</t>
</section>
<section anchor="s6.2" title="Authentication Manager(AM)">
<t>Authentication Manager (AM) shall provide at least two functions:(1) Certificate Verification (CV) and (2) Identifier Verification (IV). CV allows an initiator or responder to check whether a given certificate from the remote peer is valid or not. The fundamental behavior for this certificate verification should be guided by RFC5280. The role of IV is the identification of the responder: i.e., for an initiator to guarantee that it is connecting the correct peer.</t>
</section>
<section anchor="s6.3" title="Access Control Manager(ACM)">
<t>Access Control Manager (ACM) compares the access control list. ACM returns accept or denial for each requests.</t>
</section>
</section>

<section anchor="s7" title="Acknowledgements">

<t>Funding for the RFC Editor function is currently provided by BII Group.</t>

</section>


</middle>



<!-- ***** BACK MATTER ***** -->

<back>

<references title="Normative References">
  &RFC2119; 
  &RFC5246;
  &RFC5280;
  &RFC6066;
  &RFC6277;
</references>

</back>
</rfc>


