<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-macaddress-on-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>Media Access Control (MAC) Addresses in X.509 Certificates</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-macaddress-on-03"/>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <author initials="C." surname="Bonnell" fullname="Corey Bonnell">
      <organization abbrev="DigiCert">DigiCert, Inc.</organization>
      <address>
        <email>corey.bonnell@digicert.com</email>
      </address>
    </author>
    <author initials="J." surname="Mandel" fullname="Joe Mandel">
      <organization abbrev="AKAYLA">AKAYLA, Inc.</organization>
      <address>
        <email>joe@akayla.com</email>
      </address>
    </author>
    <author initials="T." surname="Okubo" fullname="Tomofumi Okubo">
      <organization abbrev="Penguin Securities">Penguin Securities Pte. Ltd.</organization>
      <address>
        <email>tomofumi.okubo+ietf@gmail.com</email>
      </address>
    </author>
    <author initials="M." surname="StJohns" fullname="Michael StJohns">
      <organization>NthPermutation Security LLC</organization>
      <address>
        <email>msj@nthpermutation.com</email>
      </address>
    </author>
    <date year="2026" month="January" day="29"/>
    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>MACsec</keyword>
    <keyword>802.1AE</keyword>
    <keyword>X.509</keyword>
    <keyword>SubjectAltName</keyword>
    <abstract>
      <?line 62?>

