<!DOCTYPE html>
<html>
  <head>
    <meta class="RFC" lang="en">
    <meta charset="utf-8">
    <meta content="text/html" http-equiv="Content-Type">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="keywords" content="Naming,Mathematical Mesh,Authentication">
    <meta name="description" content="">
    <meta name="author" content="Phillip Hallam-Baker">
    <title>Naming in the Mathematical Mesh.</title>
    <link href="https://trustee.ietf.org/trust-legal-provisions.html" rel="license">
    <link href="xml2rfc.css" rel="stylesheet" type="text/css">
    <link href="rfc-local.css" rel="stylesheet" type="text/css">
  </head>
  <body>
    <table class="ears">
      <thead>
        <tr>
          <td class="left">Internet-Draft</td>
          <td class="center">Mathematical Mesh Naming</td>
          <td class="right">August 2017</td>
        </tr>
      </thead>
      <tfoot>
        <tr>
          <td class="left">Hallam-Baker</td>
          <td class="center">Expires February 11, 2018</td>
          <td class="right">[Page]</td>
        </tr>
      </tfoot>
    </table>

    <dl id="identifiers">
      <dt>Stream:</dt>
      <dd class="stream">Independent Submission</dd>
      <dt>Series:</dt>
      <dd class="series">Internet-Draft</dd>
      <dt>Status:</dt>
      <dd class="status">Informational</dd>
      <dt>Published:</dt>
      <dd>
        <time class="published" datetime="2017-08-10">10 August 2017</time>
      </dd>
      <dt>Expires</dt>
      <dd>
        <time class="expires" datetime="2018-02-11">11 February 2018</time>
      </dd>
      <dt>Authors:</dt>
      <dd class="authors">
        <span class="author-name">Phillip Hallam-Baker</span>
        (<span class="org">Comodo Group Inc.</span>)
      </dd>
    </dl>
    <h1 id="title">
      Naming in the Mathematical Mesh.
      <br/>
      <span id="independent-file" class="filename">draft-hallambaker-mesh-naming-00</span>
    </h1>
    <section id="abstract">
      <h3>
        <a class="selfRef" href="#abstract">Abstract</a>
      </h3>
      <p id="s-abstract-1">The importance of naming in information systems is explained with reference to a typical use case. Existing Internet naming systems attempt to strike a balance between usability and machine readability. An alternative approach in which separate classes of identifiers are introduced for human and machine interaction is described. Human Interaction Identifiers are interpreted in the context in which they are used and are thus more compact and offer a superior user experience. Strong Internet Names are a form of Machine Interaction Identifier that are backwards compatible with existing Internet names that include a DNS address and are cryptographically bound to a security policy governing interpretation. The application of these approaches in the Mathematical Mesh is described.<a class="pilcrow" href="#s-abstract-1">¶</a></p>
    </section>
    
    <section id="n-status-of-this-memo">
      <h3 id="bp-1">
        <a class="selfRef" href="#bp-1"></a>
        <a class="selfRef" href="#n-status-of-this-memo">Status of This Memo</a>
      </h3>
      <p id="bp-1-1">This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.<a class="pilcrow" href="#bp-1-1">¶</a></p>
      <p id="bp-1-2">Internet-Drafts are working documents of the Internet Engineering Task Force (IETF).  Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at <a class="eref" href="http://datatracker.ietf.org/drafts/current/">http://datatracker.ietf.org/drafts/current/</a>.<a class="pilcrow" href="#bp-1-2">¶</a></p>
      <p id="bp-1-3">Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time.It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."<a class="pilcrow" href="#bp-1-3">¶</a></p>
      <p id="bp-1-4">This Internet-Draft will expire on February 11, 2018<a class="pilcrow" href="#bp-1-4">¶</a></p>
    </section>
    
    <section id="n-copyright-notice">
      <h3 id="bp-2">
        <a class="selfRef" href="#bp-2"></a>
        <a class="selfRef" href="#n-copyright-notice">Copyright Notice</a>
      </h3>
      <p id="bp-2-1">Copyright (c) IETF Trust and the persons identified as the document authors. All rights reserved.<a class="pilcrow" href="#bp-2-1">¶</a></p>
      <p id="bp-2-2">This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.<a class="pilcrow" href="#bp-2-2">¶</a></p>
    </section>
    
    <section id="toc">
      <h3>
        <a class="selfRef" href="#toc">Table of Contents</a>
      </h3>
      <nav class="toc">
        <ul class="toc">
          <li class="toc">
            <a href="#s-">1.</a><a href="#n-use-cases">Use Cases</a>
            <ul class="toc">
              <li class="toc">
                <a href="#s-1_">1.1.</a><a href="#n-identifiers-and-naming">Identifiers and Naming</a>
              </li>
            </ul>
          </li>
          <li class="toc">
            <a href="#s-">2.</a><a href="#n-identifiers-in-the-mathematical-mesh.">Identifiers in the Mathematical Mesh.</a>
            <ul class="toc">
              <li class="toc">
                <a href="#s-2_">2.1.</a><a href="#n-human-interaction-identifiers">Human Interaction Identifiers</a>
                <ul class="toc">
                  <li class="toc">
                    <a href="#s-2_1_">2.1.1.</a><a href="#n-user-expectation">User Expectation</a>
                  </li>
                </ul>
              </li>
              <li class="toc">
                <a href="#s-2_">2.2.</a><a href="#n-machine-interaction-identifiers">Machine Interaction Identifiers</a>
              </li>
              <li class="toc">
                <a href="#s-2_">2.3.</a><a href="#n-mapping-human-interaction-to-machine">Mapping Human Interaction to Machine</a>
              </li>
            </ul>
          </li>
          <li class="toc">
            <a href="#s-">3.</a><a href="#n-strong-internet-names">Strong Internet Names</a>
            <ul class="toc">
              <li class="toc">
                <a href="#s-3_">3.1.</a><a href="#n-udf-fingerprint">UDF Fingerprint</a>
              </li>
              <li class="toc">
                <a href="#s-3_">3.2.</a><a href="#n-strong-email-addresses">Strong Email Addresses</a>
              </li>
              <li class="toc">
                <a href="#s-3_">3.3.</a><a href="#n-network-administration">Network Administration</a>
              </li>
              <li class="toc">
                <a href="#s-3_">3.4.</a><a href="#n-security-policy-specification-">Security Policy Specification </a>
              </li>
              <li class="toc">
                <a href="#s-3_">3.5.</a><a href="#n-resolving-sins">Resolving SINs</a>
              </li>
            </ul>
          </li>
          <li class="toc">
            <a href="#s-">4.</a><a href="#n-personal-mesh">Personal Mesh</a>
            <ul class="toc">
              <li class="toc">
                <a href="#s-4_">4.1.</a><a href="#n-connecting-devices">Connecting Devices</a>
              </li>
              <li class="toc">
                <a href="#s-4_">4.2.</a><a href="#n-connecting-applications">Connecting Applications</a>
              </li>
              <li class="toc">
                <a href="#s-4_">4.3.</a><a href="#n-contacts-directory">Contacts Directory</a>
              </li>
            </ul>
          </li>
          <li class="toc">
            <a href="#s-">5.</a><a href="#n-acknowledgements">Acknowledgements</a>
          </li>
          <li class="toc">
            <a href="#s-">6.</a><a href="#n-security-considerations">Security Considerations</a>
            <ul class="toc">
              <li class="toc">
                <a href="#s-6_">6.1.</a><a href="#n-expectations">Expectations</a>
              </li>
              <li class="toc">
                <a href="#s-6_">6.2.</a><a href="#n-work-factor">Work Factor</a>
              </li>
              <li class="toc">
                <a href="#s-6_">6.3.</a><a href="#n-authority">Authority</a>
              </li>
            </ul>
          </li>
          <li class="toc">
            <a href="#s-">7.</a><a href="#n-iana-considerations">IANA Considerations</a>
          </li>
          <li class="toc">
            <a href="#References"></a><a href="#n-references">References</a>
            <ul class="toc">
              <li class="toc">
                <a href="#InformativeReferences"></a><a href="#n-informative-references">Informative References</a>
              </li>
            </ul>
          </li>
        </ul>
        <ul class="toc">
          <li class="toc">
            <a href="#AuthorsAddresses"></a><a href="#">Author's Address</a>
          </li>
        </ul>
      </nav>
    </section>
    
    <section id="n-use-cases">
      <h3 id="s-1">
        <a class="selfRef" href="#s-1">1.</a>
        <a class="selfRef" href="#n-use-cases">Use Cases</a>
      </h3>
      <p id="s-1-1">Hollywood Alice arrives at the airport. Her hire car is already waiting for her at the curb, every aspect of its function precisely matched to her preferences. The radio is tuned to her favorite station, the seats, mirrors and driving controls adapt to her measurements and of course, the navigation system is already programed with her itinerary.<a class="pilcrow" href="#s-1-1">¶</a></p>
      <p id="s-1-2">On the way to her destination, Hollywood Alice places a conference call to Bob and Carol by simply speaking their name. Bob wants to know if Alice’s new camera arrived in time for her trip. It did, but only just. Alice had only a few minutes to unwrap it and pack it for her trip. Carol has been to the area before and tells Alice she must see the Golden Gate bridge from Baker Beach, the same spot that Ansel Adams took his famous landscapes before and after the bridge. The navigator updates its route accordingly and Alice arrives in the golden hour. Her camera is a large modern DSLR but it doesn’t have a GPS, it doesn’t need one as it automatically captures this data from her mobile phone via Bluetooth. Alice joins the camera to the conference and it uses the same connection to upload thumbnails of her pictures for Bob and Carol. When she gets to her hotel room, the camera will upload the raw files to Alice’s personal cloud using the high-speed connection.<a class="pilcrow" href="#s-1-2">¶</a></p>
      <p id="s-1-3">It all works so much better in Hollywood.<a class="pilcrow" href="#s-1-3">¶</a></p>
      <p id="s-1-4">An extremely wealthy Real-world Alice being followed by a minibus containing a road crew of a half dozen IT support staff might possibly be able to create a similar user experience today but even that is doubtful. Instead of taking pictures of the Golden Gate bridge at sunset, Real-world Alice is far more likely to find herself at the side of the road debugging Perl scripts or more likely, turning all the labor-saving technology off because it simply isn’t worth the hassle. We have all the parts but they just don’t fit together properly and even when they appear to be joined, they often come apart. A ‘seamless user experience’ that isn’t actually seamless makes things worse, not better.<a class="pilcrow" href="#s-1-4">¶</a></p>
      <p id="s-1-5">There are many reasons that the scenario described above remains a pipe dream, not least the commercial interests of the technology providers. But one of the biggest obstacles to providing the seamless integration experienced by Hollywood Alice is the lack of a secure naming infrastructure. Providing Alice with a seamless user experience required seven data exchanges and ten trust relationships. <a class="pilcrow" href="#s-1-5">¶</a></p>
      <figure id="tbs">
        <div class="artwork art-svg" id="s-1-6">
          <img src="hollywoodalice.svg"/>
          <a class="pilcrow" href="#s-1-6">¶</a>
        </div>
        <figcaption>
          <a href="tbs">Figure tbs</a>
          <a href="tbs" id="tbs" class="selfRef"></a>
        </figcaption>
      </figure>
      <p id="s-1-7">The only infrastructures currently capable of managing those trust relationships would require Alice to be in constant communication with some form of ‘identity provider’ and to surrender a large part of her personal control to that infrastructure. <a class="pilcrow" href="#s-1-7">¶</a></p>
      <p id="s-1-8">There are proprietary infrastructures that provide an approximation of the user experience if Alice buys all her devices from the same vendor. But these require Alice to surrender even more personal control and in any case, there is no single company that makes phones, DSLR cameras and rents cars. And even if such a company existed, Alice would not be able to achieve seamless connectivity to Bob and Carol unless they live in the same walled garden as Alice.<a class="pilcrow" href="#s-1-8">¶</a></p>
      <p id="s-1-9">This document explores the problem of secure naming and describes the approach to naming taken in the Mathematical Mesh, a Personal Public Key Infrastructure (PPKI) that is designed to make computers easier to use by making them more secure.<a class="pilcrow" href="#s-1-9">¶</a></p>
    </section>
    
    <section id="n-identifiers-and-naming">
      <h4 id="s-1_1">
        <a class="selfRef" href="#s-1_1">1.1.</a>
        <a class="selfRef" href="#n-identifiers-and-naming">Identifiers and Naming</a>
      </h4>
      <p id="s-1_1-1">In the field of semiotics, a <i>name</i> is a <i>symbol</i> whose meaning is purely conventional, that is the meaning of the name is based on nothing more than a common agreement to interpret it in a particular way. Most network identifiers are based on a name of some sort whether they be <code>example.com</code> or <code>127.0.0.1</code>. The proper functioning of the Internet depends on all the participants agreeing on a common interpretation of these identifiers which in turn gives rise for the need for naming authorities.<a class="pilcrow" href="#s-1_1-1">¶</a></p>
      <p id="s-1_1-2">One of the core technologies that made the World Wide Web possible was the realization that the means to resolve any network resource may be specified by means of a triple, {<i>what</i>, <i>where</i>, <i>how</i>}. The Uniform Resource Locator (URL) <a class="xref" href="RFC3986">[RFC3986]</a> is simply a syntax for expressing this triple in a single identifier: <i>how</i>://<i>where</i>/<i>what</i>.<a class="pilcrow" href="#s-1_1-2">¶</a></p>
      <p id="s-1_1-3">While a URL contains a name component, it is not a pure name: The interpretation of the <i>where</i> component is intersubjectively determined by the choice of ICANN as the ultimate DNS naming authority, the interpretation of what and how is determined by the protocol specifications.<a class="pilcrow" href="#s-1_1-3">¶</a></p>
      <p id="s-1_1-4">Different users attempting to resolve http://example.com/ in different parts of the world may not receive back the same exact sequence of bytes but provided they are connected to ‘the Internet’ they should receive back a representation of the same ‘network resource’. <a class="pilcrow" href="#s-1_1-4">¶</a></p>
      <p id="s-1_1-5">Interpretation of other type of Internet identifier users commonly encounter, the email address, is not so straightforward. Unlike a URL, the RFC822 email address does not contain a <i>how</i> component. It is implicit that alice@example.com is an SMTP email address, but this is only one of many ways in which it may be used today:<a class="pilcrow" href="#s-1_1-5">¶</a></p>
      <ul id="s-1_1-6-">
        <li id="s-1_1-6">Send SMTP email<a class="pilcrow" href="#s-1_1-6">¶</a></li>
        <li id="s-1_1-7">Initiate an XMPP chat<a class="pilcrow" href="#s-1_1-7">¶</a></li>
        <li id="s-1_1-8">Web site username<a class="pilcrow" href="#s-1_1-8">¶</a></li>
        <li id="s-1_1-9">Initiate a proprietary chat<a class="pilcrow" href="#s-1_1-9">¶</a></li>
        <li id="s-1_1-10">Comment on a Web forum <a class="pilcrow" href="#s-1_1-10">¶</a></li>
      </ul>
      <p id="s-1_1-11">From the user’s perspective, it is natural to assume that the address alice@example.com is held by the same individual in each of these contexts. But like many aspects of the Internet today, it is a mistaken assumption. The holder of the email address may or may not be the same as the person who responds when a chat session is initiated. <a class="pilcrow" href="#s-1_1-11">¶</a></p>
      <p id="s-1_1-12">An RFC822 email address is a combination of two names issued by separate authorities <i>who</i>@<i>where</i>. Since the <i>where</i> component is a DNS name, there is a certain degree of consistency in interpretation through the infrastructure managed by ICANN. No such guarantees are provided for the interpretation of <i>who</i>. A site may have a policy preventing reissue of account names to new users or it may not.<a class="pilcrow" href="#s-1_1-12">¶</a></p>
      <p id="s-1_1-13">The use of email addresses as identifiers on third party sites introduces a third authority. For example, Alice may use her email address alice@example.com as her account identifier for the chat service provided by example.net. Resolution of the name example.com is now controlled by the unseen third authority example.net but only within the context of the example.net chat application.<a class="pilcrow" href="#s-1_1-13">¶</a></p>
      <p id="s-1_1-14">While these concerns may appear abstract, the security consequences are anything but. It is the fact that alice@example.com could be the same person or different people that makes the Hollywood Alice experience unreachable today. Alice’s phone can’t integrate with her hire car or her camera or her cloud communications provider because they lack a common language for securely identifying themselves as belonging to Alice.<a class="pilcrow" href="#s-1_1-14">¶</a></p>
      <p id="s-1_1-15">The identifiers we use in the Internet today represent a compromise between expressiveness and usability. The more information we attempt to pack into an identifier, the more a user must remember or type or read. If we are to introduce a cryptographically secure identifier it must therefore be a subclass of identifier, an identifier which is usually if not always hidden ‘under the covers’ and is separate from the names that the user sees and interacts with. This is the purpose that the Mathematical Mesh PPKI serves.<a class="pilcrow" href="#s-1_1-15">¶</a></p>
    </section>
    
    <section id="n-identifiers-in-the-mathematical-mesh.">
      <h3 id="s-2">
        <a class="selfRef" href="#s-2">2.</a>
        <a class="selfRef" href="#n-identifiers-in-the-mathematical-mesh.">Identifiers in the Mathematical Mesh.</a>
      </h3>
      <p id="s-2-1">The Mathematical Mesh <a class="xref" href="draft-hallambaker-mesh-architecture">[draft-hallambaker-mesh-architecture]</a> is a PPKI that manages two types of identifies: Human-Interaction identifiers which are primarily designed to support human interaction and Machine- Interaction identifiers which are primarily designed to support interactions between machines.<a class="pilcrow" href="#s-2-1">¶</a></p>
      <p id="s-2-2">As we saw in the previous section, these categories are not necessarily exclusive. Most of Internet names used on the Internet today were designed to provide a compromise between human and machine interactions. Such a compromise is not practical in a cryptographic infrastructure such as the Mesh since there is really no way to make an identifier that presents a cryptographic work factor of 2^118 or better human friendly except by mapping it to another identifier designed for human use.<a class="pilcrow" href="#s-2-2">¶</a></p>
      <p id="s-2-3">This section first describes the two types of identifier used in the Mesh and how one may be mapped to the other. The following sections describe the implementation of these ideas in the current implementation of the Mesh.<a class="pilcrow" href="#s-2-3">¶</a></p>
    </section>
    
    <section id="n-human-interaction-identifiers">
      <h4 id="s-2_1">
        <a class="selfRef" href="#s-2_1">2.1.</a>
        <a class="selfRef" href="#n-human-interaction-identifiers">Human Interaction Identifiers</a>
      </h4>
      <p id="s-2_1-1">Human Interaction identifiers come in many different forms and a given user may use multiple identifiers to refer to the same entity in different contexts. Three different uses are distinguished:<a class="pilcrow" href="#s-2_1-1">¶</a></p>
      <dl id="s-2_1-2-">
        <dt id="s-2_1-2">Input<a class="pilcrow" href="#s-2_1-2">¶</a></dt>
        <dd id="s-2_1-3">An identifier that the human user uses when entering a command. (e.g. “conference Bob and Carol”)<a class="pilcrow" href="#s-2_1-3">¶</a></dd>
        <dt id="s-2_1-4">Output<a class="pilcrow" href="#s-2_1-4">¶</a></dt>
        <dd id="s-2_1-5">An identifier that is presented to the human user when requesting user interaction. (e.g. “Alice Cryptographer is calling”)<a class="pilcrow" href="#s-2_1-5">¶</a></dd>
        <dt id="s-2_1-6">Comparison<a class="pilcrow" href="#s-2_1-6">¶</a></dt>
        <dd id="s-2_1-7">An output identifier that is used only to determine if two things are the same. Comparison identifiers are used in the Mesh when connecting a device to a profile.<a class="pilcrow" href="#s-2_1-7">¶</a></dd>
      </dl>
      <p id="s-2_1-8">Depending on the circumstances in which the identifiers are used, it is generally desirable that input identifiers be as compact as possible while output identifiers may provide more information. If Bob receives the conference request from Carol on his smartphone it is probably desirable for the display to present both the shortcut identifier from his personal contact directory ‘Alice’ and her full personal name ‘Alice Cryptographer’.<a class="pilcrow" href="#s-2_1-8">¶</a></p>
      <p id="s-2_1-9">While most identifier forms used for input (text, voice) may also be used for output, the reverse is not true. A validated image of a subject’s trademark, as supported by the PKIX logotype extension <a class="xref" href="RFC3709">[RFC3709]</a> provides a powerful means of telling a user which party operates the site they are visiting but would be highly impractical as an input format.<a class="pilcrow" href="#s-2_1-9">¶</a></p>
      <p id="s-2_1-10">The Mathematical Mesh makes use of three different types of human-interaction identifier:<a class="pilcrow" href="#s-2_1-10">¶</a></p>
      <dl id="s-2_1-11-">
        <dt id="s-2_1-11">Global Identifier<a class="pilcrow" href="#s-2_1-11">¶</a></dt>
        <dd id="s-2_1-12">An identifier that is intended to be globally unambiguous. (e.g. <code>alice@example.com</code>)<a class="pilcrow" href="#s-2_1-12">¶</a></dd>
        <dt id="s-2_1-13">Contextual Identifier<a class="pilcrow" href="#s-2_1-13">¶</a></dt>
        <dd id="s-2_1-14">An identifier that is only unambiguous within a specific context (e.g. “conference Bob and Carol”)<a class="pilcrow" href="#s-2_1-14">¶</a></dd>
        <dt id="s-2_1-15">Implicit Identifier<a class="pilcrow" href="#s-2_1-15">¶</a></dt>
        <dd id="s-2_1-16">An identifier whose referent is defined by the context in which it is used (e.g. “localhost”)<a class="pilcrow" href="#s-2_1-16">¶</a></dd>
      </dl>
      <p id="s-2_1-17">For most human interactions, it is desirable to use the shortest identifier possible for input that does not lead to ambiguity. Thus, the use of contextual identifiers is generally preferred over global identifiers and the use of implicit identifiers is almost always best.<a class="pilcrow" href="#s-2_1-17">¶</a></p>
      <p id="s-2_1-18">Most of the identifiers used in the ‘Hollywood Alice’ scenario were implicit identifiers. The devices Alice used understood the target of the commands she gave by the context in which she used them. As will be seen, the introduction of Strong Internet Names at the machine level allows them to be eliminated at the human level.<a class="pilcrow" href="#s-2_1-18">¶</a></p>
      <p id="s-2_1-19">The only contextual identifiers that Alice used were ‘Bob’ and ‘Carol’ which were names from Alice’s personal contacts directory. There are many Bobs in the world but only one ‘Bob’ in Alice’s contact book.<a class="pilcrow" href="#s-2_1-19">¶</a></p>
      <p id="s-2_1-20">The Hollywood Alice scenario only involved three people and a set of devices owned or rented by Alice. There was no need for global identifiers because the scenario did not require Alice to interact with the wider world. But it is the ability to communicate and interact on a global scale that gives the Internet its full power. It is the ability to establish secure communication with practically anyone in the world that makes the Internet the primary engine of international commerce. It is also the capability that gives rise to most Internet security concerns.<a class="pilcrow" href="#s-2_1-20">¶</a></p>
    </section>
    
    <section id="n-user-expectation">
      <h5 id="s-2_1_1">
        <a class="selfRef" href="#s-2_1_1">2.1.1.</a>
        <a class="selfRef" href="#n-user-expectation">User Expectation</a>
      </h5>
      <p id="s-2_1_1-1">One of the chief differences between human interaction identifiers and machine interaction identifiers is that humans interact with certain expectations that may or may not be met. It is the manipulation of the user’s expectations that enables many types of phishing fraud.<a class="pilcrow" href="#s-2_1_1-1">¶</a></p>
      <p id="s-2_1_1-2">If a user sees a message that appears to come from a financial institution that they have a business relationship with and that expectation is not met, the result is likely to be some form of fraud on the user. Such failures are always and only the fault of the designers of the communications infrastructure. The user is never negligent, the user is never at fault if their action is the result of a good faith expectation of a different result.<a class="pilcrow" href="#s-2_1_1-2">¶</a></p>
      <p id="s-2_1_1-3">When the Internet was new, it was often viewed as creating a reality that was distinct and different from the ‘real’ offline world. While this point of view is still a common position among Internet protocol designers, it is no longer the case for an increasing proportion of users. The Internet existed before they did, they have been using the Internet since before they could talk. For the Internet generation, there is no online world, only <i>the</i> world.<a class="pilcrow" href="#s-2_1_1-3">¶</a></p>
      <p id="s-2_1_1-4">It is the fact that human interaction identifiers are bound to expectations that give rise to security concerns in defining the mapping from human interaction identifiers to machine. If we are to avoid the need to deal with expectations in the interpretation of Machine Interaction Identifiers, we must use cryptography.<a class="pilcrow" href="#s-2_1_1-4">¶</a></p>
    </section>
    
    <section id="n-machine-interaction-identifiers">
      <h4 id="s-2_2">
        <a class="selfRef" href="#s-2_2">2.2.</a>
        <a class="selfRef" href="#n-machine-interaction-identifiers">Machine Interaction Identifiers</a>
      </h4>
      <p id="s-2_2-1">Traditional Internet names are designed to achieve a balance between human and machine interaction. As a result, these identifiers omit much of the context that we require at the machine level to avoid the need to address the issue of expectations.<a class="pilcrow" href="#s-2_2-1">¶</a></p>
      <p id="s-2_2-2">For example, the identifier https://example.com/ specifies a resource that is to be retrieved by means of a TLS secured conversation but not the trust context in which the communication is to be established. While this is an acceptable, and in many cases an unavoidable situation for a human interaction identifier, it is a circumstance that is often unacceptable in the Internet of Things.<a class="pilcrow" href="#s-2_2-2">¶</a></p>
      <p id="s-2_2-3">Take for example, a high-risk process control application such as the placement of control rods in a nuclear reactor. A control loop critical to plant safety is governed by means of a three-term (PID) controller connected to a temperature sensor, an actuator and the Supervisory Control and Data Acquisition (SCADA) system. We would wish for it to be possible for all these communications to be secured cryptographically but we are required by regulation to account for the correct operation of any infrastructure on which we rely. The introduction of any Trusted Third Party role whether that be a WebPKI CA or a ICANN managing the DNSSEC, is going to be unacceptable.<a class="pilcrow" href="#s-2_2-3">¶</a></p>
      <p id="s-2_2-4">The Mathematical Mesh introduces a new form of name, the Strong Internet Name (SIN). A SIN is a name that is cryptographically bound to a security policy government the interpretation of the name. The use of a SIN is thus bound to a specific trust context.<a class="pilcrow" href="#s-2_2-4">¶</a></p>
      <p id="s-2_2-5">The use of SINs in Mesh enabled applications closely resembles the use of DNS names and IP addresses at the network level. In normal circumstances, the user only interacts with DNS names which are a name designed for human interaction. But the Internet core has no understanding or knowledge of DNS names. The only identifiers understood at the narrow waist are IP Addresses and so we must translate the DNS names to IP addresses to establish Internet communications.<a class="pilcrow" href="#s-2_2-5">¶</a></p>
    </section>
    
    <section id="n-mapping-human-interaction-to-machine">
      <h4 id="s-2_3">
        <a class="selfRef" href="#s-2_3">2.3.</a>
        <a class="selfRef" href="#n-mapping-human-interaction-to-machine">Mapping Human Interaction to Machine</a>
      </h4>
      <p id="s-2_3-1">To make use of a Human Interaction Identifier, it must be first mapped to Machine Interaction identifier. We consider this mapping to be secure if and only if this translation meets the good-faith expectations of the user. If a user encounters a Human Interaction identifier that leads the user to reasonably expect that they will be interacting with their bank, this expectation must be met or a serious security vulnerability is created. <a class="pilcrow" href="#s-2_3-1">¶</a></p>
      <p id="s-2_3-2">The terms ‘reasonable expectation’ and ‘good-faith’ are of course subjective but not entirely without meaning. The various financial institutions that support the use of non-cash payments in the US operate under rules that absolve the user from blame or loss in almost any circumstance but nevertheless manage to profitably transfer an average of over $500 billion every day <a class="xref" href="FedRes2016">[FedRes2016]</a>.<a class="pilcrow" href="#s-2_3-2">¶</a></p>
      <p id="s-2_3-3">The Mesh does not impose a model for mapping human to machine interaction identifiers but it does allow the user to put that mapping under their personal control. Devices connected to a Mesh Personal Profile share the same view of the world; the same set of bookmarks and contacts for defining personal names and the same set of trust roots for Certification Authorities trusted to provide brokered trust.<a class="pilcrow" href="#s-2_3-3">¶</a></p>
      <p id="s-2_3-4">In the existing model, mapping of the address https://example.com/ to a secure TLS endpoint takes place in two stages. First the DNS infrastructure is used to resolve the address example.com to an IP address. Next, the client begins making a connection to the host at the specified IP address, receives and validates a PKIX trust chain to a recognized authority and if satisfactory, declares the TLS connection trusted:<a class="pilcrow" href="#s-2_3-4">¶</a></p>
      <figure id="tbs">
        <div class="artwork art-svg" id="s-2_3-5">
          <img src="discovery1.svg"/>
          <a class="pilcrow" href="#s-2_3-5">¶</a>
        </div>
        <figcaption>
          <a href="tbs">Figure tbs</a>
          <a href="tbs" id="tbs" class="selfRef"></a>
        </figcaption>
      </figure>
      <p id="s-2_3-6">This approach is serviceable for the intended purpose of the WebPKI: Authenticating the Web sites that the user interacts with. It is less satisfactory as the basis for establishing connections in the Hollywood Alice scenario.<a class="pilcrow" href="#s-2_3-6">¶</a></p>
      <p id="s-2_3-7">One of the biggest problems with the traditional approach is that TLS is only used to authenticate the server to the client. The user experience for client certificates remains unacceptable leaving usernames and passwords as the only available credentialing mechanism.<a class="pilcrow" href="#s-2_3-7">¶</a></p>
      <p id="s-2_3-8">Consider the role of the camera in the Hollywood Alice scenario. Alice uses the camera to take pictures but this is only one of four interactions involving the camera. If we are to achieve the Hollywood Alice user experience, these other three interactions must take place without any intervention by Alice. But this is impossible if Alice is required to constantly enter passwords.<a class="pilcrow" href="#s-2_3-8">¶</a></p>
      <figure id="tbs">
        <div class="artwork art-svg" id="s-2_3-9">
          <img src="alicedlsr.svg"/>
          <a class="pilcrow" href="#s-2_3-9">¶</a>
        </div>
        <figcaption>
          <a href="tbs">Figure tbs</a>
          <a href="tbs" id="tbs" class="selfRef"></a>
        </figcaption>
      </figure>
      <p id="s-2_3-10">Another limitation of this approach is that the naming role of the Certificate Authority is limited to validating DNS names. This is a major constraint if our goal is moving beyond use of DNS for naming.<a class="pilcrow" href="#s-2_3-10">¶</a></p>
      <p id="s-2_3-11">To achieve a satisfactory user experience, we need to reverse the order of operations. We make use of trusted authorities when mapping the human interaction identifier to a machine interaction identifier whose interpretation does not depend on a trusted authority. <a class="pilcrow" href="#s-2_3-11">¶</a></p>
      <figure id="tbs">
        <div class="artwork art-svg" id="s-2_3-12">
          <img src="discovery2.svg"/>
          <a class="pilcrow" href="#s-2_3-12">¶</a>
        </div>
        <figcaption>
          <a href="tbs">Figure tbs</a>
          <a href="tbs" id="tbs" class="selfRef"></a>
        </figcaption>
      </figure>
      <p id="s-2_3-13">The most important trusted authority for Alice is of course, Alice herself. While a typical Web user may visit hundreds or even thousands of different Web sites in a month, they will only buy from a rather smaller number and will in most cases use one or two financial institutions.<a class="pilcrow" href="#s-2_3-13">¶</a></p>
      <p id="s-2_3-14">When Alice opens an account with a new financial institution, she adds them to her personal contact directory and (optionally) gives them a shortcut name. In the process, she reviews the credentials presented by the bank, a WebPKI Extended Validation certificate with a logotype extension presenting the Bank trademark. From the point at which the financial institution is added to Alice’s personal contact directory, the role of the Trust Authority is limited to revoking the trust relationship should the need arise. <a class="pilcrow" href="#s-2_3-14">¶</a></p>
      <p id="s-2_3-15">If this approach is to work, we need a new type of Machine Interpretation Identifier, one that can express both the network addressing <i>and</i> the trust relationship to the network endpoint. Strong Internet Names are one possible approach towards that goal.<a class="pilcrow" href="#s-2_3-15">¶</a></p>
    </section>
    
    <section id="n-strong-internet-names">
      <h3 id="s-3">
        <a class="selfRef" href="#s-3">3.</a>
        <a class="selfRef" href="#n-strong-internet-names">Strong Internet Names</a>
      </h3>
      <p id="s-3-1">A Strong Internet Name (SIN) is a name containing a DNS label that is cryptographically bound to a security policy government the interpretation of the name.<a class="pilcrow" href="#s-3-1">¶</a></p>
      <p id="s-3-2">The use of fingerprints of cryptographic keys to establish was introduced in PGP. PGP fingerprints provide a secure means of authenticating the public key(s) of an email user but at the cost of introducing a second identifier for each user that senders must manage in addition to their email address. Like many issues in computing, this is a simple matter until faced with application software that does not support it.<a class="pilcrow" href="#s-3-2">¶</a></p>
      <p id="s-3-3">Use of a SIN DNS label permits these two pieces of information to be combined in a single identifier that is compliant with existing application software by employing the DNS prefix approach introduced by punycode <a class="xref" href="RFC3492">[RFC3492]</a>. It is established that DNS names of the form <code>xx--</code><i><data> </i>(where x is any alphabetic character) are reserved. A SIN DNS label has the form <code>mm--</code><i><UDF-of-policy></i> where <i><UDF-of-policy></i> is the Uniform Data Fingerprint (UDF) of the controlling security policy as described in the following section.<a class="pilcrow" href="#s-3-3">¶</a></p>
    </section>
    
    <section id="n-udf-fingerprint">
      <h4 id="s-3_1">
        <a class="selfRef" href="#s-3_1">3.1.</a>
        <a class="selfRef" href="#n-udf-fingerprint">UDF Fingerprint</a>
      </h4>
      <p id="s-3_1-1">The Uniform Data Fingerprint (UDF) format <a class="xref" href="draft-hallambaker-udf">[draft-hallambaker-udf]</a> was designed to provide common format for representing fingerprints of data objects formed using a cryptographic digest function such as SHA-2 that was easier on the eye than existing URI schemes such as ni <a class="xref" href="RFC6920">[RFC6920]</a>. A UDF fingerprint is formed using Base32 with optional digit separators to improve readability. The following is an example of a UDF:<a class="pilcrow" href="#s-3_1-1">¶</a></p>
      <pre id="s-3_1-2">MB2GK-6DUF5-YGYYL-JNY5E-RWSHZ-SV75J        <a class="pilcrow" href="#s-3_1-2">¶</a>
      </pre>
      <p id="s-3_1-3">Unlike traditional fingerprints calculated from the digest of the data itself, a UDF is a strong function of both the referenced data and the IANA content type.<a class="pilcrow" href="#s-3_1-3">¶</a></p>
      <pre id="s-3_1-4">Fingerprint = <Version-ID> + H (<Content-ID> + ':' + H(<<Data>))        <a class="pilcrow" href="#s-3_1-4">¶</a>
      </pre>
      <p id="s-3_1-5">This approach provides semantic separation between domains. This is necessary to defeat substitution attacks such as presenting an artfully constructed PKIX certificate in a context where a JSON data structure is expected.<a class="pilcrow" href="#s-3_1-5">¶</a></p>
      <p id="s-3_1-6">The Version-ID parameter specifies both the digest function and the method of application. Version-IDs are currently defined for SHA-2-512 and SHA-3-512. The values of these code points have been intentionally chosen to cause the first digit to be either an M (Merkle-Damgard) or an S (Sponge).<a class="pilcrow" href="#s-3_1-6">¶</a></p>
      <p id="s-3_1-7">The specification allows for fingerprint compression in the case that the leading 25, 40, 50 or 55 bits are all zero. This allows a fingerprint of a public key represented in 20 characters (120 bits) to present the same work factor to the attacker as a 25 character fingerprint but at the cost of accepting a 2^25 increase in key generation difficulty.<a class="pilcrow" href="#s-3_1-7">¶</a></p>
    </section>
    
    <section id="n-strong-email-addresses">
      <h4 id="s-3_2">
        <a class="selfRef" href="#s-3_2">3.2.</a>
        <a class="selfRef" href="#n-strong-email-addresses">Strong Email Addresses</a>
      </h4>
      <p id="s-3_2-1">A Strong Email Address is an RFC822 compliant email address in which the DNS address part is a SIN bound to a security policy that is relevant to email. For example:<a class="pilcrow" href="#s-3_2-1">¶</a></p>
      <dl id="s-3_2-2-">
        <dt id="s-3_2-2">A PKIX End-Entity Certificate<a class="pilcrow" href="#s-3_2-2">¶</a></dt>
        <dd id="s-3_2-3">An S/MIME certificate to be used for encryption and/or signature as specified by the certificate keyUsage extensions.<a class="pilcrow" href="#s-3_2-3">¶</a></dd>
        <dt id="s-3_2-4">A PKIX Certificate Signing Certificate<a class="pilcrow" href="#s-3_2-4">¶</a></dt>
        <dd id="s-3_2-5">A root or intermediary certificate under which end user S/MIME certificates must be validated.<a class="pilcrow" href="#s-3_2-5">¶</a></dd>
        <dt id="s-3_2-6">A Mesh/Message Sender Policy<a class="pilcrow" href="#s-3_2-6">¶</a></dt>
        <dd id="s-3_2-7">A comprehensive security policy description language that allows the user to specify the use of S/MIME and OpenPGP keys for encryption and signature and the context in which they are to be used. An example of a possible messaging security policy is described below.<a class="pilcrow" href="#s-3_2-7">¶</a></dd>
      </dl>
      <p id="s-3_2-8">For example, Example Inc. holds the domain name <code>example.com</code> and has deployed a private CA whose root of trust is a PKIX certificate with the UDF fingerprint <code>MB2GK-6DUF5-YGYYL-JNY5E-RWSHZ</code>.<a class="pilcrow" href="#s-3_2-8">¶</a></p>
      <p id="s-3_2-9">Alice is an employee of Example Inc., she uses three email addresses:<a class="pilcrow" href="#s-3_2-9">¶</a></p>
      <dl id="s-3_2-10-">
        <dt id="s-3_2-10">alice@example.com<a class="pilcrow" href="#s-3_2-10">¶</a></dt>
        <dd id="s-3_2-11">A regular email address (not a SIN).<a class="pilcrow" href="#s-3_2-11">¶</a></dd>
        <dt id="s-3_2-12">alice@mm--mb2gk-6duf5-ygyyl-jny5e-rwshz.example.com<a class="pilcrow" href="#s-3_2-12">¶</a></dt>
        <dd id="s-3_2-13">A strong email address that is backwards compatible.<a class="pilcrow" href="#s-3_2-13">¶</a></dd>
        <dt id="s-3_2-14">alice@example.com.mm--mb2gk-6duf5-ygyyl-jny5e-rwshz<a class="pilcrow" href="#s-3_2-14">¶</a></dt>
        <dd id="s-3_2-15">A strong email address that is backwards incompatible.<a class="pilcrow" href="#s-3_2-15">¶</a></dd>
      </dl>
      <p id="s-3_2-16">All three forms of the address are valid RFC822 addresses and may be used in a legacy email client, stored in an address book application, etc. But the ability of a legacy client to make use of the address differs. Addresses of the first type may always be used. Addresses of the second type may only be used if an appropriate MX record is provisioned. Addresses of the third type will always fail unless the resolver understands that it is a SIN requiring special processing.<a class="pilcrow" href="#s-3_2-16">¶</a></p>
      <p id="s-3_2-17">When specified as the destination address in a Mail User Application (MUA), these addresses have the following interpretations:<a class="pilcrow" href="#s-3_2-17">¶</a></p>
      <dl id="s-3_2-18-">
        <dt id="s-3_2-18">alice@example.com<a class="pilcrow" href="#s-3_2-18">¶</a></dt>
        <dd id="s-3_2-19">Send mail to Alice without requiring security enhancements.<a class="pilcrow" href="#s-3_2-19">¶</a></dd>
        <dt id="s-3_2-20">alice@mm--mb2gk-6duf5-ygyyl-jny5e-rwshz.example.com<a class="pilcrow" href="#s-3_2-20">¶</a></dt>
        <dd id="s-3_2-21">Send mail to Alice. If the MUA is SIN-Aware, it <span class="bcp14">MUST</span> resolve the security policy specified by the fingerprint and apply security enhancements as mandated by that policy.<a class="pilcrow" href="#s-3_2-21">¶</a></dd>
        <dt id="s-3_2-22">alice@example.com.mm--mb2gk-6duf5-ygyyl-jny5e-rwshz<a class="pilcrow" href="#s-3_2-22">¶</a></dt>
        <dd id="s-3_2-23">Only send mail to Alice if the MUA is SIN-Aware, it <span class="bcp14">MUST</span> resolve the security policy specified by the fingerprint and apply security enhancements as mandated by that policy.<a class="pilcrow" href="#s-3_2-23">¶</a></dd>
      </dl>
      <p id="s-3_2-24">These rules allow Bob to send email to Alice with either ‘best effort’ security or mandatory security as the circumstances demand.<a class="pilcrow" href="#s-3_2-24">¶</a></p>
    </section>
    
    <section id="n-network-administration">
      <h4 id="s-3_3">
        <a class="selfRef" href="#s-3_3">3.3.</a>
        <a class="selfRef" href="#n-network-administration">Network Administration</a>
      </h4>
      <p id="s-3_3-1">Strong names may also be used for network configuration. Example Inc. might enable users to force users to make use of a SIN-aware email client by configuring the SRV records for the inbound and outbound mail servers as follows:<a class="pilcrow" href="#s-3_3-1">¶</a></p>
      <pre id="s-3_3-2">$origin example.com.
