start	end	text
0	5980	Right, so this is redeploying the same vulnerabilities. This is a talk about EV security work that
5980	10180	we've been doing for a little while together, and some of how we're seeing the same vulnerabilities
10180	14960	that have existed for a long time coming back in modern standards.
17790	23390	So this is Sebastian, and I'm Richard. We both work at Oxford University. We've been
23390	29350	doing vehicle security stuff, among other stuff, for about five years now, really focusing
29350	34950	on EVs and charging security, the security when you plug it into charge. And that's all
34950	38770	we're going to be talking about today, and then some thoughts about where that field
38770	39650	is going.
42580	48540	Right. So we've probably all seen something like this, like a charging park, as shown
48540	54000	on this slide. Actually, back in December 2022, this was supposed to be the largest
54000	60840	charging park in Europe, with, I believe, 56 charging outlets, DC fast charging outlets.
60840	65460	But this keeps changing, so every week we hear about the new largest charging park.
66840	73520	But EV charging is not just for cars. We can now see electric trucks, like this one here.
74500	82580	Buses, so public transport is currently electrified. This shows a bus depot in Hamburg, and I don't
82580	89500	know if you can see, but there are wires actually hanging down from the ceiling, and these are
89500	95600	charging cables. So all these buses you can see here are fully electric. Another example
95600	106600	is this, sorry, another example is this ferry. I'm going to switch to this. Yeah. This ferry,
106600	113700	you can see it charges also with, it's electric, and it has 28 charging cables, so they charge
113700	119020	simultaneously with 28 charging cables. But there's also now a move in the mining industry,
119020	125320	so making mining greener, so electrifying mining equipment. And, yeah, why did I tell
125320	130820	you all this? Well, all of these examples use actually the same charging standard, which
130820	137340	is known as the combined charging system, or short CCS. So I don't know, most of the
137340	141800	people are probably familiar with the left one, which is the combined charging system
141800	148420	plug type 1, which is used in the U.S., and on the right is the one that is used in Europe.
148420	154300	It's exactly the same technology, underlying technology, it's just a different plug type.
155040	160860	So of course there are much more charging standards, as we can see on this overview
160860	166920	here, but in this talk we are going to focus on DC charging using the combined charging
166920	176180	system. So why is CCS so interesting for us? Well, CCS is actually using a power line communication,
176180	180540	so the car and the charger are communicating during a charging session all the time. So
180540	185580	the car is telling the charger, hey, this is how much electricity I need, this is the
185580	191040	maximum current, the maximum voltage, this is my state of charge, and the charger actually
191640	198200	confirms these messages and also, yeah, exchanges information about the charging session. There
198200	203940	is more communication actually going on. For example, with plug and charge, you can actually
203940	208880	plug in your car and leave without tapping a card or using an app. It will automatically
208880	213120	send your credentials to the charger and the charging session will be authenticated.
218530	223830	So yeah, it's quite a detailed charging standard. There's a range of open standards that underpin
223830	228370	it, and this is why it was quite interesting to us. It was also getting deployed very,
228370	231790	very widely, even when we first started working on this, and that's a lot of infrastructure
231790	235850	that's being built, going to be expensive, going to be hard to change, so keen to get
235850	242450	in early. And even then, and ever since, we've been finding insecurities in a lot of
242450	246170	charging infrastructure, and that made us concerned about the kind of things we were
246170	251110	deploying. So particularly for CCS, we were interested in this power line communication
251110	256350	because it comes from a system called HomePlug, which was originally these little plug-in
256350	261570	adapters you'd use at home for Wi-Fi extension, and there were some issues known about these
261570	265650	in the past, and particularly, they were built for a different threat model. In-home, shared
265650	272550	keys, not a kind of open public access network. Also, they were known decades ago, frankly,
273180	277690	to be able to leak their signal radiatively out of cables, and this wasn't necessarily
277690	281150	too much of a problem at home, but it's interesting when you see this deployed in a different
281150	290470	setting. And, of course, part of deploying CCS and the new world of connected charging
290470	294370	was that there were lots more services. There's not just talking car to charger, but also
294370	300150	out to systems behind the scenes, providing additional services, you know, automated billing,
300150	304470	reactive charging, load balancing, all of these things that depend on having a nice
304470	312760	secure link. And so it was kind of quite interesting to us. So we'll talk about a couple of bits
312760	317260	of work here. We started with just a purely passive threat model. So what is it that someone
317260	322700	just eavesdropping might want to do? Well, as ever, lift some fingerprints and have some
322700	328360	privately identifiable information, of course. And then also we thought maybe there'd be
328360	332440	some opportunity for billing fraud here. So there is a system called AutoCharge, which
332560	337600	a couple of networks implement, which just uses identifiers that are pretty much public.
337600	341580	If someone could lift these, then they could use them to start to pretend to be people.
344200	350560	And threat model's fairly simple. It's a kind of motivated hobbyist. Not a lot of information,
350560	354580	deep technical knowledge to fully build systems from scratch, but someone that can run some
354580	363360	code and has access to off-the-shelf hardware. Not much more than that. So for a particular
363360	370600	attack, like one example, we had a look at signal level attenuation characterization,
370600	377200	SLAC. It's a SLAC attack. And this is a system that, in my opinion, probably shouldn't have
377200	381200	existed in the first place. This is part of the initialization routine of a charging
381200	387100	session, where the car and the charger need to make sure that even though they're connected
387100	392900	with a big cable, they're actually talking to the right charger. Because there's so much
393440	398660	potential for crosstalk, conducted or radiative, that you could just be talking to the charger
398660	406700	next door, like two, three meters away. That seems a little bit... a bad smell in designing
406820	414140	a system. Also, there's a big long protocol here. I mean, you initiate the SLAC session,
414140	419040	you test the attenuation, and all the chargers that can hear respond, and then you pick the
419040	424760	one that has the lowest attenuation. So that's probably the one you're talking to. In step
424760	429840	six and seven, you say, oh, okay, I've picked you. You're the charger for me. Can I join?
429840	436160	And he goes, yeah, sure. The shared key is this. And that's just in the clear. Unless
436160	440140	you've got this security mode turned on, which we've never seen happen, this is just
440140	445380	given to the car. And so anyone that can lift that has a key to the network. There's some
445380	452480	authentication later, but once you've got the master key, you're in. So can we do this
452480	458680	in the wild? Well, we set up an experiment. So we got a car, we ran around some charging
458680	463340	stations, and then we just set up software-defined radio. We've done this with different equipment
463340	469100	setups over time. And just put the antenna at various points in the car, around, nearby,
469240	472540	a bit of an exploratory thing to just see what kind of signal we could collect and whether
472540	481280	we could use that for something. And we did quite a sort of long evaluation. 800 miles
481280	486820	of driving, there were three cars at the time. Every now and then we pick up an electric
486820	493180	car rental and we test it a bit further. But even then, 14 locations, six networks, enough
493180	497080	to have a good overview of what was happening in the industry, all in the UK, where we're
497080	502660	from. But all kinds of places, you know, service stations, hotels, wherever we could find a
502660	512300	CCS charger. And to put it into a bit of perspective, so these are places where we're placing the
512300	516380	SDR antennas. Some of it was super, super close range. You're inside the car, we're
516380	519520	interested in whether the signal is leaking out from the cable, whether it's leaking out
519520	525380	from the car, which part of the electronics. Some of it was further away. You'll notice
525380	531720	it's even sunny in England sometimes, as this picture shows. Here we've got someone
531720	538360	just behind the car, in a bay behind, you know, probably five metres away. And you're
538360	542740	not going to suspect someone there for picking up your signal. And the other one on the right,
542740	548360	it's about four metres away, next bay. But this is, you know, a reasonable short distance.
551230	554590	And even some with two vehicles. So this is when we had the I-PACE and the Golf at the
554590	559910	same time, and we just went to, you know, at this point, you know, one of the bigger
559910	564670	charging parks we could get to. Of course, now that's changed and you have easily 50.
564670	569130	But here, two was enough, and just one radio shared between in multiple sessions being
569130	578500	picked up. And so the end result was we picked up a signal basically every hour we were in.
578680	585540	You could certainly see on like a frequency plot, so these plots in the top right, they're
585540	591420	all spectrums. You can see this distinctive frequency usage that you get with HomePlug.
591420	595600	So you notice these deep notches, they're in there to not interfere with amateur bands.
595880	599860	The fact that you've got this little visual fingerprint kind of already tells you that
599860	605800	you're picking up the signal. The other thing to say is it vastly varies between location,
605800	610760	between site, between charger hardware, how much of the signal came through, and how much
610760	614520	noise. You've got all of these noise spikes around. You've got a lot of, you know, high
614520	619180	power electrical, um, devices working there to provide the charging, so you get a lot
619180	624080	of noise when the charging starts. But point is, we could pick up the signal everywhere
624080	630300	we went. And then we built a receiver. So this is, this is open source, this is entirely
630300	635520	software receiver. It takes a file in of just the raw signal, and then it processes it and
635520	640800	pulls out the packets it can find. Um, and this is pretty much just doing what a normal
640800	647220	modem would do, but it's open instead of in a, a proprietary IC. Um, so it, it detects
647220	652300	the packets, it synchronizes on them, it does all the OFDM, and then at the end, spits out
652300	658060	everything it possibly can. So messages, keys, uh, messages that fail to decode, but you
658060	661540	might be able to get some data out of all of these, dumps them into a big database.
662520	666760	Um, and as I say, it's available. If it's useful to community, please use it. Please
666760	674770	build on it. So, I mean, this is a big table of numbers, you don't really need to read or
674770	680270	parse it very much. The important things are probably left-hand column, lots and lots of
680270	685450	messages, you know, thousands, big variation, some sites very bad, some sites much better,
685450	689990	but lots of messages. Uh, column on the right, these are messages that fully validated their
689990	695010	CRCs, and so these are ones that are good. So the, these are both metrics of how, how well
695010	703710	we were able to pick it up. So, for two examples there, you know, next to the cable,
703710	709650	beautiful clean signal, very easy, um, and is nearly 100% of the messages that are valid.
709650	713610	And they're all modulated slightly differently depending on which, which bit of the protocol
713610	718830	they're in. So, some of them are easier to pick up than others, but overall, you can pick up
718830	723390	enough to have, uh, a whole session. And a bit further away, of course, the performance
723390	729030	falls down. We're still picking up some, you know, the bay next door or the bay behind,
729030	733870	and I think with more equipment optimization, this was just stuff we had in the lab,
733870	745980	you could, you know, increase this number further. And then, from that, we had, uh, we, we ran our
745980	750800	bit of code, it took a long time to perfect, um, but then out of individual messages,
750800	757240	we just dumped out values. And so, what we're seeing here are messages we received from the
757240	763120	end of this Slack, um, protocol. So, in the, you can see in this sort of key column,
763120	768500	which messages it's coming out of and which value we're, we're getting. And two are interesting
768500	774600	here. One, for this privacy and fingerprints or identifiers issue, there's a vehicle Mac,
774600	779880	we ended up getting the same cars multiple times over a period of months. These didn't change,
779880	784460	the Mac addresses, you could rotate them fine, um, but they weren't being rotated.
786180	792280	Some manufacturers and some batches of cars did not have vehicle unique identifiers,
792280	795800	and we see this happening in auto charge, actually. Some vehicles are not compatible
796760	802240	because some of the Macs are zeroed. The majority that we saw did have completely unique Macs,
802240	806480	you can identify that car forever from that, and you can pick it up later sessions as normal.
808000	816080	Um, then there's also, of course, the key. Um, this arrives a few seconds into starting a session,
816080	820540	you pick it up, I mean, that's the key in plain text there, you also get it in Wireshark,
820540	825180	and then from then on, the code automatically starts to decrypt the rest of the session
825180	834770	once it's got that key. We're also outputting traffic to Wireshark,
834770	838510	it's a little bit of a messy capture here, but you can kind of see the process evolving.
838510	843910	So at the top, you know, there's this request to get the master key, that's the stages 6 and 7
843910	850570	I was talking about before, getting it back, and then trying to find the controller that's
850570	855970	actually going to initiate the charge. Keen observers on the blue lines, it talks support
855970	861530	15118, that's the ISO number of the standard, that was a kind of fun little easter egg,
861530	867210	and then it sets up tunnel, and then sets up higher communication where there's a whole stack
867210	873150	of things. There's IP communication, then there's TCP on top, then maybe there's crypto on top of that,
873150	877870	and then there's just sending XML back and forth for state of charge, for charging speed,
877870	884390	temperature, and all these other things. That's also up where you would have automated billing
884390	894190	and stuff. Per the standard, all of those would require you to have a TLS session. So I'm not
894190	900150	saying that there is traffic for that, that we've ever seen unencrypted or accessible from here,
900150	906750	you're only getting the lower layers. There's also a lot of support though for external additional
906750	911870	services to be built on. This is ultimately an IP link, right, with two Linux boxes either end,
911870	915830	you could put any services you want, you can open additional ports, you can have a web interface,
915830	918870	and so on. And there's some talk about that, although we haven't seen it much in the wild
918870	924530	being deployed. But any of that, you're then back into whether the developer secures that as well
924530	930150	as they should. For the simplest standard, DIN 70121, this is just charging. There's no security
930150	933650	on top of that, but there's also only so much you can learn. You can get the identifier out,
933650	936650	you can listen to traffic, but there's not too much important stuff going over it.
938250	942530	There has been latterly some talk about different approaches to try and secure this.
942530	947170	Some people, one particularly big manufacturer is talking about just establishing a VPN on top,
947170	954230	which maybe goes back to your own charging provider. I mean, that or TLS is providing you
954230	958950	some crypto either way. I think the big problem is doing the PKI to support this and having the
958950	963950	right keys for everyone, for the charger, for the car, for the driver, for everyone involved.
964210	965570	Still ongoing.
974850	983250	Right. So as Richard just told us, he basically found that there is a unique, high-quality
983250	990690	unintentional wireless channel when you use PLC charging or when you use CCS that uses PLC.
990690	996450	So the main question we asked ourselves was, can we actually also inject? Because the charging
996450	1001490	cable is the perfect antenna, right? We can receive, it emits the signal, so can we also
1001490	1009150	inject into the antenna? So we looked at what can someone do, like a threat model about active
1009150	1015410	attack. So how can you actually interact with this communication and what can you do? So since
1015410	1021170	CCS or in general electric vehicles are becoming part of critical infrastructure, so they will be
1021170	1027630	acting as battery buffers for renewable energies, we will have vehicle-to-grid communication and
1027630	1033550	feed electricity back into the grid, it's kind of important that they are available. So we need
1033550	1041030	this communication, otherwise we will not be able to use these services. So we looked at, can we
1041030	1047090	disrupt an individual vehicle? So this actually is probably the weakest motivation, but we just
1047090	1052790	had it yesterday actually when we drove here from LA. We wanted to charge our car and all of the
1052790	1060010	chargers were occupied. So could you interrupt actually one of the chargers and get the cable?
1060010	1065910	No one would notice, right? So most of the cars, I don't know if you are aware of that, but most of the
1065910	1071690	cars actually unlock the charging cable if the charging has stopped or is interrupted. We assume
1071690	1077010	it's a safety feature, but most of the cars we tested, actually all of the cars I believe
1077010	1082730	implemented this feature. So you could just disrupt a single vehicle, get the charging cable,
1082730	1088750	charge yours and be happy. But of course there could be another motivation, a financial motivation
1088750	1096690	for example. Back in Oxford in the UK, DPD has fully electric fleet now. I believe 40 to 50
1096690	1101730	vehicles fully electric. So if you can just knock out their entire fleet so they can't charge let's
1101730	1105310	say during the night, you could just blackmail them. They will turn up in the morning and the
1105310	1113850	cars are not charged. Another motivation could be unspecific disruption. So you try to disrupt
1113850	1119410	as many cars as possible or as many charging parts as possible to, for example, disrupt
1119410	1127350	supply chain. We saw earlier buses are getting electrified, ferries and trucks. So if you just
1127350	1133710	cause widespread disruption, that's going to be an issue. Especially if we then go a few years
1133710	1140490	further and look at vehicle to grid communication and bidirectional charging. I should mention
1140490	1147010	maybe for this threat model or for these goals, we assume exactly the same capability. So just
1147010	1152770	access to software defined radio or transmitter off the shelf you can get from Amazon. And a
1152770	1158390	little bit of knowledge about digital signal processing. So we found broken wire. And broken
1158390	1166370	wire exploits the CSMACA mechanism used by home plug green fi. So how did we actually find this?
1166370	1172750	Well, again, we had this, there is an unintentional wireless channel. Can we inject? And then we
1172750	1177470	looked at the standard, actually, and we found this interesting phrase. And this phrase basically
1177470	1182310	says that the modem should consider someone else communicating if they receive a preamble
1182310	1189670	with 2dB above noise. What this means is basically the receiver or the transmitter would actually
1189670	1195870	stop transmitting when someone else is already transmitting to make sure there's no
1195870	1201830	interference happening. For some of you who might not be familiar with CSMACA, here's just
1201950	1206370	a diagram how this usually works. So let's assume you have a car and a charger. And they don't have
1206370	1211990	or wouldn't have CSMACA. The car would send a message. Charger replies. All are happy. But if
1211990	1217910	they send at the same time, you would have interference. So instead, actually, the home
1217910	1224290	plug green fi modem checks if the channel is clear to send. And if it is clear to send, it would
1224290	1230370	send the message and so on. And if it is actually not clear to send, and you can see it here, it
1230370	1235550	waits for a random period of time. So it backs off and then tries again and checks is the channel
1235550	1242730	now clear. And if it is, it sends the message. So on the previous slide, I just showed you the
1242730	1248150	standard says someone is communicating or the channel is busy if we see a preamble 2dB above
1248150	1254090	noise. And so what someone could do, actually, if we now have an attacker, someone could just
1254090	1260770	during a communication, which is happening just fine, start sending a signal to make the channel
1260770	1269030	look busy. So in our case, actually, that is the preamble. So here you can see home plug green fi
1269030	1275530	frame. We collected by just plucking a modem into a software-defined radio. So this is in the time
1275530	1281390	domain. And the first bit you can see is the preamble. So that is used to detect if someone is
1281390	1288290	communicating and also do frequency offset correction and timing. And then you have the
1288290	1294010	frame control and, yeah, the legacy frame control and the AV frame control. And then you have the
1294010	1301010	payload. And as I said, this was collected while plucking the modem actually into our receiver.
1301010	1305710	And there is also some noise, of course. And you might have already spotted it, but there's also
1305710	1311430	another preamble in there. And this is a preamble which is 2dB above noise. And this preamble
1311430	1316150	actually already caused the modems to back off because they consider this as, oh, someone is
1316150	1322770	communicating. I need to stop. I need to wait until this communication has ended. So when we
1322770	1329130	found this vulnerability, we initially tested it in our lab. We got these development boards.
1329130	1336210	These boards have exactly the same Qualcomm chip as you can find it in charging stations. It's a
1336210	1342430	QCA7000. And, yeah, as I said, it's exactly the same chip. We connected one to a Raspberry Pi.
1342430	1347610	And this was our electric vehicle. And then the other one, which was our charging station. So the
1347610	1354590	Raspberry Pi was actually just providing some traffic so we can measure packet loss and the
1354590	1358050	quality or, like, examine the quality of the channel, basically. Yeah, we connected them with
1358130	1364710	a charging cable. And then we had an attacker, which you can see in the lower part. We used just
1364950	1371850	a super simple antenna. It's a very low frequency. So PLC is communicating at around 2 to 28 megahertz
1371850	1379070	like in this band. So we set a center frequency to 17 megahertz. So we have a pretty high or
1379070	1384770	large wavelength. So our antenna was actually just a bunch of wires. And I'll have a photo
1384770	1390590	later where you can see it. We connected this to a small amplifier and a Lime SDR. So this setup
1390590	1397870	cost you maybe, I mean, now the Lime SDR actually got quite expensive. But it was maybe $250, $300
1399730	1405870	before the chip prices. Yeah. Right. So we did some experiments in our lab, like in the
1405870	1411350	university. You can see the home plug green fire modems in the back. Our attacker set up in the
1411350	1418910	front. And this was roughly, I don't know, maybe 8, 9 meters. And we successfully disrupted it.
1419230	1426590	So we plotted some graphs. We basically tested for a given distance how much power do we need
1426590	1432190	to disrupt this charging communication. I mean, just a home plug green fire communication.
1432670	1440210	And as you can see, so it's plotted in dBm and milliwatts. On the left, dBm. You can see that
1440210	1446110	for a distance of 10 meters, we actually were able to disrupt this communication with less than
1446890	1453970	10 dBm or 10 milliwatts. So your Wi-Fi router is probably transmitting at around 100 milliwatts.
1453970	1459490	So just to give you an idea, this is like very, very low output power. And this was from 10 meters
1459490	1466610	away. So we also wanted to test can we actually disrupt between floors just for the sake of it.
1466610	1472330	And, yeah, we were able to do it. So you can see on the first floor, we put the modems there.
1472330	1476710	We didn't even stretch out the charging cable. So it was like a bunch of wires or just like
1477110	1483110	a pile of wires. And then we were the floor below, and we had the antenna lined up and just
1483110	1487210	transmitted. I can't remember exactly how much power we had for this experiment, but it was
1487210	1495870	on the order of like 70 to 100 milliwatts. So, of course, we were curious. Actually,
1495870	1500650	we only tested it so far in the lab. Can we actually target charging stations out in the
1500650	1505450	wild? Can we test this on real cars? So we got all of our equipment into the boot of a car.
1505770	1510470	Here, actually, you can see our antenna, which is just a bunch of wires I mentioned.
1510770	1518210	Amplifier, LimeSDR, bench power supply, which we powered with a UPS. But we changed the setup.
1518330	1524470	So now we actually just use a power bank with the step-up converter because we need 12 volts
1524470	1528870	for the amplifier. So you can easily fit this in your backpack, for example.
1529910	1536250	And, yeah, we tested different scenarios. So, for example, can I just attach the antenna
1536810	1543130	to the side of the car or just in the boot and then drive or pass by a charger? Can we
1543130	1550370	do a scenario where I'm behind some bushes and then disrupt the charging? So I would say scenario
1550370	1556190	2, 3, and 4 are commonly seen at supermarkets, for example. And then we did another one which
1556190	1561330	was just focusing on distance. So we wanted to see how far can we actually go given our
1561330	1566090	power budget of 1 watt, which was limited by government regulations. So we couldn't transmit
1566090	1572870	higher than 1 watt. I also want to say we don't reveal which cars we tested and which chargers
1572870	1578790	just because we want to stress it's a standards issue. It's not an individual car manufacturer
1578790	1583490	who implemented it wrong. They follow the standard and the standard like home black green
1583490	1592090	fire is just vulnerable. So these were the cars we tested. This overview just shows you it's not
1592090	1600090	just cheap cars. It goes up to $150,000 cars. So it was actually quite sad. We had to drive all
1600090	1604810	these cars for quite a while and then run down the batteries, charge them again, run down the
1604810	1613110	battery. So it was quite fun driving the shooting break. And so, yeah, as you can see, all of them
1613110	1617470	are vulnerable. It also doesn't matter what the charging capacity is. So, of course, if you
1617470	1622070	charge with a higher capacity, you might have more noise. But it didn't really matter. It still
1622070	1630510	worked. So we did the distance experiment. Again, 1 watt of amplification. So roughly 1 watt. It
1630510	1640490	was just below. And we were able to disrupt it from around 50 meters. So what can we do to
1640490	1646590	prevent this? So to prevent leaking the signal or actually having the antenna or the charging
1646590	1651670	cable acting as an antenna, of course, shielding would be the way to go. But actually shielding
1651670	1656770	doesn't work here very well because the cable is already quite stiff and heavy. Adding shielding
1656770	1663670	might reduce the vulnerability or susceptibility to EMI. But actually in the end, you just
1663670	1669330	increase the power. And since we were talking about super low transmission power here, you can
1669330	1677270	buy a 10 watt, 70 watt or 600 watt amplifier in this band and you would still be good. And then,
1677270	1684330	yeah, you would need to add more shielding. So it's an arms race. Another idea would be upgrade
1684330	1689430	the firmware of the Qualcomm chip. And if anyone from Qualcomm is here by any chance, we would be
1689430	1695490	happy to chat about this because it would be quite interesting to know if actually the pre-ample
1695490	1701910	detection and the 2 dB, if this is a threshold which is set in firmware or if it's a hardware
1701910	1707790	limitation. And then finally, one thing we noticed, once you disrupt the charging session,
1707790	1713830	it stays disrupted. So you would need to walk there, unplug the cable, plug it in again,
1713830	1718310	tap your card or activate via the app or if you have plug and charge, I guess it would do it
1718310	1725110	automatically. But you would need to re-authenticate, which is a pain because if you have a
1725710	1732770	depot like the DVD fleet I mentioned earlier, you'd need to go there, disrupt it, it takes 20
1732770	1737310	seconds and then you leave and it will be disrupted for the whole night. It automatically doesn't
1737310	1743790	re-authenticate or re-continue the charging session. So we said,
1743830	1749630	redeploying the same vulnerability. So why was this the title of our talk? Well, what is next?
1749630	1754930	That's the big question. And currently, there is work going on on the megawatt charging system,
1754930	1762870	MCS. And interestingly, so it has almost 4 megawatt of charging capacity. But interestingly,
1762870	1770170	it also uses power line communication again. It uses differential PLC, which should be, yeah,
1770170	1774650	not as easy to disrupt, but we haven't tested it yet because it's not widely deployed, or it's not
1774650	1782390	deployed yet. Just for your information, this is like the plug compared to CCS. I mean, it looks
1782390	1788110	quite similar, but you now have a communication interface in the middle for a twisted pair.
1789890	1797510	Yeah, so the differential signaling should significantly improve like the EMC
1797510	1803050	compatibility of the PLC communication. But yeah, as I said, we haven't tested this yet.
1803790	1809490	And using a shielded, unshielded twisted pair, UDP wire should also help to increase noise
1809490	1817550	immunity. Roughly 40 dB higher is Jarin saying on their website. So Jarin is the standardization
1817550	1826370	body of CCS and MCS. But I would like to highlight here that even if you shield the cable, you use
1826370	1832750	differential PLC and you use twisted pair, the signal could just couple into some other bits,
1832750	1838510	right, like onto the PCB directly. So you could modulate your signal into a higher carrier,
1838510	1845470	high-frequency carrier. And so it's not, if you just make the wire not attackable, it doesn't
1845470	1853070	mean the system is not attackable. And now there is also the North American charging standard.
1853070	1861590	I guess you all know it. It's the Tesla plug. And they say basically that for DC charging,
1861590	1867190	the electric vehicle should or NACS should support power line communication to make it
1867190	1873890	compatible with 1070-121. And it should also support ISO 15118, which means if it needs
1873890	1881990	to support ISO 15118, it needs to support PLC communication. So what is the conclusion? Well,
1881990	1886710	CCS is vulnerable to wireless attacks. We showed that we can e-strap on it, but we can also
1886710	1892890	inject. Roughly 20 million vehicles are currently vulnerable because CCS is mainly used or is the
1892890	1899070	DC charging standard in Europe. It's also widely used in the U.S. and in some parts of Asia.
1899590	1905310	And we just think PLC is just not a good technology to use in such a critical communication.
1905310	1912870	So I just have a video for you. Just ignore the Renault Saurier on the left. As I said, I didn't
1912870	1919930	want to reveal which car we tested on, but yeah. So the car was charging, as you can see. And we
1919930	1926590	put the equipment, as you saw in one of the photos, in the back of the car. And then as soon as we
1926590	1941810	pass by, you will see that the charging stopped. Yeah, and this is the error where you need to go
1941810	1950630	unplug it, plug it in again, so it doesn't go away automatically. Right. That's it. If you have
1950630	1958110	any questions, feel free to reach out to us on brokenwire.fail. We have more information. There
1958110	1965970	is also the paper available. And there is also some information on NIST for the CVE we got. But
1965970	1978030	happy to take any questions. Thank you. Oh yeah, sorry. There is a microphone right here if you
1978030	1998530	have any questions. Hi. Just a question. Were you able to also... there was a... you mentioned about
1998530	2004310	the billing. You can... there's a communication between vehicle and the charging station. And
2004310	2009670	there is a billing associated with it. Were you also able to get into the billing, like
2009670	2019250	able to manipulate the user to charge? Sorry, if I understood you correctly, you're talking...
2019250	2023550	or you're asking about the identifier which is transmitted between the car and the charger. So
2023550	2028250	there are different implementations, I would say. There is one which is called auto charge,
2028250	2035370	which is basically the MAC address of your EV charging controller. And so if you have the MAC
2035370	2041750	address, yeah, you can... so if I e-stop on your communication and get your MAC address and
2041750	2049550	spoof my MAC address, I could charge and you would be paying for it. So basically we can snip MAC
2049550	2056970	address from the car between the charger during the session and then we can use this to auto...
2056970	2063130	bill for that user that we snipped. Is that correct? Sorry, could you speak up a bit? It's
2063130	2071710	hard to hear. So the car connects to the charging station during the initial session, we sniff the
2071710	2081050	MAC address and then can we replay that to charge the user? Right, if we can replay...
2082650	2088210	Yes, you capture that MAC address, you set your MAC address that's associated with someone's
2088210	2092550	billing account and then you just go and charge until they cancel it because they
2092550	2096590	realize they're being charged. It doesn't... it's not the same for plug and charge and
2096590	2104250	this is the gold standard thing. Auto charge was just a couple of industry players wanting
2104250	2108770	to kind of get in on this kind of frictionless experience early. Plug and charge, no. There's
2108770	2115070	certificates both sides. There's, as far as we know, good crypto. It's not very widely deployed
2115070	2125240	yet. But yeah, that's safe. Thanks a lot. Dumb question. Will the slide deck be available on
2125240	2133540	the GitHub site? This slide deck? That slide deck. It could be, yes. It's not currently,
2133540	2137340	but it could be. There's certainly slides from other talks we've done on it. This one has a
2137340	2142660	little bit of extra on it. But yeah, that paper, code, you can... Some appropriate slide deck. I
2142660	2146680	know some folks where the slide deck would be great for explaining. Yeah, of course. Yeah,
2146680	2154880	I think you'll find all the resources there. No worries. One question, please. The MAC address
2154880	2159820	that you identified, this is a MAC address of the vehicle or the charging system of the vehicle?
2160300	2164980	There are two, and you get both of them in different messages. Are you sure it's the same
2164980	2171000	one? So there's a modem one, and then there's one for the, what is it, the charge controller.
2171840	2174920	And we've observed different behavior in different vehicles. Some of them have
2174920	2183120	one bit different. Some have the same MAC address in both. Some have one of them blanked and one
2183120	2187560	of them not. It depends on which one you're looking at. Because it's totally different ECUs.
2187900	2193260	The MAC address virtually will be in part of the TCU and not part of the charging system.
2193760	2198240	Sorry, I missed that bit. The MAC address... The MAC address will come from the TCU.
2198280	2204420	From the controller on the EVCC? Yes, not from the charging system.
2204420	2211640	We have one from the modem and one from that, from the EVCC. So I mean, I could show you in
2211640	2216060	some captures. And it does, as I say, vary between. But yeah, they establish a communication
2216060	2222120	between the two high-level entities. And then the very early initialization messages are modem to
2222120	2225180	modem. So we have ones for those as well. Okay, thanks.
2227040	2232900	Hi, thank you. You were talking about NACS and similar vulnerabilities.
2233560	2238920	Seeing as NACS is coming up, well, Sharon is trying to standardize it now. Is this an opportunity
2238920	2243480	to kind of address some of the vulnerabilities with some of your suggestions?
2244620	2250880	Yes, would be our opinion. There's... I mean, some things are very difficult to change, right?
2250880	2257440	You've got a standard that has this communication was possibly not the best choice baked into it.
2257740	2260860	That's probably going to be difficult to do. Some changes are coming that are really good,
2260860	2265920	like MCS having this differential PLC. Or changes you could deploy later, like
2267160	2271960	firmware differences or additional sort of detection systems for just constant preamble
2271960	2277360	or something. But yeah, I mean, as a general rule, yes, let's try to fix this. And hence why we're
2277360	2282240	sort of doing this talk now. And we'd be happy to engage with anyone that's doing work on any
2282240	2287220	new charging standards. Yeah, thank you. Sorry, if you need to...
2289380	2299620	Yeah, so the question I have is, like, the SDR you guys use to do this attack is kind of unique,
2300380	2305420	because to do this, you need something that has at least 28 megahertz of RF bandwidth.
2305420	2309540	I'm sorry, I'm having difficulty hearing you. Probably just close to the mic is fine.
2309620	2316860	Okay. So the SDR you guys use to do this is somewhat unique in the fact... because you need,
2316860	2324940	about 28 megahertz of RF bandwidth in order to do this attack. So things like a hack RF
2324940	2332360	won't work, because they've only got 20 megahertz. Now, the new LIME SDRs don't have this nice wide
2332360	2336980	band that the original one did. And hence, that's why the price of these have gone up.
2336980	2341440	But I'm kind of curious, have you guys found anything other than, like, a high-end USRP
2341980	2347340	that will do this, you know, has a required RF bandwidth? Because I'd love to hear about that.
2347340	2352560	Yeah. So we played with a couple of different ones. I mean, I think prices went up a little
2352560	2358660	bit across the board. At the time, the big LIME SDR was, what, a couple of hundred dollars. And
2358660	2362720	that was really good. That was why we had it. And it also worked natively in that band.
2363520	2369560	The previous work, the eavesdropping, I was using a Blade RF, which was reasonably inexpensive at
2369560	2374040	the time, but it didn't tune to that band, so we had an up-converter to bring it up to there.
2375220	2381020	And basically, we've had pretty good success with those. I'm not quite sure exactly what's
2381020	2387100	going to be the best buy at the moment, but my gut feeling is probably still the LIME SDR.
2387100	2391500	They've got more expensive, but they're still not, you know, quite USRP territory.
2392280	2396680	So the current LIME... are you talking about the old version and trying to get it off eBay?
2397160	2402920	Frankly, either. I would probably... a V2 should work fine. We haven't tested the V2 ourselves,
2402920	2410240	but, you know... Well, the V2 does have the required bandwidth? Yes. And it'll tune down to,
2410240	2416580	you know, tune down to 2 to 20, 2 to 30 MHz? And in fact, I mean, depending on what attack you
2416580	2420620	want to do, whether you're, you know, you could just do up-conversion, down-conversion, use
2420620	2425720	something else, that might be quite a good route. I mean, if you wanted a recommendation of what to
2425720	2429780	buy, we could perhaps have a little offline chat, but most of the things that are above, you know,
2429780	2435220	an RTL or something should work fine. I will also say, you might have some success even with the
2435220	2441740	20 MHz Sumerhack RF for two reasons. One, we did test broken wire with less of the preamble,
2441740	2445560	you know, because some of this will get attenuated anyway, and I can't remember how low we went,
2445560	2450620	but you could cut off a surprising amount and still have the preambles register as accurate.
2451220	2454840	Although the preambles don't use all the OFDM channels?
2454840	2458960	They do, but even if some of it is horribly attenuated, there's enough signal for it to correlate well
2458960	2465180	and trigger as a preamble. In theory, you should be able to even do some eavesdropping, because
2465180	2470940	Green PHY replicates all across the band, so there's five copies, or sometimes seven copies,
2470940	2474760	depending on which message you're talking about, for exactly the same problem. You know, it's a
2474760	2479960	very, very hostile network if you're, if you're, um, hostile, uh, transmission environment on these
2479960	2483480	wires, and so it's built to be robust against that, and you could lose a whole chunk of the
2483480	2489360	sub-carriers and still recover messages. Of course, your mileage may vary, but, uh, you might have
2489360	2494320	some success with the HackRF, if not, yeah, probably swap in for a LimeSDR or the, or the
2494320	2498160	BladeRF and upconverter. Very interesting, thank you, I didn't know that about, I thought it was
2498160	2503400	using all the OFDMs. Yeah, of course, I mean, it tries to, but it's surprisingly resistant to,
2503400	2508900	to loss or noise or whatever. Okay. Happy to talk more afterwards, yeah. Okay, okay, cool.
2511430	2518650	Hi, um, I'm not, I'm not really knowledgeable about the protocol, but, uh, has Qualcomm
2518650	2525910	implemented something like a spread spectrum or something that can mitigate the radiations? I mean,
2525910	2532090	whenever we do EMC testing, we basically look for, uh, if we have this type of radiations, we
2532090	2538250	reduce the speed, reduce the slew rates, or, uh, also doing some spread spectrum on the transceivers
2538810	2545750	to mitigate the radiations. Has this been, uh, already placed on the table? Um, so no,
2545750	2552030	so it's an OFDM system, um, and there's certainly per carrier control to, to stay under EMC limits.
2552030	2556670	Um, so part of it was, of course, that, that distinctive spectrum template that I showed,
2556670	2568230	you know, notching out the, um, the amateur bands. Um, and you could power control there or you, and,
2568230	2574970	just under the threshold for, for radiation. Um, I think realistically it's just, if you turn up
2574970	2580270	your LNA enough, you can kind of still pick it up, but it's still compliant. Um, and then there's
2580270	2585310	plenty on above that in terms of varying modulation to try to get the best rates and so on, but that's
2585310	2597910	less of a compliance thing and more of a throughput issue. Okay. Yeah. So only through, uh,
2597910	2604570	I mean, so some implementations of this are a wire, um, at which point it's just going to be
2604570	2609650	leaking out all over the place. Um, the differential down a twisted pair. Yeah. That's probably going
2609650	2613990	to be very helpful. Um, but you know, bear in mind, this is a technology that's coming from
2613990	2618170	an in-home environment and genuinely people's power wiring, which is just, you know, uh,
2618170	2623610	wires randomly laid over 50 years by different electricians and so on. So it's not, it wasn't
2623610	2627390	really built as a communication protocol for a purpose-built environment, but rather making the
2627390	2633110	best use it could have of the conditions it had. And that's why it's not ideal there. And is the
2633110	2638850	amount of information, uh, that you do during the handshake, uh, really needs the amount of,
2638850	2648250	uh, speed or why not use lean or... Yeah. I mean, all the other charging standards do not,
2648250	2654190	like I typically use a CAN bus link and do fine. Um, I think a lot of it was a future-proofing
2654190	2658770	idea. Um, and there was some really nice design choices. Have an IP link, you can just do whatever
2658770	2663550	you can deploy the same technology you have. There's no reinventing the wheel. Personally,
2663550	2669190	I'm not sure PLC was the best underpinning for that, you know, but, um, but no, it's hard to
2669190	2673190	make a case. It was more to just create the capability to deploy whatever we might need in
2673190	2678290	the future rather than because you need that much data. Okay. Well, thanks. Thanks very much.
2678990	2680290	And thanks everyone for coming.
