<?xml version="1.0" encoding="UTF-8"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?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="3"?>
<!-- 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="info" docName="draft-ito-yet-another-name-redaction-01" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     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="Name Redaction for Mass Devices">Use of Name Redaction for Mass Devices</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Tadahiko Ito" initials="T.I." surname="Ito">
      <organization>SECOM</organization>
          <address>
                <postal>
        <street></street>
                <city>Mitaka</city>
        <region>Tokyo</region>
        <code></code>
        <country>Japan</country>
        </postal>
                <phone>+81 422 76 2111</phone>
        <email>tadahi-ito@secom.co.jp</email>
        </address>
        </author>       
    <author fullname="Robert Ramirez" initials="R.R." surname="Ramirez" role="editor">
      <organization>SECOM</organization>
          <address>
                <postal>
        <street></street>
                <city>Mitaka</city>
        <region>Tokyo</region>
        <code></code>
        <country>Japan</country>
        </postal>
                <phone>+81 422 76 2111</phone>
        <email>ro-ramiresu@secom.co.jp</email>
        </address>
    </author>

    <date  year="2018" month="March"/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill
         in the current day for you. If only the current year is specified, xml2rfc will fill 
         in the current day and month for you. If the year is not the current one, it is 
         necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
         purpose of calculating the expiry date).  With drafts it is normally sufficient to 
         specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>Security</area>

    <workgroup>TRANS</workgroup>

    <!-- WG name at the upper left corner of the doc,
         IETF is fine for individual submissions.  
         If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>Internet-Draft</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This document describes mechanisms to allow CT log submitters not to submit plain certificates. 
      While public Certificate Transparency (CT) logs allow anyone to observe server certificates 
      and make confident to trust Certificate Authorities (CAs), 
      there are some problems scaling to mass devices. 
      This document describes and presents some use cases for a mechanism that retains most of the security benefits gained from using Certificate Transparency.</t>
    </abstract>
  </front>

  <middle>   
      <section title="Introduction">
      <t>Many devices communicate with TLS. These devices include surveillance cameras and Network Attached Storage. 
      Such devices use server certificates to communicate with other devices such as smart phones.  
      The number of these TLS-communicating devices is expected to grow exponentially.  
      In contrast, efficiently searchable list of mass devices may assist attackers (typically, to construct a botnet).
      In this document, I describe needs of name redaction mechanisms for those devices' certificates.
      Their certificates are typically issued by an intermediate certificate authority, which is tied to the device vendor or service provider.
      </t>

      <t>On the other hand, there are some organizations who issue certificates only for their own domain space (with global IP address). For that case, 
      CA/BForum defines "technical constraints intermediate certificate authority", and allows organizations to moderate portions of the audit process 
     <xref target="BR1.5.4">CA/BForum BR1.5.4</xref>, according to limitation of influence in case of miss issuance.
      </t>

      <t>However, Certificate Transparency v1 <xref target="RFC6962"></xref> and 
      current v2 <xref target="I-D.ietf-trans-rfc6962-bis">I-D.ietf-trans-rfc6962-bis26</xref> describe protocols for publicly logging all 
      TLS server certificates issued by publicly trusted CAs.  
      CT log server also store certificates with above uses, 
      and can end up assisting attacker in hijacking massive numbers of devices.
      In addition, it would increase burden of CT log server near future, 
      by exponential increase of mass devices.
      </t>


      <t> <xref target="I-D.draft-strad-trans-redaction-01">I-D.draft-strad-trans-redaction-01</xref>
      focused on end-entity's privacy with name redaction. 
      This document focuses on other aspects, such as avoiding lack of scalability, or prohibiting use on large scale Botnet.
      The purpose of this document is to reinforce discussion of <xref target="I-D.draft-strad-trans-redaction-01">I-D.draft-strad-trans-redaction-01</xref>.
      </t>

      </section>


      <section title="Requirements Language">
        <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">RFC 2119</xref>.</t>
      </section>
    

    <section title="Terminology">
        <t>This document relies on terminology and data structures defined in [RFC-6962-BIS-26], including STH, SCT.</t>
        <t>The term "name redaction" refers to any kind of CT mechanism, which allow submitter not to log (possibly potion of) end-entity certificate.</t>    
        <t>The term "domain-label name redaction" refers any to kind of name redaction mechanism, which allow submitter not log domain name. Domain-label name redaction is subset of name redaction.</t>
        <t>The term "OTA update" refers to over the air update of devices.</t>
        <t>The term "crypt agility" refers to the ability for a protocol to easily change the cryptographic algorithms it uses over time.</t>
    </section>

        
    <section title="Redacted CT submission mechanism">
      <t>The technical description of this section refers to <xref target="I-D.draft-strad-trans-redaction-01">I-D.draft-strad-trans-redaction-01</xref>.</t>
      <t>This section briefly describes the device scalability and security for three name redaction mechanisms, 
     in order of increasing implementation complexity:</t>

    <t><list style="symbols">
        <t>Using wildcard certificates  is 
        the simplest option, but it is not suitable for use with massive numbers of devices. Devices with a common wildcard certificate would need to share a private key, which would dramatically increase risk of key leakage.</t>
        <t>Logging a name-constrained intermediate CA certificate in place of the
        end-entity certificate, 
        and is suitable for mass devices, as it improves the scalability of the log server. However, it requires some non-scalable operations on the part of the CA 
        (i.e. issuing new intermediate certificate.).</t>
  
        <t>Domain-label name redaction mechanism reduces the burden put on the CA.
        In addition, it allows CAs to operate mass devices more flexibly.
        Furthermore, geographic information is very useful for mass device management, and service providers may want or try to use 
        that information with certificates.
        However, this information might be useful for attacker also.
        By hiding this information for attacker, this mechanism prevents large-scale physical attacks on devices.
        However, this option increases the implementation complexity considerably.</t> 
    </list></t>
    </section>  
  
    <section title = "Concerns with each method">
        <t>When an IoT service provider uses server certificates, the service provider will choose one of following. 
        In this section, we describe positive and negative points for each methods 
        (including methods, which does not use name redaction).</t>
        <section title = "Use Private Roots (do not use name redaction nor CT)">

        <t>Pro: Do not need any change with current mechanisms.</t>
        <t>Con: Service providers need to construct a new trust store. As the number of IoT services increases, it will become hard to manage the trust store, both for service providers and end users. ("scalability of trust store" issue)</t>
        <t>While private roots could be used, it could prevent interoperability, and incompatibility with modern browser software could force IoT device software to rely on custom software that likely would not receive security updates (as browser software does) leading to the same kind of problem of "frozen" legacy root stores that can't be updated that we saw during SHA-1 deprecation problems. </t>
        </section>
                                
        <section title ="Use Public Roots">
            <t>Since a mississued certificate for an IoT device would affect security of the Web,              
            Service provider would have to maintain an OTA update mechanism for IoT devices to maintain security and crypt agility.
            Some of the methods below may provide incentives for service providers to use such devices.</t>            
            <t><list style="symbols">
                <t>Do not use name redaction.<list style="symbols">
                        <t>Log all end-entity certificates :<list style="none">
                            <t>Pro: Compatible with current mechanism.</t>                            
                            <t>Con: log server needs to deal with enormous log ("scalability of log server" issue).
                            IoT devices (cameras, sensors, etc.), can be proxies for DOS attacks. 
                            Unredacted CT logs may help an DOS attacker to construct a botnet for DOS attack.
                            Logging Reveals Commercially Sensitive Information also.
                            Manufacturers using IoT certificates possibly won't want to show the number of devices 
                            they have shipped; redaction may help keep this information private.
                            Competitors scanning CT logs could infer new product/service offerings prior to their public release.</t>
                            </list></t>
                        <t>Disabling CT log checking with browser policy :<list style="none">    
                            <t>Pro: Compatible with current CT Log server.</t>
                            <t>Con: Browser needs to implement mechanism, and list of intermediate CAs not to check.</t>
                        </list></t>
                    </list></t>
                <t>Use name redaction<list style="symbols">
                    <t>With wild card Certificate :<list style="none">
                        <t>Pro : Near-compatible with current CT mechanism.</t>
                        <t>Con : Secret keys could be leaked from IoT devices.</t>
                        </list></t>                                            
                    <t>With name-constrained intermediate CA :<list style="none">
                        <t>Pro: Near-compatible with current log server's implementation.</t>
                        <t>Con: Browser needs to support name-constrained intermediate. 
                        CA need to implement name-constrained intermediate.  
                        </t>
                        </list></t>                                     
                    <t>domain-label name redaction : 
                    If "attacker can construct *list* of devices  very *efficiently*", that list can assist attacker (typically, construction of botnet). 
                    This mechanism limits the efficiency of construction, instead of preventing the construction of a list.
                    </t>            
                    </list></t>             

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






    <section anchor="IANA" title="IANA Considerations">
      <t>TBD</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>TODO: describe how CA can get assurance for domain owner's control over underling domain.
      It should contain some management mechanism, and need further discuss.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
    <t>
    Portions of this text were unabashedly borrowed from <xref target="I-D.draft-strad-trans-redaction-01">I-D.draft-strad-trans-redaction-01</xref>.
    </t>
    </section>

  <!--  *****BACK MATTER ***** -->
  </middle>
  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">