_imap._tcp     SRV 0 1 995 \
               imap.example.com.mm--mb2gk-6duf5-ygyyl-jny5e-rwshz.
_submit._tcp   SRV 0 1 465 \
               smtp.example.com.mm--mb2gk-6duf5-ygyyl-jny5e-rwshz.        <a class="pilcrow" href="#s-3_3-2">¶</a>
      </pre>
      <p id="s-3_3-3">Since the fingerprint <code>mb2gk-</code> is of a PKIX certificate signing certificate, the requirement to use TLS is explicit. This could be specified explicitly by means of a prefixed TXT record as described in <a class="xref" href="RFC6763">[RFC6763]</a>.<a class="pilcrow" href="#s-3_3-3">¶</a></p>
      <p id="s-3_3-4">For example, Alice is a user of the EXAMPLE service, a version management system used at Example Inc. This is a Web Service described by an SRV record as follows:<a class="pilcrow" href="#s-3_3-4">¶</a></p>
      <pre id="s-3_3-5">$origin example.com
_example._tcp  TXT "tls=mb2gk-6duf5-ygyyl-jny5e-rwshz;min=1.2;max=1.3"
_example._tcp  SRV 0 1 443 host1.example.com
_example._tcp  SRV 0 1 443 host2.example.com
_example._tcp.host1 TXT "quic=mm--mb2gk-6duf5-ygyyl-jny5e-rwshz v=2.3"        <a class="pilcrow" href="#s-3_3-5">¶</a>
      </pre>
      <p id="s-3_3-6">Since the UDF fingerprint is used here as a parameter rather than as an embedded part of a DNS name, the <code>mm--</code> prefix is unnecessary and can be omitted. Though it is probably good manners for applications to tolerate its occurrence in cases where it is unnecessary such as the second TXT record.<a class="pilcrow" href="#s-3_3-6">¶</a></p>
      <p id="s-3_3-7">In this example, there are two separate TXT records describing the EXAMPLE service. The first record applies to all hosts that provide the EXAMPLE service and specifies a PKIX intermediary certificate under which the TLS certificate <span class="bcp14">MUST</span> validate if it is to be accepted. The second TXT record applies only to <code>host1</code> and contains additional information specific to that host. In this case host1 offers the quic protocol but host2 does not. <a class="pilcrow" href="#s-3_3-7">¶</a></p>
      <p id="s-3_3-8">It will be noted that this capability allows similar capabilities to the security policy capabilities provided by TLSA records <a class="xref" href="RFC6698">[RFC6698]</a>, but in a form that is directly integrated into SRV discovery and offers greater flexibility. A Security Policy specified in a TXT record is not limited to the TLS protocol or even to TLS based key exchanges. The discovery mechanism described in <a class="xref" href="RFC6763">[RFC6763]</a> has proven utility and is widely used. It is surely time to recognize this fact and back the winner rather than continuing to ignore it for the sake of a favored son.<a class="pilcrow" href="#s-3_3-8">¶</a></p>
      <p id="s-3_3-9">The previous examples demonstrated the use of SINs to perform high level, site wide administration tasks. But the security policy specified in a SIN need not be limited to defining a site wide global root of trust. The following configuration file is used in a robotics project to authenticate command signals between the central controller and various control outputs:<a class="pilcrow" href="#s-3_3-9">¶</a></p>
      <pre id="s-3_3-10">Plunger:      mm--maxxc-2lxmf-2xs4t-foq5w-63djo.local
