Communication control apparatus and communication control method
Claim Score by NHIP
Abstract
A communication control apparatus includes a receiver and a processor. The receiver receives, from a first node, data including first identification information or second identification information. The processor generates a first authentication code by using first data when the receiver has received the first data including the first identification information. The receiver receives, from the first node, second data including the second identification information and a second authentication code that the first node has generated by using the first data. The processor decides whether to make the second node abort a process of the data reported using the first identification information, on the basis of a result of a comparison between the first authentication code and the second authentication code.

Term
Projected expiry 29 October 2035.
- Priority
- Filed
- Published
- Today
- Projected expiry
12 claims: 3 independent, 9 dependent
- 1Broadest claimClaim Score 61, broad(NHIP)A communication control apparatus, comprising:a receiver configured to receive, from a first node, data including first identification information or second identification information;and a processor configured to generate a first authentication code by using first data when the receiver has received the first data including the first identification information, wherein the receiver receives, from the first node, second data including the second identification information and a second authentication code that the first node has generated by using the first data, and the processor decides whether to make a second node abort a process of the data reported using the first identification information, on the basis of a result of a comparison between the first authentication code and the second authentication code.
- 5A communication control method for performing a communication control among a plurality of nodes, the method comprising:receiving, from a first node, first data including first identification information;generating a first authentication code by using the received first data;receiving, from the first node, second data including second identification information and a second authentication code that the first node has generated by using the first data;making a comparison between the first authentication code and the second authentication code;and determining whether to make a second node abort a process of the data reported using the first identification information, on the basis of a result of the comparison.
- 9A non-transitory computer-readable recording medium having stored therein a program for causing a communication control apparatus performing a communication control among a plurality of nodes to execute a process comprising:receiving, from a first node, first data including first identification information;generating a first authentication code by using the received first data;receiving, from the first node, second data including second identification information and a second authentication code that the first node has generated by using the first data;making a comparison between the first authentication code and the second authentication code;and determining whether to make a second node abort a process of the data reported using the first identification information, on the basis of a result of the comparison.
Independent claims3
152 paragraphs in 6 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATION
0001This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2014-266836, filed on Dec. 27, 2014, the entire contents of which are incorporated herein by reference.
FIELD
0002The embodiments discussed herein are related to a control of a communication among communication devices.
BACKGROUND
0003A network technique called a CAN (Controller Area Network) is sometimes used to transmit and receive data and control information between devices that are used in an in-vehicle network of an automobile, factory automation or the like. A system using a CAN includes a plurality of ECUs (Electronic Control Units). ECUs communicate with each other by transmitting and receiving a frame. In a CAN, a frame used for a communication includes identification information (ID) used to identify the frame. Moreover, each of the ECUs prestores the ID of a received frame. A frame is broadcast, and each of the ECUs receives a frame including an ID that is set to be received by an ECU. However, each of the ECUs ignores a frame including an ID that is set not to be received.
0004An association between an ID used in a frame and an ECU is not entirely standardized, and which ECU is set to receive which ID is not disclosed. However, an attacker can make an association between a transmitted frame and a process executed in a system by intercepting frames transmitted and received in a CAN, and by observing processes executed in the system using the CAN. The attacker can store frames transmitted in the past and the obtained association between frames and processes executed in the system. The attacker can transmit, to the network, a frame associated with a behavior desired to be invoked for the system using the CAN. Then, the frame transmitted from the attacker causes an automobile or an automation factory to execute an improper process. In the following description, such an attack is sometimes referred to as a “replay attack” or a “retransmission attack”.
0005An authentication method using a message authentication code (MAC) generated from data, an ID and a counter value corresponding to the ID is proposed to prevent a replay attack. Here, the counter value is a value obtained by counting the number of times that a message is transmitted for each ID of a frame in each ECU. A device at a transmission source transmits, to a device at a destination, a main message including data to be transmitted, and a MAC message for making a notification of a MAC generated by using the main message.
0006The device that has received the main message and the MAC message generates a MAC from the main message, and determines whether the main message has validity by judging whether the generated MAC and a MAC within the MAC message match.
0007Documents such as Japanese Laid-open Patent Publication No. 2013-98719 and the like are known.
0008When each device within a CAN system verifies a MAC each time the device has received a frame including data, all the devices within the system generate a counter value, calculate a MAC, and make a comparison between a MAC calculated from the frame and a MAC for which notification has been made. Accordingly, loads imposed on the devices on a reception side increase.
SUMMARY
0009According to an aspect of the embodiments, a communication control apparatus includes a receiver and a processor. The receiver receives, from a first node, data including first identification information or second identification information. The processor generates a first authentication code by using first data when the receiver has received the first data including the first identification information. The receiver receives, from the first node, second data including the second identification information and a second authentication code that the first node has generated by using the first data. The processor decides whether to make a second node abort a processing of data reported using the first identification information, on the basis of a result of a comparison between the first authentication code and the second authentication code.
0010The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
0011It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
BRIEF DESCRIPTION OF DRAWINGS
0012<figref idref="DRAWINGS">FIG. 1</figref> is a sequence diagram for explaining an example of a control method according to an embodiment.
0013<figref idref="DRAWINGS">FIG. 2</figref> illustrates an example of a configuration of a communication control apparatus.
0014<figref idref="DRAWINGS">FIG. 3</figref> illustrates an example of a MAC table.
0015<figref idref="DRAWINGS">FIG. 4</figref> illustrates an example of a configuration of a transmission node.
0016<figref idref="DRAWINGS">FIG. 5</figref> illustrates an example of a hardware configuration.
0017<figref idref="DRAWINGS">FIG. 6</figref> illustrates examples of formats of a transmitted or received frame.
0018<figref idref="DRAWINGS">FIG. 7</figref> is an explanatory diagram of an example of a network to which a first embodiment is applied.
0019<figref idref="DRAWINGS">FIG. 8</figref> is a sequence diagram illustrating an example of a method for setting an initial value of a counter value.
0020<figref idref="DRAWINGS">FIG. 9</figref> is an explanatory diagram of an example of a MAC generation method.
0021<figref idref="DRAWINGS">FIG. 10</figref> is a sequence diagram for explaining an example of a control method in the first embodiment.
0022<figref idref="DRAWINGS">FIG. 11</figref> is a flowchart for explaining an example of a process executed by a communication control apparatus in the first embodiment.
0023<figref idref="DRAWINGS">FIG. 12</figref> is an explanatory diagram of a network.
0024<figref idref="DRAWINGS">FIG. 13</figref> is an explanatory diagram of examples of a network and a frame to which a second embodiment is applied.
0025<figref idref="DRAWINGS">FIG. 14A</figref> is a sequence diagram for explaining an example of a control method in the second embodiment.
0026<figref idref="DRAWINGS">FIG. 14B</figref> is a sequence diagram for explaining the example of the control method in the second embodiment.
0027<figref idref="DRAWINGS">FIG. 15</figref> is a flowchart for explaining an example of a process executed by a communication control apparatus in the second embodiment.
0028<figref idref="DRAWINGS">FIG. 16</figref> is an explanatory diagram of an example of an authentication code generation method.
0029<figref idref="DRAWINGS">FIG. 17</figref> illustrates an example of an authentication code table.
0030<figref idref="DRAWINGS">FIG. 18</figref> is a sequence diagram for explaining an example of a control method in a third embodiment.
0031<figref idref="DRAWINGS">FIG. 19</figref> is a flowchart for explaining an example of a process executed by a communication control apparatus in the third embodiment.
DESCRIPTION OF EMBODIMENTS
0032<figref idref="DRAWINGS">FIG. 1</figref> is a sequence diagram for explaining an example of a control method according to an embodiment. <figref idref="DRAWINGS">FIG. 1</figref> illustrates an example of a process executed when one communication control apparatus <b>10</b>, one transmission node <b>40</b> and one reception node <b>60</b> are installed in a CAN network. However, the number of transmission nodes <b>40</b> and the number of reception nodes <b>60</b> within the system are arbitrary. In the following description, a device that transmits a frame (data frame) including data used in a process executed in the system is referred to as a “transmission node”. In the meantime, a device that receives a data frame, executes a process for operating the system by executing a process based on data within the data frame, and does not execute a process for detecting a replay attack is referred to as a “reception node” <b>60</b>.
0033The transmission node <b>40</b> uses a first ID when the transmission node <b>40</b> transmits data addressed to the reception node <b>60</b>, and also uses a second ID that is not received by the reception node <b>60</b> when the transmission node <b>40</b> communicates with the communication control apparatus <b>10</b>. The communication control apparatus <b>10</b> recognizes both the first ID and the second ID as reception targets. In the example illustrated in <figref idref="DRAWINGS">FIG. 1</figref>, the first ID and the second ID are 123 and 777, respectively.
0034In step S<b>1</b>, the transmission node <b>40</b> generates a data frame including data A, the notification of which is made to the reception node <b>60</b>. The data frame is assumed to be identified on the basis of the first ID (=123).
0035In step S<b>2</b>, the transmission node <b>40</b> transmits the data frame generated in step S<b>1</b>. Since the data frame is broadcast, the frame reaches both the reception node <b>60</b> and the communication control apparatus <b>10</b>. Because the reception node <b>60</b> recognizes the ID=123 as a reception target, the reception node <b>60</b> receives the data frame to obtain the data A. Since the communication control apparatus <b>10</b> also recognizes the ID=123 as a reception target, the communication control apparatus <b>10</b> receives the data frame to obtain the data A.
0036In step S<b>3</b>, the communication control apparatus <b>10</b> calculates a MAC from the data A. <figref idref="DRAWINGS">FIG. 1</figref> assumes that a result of the MAC calculation in the communication control apparatus is MAC <b>1</b>. An arbitrary method is available as a MAC calculation method as long as the method is common to both the communication control apparatus <b>10</b> and the transmission node <b>40</b>.
0037As indicated by step S<b>4</b>, the transmission node <b>40</b> also calculates a MAC by using the transmitted data A. <figref idref="DRAWINGS">FIG. 1</figref> assumes that a result of the MAC calculation in the transmission node <b>40</b> is MAC <b>2</b>.
0038In step S<b>5</b>, the transmission node <b>40</b> broadcasts data (data B) including the result of the MAC calculation by using the second ID (=777). Since the second ID is not set as a reception target in the reception node <b>60</b>, the reception node <b>60</b> discards the frame including the data B without receiving the frame. In contrast, since the second ID is set as a reception target in the communication control apparatus <b>10</b>, the communication control apparatus <b>10</b> receives the frame including the data B.
0039In step S<b>6</b>, the communication control apparatus <b>10</b> extracts, from the data B, the MAC <b>2</b> calculated in the transmission node <b>40</b>. The communication control apparatus <b>10</b> makes a comparison between the MAC <b>1</b> calculated in step S<b>3</b> and the extracted MAC <b>2</b>. When the MAC <b>1</b> and the MAC <b>2</b> match, the communication control apparatus <b>10</b> determines that a replay attack has not occurred, and terminates the process (“YES” in step S<b>6</b>).
0040In contrast, when the MAC <b>1</b> and the MAC <b>2</b> do not match, the communication control apparatus <b>10</b> determines that the replay attack has occurred (“NO” in step S<b>6</b>, step S<b>7</b>). Accordingly, the communication control apparatus <b>10</b> issues, to the reception node <b>60</b>, a request to abort the process of a frame using the ID=123 (step S<b>8</b>).
0041As described above, with the control method explained with reference to <figref idref="DRAWINGS">FIG. 1</figref>, a frame that includes the value of a MAC calculated in the transmission node <b>40</b> is not received by the reception node <b>60</b>. Accordingly, the reception node <b>60</b> does not execute processes such as a process for receiving a MAC, a process for generating a MAC from received data, and the like. Therefore, a load imposed on the reception node <b>60</b> remains unchanged even if a detection of a replay attack is executed. In contrast, the communication control apparatus <b>10</b> can detect a replay attack by making a comparison between a MAC calculated by using data received by the reception node <b>60</b> and a MAC reported from the transmission node <b>40</b> to verify whether the replay attack has occurred.
0042The system where the communication control apparatus <b>10</b> generates a MAC and detects a replay attack also has an advantage such that a reception node <b>60</b> disabled to generate a MAC is available. A device included in a currently popular system does not include processing circuitry and the like for generating a MAC, or for detecting a reply attack. With the method according to the embodiment, the communication control device <b>10</b> can detect a replay attack as a replacement for an individual reception node <b>60</b>. As a result, a device that receives data can prevent a replay attack without executing a process for making a comparison between MACs.
0043<Examples of a Device Configuration and a Frame Format>
0044<figref idref="DRAWINGS">FIG. 2</figref> illustrates an example of a configuration of the communication control apparatus <b>10</b>. The communication control apparatus <b>10</b> includes a transmitter/receiver <b>11</b>, a counter <b>14</b>, a controller <b>20</b> and a storage unit <b>30</b>. The transmitter/receiver <b>11</b> includes a transmitter <b>12</b> and a receiver <b>13</b>. The controller <b>20</b> includes a MAC generator <b>21</b> and a comparator <b>22</b>. The storage unit <b>30</b> stores a MAC table <b>31</b>.
0045The transmitter <b>12</b> transmits a frame to a different device within the CAN network as needed. The receiver <b>13</b> receives a frame including an ID set to be received by the communication control apparatus <b>10</b> among frames transmitted from different devices within the CAN network. The receiver <b>13</b> outputs the received data frame to the MAC generator <b>21</b>. In the meantime, the receiver <b>13</b> outputs, to the comparator <b>22</b>, a frame (notification frame) used to make a notification of the MAC generated in the transmission node <b>40</b>. The counter <b>14</b> generates a counter value used to generate a MAC. The counter value is stored in the storage unit <b>30</b> as needed.
0046The MAC generator <b>21</b> generates a MAC by using data within the frame input from the receiver <b>13</b>, and the counter value. A MAC generation method will be described later. The MAC generator <b>21</b> stores the generated MAC in the MAC table <b>31</b> in association with the ID within the frame. The comparator <b>22</b> determines whether a replay attack has occurred by making a comparison between the MAC within the frame input from the receiver <b>13</b> and MAC stored in the MAC table <b>31</b>. When the MACs to be compared do not match, the comparator <b>22</b> determines that the replay attack has occurred.
0047<figref idref="DRAWINGS">FIG. 3</figref> illustrates an example of the MAC table <b>31</b>. The MAC table <b>31</b> has an arbitrary form in which a MAC generated by the MAC generator <b>21</b> and an ID within a frame used to transmit and receive data that is utilized to generate the MAC are associated with each other and stored. In the example illustrated in <figref idref="DRAWINGS">FIG. 3</figref>, an ID of a frame, a value resulting from a MAC calculation, and a counter value are associated with one another and stored. The counter value is a value that is used to generate a MAC and is updated by the counter <b>14</b> as needed. Note that the form of the MAC table <b>31</b> is changeable in accordance with an implementation. For example, when only one ID is used to transmit and receive a data frame within the system, the MAC table <b>31</b> may include no IDs.
0048<figref idref="DRAWINGS">FIG. 4</figref> illustrates an example of a configuration of the transmission node <b>40</b>. The transmission node <b>40</b> includes a transmitter/receiver <b>41</b>, a counter <b>44</b>, a storage unit <b>45</b> and a frame processing unit <b>50</b>. The transmitter/receiver <b>41</b> includes a transmitter <b>42</b> and a receiver <b>43</b>. The frame processing unit <b>50</b> includes a MAC generator <b>51</b>, a data frame generator <b>52</b> and a notification frame generator <b>53</b>.
0049The transmitter <b>42</b> transmits a frame input from the data frame generator <b>52</b> or the notification frame generator <b>53</b> to a different device within the CAN network. The receiver <b>43</b> receives a frame from a different device within the CAN network as needed. The counter <b>44</b> generates a counter value used to generate a MAC. The counter value is stored in the storage unit <b>45</b> as needed.
0050The data frame generator <b>52</b> generates a data frame including data for which the notification is made to the reception node <b>60</b>. The MAC generator <b>51</b> calculates a MAC by using the data within the data frame. The notification frame generator <b>53</b> generates a notification frame for making a notification of the MAC calculated by the MAC generator <b>51</b>. Note that an ID not to be received by the reception node <b>60</b> is set in the notification frame.
0051<figref idref="DRAWINGS">FIG. 5</figref> illustrates an example of a hardware configuration. Both the communication control apparatus <b>10</b> and the transmission node <b>40</b> can be implemented with the hardware illustrated in <figref idref="DRAWINGS">FIG. 5</figref>. In the example illustrated in <figref idref="DRAWINGS">FIG. 5</figref>, both the communication control apparatus <b>10</b> and the transmission node <b>40</b> are implemented as an ECU <b>100</b>. The ECU <b>100</b> includes a CAN transceiver <b>101</b>, a CAN controller <b>102</b> and a processing circuit <b>103</b>. The processing circuit <b>103</b> includes a processor <b>104</b> and a memory <b>105</b>.
0052The CAN transceiver <b>101</b> executes, as needed, a process, such as an adjustment of a bus voltage or the like, by which the ECU <b>100</b> communicates with a different device within the CAN network. The CAN controller <b>102</b> extracts data by executing processes such as CRC (Cyclic Redundancy Check), bit stuffing and the like for the received frame. The CAN controller <b>102</b> outputs the data to the processor <b>104</b>. The processor <b>104</b> is an arbitrary processing circuit. The processor executes a process by reading a program stored in the memory <b>105</b>.
0053In the communication control apparatus <b>10</b>, the transmitter/receiver <b>11</b> is implemented by the CAN transceiver <b>101</b> and the CAN controller <b>102</b>. The processor <b>104</b> operates as the counter <b>14</b> and the controller <b>20</b>. The memory <b>105</b> operates as the storage unit <b>30</b>.
0054In the transmission node <b>40</b>, the CAN transceiver <b>101</b> and the CAN controller <b>102</b> implement the transmitter/receiver <b>41</b>. The processor <b>104</b> operates as the counter <b>44</b> and the frame processing unit <b>50</b>. The memory <b>105</b> operates as the storage unit <b>45</b>.
0055<figref idref="DRAWINGS">FIG. 6</figref> illustrates examples of formats of a transmitted or received frame. F<b>11</b> illustrated in <figref idref="DRAWINGS">FIG. 6</figref> is an example of the format of a frame having general specifications, while F<b>12</b> is that of the format of a frame used in extended specifications.
0056The frame having general specifications includes an SOF (Start of Frame), an arbitration field, a control field, a data field, a CRC field, an ACK field and an EOF (End of Frame). The arbitration field includes an ID and an RTR (Remote Transmission Request). Here, the ID is identification information used to identify a frame. The control field includes an IDE (Identifier Extension), a reserved bit and a DLC (Data Length Code). The CRC field includes a CRC sequence and a CRC delimiter. The ACK field includes an ACK slot and an ACK delimiter. Bit lengths of the information elements included in the fields are those represented in the bottom row of F<b>11</b>. For example, the length of the ID is 11 bits, and the length of the data field is a variable length ranging from 0 to 64 bits.
0057Also the frame (F<b>12</b>) used in the extended specifications includes an SOF, an arbitration field, a control field, a data field, a CRC field, an ACK field and an EOF. The arbitration field having the extended specifications includes an ID base, an SRR (Substitute Remote Request Bit), an IDE, an ID extension and an RTR. In the extended specifications, a bit string obtained by concatenating a bit string stored as the ID extension to a bit string stored as the ID base represents identification information (ID) of a frame. Also, in the format having the extended specifications, fields from the control field to the EOF are similar to those of the general specifications. Moreover, bit lengths of the information elements included in the fields are those described in the bottom row of F<b>12</b>. Accordingly, in the extended format, a bit string of 29 bits in which 11 bits of the ID base is concatenated to 18 bits of the ID extension is used as identification information of a transmission source. Examples of processes executed in the embodiments are described below by taking, as an example, a case where a frame using the format indicated by F<b>11</b> of <figref idref="DRAWINGS">FIG. 6</figref> is transmitted and received. Also, when a frame used for a communication has the extended specifications, processes are similarly executed.
First Embodiment
0058<figref idref="DRAWINGS">FIG. 7</figref> is an explanatory diagram of an example of a network N<b>1</b> to which a first embodiment is applied. For ease of understanding, the network N<b>1</b> represents an example of a case where one communication control apparatus <b>10</b>, one transmission node <b>40</b> and one reception node <b>60</b> are installed. However, the number of transmission nodes <b>40</b> and the number of reception nodes <b>60</b> within the system are arbitrary. The first embodiment assumes that the number of IDs used to transmit and receive a data frame is one. The first embodiment is described by taking, as an example, a case where an ID=123 is used to transmit and receive a data frame.
0059The communication control apparatus <b>10</b>, the reception node <b>60</b> and the transmission node <b>40</b> are interconnected by a bus <b>71</b>, and a frame transmitted from any of the devices may be broadcast. Each of the devices receives a frame including an ID set as a reception target, and discards other frames. The communication control apparatus <b>10</b> and the reception node <b>60</b> are connected by a connection wire <b>72</b> for transmitting a signal intended to make, to the reception node <b>60</b>, a notification that a replay attack has been detected.
0060It is assumed that the transmission node <b>40</b> and the communication control apparatus <b>10</b> hold a common key prior to the start of a communication. Here, a method by which the communication control apparatus <b>10</b> and the transmission node <b>40</b> obtain the common key may be any of the arbitrary known methods. The transmission node <b>40</b> and the communication control apparatus <b>10</b> set an initial value of the counter value so that the counter value used to generate a MAC can become common. Here, the counter value is used to generate a MAC, and a different value is used for each frame. Moreover, the counter value itself is not transmitted and received between any of the devices.
0061<figref idref="DRAWINGS">FIG. 8</figref> is a sequence diagram illustrating an example of a method for setting the initial value of the counter value. The communication control apparatus <b>10</b> generates a random number for setting the initial value of the counter value used to calculate a MAC that is utilized to detect a replay attack (step S<b>11</b>). Next, the communication control apparatus <b>10</b> broadcasts the generated random number by using an ID that is received by the transmission node <b>40</b> and is not received by the reception node <b>60</b>. Note that this communication may be encrypted. The following example assumes that the transmission node <b>40</b> receives an ID=777, and uses the ID=777 to make a notification of a MAC. The example also assumes that the reception node <b>60</b> does not receive a frame having the ID=777. Accordingly, the communication control apparatus <b>10</b> broadcasts a frame after incorporating the generated random number into the data field within the frame including the ID=777 (step S<b>12</b>).
0062Additionally, in step S<b>13</b>, the communication control apparatus <b>10</b> generates the initial value of the counter <b>14</b> by encrypting the random number with a common key. The communication control apparatus <b>10</b> stores the initial value obtained in step S<b>13</b> in association with an ID that the transmission node <b>40</b> uses to communicate with the reception node <b>60</b> (step S<b>14</b>).
0063In the meantime, the transmission node <b>40</b> receives the frame (ID=777) that has been transmitted from the communication control apparatus <b>10</b> in step S<b>12</b>, and obtains the random number from the data field of the received frame. Moreover, the transmission node <b>40</b> generates the initial value of the counter <b>44</b> by encrypting the obtained random number with the common key (step S<b>15</b>). The transmission node <b>40</b> sets the initial value obtained in step S<b>15</b> as the initial value of the counter <b>44</b> (step S<b>16</b>).
0064<figref idref="DRAWINGS">FIG. 9</figref> is an explanatory diagram of an example of the MAC generation method. The MAC generation method is common to the communication control apparatus <b>10</b> and the transmission node <b>40</b>. Therefore, the method is explained before examples of processes executed in the first embodiment are described. As the MAC generation method, a method using a hash function such as HMAC-SHA 1 (Hash-based Message Authentication Code—Secure Hash Algorithm 1), HMAC-SHA 256 or the like, or a method using a block encryption algorithm is available. An example of a case where the block encryption algorithm is used is referred to in the following description with reference to FIG. <b>9</b>. An arbitrary method may be available as the MAC generation method as long as the method is common to the communication control apparatus <b>10</b> and the transmission node <b>40</b>.
0065To generate a MAC, a sequence obtained by concatenating data within the data field of a frame for which a MAC is to be calculated, a counter value and an ID (CAN ID) of the frame for which the MAC is to be calculated is used. Here, the counter value is a value processed by the counter <b>14</b> or the counter <b>44</b> so that a different value can be used each time a MAC is calculated. In the example illustrated in <figref idref="DRAWINGS">FIG. 9</figref>, the sequence in which data, a counter value and a CAN ID are concatenated in this order is generated. However, the order of concatenated elements may be changed in accordance with an implementation. Next, a device that generates a MAC generates an encrypted sentence by encrypting the sequence obtained by concatenating the data, the counter value and the CAN ID with the use of the common key. The device that generates a MAC selects 64 bits from the encrypted sentence with a predetermined method, and defines the obtained value as a MAC. A method for selecting 64 bits is arbitrary as long as the method is common to the communication control apparatus <b>10</b> and the transmission node <b>40</b>. For example, the MAC generator <b>21</b> and the MAC generator <b>51</b> may define, as a MAC, the first 64 bits of a generated encrypted sentence, or define, as a MAC, the last 64 bits of the encrypted sentence.
0066<figref idref="DRAWINGS">FIG. 10</figref> is a sequence diagram for explaining an example of a control method in the first embodiment. The method illustrated in <figref idref="DRAWINGS">FIG. 10</figref> is merely one example. The order of steps, such as steps S<b>21</b> and S<b>22</b>, may be switched.
0067The MAC generator <b>51</b> within the transmission node <b>40</b> obtains a counter value (the value of the counter <b>44</b>) to be used when a data frame is transmitted to the reception node (step S<b>21</b>). The data frame generator <b>52</b> generates a data frame having the ID=123 by incorporating data, the notification of which is to be made to the reception node <b>60</b>, into the data field (step S<b>22</b>). The data frame generator <b>52</b> outputs the generated data frame to the transmitter <b>42</b>. The transmitter <b>42</b> broadcasts the data frame (step S<b>23</b>). Since the ID=123 that is received by both the reception node <b>60</b> and the communication control apparatus <b>10</b> is used for the data frame, the frame is received by both the reception node <b>60</b> and the communication control apparatus <b>10</b>.
0068Because the ID of the received frame is set as the value (ID=123) for transmitting and receiving a data frame, the receiver <b>13</b> of the communication control apparatus <b>10</b> outputs the received frame to the MAC generator <b>21</b>. The MAC generator <b>21</b> calculates a MAC (MAC <b>1</b>) by using the value of the data field within the input frame, and the counter value within the MAC table <b>31</b> (step S<b>24</b>). The MAC calculation method is that described with reference to <figref idref="DRAWINGS">FIG. 9</figref>. The MAC generator <b>21</b> records the MAC <b>1</b> in association with the ID (=123) of the received frame. Thereafter, the counter <b>14</b> increments the counter value in preparation for the next MAC calculation (step S<b>25</b>).
0069In the meantime, the MAC generator <b>51</b> within the transmission node <b>40</b> calculates a MAC (MAC<b>2</b>) by using the value of the data field within the transmitted frame, the counter value, and the ID within the transmitted frame after the data frame has been transmitted (step S<b>26</b>). Also the MAC calculation performed in the MAC generator <b>51</b> is that described with reference to <figref idref="DRAWINGS">FIG. 9</figref>. Thereafter, the counter <b>44</b> increments the counter value in preparation for the next MAC calculation (step S<b>27</b>).
0070The MAC generator <b>51</b> outputs the generated MAC to the notification frame generator <b>53</b>. The notification frame generator <b>53</b> generates a notification frame for making a notification of an input MAC. At this time, an ID recognized as a reception target that is received by the communication control apparatus <b>10</b> and not received by the reception node <b>60</b> is set in the notification frame. The example illustrated in <figref idref="DRAWINGS">FIG. 10</figref> assumes that the ID=777 is set in the notification frame. The example also assumes that the MAC <b>2</b> obtained by the MAC generator <b>51</b> is incorporated into the data field of the notification frame. Namely, the MAC <b>2</b> calculated by the transmission node <b>40</b> is a value that is used to verify whether a replay attack has occurred in the communication control apparatus <b>10</b>. The MAC generator <b>51</b> broadcasts the notification frame via the transmitter <b>42</b> (step S<b>28</b>). Then, the notification frame is received by the communication control apparatus <b>10</b>.
0071Since the ID of the received frame is the ID (=777) that indicates the notification frame, the receiver <b>13</b> of the communication control apparatus <b>10</b> outputs the notification frame to the comparator <b>22</b>. When the notification frame has been input, the comparator <b>22</b> obtains an already calculated MAC <b>1</b> from the MAC table <b>31</b>. Moreover, the comparator <b>22</b> extracts the MAC (MAC <b>2</b>) included in the data field of the input notification frame. The comparator <b>22</b> determines whether the MAC <b>1</b> and the MAC <b>2</b> match (step S<b>29</b>). When the MAC <b>1</b> and the MAC <b>2</b> match, the comparator <b>22</b> determines that a replay attack has not been detected, and terminates the process (“YES” in step S<b>29</b>).
0072In contrast, when the MAC <b>1</b> and the MAC <b>2</b> do not match, the comparator <b>22</b> determines that the replay attack has been detected (step S<b>30</b>). The comparator <b>22</b> transmits a signal for issuing a request to abort the process of a frame having the ID=123 to the reception node <b>60</b> via the connection wire <b>72</b> (step S<b>31</b>). The form of the signal is assumed to be an arbitrary one that enables the reception node <b>60</b> to recognize that the request to abort the process of a frame having the ID=123 has been issued.
0073<figref idref="DRAWINGS">FIG. 11</figref> is a flowchart for explaining an example of the process executed by the communication control apparatus <b>10</b> in the first embodiment. The receiver <b>13</b> waits until a frame is received (“NO” in step S<b>41</b>). Upon receipt of the frame, the receiver <b>13</b> determines whether the ID of the received frame is an ID for making a notification of a MAC (“YES” in step S<b>41</b>, step S<b>42</b>).
0074When the ID of the received frame is not the ID for making a notification of a MAC, the receiver <b>13</b> outputs the received frame to the MAC generator <b>21</b> (“NO” in step S<b>42</b>). The MAC generator <b>21</b> extracts the ID and data from the received frame (step S<b>43</b>). When the extracted ID is a value for which a MAC is to be verified, the MAC generator <b>21</b> obtains the counter value (step S<b>44</b>). The MAC generator <b>21</b> generates a MAC by using the ID, the data and the counter value (step S<b>45</b>). The MAC generator <b>21</b> stores the calculated MAC (MAC <b>1</b>) in association with the ID of the received frame (step S<b>46</b>). Next, the counter <b>14</b> increments the counter value (step S<b>47</b>).
0075When the ID of the received frame is the ID for making a notification of a MAC, the receiver <b>13</b> outputs the received frame to the comparator <b>22</b> (“YES” in step S<b>42</b>). The comparator <b>22</b> extracts, from the input frame, the MAC (MAC <b>2</b>) calculated by the transmission node <b>40</b> (step S<b>48</b>). The comparator <b>22</b> obtains the MAC (MAC <b>1</b>) stored in the MAC table <b>31</b>, and makes a comparison between the MAC <b>1</b> and the MAC <b>2</b> (steps S<b>49</b> and S<b>50</b>). When the MAC <b>1</b> and the MAC <b>2</b> match, the comparator <b>22</b> terminates the process (“YES” in step S<b>50</b>). When the MAC <b>1</b> and the MAC <b>2</b> do not match, the comparator <b>22</b> determines that an attack has been detected (“NO” in step S<b>50</b>, step S<b>51</b>). Thereafter, the comparator <b>22</b> issues a request to abort the process of the frame identified on the basis of the ID with which the attack has been detected, to the reception node <b>60</b> via the connection wire <b>72</b>.
0076As described above, in the first embodiment, a replay attack can be detected in the communication control apparatus <b>10</b> even though the reception node <b>60</b> does not execute the process for a MAC. Moreover, the reception node <b>60</b> can abort the process of a frame transmitted by a replay attack on the basis of a notification made from the communication control apparatus <b>10</b>. Accordingly, a replay attack can be detected and the system can be protected from a replay attack without increasing a processing load imposed on the transmission node <b>40</b>. Moreover, since the process for a MAC is not executed in the reception node <b>60</b>, an existing ECU is made available as the reception node <b>60</b> by laying the connection wire <b>72</b> between the communication control apparatus <b>10</b> and the reception node <b>60</b>.
0077In a MAC used in the first embodiment, the counter value is processed by the counter <b>14</b> or the counter <b>44</b> so that a different value can be used each time a MAC is calculated. Namely, even if a frame that was transmitted in the past is retransmitted, the counter value used when the MAC generator <b>21</b> calculates a MAC by using received data will be changed by the counter <b>14</b> from that used when the retransmitted frame has been initially transmitted. Accordingly, a counter value used to calculate a MAC will be different even if a notification frame of a MAC that was transmitted for the retransmitted frame is retransmitted. Therefore, the comparator <b>22</b> can detect a replay attack.
0078Note that the communication control apparatus <b>10</b> may include notification means, such as a screen or the like, for making a notification to a user. In this case, the communication control apparatus <b>10</b> may make, to the user, a notification that an attack is being made by using the notification means such as a screen or the like without utilizing the connection wire <b>72</b> when the replay attack has been detected.
Modification Example
0079<figref idref="DRAWINGS">FIG. 12</figref> is an explanatory diagram of an example of a network. A modification example of the first embodiment is described with reference to <figref idref="DRAWINGS">FIG. 12</figref>. A network N<b>2</b> illustrated in <figref idref="DRAWINGS">FIG. 12</figref> includes the communication control apparatus <b>10</b>, the transmission node <b>40</b>, the reception node <b>60</b>, and a management device <b>75</b>. Here, the management device <b>75</b> is a device installed in a management center that manages communications within a CAN system. The communication control apparatus <b>10</b> and the management device <b>75</b> are connected by a connection wire <b>73</b>.
0080It is assumed that the communication control apparatus <b>10</b>, the transmission node <b>40</b>, and the reception node <b>60</b> are interconnected by a bus so that the devices can transmit and receive a frame. Upon detection of a replay attack with the procedures described in the first embodiment, the communication control apparatus <b>10</b> makes, to the management device <b>75</b>, a notification that the replay attack has occurred. An operator of the management device <b>75</b> is assumed to execute a process for preventing a replay attack when the notification that the replay attack has been detected is made to the management device <b>75</b>. When a notification instruction or the like is issued from the management device <b>75</b> to the reception node <b>60</b>, the management device <b>75</b> and the reception node <b>60</b> may be connected.
0081In another modification example, the communication control apparatus <b>10</b> and the reception node <b>60</b> possess a common key used to encrypt the abortion instruction, and a counter value used to encrypt the abortion instruction. In this case, the communication control apparatus <b>10</b> can make a notification of the abortion instruction to the reception node <b>60</b> via the bus <b>71</b>. In the following description, the request to abort the process of a frame including an ID identical to that within a frame from which a replay attack has been detected is referred to as an “abortion instruction”. Moreover, a common counter value used to encrypt the abortion instruction is referred to as an “abortion counter value” in order to facilitate a distinction from the counter value handled by the counter <b>14</b> and the counter <b>44</b>. As an initial value of the abortion counter, a value common to the communication control apparatus <b>10</b> and the reception node <b>60</b> is set in the communication control apparatus <b>10</b> and the reception node <b>60</b> with a process similar to that described with reference to <figref idref="DRAWINGS">FIG. 8</figref>.
0082When a replay attack has been detected, the comparator <b>22</b> encrypts a sequence obtained by concatenating an abortion counter value to the abortion instruction with the use of a common key for encrypting the abortion instruction. The comparator <b>22</b> generates a frame that includes the abortion instruction after being encrypted in the data field, and sets an ID to that for transmitting the abortion instruction. Here, the ID for transmitting the abortion instruction is assumed to be a value that is received by the reception node <b>60</b> and not received by the transmission node <b>40</b>. The communication control apparatus <b>10</b> broadcasts the frame including the encrypted abortion instruction. Then, the frame including the encrypted abortion instruction is received by the reception node <b>60</b> without being received by the transmission node <b>40</b>.
0083The reception node <b>60</b> obtains a sequence in which the abortion counter value is concatenated to the abortion instruction, by decrypting the value within the data field of the received frame with a common key for decrypting the abortion instruction. When the abortion counter value within the obtained sequence and a value stored in the reception node <b>60</b> match, the reception node <b>60</b> determines that the abortion instruction has been issued from the communication control apparatus <b>10</b>, and aborts the process of the frame. In this case, the reception node <b>60</b> is assumed to abort the process of all the frames when the node has properly received one abortion instruction.
0084The process of a MAC is not executed in the reception node <b>60</b> even when the first embodiment is modified in this way, whereby a process for detecting a replay attack, and a process for protecting the system from a replay attack can be executed without increasing the load imposed on the reception node <b>60</b> so much.
Second Embodiment
0085The first embodiment has referred to the case where the ID of one type is used for data frames. However, it is possible for a plurality of IDs to be used to transmit and receive data frames. Accordingly, the second embodiment refers to a case where a plurality of IDs are used to transmit and receive a data frame.
0086<figref idref="DRAWINGS">FIG. 13</figref> is an explanatory diagram of examples of a network and a frame to which the second embodiment is applied. The second embodiment assumes that a network N<b>3</b> illustrated in <figref idref="DRAWINGS">FIG. 13</figref> is used. The network N<b>3</b> includes the communication control apparatus <b>10</b>, transmission nodes <b>40</b> (<b>40</b><i>a</i>, <b>40</b><i>b</i>), and reception nodes <b>60</b> (<b>60</b><i>a</i>, <b>60</b><i>b</i>). The communication control apparatus <b>10</b>, the transmission node <b>40</b><i>a</i>, the transmission node <b>40</b><i>b</i>, the reception node <b>60</b><i>a </i>and the reception node <b>60</b><i>b </i>are interconnected by the bus <b>71</b> so that the devices can mutually transmit and receive a frame. Moreover, the communication control apparatus <b>10</b> and the reception node <b>60</b><i>a </i>are connected by a connection wire <b>72</b><i>a</i>. When a replay attack using an ID as a reception target of the reception node <b>60</b><i>a </i>has been detected, the connection wire <b>72</b><i>a </i>is used to issue a request to abort the process of the frame from the communication control apparatus <b>10</b> to the reception node <b>60</b><i>a</i>. Similarly, the communication control apparatus <b>10</b> and the reception node <b>60</b><i>b </i>are connected by a connection wire <b>72</b><i>b</i>. When a replay attack using the ID as the reception target of the reception node <b>60</b><i>b </i>has been detected, the connection wire <b>72</b><i>b </i>is used to issue a request to abort the process of the frame from the communication control apparatus <b>10</b> to the reception node <b>60</b><i>b. </i>
0087A frame F<b>21</b> illustrated in <figref idref="DRAWINGS">FIG. 13</figref> is an example of a notification frame used in the second embodiment. The notification frame used in the second embodiment is similar to that of the first embodiment, except in a data field. The data field includes a detection target ID and a MAC. The detection target ID is an ID against which whether a replay attack is being made is determined. Since both the MAC and the detection target ID are included in the data field in the second embodiment, the bit length of the MAC is 53 bits. Procedures of a MAC generation method prior to the adjustment of the number of bits in the second embodiment are as described with reference to <figref idref="DRAWINGS">FIG. 9</figref>. A device that generates a MAC selects, with a predetermined method, 53 bits from a sentence encrypted by using data, a counter value, an ID, and a common key. Also the second embodiment assumes that a method for selecting bits used for a MAC is identical in the communication control apparatus <b>10</b>, the transmission node <b>40</b><i>a </i>and the transmission node <b>40</b><i>b. </i>
0088Note that a frame indicated by the frame F<b>21</b> is used also when the communication control apparatus <b>10</b> sets the initial value of the counter together with the transmission node <b>40</b><i>a </i>or the transmission node <b>40</b><i>b</i>. When the initial value of the counter is set, a detection target ID and a random number for generating the initial value are transmitted from the communication control apparatus <b>10</b>. When the detection target ID within the frame received from the communication control apparatus <b>10</b> is an ID used for the transmission process, each of the transmission nodes <b>40</b> obtains the random number associated with the detection target ID, and encrypts the random number with a common key exchanged in advance with the communication control apparatus <b>10</b>. Each of the transmission nodes <b>40</b> sets the obtained value as the initial value of the counter. A setting of the initial value of the counter value in the communication control apparatus <b>10</b> is similar to that described with reference to <figref idref="DRAWINGS">FIG. 8</figref>. The communication control apparatus <b>10</b> generates the same number of random numbers as are used to transmit and receive data frames in the system, and transmits the random numbers to the transmission nodes <b>40</b> in association with the respective IDs. Moreover, the communication control apparatus <b>10</b> stores values obtained by encrypting the random numbers with the common key in association with the respective IDs.
0089<figref idref="DRAWINGS">FIGS. 14A and 14B</figref> are sequence diagrams for explaining an example of a control method in the second embodiment. The example of the control method is described by taking, as an example, a case where the transmission node <b>40</b><i>a </i>and the transmission node <b>40</b><i>b </i>transmit a data frame having the ID=123 and a data frame having the ID=234, respectively. The reception node <b>60</b><i>a </i>is assumed to receive a frame having the ID=123, and not to receive a frame having the ID=234. In contrast, the reception node <b>60</b><i>b </i>is assumed to receive a frame having the ID=234, and not to receive a frame having the ID=123. Moreover, the following description assumes that an ID used to transmit and receive a MAC is an ID=777 in both of the transmission nodes <b>40</b>.
0090The second embodiment assumes that the communication control apparatus <b>10</b> stores an ID to be received by the reception node <b>60</b> connected to a connection wire <b>72</b> for each of connection wires <b>72</b> that connect the communication control apparatus <b>10</b> and each corresponding reception node <b>60</b>. The following description assumes that the communication control apparatus stores information such that a connection destination (reception node <b>60</b><i>a</i>) via the connection wire <b>72</b><i>a </i>receives the ID=123, and a connection destination (reception node <b>60</b><i>b</i>) via the connection wire <b>72</b><i>b </i>receives the ID=234.
0091The timings at which frames having the respective IDs are transmitted are not particularly adjusted. Accordingly, a transmission using a different ID is sometimes performed between a transmission of a data frame having either of the IDs and that of a frame for making a notification of a MAC used to evaluate the validity of data within a data frame. A process executed in a case where the transmission node <b>40</b><i>b </i>has transmitted a data frame including the data B before the transmission node <b>40</b><i>a </i>transmits a notification frame is described with reference to <figref idref="DRAWINGS">FIGS. 14A and 14B</figref>.
0092In the following description, a letter of the alphabet assigned to an operating transmission node <b>40</b> is sometimes appended to a reference numeral of the node in order to easily identify the operating device. For example, a MAC generator <b>51</b><i>a </i>is a MAC generator <b>51</b> included in the transmission node <b>40</b><i>a. </i>
0093As indicated by step S<b>61</b>, the communication control apparatus <b>10</b> stores a counter value for each ID. The MAC table <b>31</b> held by the communication control apparatus <b>10</b> in the second embodiment includes a plurality of entries for each transmitted or received ID. For the sake of convenience, entries of the counter value and the ID in the MAC table <b>31</b> are extracted and represented in step S<b>61</b>. Hereafter, it is assumed that the counter value of the ID=123 and the counter value of the ID <b>234</b> are respectively Cx and Cy at a point in time of step S<b>61</b>.
0094In step S<b>62</b>, the MAC generator <b>51</b><i>a </i>within the transmission node <b>40</b><i>a </i>obtains the counter value. The communication control apparatus <b>10</b> and the transmission node <b>40</b><i>a </i>make their counter values of the ID=123 match in advance with the procedures described with reference to <figref idref="DRAWINGS">FIG. 8</figref>. Therefore, the MAC generator <b>51</b><i>a </i>obtains Cx as a counter value.
0095The data frame generator <b>52</b><i>a </i>generates a data frame having the ID=123 by incorporating the data A into the data field (step S<b>63</b>). The data frame generator <b>52</b><i>a </i>broadcasts the data frame via the transmitter <b>42</b><i>a </i>(step S<b>64</b>). Since the ID included in the data frame is 123, the data frame is received by both the reception node <b>60</b><i>a </i>and the communication control apparatus <b>10</b>.
0096Since the ID of the received frame is set to 123, the receiver <b>13</b> of the communication control apparatus <b>10</b> outputs the received frame to the MAC generator <b>21</b> in step S<b>65</b>. The MAC generator <b>21</b> calculates a MAC (MAC <b>1</b>) by using the counter value Cx associated with the ID=123 and the data A with the process described with reference to <figref idref="DRAWINGS">FIG. 9</figref>. The MAC generator <b>21</b> records the MAC <b>1</b> in the MAC table <b>31</b> in association with the ID (=123) of the received frame. In step S<b>66</b>, the counter increments the counter value in preparation for a MAC calculation using data transmitted by utilizing the ID=123.
0097In the meantime, the MAC generator <b>51</b><i>a </i>within the transmission node <b>40</b><i>a </i>calculates a MAC (MAC <b>2</b>) by using the data A, the counter value Cx and the ID within the transmitted frame after the frame including the data A has been transmitted (step S<b>67</b>). Thereafter, the counter <b>44</b><i>a </i>increments the counter value associated with the ID=123 in preparation for the next MAC calculation (step S<b>68</b>).
0098In step S<b>69</b>, the MAC generator <b>51</b><i>b </i>within the transmission node <b>40</b><i>b </i>obtains the counter value Cy used to calculate a MAC corresponding to the frame using the ID=234. Note that both the communication control apparatus <b>10</b> and the transmission node <b>40</b><i>b </i>make the counter value of the ID=234 match in advance with the procedures described with reference to <figref idref="DRAWINGS">FIG. 8</figref>.
0099The data frame generator <b>52</b><i>b </i>generates a data frame having the ID=234 by incorporating the data B into the data field (step S<b>70</b>). The data frame generator <b>52</b><i>b </i>broadcasts the data frame via the transmitter <b>42</b><i>b </i>(step S<b>71</b>). Since the ID included in the data frame is 234, the data frame is received by the reception node <b>60</b><i>b </i>and the communication control apparatus <b>10</b>.
0100Since the ID of the received frame is 234, the receiver <b>13</b> of the communication control apparatus <b>10</b> outputs the received frame to the MAC generator <b>21</b> in step S<b>72</b>. The MAC generator <b>21</b> calculates a MAC (MAC <b>3</b>) by using the counter value Cy associated with the ID=234, and the data B. The MAC generator <b>21</b> records the MAC <b>3</b> in the MAC table <b>31</b> in association with the ID (=234) of the received frame. In step S<b>73</b>, the counter increments the counter value in preparation for a MAC calculation using the data transmitted by using the ID=234.
0101In the meantime, the MAC generator <b>51</b><i>b </i>within the transmission node <b>40</b><i>b </i>calculates a MAC (MAC <b>4</b>) by using the data B, the counter value Cy and the ID=234 after the frame including the data B has been transmitted (step S<b>74</b>). Thereafter, the counter <b>44</b><i>b </i>increments the counter value associated with the ID=234 (step S<b>75</b>).
0102<figref idref="DRAWINGS">FIG. 14B</figref> illustrates an example of a case where the transmission node <b>40</b><i>a </i>has transmitted a notification frame earlier than the transmission node <b>40</b><i>b. </i>
0103In step S<b>76</b>, the notification frame generator <b>53</b><i>a </i>of the transmission node <b>40</b><i>a </i>generates a notification frame for making a notification of the MAC <b>2</b>, and broadcasts the notification frame via the transmitter <b>42</b><i>a</i>. Here, the MAC <b>2</b> is adjusted to 53 bits as earlier described with reference to the frame F<b>21</b> illustrated in <figref idref="DRAWINGS">FIG. 13</figref>. Accordingly, the detection target ID=123 and the MAC <b>2</b> are incorporated into the data field of the notification frame. Moreover, the ID of the notification frame is set to 777. The communication control apparatus <b>10</b> receives the notification frame. However, since none of the reception nodes <b>60</b> recognize the frame having the ID=777 as a reception target, the reception node <b>60</b><i>a </i>and the reception node <b>60</b><i>b </i>do not receive the notification frame.
0104The receiver <b>13</b> of the communication control apparatus <b>10</b> outputs, to the comparator <b>22</b>, the notification frame received in step S<b>76</b>. The comparator <b>22</b> obtains, from the MAC table <b>31</b>, a MAC associated with the detection target ID within the notification frame. Here, since the detection target ID is 123, the comparator <b>22</b> obtains the MAC <b>1</b>. Moreover, the comparator <b>22</b> extracts the MAC <b>2</b> from the data within the notification frame. The comparator <b>22</b> determines whether the MAC <b>1</b> and the MAC <b>2</b> match (step S<b>77</b>). When the MAC <b>1</b> and the MAC <b>2</b> match, the comparator <b>22</b> determines that a replay attack has not been detected (“YES” in step S<b>77</b>). In contrast, when the MAC <b>1</b> and the MAC <b>2</b> do not match, the comparator <b>22</b> determines that the replay attack against the ID=123 has been detected (“NO” in step S<b>77</b>, step S<b>78</b>). The comparator <b>22</b> transmits a signal for issuing a request to abort the process of a frame having the ID=123 to the reception node <b>60</b><i>a </i>via the connection wire <b>72</b><i>a </i>(step S<b>79</b>).
0105In step S<b>80</b>, the notification frame generator <b>53</b><i>b </i>of the transmission node <b>40</b><i>b </i>generates a notification frame for making a notification of the detection target ID=234 and the MAC <b>4</b>, and broadcasts the generated notification frame via the transmitter <b>42</b><i>b</i>. Also in the transmission node <b>40</b><i>b</i>, the ID is set to 777 in the notification frame. Therefore, the notification frame is received by the communication control apparatus <b>10</b>, and not received by the reception node <b>60</b><i>a </i>and the reception node <b>60</b><i>b. </i>
0106The comparator <b>22</b> of the communication control apparatus <b>10</b> obtains the notification frame via the receiver <b>13</b>. The comparator <b>22</b> obtains, from the MAC table <b>31</b>, the MAC <b>3</b> associated with the detection target ID (=234) within the notification frame. The comparator <b>22</b> makes a comparison between the MAC <b>3</b> and the MAC <b>4</b> reported by the notification frame (step S<b>81</b>). When the MAC <b>3</b> and the MAC <b>4</b> match, the comparator <b>22</b> determines that a replay attack against the ID=234 has not been detected (“YES” in step S<b>81</b>). In contrast, when the MAC <b>3</b> and the MAC <b>4</b> do not match, the comparator <b>22</b> determines that the replay attack against the ID=234 has been detected (“NO” in step S<b>81</b>, step S<b>82</b>). The comparator <b>22</b> transmits a signal for issuing a request to abort the process of a frame having the ID=234 to the reception node <b>60</b><i>b </i>via the connection wire <b>72</b><i>b </i>(step S<b>83</b>).
0107<figref idref="DRAWINGS">FIG. 15</figref> is a flowchart for explaining an example of the process executed by the communication control apparatus in the second embodiment. A process in steps S<b>91</b> to S<b>97</b> is similar to that executed in steps S<b>41</b> to S<b>47</b> described with reference to <figref idref="DRAWINGS">FIG. 11</figref>, except in a difference in the number of bits of a MAC. When an ID used to identify a received frame is an ID for making a notification of a MAC, the comparator <b>22</b> extracts a detection target ID and a MAC (MAC_a) from the data of the received frame (“YES” in step S<b>92</b>, step S<b>98</b>). The comparator <b>22</b> obtains a MAC (MAC_b) that is stored in the MAC table <b>31</b> in association with the detection target ID (step S<b>99</b>). The comparator <b>22</b> makes a comparison between the MAC_a and the MAC_b (step S<b>100</b>). When the MAC_a and the MAC_b match, the comparator <b>22</b> determines that a replay attack against the detection target ID has not been detected, and terminates the process (“YES” in step S<b>100</b>). In contrast, when the MAC_a and the MAC_b do not match, the comparator <b>22</b> determines that the replay attack against the detection target ID has been detected (“NO” in step S<b>100</b>, step S<b>101</b>). Thereafter, the comparator <b>22</b> executes processes such as a process for making a notification to the reception node <b>60</b> due to the detection of the replay attack.
0108As described above, in the second embodiment, a replay attack can be detected while preventing a load imposed on the reception node <b>60</b> from being increased even though a plurality of IDs are used to transmit and receive a data frame.
0109Similarly to the first embodiment, the process executed after a replay attack has been detected may be changed to that executed via the management device <b>75</b> in accordance with the type of a device included in the network.
Third Embodiment
0110A third embodiment refers to a case where the transmission node <b>40</b> transmits an authentication code generated by using MACs obtained from a plurality of transmitted data frames after the transmission node <b>40</b> has transmitted the data frames. The communication control apparatus <b>10</b> used in the third embodiment stores an authentication code table <b>32</b> (<figref idref="DRAWINGS">FIG. 17</figref>) as a replacement for the MAC table <b>31</b>. For ease of understanding, the following description is provided by taking, as an example, a case where the third embodiment is applied to the network N<b>1</b> (<figref idref="DRAWINGS">FIG. 7</figref>). The third embodiment, however, is applicable to a network including an arbitrary number of transmission nodes <b>40</b> and an arbitrary number of reception nodes <b>60</b>.
0111<figref idref="DRAWINGS">FIG. 16</figref> is an explanatory diagram of an example of an authentication code generation method. <figref idref="DRAWINGS">FIG. 16</figref> illustrates an example of a case where an ID <b>1</b> is a detection target ID.
0112Assume that an authentication code is generated by using frames F<b>31</b> to F<b>33</b> (not illustrated). A plain text P<b>1</b> is a bit string obtained by concatenating data within the frame F<b>31</b>, a counter value used when the frame F<b>31</b> is transmitted, and an ID used to identify the frame F<b>31</b>. Similarly, a plain text P<b>2</b> is a bit string obtained by concatenating data within the frame F<b>32</b>, a counter value, and an ID. Moreover, a plain text P<b>3</b> is a bit string obtained by concatenating data within the frame F<b>33</b>, a counter value and an ID. The plain texts P<b>1</b> to P<b>3</b> are encrypted, and MACs <b>31</b> to <b>33</b> are respectively obtained from the encrypted texts. A process for generating the MACs respectively from the plain texts is similar to that described with reference to <figref idref="DRAWINGS">FIG. 9</figref>.
0113Thereafter, an authentication code is obtained by performing a computation for the MACs. In the example illustrated in <figref idref="DRAWINGS">FIG. 16</figref>, an authentication code is calculated by performing an exclusive OR (XOR) for the MACs <b>31</b> to <b>33</b>. Due to space limitations, <figref idref="DRAWINGS">FIG. 16</figref> illustrates the case where the authentication code is calculated from three frames or more. However, the number of frames used to calculate an authentication code is arbitrary.
0114<figref idref="DRAWINGS">FIG. 16</figref> has been explained by taking, as an example, the case where the authentication code is 64 bits. However, the authentication code may be a value smaller than 64 bits. In this case, the length of each MAC used to generate the authentication code is shorter than 64 bits. For example, when a MAC generated from a data frame is 53 bits, the authentication code also becomes 53 bits.
0115<figref idref="DRAWINGS">FIG. 17</figref> illustrates an example of the authentication code table <b>32</b>. The authentication code table <b>32</b> includes a detection target ID, an authentication code, a counter value, and a variable n. The authentication code is that calculated by using the same number of frames as the variable n among data frames transmitted by using the detection target ID. The variable n is a value used to count the number of data frames utilized to calculate the authentication code. Similarly to the first and the second embodiments, the counter value is generated by the counter <b>14</b>, and used to generate a MAC.
0116<figref idref="DRAWINGS">FIG. 18</figref> is a sequence diagram for explaining an example of a control method in the third embodiment. The example is of a process executed when one notification frame is transmitted when two data frames are transmitted. Also, the example illustrated in <figref idref="DRAWINGS">FIG. 18</figref> assumes that the ID=123 and the ID=777 are respectively used for a data frame and a notification frame. Moreover, an authentication code that the communication control apparatus <b>10</b> generates and updates, and an authentication code that the transmission node <b>40</b> generates and updates are respectively represented as an authentication code X and an authentication code Y in order to easily identify a device that generates an authentication code. The example illustrated in <figref idref="DRAWINGS">FIG. 18</figref> assumes a case where an ID used to transmit and receive a frame is of one type.
0117Values associated with the ID=123 are as follows in the authentication code table <b>32</b> held by the communication control apparatus <b>10</b> when the process of step S<b>111</b> is started.
0118detection target ID=123
0119authentication code X=0
0120counter value=C<b>1</b>
0121variable n=0
0122It is also assumed that the authentication code Y stored in the transmission node <b>40</b> and the number of frames used to generate the authentication code are initialized to 0. It is assumed that the notification frame generator <b>53</b> manages the authentication code Y and the number of frames used to calculate the authentication code Y in the transmission node <b>40</b>.
0123The MAC generator <b>51</b> within the transmission node <b>40</b> obtains a counter value when a data frame is transmitted (step S<b>111</b>). After the data frame generator <b>52</b> has generated a data frame including the data A, the data frame generator <b>52</b> broadcasts the generated data frame via the transmitter <b>42</b> (step S<b>112</b>). The data frame is received by both the reception node <b>60</b> and the communication control apparatus <b>10</b>.
0124When the MAC generator <b>21</b> of the communication control apparatus <b>10</b> has obtained the data frame via the receiver <b>13</b>, the generator calculates a MAC (MAC <b>1</b>) (step S<b>113</b>). The MAC generator <b>21</b> updates the authentication code (authentication code X) within the authentication code table <b>32</b> by using the MAC <b>1</b> (step S<b>114</b>). With the process of step S<b>114</b>, the initial value of the authentication code is replaced with the MAC <b>1</b> in the authentication code table <b>32</b>. Moreover, the MAC generator increments the variable n associated with the ID=123. Additionally, the counter <b>14</b> increments the counter value (step S<b>115</b>). Accordingly, the following information items are recorded in the authentication code table <b>32</b> at a point in time when the process of step S<b>115</b> has been terminated.
0125detection target ID=123
0126authentication code=MAC <b>1</b>
0127counter value=C<b>2</b>
0128variable n=1
0129In the meantime, also in the transmission node <b>40</b>, the MAC generator <b>51</b> generates a MAC (MAC <b>2</b>) after the data frame including the data A has been transmitted (step S<b>116</b>). The notification frame generator <b>53</b> updates the authentication code Y by using the MAC <b>2</b> (step S<b>117</b>). At this time, the notification frame generator <b>53</b> stores the information that one data frame is used to generate the authentication code Y. The counter <b>44</b> increments the counter value used to calculate a MAC in the transmission node <b>40</b> (step S<b>118</b>).
0130Next, the transmission node <b>40</b> broadcasts a data frame including the data B (step S<b>119</b>). The process of step S<b>119</b> is similar to that of step S<b>112</b>. Also the data frame including the data B is received by both the reception node <b>60</b> and the communication control apparatus <b>10</b>.
0131The MAC generator <b>21</b> of the communication control apparatus <b>10</b> obtains the data frame including the data B via the receiver <b>13</b>, and calculates a MAC (MAC <b>3</b>) (step S<b>120</b>). The MAC generator <b>21</b> updates the authentication code X within the authentication code table <b>32</b> by using the MAC <b>3</b> (step S<b>121</b>). With the process of step S<b>121</b>, the authentication code X becomes a value obtained by performing an XOR for the MAC <b>1</b> and the MAC <b>3</b>. Moreover, the MAC generator <b>21</b> increments the variable n associated with the ID=123. Additionally, the counter <b>14</b> increments the counter value (step S<b>122</b>).
0132In the meantime, also in the transmission node <b>40</b>, the MAC generator <b>51</b> generates a MAC (MAC <b>4</b>) by using the data frame including the data B (step S<b>123</b>). The notification frame generator <b>53</b> updates the authentication code Y by using the MAC <b>4</b> (step S<b>124</b>). The counter <b>44</b> increments the counter value used to calculate a MAC in the transmission node <b>40</b> (step S<b>125</b>).
0133Incidentally, the authentication code Y after being updated is generated by using the two data frames because of the update of the authentication code Y. Accordingly, the notification frame generator <b>53</b> generates a notification frame that includes the authentication code Y in the data field, and broadcasts the notification frame after the notification frame generator <b>53</b> has set the ID of the notification frame to 777 (step S<b>126</b>). The notification frame is received by the communication control apparatus <b>10</b> without being received by the reception node <b>60</b>.
0134The comparator <b>22</b> of the communication control apparatus <b>10</b> obtains the notification frame via the receiver <b>13</b>. The comparator <b>22</b> makes a comparison between the authentication code Y reported by the notification frame and the authentication code X recorded in the MAC table <b>31</b> (step S<b>127</b>). When the authentication code Y and the authentication code X match, the comparator <b>22</b> determines that a replay attack against the ID=123 has not been detected, and terminates the process (“YES” in step S<b>127</b>). In contrast, when the authentication code Y and the authentication code X do not match, the comparator <b>22</b> determines that the replay attack against the ID=123 has been detected (“NO” in step S<b>127</b>, step S<b>128</b>). The comparator <b>22</b> transmits a signal for issuing a request to abort the process of a frame having the ID=123 to the reception node <b>60</b> via the connection wire <b>72</b> (step S<b>129</b>).
0135The example in the case where only the authentication code is included in the data field of the notification frame has been described with reference to <figref idref="DRAWINGS">FIGS. 16 to 18</figref>. When the length of the authentication code is smaller than 64 bits, the notification frame may include information other than the authentication code in the data field. For example, when the authentication code is 53 bits, a frame obtained by replacing the MAC of the frame F<b>21</b> with the authentication code is available. By modifying the notification frame in this way, a detection target ID is included in the frame. Therefore, the third embodiment is applicable to even a case where a plurality of IDs are used to transmit and receive a data frame. An example of the process executed within the system that also supports the case where a plurality of IDs are used to transmit and receive a data frame is described with reference to <figref idref="DRAWINGS">FIG. 19</figref>.
0136<figref idref="DRAWINGS">FIG. 19</figref> is a flowchart for explaining an example of the process executed by the communication control apparatus <b>10</b> in the third embodiment. In <figref idref="DRAWINGS">FIG. 19</figref>, a constant k is used. The constant k is the number of data frames transmitted before the transmission node <b>40</b> transmits a notification frame. Accordingly, an authentication code within the notification frame is generated from the same number of data frames as the constant k.
0137The comparator <b>22</b> sets the variable n to 0, and also sets, to 0, the authentication code X within the authentication code table <b>32</b> (step S<b>141</b>). Here, the process of step S<b>141</b> is executed when the communication control apparatus <b>10</b> starts to operate, and is also executed each time a comparison process of the comparator <b>22</b> is terminated. The receiver <b>13</b> waits until it receives a frame (“NO” in step S<b>142</b>). Upon receipt of a frame, the receiver <b>13</b> determines whether the ID of the received frame is an ID for making a notification of an authentication code (“YES” in step S<b>142</b>, step S<b>143</b>).
0138When the ID of the received frame is not the ID for making a notification of an authentication code, the receiver <b>13</b> outputs the received frame to the MAC generator <b>21</b> (“NO” in step S<b>143</b>). The MAC generator <b>21</b> extracts the ID and data from the received frame (step S<b>144</b>). The MAC generator <b>21</b> obtains a counter value (step S<b>145</b>). The MAC generator <b>21</b> generates a MAC by using the ID, the data and the counter value (step S<b>146</b>). The MAC generator <b>21</b> updates the authentication code associated with the ID (detection target ID) of the received frame by using the MAC (step S<b>147</b>). The MAC generator <b>21</b> increments the variable n (step S<b>148</b>). Next, the counter <b>14</b> increments the counter value (step S<b>149</b>). Thereafter, the process returns to step S<b>142</b>.
0139When the ID of the received frame is that for making a notification of an authentication code, the receiver <b>13</b> outputs the received frame to the comparator <b>22</b> (“YES” in step S<b>143</b>). The comparator <b>22</b> extracts the detection target ID, and the authentication code (authentication code Y) calculated by the transmission node <b>40</b> (step S<b>150</b>). The comparator <b>22</b> determines whether the value of the variable n within the entry associated with the detection target ID in the authentication code table <b>32</b> and the constant k match (step S<b>151</b>). When the value of the variable n and the constant k do not match, there is a possibility that a frame not transmitted by the transmission node <b>40</b> has been transmitted from an attacker by using the detection target ID (“NO” in step S<b>151</b>). Accordingly, the comparator <b>22</b> determines that the attack against the detection target ID has been detected (step S<b>154</b>).
0140When the value of the variable n and the constant k match, the comparator <b>22</b> obtains the authentication code (authentication code X) that is stored in the authentication code table <b>32</b> in association with the detection target ID (“YES” in step S<b>151</b>, step S<b>152</b>). Moreover, the comparator <b>22</b> makes a comparison between the authentication code X and the authentication code Y (step S<b>153</b>). When the authentication code X and the authentication code Y match, the comparator <b>22</b> determines that the attack against the detection target ID has not been detected, and terminates the process (“YES” in step S<b>153</b>). When the authentication code X and the authentication code Y do not match, the comparator <b>22</b> determines that the attack has been detected (“NO” in step S<b>153</b>, step S<b>154</b>). Thereafter, the comparator <b>22</b> issues a request to abort the process of the frame identified on the basis of the ID with which the attack has been detected, to the reception node <b>60</b> via the connection wire <b>72</b>.
0141According to the third embodiment, one notification frame is transmitted every time k data frames are transmitted from the transmission node <b>40</b>. Namely, the number of frames to be processed for determining the validity of the k data frames is k+1. In contrast, in the first and the second embodiments, one notification frame is transmitted for one data frame. Therefore, 2 k frames are processed to determine the legality of k data frames. Accordingly, the processing load imposed on the communication control apparatus <b>10</b> is lighter than that of the first and the second embodiments, thereby increasing the processing speed.
0142With embodiments including the above described first to third embodiments, a replay attack can be detected while lightening a load imposed on a device that receives a frame.
0143<Others>
0144Embodiments are not limited to the above described ones, and can be variously modified. For instance, the MAC table <b>31</b>, the authentication code table <b>32</b> and the frame format are merely examples, and can be changed in accordance with an implementation.
0145Additionally, in the third embodiment, a combination of counter values used when each authentication code is calculated differs for each authentication code. Then a counter value does not always differ for each MAC. Accordingly, the communication control apparatus <b>10</b> and the transmission node <b>40</b> may use the same counter value when a MAC is calculated from k data frames that are evaluated on the basis of one authentication code. In this case, the transmission node <b>40</b> increments the counter value each time the node transmits a notification frame. Also, the communication control apparatus <b>10</b> increments the counter value after the apparatus performs a determination using an authentication code.
0146The above description has been provided by taking, as the example, the case where a frame having general specifications of a CAN is transmitted and received. The above described embodiments are also applicable in a case where a frame having extended specifications of the CAN, or a frame used in a CAN FD (CAN with Flexible Data-Rate) is transmitted and received.
0147Additionally, in the second and the third embodiments also, the process executed when the communication control apparatus <b>10</b> has detected a replay attack may be modified as earlier stated in the modification example of the first embodiment. Additionally, the process executed after a replay attack is detected may be determined by a user depending on the system.
0148All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Contents6
22 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2022182822A1 | Cited by | United States of America | Search report |
| US2018137486A1 | Cited by | United States of America | Search report |
| US2019123906A1 | Cited by | United States of America | Search report |
| US11569988B2 | Cited by | United States of America | Search report |
| US11200549B2 | Cited by | United States of America | Search report |
| US11792644B2 | Cited by | United States of America | Search report |
| US10581609B2 | Cited by | United States of America | Search report |
| US12439249B2 | Cited by | United States of America | Search report |
| CN113396569A | Cited by | China | Search report |
| US2022408246A1 | Cited by | United States of America | Search report |
| US2016099939A1 | Cited by | United States of America | Pre-grant |
| US10789364B2 | Cited by | United States of America | Search report |
| US10021063B2 | Cited by | United States of America | Search report |
| US2021111882A1 | Cited by | United States of America | Search report |
| US9787677B2 | Cited by | United States of America | Search report |
| US10250698B2 | Cited by | United States of America | Search report |
| US11095453B2 | Cited by | United States of America | Search report |
5 members in 3 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 2014266836 | Japan | – | |
| 2014266836 | Japan | A |
Members5
| Document | Office | Kind | |
|---|---|---|---|
| EP3038318A1 | European Patent Office (EPO) | A1 | |
| US2016191408A1 | United States of America | A1 | |
| JP2016127426A | Japan | A | |
| EP3038318B1 | European Patent Office (EPO) | B1 | |
| JP6488702B2 | Japan | B2 |
66 transactions on the USPTO file
Abandoned after 2 non-final rejections, 2 final rejections and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 2
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Email NotificationEML_NTR | EML_NTR | |
| Mail Abandonment for Failure to Respond to Office ActionAbandonedMABN2 | MABN2 | |
| Aband. for Failure to Respond to O. A.AbandonedABN2 | ABN2 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Request for Foreign Priority (Priority Papers May Be Included)RQPR | RQPR | |
| Priority document has successfully retrieved via PDX/DASPD.RECVD | PD.RECVD | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Cleared by L&R (LARS)L128 | L128 | |
| Referred to Level 2 (LARS) by OIPE CSRL198 | L198 | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Oath or Declaration Filed (Including Supplemental)C602 | C602 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Request from applicant for the USPTO to retrieve the Priority DocumentPDREQUST | PDREQUST | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: application discontinuationABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTIONSTCB | STCB | |
| Information on status: application discontinuationFINAL REJECTION MAILEDSTCB | STCB | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 20160191408
- Application
- 14926108
Titles
- English
- COMMUNICATION CONTROL APPARATUS AND COMMUNICATION CONTROL METHOD
Classification
- CPC, 5
- H04L47/70
- H04L63/123
- H04L67/12
- H04L2012/40215
- H04L12/4641
- IPC, 2
- H04L12 911
- H04L29 08