Chapter 1. Introduction |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.1. Scope and Purpose 31 1.2. Acronyms and Abbreviations 31 1.3. Definitions 33 1.4. Standards Terminology Mapping 36 1.5. Conformance Levels 37 1.6. References 37 1.6.1. CSA Reference Documents 38 1.6.2. External Reference Documents 38 1.7. Informative References 42 1.7.1. CSA Reference Documents 4 1.8. Conventions 43 1.8.1. Enumerations and Reserved Values 43 1.8.2. Reserved Bit Fields 43 1.8.3. Number Format 43 1.8.4. Provisional 44 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Chapter 1. Introduction |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The Matter specification defines fundamental requirements to enable an interoperable application layer solution for smart home devices over the Internet Protocol.
1.1. Scope and PurposeThis specification details everything necessary to implement an application and transport layer stack. It is intended to be used by implementers as a complete specification but where necessary other references are noted with details on how these references apply to this specification. In case of discrepancies between this specification and the SDK [https://github.com/project-chip/connect edhomeip/], this specification SHALL take precedence.
1.2. Acronyms and Abbreviations
1.3. Definitions
1.4. Standards Terminology Mapping
1.5. Conformance LevelsThe key words below are usually capitalized in the document to make the requirement clear.
1.6. ReferencesThe following standards and specifications contain provisions, which through reference in this doc ument constitute provisions of this specification. All the standards and specifications listed are nor
mative references. At the time of publication, the editions indicated were valid. All standards and specifications are subject to revision, and parties to agreements based on this specification are encouraged to investigate the possibility of applying the most recent editions of the standards and specifications indicated below.
1.6.1. CSA Reference Documents
1.6.2. External Reference Documents
1.7. Informative References1.7.1. CSA Reference Documents
1.8. ConventionsThe following conventions are used in this document.
1.8.1. Enumerations and Reserved ValuesAn undefined value or range of an enumeration, field, or identifier SHALL be considered reserved for future revisions of this standard and SHALL not be available for implementation. A value or range of an enumeration, field, or identifier that is available for non-standard imple mentation SHALL be described as “manufacturer specific”, “ms”, or “MS”. A value or range of an enumeration, field, or identifier that is available for other parts of this stan dard SHALL be described as such. A value or range of an enumeration, field, or identifier that is deprecated, and not available for implementation, SHALL be described as “Deprecated” or “D”.
1.8.2. Reserved Bit FieldsEach full or partial data field (e.g., message data field), of any bit length, that is undefined, SHALL be considered reserved for future revisions of this standard and SHALL not be available for imple mentation. An implementation of a revision where a bit is reserved SHALL indicate that bit as zero when con veying that bit in a message, and ignore that bit when conveyed from another implementation.
1.8.3. Number FormatIn this specification, hexadecimal numbers are prefixed with the designation “0x” and binary num bers are prefixed with the designation “0b”. All other numbers are assumed to be decimal unless indicated otherwise within the associated text. Binary numbers are specified as successive groups of 4 bits, separated by a space (“ “) character from the most significant bit (next to the 0b prefix and leftmost on the page) to the least significant bit (rightmost on the page), e.g. the binary number 0b0000 1111 represents the decimal number 15. Where individual bits are indicated (e.g. “bit 3”) the bit numbers are relative to the least significant bit which is bit 0. When a bit is specified as having a value of either 0 or 1 it is specified with an “x”, e.g. “0b0000 0xxx” indicates that the lower 3 bits can take any value but the upper 5 bits must each be set to 0.
1.8.4. ProvisionalPer [CSA-PNP], when a specification is completed there may be sections of specification text (or smaller pieces of a section) that are not certifiable at this stage. These sections (or smaller pieces of a section) are marked as provisional prior to publishing the specification. This specification uses well-defined notation to mark Provisional Conformance or notes a section of text with the term “provisional”. |
A device utilizing Wi-Fi (IEEE 802.11-2020) Access Point (AP) functionality to advertise its presence and allow IP-bearing connections but does not offer Internet connectivity. | |
Secure Channel | A channel in which messages are encrypted and authenticated. Unicast secure channels also provide authentication of each peer. |
Server | A Cluster interface that typically supports all or most of the attributes of the Cluster. A Server Cluster communicates with a corresponding remote Client Cluster with the same Cluster identifier. |
Service Discovery | The ability of a Node to locate services of interest. |
Software Image | A data blob, equivalent to a file, utilized by a Node to update its software. For the purposes of OTA Software Update, this further refers to files conforming to the OTA Software Image File Format. |
Thread | A low-power IEEE 802.15.4-based IPv6 mesh networking technology (see Thread specification). |
Vendor | The organization that made a Device. |
Vendor ID (VID) | A 16-bit number that uniquely identifies the Vendor of the Device. See Vendor ID. |
1.4. Standards Terminology Mapping
Matter | HomeKit | Weave | Thread | Zigbee |
Administrator | Admin | Fabric provisioner | Commissioner | Coordinator |
Attribute | Characteristics | Property | Attribute |
Matter | HomeKit | Weave | Thread | Zigbee |
Binding | Event subscription | Subscription | Link | Binding |
Broadcast | Broadcast | Broadcast | ||
Client | Service client | Client | Client | |
Cluster | Services | interface | Cluster | |
Cluster | Trait | Service | Cluster | |
Command | Command | Command | Command | Command |
Commissioning | Pairing | Pairing | Commissioning | Association |
Commissioner | Admin | Fabric provisioner | Commissioner | Coordinator |
Device | Accessory | Device | Device | Device |
End Device | End Device | End Device | ||
Endpoint | Profile | Resource | Interface | Endpoint |
Endpoint Address | Device ID | Resource ID | Endpoint Identi fier | Endpoint address |
Fabric | Network | Fabric | Partition | Network |
Network Manager | Device / Controller | Nest Service | Leader | Network manager |
Node | Accessory | Node | Node | Node |
Router | Router | Router | ||
Server | Service host | Server | Server | |
Service Discovery | Service directory | Service Discovery |
1.5. Conformance Levels
The key words below are usually capitalized in the document to make the requirement clear.
Key Word | Description |
MAY | A key word that indicates flexibility of choice with no implied preference. |
NOT | A key word that used to describe that the requirement is the inverse of the behav ior specified (i.e. SHALL NOT, MAY NOT, etc) |
SHALL | A key word indicating a mandatory requirement. Designers are required to imple ment all such mandatory requirements. |
SHOULD | A key word indicating flexibility of choice with a strongly preferred alternative. Equivalent to the phrase is recommended. |
1.6. References
The following standards and specifications contain provisions, which through reference in this doc ument constitute provisions of this specification. All the standards and specifications listed are nor
mative references. At the time of publication, the editions indicated were valid. All standards and specifications are subject to revision, and parties to agreements based on this specification are encouraged to investigate the possibility of applying the most recent editions of the standards and specifications indicated below.
1.6.1. CSA Reference Documents
Reference | Reference Location/URL | Description |
[CSA-05- 03874] | https://groups.csa-iot.org/wg/ members-all/document/ 10905 | CSA Manufacturer Code Database |
[AppClusters] | https://github.com/CHIP- Specifications/connected homeip-spec/raw/build-sam ple/pdf/appclusters.pdf | Application Clusters – Under development |
[Matter Brand Guide lines] | https://groups.csa-iot.org/wg/ members-all/document/ 22901 | Matter Brand Guidelines |
1.6.2. External Reference Documents
Reference | Reference Location/URL | Description |
[AdProx] | https://tools.ietf.org/html/ draft-sctl-advertising-proxy | Advertising Proxy for DNS-SD SRP |
[ANSI C18] | https://ansi.org | ANSI C18 Standards on Portable Cells and Batteries |
[Bluetooth®] | https://www.bluetooth.org/ docman/handlers/download doc.ashx?doc_id=441541 | Bluetooth® Core Specification 4.2 |
[FIPS 180-4] | https://csrc.nist.gov/publica tions/detail/fips/180/4/final | NIST FIPS 180-4 Secure Hash Standard (SHS), August 2015 |
[FIPS 186-4] | https://csrc.nist.gov/publica tions/detail/fips/186/4/final | NIST FIPS 186-4 Digital Signature Standard (DSS), July 2013 |
[FIPS 197] | https://doi.org/10.6028/ NIST.FIPS.197 | NIST FIPS 197 Advanced Encryption Standard (AES), November 2001 |
[FIPS 198-1] | https://csrc.nist.gov/publica tions/detail/fips/198/1/final | NIST FIPS 198-1 The Keyed-Hash Message Authentica tion Code (HMAC), July 2008 |
[IEC 60086] | https:///www.iec.ch | IEC 60086 standard for Primary Batteries |
[IEEE 754- 2019] |
https://ieeexplore.ieee.org/ document/8766229 | “IEEE Standard for Floating-Point Arithmetic,” in IEEE Std 754-2019 (Revision of IEEE 754-2008) July 2019, doi: 10.1109/IEEESTD.2019.8766229. |
Reference | Reference Location/URL | Description |
[IEEE 802.11- 2020] |
https://standards.ieee.org/ standard/802_11-2020.html | IEEE 802.11-2020 – IEEE Standard for Information Technology – Telecommunications and Information Exchange between Systems – Local and Metropolitan Area Networks – Specific Requirements – Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications |
[ISO/IEC 1800 4:2015] |
https://www.iso.org/stan dard/62021.html | Information technology – Automatic identification and data capture techniques – QR Code bar code sym bology specification |
[ITU ASN.1] | https://www.itu.int/en/ITU-T/ asn1/Pages/asn1_pro ject.aspx | ITU ASN.1 Project |
[NFCForum- TS-NDEF 1.0] | https://nfc-forum.org/our- work/specification-releases/ specifications/nfc-forum- technical-specifications | Data Exchange Format (NDEF) Technical Specifica tion, NFC Forum |
[NFCForum- TS-RTD 1.0] | https://nfc-forum.org/our- work/specification-releases/ specifications/nfc-forum- technical-specifications/ | Record Type Definition (RTD) Technical Specification, NFC Forum |
[NFCForum- TS- RTD URI 1.0] |
https://nfc-forum.org/our- work/specification-releases/ specifications/nfc-forum- technical-specifications/ | URI Record Type Definition Technical Specification, NFC Forum |
[NIST 800- 38A] | https://nvlpubs.nist.gov/nist pubs/Legacy/SP/nistspe cialpublication800-38a.pdf | NIST SP 800-38A Recommendation for Block Cipher Modes of Operation: Methods and Techniques, December 2001 |
[NIST 800- 38C] | https://nvlpubs.nist.gov/nist pubs/Legacy/SP/nistspe cialpublication800-38c.pdf | NIST SP 800-38C Recommendations for Block Cipher Mode of Operation: The CCM Mode for Authentication and Confidentiality, Morris Dworkin, May 2004 (errata update 2007) |
[NIST 800- 56C] | https://csrc.nist.gov/publica tions/detail/sp/800-56c/rev-2/ final | NIST SP 800-56C Recommendation for Key-Derivation Methods in Key-Establishment Schemes, Revision 2, August 2020 |
[NIST 800- 90A] | https://csrc.nist.gov/publica tions/detail/sp/800-90a/rev-1/ final | NIST SP 800-90A Rev. 1 Recommendation for Random Number Generation Using Deterministic Random Bit Generators |
[NIST 800- 90B] | https://csrc.nist.gov/publica tions/detail/sp/800-90b/final | NIST SP 800-90B Recommendation for the Entropy Sources Used for Random Bit Generation |
[NIST 800- 132] |
https://nvlpubs.nist.gov/nist pubs/Legacy/SP/nistspe cialpublication800-132.pdf | NIST SP 800-132 Recommendation for Password- Based Key Derivation, Part 1: Storage Applications, December 2010 |
Reference | Reference Location/URL | Description |
[NIST 800- 186] |
https://nvlpubs.nist.gov/nist pubs/SpecialPublications/ NIST.SP.800-186-draft.pdf | NIST Draft SP 800-186 Recommendation for Discrete Logarithm-Based Cryptography, October 2019 |
[RFC 1350] | https://www.rfc-editor.org/ rfc/rfc1350 | The TFTP Protocol (Revision 2) |
[RFC 2119] | https://www.rfc-editor.org/ rfc/rfc2119 | Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels”, BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997 |
[RFC 2782] | https://www.rfc-editor.org/ rfc/rfc2782 | A DNS RR for specifying the location of services (DNS SRV) |
[RFC 2986] | https://www.rfc-editor.org/ rfc/rfc2986 | PKCS #10: Certification Request Syntax Specification Version 1.7 |
[RFC 3306] | https://www.rfc-editor.org/ rfc/rfc3306 | Unicast-Prefix-based IPv6 Multicast Addresses |
[RFC 3587] | https://www.rfc-editor.org/ rfc/rfc3587 | IPv6 Global Unicast Address Format |
[RFC 3986] | https://www.rfc-editor.org/ rfc/rfc3986 | Uniform Resource Identifier (URI) |
[RFC 4007] | https://www.rfc-editor.org/ rfc/rfc4007 | IPv6 Scoped Address Architecture |
[RFC 4191] | https://www.rfc-editor.org/ rfc/rfc4191 | Default Router Preferences and More-Specific Routes |
[RFC 4193] | https://www.rfc-editor.org/ rfc/rfc4193 | Unique Local IPv6 Unicast Addresses (ULA) |
[RFC 4291] | https://www.rfc-editor.org/ rfc/rfc4291 | IPv6 Addressing Architecture |
[RFC 4506] | https://www.rfc-editor.org/ rfc/rfc4506 | XDR: External Data Representation Standard |
[RFC 4648] | https://www.rfc-editor.org/ rfc/rfc4648 | The Base16, Base32, and Base64 Data Encodings |
[RFC 4861] | https://www.rfc-editor.org/ rfc/rfc4861 | Neighbor Discovery for IP version 6 (IPv6) |
[RFC 4862] | https://www.rfc-editor.org/ rfc/rfc4862 | IPv6 Stateless Address Autoconfiguration |
[RFC 5280] | https://www.rfc-editor.org/ rfc/rfc5280 | Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile |
[RFC 5505] | https://www.rfc-editor.org/ rfc/rfc5505 | Principles of Internet Host Configuration |
Reference | Reference Location/URL | Description |
[RFC 5652] | https://www.rfc-editor.org/ rfc/rfc5652 | Cryptographic Message Syntax (CMS) |
[RFC 6335] | https://www.rfc-editor.org/ rfc/rfc6335 | Service Name and Port Number Procedures |
[RFC 6760] | https://www.rfc-editor.org/ rfc/rfc6760 | Replacement of AppleTalk NBP |
[RFC 6762] | https://www.rfc-editor.org/ rfc/rfc6762 | Multicast DNS |
[RFC 6763] | https://www.rfc-editor.org/ rfc/rfc6763 | DNS-Based Service Discovery |
[RFC 6920] | https://www.rfc-editor.org/ rfc/rfc6920 | Naming Things with Hashes |
[RFC 7230] | https://www.rfc-editor.org/ rfc/rfc7230 | Hypertext Transfer Protocol (HTTP/1.1): Message Syn tax and Routing |
[RFC 7346] | https://www.rfc-editor.org/ rfc/rfc7346 | IPv6 Multicast Address Scopes |
[RFC 7468] | https://www.rfc-editor.org/ rfc/rfc7468 | Textual Encodings of PKIX, PKCS, and CMS Structures |
[RFC 7558] | https://www.rfc-editor.org/ rfc/rfc7558 | Scalable DNS-SD Requirements |
[RFC 8305] | https://www.rfc-editor.org/ rfc/rfc8305 | Happy Eyeballs Version 2: Better Connectivity Using Concurrency |
[RFC 8490] | https://www.rfc-editor.org/ rfc/rfc8490 | DNS Stateful Operations |
[RFC 8765] | https://www.rfc-editor.org/ rfc/rfc8765 | DNS Push Notifications |
[RFC 8766] | https://www.rfc-editor.org/ rfc/rfc8766 | Discovery Proxy |
[draft-lemon- stub-net works] | https://datatracker.ietf.org/ doc/html/draft-lemon-stub- networks-02 | Connecting Stub Networks to Existing Infrastructure |
[SEC 1] | https://www.secg.org/sec1- v2.pdf | SEC 1: Elliptic Curve Cryptography, Version 2.0, Certi com Research, May 2009 |
[SEC 2] | https://secg.org/sec2-v2.pdf | SEC 2: Recommended Elliptic Curve Domain Parame ters, Version 2.0, Certicom Research, January 2010 |
Reference | Reference Location/URL | Description |
[SIGMA] | https://doi.org/10.1007/978-3- 540-45146-4_24 | Krawczyk H. (2003) SIGMA: The ‘SIGn-and-MAc’ Approach to Authenticated Diffie-Hellman and Its Use in the IKE Protocols. In: Boneh D. (eds) Advances in Cryptology – CRYPTO 2003. CRYPTO 2003. Lecture Notes in Computer Science, vol 2729. Springer, Berlin, Heidelberg. |
[SPAKE2+] | https://tools.ietf.org/pdf/ draft-bar-cfrg-spake2plus- 02.pdf | SPAKE2+, an Augmented PAKE (Draft 02, 10 Decem ber 2020) |
[SRP] | https://tools.ietf.org/html/ draft-ietf-dnssd-srp | Service Registration Protocol |
[Thread] | https://www.thread group.org | Thread 1.3.0 Specification |
[Verhoeff ] | https://ir.cwi.nl/pub/13045 | Verhoeff, J. (1969). Error detecting decimal codes. MC Tracts. Centrum Voor Wiskunde en Informatica. |
[X.501] | https://www.itu.int/rec/T- REC-X.501/en | ITU X.501 : Information technology – Open Systems Interconnection – The Directory: Models |
[X.509] | https://www.itu.int/rec/T- REC-X.509/en | ITU X.509 : Information technology – Open Systems Interconnection – The Directory: Public-key and attribute certificate frameworks |
[X.520] | https://www.itu.int/rec/T- REC-X.520/en | ITU X.520 : Information technology – Open Systems Interconnection – The Directory: Selected attribute types |
[X.680] | https://www.itu.int/rec/T- REC-X.680/en | ITU X.680 : Information technology – Abstract Syntax Notation One (ASN.1): Specification of basic notation |
[X.690] | https://www.itu.int/rec/T- REC-X.690/en | ITU X.690 : Information technology – ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER) |
1.7. Informative References
1.7.1. CSA Reference Documents
Reference | Reference Location/URL | Description |
[DotdotArch] | https://groups.csa-iot.org/wg/ matter-tsg/document/18649 | Dotdot Architecture Model, document 13-0589, revi sion 14, February 2019 |
[ZCL] | https://groups.csa-iot.org/wg/ members-all/document/ 23019 | Zigbee Cluster Library Specification, document 07- 5123, revision 8, December 2019 |
Reference | Reference Location/URL | Description |
[CSA-PNP] | https://groups.csa-iot.org/wg/ members/document/21624 | Organizational Processes and Procedures, 13-0625, revision 8, November 2021 |
1.8. Conventions
The following conventions are used in this document.
1.8.1. Enumerations and Reserved Values
An undefined value or range of an enumeration, field, or identifier SHALL be considered reserved for future revisions of this standard and SHALL not be available for implementation.
A value or range of an enumeration, field, or identifier that is available for non-standard imple mentation SHALL be described as “manufacturer specific”, “ms”, or “MS”.
A value or range of an enumeration, field, or identifier that is available for other parts of this stan dard SHALL be described as such.
A value or range of an enumeration, field, or identifier that is deprecated, and not available for implementation, SHALL be described as “Deprecated” or “D”.
1.8.2. Reserved Bit Fields
Each full or partial data field (e.g., message data field), of any bit length, that is undefined, SHALL be considered reserved for future revisions of this standard and SHALL not be available for imple mentation.
An implementation of a revision where a bit is reserved SHALL indicate that bit as zero when con veying that bit in a message, and ignore that bit when conveyed from another implementation.
1.8.3. Number Format
In this specification, hexadecimal numbers are prefixed with the designation “0x” and binary num bers are prefixed with the designation “0b”. All other numbers are assumed to be decimal unless indicated otherwise within the associated text.
Binary numbers are specified as successive groups of 4 bits, separated by a space (“ “) character from the most significant bit (next to the 0b prefix and leftmost on the page) to the least significant bit (rightmost on the page), e.g. the binary number 0b0000 1111 represents the decimal number 15. Where individual bits are indicated (e.g. “bit 3”) the bit numbers are relative to the least significant bit which is bit 0.
When a bit is specified as having a value of either 0 or 1 it is specified with an “x”, e.g. “0b0000 0xxx” indicates that the lower 3 bits can take any value but the upper 5 bits must each be set to 0.
1.8.4. Provisional
Per [CSA-PNP], when a specification is completed there may be sections of specification text (or smaller pieces of a section) that are not certifiable at this stage. These sections (or smaller pieces of a section) are marked as provisional prior to publishing the specification. This specification uses well-defined notation to mark Provisional Conformance or notes a section of text with the term “provisional”.