Exterminator: mm--mcf3x-kzlsh-n2g6z-3iof3-tw43m.local
Dome:         mm--mdn5z-gkz3i-hnqwy-23tnn-sgqzz.local
Lights :      mm--ma3nn-wgc43-i3mnn-qwq43-enm5w.local        <a class="pilcrow" href="#s-3_3-10">¶</a>
      </pre>
      <p id="s-3_3-11">Specifying the computer systems controlling the appendages in this way ensures that the system can continue to function even if it is impossible to validate the trust paths with respect to an external root of trust.<a class="pilcrow" href="#s-3_3-11">¶</a></p>
    </section>
    
    <section id="n-security-policy-specification-">
      <h4 id="s-3_4">
        <a class="selfRef" href="#s-3_4">3.4.</a>
        <a class="selfRef" href="#n-security-policy-specification-">Security Policy Specification </a>
      </h4>
      <p id="s-3_4-1">The UDF format used to construct SINs is calculated over both the content data and the IANA content type. This allows the use of SINs to bind an identify to a security policy described in any language whether currently existing or to be defined in the future. A security policy specification may be explicit or implicit. <a class="pilcrow" href="#s-3_4-1">¶</a></p>
      <p id="s-3_4-2">If a security policy is a PKIX Certificate Signing Certificate or End-Entity Certificate, the use of a security protocol consistent with the certificate attributes and protocol is required. This approach allows the use of SINs to require the use of an appropriate security protocol with specified credentials in a wide variety of legacy application protocols.<a class="pilcrow" href="#s-3_4-2">¶</a></p>
      <p id="s-3_4-3">Implicit security policy is convenient but blunt tool. We can establish a baseline for security in the case that an email address SIN authenticates a PKIX end-entity certificate with the dataEncipherment key usage set (i.e. use of S/MIME encryption is required). But once that baseline security is defined, we can only improve on it by decorating the certificate with additional extensions to specify security policy. This approach is unlikely to be satisfactory in the long term.<a class="pilcrow" href="#s-3_4-3">¶</a></p>
      <p id="s-3_4-4">The introduction of an expressive security policy language defined in an appropriate encoding (e.g. YAML, JSON, XML) offers much more interesting possibilities. For example, we would like an enterprise level security policy to allow specification of security policy parameters such as:<a class="pilcrow" href="#s-3_4-4">¶</a></p>
      <ul id="s-3_4-5-">
        <li id="s-3_4-5">The default DNS zone<a class="pilcrow" href="#s-3_4-5">¶</a></li>
        <li id="s-3_4-6">The UDF of the DNSSEC zone signing key<a class="pilcrow" href="#s-3_4-6">¶</a></li>
        <li id="s-3_4-7">The UDF of the PKIX enterprise CA<a class="pilcrow" href="#s-3_4-7">¶</a></li>
        <li id="s-3_4-8">The network directory protocols supported (e.g. LDAP)<a class="pilcrow" href="#s-3_4-8">¶</a></li>
        <li id="s-3_4-9">The authentication requirements for external network access<a class="pilcrow" href="#s-3_4-9">¶</a></li>
        <li id="s-3_4-10">IPSEC profile<a class="pilcrow" href="#s-3_4-10">¶</a></li>
      </ul>
      <p id="s-3_4-11">At the user level, a security policy would describe the communication identifiers and protocols by which the person could be contacted. It is quite likely that these would be different depending on who is trying to contact them. End-to-end encryption is not an unqualified benefit when it provides an attacker with a channel for bypassing filtering for spam and malware. Thus, a user level security policy is likely to require conditional clauses:<a class="pilcrow" href="#s-3_4-11">¶</a></p>
      <dl id="s-3_4-12-">
        <dt id="s-3_4-12">All senders:<a class="pilcrow" href="#s-3_4-12">¶</a></dt>
        <dd id="s-3_4-13">Must sign their email messages with public key enrolled in a Mesh notary log<a class="pilcrow" href="#s-3_4-13">¶</a></dd>
        <dt id="s-3_4-14">If you are with example.com:<a class="pilcrow" href="#s-3_4-14">¶</a></dt>
        <dd id="s-3_4-15">You may send me encrypted messages of any type, including executable code<a class="pilcrow" href="#s-3_4-15">¶</a></dd>
        <dt id="s-3_4-16">If I have approved you as a sender:<a class="pilcrow" href="#s-3_4-16">¶</a></dt>
        <dd id="s-3_4-17">You may send me encrypted messages but not executable code<a class="pilcrow" href="#s-3_4-17">¶</a></dd>
        <dt id="s-3_4-18">If you are vouched for by a party I trust:<a class="pilcrow" href="#s-3_4-18">¶</a></dt>
        <dd id="s-3_4-19">You may send me an encrypted contact request message containing no more than 4K of text characters<a class="pilcrow" href="#s-3_4-19">¶</a></dd>
        <dt id="s-3_4-20">Otherwise:<a class="pilcrow" href="#s-3_4-20">¶</a></dt>
        <dd id="s-3_4-21">Here is the public key of my spam filter.<a class="pilcrow" href="#s-3_4-21">¶</a></dd>
      </dl>
      <p id="s-3_4-22">While such rules are complex, it is complexity that a user would only ever encounter if they were trying to send a message that violated the rules.<a class="pilcrow" href="#s-3_4-22">¶</a></p>
      <p id="s-3_4-23">As with any configuration language, the specification of a security policy language requires a balance to be struck between simplicity and expressiveness. Discovering the optimal balance is a task left to future work.<a class="pilcrow" href="#s-3_4-23">¶</a></p>
    </section>
    
    <section id="n-resolving-sins">
      <h4 id="s-3_5">
        <a class="selfRef" href="#s-3_5">3.5.</a>
        <a class="selfRef" href="#n-resolving-sins">Resolving SINs</a>
      </h4>
      <p id="s-3_5-1">A SIN provides a mechanism for binding an Internet address to a means of authenticating a security policy under which the name is to be interpreted but does not necessarily provide a means for discovering security policies.<a class="pilcrow" href="#s-3_5-1">¶</a></p>
      <p id="s-3_5-2">This omission is intentional as there are many circumstances in which we would want authorized parties to apply a security policy without disclosing the security policy to unauthorized parties. A security policy must inevitably disclose information that might interest an attacker and so it is information that we should not disclose to parties without a need to know.<a class="pilcrow" href="#s-3_5-2">¶</a></p>
      <p id="s-3_5-3">When a synchronous protocol such as VOIP or chat is used, the security policy governing a SIN may be disclosed in-band during the protocol exchange in which the underlying DNS name is used. This approach does not work as well for asynchronous protocols such as email or for network administration.<a class="pilcrow" href="#s-3_5-3">¶</a></p>
      <p id="s-3_5-4">The Mathematical Mesh provides one possible infrastructure that might be used to resolve SINs to the corresponding security policy, and using a linked notary log approach (aka Blockchain), a mechanism for publishing updates securely. It is not the only infrastructure that might be used, nor is it likely to be the best for every application. For example, a new machine connecting to an enterprise network for the first time might obtain its initial security policy through a DNS CERT record <a class="xref" href="RFC4398">[RFC4398]</a>.<a class="pilcrow" href="#s-3_5-4">¶</a></p>
    </section>
    
    <section id="n-personal-mesh">
      <h3 id="s-4">
        <a class="selfRef" href="#s-4">4.</a>
        <a class="selfRef" href="#n-personal-mesh">Personal Mesh</a>
      </h3>
      <p id="s-4-1">To complete the explanation of how to realize the Hollywood Alice scenario in practice, we turn to a brief overview of the Mesh itself. At the simplest level, the Mesh is simply a tool that allows a user to bind all their disparate electronic devices into one logical unit by means of cryptographic credentials that are in normal circumstances hidden from the user’s view.<a class="pilcrow" href="#s-4-1">¶</a></p>
      <p id="s-4-2">To begin using the Mesh, Alice first creates a personal profile and registers it to a CryptoMesh portal. Alice’s personal profile contains a master profile containing a set of administrative keys that are used to sign updates to the personal profile and master signature key that is used to sign the master profile itself. The fingerprint of the master signature key is the user’s personal mesh fingerprint.<a class="pilcrow" href="#s-4-2">¶</a></p>
      <pre id="s-4-3">meshman /personal alice@prismproof.org "Alice Example"
