<?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-06" 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-06"/>
    <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="18"/>
    <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 81?>

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

<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 (<xref target="X680"/>). 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 Certification Authority (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>MUST</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 <bcp14>SHOULD NOT</bcp14> assume uniqueness beyond their local network unless the relying party has information that addresses are stable across network boundaries.</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 Company IDs (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="X680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information Technology -- Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.680"/>
          <seriesInfo name="ISO/IEC" value="8824-1:2021"/>
        </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 443?>

<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, Francois Rousseau, John Mattsson, Murray Kucherawy, 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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
5e7kPk8JONH92dTuHMOPKVauGiO9CaFACbGYVr3kTrkNjZoEbR4nE07Op13o
04aJojmrHxuqzTLBnGoD8e21jwmXtjZqVg9+IV7UdX7f1vl2B5oZ2td19NjW
0WxjKlCWuNJTzmTgA4mOnEEXKb8V1RwQm7sOZU0bHrEit9oZUk8Gicwcekt2
upSn4legckHDW4/ZN8JxnvA49o4uj8m2NQfVkDbGQ3BxRZo1lZXH8619Bz2e
7rl7QIKkUoFUgKCB5FQMsxPSdzUL48rOTpQELFZsA0mLaCHbW4FUVy0iQbax
Nnts09iXnBhu16k+NGyCVH9aWmZtnnUK3VCdCwwwn4a+Gj8dtssMu80Sug/G
9aZdrszWOyIWAfSVacemcZGnJFiwIvAXg0zdJ4VAoaZzgJsg4GxZ8X27dHRg
KcZx1hVj6BtUJ0r9+IbyAZxDtoQe4xfjImgPAnAFUNQevnxZ+CCaidpa77X1
6CYxVfgsgAevcEyPUTYKdCPqtZgT7ncZHexVKR3Y4d6irbRwV2RZmQd6lpuE
vXnGHtcdc1YQwxZ89aaolDPey/TsenJ5NRljVRLKDnE0Nn3UOyicagJiqq6I
dc4XFyw/HZtVK671uuuUfjU7xjCfDkQq9S2a1RztNWsFBG7zuu57wwCIbR5E
F+3FCTMLMnRF5MEXKUpKiu5Y4K1dQUKn1YvJyZ2K9phfFBtJUQvQxmJOzThB
nhIiYKCeaciO5ip5S4tb8WAdjgfEb2FZRWCw1s92ra8AiFUXljgVIRmySqHo
SBdWF7mRWkd2cLwIRLDbQA4Nu2uhbdQ6JAVFiF1EzTgUz1okC1QOvkqY2Ha2
WDGDXllyZ11/Sq27RYCEjjLWP5PfpDcseSOpKOY5wJS26Cw5x9MJadOykv/e
SC5nBiqxM7wld24nuyOe9CpR7IvtQu26uYUr5io7T86F9NzE5MyLFqBQX1rv
G0P0rDxw1blp8X4ukVib3xJWcG4bdVUPdz/Yr3bXjsj9a3t/Jz5/Id5XHBH7
86pXiXJ3f+7rXAwi7px7cWcguHvODKH5IcNkBjuY5yZzgRs+0mx2EFvsi85N
V3QGdZbAWFchW2z86FbMsfyUUsswYcnKaZJkZjeBPaamF44CTrGAyvxtaSeB
2GqZhvGtJ0aZkFhkQHEEK4UIC2EfHtewFHW9j1e9RscK+RvVVDh5lCS3JAdS
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
t8Ilz/lfhUqMpl5bAAA=

-->

</rfc>
