<?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-05" 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-05"/>
    <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="February" day="04"/>
    <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 70?>

<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 74?>

<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 Issuer Alternative Name (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 an EUI-48 as an OCTET STRING comprising of 6 octets, or an 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>The CA <bcp14>MUST</bcp14> ensure that MACAddress otherName values included in certificates that it issues are owned by (or is expected to be owned by) the subject device for the certificate's lifetime. The same MAC address <bcp14>MUST NOT</bcp14> be included in certificates issued to different devices, unless different devices share the same layer‑2 interface.</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.</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 was not intended. For example, say that the level 1 NCE contained only a "permitted_subtrees" of only (OtherName.MACAddress) global/unicast EUI-48, and the 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 'constraint child2 = '00005E005000 FFFFFFFFFFF00'H and 'child' are compared, '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
     //    are not also set in the child's mask
     // e.g. we can add mask bits to the current set, we can not 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 are 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>
      <t>The Security Considerations section of <xref target="RFC5280"/> applies to this specification as well.</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 short-lived 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 <xref target="IEEERA"/> 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-combined-references">
      <name>References</name>
      <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>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IEEERA" target="https://standards.ieee.org/wp-content/uploads/import/documents/tutorials/eui.pdf">
          <front>
            <title>Guidelines for Use of Extended Unique Identifier (EUI), Organizationally Unique Identifier (OUI), and Company ID (CID)</title>
            <author>
              <organization>IEEE Standards Association</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
    </references>
    <?line 432?>

<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, Sean Turner, 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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

-->

</rfc>