Fingerprint: MCCW5-PYAX5-ZJ2TU-BVYT6-5Z3E6-DYA3I        <a class="pilcrow" href="#s-4-3">¶</a>
      </pre>
      <p id="s-4-4">A real-life Hollywood Alice would probably use an app on her smartphone for this purpose. For this paper, the command line tool to illustrate examples is more convenient.<a class="pilcrow" href="#s-4-4">¶</a></p>
      <p id="s-4-5">The Cryptomesh is envisaged as an open co-operative infrastructure for management of public Mesh profiles. The CryptoMesh cannot suffer a confidentiality breach as all the data submitted to or created by the CryptoMesh is public. End-to-end confidentiality of private components of personal profiles is achieved by use of strong cryptography.<a class="pilcrow" href="#s-4-5">¶</a></p>
      <p id="s-4-6">Use of the CryptoMesh provides the typical user with all the advantages of a cloud service without the usual disadvantage of being tied to a single cloud provider. Users may change their Mesh portal at any time without notice. All the information that is stored in the CryptoMesh is also stored on the user’s personal devices. <a class="pilcrow" href="#s-4-6">¶</a></p>
      <p id="s-4-7">A user is not even required to use the CryptoMesh at all. Though any party who is security conscious enough to want to run their own private Mesh portal is likely to appreciate the fact that compromise of the private portal while undesirable will not result in a breach of the applications it is used to support.<a class="pilcrow" href="#s-4-7">¶</a></p>
    </section>
    
    <section id="n-connecting-devices">
      <h4 id="s-4_1">
        <a class="selfRef" href="#s-4_1">4.1.</a>
        <a class="selfRef" href="#n-connecting-devices">Connecting Devices</a>
      </h4>
      <p id="s-4_1-1">Having created her personal profile on one of her devices, Alice’s next action is to connect more devices, her new DSLR camera for example. To do this, she simply runs the Mesh administration tool on the new device and specifies the name of the profile to connect to. The tool fetches the personal profile from the portal and reports the UDF fingerprint for Alice to check, should she want to do so.<a class="pilcrow" href="#s-4_1-1">¶</a></p>
      <pre id="s-4_1-2">meshman /connect alice@example.com