<reference  anchor='RFC2119' target='http://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor='RFC4648' target='http://www.rfc-editor.org/info/rfc4648'>
<front>
<title>The Base16, Base32, and Base64 Data Encodings</title>
<author initials='S.' surname='Josefsson' fullname='S. Josefsson'><organization /></author>
<date year='2006' month='October' />
<abstract><t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4648'/>
<seriesInfo name='DOI' value='10.17487/RFC4648'/>
</reference>



<reference  anchor='RFC5280' target='http://www.rfc-editor.org/info/rfc5280'>
<front>
<title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
<author initials='D.' surname='Cooper' fullname='D. Cooper'><organization /></author>
<author initials='S.' surname='Santesson' fullname='S. Santesson'><organization /></author>
<author initials='S.' surname='Farrell' fullname='S. Farrell'><organization /></author>
<author initials='S.' surname='Boeyen' fullname='S. Boeyen'><organization /></author>
<author initials='R.' surname='Housley' fullname='R. Housley'><organization /></author>
<author initials='W.' surname='Polk' fullname='W. Polk'><organization /></author>
<date year='2008' month='May' />
<abstract><t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet.  An overview of this approach and model is provided as an introduction.  The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms.  Standard certificate extensions are described and two Internet-specific extensions are defined.  A set of required certificate extensions is specified.  The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions.  An algorithm for X.509 certification path validation is described.  An ASN.1 module and examples are provided in the appendices.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5280'/>
<seriesInfo name='DOI' value='10.17487/RFC5280'/>
</reference>