<t>This document defines a new GeneralName.otherName for inclusion in the X.509 Subject Alternative Name (SAN) and Issuer Alternative Name (IAN) extensions to carry an IEEE Media Access Control (MAC) address. The new name form makes it possible to bind a layer‑2 interface identifier to a public key certificate. Additionally, this document defines how constraints on this name form can be encoded and processed in the X.509 Name Constraints extension (NCE).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://CBonnell.github.io/draft-housley-lamps-macaddress-on/draft-ietf-lamps-macaddress-on.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-macaddress-on/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/CBonnell/draft-housley-lamps-macaddress-on"/>.</t>
    </note>
  </front>
  <middle>
    <?line 66?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Deployments that use X.509 certificates to identify a device by a Media Access Control (MAC) address need a standard way to encode it in the Subject Alternative Name (SAN) extension defined in <xref target="RFC5280"/>. This document defines a new otherName form "MACAddress". The name form carries either a 48‑bit IEEE 802 MAC address (EUI‑48) or a 64‑bit extended identifier (EUI‑64) in an OCTET STRING. Additionally, the name form also can convey constraints on EUI-48 or EUI-64 values when included in the Name Constraints extension (NCE) defined in <xref target="RFC5280"/>. The new name form enables certificate‑based authentication at layer 2 and facilitates secure provisioning in Internet‑of‑Things and automotive networks.</t>
      <t>Note that while this construct may be used to carry EUI-48 or EUI-64 addresses in an IAN extension, there are probably few, if any, reasons to do so.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="macaddress-othername">
      <name>MACAddress otherName</name>
      <t>In this document "otherName", "OtherName" and "GeneralName.otherName" all refer to a GeneraName.otherName field included in a SAN or IAN.  The new name form is identified by the object identifier (OID) id‑on‑MACAddress (TBD1) and declared below using the OTHER-NAME class declaration syntax. The name form has variants to convey a EUI-48 as an OCTET STRING comprising of 6 octets, or a EUI-64 as an OCTET STRING comprising of 8 octets. Constraints on EUI-48 and EUI-64 values are conveyed as OCTET STRINGs whose lengths are twice the octet length of the identifiers. The first set of N octets (where N is the length of the address octets) define the bit pattern of the constraint that the address must match, and the second set of N octets defines the bit mask that defines the set of significant bits in the bit pattern.</t>
      <t>The following sub-sections describe how to encode EUI-48 and EUI-64 values and their corresponding constraints.</t>
      <section anchor="encoding-a-macaddress-as-an-alternative-name">
        <name>Encoding a MACAddress as an alternative name</name>
        <t>When the name form is included in a SAN or IAN extension as an OtherName, the syntax consists of exactly six or eight octets. Values are encoded with the most significant octet encoded first ("big-endian" or "left-to-right" encoding). No text representation is permitted in the certificate, as human‑readable forms such as "00‑24‑98‑7B‑19‑02" or "0024.987B.1902" are used only in management interfaces. When a device natively possesses a 48‑bit MAC identifier, the CA <bcp14>MUST</bcp14> encode it using a 6‑octet OCTET STRING as the MACAddress value. When the device’s factory identifier is a 64‑bit EUI‑64 or when no canonical 48‑bit form exists, the CA <bcp14>MUST</bcp14> encode it using an 8‑octet OCTET STRING as the MACAddress value.</t>
        <t>Example: 00-24-98-7B-19-02 encodes as OCTET STRING '0024987B1902'H.</t>
      </section>
      <section anchor="encoding-a-macaddress-constraint">
        <name>Encoding a MACAddress constraint</name>
        <t>When the name form is included in the NCE, the syntax consists of an OCTET STRING that is twice as long as the OCTET STRING representation of the address type being constrained. Within the OCTET STRING, two elements are encoded:</t>
        <ol spacing="normal" type="1"><li>
            <t>The first set of N octets (where N is 6 for an EUI-48 constraint or 8 for an EUI-64 constraint) contains the "value bit pattern". This bit pattern encodes the bits that the masked address must contain to be considered a match.</t>
          </li>
          <li>
            <t>The second set of N octets encodes the "mask bit pattern" of the constraint. Each bit that is asserted in the mask bit pattern indicates that the bit in the same position in the address is constrained by the first set of N octets.</t>
          </li>
        </ol>
        <t>For example, a constraint that specifies that the the acceptable names must all be within an Organizationally Unique Identifier (OUI) of '00-00-5e' for an EUI-48 address, would have a value part of '00005E000000'H, a mask part of 'FFFFFFFF000000'H and would be encoded as OCTET STRING '00005E000000FFFFFF000000'H.</t>
        <t>The bit patterns encoded in both the value bit pattern and mask bit pattern are encoded with the most significant bit encoded first ("big-endian" or "left-to-right" encoding).</t>
        <t>If a bit is not asserted in the mask bit pattern, then the CA <bcp14>MUST NOT</bcp14> assert the corresponding bit in the value bit pattern. This rule ensures that a canonical encoding is used for a given mask bit pattern and value bit pattern.</t>
        <t>Per <xref target="RFC5280"/>, NCE are valid in and <bcp14>MUST</bcp14> be placed only in CA certificates.</t>
      </section>
      <section anchor="generation-and-validation-rules">
        <name>Generation and Validation Rules</name>
        <t>A certificate <bcp14>MAY</bcp14> include one or more MACAddress otherName values if, and only if, the subject device owns (or is expected to own) the corresponding MAC address for the certificate lifetime. MAC addresses <bcp14>SHOULD NOT</bcp14> appear in more than one valid certificate issued by the same Certification Authority (CA) at the same time, unless different layer‑2 interfaces share a public key.</t>
        <t>A Relying party that matches a presented MAC address to a certificate <bcp14>SHALL</bcp14> perform a byte-for-byte comparison of the OCTET STRING contents. Canonicalization, case folding, or removal of delimiter characters <bcp14>MUST NOT</bcp14> be performed.</t>
        <t>Wildcards are not supported.</t>
        <t>Self-signed certificates that carry a MACAddress otherName <bcp14>SHOULD</bcp14> include the address of one of the device's physical ports.</t>
      </section>
      <section anchor="name-constraints-extension-path-processing">
        <name>Name Constraints Extension Path Processing</name>
        <t>The MACAddress otherName follows the general rules for otherName constraints in <xref target="RFC5280"/>, Section 4.2.1.10. An NCE <bcp14>MAY</bcp14> impose permittedSubtrees and excludedSubtrees on OtherNames of type id‑on‑MACAddress.</t>
        <t>In the pseudo-code below, 'mask' is shorthand for the bit string formed from the mask portion of a constraint (e.g., the second set of N octets in the constraint, where N is 6 for an EUI-48 constraint or 8 for an EUI-64 constraint). Similarly, 'value' refers to the bit string formed from the first set of N octets in the constraint.</t>
        <t>The declaration 'constraint' used below indicates an OtherName.MACAddress constraint value/mask pair - with fields 'mask', 'value' and 'length'.  '.length' as a field returns the byte length of the complete encoded constraint - either 12 or 16 depending on the type of constraint.  The declaration 'name' used below represents an OtherName.MACAddress name with fields 'value' and 'length'. Length is either 6 or 8 representing the encoded name's length.</t>
        <section anchor="matching-rule">
          <name>Matching Rule</name>
          <t>To determine if a name matches a given constraint, the certificate-consuming application performs the following algorithm:</t>
          <ol spacing="normal" type="1"><li>
              <t>If the name is 6 octets (representing an EUI-48 value) and the constraint is 16 octets (representing an EUI-64 constraint), then the name does not match the constraint.</t>
            </li>
            <li>
              <t>If the name is 8 octets (representing an EUI-64 value) and the constraint is 12 octets (representing an EUI-48 constraint), then the name does not match the constraint.</t>
            </li>
            <li>
              <t>Extract the value bit pattern from the upper (big-endian) N octets of the constraint, where N is "6" for EUI-48 identifiers and "8" for EUI-64 identifiers.</t>
            </li>
            <li>
              <t>Extract the mask bit pattern from the lower (big-endian) N octets of the constraint, where N is "6" for EUI-48 identifiers and "8" for EUI-64 identifiers.</t>
            </li>
            <li>
              <t>Perform an exclusive OR (XOR) operation with the value bit string extracted in step 3 and the octets of the name value.</t>
            </li>
            <li>
              <t>Perform a bitwise AND operation with the bit string calculated in step 5 and the mask bit pattern.</t>
            </li>
            <li>
              <t>If the result of step 6 is a bit string consisting of entirely zeros, then the name matches the constraint. Conversely, if the result of the operation is a bit string with at least one bit asserted, then the name does not match the constraint.</t>
            </li>
          </ol>
          <t>The algorithm can be alternatively expressed as:</t>
          <artwork><![CDATA[
// Returns true if 'name n' matches 'constraint c'
boolean nameMatchesConstraint (name n, constraint c) {
   return ((2 * n.length) == c.length &&
           ((c.value ^ n.value) &
            c.mask) == 0) ;
}
]]></artwork>
          <t>For example, a constraint of '000000000000 030000000000'H will be matched by any universal/unicast EUI-48 address such as 00-00-5e-00-50-34.  A constraint of '00005E000000 FFFFFF000000'H will be matched by any universal/unicast address with a OUI of 00-00-5E - i.e., it will also match 00-00-5e-00-50-34.  Note that '00-00-5E' is an OUI controlled by IANA.</t>
          <t>Implementations are not required to implement this algorithm, but <bcp14>MUST</bcp14> calculate an identical result to this algorithm for a given set of inputs.</t>
        </section>
        <section anchor="othernamemacaddress-path-validation-processing">
          <name>OtherName.MACAddress Path Validation Processing</name>
          <t>This section describes the Path Validation Processing specific to OtherName.MACAddress constraints.  N.B., It is possible to build hierarchies of NCEs for OtherName.MACAddress's that prohibit ALL names, even if that wasn't intended. For example, say that your level 1 NCE contained only a "permitted_subtrees" of only (OtherName.MACAddress) global/unicast EUI-48, and your level 2 NCE contained only a "permitted_subtress" of "any address" (i.e. the initial constraint set).  This would result in an empty permitted_subtrees set as an "any address" constraint is not contained within a "global/unicast" constraint. The worked example is left to the reader.</t>
          <t>The following is a utility function used to determine whether or not the set of matching addresses for one MACAddress constraint is a subset of the matching addresses for another constraint.</t>
          <t>Examples - given the following (using the IANA assigned DOI) - 'child' is a constraint wholly contained within 'parent':</t>
          <artwork><![CDATA[
constraint parent = '000000000000 000000000000'H
constraint child =  '00005E000000 FCFFFF000000'H
]]></artwork>
          <t>'child' is a subset of parent because:
1) They are the same length (both EUI-48 constraints) and
2) The child.mask ANDed with the parent.mask equals the parent mask and
3) The bits in the child.value under the parent.mask are set to the same values as the bits in the parent.value under the parent mask.</t>
          <t>Note that the child mask allows for any combination of the local/universal and unicast/multicast address bits within the OUI of 00-00-0e.</t>
          <t>If you had 'constraint child2 = '00005E005000 FFFFFFFFFFF00'H and compared it to 'child', 'child2' would be a subset of 'child'.  'child2' uses the same OUI as 'child', but further restricts the matching addresses to universal/unicast by turning on the '0300000000'H mask bits and also restricts the range of valid addresses from 00-00-5E-00-50-00 to 00-00-5E-00-50-FF - i.e., to the 'example' range for the 00-00-5E OUI.</t>
          <artwork><![CDATA[
// Both 'child' and 'parent' are OtherName.MACAddress
// constraints.
// Returns true if all addresses that match child, also match
// parent, false otherwise
// Used to calculate INTERSECTION sets for
// OtherName.MACAddress constraints.
boolean childIsSubsetOfParent (constraint c, constraint p)
  return (
     // if the lengths are the same
     c.length == p.length &&
     // and if there are no bits set in the parent's mask that
     //    aren't also set in the child's mask
     // e.g. we can add mask bits to the current set, we can't remove them
     (c.mask & p.mask) == p.mask &&
     // and if the child's value has at least all the bits set that
     //   were set (and live) in the parent's value
     // e.g. we can't change the values of the live bits from the superior constraint
     (c.value & p.mask) == (p.value & p.mask)
    );
}
]]></artwork>
          <section anchor="initialization">
            <name>Initialization</name>
            <t>Per sections 6.1.1 (h) and (i) of <xref target="RFC5280"/>, we need to specify NCE OtherName.MACAddress set values for both the initial-permitted-subtrees and for initial-excluded-subtrees.  For initial-permitted-subtree, the first constraint is "accept all EUI-48 MACAddresses", and the second constraint is "accept all EUI-64 MACAddresses":</t>
            <artwork><![CDATA[
initial-permitted-subtrees{} += { 000000000000000000000000H,
                                  00000000000000000000000000000000H }
initial-excluded-subtrees{} += { };
]]></artwork>
          </section>
          <section anchor="intersection-operation">
            <name>Intersection Operation</name>
            <t>See Section 6.1.4 (g) (1) of <xref target="RFC5280"/>.  As we walk down the tree from the root, the set of permitted_subtrees can only stay the same or shrink. At each level, we clear the set of permitted_subtrees and for each NCE OtherName.MACAddress.permitted_subtree constraint in the certificate we look to see if there is a permitted_subtree constraint at the previous level that equals or encloses this new constraint.  If so, we add this new constraint to the current level's set of permitted_subtrees.  We repeat this going down the tree for the remaining CA certificates.</t>
            <t>The intersection of the set of OtherName.MACAddress current permitted_subtrees with each certificate in the path is as follows:</t>
            <artwork><![CDATA[
// This logic can be used for both MACAddress and iPAddress OtherName types
// Initialize -
permitted_subtrees{} (0) = initial-permitted-subtrees;

// Foreach certificate i = (1..n) in the path {
set constraint prevSubtrees{}  =
   { the set of OtherName.MACAddress.permitted_subtrees
     from the permitted_subtree{} (i-1) variable};
constraint tempPermittedSubtrees {} = {};
constraint tempRequestedSubtrees {} =
   { the set of OtherName.MACAddress.permitted_subtrees from
     the Name Constraints extension in the current certificate };

// rst => one of the requested subtrees (from the cert)
// pst -> one of the current permitted subtrees
foreach ( constraint rst in tempRequestedSubtrees) {
    foreach ( constraint pst in prevSubtrees) {
          if (childIsSubsetofParent (rst,
                                   pst) {
                tempPermittedSubtrees += requestedSubtree;
                break;
          }
     }
 }

permitted_subtrees{} (i) = tempPermittedSubtree;
// } end for each CA cert on path

]]></artwork>
          </section>
          <section anchor="union-operation">
            <name>Union Operation</name>
            <t>See Section 6.1.4 (g) (2) of <xref target="RFC5280"/>.  Unlike permitted_subtrees which is the intersection of the NCEs  at each level, excluded_subtrees are the union of all constraints.  Starting with an excluded_trees empty set, with each level add to that set any constraints from the CA certificates that are not already in the set, or that are not covered by a constraint already in the set.</t>
            <t>The union of the set of OtherName.MACAddress current excluded_subtrees with each certificate in the path is as follows:</t>
            <artwork><![CDATA[
// Initialize
excluded_subtrees{} (0) = initial-excluded-subtrees;

// Foreach certificate i = (1..n) in the path {
// Since we're doing a union operation we start with
// what was excluded at the previous level and try and
// add to it.
tempExcludedSubtrees {} =
  { the set of OtherName.MACAddress.excluded_subtrees from
    excluded_subtrees (i-1) };
tempRequestedSubtrees {} =
  { the set of OtherName.MACAddress.excluded_subtrees from
    the current certificate };

// note that the ordering of the loop here differs
// from the 'intersection' operation.
foreach (constraint rExcl in tempRequestedSubtrees) {
  boolean matches = false;
  foreach (constraint est in tempExcludedSubtrees) {
      // If I find a constraint in the current excluded
      // constraints that 'covers' the requested subtree,
      // I do not need to add the requested subtree
      // to the set of excluded subtrees.
      if (childIsSubsetParent (rExcl, est)) {
        matches = true;
        break;
      }
   }
   if (!matches) {
      tempExcludedSubtrees += rExcl;
   }
}
// } end foreach certificate in the path
excluded_subtrees{} (i) = tempExcludedSubtrees;
]]></artwork>
          </section>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The binding of a MAC address to a certificate is only as strong as the CA's validation process. CAs <bcp14>MUST</bcp14> verify that the subscriber legitimately controls or owns the asserted MAC address.</t>
      <t>Some systems dynamically assign or share MAC addresses. Such practices can undermine the uniqueness and accountability that this name form aims to provide.</t>
      <t>Unlike IP addresses, MAC addresses are not typically routed across layer 3 boundaries. Relying parties in different broadcast domains <bcp14>SHOULD NOT</bcp14> assume uniqueness beyond their local network.</t>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>A MAC address can uniquely identify a physical device and by extension, its user. Certificates that embed unchanging MAC addresses facilitate long-term device tracking. Deployments that use the MACAddress name <bcp14>SHOULD</bcp14> consider rotating addresses, using temporary certificates, or employing MAC Address Randomization where feasible.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to make the following assignments in the "SMI Security for PKIX Module Identifier" (1.3.6.1.5.5.7.0) registry:</t>
      <artwork><![CDATA[
    +=========+====================================+===============+
    | Decimal | Description                        | References    |
    +=========+====================================+===============+
    | TBD0    | id-mod-mac-address-other-name-2025 | This document |
    +---------+------------------------------------+---------------+
]]></artwork>
      <t>IANA is requested to make the following assignment in the "SMI Security for PKIX Other Name Forms" (1.3.6.1.5.5.7.8) registry:</t>
      <artwork><![CDATA[
    +=========+=================================+===============+
    | Decimal | Description                     | References    |
    +=========+=================================+===============+
    | TBD1    | id-on-MACAddress                | This document |
    +---------+---------------------------------+---------------+
]]></artwork>
    </section>
    <section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <t>This Appendix contains the ASN.1 Module for the MAC Address; it follows the conventions established by <xref target="RFC5912"/>.</t>
      <artwork><![CDATA[
MACAddressOtherName-2025
  { iso(1) identified-organization(3) dod(6) internet(1)
    security(5) mechanisms(5) pkix(7) id-mod(0)
    id-mod-mac-address-other-name-2025(TBD0) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN

IMPORTS
  OTHER-NAME FROM PKIX1Implicit-2009
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-pkix1-implicit-02(59) }

 id-pkix FROM PKIX1Explicit-2009
   { iso(1) identified-organization(3) dod(6) internet(1)
     security(5) mechanisms(5) pkix(7) id-mod(0)
     id-mod-pkix1-explicit-02(51) } ;

-- id-pkix 8 is the otherName arc
id-on  OBJECT IDENTIFIER ::= { id-pkix 8 }

-- OID for this name form
id-on-MACAddress OBJECT IDENTIFIER ::= { id-on TBD1 }

-- Contents of the otherName field
MACAddressOtherNames OTHER-NAME ::= { on-MACAddress, ... }

on-MACAddress OTHER-NAME ::= {
    MACAddress IDENTIFIED BY id-on-MACAddress }

MACAddress ::= OCTET STRING (SIZE (6 | 8 | 12 | 16))

END
]]></artwork>
    </section>
    <section anchor="mac-address-othername-examples">
      <name>MAC Address otherName Examples</name>
      <section anchor="eui-48-identifier">
        <name>EUI-48 identifier</name>
        <t>The following is a human-readable summary of the Subject Alternative
Name extension from a certificate containing a single MACAddress
otherName with value 00-24-98-7B-19-02:</t>
        <artwork><![CDATA[
  SEQUENCE {
    otherName [0] {
      OBJECT IDENTIFIER id-on-MACAddress
      [0] OCTET STRING '0024987B1902'H
    }
  }
]]></artwork>
      </section>
      <section anchor="eui-64-identifier">
        <name>EUI-64 identifier</name>
        <t>An EUI-64 example (AC-DE-48-00-11-22-33-44):</t>
        <artwork><![CDATA[
  [0] OCTET STRING 'ACDE480011223344'H
]]></artwork>
      </section>
      <section anchor="eui-48-constraint-for-universal-unicast-addresses">
        <name>EUI-48 constraint for universal, unicast addresses</name>
        <t>The first octet of a MAC address contains two flag bits. IEEE bit numbering has bit '0' as the least significant bit of the octet because that is the bit transmitted first.</t>
        <ul spacing="normal">
          <li>
            <t>Individual(I)/Group(G) bit (bit 0 or mask 0x01) – 0 = unicast, 1 = multicast.  Multicast prefixes are never OUIs.</t>
          </li>
          <li>
            <t>Universal(U)/Local(L) bit (bit 1 or mask 0x02) – 0 = universal (IEEE‑assigned), 1 = local.</t>
          </li>
        </ul>
        <t>These flags let the implementations exclude multicast and local addresses but still cannot prove that a 24-bit value is an IEEE-registered OUI. 36-bit CIDs share the same first 24 bits and enterprises <bcp14>MAY</bcp14> deploy pseudo-OUIs. CAs <bcp14>MUST</bcp14> include only addresses the subscriber legitimately controls (registered OUI or CID).  Before issuing a certificate that contains a MACAddress or a name constraint based on such a permitted set of addresses, the CA <bcp14>MUST</bcp14> verify that control: for example, by consulting the IEEE registry or reviewing manufacturer documentation.</t>
        <t>The following constraint definition constrains EUI-48 values to only
those are universal and unicast; locally assigned or multicast values will not match the
constraint.</t>
        <artwork><![CDATA[
  [0] OCTET STRING '000000000000 030000000000'H

]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC5280">
        <front>
          <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
          <author fullname="D. Cooper" initials="D." surname="Cooper"/>
          <author fullname="S. Santesson" initials="S." surname="Santesson"/>
          <author fullname="S. Farrell" initials="S." surname="Farrell"/>
          <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
          <author fullname="R. Housley" initials="R." surname="Housley"/>
          <author fullname="W. Polk" initials="W." surname="Polk"/>
          <date month="May" year="2008"/>
          <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="RFC5912">
        <front>
          <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
          <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
          <author fullname="J. Schaad" initials="J." surname="Schaad"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5912"/>
        <seriesInfo name="DOI" value="10.17487/RFC5912"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <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="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 422?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We thank the participants on the LAMPS Working Group mailing list for their insightful feedback and comments. In particular, the authors extend sincere appreciation to Bob Beck, David von Oheimb, Deb Cooley, John Mattsson, and Tim Hollebeek for their reviews and suggestions, which greatly improved the quality of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
yEF1AnHherrOvjU09nYXgnUcnx5vG9IaDIy/n2PxSznas2K0Ondd53khySB1
ecR5VGy0z2kju2dOiuicNjIpxbzXP2SaqLpMGsSoh9y0IZYqiRYqrI9L/Cgm
Vx+eJou7idIDO4XOD940wdKPVAqyYQX6mM13KxULEwNfPuXtd08BPv3rX/9y
dnbApdVWJc0JIgniRdwupmxZQ+G3nXmSAMUxUXXCj0wsX4Fb92w88LviA9Z4
sP0Snc5I/EbE2sJ1xatXwtc/xK9/TcUg+tPp+C4L33/C8xpwKk9ASxQB6mTQ
FS+de5rWI+kGE8Wbjxjslj8gYL8LObvAs6dIw4s3EDWEuM5etJOj062yWtqg
SNOa9AL9HfR3AQ7EeBsBJt4XtYzBZxNgRmY5EmfvZti3Hn8KJj90JbhtIFPU
Je28s/Bso7HccjYZkim5kWjUoWefqyIiJmg2Ph2jG4r8XZl8YBktpPLveZhy
0BiaZ3h/rxDRnpjnGUcghYbjYIxW6PFrPSJHz25Zida1exfG61yHB19sd0Io
MrAi6mqQENLefcaFGbxnwrr+cDOTs/KRwiecQYUMdo9gNWZkHisFO3mI6SaA
Z6ofZOcfYggORLZ13Nah1jpNliFiBsaTlB/rCYlMISDC4gFPxW3O9WMJhysq
aqE8HcFukjwFFAKMEEOKXnTm0qQrPNEqgpj/UjpgaXHEBrc722jsiusomTfU
hZMP1oCjzxxQ8YAtVAUt+C3RQQnnDUEsQgCZsfQMJKNLHizwmzNwWqA4ZyhX
a4jgm/MiieJ9p+pgVQcHxbyk2qQiRas661bFViBEY4WHDMwiYE+YSDPRDG79
yLSxp0eWI8+wzGQjFnnMgmrKP0oHF1wEcpxhlZE+aydxZdziMv1CYW4st+8z
8JDAE92ebe3WPryYguWqNdL7IQpQiPW06iZ3yl1vhBI0epxPOD6bdaFNGwaK
AsYfm6q7ZYLp3Qbj22sPUzltbdWsFnxDvKqD/sAGfbsBjQzP10F6YoM0G5kK
lSWv9JBz6XuwRIfOsIsrv+FtbZOL0vauQwnchkusyK92RtSSSSI7h+6Snbnl
ofgWYC5AvHWZnSPsZ5f7sbeQuU82rjmAQ9roD8nFGWnRVFYS0bO2QHR/uuX2
DomSSllTQYImknMxLE64vqt5GFc2maLEZ7ViI0gwopVsZwVaXTWJRNmdte9k
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

-->

</rfc>