Fingerprint: MCCW5-PYAX5-ZJ2TU-BVYT6-5Z3E6-DYA3I
Code: VC25D-QFQE4-OU4VJ-QNPGT-S7V25-QB3JX        <a class="pilcrow" href="#s-4_1-2">¶</a>
      </pre>
      <p id="s-4_1-3">To complete the process, Alice must confirm the connection request on the first device. The manager provides a list of pending connection requests.<a class="pilcrow" href="#s-4_1-3">¶</a></p>
      <pre id="s-4_1-4">meshman /pending
Code: VC25D-QFQE4-OU4VJ-QNPGT-S7V25-QB3JX
    Description: Nikon D850        <a class="pilcrow" href="#s-4_1-4">¶</a>
      </pre>
      <p id="s-4_1-5">Alice verifies that the connection request has the same comparison identifier. This identifier is a fingerprint of Alice’s personal mesh fingerprint and the fingerprint of the new device profile. Thus if the identifiers match, mutual authentication is achieved and Alice accepts the request:<a class="pilcrow" href="#s-4_1-5">¶</a></p>
      <pre id="s-4_1-6">meshman /accept VC25D
Accepted VC25D-QFQE4-OU4VJ-QNPGT-S7V25-QB3JX        <a class="pilcrow" href="#s-4_1-6">¶</a>
      </pre>
      <p id="s-4_1-7">Given an appropriately secured booking system, Alice’s hire car may be connected to her personal profile automatically but only for the limited purpose of receiving commands and preferences from Alice and her connected devices. For the period of the rental, the hire car responds to Alice as its trusted user.<a class="pilcrow" href="#s-4_1-7">¶</a></p>
    </section>
    
    <section id="n-connecting-applications">
      <h4 id="s-4_2">
        <a class="selfRef" href="#s-4_2">4.2.</a>
        <a class="selfRef" href="#n-connecting-applications">Connecting Applications</a>
      </h4>
      <p id="s-4_2-1">Having connected her devices, Alice begins connecting applications. Alice wants all the devices she has connected thus far to have secure email, SSH credential management and Web credential management:<a class="pilcrow" href="#s-4_2-1">¶</a></p>
      <pre id="s-4_2-2">meshman /mail alice@example.com
