rewrote quickstart, build-process
[AGL/documentation.git] / docs / 2_Architecture_Guides / 2.2_Security_Blueprint / 7_Connectivity / 1.2.7.1_Bus_And_Connectors.md
1 ---
2 edit_link: ''
3 title: Bus and connectors
4 origin_url: >-
5   https://raw.githubusercontent.com/automotive-grade-linux/docs-sources/master/docs/security-blueprint/part-7/1-BusAndConnectors.md
6 ---
7
8 <!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/architecture/master/security_blueprint-security-blueprint-book.yml -->
9
10 # Bus
11
12 We only speak about the **CAN** bus to take an example, because the different
13 attacks on bus like _FlewRay_, _ByteFlight_, _Most_ and _Lin_ use retro
14 engineering and the main argument to improve their security is to encrypt data
15 packets. We just describe them a bit:
16
17 - **CAN**: Controller Area Network, developed in the early 1980s, is an
18   event-triggered controller network for serial communication with data rates
19   up to one MBit/s. **CAN** messages are classified over their respective
20   identifier. **CAN** controller broadcast their messages to all connected nodes
21   and all receiving nodes decide independently if they process the message.
22 - **FlewRay**: Is a deterministic and error-tolerant high-speed bus. With a data
23   rate up to 10 MBit/s.
24 - **ByteFlight**: Is used for safety-critical applications in motor vehicles
25   like air-bags. Byteflight runs at 10Mbps over 2 or 3 wires plastic optical
26   fibers.
27 - **Most**: Media Oriented System Transport, is used for transmitting audio,
28   video, voice, and control data via fiber optic cables. The speed is, for the
29   synchronous way, up to 24 MBit/s and asynchronous way up to 14 MBit/s.
30   **MOST** messages include always a clear sender and receiver address.
31 - **LIN**: Local Interconnect Network, is a single-wire subnet work for
32   low-cost, serial communication between smart sensors and actuators with
33   typical data rates up to 20 kBit/s. It is intended to be used from the year
34   2001 on everywhere in a car, where the bandwidth and versatility of a **CAN**
35   network is not required.
36
37 On just about every vehicle, **ECU**s (**E**lectronic **C**ontrol **U**nits)
38 communicate over a CAN bus, which is a two-wire bus using hardware arbitration
39 for messages sent on the shared medium. This is essentially a *trusted* network
40 where all traffic is visible to all controllers and any controller can send any message.
41
42 A malicious **ECU** on the CAN bus can easily inject messages destined for any
43 other device, including things like the instrument cluster and the head unit.
44 There are common ways for hardware to do USB to CAN and open source software to send
45 and receive messages. For example, there is a driver included in the Linux kernel
46 that can be used to send/receive CAN signals. A malicious device on the CAN bus can
47 cause a great number of harmful things to happen to the system, including: sending
48 bogus information to other devices, sending unintended commands to ECUs,
49 causing DOS (Denial Of Service) on the CAN bus, etc.
50
51 <!-- section-config -->
52
53 Domain                             | Tech name | Recommendations
54 ---------------------------------- | --------- | --------------------------------------------------------------------------
55 Connectivity-BusAndConnector-Bus-1 | CAN       | Implement hardware solution in order to prohibit sending unwanted signals.
56
57 <!-- end-section-config -->
58
59 See [Security in Automotive Bus Systems](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.92.728&rep=rep1&type=pdf) for more information.
60
61 # Connectors
62
63 For the connectors, we supposed that they were disabled by default. For example,
64 the **USB** must be disabled to avoid attacks like BadUSB. If not, configure the
65 Kernel to only enable the minimum require **USB** devices. The connectors used
66 to diagnose the car like **OBD-II** must be disabled outside garages.
67
68 <!-- section-config -->
69
70 Domain                                    | Tech name | Recommendations
71 ----------------------------------------- | --------- | ----------------------------------------------------------------------
72 Connectivity-BusAndConnector-Connectors-1 | USB       | Must be disabled. If not, only enable the minimum require USB devices.
73 Connectivity-BusAndConnector-Connectors-2 | USB       | Confidential data exchanged with the ECU over USB must be secure.
74 Connectivity-BusAndConnector-Connectors-3 | USB       | USB Boot on a ECU must be disable.
75 Connectivity-BusAndConnector-Connectors-4 | OBD-II    | Must be disabled outside garages.
76
77 <!-- end-section-config -->