<reference  anchor='RFC6125' target='http://www.rfc-editor.org/info/rfc6125'>
<front>
<title>Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)</title>
<author initials='P.' surname='Saint-Andre' fullname='P. Saint-Andre'><organization /></author>
<author initials='J.' surname='Hodges' fullname='J. Hodges'><organization /></author>
<date year='2011' month='March' />
<abstract><t>Many application technologies enable secure communication between two entities by means of Internet Public Key Infrastructure Using X.509 (PKIX) certificates in the context of Transport Layer Security (TLS). This document specifies procedures for representing and verifying the identity of application services in such interactions.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6125'/>
<seriesInfo name='DOI' value='10.17487/RFC6125'/>
</reference>


<reference  anchor='RFC6962' target='http://www.rfc-editor.org/info/rfc6962'>
<front>
<title>Certificate Transparency</title>
<author initials='B.' surname='Laurie' fullname='B. Laurie'><organization /></author>
<author initials='A.' surname='Langley' fullname='A. Langley'><organization /></author>
<author initials='E.' surname='Kasper' fullname='E. Kasper'><organization /></author>
<date year='2013' month='June' />
<abstract><t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves.  The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t><t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t></abstract>
</front>
<seriesInfo name='RFC' value='6962'/>
<seriesInfo name='DOI' value='10.17487/RFC6962'/>
</reference>

<reference anchor='I-D.ietf-trans-rfc6962-bis'>
<front>
<title>Certificate Transparency Version 2.0</title>
<author initials='B' surname='Laurie' fullname='Ben Laurie'><organization /></author>
<author initials='A' surname='Langley' fullname='Adam Langley'><organization /></author>
<author initials='E' surname='Kasper' fullname='Emilia Kasper'><organization /></author>
<author initials='E' surname='Messeri' fullname='Eran Messeri'><organization /></author>
<author initials='R' surname='Stradling' fullname='Rob Stradling'><organization /></author>
<date month='December' day='29' year='2016' />
<abstract><t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves.  The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.  Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-trans-rfc6962-bis-24' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-trans-rfc6962-bis-24.txt' />
</reference>

<reference anchor='I-D.draft-strad-trans-redaction-01'>
<front>
<title>Certificate Transparency: Domain Label Redaction</title>
<author initials="R." surname="Stradling" fullname="Rob Stradling"><organization /></author>
<author initials="E." surname="Messeri" fullname="Eran Messeri"><organization /></author>
<date year="2017" month="January" day="17" />
<abstract><t>This document defines mechanisms to allow DNS domain name labels that are
considered to be private to not appear in public Certificate Transparency (CT)
logs, while still retaining most of the security benefits accrued from using
Certificate Transparency.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value="draft-strad-trans-redaction-01" />
<format type='TXT'
        target='https://tools.ietf.org/html/draft-strad-trans-redaction-01.txt' />
</reference>



    </references>

    <references title="Informative References">
      <reference anchor="BR1.5.4" target="https://cabforum.org/wp-content/uploads/CA-Browser-Forum-BR-1.5.4.pdf">
       <front>
       <title>Baseline Requirements for theIssuance and Management of Publicly-Trusted Certificates</title>
        <author >
        <organization>CA/Browser Forum</organization>
        </author>
        <date year="2017"/>
       </front>
      </reference>
    </references>

 
  </back>
</rfc>