meshman /ssh
meshman /web        <a class="pilcrow" href="#s-4_2-2">¶</a>
      </pre>
      <p id="s-4_2-3">The Mesh approach to usability is to ask as little of the user as possible. Why bother to ask the user if they want S/MIME or OpenPGP credentials when it is as easy to provide both?<a class="pilcrow" href="#s-4_2-3">¶</a></p>
      <p id="s-4_2-4">Alice connects her cloud storage provider to her personal profile, thus enabling its use by any of her devices that require data storage. <a class="pilcrow" href="#s-4_2-4">¶</a></p>
    </section>
    
    <section id="n-contacts-directory">
      <h4 id="s-4_3">
        <a class="selfRef" href="#s-4_3">4.3.</a>
        <a class="selfRef" href="#n-contacts-directory">Contacts Directory</a>
      </h4>
      <p id="s-4_3-1">Having briefly described the Mesh itself, we may describe the use of the Mesh to support naming infrastructures. One such application is the use of a shared contacts directory across connected devices. This allows the user to create personal names or shortcuts for all the people and devices they might interact with.<a class="pilcrow" href="#s-4_3-1">¶</a></p>
      <p id="s-4_3-2">Alice has created shortcuts in her Mesh contacts directory for ‘Bob’ and ‘Carol’. These shortcuts allowed her to establish the conference call with a voice command. <a class="pilcrow" href="#s-4_3-2">¶</a></p>
    </section>
    
    <section id="n-acknowledgements">
      <h3 id="s-5">
        <a class="selfRef" href="#s-5">5.</a>
        <a class="selfRef" href="#n-acknowledgements">Acknowledgements</a>
      </h3>
      <p id="s-5-1">The ideas in this paper were developed over several years with the aid of Melih Abdulhayoglu, Robin Alden, Rob Stradling and Egemen Tas.<a class="pilcrow" href="#s-5-1">¶</a></p>
    </section>
    
    <section id="n-security-considerations">
      <h3 id="s-6">
        <a class="selfRef" href="#s-6">6.</a>
        <a class="selfRef" href="#n-security-considerations">Security Considerations</a>
      </h3>
      <p id="s-6-1">This document describes the use of identifiers in the Mathematical Mesh and the security concerns that this gives rise to. The concepts of <i>Expectations</i>, <i>Work Factor</i> and <i>Authority</i> are explored.<a class="pilcrow" href="#s-6-1">¶</a></p>
    </section>
    
    <section id="n-expectations">
      <h4 id="s-6_1">
        <a class="selfRef" href="#s-6_1">6.1.</a>
        <a class="selfRef" href="#n-expectations">Expectations</a>
      </h4>
      <p id="s-6_1-1">Whenever humans are required to interact with an identifier, their reasonable expectations must be met. Rather too often, it is the protocol designer’s expectations of the user rather than the user’s expectations of the protocol that have been primary. <a class="pilcrow" href="#s-6_1-1">¶</a></p>
    </section>
    
    <section id="n-work-factor">
      <h4 id="s-6_2">
        <a class="selfRef" href="#s-6_2">6.2.</a>
        <a class="selfRef" href="#n-work-factor">Work Factor</a>
      </h4>
      <p id="s-6_2-1">No security infrastructure is invulnerable. Given infinite computing resources, even the strongest code can be broken. What matters is how difficult the security infrastructure is to break. When considering the strength of a cryptographic algorithm we consider the <i>work factor</i> measured in operations. Work factors of 2<sup>128</sup> or greater are generally considered to be prohibitively difficult to break if the algorithm is secure regardless of future computing advances. Work factors of 2<sup>256</sup> or greater present a generous safety margin.<a class="pilcrow" href="#s-6_2-1">¶</a></p>
      <p id="s-6_2-2">Unfortunately, the cryptography used in a security system is rarely the weakest link. Thus, when considering systems rather than algorithms, an estimate of cost (i.e. in dollars or other currency) is more informative. The architecture of the WebPKI was originally developed using a work factor based on the estimated cost of obtaining a false credential and the expected criminal gain. Deterrence is achieved when the apparent cost is greater than the apparent gain.<a class="pilcrow" href="#s-6_2-2">¶</a></p>
      <p id="s-6_2-3">As noted in a previous paper <a class="xref" href="draft-hallambaker-prismproof-trust">[draft-hallambaker-prismproof-trust]</a>, linked notary log technology (aka Blockchain) makes the cost of a backdating attack, near infinite. This property may be used to advantage in developing a naming infrastructure. <a class="pilcrow" href="#s-6_2-3">¶</a></p>
    </section>
    
    <section id="n-authority">
      <h4 id="s-6_3">
        <a class="selfRef" href="#s-6_3">6.3.</a>
        <a class="selfRef" href="#n-authority">Authority</a>
      </h4>
      <p id="s-6_3-1">The use of any identifier whose interpretation relies on the action of an external authority raises the problem of delegating trust. The problem is the same whether the authority be a single entity (e.g. ICANN) or multiple entities (e.g. WebPKI Certificate Authorities). <a class="pilcrow" href="#s-6_3-1">¶</a></p>
      <p id="s-6_3-2">Terms of debate which allow one type of authority to be attacked relentlessly while holding the other as unimpeachable are unacceptable and must be discarded. Any party that proposes to act as an authority in any form of naming scheme must accept that they are accountable to the community they serve. <a class="pilcrow" href="#s-6_3-2">¶</a></p>
      <p id="s-6_3-3">The approach described in this paper does not eliminate the authority problem but does allow it to be confined to the problem of mapping human interaction identifiers to other forms of identifier. Secure Internet Names are identifiers that are bound to a specific security policy governing their interpretation, allowing the role of any authority to be absolutely circumscribed.<a class="pilcrow" href="#s-6_3-3">¶</a></p>
    </section>
    
    <section id="n-iana-considerations">
      <h3 id="s-7">
        <a class="selfRef" href="#s-7">7.</a>
        <a class="selfRef" href="#n-iana-considerations">IANA Considerations</a>
      </h3>
      <p id="s-7-1">This document has no considerations for IANA.<a class="pilcrow" href="#s-7-1">¶</a></p>
    </section>
    
    <section id="n-references">
      <h2>
        <a class="selfRef" href="#n-references">References</a>
      </h2>
      <section id="informative">
        <h3>
          <a class="selfRef" href="#informative">Informative References</a>
        </h3>
        <dl class="reference">
          <dt id="RFC3986">[RFC3986]</dt>
          <dd>
            <span class="refAuthor">T. Berners-Lee</span>
            <span>and</span>
            <span class="refAuthor">R. Fielding</span>
            <span>and</span>
            <span class="refAuthor">L. Masinter</span>
            "<span class="refTitle">Uniform Resource Identifier (URI): Generic Syntax</span>"
            <span Class="refSeries">
              <span class="refSeriesName">STD</span>
              <span class="refSeriesValue">66</span>
            </span>
            <span Class="refSeries">
              <span class="refSeriesName">RFC</span>
              <span class="refSeriesValue">3986</span>
            </span>
            <span Class="refSeries">
              <span class="refSeriesName">DOI</span>
              <span class="refSeriesValue">10.17487/RFC3986</span>
            </span>
            <time class="refDate" datetime="2005-01">January 2005</time>
          </dd>
          <dt id="RFC3709">[RFC3709]</dt>
          <dd>
            <span class="refAuthor">S. Santesson</span>
            <span>and</span>
            <span class="refAuthor">R. Housley</span>
            <span>and</span>
            <span class="refAuthor">T. Freeman</span>
            "<span class="refTitle">Internet X.509 Public Key Infrastructure: Logotypes in X.509 Certificates</span>"
            <span Class="refSeries">
              <span class="refSeriesName">RFC</span>
              <span class="refSeriesValue">3709</span>
            </span>
            <span Class="refSeries">
              <span class="refSeriesName">DOI</span>
              <span class="refSeriesValue">10.17487/RFC3709</span>
            </span>
            <time class="refDate" datetime="2004-02">February 2004</time>
          </dd>
          <dt id="FedRes2016">[FedRes2016]</dt>
          <dd>
            "<span class="refTitle">The Federal Reserve Payments Study 2016</span>"
            <<a class="refTarget">https://www.federalreserve.gov/newsevents/press/other/2016-payments-study-20161222.pdf</a>>
            <time class="refDate" datetime="2016-12">December 2016</time>
          </dd>
          <dt id="RFC3492">[RFC3492]</dt>
          <dd>
            <span class="refAuthor">A. Costello</span>
            "<span class="refTitle">Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)</span>"
            <span Class="refSeries">
              <span class="refSeriesName">RFC</span>
              <span class="refSeriesValue">3492</span>
            </span>
            <span Class="refSeries">
              <span class="refSeriesName">DOI</span>
              <span class="refSeriesValue">10.17487/RFC3492</span>
            </span>
            <time class="refDate" datetime="2003-03">March 2003</time>
          </dd>
          <dt id="RFC6920">[RFC6920]</dt>
          <dd>
            <span class="refAuthor">S. Farrell</span>
            <span>and</span>
            <span class="refAuthor">D. Kutscher</span>
            <span>and</span>
            <span class="refAuthor">C. Dannewitz</span>
            <span>and</span>
            <span class="refAuthor">B. Ohlman</span>
            <span>and</span>
            <span class="refAuthor">A. Keranen</span>
            <span>and</span>
            <span class="refAuthor">P. Hallam-Baker</span>
            "<span class="refTitle">Naming Things with Hashes</span>"
            <span Class="refSeries">
              <span class="refSeriesName">RFC</span>
              <span class="refSeriesValue">6920</span>
            </span>
            <span Class="refSeries">
              <span class="refSeriesName">DOI</span>
              <span class="refSeriesValue">10.17487/RFC6920</span>
            </span>
            <time class="refDate" datetime="2013-04">April 2013</time>
          </dd>
          <dt id="RFC6763">[RFC6763]</dt>
          <dd>
            <span class="refAuthor">S. Cheshire</span>
            <span>and</span>
            <span class="refAuthor">M. Krochmal</span>
            "<span class="refTitle">DNS-Based Service Discovery</span>"
            <span Class="refSeries">
              <span class="refSeriesName">RFC</span>
              <span class="refSeriesValue">6763</span>
            </span>
            <span Class="refSeries">
              <span class="refSeriesName">DOI</span>
              <span class="refSeriesValue">10.17487/RFC6763</span>
            </span>
            <time class="refDate" datetime="2013-02">February 2013</time>
          </dd>
          <dt id="RFC6698">[RFC6698]</dt>
          <dd>
            <span class="refAuthor">P. Hoffman</span>
            <span>and</span>
            <span class="refAuthor">J. Schlyter</span>
            "<span class="refTitle">The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</span>"
            <span Class="refSeries">
              <span class="refSeriesName">RFC</span>
              <span class="refSeriesValue">6698</span>
            </span>
            <<a class="refTarget">http://www.rfc-editor.org/rfc/rfc6698.txt</a>>
            <time class="refDate" datetime="2012-08">August 2012</time>
          </dd>
          <dt id="RFC4398">[RFC4398]</dt>
          <dd>
            <span class="refAuthor">S. Josefsson</span>
            "<span class="refTitle">Storing Certificates in the Domain Name System (DNS)</span>"
            <span Class="refSeries">
              <span class="refSeriesName">RFC</span>
              <span class="refSeriesValue">4398</span>
            </span>
            <span Class="refSeries">
              <span class="refSeriesName">DOI</span>
              <span class="refSeriesValue">10.17487/RFC4398</span>
            </span>
            <time class="refDate" datetime="2006-03">March 2006</time>
          </dd>
          <dt id="draft-hallambaker-mesh-architecture">[draft-hallambaker-mesh-architecture]</dt>
          <dd>
            <span class="refAuthor">Phillip Hallam-Baker</span>
            "<span class="refTitle">Mathematical Mesh: Architecture</span>"
            <span Class="refSeries">
              <span class="refSeriesName">Internet-Draft</span>
              <span class="refSeriesValue">draft-hallambaker-mesh-architecture-03</span>
            </span>
            <<a class="refTarget">http://www.ietf.org/internet-drafts/draft-hallambaker-mesh-architecture-03.txt</a>>
            <time class="refDate" datetime="2017-05-9">9 May 2017</time>
          </dd>
          <dt id="draft-hallambaker-udf">[draft-hallambaker-udf]</dt>
          <dd>
            <span class="refAuthor">Phillip Hallam-Baker</span>
            "<span class="refTitle">Uniform Data Fingerprint (UDF)</span>"
            <span Class="refSeries">
              <span class="refSeriesName">Internet-Draft</span>
              <span class="refSeriesValue">draft-hallambaker-udf-05</span>
            </span>
            <<a class="refTarget">http://www.ietf.org/internet-drafts/draft-hallambaker-udf-05.txt</a>>
            <time class="refDate" datetime="2017-05-9">9 May 2017</time>
          </dd>
          <dt id="draft-hallambaker-prismproof-trust">[draft-hallambaker-prismproof-trust]</dt>
          <dd>
            <span class="refAuthor">Phillip Hallam-Baker</span>
            "<span class="refTitle">PRISM Proof Trust Model</span>"
            <span Class="refSeries">
              <span class="refSeriesName">Internet-Draft</span>
              <span class="refSeriesValue">draft-hallambaker-prismproof-trust-01</span>
            </span>
            <<a class="refTarget">http://www.ietf.org/internet-drafts/draft-hallambaker-prismproof-trust-01.txt</a>>
            <time class="refDate" datetime="2014-10-27">27 October 2014</time>
          </dd>
        </dl>
      </section>
      
    </section>
    
    <section id="author-addresses">
      <h2>
        <a class="selfRef" href="#author-addresses">Authors' Addresses</a>
      </h2>
      <hr class="addr"/>
      <address class="vcard">
        <div class="nameRole">
          <span class="fn">Phillip Hallam-Baker</span>
        </div>
        <div class="org">Comodo Group Inc.</div>
        <div>
          <span>Email:</span>
          <a class="email" href="mailto:philliph@comodo.com">philliph@comodo.com</a>
        </div>
      </address>
    </section>
    
    <div class="docInfo">
      <span class="prepared">
        Prepared: 
        <time datetime="2017-08-11">2017-08-11</time>
      </span>
      <span class="rendered">
        Rendered: 
        <time datetime="2017-08-11">2017-08-11</time>
      </span>
    </div>
    
    <script src="xml2rfc.js" type="text/javascript"></script>
  </body>
</html>