The present disclosure relates to an information processor, a mobile body apparatus, and a communication system, and, in particularly, to an information processor, a mobile body apparatus, and a communication system that protect communication by a secure boot.
Currently, MIPI (Mobile Industry Processor Interface) Alliance has developed MIPI Security Framework that utilizes DSP0274 (SPDM: Security Protocol and Data Model) of a DMTF (Distributed Management Task Force) standard. The DMTF standard is disclosed, for example, in the following NPTL.
Incidentally, a secure boot enables application of a security function to at least one Data Service Protocol of ESS CCI (Enhanced Safety & Security CCI) that is a control data communication protocol, SEP (Service Extensions Packet) that is an image data communication protocol, or FSED (Frame-Based Service Extensions Data) that is an image data communication protocol.
A countermeasure for failure is essential for this security function. For example, the above-listed PTL discloses an initialization vector including a frame number, an additional frame number, and a message count value. However, counters in which these elements are set may possibly break down; in a case where these counters break down, the security function collapses.
The present disclosure has been made in view of such a circumstance, and makes it possible to solve issues or tasks of an information processor, a mobile body apparatus, and a communication system that protect communication by a secure boot.
An information processor according to an aspect of the present disclosure includes: a protection part that protects at least a portion of first communication in which a frame is transmitted or received cyclically; and a frame counter that increments a frame count value transmitted or received via the first communication for each frame. The frame includes first packet data configured by one piece of packet data, and second packet data configured by a plurality of pieces of packet data. The protection part performs an arithmetic operation of a first MAC using at least the frame count value and a portion or all of the first packet data, and performs an arithmetic operation of a second MAC using at least the frame count value and a portion or all of the second packet data. At least one of the first packet data or the second packet data includes abnormality notification information in a case where there is abnormality in at least one of the frame count value or the frame counter.
A mobile body apparatus according to an aspect of the present disclosure includes: a protection part that protects at least a portion of first communication in which a frame is transmitted or received cyclically; and a frame counter that increments a frame count value transmitted or received via the first communication for each frame. The frame includes first packet data configured by one piece of packet data, and second packet data configured by a plurality of pieces of packet data. The protection part performs an arithmetic operation of a first MAC using at least the frame count value and a portion or all of the first packet data, and performs an arithmetic operation of a second MAC using at least the frame count value and a portion or all of the second packet data. At least one of the first packet data or the second packet data includes abnormality notification information in a case where there is abnormality in at least one of the frame count value or the frame counter.
A communication system according to an aspect of the present disclosure includes: a protection part that protects at least a portion of first communication in which a frame is transmitted or received cyclically; and a frame counter that increments a frame count value transmitted or received via the first communication for each frame. The frame includes first packet data configured by one piece of packet data, and second packet data configured by a plurality of pieces of packet data. The protection part performs an arithmetic operation of a first MAC using at least the frame count value and a portion or all of the first packet data, and performs an arithmetic operation of a second MAC using at least the frame count value and a portion or all of the second packet data. At least one of the first packet data or the second packet data includes abnormality notification information in a case where there is abnormality in at least one of the frame count value or the frame counter.
Hereinafter, description is given in detail, with reference to the drawings, of specific embodiments to which the present technology is applied.
The secure boot enables application of a security function to at least one Data Service Protocol of ESS CCI (Enhanced Safety & Security CCI) mode 1 that is a control data communication protocol, ESS CCI mode 2 that is control data communication protocol, SEP (Service Extensions Packet) that is an image data communication protocol, or FSED (Frame-Based Service Extensions Data) that is an image data communication protocol. The applicable security function is at least one of Integrity (Integrity) by a message authentication code (MAC) and confidentiality (Confidentiality) by encryption (and decryption).
Incidentally, the DSP0277 and the DSP0236, which are portions of Secure Boot Protocols, are protocols that are applicable to at least one physical layer of I2C or I3C, in the same manner as the ESS CCI which is the Data Service Protocol. This results in an increase in the number of formats and protocols required for mounting, in a case where the DSP0277 and the DSP0236 are used.
Therefore, the present inventors have newly defined ESS CCI mode 0 as an SPDM session-oriented ESS CCI mode in order to suppress the number of the formats and the protocols required for mounting. Further, the present inventors have newly defined Secure Boot mode 2 and Secure Boot mode 3 that transmit and/or receive an SPDM message via at least one physical layer of the I2C, the I3C, A-PHY, CPHY or D-PHY and via at least one protocol of the ESS CCI mode 0, ESS CCI mode 1, or the ESS CCI mode 2 (SPDM over ESS CCI over I2C/I3C/A-PHY/C-PHY/D-PHY). Description is given later in detail of the Secure Boot mode 2 and the Secure Boot mode 3.
The application processor 1100 includes a communication control unit 1100a and a bridge (Bridge) one end 1100b. The communication control unit 1100a includes SSMC (Secure Session Manager Controller) or an application processor (also referred to as SoC or System on Chip). The communication control unit 1100a includes, for example, an ESS CCI agent 1110, an SPDM requester 1120 (e.g., CCI master), and an SEP/FSED agent 1130 (image data reception section).
The image sensor 1200 includes a sensor unit 1200b having a communication control function, and a bridge another end 1200a. The sensor unit 1200b includes SSMT (System Security Management Target). The sensor unit 1200b includes, for example, an imaging section, an ESS CCI agent 1210, an SPDM responder 1220 (e.g., CCI slave), and an SEP/FSED agent 1230 (image data transmission section). At least one of the bridge one end 1100b or the bridge another end 1200a may be omitted. The bridge one end 1100b may be configured on an outer side, instead of an inner side, of the application processor 1100. The bridge another end 1200a may be configured on an outer side, instead of an inner side, of the image sensor 1200. The communication control unit 1100a may be referred to as an application processor. The sensor unit 1200b may be referred to as an image sensor.
For example, in the communication path 1300, an SPDM session is established between the SPDM requester 1120 and the SPDM responder 1220 via the ESS CCI agents 1110 and 1210. In addition, for example, in the communication path 1300, a Data Plane session is established between the SEP/FSED agent 1130 and the SEP/FSED agent 1230.
Between the SPDM requester 1120 and the SPDM responder 1220, a request message that complies with SPDM is transmitted from the SPDM requester 1120 to the SPDM responder 1220 via the ESS CCI agents 1110 and 1210. In addition, between the SPDM requester 1120 and the SPDM responder 1220, a response message that complies with the SPDM is transmitted from the SPDM responder 1220 to the SPDM requester 1120 via the ESS CCI agents 1110 and 1210.
Between the ESS CCI agent 1110 and the ESS CCI agent 1210, Write Command (e.g., ESS CCI Write) or Read Command (e.g., ESS CCI Read) protected by an SPDM session key is transmitted from the ESS CCI agent 1110 to the ESS CCI agent 1210. In addition, between the ESS CCI agent 1110 and the ESS CCI agent 1210, Read Response (e.g., ESS CCI Read return value) protected by the SPDM session key is transmitted from the ESS CCI agent 1210 to the ESS CCI agent 1110.
Between the SEP/FSED agent 1130 and the SEP/FSED agent 1230, at least one of frame start, embedded data, image data, user-defined data, or frame end protected by Data Plane session key is transmitted from the SEP/FSED agent 1230 to the SEP/FSED agent 1130.
Performing such data transmission and reception makes it possible to perform data transmission and reception with higher safety between the application processor 1100 and the image sensor 1200. It is to be noted that a display may be provided instead of the image sensor 1200, and a display panel may be provided instead of the sensor unit 1200b. In this case, between the SEP/FSED agent 1130 and the SEP/FSED agent 1230, at least one of the frame start, the embedded data, the image data, the user-defined data, or the frame end protected by the Data Plane session key is transmitted from the SEP/FSED agent 1130 to the SEP/FSED agent 1230. In addition, Control plane may be referred to as an expression including a portion or all of the ESS CCI (Enhanced Safety and Security Camera Control Interface) or an expression including a portion or all of ACMP (A-PHY Control & Management Protocol). In addition, Data plane may be referred to as an expression including a portion or all of the SEP (Service Extension Packet). The Control plane or the Data plane may be applied not only to image-related applications, but also to non-image-related applications such as Power Management, IoT (Internet of Things), GNSS (Global Navigation Satellite System), or GPS (Global Positioning System or Global Positioning Satellite).
In addition, the communication system 1000 may include a control device (SoC), at least one of an imaging device (image sensor) or an unillustrated display apparatus (display), and optionally a relay device (Serializer and Deserializer bridge chip/device). The imaging device may be replaced by a display apparatus, or the image sensor may be replaced by a display; in that case, a communication direction of image data communication in the drawing may be an opposite direction. For example, in the image data communication, image-system data (at least one of image data or user-defined data) may be transmitted or received, while being stored in packet data (payload) of at least one of an SEP protocol extended packet or an FSED protocol packet (at least one of a basic packet or an extended packet), via at least one physical layer of the A-PHY, the CPHY and the D-PHY as a communication path and via at least one Low Level Protocol of CSI-2 (Camera Serial Interface) or DSI-2 (Display Serial Interface). In the control data communication, a write command (Write Command) and write data (Write Data) may be transmitted or received, a read command (Read Command) may be transmitted or received, or read data corresponding to a read command (Read Data; a read response; Read Response) may be transmitted or received, via at least one physical layer of the I2C, the I3C, the A-PHY, the CPHY, or the D-PHY as a communication path and via at least one of a CCI protocol or an ESS CCI protocol.
Some or all of the communication paths may be split (separated) into a communication path of the image data communication and a communication path of the control data communication. In addition, the communication path of the image data communication and the communication path of the control data communication may be integrated (combined). In addition, at least one communication path of the image data communication or the control data communication may be split (separated) into two or more communication paths. In addition, at least one communication path of the image data communication or the control data communication may be integrated (combined) into one communication path. In addition, in the communication system 1000, at least one topology of Unicast, multicast, multi-sensor, multi-SoC, aggregation, or disaggregation may be applied. In addition, in the communication system 1000, at least one of SPI (Serial Peripheral Interface) or Ethernet may be applied instead of the I2C.
It is to be noted that the bridge one end 1100b may include, for example, an ESS CCI agent, an SPDM responder, and an SEP/FSED agent, as illustrated in
At this time, for example, in the communication path 1300, an SPDM session is established between the SPDM requester 1120 and the SPDM responder of the bridge one end 1100b. In addition, for example, in the communication path 1300, an SPDM session is established between the SPDM requester 1120 and the SPDM responder 1220 of the sensor unit 1200b. In addition, for example, in the communication path 1300, a Data Plane session is established between the SEP/FSED agent of the bridge one end 1100b and the SEP/FSED agent 1230 of the sensor unit 1200b.
Between the SPDM requester 1120 and the SPDM responder of the bridge one end 1100b, a request message that complies with the SPDM is transmitted from the SPDM requester 1120 to the SPDM responder of the bridge one end 1100b via the ESS CCI agent 1110 and the ESS CCI agent of the bridge one end 1100b.
Between the ESS CCI agent 1110 and the ESS CCI agent of the bridge one end 1100b, Write Command (e.g., the ESS CCI Write) or Read Command (e.g., the ESS CCI Read) protected by the SPDM session key is transmitted from the ESS CCI agent 1110 to the ESS CCI agent of the bridge one end 1100b.
Between the SEP/FSED agent of the bridge one end 1100b and the SEP/FSED agent 1230 of the sensor unit 1200b, at least one of the frame start, the embedded data, the image data, the user-defined data, or the frame end protected by the Data Plane session key is transmitted from the SEP/FSED agent 1230 of the sensor unit 1200b to the SEP/FSED agent of the bridge one end 1100b.
Performing such data transmission and reception makes it possible to perform data transmission and reception with higher safety between the application processor 1100 and the image sensor 1200.
Meanwhile, in the present embodiment, an SPDM session is established between the SPDM requester 1120 and the SPDM responder 1220 via the ESS CCI agents 1110 and 1210, in the communication path 1300. This makes it possible to use ESS CII as the Secure Boot Protocols, thus making it unnecessary to use the DSP0277 and the DSP0236. Here, the ESS CII is used as one of the Data Service Protocols, as illustrated in
The communication control unit 1100a includes, for example, the ESS CCI agent 1110, the SPDM requester 1120, the SEP/FSED agent 1130, an I2C/I3C controller section 1140, a physical layer processing section 1150, an arithmetic section 1160, and a control section 1170.
The ESS CCI agent 1110 includes, for example, a register part 1111, a controller part 1112, a protection part 1113, and a storage part 1114. The SPDM requester 1120 includes, for example, a processing part 1121, a protection part 1122, and a storage part 1123. The SEP/FSED agent 1130 includes, for example, a storage part 1131, a protection part 1132, and a CSI-2 reception part 1133.
The sensor unit 1200b includes, for example, the ESS CCI agent 1210, the SPDM responder 1220, the SEP/FSED agent 1230, an I2C/I3C target section 1240, a physical layer processing section 1250, a pixel section 1260, an A/D conversion section 1270, an image processing section 1280, and a control section 1290.
The ESS CCI agent 1210 includes, for example, a target part 1211, a register part 1212, a protection part 1213, and a storage part 1214. The SPDM responder 1220 includes, for example, a storage part 1221, a protection part 1222, and a processing part 1223. The SEP/FSED agent 1230 includes, for example, a protection part 1231, a storage part 1232, and a CSI-2 transmission part 1233.
At least one of the protection part 1113, 1122, 1132, 1213, 1222, or 1231 (hereinafter, referred to as “one or a plurality of protection parts PRT”) executes an arithmetic operation that protects at least one of integrity or confidentiality of at least a portion of communication data. The one or the plurality of protection parts PRT protects data communication between the application processor 1100 and the image sensor 1200. The one or the plurality of protection parts PRT protects image data communication (first communication) and control data communication (second communication) using a portion or all of a register group. The one or the plurality of protection parts PRT may execute at least one of unidirectional authentication or bidirectional authentication (mutual authentication). The one or the plurality of protection parts PRT may be separated (split) or combined (integrated).
The one or the plurality of protection parts PRT may execute the following (1) to (3).
Causing the one or the plurality of protection parts PRT to execute the above-described (1) to (3) makes it possible to protect a portion or all of the write SPDM message and the write SPDM message counter by the write SPDM message authentication code. Further, it becomes possible to protect a portion or all of the read SPDM message and the read SPDM message counter by the read SPDM message authentication code.
The control data communication (second communication) includes extra-SPDM session communication and intra-SPDM session communication. The write SPDM session key includes a write SPDM encryption key and a write SPDM message authentication code key. The read SPDM session key includes a read SPDM encryption key and a read SPDM message authentication code key.
The one or the plurality of protection parts PRT may further execute the following (4) to (7).
Causing the one or the plurality of protection parts PRT to execute the above-described (4) to (7) makes it possible to protect a portion or all of the write SPDM message and a portion of the read SPDM message, in the extra-SPDM session communication, by the message authentication code obtained by the arithmetic operation using the SPDM-finished key. Further, it becomes possible, using the write SPDM message authentication code, to protect the write SPDM message in the intra-SPDM session communication in a state of being encrypted by the write SPDM encryption key. Further, it becomes possible, using the read SPDM message authentication code, to protect the read SPDM message in the intra-SPDM session communication in a state of being encrypted by the read SPDM encryption key.
The one or the plurality of protection parts PRT may further execute the following (8) and (9).
Causing the one or the plurality of protection parts PRT to execute the above-described (8) and (9) makes it possible to protect a portion or all of the write SPDM message and the write SPDM message counter by the write CRC. Further, it becomes possible to protect a portion or all of the read SPDM message and the read SPDM message counter by the read CRC.
The one or the plurality of protection parts PRT may further execute the following (10) and (11). Causing the one or the plurality of protection parts PRT to execute the following (10) and (11) allows a write SPDM initialization vector to be protected by the write SPDM message authentication code and a read SPDM initialization vector to be protected by the read SPDM message authentication code.
A write initialization vector may include information indicating a write transaction and a value of the write SPDM message counter. The read initialization vector may include information indicating a read transaction and a value of the read SPDM message counter. At these times, the write initialization vector and the read initialization vector may include information indicating one of an SPDM session handshake stage or an SPDM application stage.
The one or the plurality of protection parts PRT may further execute the following (12).
A portion or all of the write SPDM message may include a PSK_EXCHANGE request message including a PSKHint region in which hint information on a pre-shared key is stored. At this time, the PSKHint region may include a standard-defined region and a vendor-defined region.
A portion or all of the write SPDM message may include the PSK_EXCHANGE request message including the PSKHint region in which the hint information on the pre-shared key is stored. At this time, the PSKHint region may include information by which the type of the hint information is specified.
A portion or all of at least one of the write SPDM message or the read SPDM message may include at least one of the PSK_EXCHANGE request message, a KEY_EXCHANGE request message, a PSK_EXCHANGE_RSP response message, or a KEY_EXCHANGE_RSP response message including an OpaqueData region. At this time, the OpaqueData region may include the standard-defined region and the vendor-defined region.
A portion or all of the write SPDM message may include at least one of the PSK_EXCHANGE request message or the KEY_EXCHANGE request message including the OpaqueData region. At this time, the OpaqueData region may include at least one of information by which the type of an algorithm to protect the control data communication (second communication) is specified or information by which the type of a key schedule algorithm is specified.
A portion or all of the read SPDM message may include at least one of the PSK_EXCHANGE_RSP response message or the KEY_EXCHANGE_RSP response message including the OpaqueData region. At this time, the OpaqueData region may include at least one of information on non-SPDM communication in the control data communication (second communication) or information on the image data communication (first communication) in which a frame including a plurality of lines of packet data is transmitted or received.
The register parts 1111 and 1212 include the above-described register group. The above-described register group may include, for example, a first register of the write SPDM message, a second register of the read SPDM message, a third register of the write SPDM message counter, a fourth register of the read SPDM message counter, a fifth register of the write SPDM message authentication code, and a sixth register of the read SPDM message authentication code. The above-described register group may further include, for example, a register of the write SPDM initialization vector and a register of the read SPDM initialization vector. The above-described register group may further include, for example, a register of the write CRC and a register of the read CRC. The above-described register group may further include, for example, a register of the session key of the image data communication (first communication).
The first register and the second register may each be a register dedicated to the SPDM message. The first register and the second register may each be a register that is sharable among a plurality of protocols (e.g., a first protocol and a second protocol). At this time, the write SPDM message and the read SPDM message may include protocol ID information by which the first protocol and the second protocol are distinguished from each other. The one or the plurality of protection parts PRT may transmit or receive the above-described protocol ID information as encrypted data. The one or the plurality of protection parts PRT may transmit or receive the above-described protocol ID information as non-encrypted data.
Incidentally, the control data communication (second communication) may include the extra-SPDM session communication and the intra-SPDM session communication. At this time, the above-described register group may include a seventh register of a write message counter and an eighth register of a read message counter. The one or the plurality of protection parts PRT may execute the following (13) to (15). The one or the plurality of protection parts PRT may execute the following (16).
The control data communication (second communication) may include, for example, communication described in the following (17) to (19).
The one or the plurality of protection parts PRT may execute the following (20) and (21).
At least one of the storage part 1114, 1123, 1131, 1214, 1221, or 1232 (hereinafter, referred to as “one or a plurality of storage parts MEM”) may be configured by at least one of a memory or a register. In addition, at least some of the storage parts 1114, 1123, 1131, 1214, 1221, and 1232 may be omitted. The one or the plurality of storage parts MEM may be separated (split) or combined (integrated).
The one or the plurality of storage parts MEM may be protected from at least one of leakage or falsification of information in the storage part. The one or the plurality of storage parts MEM may store at least one of the following pieces of information on at least one of the ESS CCI, the SEP, or the FSED. In a case where encrypted data is written into an ESS CCI register for the one or the plurality of storage parts MEM, data after being decrypted by the one or the plurality of protection parts PRT may be stored in the one or the plurality of storage parts MEM that is inaccessible from the outside of the apparatus. In a case where data encrypted and stored in the ESS CCI register is read, data before the encryption may be stored in the one or the plurality of storage parts MEM that is inaccessible from the outside of the apparatus.
The control section 1170 may control at least one of the ESS CCI agent 1110, the SPDM requester 1120, the SEP/FSED agent 1130, the I2C/I3C controller section 1140, the physical layer processing section 1150, or the arithmetic section 1160. In addition, the control section 1290 may control at least one of the ESS CCI agent 1210, the SPDM responder 1220, the SEP/FSED agent 1230, the I2C/I3C target section 1240, the physical layer processing section 1250, the pixel section 1260, the A/D conversion section 1270, or the image processing section 1280.
The SPDM requester 1120 and the SPDM responder 1220 may execute at least one of processing or generation related to the SPDM message and the SPDM session on the basis of the SPDM (DSP0274) standard of the DMTF.
The ESS CCI may be CCI. The I2C/I3C controller section 1140 may perform communication at the initiative of the controller part 1112 on the basis of I2C or I3C standard. The I2C/I3C controller section 1140 may perform communication at the initiative of the controller part 1112 on the basis of at least one of a CSI-2 standard or a CSI-2 extension standard. The I2C/I3C target section 1240 may perform communication at the initiative of at least one of the controller part 1112 or the target part 1211 on the basis of the I2C or 13C standard. The I2C/I3C target section 1240 may perform communication at the initiative of at least one of the controller part 1112 or the target part 1211 on the basis of at least one of the CSI-2 standard or the CSI-2 extension standard.
In the register part 1111 in the ESS CCI agent 1110, various settings transmitted from at least one of the control section 1170 or the sensor unit 1200b may be written via at least one of the controller part 1112 or the I2C/I3C controller section 1140. In the register part 1212 in the ESS CCI agent 1210, various settings transmitted from at least one of the control section 1290 or the application processor 1100 may be written via at least one of the I2C/I3C target section 1240 or the target part 1211.
The settings written into the register parts 1111 and 1212 may be, for example, at least one of a communication setting that complies with the CSI-2 standard, an extension mode setting indicating presence or absence of the use of an extension mode, or a fixed communication setting required for communication in the extension mode. In the register part 1111, at least one of functional information or setting information may be read via at least one of the controller part 1112 or the I2C/I3C controller section 1140. In the register part 1212, at least one of the functional information or the setting information may be read via at least one of the I2C/I3C target section 1240 or the target part 1211.
The pixel section 1260 may output an analog pixel signal corresponding to a light amount of received light. The A/D conversion section (ADC: Analog-to-Digital Converter) 1270 may digitally convert a pixel signal outputted from the pixel section 1260 to supply the converted pixel signal to the image processing section 1280. The image processing section 1280 (ISP: Image Signal Processor) may supply image-system data obtained by performing various types of image processing on an image based on the pixel signal to the control section 1290 and the CSI-2 transmission part 1233 (corresponding to at least one of the SEP or the FSED).
The CSI-2 transmission part 1233 may generate at least one of a basic packet that complies with the CSI-2 standard or an extended packet that complies with the CSI-2 extension standard to provide it to the physical layer processing section 1250. The physical layer processing section 1250 may execute physical-layer processing of at least one of the A-PHY, the CPHY, and the D-PHY. The CSI-2 transmission part 1233 (corresponding to at least one of the SEP or the FSED) may acquire at least one of image-system data or a verification result (e.g., a message counter verification result, a frame counter verification result, a CRC verification result, or a MAC verification result) from at least one of the basic packet that complies with the CSI-2 standard or the extended packet that complies with the CSI-2 extension standard, and may supply it to another arithmetic section. The other arithmetic section may transmit at least one of the image-system data or the verification result to the outside of the image sensor 1200.
The image sensor 1200 may include at least one of the I2C/I3C controller or the ESS CCI controller. The sensor unit 1200b may include at least one of an I2C/I3C target or an ESS CCI target. The sensor unit 1200b may include a CSI-2 transmission circuit. A unidirectional arrow illustrated in
Next, description is given of a specific example of various types of processing in the communication system 1000.
In the SPDM over ESS CCI (SPDM communication; extra-SPDM session communication), the application processor 1100 transmits (Write) a PSK_EXCHANGE message to the image sensor 1200. Upon receiving the PSK_EXCHANGE message, the image sensor 1200 derives a handshake secret from the key schedule, and derives the SPDM-finished key (finished_key) from the derived handshake secret. Thereafter, the image sensor 1200 transmits a PSK_EXCHANGE_RSP message to the application processor 1100, and the application processor 1100 receives (Read) the PSK_EXCHANGE_RSP message.
When the PSK_EXCHANGE_RSP message is transmitted and received, the application processor 1100 and the image sensor 1200 derive a data secret from the key schedule, and derives at least one of the write SPDM session key or the read SPDM session key from the derived data secret. Here, the write SPDM session key includes write data_Enc_key used for an arithmetic operation of at least one of encryption or decryption of a portion or all of write data, and write data_MAC_key used for an arithmetic operation of a write MAC. The read SPDM session key includes read data_Enc_key used for an arithmetic operation of at least one of decryption or encryption of a portion or all of read data, and a read data_MAC_key used for an arithmetic operation of a read MAC. In this manner, an SPDM session protected by at least some of the write SPDM session key and the read SPDM session key may be established.
The application processor 1100 may derive at least one session key of an ESS CCI session key, an SEP session key, and an FSED session key, and may transmit a portion or all of the derived session key to the image sensor 1200 via the protected SPDM session (SPDM Session over ESS CCI; SPDM session communication; intra-SPDM session communication). In that case, the application processor 1100 may transmit (Write) encrypted session key via a VENDOR_DEFINED_REQUEST message, for example, and the image sensor 1200 may receive the encrypted session key via the VENDOR_DEFINED_REQUEST message, for example. At this time, the image sensor 1200 may transmit, to the application processor 1100, for example, a VENDOR_DEFINED_RESPONSE message indicating that decryption of the session key has been completed, and the application processor 1100 may receive (Read), from the image sensor 1200, the VENDOR_DEFINED_RESPONSE message indicating that the decryption of the session key has been completed.
Thereafter, the ESS CCI session key is applied, and the image sensor 1200 may execute at least one of Read or Write with respect to a register (e.g., the register part 1212) in the sensor, for example, in at least one of the ESS CCI mode 1 or the ESS CCI mode 2 protected by the ESS CCI session key (ESS CCI session; non-SPDM communication; extra-SPDM session communication). Alternatively, the SEP session key may be applied, and the image sensor 1200 may transmit image-system data protected by the SEP session key to the application processor 1100 (SEP session). Alternatively, the FSED session key may be applied, and the image sensor 1200 may transmit image-system data protected by the FSED session key to the application processor 1100 (FSED session).
In a case where the application processor 1100 is desired to start image data communication, a start command commanding the start of image data communication may be transmitted to the image sensor 1200 via the SPDM Session over ESS CCI. At this time, the image sensor 1200 may receive the start command commanding the start of image data communication from the application processor 1100 via the SPDM Session over ESS CCI. The image sensor 1200 may further start protecting the image data communication in response to the start command, or may start transmitting the image data communication.
In a case where the application processor 1100 is desired to finish the SPDM session, an END_SESSION message may be transmitted (Write) to the image sensor 1200. When receiving the END_SESSION message from the application processor 1100, the image sensor 1200 may finish transmitting or receiving the SEP, the FSED, the ESS CCI mode 1, and the ESS CCI mode 2. In addition, the image sensor 1200 may discard all of the ESS CCI session key, the SEP session key, and the FSED session key, and may transmit, to the application processor 1100, an END_SESSION_ACK message indicating that the SPDM session can be finished. At this time, the application processor 1100 may receive, from the image sensor 1200, the END_SESSION_ACK message as a response to the END_SESSION message. The application processor 1100 and the image sensor 1200 may discard all of the session keys associated with the SPDM session.
It is to be noted that the SPDM session may be finished in response to the END_SESSION message, and at least one of the ESS CCI session, the SEP session, or the FSED session may be continued. In that case, there is an effect of being able to execute at least one of termination, updating, or restarting of the SPDM session, while continuing at least one of the protected control data communication or image data communication (i.e., the ESS CCI session, the SEP session, and the FSED session); it is particularly preferable in an application that does not allow forced termination of at least one of the control data communication or the image data communication. In that case, the protected image data communication (at least one of the SEP session or the FSED session) may be finished in response to transmission or reception of a write message (at least one of a write command or write data) in the protected control data communication (ESS CCI session).
This MAC target region may further include another SPDM message. The OpaqueData region and the PSKHint region (a region in which the hint information on the pre-shared key is stored) described in the DSP0274 of the DMTF standard may be extended as exemplified in
In the PSKHint region described in the DSP0274 of the DMTF standard, it is only possible to define at least one of standard-defined PSKHint or vendor-defined PSKHint. Meanwhile, it is possible, in the present embodiment, to use both of the standard-defined PSKHint and the vendor-defined PSKHint in combination. In the OpaqueData region described in the DSP0274 of the DMTF standard, it is only possible to define at least one of standard-defined OpaqueData or vendor-defined OpaqueData. Meanwhile, it is possible, in the present embodiment, to use both of the standard-defined OpaqueData and the vendor-defined OpaqueData in combination.
The PSKHint region may be included in the request message of the PSK_EXCHANGE. The OpaqueData region may be included in at least one of the request message of the PSK_EXCHANGE, the response message of the PSK_EXCHANGE_RSP, the request message of the KEY_EXCHANGE, or the response message of the KEY_EXCHANGE_RSP.
Assume that the response message of the PSK_EXCHANGE_RSP including a ResponderContext region is transmitted from the image sensor 1200 to the application processor 1100 and received by the application processor 1100. In this case, SPDM Session Handshake Phase to be protected by at least some of the write SPDM session key and the read SPDM session key derived from the handshake secret may be started. That is, at least some of the write SPDM session key and the read SPDM session key derived from the handshake secret may be started to be used.
Assume that the response message of the PSK_EXCHANGE_RSP not including the ResponderContext region is transmitted from the image sensor 1200 to the application processor 1100 and received by the application processor 1100. Alternatively, assume that a response message of at least one of FINISH_RSP or PSK_FINISH_RSP is transmitted from the image sensor 1200 to the application processor 1100 and received by the application processor 1100. In these cases, SPDM Application Phase to be protected by at least some of the write SPDM session key and the read SPDM session key derived from a data secret may be started. That is, at least some of the write SPDM session key and the read SPDM session key derived from the data secret may be started to be used.
The SPDM message of at least one of the SPDM Session Handshake Phase and the SPDM Application Phase may be transmitted or received via the ESS CCI mode 0 (SPDM Session over ESS CCI Mode 0). Here, a portion or all of the write data may be encrypted data, or a portion or all of the read data may be encrypted data. At least a portion or all of the write SPDM message and a portion or all of a write SPDM tag may be protected by the write SPDM message authentication code. At least a portion or all of the read SPDM message and a portion or all of a read SPDM tag may be protected by the read SPDM message authentication code. At least a portion or all of the write SPDM message and a portion or all of the write SPDM tag may be protected by the write CRC (at least one CRC of ESS CCI mode 0, 1, or 2), or a portion or all of the read SPDM message and a portion or all of the read SPDM tag may be protected by the read CRC (at least one CRC of ESS CCI mode 0, 1, or 2).
Unlike at least one of mode 1 or 2 of the SPDM over ESS CCI, WMAC0 and RMAC0 may be extended, or WIV0 and RIV0 may be extended. T. WMC0 is a target-side write SPDM message counter-directed register. T. WMAC0 is a target-side write SPDM message authentication code-directed register. T. WIV0 is a target-side write SPDM initialization vector-directed register. T. WCRC0 is a target-side write SPDM message CRC-directed register. These are a portion of the write SPDM tag.
T. RMC0 is a target-side read SPDM message counter-directed register. T. RMAC0 is a target-side read SPDM message authentication code-directed register. T. RIV0 is a target-side read SPDM initialization vector-directed register. T. RCRC0 is a target-side read SPDM message CRC-directed register. These are a portion of the read SPDM tag.
The WMAC0 may protect (target) at least some of TARGET ADDRESS. SUB ADDRESS, DATA (write data), WMC0, and the WIV0, excluding START condition, Repeated START condition, STOP condition, Acknowledge, Negative Acknowledge, and WCRC0, or may protect (target) implicit data (e.g., count value) that is not transmitted or received by a write transaction. The RMAC0 may protect (target) at least some of the TARGET ADDRESS, the SUB ADDRESS, DATA (read data), RMC0, and the RIV0, excluding the START condition, the Repeated START condition, the STOP condition, the Acknowledge, the Negative Acknowledge, and RCRC0, or may protect (target) implicit data (e.g., count value) that is not transmitted or received by a read transaction.
The WCRC0 may protect (target) at least some of the TARGET ADDRESS, the SUB ADDRESS, the DATA (write data), the WMC0, the WMAC0, and the WIV0, excluding the START condition, the Repeated START condition, the STOP condition, the Acknowledge, and the Negative Acknowledge, or may protect (target) implicit data (e.g., count value) that is not transmitted or received by a write transaction. The RCRC0 may protect (target) at least some of the TARGET ADDRESS, the SUB ADDRESS, the DATA (read data), the RMC0, the RMAC0, and the RIV0, excluding the START condition, the Repeated START condition, the STOP condition, the Acknowledge, and the Negative Acknowledge, or may protect (target) implicit data (e.g., count value) that is not transmitted or received by a read transaction.
In these two formats, base addresses may be the same in order to make register arrangement efficient (save registers), or the base address may differ in order to ensure the flexibility of register setting. However, the base address of the SPDM Session over ESS CCI mode 0 preferably differs from at least one base address of the mode 1 or 2 of the SPDM over ESS CCI in order to ensure the flexibility of the register setting, but may be the same as at least one base address of the mode 1 or 2 of the SPDM over ESS CCI in order to make the register arrangement efficient (save registers). In a case where the base addresses differ, there is an effect of being able to reset at least one of the WMC or the WMC0 at a free timing. This is preferable in a case where at least one of the WMC or the WMC0 is included in the initialization vector, or in a case where at least one of the WMC or the WMC0 is utilized as a replay attack countermeasure. Likewise, the register of the SPDM over ESS CCI and the register of the ESS CCI session may have the same base address or different base addresses.
As exemplified in
It is sufficient for the AES-CBC-oriented ESS CCI initialization vector to be an unpredictable value. The AES-CBC-oriented ESS CCI initialization vector may be generated by an intrinsic random number generator or a pseudo random number generator, or may be generated by applying a Forward Cipher Function to a nonce value using the same session key as the encryption. The WIV0 of a Write tag (WRITE Tag) may store an initialization vector generated on a controller side, or the RIV0 of a read tag (READ Tag) may store an initialization vector generated on a target side. The AES-CTR-oriented ESS CCI Tag register configuration and the AES-CBC-oriented ESS CCI Tag register configuration may be integrated. That is, in a case where the AES-CTR mode encryption is selected, the AES-CTR-oriented ESS CCI initialization vector may be stored in the WIV0 and the RIV0. In that case, the ESS CCI initialization vector is always transmitted or received, thus leading to an effect of avoiding inconsistency in the initialization vector between the SPDM requester and the SPDM responder.
In a case of the Write Transaction, the initialization vector configuration may include a controller-side address (C. Add), a target-side address (T. Add), an implicit (not transmitted or received in the Write Transaction) additional WMC0 synchronized with the WMC0 (a value of the write SPDM message counter), the WMC0, and Write-pre-counter (a value of a write SPDM pre-counter). In a case of the Read Transaction, the initialization vector configuration may include a controller address (C. Add), a target address (T. Add), an implicit (not transmitted or received in the Read Transaction) additional RMC0 synchronized with the RMC0 (a value of the read SPDM message counter), the RMC0, and Read-pre-counter (a value of a read SPDM Precounter). In a case of at least one of these, the initialization vectors do not overlap between the Write Transaction and the Read Transaction, thus leading to an effect of reducing security risk, and the initialization vectors do not overlap between the SPDM Session Handshake Phase and the SPDM Application Phase, thus leading to an effect of reducing the security risk. It is to be noted that the Write-pre-counter and the Read-pre-counter may each be a separate Pre-counter or may be a combined (same) Pre-counter.
A VendorDefinedReqPayload region of the VENDOR_DEFINED_REQUEST request message may store at least one of a portion or all of an SA_CONFIG register (a configuration register storing Service Association configuration information) for at least one of the ESS CCI, the SEP or the FSED, a portion or all of (a register of) a session key, or a portion or all of a CTRL_CONFIG register (a configuration register storing control configuration information).
The VENDOR_DEFINED_RESPONSE response message may store information indicating successful decryption of the VENDOR_DEFINED_REQUEST request message. The information indicating successful decryption of the VENDOR_DEFINED_REQUEST request message may be stored in a RespLength region of the VENDOR_DEFINED_RESPONSE response message, may be stored in a VendorDefinedRespPayload region of the VENDOR_DEFINED_RESPONSE response message, or may be stored in a SACP message described later.
It is to be noted that confidentiality may be further protected. In the ESS CCI mode 0 in which confidentiality is protected, it is desirable to start decrypting write data after successful message authentication (MAC verification) of write data, and thus it is desirable to generate a write tag for one write transaction (from the START condition to the STOP condition); however, the write tag may be generated for a plurality of write transactions. Meanwhile, in the ESS CCI mode 1 in which confidentiality is not protected, the write tag may be generated for the plurality of write transactions, or the write tag may be generated for one write transaction. In a case where the write tag is generated for the plurality of write transactions, there is an effect of being able to perform efficient control data communication.
The WMAC may protect (target) at least some of the TARGET ADDRESS, the SUB ADDRESS, the DATA (write data), and the WMC, excluding the START condition, the Repeated START condition, the STOP condition, the Acknowledge, the Negative Acknowledge, and the WCRC, or may protect (target) implicit data (e.g., count value) that is not transmitted or received by a write transaction. The WCRC may protect (target) at least some of the TARGET ADDRESS, the SUB ADDRESS, the DATA (write data), the WMC, and the WMAC, excluding the START condition, the Repeated START condition, the STOP condition, the Acknowledge, and the Negative Acknowledge, or may protect (target) implicit data (e.g., count value) that is not transmitted or received by a write transaction.
It is to be noted that confidentiality may be further protected. In the ESS CCI mode 0 in which confidentiality is protected, it is desirable to start decrypting read data after successful message authentication (MAC verification) of read data, and thus it is desirable to generate a read tag for one read transaction (from the START condition to the STOP condition); however, the read data tag may be generated for a plurality of read transactions. Meanwhile, in the ESS CCI mode 1 in which confidentiality is not protected, the read tag may be generated for the plurality of read transactions, or the read tag may be generated for one read transaction. In a case where the read tag is generated for the plurality of read transactions, there is an effect of being able to perform efficient control data communication.
The RMAC may protect (target) at least some of the TARGET ADDRESS, the SUB ADDRESS, the DATA (read data), and the RMC, excluding the START condition, the Repeated START condition, the STOP condition, the Acknowledge, the Negative Acknowledge, and the RCRC, or may protect (target) implicit data (e.g., count value) that is not transmitted or received by a read transaction. The RCRC may protect (target) at least some of the TARGET ADDRESS, the SUB ADDRESS, the DATA (read data), the RMC, and the RMAC, excluding the START condition, the Repeated START condition, the STOP condition, the Acknowledge, and the Negative Acknowledge, or may protect (target) implicit data (e.g., count value) that is not transmitted or received by a read transaction.
After a session key of the SEP (session) is provided from the application processor 1100 to the image sensor 1200, at least a portion of integrity (and confidentiality) may be protected, and image data communication (SEP session) may be started that is configured by an extended packet that complies with the CSI-2 extension standard. After a session key of the FSED (session) is provided from the application processor 1100 to the image sensor 1200, at least a portion of integrity (and confidentiality) may be protected, and image data communication (FSED session) may be started that is configured by at least one of a basic packet that complies with the CSI-2 standard or an extended packet that complies with the CSI-2 extension standard.
Here, description is given of the basic packet and the extended packet.
The basic packet may be configured by a packet header (PH) and packet data (payload), and may further include a packet footer (PF). The extended packet may be configured by an extended packet header (ePH) and packet data (payload), and may further include at least one of a packet header, an extended packet footer (at least one of MAC or CRC), or a packet footer. That is, in the extended packet, at least one of the packet header, the extended packet footer (at least one of the MAC or the CRC), or the packet footer may be omitted.
As exemplified in
The image sensor 1200 may use embedded data to thereby include, in a data stream of the image data communication, additional information such as device setting information. The embedded data may include at least one of configuration data on the image sensor, a register value that complies with the standard, a vendor-specific register value, explanatory data in a frame format, or a statistical value. The embedded data may include information related to the image-system data (at least one of the image data or the user-defined data).
The embedded data may be provided with a plurality of lines (rows) of embedded data, depending on the number of register values to be added to the embedded data. A line length of the embedded data may be shorter than a line length of at least one of the image data or the user-defined data, or may be equal to the line length of at least one of the image data or the user-defined data. The first pixel value of the embedded data may indicate a format code to be used for the embedded data.
The embedded data may be stored, for transmission or reception, in at least one of pieces of embedded data indicating a vendor-specific code (Vendor specific), a reserved code (Reserved for future use), and another standard definition code. In the frame, the embedded data is stored at at least one location between the frame start and first image-system data or between last image-system data and the frame end. However, the embedded data located between the last image-system data and the frame end may be omitted, or all of the pieces of the embedded data may be omitted.
At least one of the image data or the user-defined data may be a portion of a frame that starts at the frame start and ends at the frame end. The embedded data may be transmitted to or received from between the frame start and at least one of the image data or the user-defined data, or the embedded data may be transmitted to or received from between at least one of the image data or the user-defined data and the frame end. At least one of the frame number, the embedded data, the image data, or the user-defined data may be used as the packet data (payload) to transmit or receive at least one of the packet header or the extended packet header to or from immediately before the packet data (payload). At least one of the packet footer or the extended packet footer may be transmitted to or received from immediately after the packet data (payload).
At least one of the packet header or the extended packet header may store information related to the packet data (payload) on the same line. At least one of the packet footer or the extended packet footer may store data (e.g., at least one of a MAC value, a CRC value, or a Checksum value) that protects integrity of at least a portion of all of the packet data (payload) on the same line.
At least one of the packet footer or the extended packet footer may store data that protects integrity of a portion or all of the extended packet header on the same line and a portion or all of the packet data (payload) on the same line. At least one of the packet footer or the extended packet footer may store data that protects integrity of a portion or all of the packet header on the same line, (a portion or all of the extended packet header on the same line), and a portion or all of the packet data (payload) on the same line.
In
A non-secure register may be written or read before at least one of transmission or reception of the SPDM message is started. For example, a functional register related to the secure boot may be read. At least one SPDM message of a GET_VERSION request message, a VERSION response message, a GET_CAPABILITIES request message, a CAPABILITIES response message, a NEGOTIATE_ALGORITHMS request message, an ALGORITHMS response message, the KEY_EXCHANGE request message, the KEY_EXCHANGE_RSP response message, a FINISH request message, a FINISH_RSP response message, the PSK_EXCHANGE request message, the PSK_EXCHANGE_RSP response message, a PSK_FINISH request message, a PSK_FINISH_RSP response message, a RESPOND IF READY request message, or an ERROR response message may be transmitted or received. Another SPDM message (request message and response message) to be selected depending on at least one of the GET_CAPABILITIES request message, the CAPABILITIES response message, or a CAPABILITIES-related register (or memory) may be transmitted or received.
The SPDM (SPDM Session) over ESS CCI may execute at least one of unidirectional authentication or bidirectional authentication (mutual authentication) between two or more components in the communication system until establishment of Application phase to be protected by a session key derived from Data Secrets. In the Application phase, a portion or all of Capabilities register (a functional register storing supporting functional information) of at least one of the ESS CCI, the SEP, or the FSED, a portion or all of the SA_CONFIG register (a configuration register storing the Service Association configuration information), or a portion or all of the CTRL_CONFIG register (a configuration register storing the control configuration information) may be read or written.
At least one of the Capabilities register, the SA_CONFIG register, or the CTRL_CONFIG register may be directed to a security application or a functional safety application. That is, at least one of the Capabilities register, the SA_CONFIG register, or the CTRL_CONFIG register may be at least one of a security Capabilities register, a security SA_CONFIG register, a security CTRL_CONFIG register, a functional safety Capabilities register, a functional safety SA_CONFIG register, or a functional safety CTRL_CONFIG register.
The start command commanding the start of the image data communication of at least one of the SEP or the FSED may be transmitted or received via at least one of the ESS CCI mode 1 or 2, or may be written into the ESS CCI register. In the communication system, at least one of the SEP or the FSED may be omitted, or may be configured only by the ESS CCI.
The algorithm to be applied to at least one of the ESS CCI mode 0, the ESS CCI mode 1, the ESS CCI mode 2, the SEP, or the FSED may be a single algorithm of at least one of CRC-40 (40-bit CRC), CRC-32 (32-bit CRC), CRC-16 (16-bit CRC), CRC-8 (8-bit CRC), SHA-2 (Secure Hash Algorithm), SHA-3, HMAC (Hash-based MAC), AES (Advanced Encryption Standard)-CMAC (Cipher-based MAC), AES-GMAC (Galois MAC), AES-CBC (Cipher Block Chaining), AES-CTR (Counter), or AES-GCM (Galois/Counter Mode), or a combined algorithm thereof.
As exemplified in
The T. WMC and the C. WMC may be counted (e.g., incremented) for each STOP condition for the write command. As for the T. WCRC and the C. WCRC, the CRC may be calculated by targeting at least a portion of the write tag and at least a portion of one or more write messages.
The T. RMC and C. RMC (RMC counted on the controller side) may be counted (e.g., incremented) for each STOP condition for the read command. As for the T. RCRC and the C. RCRC (CRC counted on the controller side), the CRC may be calculated by targeting at least a portion of the read tag and at least a portion of one or more read messages.
The PSKHint region transmitted from the SPDM requester to the SPDM responder may include information by which the type of PSK hint is specified. In that case, there is an effect of being able to apply various types of PSK hints between the SPDM requester and the SPDM responder.
The OpaqueData region to be transmitted from the SPDM requester to the SPDM responder may store information (Algorithm) that specifies, from the SPDM requester to the SPDM responder, at least one type of a key schedule algorithm or an encryption algorithm to be applied to protect the SPDM session. In that case, there is an effect of being able to specify at least one of the key schedule algorithm or the encryption algorithm to be applied to protect the SPDM session while minimizing an amount of information to be stored in the SPDM message. That is, the encryption algorithm and the key schedule algorithm may be specified depending on the NEGOTIATE_ALGORITHMS request message and the ALGORITHMS response message; however, there is an effect of being able to omit the NEGOTIATE_ALGORITHMS request message and the ALGORITHMS response message.
The OpaqueData region transmitted from the SPDM responder to the SPDM requester may store at least one of the following three pieces of data. In that case, there is an effect of being able to omit the VENDOR_DEFINED_RESPONSE response message and the VENDOR_DEFINED_REQUEST request message to read (Read) at least one of a portion or all of the Capabilities register of at least one of the ESS CCI, the SEP, or the FSED, a portion or all of the SA_CONFIG register, or a portion or all of the CTRL_CONFIG register.
In a case where the SPDM requester 1120 and the SPDM responder 1220 select key schedule 1 (step S208), there is an effect of omitting the OpaqueData region to be transmitted from the SPDM requester to the SPDM responder while omitting the NEGOTIATE_ALGORITHMS request message and the ALGORITHMS response message. That is, in a case where the key schedule 1 (e.g., a vendor-defined AES-based key schedule) is set as a standard key schedule, there is an effect of being able to minimize an amount of information to be stored in the SPDM message.
It is to be noted that a portion or all of the content described as the OpaqueData region of at least one of the KEY_EXCHANGE_RSP response message or the PSK_EXCHANGE_RSP response message may be stored in the OpaqueData region of at least one of the KEY_EXCHANGE request message or the PSK_EXCHANGE request message. For example, Flags region described as at least one of the KEY_EXCHANGE_RSP response message or the PSK_EXCHANGE_RSP response message may be stored in the OpaqueData region of at least one of the KEY_EXCHANGE request message or the PSK_EXCHANGE request message. In that case, it is possible for the SPDM requester to instruct the SPDM responder (e.g., it is possible for the application processor 1100 to instruct the image sensor 1200) on a configuration of the OpaqueData region of at least one of the KEY_EXCHANGE_RSP response message or the PSK_EXCHANGE_RSP response message, and thus there is an effect of being able to appropriately configure the OpaqueData region necessary for the SPDM requester (e.g., being able to change the configuration of the OpaqueData region as needed).
The VendorDefinedRespPayload region of the VENDOR_DEFINED_RESPONSE response message may store at least one of the following three pieces of data.
The VENDOR_DEFINED_REQUEST request message may store information indicating that a read transaction is to be started. The information indicating that the read transaction is to be started may be stored in a ReqLength region of the VENDOR_DEFINED_REQUEST request message, may be stored in the VendorDefinedReqPayload region of the VENDOR_DEFINED_REQUEST request message, or may be stored in the SACP message described later. The VENDOR_DEFINED_REQUEST request message may be omitted.
The SPDM register may be replaced by a MAILBOX register that is also usable in a protocol other than SPDM (Session) over ESS CCI. That is, the target-side WSPDM (T. WSPDM) register may be replaced by a WMAILBOX (T. WMAILBOX) register of a target-side write mailbox. Further, the target-side RSPDM (T. RSPDM) register may be replaced by a RMAILBOX (T. RMAILBOX) of a target-side read mailbox.
In that case, a register is able to be shared among a plurality of protocols, and thus there is an effect of making the register arrangement efficient (save registers). In that case, for example, a Message Protocol ID region may be inserted between the sub address and the SPDM request message and between the target address and the SPDM response message. The Message Protocol ID region may store information as to which at least one protocol of options including the SPDM over ESS CCI, the SPDM Session over ESS CCI, SPDM over DSP0277, and SPDM Session over DSP0277 is indicated.
It is to be noted that a portion of all of the write SPDM message-directed register WSPDM may be replaced by a write mailbox-directed register WMAILBOX, or a portion or all of the read SPDM message-directed register RSPDM may be replaced by a read mailbox-directed register RMAILBOX, and vice versa. In addition, a portion of all of the write SPDM message-directed register WSPDM may be replaced by a write SACP message-directed register WSACP, or a portion or all of the read SPDM message-directed register RSPDM may be replaced by a read SACP message-directed register RSACP, and vice versa. In addition, a portion or all of the write mailbox-directed register WMAILBOX may be replaced by the write SACP message-directed register WSACP, or a portion or all of the read mailbox-directed register RMAILBOX may be replaced by the read SACP message-directed register RSACP, and vice versa. In addition, at least one expression of these registers may be replaced by a register of another expression. For example, the mailbox-directed register may be replaced by a general-purpose register or a general-purpose message-directed register.
In addition, a portion or all of the description of the SPDM Session over ESS CCI may be replaced by the SACP over ESS CCI. In addition, the SPDM over ESS CCI may be replaced by the SPDM message over ESS CCI, the SPDM Session over ESS CCI may be replaced by SPDM message over SPDM Session over ESS CCI, or the SACP over ESS CCI may be replaced by SACP message over SPDM Session over ESS CCI. In addition, at least a portion of a portion or all of the VENDOR_DEFINED_REQUEST request message and a portion or all of the VENDOR_DEFINED_RESPONSE response message may be replaced by at least one of the SACP messages or a SACP register. In addition, at least a portion of the writing and the reading described as the VENDOR_DEFINED_REQUEST request message and the VENDOR_DEFINED_RESPONSE response message may be replaced by at least one of writing of the SACP message, reading of the SACP message, writing of the SACP register, and reading of the SACP message. That is, some or all of the expressions used in the present specification may be replaced by another expression.
A portion or all of the content described as at least one of the Secure Boot Mode 2 or the Secure Boot Mode 3 may be applied to Secure Boot Mode 1.
Incidentally, the one or the plurality of protection parts PRT protects at least a portion of the image data communication (first communication) in which a frame is transmitted or received cyclically. At least one of the register parts 1111 and 1212 or the one or the plurality of storage parts MEM may include a register of a frame counter that increments, for each frame, a frame count value transmitted or received via the image data communication (first communication). At this time, the frame may include first packet data configured by one piece of packet data and second packet data configured by a plurality of pieces of packet data. The one or the plurality of protection parts PRT may perform an arithmetic operation of a first MAC using at least the frame count value and a portion or all of the first packet data, and may perform an arithmetic operation of a second MAC using at least the frame count value and a portion or all of the second packet data. At least one of the first packet data or the second packet data may include abnormality notification information in a case where there is abnormality in at least one of the frame count value or the frame counter.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may include an additional frame counter that increments an additional frame count value every time the frame count value is reset to an initial value. At this time, the abnormality notification information is a frame count value, and may be set to a predetermined count value in a case where there is abnormality in at least one of the frame count value or the frame counter.
Here, the additional frame counter may increment the additional frame count value every time a predetermined count value is set. The one or the plurality of protection parts PRT may perform arithmetic operations of the first MAC and the second MAC using at least the additional frame count value.
In addition, in a case where the frame count value is not a predetermined count value, the first MAC may be transmitted or received; in a case where the frame count value is a predetermined count value, the first MAC may not be transmitted or received. Further, in a case where the frame count value is not a predetermined count value, the second MAC may be transmitted or received; in a case where the frame count value is a predetermined count value, the second MAC may not be transmitted or received.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may include a security-oriented message counter that increments a security-oriented message count value every time a predetermined condition is satisfied. At this time, the protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may perform arithmetic operations of the first MAC and the second MAC using at least the security-oriented message count value. Different values may be used for the security-oriented message count values in the arithmetic operations of the first MAC and the second MAC. The security-oriented message count value may be reset to an initial value for each frame before the start of the arithmetic operation of the first MAC.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may include a security-oriented first counter and a security-oriented second counter that increment a security-oriented count value every time a predetermined condition is satisfied. At this time, a security-oriented count value may be used to protect the image data communication (first communication) in the protection part PRT of one of the inside of the image sensor or the inside of the SoC, or in the protection part PRT of both of the inside of the image sensor and the inside of the SoC. The security-oriented count value may be set depending on a result of comparison by a plurality of security-oriented counters including the security-oriented first counter and the security-oriented second counter.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may include a functional safety-oriented message counter that increments a functional safety-oriented message count value every time a predetermined condition is satisfied. At this time, in the image data communication (first communication), information indicating whether or not the functional safety-oriented message count value is reset to an initial value may be transmitted or received.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may include an additional frame counter that increments an additional frame count value every time the frame count value is reset to an initial value. At this time, in the image data communication (first communication), information indicating whether or not the additional frame count value needs to be reset to an initial value may be transmitted or received.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may include an additional frame counter that increments an additional frame count value every time the frame count value is reset to an initial value. At this time, the protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may perform arithmetic operations of the first MAC and the second MAC using at least the additional frame count value and the first session key which is a portion or all of a first key group. In a case where the protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC further uses a second session key, which is a portion or all of a second key group, instead of the first session key, the additional frame count value may be reset to an initial value, and then the second session key may be started to be used to discard or update all of session keys of the first key group.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may include an additional frame counter that increments an additional frame count value every time the frame count value is reset to an initial value. At this time, the frame count value may be a frame number. The first packet data stores only the frame number, and may not store the additional frame count value. The second packet data may include at least the frame number.
The frame count value may be transmitted or received after an extended packet header for the first packet data is transmitted or received. At this time, the extended packet header may include a first extended packet header that is MAC target region data and a CRC target region, and a second extended packet header that is MAC non-target region data and CRC target region data. A portion or all of the second extended packet header may be transmitted or received after the first extended packet header and before the frame count value, while information indicating whether or not to be transmitted or received may be stored in the first extended packet header.
The first packet data may include the MAC target region data, the MAC non-target region data, and the first MAC. At this time, the first MAC may protect at least the MAC target region data. A portion or all of the MAC non-target region data is variable length data of which a byte size (data size) is set depending on information stored in the MAC target region data, and may be transmitted or received after the MAC target region data and before the first MAC.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may protect a portion or all of the control data communication (second communication) that uses at least a portion of the register group. At this time, in the control data communication (second communication), write data and a write MAC that protects at least the write data may be transmitted or received. In the image data communication (first communication), information indicating whether or not the write MAC has been successfully verified may be transmitted or received.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may protect a portion or all of the control data communication (second communication) that uses at least a portion of the register group. At this time, in the control data communication (second communication), write data and a write MAC that protects at least the write data may be transmitted or received, and at least a portion of a read tag including a read MAC that protects at least read data may be received or transmitted. The read tag may include information indicating whether or not the write MAC has been successfully verified.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may protect a portion or all of the control data communication (second communication) that uses at least a portion of the register group. At this time, in the control data communication (second communication), the write data which is at least a portion of a write message and at least a portion of a write tag including information to protect at least the write data may be transmitted or received. The write tag may include a write message count value incremented every time the write message satisfies a predetermined condition, and information as to which of the write message or the write tag is indicated.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may protect a portion or all of the control data communication (second communication) that uses at least a portion of the register group. At this time, in the control data communication (second communication), at least a portion of the read tag including the read MAC that protects at least the read data may be received or transmitted. The read MAC may protect a first read message count value included in the read tag and a second read message count value incremented every time the first read message count value satisfies a predetermined condition. The read tag may include information indicating whether or not the second read message count needs to be reset to an initial value.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may perform, using an initialization vector including a read pre-count value, an arithmetic operation of a ciphertext, in which a portion or all of the control data communication (second communication) is protected that uses at least a portion of the register group. In the control data communication (second communication), a target address by which a partner of the control data communication (second communication) is specified, a sub address by which a register in the target address is specified, and read data to be sequentially read or singly read from the sub address may be transmitted or received. The read data may be transmitted or received as a ciphertext. The read pre-count value may be incremented by one every time the read data is encrypted by one byte.
Next, description is given of a specific example of various types of processing in the communication system 1000.
In a portion or all of at least the packet data (payload) in the image data communication, integrity (Integrity) by the message authentication code (MAC) may be protected as illustrated in
In a case where the confidentiality and the integrity are protected, protection thereof by the Encrypt-then-MAC (arithmetic operation of MAC for encrypted data) is desirable, but the method for the protection is not limited thereto. The MAC arithmetic operation by the AES-GMAC may be applied to protect the integrity, or the encryption arithmetic operation (or decryption arithmetic operation) by the AES-CTR may be applied to protect the confidentiality. In the MAC arithmetic operation by the AES-GMAC, it is desirable to use a session key and a 96-bit initialization vector to perform the MAC arithmetic operation; in the encryption arithmetic operation (or decryption arithmetic operation) by the AES-CTR, it is desirable to use a session key and a 128-bit initialization vector to perform the MAC arithmetic operation. However, this is not limitative.
The AES-CTR-oriented initialization vector may include a pre-counter. The security-oriented message count value may be stored in the extended packet header, and may be transmitted from the image sensor to the SoC by the image data communication. The frame count value may be stored in each of the packet data (payload) of the frame start and the packet data (payload) of the frame end, and may be transmitted from the image sensor to the SoC by the image data communication. The additional frame count value may be stored in at least one of the extended packet header or the packet data (payload) of the embedded data, and may be transmitted from the image sensor to the SoC by the image data communication.
First, the image sensor may set the frame count value to an initial value (e.g., one), and may set the additional frame count value to an initial value (e.g., zero) (step S301). Subsequently, the image sensor may reset (reset) the security-oriented message counter (message count value) to an initial value (e.g., zero) cyclically (e.g., per frame) or non-cyclically between transmission or reception of the frame end and transmission or reception of the frame start (i.e., frame blanking period) (step S303). The image sensor may increment the security-oriented message counter (message count value) by one every time the encryption arithmetic operation is performed (step S307). In such a case, there is an effect of being able to safely reset (reset) the security-oriented message counter.
In a case where the frame count value exceeds a predetermined value in the image sensor (step S308; Y), the image sensor may overwrite (reset) the frame count value with a predetermined count value (e.g., one) (step S309). At this time, the image sensor may increment the additional frame count value by one, and may return to step S302 (step S310).
In a case where the next frame is continuously transmitted (step S311; Y), the image sensor may increment the frame count value by one (step S312). In a case where the next frame is not continuously transmitted (step S311; N), the image sensor may increment the frame count value by two (step S313).
In a case where the frame count value is not correctly incremented in the image sensor (step S314; N), the image sensor may overwrite (reset) the frame count value with a predetermined count value (e.g., zero) (step S315). At this time, the image sensor may increment the additional frame count value by one, and then may return to step S302 (step S316). When the frame count value is correctly incremented (step S314; Y), the image sensor may return to step S302 without incrementing the additional frame count value. In such a case, there is an effect of being able to notify, from the image sensor, the SoC of abnormality (e.g., inoperative) in the frame count value, via at least one of the frame start or the frame end, while maintaining uniqueness (i.e., safety) of the initialization vector.
The protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may include a frame count value-oriented frame counter, an additional frame count value-oriented additional frame counter, and a security-oriented message count value-oriented security-oriented message counter. At this time, the protection part PRT of one of the inside of the image sensor or the inside of the SoC, or the protection part PRT of both of the inside of the image sensor and the inside of the SoC may increment the additional frame count value depending on the frame count value received from the protection part PRT of one of the inside of the image sensor or the inside of the SoC or from other blocks of both of the inside of the image sensor and the inside of the SoC (
In a case where the frame count value is a predetermined count value (e.g., zero) (step S503; Y), the image sensor may disable or finish the encryption arithmetic operation (step S504). In that case, it is desirable for the image sensor to store, in the extended packet header or the embedded data, information indicating whether or not the encryption arithmetic operation has been executed (disabled or finished) in order to notify the SoC of the disablement or the finish of the encryption arithmetic operation. The method of notifying the SoC of the disablement or the finish of the encryption arithmetic operation is not limited thereto. However, the forced termination of the image data communication due to the abnormality in the frame count value means that an output image (in particular, an image stream) of the image sensor suddenly disappears, which may be risky in a case where the image sensor is mounted on a propulsion apparatus. Therefore, it is desirable for the image sensor to disable or finish the encryption arithmetic operation while maintaining the image data communication (i.e., transmission or reception of image-system data). The method of avoiding the risk in a case where the image sensor is mounted on the propulsion apparatus is not limited thereto.
The image sensor may include the security-oriented first counter and the security-oriented second counter that increment a security-oriented count value every time a predetermined condition is satisfied. Here, the security-oriented count value is, for example, at least one of the message count value, the pre-count value, the frame count value, or the additional frame count value. The security-oriented first counter is, for example, at least one of a first message counter, a first pre-counter, the first frame counter, or a first additional frame counter. The security-oriented second counter is, for example, at least one of a second message counter, a second pre-counter, the second frame counter, or a second additional frame counter. At this time, the image sensor may set the security-oriented count value, depending on a result of comparison (a result of consistency or inconsistency) by the security-oriented first counter and the security-oriented second counter.
The image sensor may further include the security-oriented first counter, the security-oriented second counter, and a security-oriented third counter, which increment the security-oriented count value every time a predetermined condition is satisfied. Here, the third counter is, for example, at least one of a third message counter, a third pre-counter, a third frame counter, or a third additional frame counter. At this time, the image sensor may set the security-oriented count value, depending on a result of comparison (a result of majority decision) by the security-oriented first counter, the security-oriented second counter, and the security-oriented third counter (
The image sensor may increment the message count for each line corresponding to the SEP protocol that satisfies a predetermined condition, or may reset (reset) the value to an initial value (e.g., zero) for each frame. The image sensor may increment the pre-count value every time the 128-bit data is encrypted or decrypted, or may reset (reset) the value to an initial value (e.g., zero) before the start of the encryption or the decryption for each line of an encryption target corresponding to the SEP protocol.
The image sensor may increment the frame count value for each frame, or may reset (reset) the value to an initial value (e.g., one) every time the value exceeds a predetermined value (e.g., the value reaches a maximum value or the maximum value minus one). The image sensor may increment the additional frame count value every time the frame count value satisfies a predetermined condition (e.g., one or zero), or may reset (reset) the value to an initial value (e.g., zero) every time a predetermined condition (e.g., the key group is switched) is satisfied. At least one of those described above brings an effect of maintaining the uniqueness (i.e., safety) of the initialization vector.
Next, description is given, with reference to
First, the image sensor may set the functional safety-oriented message count value to an initial value (e.g., zero), and may set the reset flag of the message count value to an initial value (e.g., one) (step S701). In a case where the line (message) satisfies a predetermined condition (step S704; Y), the image sensor may transmit the functional safety-oriented message count value and the reset flag to the SoC (steps S705 and S706). In a case where the functional safety-oriented message count value is a maximum value (step S707; Y), the image sensor may reset the functional safety-oriented message count value to zero, and may set the reset flag to one (steps S711 and S712). Meanwhile, in a case where the functional safety-oriented message count value is not a maximum value (step S707; N), the image sensor may increment the functional safety-oriented message count value by one (step S708).
At this time, the image sensor may determine whether or not the functional safety-oriented message count value is incremented by one (step S709). In a case where the functional safety-oriented message count value is consequently determined to be incremented by one (step S709; Y), the image sensor may set the reset flag to zero (step S710). Meanwhile, in a case where the functional safety-oriented message count value is not determined to be a value incremented by one (step S709; N), the image sensor may reset the functional safety-oriented message count value to zero, and may set the reset flag to one (steps S711 and S712).
The image sensor may transmit, to the SoC, the reset flag and the functional safety-oriented message count value having been updated in this manner. That is, information indicating whether or not the functional safety-oriented message count value has been reset to an initial value may be transmitted or received via the image data communication. In such a case, there is an effect in which the SoC is able to determine whether the message counter has been reset (reset) or the message has been missing. It is to be noted that the information indicating whether or not the functional safety-oriented message count value has been reset to an initial value may be abnormality notification information.
The image sensor may set the additional frame count value, depending on a result of comparison (a result of majority decision) by the security-oriented first counter, the security-oriented second counter, and the security-oriented third counter (
The image sensor may transmit, to the SoC, a reset flag (reset flag) indicating that the additional frame count value needs to be reset (reset), via at least one of the extended packet header or the embedded data. That is, information indicating whether or not the additional frame count value needs to be reset to an initial value may be transmitted or received via the image data communication. In that case, there is an effect in which the image sensor is able to request the SoC to reset (reset) the additional frame count value or notify the SoC of reset (reset) thereof, when the image sensor needs to reset (reset) the additional frame count value. Even when the image sensor needs to reset the additional frame count value, the additional frame count values need to be synchronized between the image sensor and the SoC, and thus the image sensor is not able to reset the additional frame count value without permission of the SoC. It is to be noted that the information indicating whether or not the additional frame count value needs to be reset to an initial value may be abnormality notification information. In addition, the information indicating whether or not the additional frame count value needs to be reset to an initial value may be information indicating whether or not at least one of the SEP session key or the FSED session key needs to be updated, which may be abnormality notification information.
Next, description is given, with reference to
In a case where the additional frame count value needs to be updated, the image sensor updates the additional frame count value (step S906; Y, S907). The image sensor executes step S908 after updating of the additional frame count value or in a case where the updating of the additional frame count value is unnecessary. Specifically, the image sensor determines whether or not the one or the plurality of Odd Keys and a command to start the use thereof have been received (step S908). In a case where the one or the plurality of Odd Keys and the command to start the use thereof have been received, the image sensor resets the additional frame count value to zero (step S909). In a case where the one or the plurality of Odd Keys and the command to start the use thereof have not been received, the image sensor executes step S906.
After resetting the additional frame count value to zero in step S909, the image sensor starts using the one or the plurality of Odd Keys (step S911). At this time, the image sensor discards the one or the plurality of Even Keys (step S912).
In a case where the additional frame count value needs to be updated, the image sensor updates the additional frame count value (step S913; Y, S914). The image sensor executes step S915 after updating of the additional frame count value or in a case where the updating of the additional frame count value is unnecessary. Specifically, the image sensor determines whether or not the one or the plurality of Even Keys and the command to start the use thereof have been received (step S915). In a case where the one or the plurality of Even Keys and the command to start the use thereof have been received, the image sensor resets the additional frame count value to zero (step S916). In a case where the one or the plurality of Even Keys and the command to start the use thereof have not been received, the image sensor executes step S913.
In this manner, in response to the transmission or reception of the command to start using the one or the plurality of Even Keys (even key; the first key group) oriented to a predetermined virtual channel (note that the virtual channel may be an extended virtual channel), all of predetermined virtual channel-oriented one or plurality of Odd Keys (odd key; the second key group) may be finished to be used to allow predetermined virtual channel-oriented additional frame count value to be reset (reset) to zero. At this time, predetermined virtual channel-oriented one or plurality of Even Keys may be further started to be used to allow all of the predetermined virtual channel-oriented one or plurality of Odd Keys to be discarded.
In addition, in response to the transmission or reception of the command to start using the one or the plurality of Odd Keys oriented to a predetermined virtual channel, all of the predetermined virtual channel-oriented one or plurality of Even Keys may be finished to be used to allow the predetermined virtual channel-oriented additional frame count value to be reset (reset) to zero. At this time, the predetermined virtual channel-oriented one or plurality of Odd Keys may be further started to be used to allow all of the predetermined virtual channel-oriented one or plurality of Even Keys to be discarded. In that case, there is an effect of being able to reset (reset) the additional frame count value while maintaining the uniqueness (i.e., safety) of the initialization vector and while maintaining the image data communication without stopping.
The plurality of Even Keys (even key; the first key group) may be freely switchable to another even key (an even key 2) different from the current even key (even key 1) when being a different frame count value (when straddling frames). In addition, the plurality of Odd Keys (odd key; the second key group) may be freely switchable to another odd key (odd key 1) different from the current odd key (odd key 1) when being a different frame count value (when straddling frames). In these cases, there is an effect of being able to freely switch a plurality of keys while maintaining the uniqueness (i.e., safety) of the initialization vector. It is to be noted that information indicating whether the session key is the Even Key (even key; the first key group) or the Odd Key (odd key; the second key group) may be associated with (assigned to) the session key via at least one of the SA_CONFIG register or the CTRL_CONFIG register.
Next, description is given of a replay attack countermeasure for the SEP protocol.
Meanwhile, in a case where the AES-GMAC is used as the MAC algorithm for the SEP protocol, the extended packet header (e.g., ePH13) which is the MAC non-target region may not be provided. One reason for this is that the AES-GMAC is able to be configured to allow for a parallel arithmetic operation and is therefore suitable for a high-speed arithmetic operation. However, in a case where the AES-GMAC is used as the MAC algorithm and where a circuit load caused by the AES-GMAC is desired to be reduced (i.e., a parallel arithmetic operation is reduced or no parallel arithmetic operation is performed), the extended packet header (e.g., ePH13) which is the MAC non-target region may be provided, which may be the CRC target region protected by the CRC.
The image sensor may switch at least one of an extended packet header configuration, a circuit configuration, or processing, to provide the extended packet header (e.g., ePH13) which is the MAC non-target region in a case of using the AES-CMAC as the MAC algorithm, and not to provide the extended packet header (e.g., ePH13) which is the MAC non-target region in a case of using the AES-GMAC. Information indicating whether or not to provide the extended packet header (e.g., ePH13) which is the MAC non-target region may be stored in an extended packet header (e.g., ePH0) which is the MAC target region data protected by the MAC, in order to be able to detect falsification caused by an attacker.
In a case where the AES-GMAC is used as the MAC algorithm for the SEP protocol, the above-described initialization vector is used for an arithmetic operation of the MAC, and the initialization vector includes the message count value, the frame count value, and the additional frame count value. Therefore, the use of the initialization vector is a defense measure against a retransmission attack. However, in a case where the AES-CMAC is used as the MAC algorithm for the SEP protocol, the initialization vector is not used for the arithmetic operation of the MAC.
Therefore, in the line including the frame start, an implicit additional frame number (additional frame count value) that is not transmitted or received via the image data communication at least at such a timing may be inserted, as the MAC target region, between the frame number (frame count value) which is the packet data (payload) and MAC (ePF1) which is the extended packet footer. In addition, in the line including the frame end, an implicit additional frame number (additional frame count value) that is not transmitted or received via the image data communication at least at such a thing may be inserted, as the MAC target region, between the frame number (frame count value) which is the packet data (payload) and the MAC (ePF1) which is the extended packet footer. In addition, an implicit frame number (frame count value) and an implicit additional frame number (additional frame count value) that are not transmitted or received via the image data communication at least at such a timing may be inserted, as the MAC target region, immediately before the MAC (ePF1), which is the extended packet footer, for the embedded data between the frame start and the image-system data.
That is, performing the arithmetic operation of the MAC by using, among those, at least one implicit MAC target region brings an effect of taking a countermeasure against the retransmission attack in a case where the AES-CMAC is used as the MAC algorithm. It is to be noted that the SoC is unable to decide the additional frame number (additional frame count value) until the frame number (frame count value) is received, when complying with the above-described increment method of the additional frame number (additional frame count value); therefore, the order of the frame number (frame count value) and the additional frame number (additional frame count value) is desirable, but this is not limitative.
Next, description is given of a replay attack countermeasure for the FSED protocol.
It is to be noted that, in a case where the 24-bit additional frame count value and the 16-bit frame count value are combined as the 40-bit frame count value, the image sensor may transmit, to the SoC, a reset flag (reset flag) indicating that the frame count value needs to be reset (reset), via at least one of the extended packet header or the embedded data. That is, information indicating whether or not the frame count value needs to be reset to an initial value may be transmitted or received via the image data communication. In that case, there is an effect in which the image sensor is able to request the SoC to reset (reset) the frame count value or notify the SoC of reset (reset) thereof, when the image sensor needs to reset (reset) the frame count value. Even when the image sensor needs to reset the frame count value, the frame count values need to be synchronized between the image sensor and the SoC, and thus the image sensor is not able to reset the frame count value without permission of the SoC. It is to be noted that the information indicating whether or not the frame count value needs to be reset to an initial value may be abnormality notification information. In addition, the information indicating whether or not the frame count value needs to be reset to an initial value may be information indicating whether or not at least one of the SEP session key or the FSED session key needs to be updated, which may be abnormality notification information.
In a case where the AES-CMAC is used as the MAC algorithm for the FSED protocol, it is desirable to provide embedded data (e.g., at least one of Emb1b, Emb2b, or Emb3b) which is the MAC non-target region not protected by the MAC between the embedded data (e.g., at least one of the Embla, the Emb2a, or the Emb3a) which is the MAC target region data protected by the MAC and the MAC (e.g., at least one of Emb1MAC, Emb2MAC, or Emb3MAC); however, this is not limitative. One reason for this is that the arithmetic operation by the AES-CMAC is not in time in a case where a data amount of the image-system data is large because of high-speed data communication. In that case, the embedded data (e.g., at least one of the Emb1b, the Emb2b, or the Emb3b) which is the MAC non-target region is desirably the CRC target region protected by the CRC; however, this is not limitative.
Meanwhile, in a case where the AES-GMAC is used as the MAC algorithm for the FSED protocol, the embedded data (e.g., at least one of the Emb1b, the Emb2b or the Emb3b) which is the MAC non-target region may not be provided. One reason for this is that the AES-GMAC is able to be configured to allow for a parallel arithmetic operation and is therefore suitable for a high-speed arithmetic operation. However, in a case where the AES-GMAC is used as the MAC algorithm and where a circuit load caused by the AES-GMAC is desired to be reduced (i.e., a parallel arithmetic operation is reduced or no parallel arithmetic operation is performed), the embedded data (e.g., at least one of the Emb1b, the Emb2b, or the Emb3b) which is the MAC non-target region may be provided, which may be the CRC target region protected by the CRC. The image sensor may switch at least one of a packet data configuration, the circuit configuration, or the processing, to provide the embedded data (e.g., at least one of the Emb1b, the Emb2b, or the Emb3b) which is the MAC non-target region in a case of using the AES-CMAC as the MAC algorithm, and not to provide the embedded data (e.g., at least one of the Emb1b, the Emb2b, or the Emb3b) which is the MAC non-target region in a case of using the AES-GMAC. Information indicating whether or not to provide the embedded data (e.g., at least one of the Emb1b, the Emb2b, or the Emb3b) which is the MAC non-target region may be stored in embedded data (e.g., at least one of a Standard-defined region or a User-defined region) which is the MAC target region protected by the MAC, in order to be able to detect falsification caused by an attacker.
Therefore, in the line including the MAC (e.g., at least one of the Emb1MAC, the Emb2MAC, or the Emb3MAC) as a portion of the packet data (payload) of the embedded data, an explicit additional frame number (additional frame count value) and an explicit frame number (frame count value) may be included as the MAC target region. That is, performing the arithmetic operation of the MAC using the MAC target region including the explicit additional frame number (additional frame count value) and the explicit frame number (frame count value) brings an effect of taking a countermeasure against the retransmission attack in a case where the AES-CMAC is used as the MAC algorithm. It is to be noted that the SoC is able to perform the arithmetic operation of the MAC using the additional frame number (additional frame count value) received while being stored in the embedded data. Therefore, the order of the additional frame number (additional frame count value) and the frame number (frame count value) may be adopted.
The additional frame number (additional frame count value) and the frame number (frame count value) between the standard-defined region and a reserved region in a portion of the embedded data (e.g., at least one of the Emb2a or the Emb3a) may be stored in the user-defined region. However, the reserved region may be the standard-defined region or the user-defined region. In that case, there is an effect of being able to freely set a configuration of the embedded data while taking a countermeasure against the retransmission attack. At least one of the standard-defined region or the user-defined region (e.g., an FSED Security Flags region) may store different values among the Embla (Emb1MAC), the Emb2a (Emb2MAC), and the Emb3a (Emb3MAC); in that case, there is an effect of further taking a countermeasure against the retransmission attack.
In the line including the MAC (e.g., at least one of the Emb1MAC, the Emb2MAC, or the Emb3MAC) as a portion of the packet data (payload) of the embedded data, the packet data (payload) of the embedded data may include at least one of the standard-defined region or the user-defined region. In addition, at least one of the standard-defined region or the user-defined region may store at least one of the FSED Security Flags region, an ESS CCI Security Flags region, or an FSED FuSa Flags region.
At least one of the standard-defined region or the user-defined region (e.g., the FSED Message Counter region) may store an FSED security-oriented message count value (a value of the message counter) used for the initialization vector of AES-CTR encryption. In particular, in a case where the FSED security-oriented message count value is an implicit message count value, there is an effect of being able to surely synchronize (the FSED security-oriented message count values of) the initialization vectors between the image sensor and the SoC, thus preventing inconsistency (i.e., erroneous decryption) between the initialization vectors.
The image sensor may switch at least one of the packet data configuration, the circuit configuration, or the processing, to allow the MAC target region of at least one of the Emb2a or the Emb3a to differ between a case of using the AES-CMAC as the MAC algorithm and a case of using the AES-GMAC. For example, at least one of the additional frame number (additional frame count value), the frame number (frame count value), and the reserved region in the Emb2a and the Emb3a may be configured to be included in the case of using the AES-CMAC, and not to be included in the case of using the AES-GMAC. In addition, a portion or all of the Emb2a and a portion or all of the Emb3a may be an implicit MAC target region that is not transmitted or received via the image data communication at least at such a timing. For example, at least one of a portion or all of the standard-defined region, a portion or all of the additional frame number (additional frame count value), a portion or all of the frame number (frame count value), a portion or all of the reserved region, or a portion or all of the user-defined region may be an implicit MAC target region that is not transmitted or received via the image data communication at least at such a timing. In addition, the image sensor may switch at least one of the packet data configuration, the circuit configuration, or the processing, to provide an implicit MAC target region in the case of using the AES-CMAC as the MAC algorithm, and not to provide the implicit MAC target region in the case of using the AES-GMAC.
The write flag register (WFLAG) may store information indicating whether the writing (one of Sequential Write or Single Write) is a write tag or a write message. The read flag register (RFLAG) may store information indicating whether the reading (one of Sequential Read or Single Read) is a read tag or a read message. The read flag Register (RFLAG) may store information indicating whether the image sensor has detected an error (NACK: Negative Acknowledge) or not (ACK: Acknowledge) for the WMAC immediately before. The read flag Register (RFLAG) may store information indicating whether or not an additional write message count value (a value of an additional message counter) needs to be reset (reset) to an initial value (e.g., zero). In addition, the read flag Register (RFLAG) may store information indicating whether or not an additional read message count value (a value of the additional message counter) needs to be reset (reset) to an initial value (e.g., zero).
It is to be noted that distinguishment between the read tag or the read message using another means may allow information indicating whether the reading (one of the Sequential Read or the Single Read) is the read tag or the read message not to be stored in the read flag register (RFLAG), or may allow the read flag register (RFLAG) not to be provided. For example, when reading the read tag from the read flag register (RFLAG) (Sequential Read) is set as an essential requirement, and reading the read message from other than the read flag register (RFLAG) (Sequential Read) is set as an essential requirement, it is possible to distinguish whether the reading (one of the Sequential Read or the Single Read) is the read tag or the read message. For example, it is assumed that a register of an alias read tag storing the same information as the register of the read tag is provided and that sub addresses (register addresses) are differentiated between the register of the read tag and the register of the alias read tag. When reading the read tag from the register of the read tag (one of the Sequential Read or the Single Read) is set as an essential requirement, and reading the read message from the register of the alias read tag (one of the Sequential Read or the Single Read) is set as an essential requirement, it is possible to distinguish whether the reading (one of the Sequential Read or the Single Read) is the read tag or the read message.
Likewise, distinguishment between the write tag or the write message using another means may allow information indicating whether the writing (one of the Sequential Write or the Single Write) is the write tag or the write message not to be stored in the write flag register (WFLAG), or may allow the write flag register (WFLAG) not to be provided. For example, when writing the write tag from the write flag register (WFLAG) (Sequential Write) is set as an essential requirement, and writing the write message from other than the write flag register (WFLAG) (one of the Sequential Write or the Single Write) is set as an essential requirement, it is possible to distinguish whether the writing (one of the Sequential Write or the Single Write) is the write tag or the write message. For example, it is assumed that a register of an alias write tag storing the same information as the register of the write tag is provided and that sub addresses (register addresses) are differentiated between the register of the write tag and the register of the alias write tag. When writing the write tag from the register of the write tag (Sequential Write) is set as an essential requirement, and writing the write message from the register of the alias write tag (one of the Sequential Write or the Single Write) is set as an essential requirement, it is possible to distinguish whether the writing (one of the Sequential Write or the Single Write) is the write tag or the write message.
The additional write message count value may be incremented every time WSMC of the write message count value (a value of the message counter) is reset (reset) to an initial value (e.g., zero). The additional read message count value may be incremented every time RSMC of a read message count value (a value of the message counter) is reset (reset) to an initial value (e.g., zero). The additional write message count value may be an implicit MAC target region of the write MAC, and may be inserted before or after the write message count value. The additional write message count value may be an implicit MAC target region of the read MAC, and may be inserted before or after the read message count value. Thus, it becomes possible for the SoC to execute at least one of a command or processing to reset the additional message count value to an initial value, thus bringing an effect in which the image sensor is used as a starting point to be able to reset the additional message count value used for the countermeasure against the retransmission attack to an initial value.
It is to be noted that the additional message counters are desirably separate between the additional write message count value and the additional read message count value, but may be substantially combined. In addition, the message counters are desirably separate between the write message count value and read message count value, but may be substantially combined. The additional message counter and the message counter may be separate, or may be substantially combined. In a case where the additional message counter and the message counter are substantially combined, the additional message counter may be replaced by the message counter; the additional write message count value may be replaced by the write message count value; and the additional read message count value may be replaced by the read message count value.
It is to be noted that the information indicating whether or not the additional write message count value (a value of the additional message counter) needs to be reset (reset) to an initial value (e.g., zero) stored in the read flag register (RFLAG) or in the ESS CCI Security Flags region may be information indicating whether or not the ESS CCI session key needs to be updated. Further, the additional write message count value (a value of the additional message counter) may be reset (reset) to an initial value (e.g., zero) in response to the update of the ESS CCI session key.
Likewise, the information indicating whether or not the additional read message count value (a value of the additional message counter) needs to be reset (reset) to an initial value (e.g., zero) stored in the read flag register (RFLAG) or in the ESS CCI Security Flags region may be information indicating whether or not the ESS CCI session key needs to be updated. Further, the additional read message count value (a value of the additional message counter) may be reset (reset) to an initial value (e.g., zero) in response to the update of the ESS CCI session key.
A write transaction-oriented initialization vector may include an implicit additional write message count value, an explicit write message count value, and an implicit write pre-count value (a value of the pre-counter). A read transaction-oriented initialization vector may include an implicit additional read message count value, an explicit read message count value, and an implicit read pre-count value (a value of the pre-counter).
It is common for the pre-count value to be incremented every time the 128-bit (16-byte) data is encrypted or decrypted. However, in a case where this write pre-count value (read pre-count value) is applied to the write message (read message), there is a possibility that the Single Write (Read) in which only data of one byte is encrypted or decrypted and the Sequential Write (Read) in which data of two bytes or more is encrypted or decrypted may be combined with each other. In addition, there is a possibility that non-encrypted data (clear text) and encrypted data (ciphertext) may be alternately transmitted or received (e.g., ciphertexts are separated from each other, as in clear text, ciphertext, clear text, ciphertext, . . . ). Accordingly, it is not suitable for the pre-count value to be incremented every time the 16-byte data is encrypted or decrypted.
Therefore, at least one of the write pre-count value or the read pre-count value may be configured to be incremented every time one-byte data is encrypted or decrypted. In that case, it is sufficient for at least one of encryption or decryption to be executed for each one byte which is the smallest unit of the write message and the read message. Accordingly, it is not necessary to consider a complicated combination of at least one of the write message or the read message, thus bringing an effect of being able to simplify the processing of the image sensor.
Therefore, at least one of a portion (e.g., the end) of the Capabilities register, a portion (e.g., the end) of the SA_CONFIG register, a portion (e.g., the end) of the CTRL_CONFIG register, or a portion (e.g., the end) of (a register of) the session key may store a TRIGGER register indicating whether or not the image sensor is able to apply the register information in the image sensor to the image sensor (i.e., the SoC instructs the image sensor of the application). In that case, there is an effect of clarifying a timing at which the register information in the image sensor is reflected in the image sensor. The image sensor may reset a value of the TRIGGER register to an initial value (e.g., zero) immediately after the application of the register information to the image sensor.
However, these registers may be replaced by an expression such as a message. That is, for example, the Capabilities register may be replaced by a Capabilities message; the SA_CONFIG register may be replaced by an SA_CONFIG message; the CTRL_CONFIG register may be replaced by a CTRL_CONFIG message; the register of the session key may be replaced by a message of the session key; and the TRIGGER register may be replaced by a TRIGGER message.
At least one (an information processor) of the image sensor 1200 or the application processor 1100 may be configured to be mounted on a desired mobile body apparatus. For example, the mobile body apparatus may be a portable mobile apparatus, e.g., at least one of a mobile phone, a smartphone, a digital camera, a game machine, or the like. The mobile body apparatus may be a propulsion apparatus, e.g., at least one of a vehicle, a robot, a drone, or the like enabling propulsion (at least one of moving, traveling, walking, or flying). The mobile body apparatus may be at least one of an autonomous vehicle, an autonomous robot, an autonomous drone, or the like that is mounted with an AI (Artificial Intelligence) function to enable autonomous propulsion. The propulsion of the propulsion apparatus may be controlled by a user of the propulsion apparatus, and the propulsion apparatus may notify the user of at least one of an instruction or warning as needed. Meanwhile, the propulsion apparatus may be configured to allow the propulsion apparatus to automatically control the propulsion of the propulsion apparatus. At least one (information processor) of the image sensor 1200 or the application processor 1100 may be configured to be mounted on a desired fixed apparatus. For example, the fixed apparatus may be at least one of a security apparatus or a monitoring apparatus.
At least one of the timing or the position of the components included in at least one drawing of a block diagram or a flowchart is exemplary, and may be configured differently. There are various modification examples for the embodiments described in each of the examples. That is, in the components of each of the described examples, some of the components may be the same, some of the components may be integrated, some of the components may be combined, or some of the components may be separate. In addition, as for the components of each of the examples described above, some of the components may be omitted, some or all of the components may be changed, or some or all of the components may be modified. In addition, in the components of each of the described examples, some of the components may be replaced by other components, or other components may be added to some or all of the components. Further, in the components of each of the described examples, some or all of the components may be divided into multiple components, some or all of the components may be split into multiple components, or at least some of the multiple divided or split components may have at least one of different functions or different features.
Further, at least some of the components may be moved to form different embodiments. Furthermore, at least one of a binding element or a relay element may be added to a combination of at least some of the components to form a different embodiment. Additionally, at least one of a switching function or a selective function may be added to a combination of at least some of the components to form a different embodiment.
In the present specification, processing performed in accordance with a program by a computer need not necessarily be performed in time series in the order described as a flowchart. That is, the processing performed in accordance with the program by the computer also includes processing (e.g., parallel processing or object-based processing) to be executed in parallel or individually.
In addition, the program may be processed by one computer (processor) or may be subject to distributed processing by multiple computers. Further, the program may be transferred to a remote computer and executed.
Further, as used herein, the term “system” means a set of multiple components (apparatuses, modules (parts), etc.), regardless of whether or not all the components are in the same housing. Therefore, multiple apparatuses contained in separate housings and coupled together via a network and one apparatus containing multiple modules in one housing are each a system.
In addition, for example, the configuration described as one apparatus (or processor) may be divided into multiple configurations, which may be configured as multiple apparatuses (or processors). Conversely, the configurations described above as multiple apparatuses (or processors) may be integrated to be configured as one apparatus (or processor). In addition, a configuration other than the above-described configuration may be added, as a matter of course, to the configuration of each apparatus (or each processor). Further, when the configuration and the operation as the entire system are substantially the same, some of the configurations of a certain apparatus (or processor) may be included in the configuration of another apparatus (or another processor).
In addition, for example, the present technology can employ a cloud computing configuration in which one function is shared and jointly processed by multiple apparatuses via a network.
In addition, for example, the above-described program can be executed in any apparatus. In that case, it is sufficient for the apparatus to have a necessary function (such as a function block) to be able to obtain necessary information.
In addition, for example, the steps described in the above-described flowcharts can be executed by one apparatus, and can also be shared and executed by multiple apparatuses. Further, in a case where multiple pieces of processing are included in one step, the multiple pieces of processing included in the one step can be executed by one apparatus, and can also be shared and executed by multiple apparatuses. In other words, the multiple pieces of processing included in one step can also be executed as processing of multiple steps. Conversely, the processing described as the multiple steps can also be collectively executed as one step.
It is to be noted that, as for the program to be executed by a computer, pieces of processing of steps describing the program may be executed in time series in the order described herein, or may be executed in parallel or individually at a necessary timing such as when a call is made. That is, the pieces of processing of the respective steps may be executed in an order different from the above-described order unless contradiction occurs. Further, the processing of steps describing this program may be executed in parallel with processing of another program, or may be executed in combination with processing of another program.
It is to be noted that the present multiple technologies described herein may be implemented alone independently of one another unless contradiction occurs. It is needless to say that any present multiple technologies may be used together. For example, some or all of the present technologies described in any of the embodiments may be implemented in combination with some or all of the present technologies described in other embodiments. In addition, some or all of any of the above-described present technologies may be implemented together with other technologies not described above.
It is to be noted that the present technology may also have the following configurations.
In addition, the present technology may also have the following configurations.
It is to be noted that the present embodiment is not limited to the foregoing embodiment, and may be modified in a wide variety of ways without departing from the gist of the present disclosure. In addition, the effects described herein are merely exemplary and non-limiting, and may have other effects.
The present application claims the benefits of Japanese Priority Patent Application JP2022-083985 filed with the Japan Patent Office on May 23, 2022, and Japanese Priority Patent Application JP2022-108022 filed with the Japan Patent Office on Jul. 4, 2022, the entire contents of which are incorporated herein by reference.
It should be understood by those skilled in the art that various modifications, combinations, sub-combinations, and alterations may occur depending on design requirements and other factors insofar as they are within the scope of the appended claims or the equivalents thereof.
Number | Date | Country | Kind |
---|---|---|---|
2022-083985 | May 2022 | JP | national |
2022-108022 | Jul 2022 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2022/041941 | 11/10/2022 | WO |