The present application claims the benefit under 35 U.S.C. § 119 of German Patent Application No. DE 10 2023 212 199.9 filed on Dec. 5, 2023, which is expressly incorporated herein by reference in its entirety.
The present invention relates to a method of processing data associated with a serial bus system.
The present invention further relates to an apparatus for processing data associated with a serial bus system.
Some example embodiments of the present invention relate to a method, for example a computer-implemented method, for processing data associated with a serial bus system, comprising: providing an indication characterizing at least one aspect of a control plane for a security protocol for the serial bus system, transmitting the indication on the bus system. In some example embodiment of the present invention, this enables to signal at least one aspect of the control plane for the security protocol, e.g., from a first node of the bus system to at least one further node of the bus system.
In some example embodiment of the present invention, the at least one aspect of the control plane comprises at least one of: a) a type of the control plane, or b) a version of the control plane. In some examples, the type of control plane may, e.g., comprise: a) a MACsec Key Agreement, MKA, control plane, or b) an in-band key agreement, IBKA, control plane, which is, for example, integrated into a data plane of the CANsec protocol.
In some example embodiments of the present invention, the serial bus system is of the controller area network, CAN, type or based on the CAN type, e.g., a CAN extra Large, CAN XL, wherein the security protocol is of the CANsec type. Thus, in some examples, using the indication may enable to signal, e.g., to other CAN XL nodes, which type (and/or, e.g., other aspect) of control plane for the CANsec protocol to use.
In some example embodiments of the present invention, the method comprises: providing an information element, e.g., a dedicated information element, for the indication in a header of the security protocol, e.g., CANsec header. In some examples, the information element may comprise one bit. In some other examples, the information element may comprise more than one bit.
In some example embodiments of the present invention, providing the information element for the indication in the header comprises providing the information element adjacent to an information element associated with one or more reserved bits (e.g., “Reserved” information element), e.g., providing the information element between the information element associated with the one or more reserved bits and an information element associated with a version number (e.g., Version Number, “VN”, information element).
In some example embodiments of the present invention, the method comprises at least one of: a) determining at least one of a type or version of the control plane, or b) setting a value of the indication, for example based on a or the determination of at least one of a type or version of the control plane, or c) omitting an information element of the header associated with a key number, for example based on a or the determination of at least one of a type or version of the control plane, or d) using a or the information element of the header associated with a key number for extending at least one further information element of the header, for example an information element of the header that is associated with a packet number, for example based on a or the determination of at least one of a type or version of the control plane, or e) providing a or the information element of the header associated with a or the key number, for example based on a or the determination of at least one of a type or version of the control plane.
In some example embodiments of the present invention, the method comprises: using at least a part, for example at least one bit, of an information element of a or the header of the security protocol for providing, e.g., accommodating, the indication. In other words, in some examples, at least a part, i.e. at least one bit, of an existing, e.g., defined, information element, e.g. other than of the “Reserved” type, may be used for accommodating the indication.
In some example embodiments of the present invention, using the at least a part of the information element of the header of the security protocol comprises at least one of: a) using an information element of the header associated with a version number (e.g., “VN” information element), or b) using an information element of the header associated with an add on type, AOT (e.g., “AOT” information element), or c) extending the information element (e.g., the “VN” information element or the “AOT” information element, e.g., to enable to accommodate the indication according to some examples.
In some example embodiments of the present invention, the method comprises: receiving an indication characterizing at least one aspect of a control plane for a security protocol for the serial bus system over the serial bus system. In some examples, the method comprises: handling, e.g., at least one of processing, or transmitting, or receiving, information or data, respectively, related to the control plane based on the received indication. Thus, in some examples, an entity, e.g., apparatus or node for the serial bus system, performing aspects of the examples may provide and transmit the indication characterizing the at least one aspect of the control plane, e.g., to another node, as well as receive the or an indication characterizing the at least one aspect of the control plane, e.g., from another node.
In some example embodiments of the present invention, the receiving may comprise at least one of: a) extracting the indication or a value of the indication from a respective, e.g. dedicated, information element, or b) extracting the indication or a value of the indication from an information element also used for at least one other type of information, e.g., “VN” or “AOT” information element.
Some example embodiments of the present invention relate to a method, for example a computer-implemented method, for processing data associated with a serial bus system, comprising: receiving an indication characterizing at least one aspect of a control plane for a security protocol for the serial bus system over the serial bus system, wherein for example the at least one aspect of the control plane comprises at least one of: a) a type of the control plane, or b) a version of the control plane, and, optionally, handling, e.g., at least one of processing, or transmitting, or receiving, information INF-CP or data, respectively, related to the control plane CP-SP based on the received indication IND-CP′.
Some example embodiments of the present invention relate to an apparatus configured to perform the method according to at least some aspects of the examples.
Some example embodiments of the present invention relate to a node for a serial bus system comprising at least one apparatus according to the disclosure.
Some example embodiments of the present invention relate to a serial bus system comprising at least one apparatus according to the disclosure.
Some example embodiments of the present invention relate to a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method according to the disclosure.
Some example embodiments of the present invention relate to a computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out the method according to the disclosure.
Some example embodiments of the present invention relate to a data carrier signal carrying and/or characterizing the computer program according to the disclosure.
Some example embodiments of the present invention relate to a use of the method according to the disclosure and/or of the apparatus according to the disclosure and/or of the node according to the disclosure and/or of the bus system according to the disclosure and/or of the computer-readable storage medium according to the disclosure and/or of the computer program according to the disclosure and/or of the data carrier signal according to the disclosure for at least one of: a) signaling an indication characterizing at least one aspect of a control plane for a security protocol for the serial bus system, or b) signaling an information or decision which type and/or version of control plane to use, or c) increasing a flexibility regarding a use of a control plane for the security protocol, or d) dynamically change a type and/or version and/or at least one further aspect of a control plane for the security protocol, or e) offer different options for the control plane for the security protocol, or f) distinguish between different control plane aspects, e.g. strategies, e.g., for CAN XL, e.g., without changing a data format for a CANsec data plane, e.g., regarding length and/or byte alignment, or g) enable crypto agility.
Some example embodiments of the present invention will now be described with reference to the figures.
Some examples,
In some examples,
In some examples,
In some examples,
In some examples,
In some examples,
In some examples, information element e4 characterizes a control plane, “CP”, field, e.g., to accommodate the indication IND-CP according to some examples. In other words, in some examples, the information element e4 of
In some examples, information element e5 characterizes a “Reserved” field, e.g., comprising presently for example three reserved bits, e.g., reserved for future use. In some examples, information element e6 characterizes an “EP” (“Exclude Priority”) field. In some examples, information element e7 characterizes an “EV” (“Exclude VCID”) field. In some examples, information element e8 characterizes a “CM” (“Cipher Mode”) field. In some examples, information element e9 characterizes an “AN” (“Association Number”) field. In some examples, information element e10 characterizes an “SCI” (“Secure Channel Identifier”) field. In some examples, information element e11 characterizes a “Packet Number” or “Freshness Value” field. In some examples, optional information element e12 characterizes an optional “Key Number” field.
In some examples, if the EP bit field is set, it can be signaled that a CANsec authentication does not include the Priority ID field. In some examples, this mechanism may, e.g., be used to enable possible (valid) changes, e.g., when forwarding/routing a CAN XL frame, e.g., to other bus segments where the priority ID may need to be changed.
In some examples, if the EV bit field is set, it can be signaled that a VCID field is omitted from an authentication, e.g., the authentication does not include the VCID field. In some examples, this mechanism may, e.g., be used to enable possible (valid) changes, e.g., when forwarding/routing a CAN XL frame, e.g., to other bus segments where the VCID may need to be changed.
In some examples, e.g., if EP=0 & EV=0 (e.g., neither EP bit field set nor EV bit field set, all listed header fields may be authenticated by CANsec.
In some examples, the CM bit field indicates or specifies, whether CANsec protection is only used for authentication/integrity protection (CM=0) of a CAN XL frame, or whether the payload of the frame is also encrypted (CM=1).
In some examples, the AN bit field identifies a secure association used for a CANsec frame.
In some examples, CANsec may have the following (e.g., logical) constructs, e.g., for communication between two or more nodes: The Connectivity Association (CA), or Secure Zone (SZ), is a group of bus nodes that wish to communicate together in a protected manner. To this end, in some examples, these bus nodes may share a Connectivity Association Key (CAK) or Secure Zone Key (SZK). In some examples, e.g., within a CA, there may be a “send” secure channel (e.g., unidirectional 1:n channel), e.g., from each participant to all other participants, which may, e.g., be identified by a Secure Channel Identifier (SCI). In some examples, e.g., to enable a quick change between session keys, which may be required for an actual protection of the communication, there may be one or more Secure Associations (SAS), e.g., within each Secure Channel. In some examples, which SA is used may be identified via the AN field. In some examples, each SA may be assigned a Secure Association Key (SAK), which may, e.g., be negotiated via the control plane, e.g., using the CAK. In some examples, each recipient can therefore, e.g., determine an exact key used (SAK) via the SCI and AN.
As can be seen from
Similarly,
In some examples,
In some examples,
In the example CAN XL header CXL-HEAD only some example information elements are explicitly depicted for the sake of clarity, such as, e.g., element e20, characterizing a priority ID, element e21 (“SDT”, Service Data Unit Type), element e22 (“DLC”, Data Length Code), e23 (“Acceptance Field”).
In some examples, the information elements e1, e2, e3, e4, e5′, e10 of
In some examples,
In some examples,
In some examples,
In some examples,
In some examples,
In some examples,
In some examples,
Some examples,
Some examples,
In some examples,
In some examples, the data DAT may, e.g., comprise at least one of: a) information associated with the control plane CP-SP, or b) information associated with the indication IND-CP, or c) information associated with the information element IE-IND-CP, e4, e1, e3.
In some examples, the at least one calculating unit 202 may comprise at least one of the following elements: a microprocessor, a microcontroller, a digital signal processor (DSP), a programmable logic element (e.g., FPGA, field programmable gate array), an ASIC (application specific integrated circuit), hardware circuitry, a tensor processor, a graphics processing unit (GPU). According to further examples, any combination of two or more of these elements is also possible.
According to some examples, the memory unit 204 comprises at least one of the following elements: a volatile memory 204a, e.g. a random-access memory (RAM), a non-volatile memory 204b, e.g. a Flash-EEPROM.
In some examples, the computer program PRG is at least temporarily stored in the non-volatile memory 204b. In some examples, the data DAT may at least temporarily be stored in the RAM 204a.
In some examples, an optional computer-readable storage medium SM comprising instructions, e.g. in the form of the computer program PRG. As an example, the storage medium SM may comprise or represent a digital storage medium such as a semiconductor memory device (e.g., solid state drive, SSD) and/or a magnetic storage medium such as a disk or harddisk drive (HDD) and/or an optical storage medium such as a compact disc (CD) or DVD (digital versatile disc) or the like.
In some examples, the apparatus 200 may comprise an optional data interface 206, e.g. for bidirectional data exchange with at least one further device (not shown). As an example, by means of the data interface 206, a data carrier signal DCS may be received, e.g. from the at least one further device, for example via a wired or a wireless data transmission medium, e.g. over a (virtual) private computer network and/or a public computer network such as e.g. the Internet.
In some examples, the data carrier signal DCS may represent or carry the computer program PRG according to the examples, or at least a part thereof.
Some examples relate to the computer program PRG comprising instructions which, when the program is executed by a computer 202, cause the computer 202 to carry out the method according to the disclosure.
Some examples,
Some examples,
Some examples,
Some examples,
In the following, further aspects and examples are disclosed, which, in some examples, may be combined with at least one of the aspects and/or examples disclosed above.
In some examples, the principle according to the disclosure may be used for secure communication protocols, e.g., for different technologies, e.g., for point-to-point or multicast/bus systems, e.g., for Controller Area Network (CAN)-based bus systems and others.
In some examples, to protect a, for example original, communication, e.g., on an underlying technology, a security protocol such as, e.g., “Transport Layer Security” (TLS), “Internet Protocol Security” (IPsec), “Media Access Control Security” (MACsec), “Secure On Board Communication” (SecOC) (for Classic CAN and CAN FD) or “CAN Security” (CANsec) (for CAN XL) may be used.
In some examples, a security protocol may use cryptographic primitives, e.g., to authenticate and (possibly optionally) encrypt (parts of) a communication frame or packet.
In some examples, when applying cryptographic protection, the sender as well as the receiver may need to be in the possession of the used keys. In some examples, these keys can be asymmetric key pairs (e.g., consisting of an public and a private key), where the parties then know the public key of each other. Based on these asymmetric key pairs, in some examples, the security protocol may run a key agreement scheme, after which both participants may share a secret (e.g., symmetric) session key. In some examples, this symmetric key may then be used to protect the further communication (e.g., data exchange) between both entities.
In some examples, e.g., instead of relying on asymmetric cryptography, the parties may also know a pre-shared secret (symmetric) key (PSK), in which case the communication is either protected by this PSK directly or the PSK is used as a long term key and the parties derive a session key which is eventually used to protect the actual communication.
In some examples, key agreement parts of a security protocol may take place in the control plane. In some examples, besides the task to agree on a key, the control plane may also have further duties, e.g. signal liveness of peers in regular intervals, or others.
In some examples, some secure communication protocols may provide different, e.g., a plurality of, strategies, e.g., for key agreement and/or other tasks, e.g., associated with the control plane. In some examples, the indication IND-CP according to the disclosure may be used to signal which strategy should be used.
In some examples, e.g., for the security protocol CANsec, which may be used as a secure communication protocol for CAN XL, more than one idea and/or type and/or version of control plane may be provided. In some examples, e.g., two different ideas and/or types and/or versions of the control plane may be used, wherein a first idea/version/type is “MACsec Key Agreement” (MKA) control plane, and wherein a second idea/version/type is IBKA (in-band key agreement).
In some examples, e.g., in order to ensure flexibility, e.g., get the best of both approaches MKA, IBKA, e.g., the CANsec protocol may be designed to enable, e.g., use, both options, i.e., allowing MKA as well as IBKA as control plane.
In some examples, the choice (i.e. whether MKA is used or whether IBKA is used) for the control plane may be signaled using the indication IND-CP.
In some examples, the principle according to the disclosure enables to distinguish multiple different control plane strategies, e.g., for CANsec on CAN XL, and thus, for examples, lets a user of CAN XL and CANsec decide, which way to choose: the key agreement approach of MKA or the strategy of IBKA.
In some examples, the use of the indication IND-CP according to the disclosure enables to provide different ways how a signalling related to aspects of the control plane can be done: a) via a dedicated header field e4 (which may, e.g., be introduced in a data plane frame format), or b) by assigning two different data plane versions, one to be used with MKA, the other including IBKA, or c) by issuing a new “Add On Type” (AOT) that may differentiate the one used with MKA from the other including IBKA.
In some examples, these three example options may be seen as implementing a distinction between the control plane options on different levels of abstraction.
In some examples, for an MKA-based approach, a key number (“KN”) field may not be required, and might, in some examples, be removed from the frame format, see
In some other examples, e.g., for the IBKA-based approach, the key number field may be used and may thus be provided in the frame format, see, for example,
In some examples, e.g., for IBKA, it may also be possible to merge the key number “KN” field into the “Packet Number” (PN) field. In some examples, a state for the key number and the packet number may be handled, e.g., internally.
In the following, further aspects and examples related to enabling detection of a chosen control plane (e.g., if MKA or IBKA is used) are disclosed, which, in some examples, may be combined with at least one of the aspects and/or examples disclosed above.
In some examples, a, for example new, bitfield e4 (
In some examples, the CP field may have any width, e.g. 1 bit, 2 bit, or more, e.g., depending on a number of control planes to be distinguished. In some examples, the CP field may for example indicate, if MKA is used (e.g. CP=0), or IBKA (e.g. CP=1). In some examples, e.g., if MKA is chosen (e.g., CP=0), the KN field can be omitted, or the KN field can be transmitted, but may be ignored by a receiver.
In some examples, the KN field may be used to extend the “Packet Number” field, e.g. doubling a size of the Packet Number field. In some examples, a larger Packet Number field may allow, e.g., a user, to use a same cryptographic key for a comparatively long time, e.g., without the need for updating the key.
In some examples, e.g., alternatively, the KN field may not be transmitted. This has the advantage, that it saves communication bandwidth.
In some examples, e.g., in case IBKA is chosen (e.g., CP=1), the CANsec header may includes the KN field, which may be used by IBKA, e.g., to derive one or more session key(s).
In some examples, extending the Version Number (“VN”) field is proposed. In some examples, the CANsec header may include a three bit long “Version Number” (“VN”) field e3, see
In some examples, a choice of control plane may be interpreted as two different versions of CANsec. Thus, in some examples, introducing a new version, these two versions may be used, e.g., to distinguish MKA use from IBKA use. For example: a value of the VN field of “010” may characterize “Version 1” of CANsec, using MKA, whereas a valued of the VN field of “011” may characterize “Version 1” of CANsec, using IBKA.
In some examples, the VN field may be extended, e.g., by taking one or more bits, e.g., from the “Reserved” field e5, e5′.
In some examples, another possibility to signal a decision which control plane to use, is to use at least a portion of the AOT field e1. In some examples, the purpose of the AOT field is to identify which CAN XL Layer 2 add-on function is applied to a CAN frame. In some examples, two Layer 2 add-on functions for CAN XL are defined: AOT=010b indicates a CANsec protected frame; AOT=001b indicates a fragmented CAN XL frame, as, e.g., specified in CiA 613-7. In some examples, “CANsec with MKA” may be interpreted as a different CAN XL Layer 2 add-on function than “CANsec with IBKA” and may, e.g., be indicated with different AOTs, e.g., values of the AOT field. As an example, a value of 010b may characterize a CANsec protected frame, using MKA, and a value of 011b may characterize a CANsec protected frame, using IBKA, whereas a value of 001b may indicate fragmented CAN XL frame.
| Number | Date | Country | Kind |
|---|---|---|---|
| 10 2023 212 199.9 | Dec 2023 | DE | national |