0 00:00:00,000 --> 00:00:30,000 Dear viewer, these subtitles were generated by a machine via the service Trint and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/859 Thanks! 1 00:00:14,630 --> 00:00:16,319 All right, let's get started then. 2 00:00:17,450 --> 00:00:20,180 So we really do love our conveniences 3 00:00:22,160 --> 00:00:24,289 today nowadays, inserting a physical 4 00:00:24,290 --> 00:00:26,119 key into a lock is just too much work. 5 00:00:27,170 --> 00:00:28,639 Our lights have to kind of regulate 6 00:00:28,640 --> 00:00:30,859 themselves. It's way too much effort 7 00:00:30,860 --> 00:00:32,479 to hit the switch all the time. 8 00:00:33,680 --> 00:00:35,359 But we forget that this automation comes 9 00:00:35,360 --> 00:00:37,519 with a price and that prices 10 00:00:37,520 --> 00:00:38,869 our security and our privacy. 11 00:00:40,640 --> 00:00:42,469 Our speaker today, Marcus Miller and 12 00:00:42,470 --> 00:00:44,779 Marcus Chater, 13 00:00:44,780 --> 00:00:47,689 are going to talk about a 14 00:00:47,690 --> 00:00:49,939 device that actually had a lot of promise 15 00:00:49,940 --> 00:00:52,219 and was basically brought down by 16 00:00:52,220 --> 00:00:54,649 a very simple implementation problem. 17 00:00:54,650 --> 00:00:55,650 And 18 00:00:56,720 --> 00:00:58,159 there's actually going to be a demo if 19 00:00:58,160 --> 00:00:59,129 you see the hardware over here. 20 00:00:59,130 --> 00:01:00,169 This is awesome. 21 00:01:00,170 --> 00:01:01,459 We're going to we're going to have a demo 22 00:01:01,460 --> 00:01:03,049 here. Everybody else who's not made it to 23 00:01:03,050 --> 00:01:04,488 this talk is going to are going to 24 00:01:04,489 --> 00:01:05,689 totally regret it. 25 00:01:05,690 --> 00:01:08,689 So give it up for Marcus 26 00:01:08,690 --> 00:01:09,690 and Marcus. 27 00:01:15,680 --> 00:01:18,019 Yeah, thank you, everybody, for coming. 28 00:01:18,020 --> 00:01:19,879 I'm still waiting for the sleights. 29 00:01:21,420 --> 00:01:22,799 OK, that's awesome. 30 00:01:22,800 --> 00:01:24,899 So my name is Mark Accommodator, with 31 00:01:24,900 --> 00:01:27,599 me on stage as my colleague Marcus Miller 32 00:01:27,600 --> 00:01:29,339 and to our colleagues who have been 33 00:01:29,340 --> 00:01:31,649 involved with the project are also here, 34 00:01:31,650 --> 00:01:33,839 sitting over there, um, Christian 35 00:01:33,840 --> 00:01:35,879 Cordella and Daniel Bryan. 36 00:01:35,880 --> 00:01:38,009 And all together we are from the security 37 00:01:38,010 --> 00:01:40,139 consulting company Transfix Katie. 38 00:01:41,220 --> 00:01:43,499 So I would first start out by giving 39 00:01:43,500 --> 00:01:45,689 you an idea who we actually are. 40 00:01:45,690 --> 00:01:47,999 So as I mentioned, we are a security 41 00:01:48,000 --> 00:01:50,249 consulting company, so we focus on 42 00:01:50,250 --> 00:01:52,589 security consulting, engineering 43 00:01:52,590 --> 00:01:54,279 and security research. 44 00:01:54,280 --> 00:01:56,459 The company was founded in 2012, 45 00:01:56,460 --> 00:01:58,439 but the security consulting work actually 46 00:01:58,440 --> 00:02:01,439 reaches back to 2005. 47 00:02:01,440 --> 00:02:03,569 And so today what we do 48 00:02:03,570 --> 00:02:05,789 is we do security audits, we 49 00:02:05,790 --> 00:02:08,429 do security audits of Web applications, 50 00:02:08,430 --> 00:02:09,388 software applications. 51 00:02:09,389 --> 00:02:11,008 So this is pretty much what everybody 52 00:02:11,009 --> 00:02:12,599 else is doing as well. 53 00:02:12,600 --> 00:02:14,789 But we have a strong focus also on 54 00:02:14,790 --> 00:02:17,009 embedded devices and 55 00:02:17,010 --> 00:02:19,319 with our hardware security, we can even 56 00:02:19,320 --> 00:02:21,539 go down to the microchip level. 57 00:02:21,540 --> 00:02:23,489 So just to give you an idea, what we do, 58 00:02:23,490 --> 00:02:25,559 in addition to that, we do embedded 59 00:02:25,560 --> 00:02:27,479 in security, engineering and high speed 60 00:02:27,480 --> 00:02:28,480 cryptography. 61 00:02:29,620 --> 00:02:31,529 Second slide, this is the lap that we 62 00:02:31,530 --> 00:02:33,659 have so we can really go down 63 00:02:33,660 --> 00:02:35,759 deep, uh, even to 64 00:02:35,760 --> 00:02:36,929 the top level. 65 00:02:36,930 --> 00:02:39,299 We have a focused iron beam workstation, 66 00:02:39,300 --> 00:02:41,249 a scanning electron microscope to do this 67 00:02:41,250 --> 00:02:42,209 kind of work. 68 00:02:42,210 --> 00:02:44,309 And typical work we do in the lab is 69 00:02:44,310 --> 00:02:46,529 like evaluation of against 70 00:02:46,530 --> 00:02:48,689 site channel attacks or faulty injection 71 00:02:48,690 --> 00:02:50,909 attacks. And then we can even go 72 00:02:50,910 --> 00:02:52,739 to the microchip level by doing fully 73 00:02:52,740 --> 00:02:54,269 invasive attacks. 74 00:02:54,270 --> 00:02:56,459 And our general idea here is that 75 00:02:56,460 --> 00:02:58,319 you have more sophisticated equipment in 76 00:02:58,320 --> 00:03:00,389 the lab and so we can make 77 00:03:00,390 --> 00:03:03,089 up analysis time so we can do an analysis 78 00:03:03,090 --> 00:03:04,829 in a short amount of time. 79 00:03:04,830 --> 00:03:06,899 Whereas a normal attacker who would not 80 00:03:06,900 --> 00:03:09,539 have all these tools has 81 00:03:09,540 --> 00:03:12,569 typically more time to conduct attack. 82 00:03:12,570 --> 00:03:14,729 OK, so now the big question, how 83 00:03:14,730 --> 00:03:16,949 in the hell did we get to garage doors? 84 00:03:16,950 --> 00:03:17,909 Right. 85 00:03:17,910 --> 00:03:20,129 So as you might know, many of 86 00:03:20,130 --> 00:03:22,109 the garage door systems that are out in 87 00:03:22,110 --> 00:03:24,119 the field that are really known to be 88 00:03:24,120 --> 00:03:26,369 insecure, insecure, 89 00:03:26,370 --> 00:03:28,559 because they mostly use static or 90 00:03:28,560 --> 00:03:30,959 very simple rolling code schemes, 91 00:03:30,960 --> 00:03:33,629 there is often no encryption at all. 92 00:03:33,630 --> 00:03:35,969 And for this reason, you can mount 93 00:03:35,970 --> 00:03:38,129 very easy replay attacks 94 00:03:38,130 --> 00:03:39,689 or cloning attacks. 95 00:03:39,690 --> 00:03:41,729 So this is pretty much known. 96 00:03:41,730 --> 00:03:43,829 And in contrast to that, 97 00:03:43,830 --> 00:03:46,079 there is this there's to be a secure 98 00:03:46,080 --> 00:03:47,039 system. 99 00:03:47,040 --> 00:03:49,319 So it uses the well known as 100 00:03:49,320 --> 00:03:50,729 encryption algorithm. 101 00:03:50,730 --> 00:03:53,429 It is a high, um, security 102 00:03:53,430 --> 00:03:55,829 established system in the field. 103 00:03:55,830 --> 00:03:57,809 And if you compare that to the classical 104 00:03:57,810 --> 00:04:00,539 systems that are really easy to break, 105 00:04:00,540 --> 00:04:03,269 it is a big security improvement. 106 00:04:03,270 --> 00:04:05,999 And yeah, to answer the question, 107 00:04:06,000 --> 00:04:08,309 how we actually got to this system 108 00:04:08,310 --> 00:04:11,519 is the two of our security analysis, 109 00:04:11,520 --> 00:04:14,489 uh, both sitting here, 110 00:04:14,490 --> 00:04:15,900 they have the system at home. 111 00:04:17,269 --> 00:04:19,639 And so they they were asking 112 00:04:19,640 --> 00:04:21,768 the question, um, is 113 00:04:21,769 --> 00:04:24,289 the system really secure? 114 00:04:24,290 --> 00:04:26,749 So is the system implementation 115 00:04:26,750 --> 00:04:28,369 secure in practice? 116 00:04:28,370 --> 00:04:30,539 Does the system really use the as 117 00:04:30,540 --> 00:04:32,809 algorithm? And is the algorithm used 118 00:04:32,810 --> 00:04:33,810 in a secure. 119 00:04:34,850 --> 00:04:37,519 How is the key material generated, 120 00:04:37,520 --> 00:04:39,619 how is it used, um, 121 00:04:39,620 --> 00:04:41,719 is the key material individual or 122 00:04:41,720 --> 00:04:44,209 is that may be shared key material among 123 00:04:44,210 --> 00:04:46,099 different systems? 124 00:04:46,100 --> 00:04:48,319 What do the messages look like on 125 00:04:48,320 --> 00:04:49,669 the RF interface? 126 00:04:49,670 --> 00:04:52,189 And last but not least, the question, 127 00:04:52,190 --> 00:04:54,229 does the system adhere to the Kirkos 128 00:04:54,230 --> 00:04:56,719 principle? So if an attacker really knows 129 00:04:56,720 --> 00:04:59,089 exactly how the system operates 130 00:04:59,090 --> 00:05:01,309 and the only thing he doesn't have is 131 00:05:01,310 --> 00:05:03,439 the key material, then the system 132 00:05:03,440 --> 00:05:05,239 should still be secure. 133 00:05:05,240 --> 00:05:07,249 And this was the point where we decided 134 00:05:07,250 --> 00:05:09,669 to conduct a security audit. 135 00:05:09,670 --> 00:05:12,159 So how do you start a security 136 00:05:12,160 --> 00:05:14,439 audit on a system like this, 137 00:05:14,440 --> 00:05:16,569 on a wireless system with all these 138 00:05:16,570 --> 00:05:19,539 transmitters and the receiver 139 00:05:19,540 --> 00:05:21,579 that's typically agaric? 140 00:05:21,580 --> 00:05:23,649 And so we started off with 141 00:05:23,650 --> 00:05:25,839 the transmitters, so we already had 142 00:05:25,840 --> 00:05:26,979 a few of them. 143 00:05:26,980 --> 00:05:29,349 We also obtained new ones. 144 00:05:29,350 --> 00:05:31,419 And so what we had is we 145 00:05:31,420 --> 00:05:33,639 had different models, we had 146 00:05:33,640 --> 00:05:35,089 different manufacturing data. 147 00:05:35,090 --> 00:05:37,689 So some of the old hand transmitters 148 00:05:37,690 --> 00:05:40,569 that we had were already bought in 2015, 149 00:05:40,570 --> 00:05:42,189 whereas the newer ones were bought in 150 00:05:42,190 --> 00:05:43,479 2017. 151 00:05:43,480 --> 00:05:45,429 And so in general, we can say that our 152 00:05:45,430 --> 00:05:47,829 analysis then will also cover a broader 153 00:05:47,830 --> 00:05:50,139 range in terms of the different 154 00:05:50,140 --> 00:05:53,139 models and the manufacturing dates. 155 00:05:53,140 --> 00:05:55,239 So to start out, what we did is we 156 00:05:55,240 --> 00:05:58,179 conducted an RF signal analysis 157 00:05:58,180 --> 00:06:00,129 from the system Manuell. 158 00:06:00,130 --> 00:06:02,529 We already knew that the system operates 159 00:06:02,530 --> 00:06:04,389 somewhere in the eight hundred sixty 160 00:06:04,390 --> 00:06:06,189 eight megahertz range. 161 00:06:06,190 --> 00:06:08,359 So we used the software defined radio. 162 00:06:08,360 --> 00:06:10,539 I played RF in this case, and 163 00:06:10,540 --> 00:06:12,609 our goals at this point were just to find 164 00:06:12,610 --> 00:06:14,859 out what is the exact frequency 165 00:06:14,860 --> 00:06:17,079 the system operates then what 166 00:06:17,080 --> 00:06:19,179 is the modulation scheme that the 167 00:06:19,180 --> 00:06:22,209 system uses to transfer the data? 168 00:06:22,210 --> 00:06:23,799 What is the channel coding? 169 00:06:23,800 --> 00:06:25,569 And after we have answered all these 170 00:06:25,570 --> 00:06:27,759 questions, hopefully, um, 171 00:06:27,760 --> 00:06:29,180 decode our frames. 172 00:06:30,280 --> 00:06:32,889 So if you have one of those 173 00:06:32,890 --> 00:06:35,199 systems, um, what can you do 174 00:06:35,200 --> 00:06:36,939 to find the frequency? 175 00:06:36,940 --> 00:06:38,769 It's actually pretty, pretty easy. 176 00:06:38,770 --> 00:06:41,799 So you can just use the radio tools. 177 00:06:41,800 --> 00:06:42,999 We also did that. 178 00:06:43,000 --> 00:06:45,159 We perform the spectral analysis. 179 00:06:45,160 --> 00:06:47,649 So we tuned our software defined 180 00:06:47,650 --> 00:06:49,539 find radio to this eight hundred sixty 181 00:06:49,540 --> 00:06:51,939 eight megahertz with enough bandwidth 182 00:06:51,940 --> 00:06:54,069 so that you can really see the signal and 183 00:06:54,070 --> 00:06:56,139 then you just do a waterfall 184 00:06:56,140 --> 00:06:58,719 plot. And what you will see there 185 00:06:58,720 --> 00:07:01,569 is if you press on the transmitter, 186 00:07:01,570 --> 00:07:03,249 you will see something like this. 187 00:07:03,250 --> 00:07:05,619 So this is just a normal waterfall 188 00:07:05,620 --> 00:07:06,619 diagram. 189 00:07:06,620 --> 00:07:09,249 It shows the spectrum over time. 190 00:07:09,250 --> 00:07:11,319 And here we can see that there 191 00:07:11,320 --> 00:07:13,989 is a signal with 192 00:07:13,990 --> 00:07:16,239 a frequency of eight hundred sixty 193 00:07:16,240 --> 00:07:18,519 eight point three three oh megahertz. 194 00:07:18,520 --> 00:07:20,589 So we have now already identified 195 00:07:20,590 --> 00:07:22,449 the frequency. That's good. 196 00:07:22,450 --> 00:07:24,579 But what we also see is on 197 00:07:24,580 --> 00:07:26,409 the left and on the right side, you can 198 00:07:26,410 --> 00:07:28,209 see those peaks. 199 00:07:28,210 --> 00:07:30,309 So when the signal is transmitted, 200 00:07:30,310 --> 00:07:32,589 it uses actually two 201 00:07:32,590 --> 00:07:35,049 frequencies and it switches between them. 202 00:07:35,050 --> 00:07:37,239 And this is a very strong indication 203 00:07:37,240 --> 00:07:39,429 that frequency shift is used. 204 00:07:39,430 --> 00:07:41,649 So the idea of that is that if 205 00:07:41,650 --> 00:07:43,719 you have a zero bit, you transmit a bit 206 00:07:43,720 --> 00:07:45,849 of a lower frequency and if you have a 207 00:07:45,850 --> 00:07:47,559 one bit, you transmit a bit of a higher 208 00:07:47,560 --> 00:07:49,809 frequency. Pretty simple. 209 00:07:49,810 --> 00:07:52,029 So we already know that Fishscale 210 00:07:52,030 --> 00:07:53,679 modulation was used. 211 00:07:53,680 --> 00:07:55,869 Now, the next step is we want to 212 00:07:55,870 --> 00:07:57,459 know the channel coding. 213 00:07:57,460 --> 00:07:59,859 So if we modulate the signal 214 00:07:59,860 --> 00:08:02,309 and we have the data bits, the data 215 00:08:02,310 --> 00:08:04,599 bits are still in a channel coding 216 00:08:04,600 --> 00:08:07,179 scheme and we need to find out which 217 00:08:07,180 --> 00:08:08,739 scheme is used. 218 00:08:08,740 --> 00:08:10,809 And so what we did is we had a look 219 00:08:10,810 --> 00:08:12,879 at the signal and in the 220 00:08:12,880 --> 00:08:15,759 first step, it was necessary 221 00:08:15,760 --> 00:08:18,009 to get to the to the right symbol 222 00:08:18,010 --> 00:08:18,969 rate. 223 00:08:18,970 --> 00:08:21,069 And the typical signal starts 224 00:08:21,070 --> 00:08:22,509 with the synchronizing block. 225 00:08:22,510 --> 00:08:25,269 So this is just a very simple waveform 226 00:08:25,270 --> 00:08:27,399 with an alternating high and end 227 00:08:27,400 --> 00:08:29,559 and low signal all the time. 228 00:08:29,560 --> 00:08:32,379 And it allows the receiver to synchronize 229 00:08:32,380 --> 00:08:34,479 it, symbol to the transmitter. 230 00:08:34,480 --> 00:08:36,279 And we did just the same. 231 00:08:36,280 --> 00:08:38,529 So it allowed us to synchronize 232 00:08:38,530 --> 00:08:39,949 on the signal. 233 00:08:39,950 --> 00:08:42,189 There's a picture where you can see that. 234 00:08:42,190 --> 00:08:44,439 Um, so on the left side here, 235 00:08:44,440 --> 00:08:46,509 you can see the synchronization block. 236 00:08:46,510 --> 00:08:48,639 And after that, there's the data block. 237 00:08:48,640 --> 00:08:50,799 And once again, here we are in the time 238 00:08:50,800 --> 00:08:53,169 domain. And here you can also easily 239 00:08:53,170 --> 00:08:55,149 see that first came all the heels. 240 00:08:55,150 --> 00:08:57,219 So we have this long periods 241 00:08:57,220 --> 00:08:59,019 and we have signals with the short 242 00:08:59,020 --> 00:09:00,099 periods. 243 00:09:00,100 --> 00:09:02,709 So this is fishscale modulation. 244 00:09:02,710 --> 00:09:04,929 And if you do a Google search 245 00:09:04,930 --> 00:09:06,999 for a new radio 246 00:09:07,000 --> 00:09:09,699 FSA, the modulation, um, 247 00:09:09,700 --> 00:09:12,159 there's a lot of examples of stimulating 248 00:09:12,160 --> 00:09:13,239 blocks. 249 00:09:13,240 --> 00:09:15,369 And so, um, we had 250 00:09:15,370 --> 00:09:17,589 a look there what how the 251 00:09:17,590 --> 00:09:19,869 how the typical modulation scheme looks 252 00:09:19,870 --> 00:09:21,969 like. And then we added a few more 253 00:09:21,970 --> 00:09:24,309 blocks that are specific to our system 254 00:09:24,310 --> 00:09:26,469 and we tune the blocks to our 255 00:09:26,470 --> 00:09:27,409 system. 256 00:09:27,410 --> 00:09:29,649 So after all, we wanted to analyze 257 00:09:29,650 --> 00:09:31,149 the particular system. 258 00:09:31,150 --> 00:09:33,219 So also the blocks have to 259 00:09:33,220 --> 00:09:34,119 be particular. 260 00:09:34,120 --> 00:09:35,319 Specific? 261 00:09:35,320 --> 00:09:36,369 Um, yeah. 262 00:09:36,370 --> 00:09:38,889 So we came up with this block, um, 263 00:09:38,890 --> 00:09:41,229 we already cut away this initial 264 00:09:41,230 --> 00:09:43,359 synchronization block so that we just 265 00:09:43,360 --> 00:09:46,129 end up with the demodulator data bits. 266 00:09:46,130 --> 00:09:48,279 And once we have those, we can hopefully 267 00:09:48,280 --> 00:09:50,409 analyze them and find out what 268 00:09:50,410 --> 00:09:52,089 the channel coding is. 269 00:09:52,090 --> 00:09:53,289 Yeah, we just did that. 270 00:09:53,290 --> 00:09:55,779 We analyzed to capture file. 271 00:09:55,780 --> 00:09:57,849 And interestingly, what we could find 272 00:09:57,850 --> 00:10:00,309 in there is there were always 273 00:10:00,310 --> 00:10:03,429 sequences of symbols, 274 00:10:03,430 --> 00:10:05,709 but it was always a zero, followed 275 00:10:05,710 --> 00:10:07,779 by one or one followed by 276 00:10:07,780 --> 00:10:09,089 zero and. 277 00:10:09,090 --> 00:10:11,099 This indicates that Manchester coding is 278 00:10:11,100 --> 00:10:13,319 used, I have here a very 279 00:10:13,320 --> 00:10:16,019 simple picture from Wikipedia, 280 00:10:16,020 --> 00:10:18,209 so it actually takes two symbols to 281 00:10:18,210 --> 00:10:20,429 transmit one data bit. 282 00:10:20,430 --> 00:10:22,589 And if you have, for instance, 283 00:10:22,590 --> 00:10:24,869 uh, first a symbol of one 284 00:10:24,870 --> 00:10:27,059 and then a symbol of zero, the data 285 00:10:27,060 --> 00:10:29,009 is one and vice versa. 286 00:10:29,010 --> 00:10:31,289 If you first have a 287 00:10:31,290 --> 00:10:33,989 symbol of zero and then a symbol of one, 288 00:10:33,990 --> 00:10:36,299 the data, it is so pretty 289 00:10:36,300 --> 00:10:37,319 easy. 290 00:10:37,320 --> 00:10:40,259 And at that point, it allowed us already 291 00:10:40,260 --> 00:10:42,359 to, uh, to try decoding 292 00:10:42,360 --> 00:10:44,129 the RF frames that are used in the 293 00:10:44,130 --> 00:10:45,149 systems. 294 00:10:45,150 --> 00:10:47,099 So we wrote a Python script. 295 00:10:47,100 --> 00:10:49,439 We use the radio framework once 296 00:10:49,440 --> 00:10:51,509 again. Um, our assumption 297 00:10:51,510 --> 00:10:53,909 was also that typically at the end 298 00:10:53,910 --> 00:10:56,099 of an hour, a frame there has to be some 299 00:10:56,100 --> 00:10:57,359 kind of checksum. 300 00:10:57,360 --> 00:10:59,819 After all, the receiver has to know 301 00:10:59,820 --> 00:11:01,769 all the. Yeah, the receiver has to know 302 00:11:01,770 --> 00:11:03,839 whether the transmission was 303 00:11:03,840 --> 00:11:06,089 correct, so whether there were any errors 304 00:11:06,090 --> 00:11:08,279 or not. And it can determine that 305 00:11:08,280 --> 00:11:10,679 by computing a checksum 306 00:11:10,680 --> 00:11:12,389 and then comparing it to the checksum in 307 00:11:12,390 --> 00:11:13,559 the packet. 308 00:11:13,560 --> 00:11:15,479 Yeah. And what we came up with can be 309 00:11:15,480 --> 00:11:16,739 seen in this table. 310 00:11:16,740 --> 00:11:19,169 So we noticed we had like 311 00:11:19,170 --> 00:11:21,419 nine different transmitters at 312 00:11:21,420 --> 00:11:23,789 the end and we pressed the different 313 00:11:23,790 --> 00:11:25,559 hand transmitters and we just had a look 314 00:11:25,560 --> 00:11:27,809 what, uh, how the RF frames 315 00:11:27,810 --> 00:11:28,799 looked like. 316 00:11:28,800 --> 00:11:30,479 And so at this point, we could see that 317 00:11:30,480 --> 00:11:32,639 the frames always started with 318 00:11:32,640 --> 00:11:35,139 Iida and OIK 70 or 319 00:11:35,140 --> 00:11:36,029 50. 320 00:11:36,030 --> 00:11:38,249 After that, there was the serial number. 321 00:11:38,250 --> 00:11:40,379 So it was a four byte value that 322 00:11:40,380 --> 00:11:42,659 was individual transmitter and it didn't 323 00:11:42,660 --> 00:11:43,499 change at all. 324 00:11:43,500 --> 00:11:44,939 Burhenn Transmitter. 325 00:11:44,940 --> 00:11:47,309 After that, there was the encrypted 326 00:11:47,310 --> 00:11:48,449 data field. 327 00:11:48,450 --> 00:11:50,579 So we knew that the system uses a 328 00:11:50,580 --> 00:11:51,569 synchrotron. 329 00:11:51,570 --> 00:11:53,819 And this there was this very large blob 330 00:11:53,820 --> 00:11:55,529 that changed each time. 331 00:11:55,530 --> 00:11:58,079 So obviously that has to be the encrypted 332 00:11:58,080 --> 00:12:00,449 data. And we also assumed, 333 00:12:00,450 --> 00:12:02,519 but really weren't sure at that point 334 00:12:02,520 --> 00:12:05,639 of time that the last byte is probably 335 00:12:05,640 --> 00:12:06,929 the check somewhere. 336 00:12:06,930 --> 00:12:09,269 OK, now, so we have managed 337 00:12:09,270 --> 00:12:11,189 to decode they are afraid we have a 338 00:12:11,190 --> 00:12:13,289 pretty good assumption of what the signal 339 00:12:13,290 --> 00:12:14,189 looks like. 340 00:12:14,190 --> 00:12:16,559 But still, our main question is how 341 00:12:16,560 --> 00:12:18,269 does the system operate? 342 00:12:18,270 --> 00:12:20,399 How how does the how does 343 00:12:20,400 --> 00:12:22,139 the encryption scheme work? 344 00:12:22,140 --> 00:12:24,239 And so our next step was to, 345 00:12:24,240 --> 00:12:26,099 uh, hardware analysis. 346 00:12:26,100 --> 00:12:29,699 So we just opened up a transmitter 347 00:12:29,700 --> 00:12:31,769 and here you can see this on a picture. 348 00:12:31,770 --> 00:12:33,839 So it's just, um, I think 349 00:12:33,840 --> 00:12:36,089 it's from from one of those transmitter, 350 00:12:36,090 --> 00:12:37,739 very pretty small. 351 00:12:37,740 --> 00:12:39,689 And if you open that up, you have this 352 00:12:39,690 --> 00:12:41,789 PCB, you can find 353 00:12:41,790 --> 00:12:43,409 different chips on there. 354 00:12:43,410 --> 00:12:44,999 And you can also see that there are a lot 355 00:12:45,000 --> 00:12:46,679 of test pits. 356 00:12:46,680 --> 00:12:49,409 And in fact, uh, 357 00:12:49,410 --> 00:12:51,569 the chip with the little stick on it is 358 00:12:51,570 --> 00:12:52,649 a microcontroller. 359 00:12:52,650 --> 00:12:54,449 So in general, we had a look at the 360 00:12:54,450 --> 00:12:56,999 chips, at the chip markings. 361 00:12:57,000 --> 00:12:59,189 Um, we could find out that there 362 00:12:59,190 --> 00:13:01,559 is a, uh, transmitter I see 363 00:13:01,560 --> 00:13:03,899 in on the PCB, the 364 00:13:03,900 --> 00:13:06,029 six twenty or 365 00:13:06,030 --> 00:13:07,739 twelve thirty radio chip. 366 00:13:07,740 --> 00:13:09,579 So there's a public data sheet for that. 367 00:13:09,580 --> 00:13:12,149 So we knew what kind of chip it is. 368 00:13:12,150 --> 00:13:14,099 However, more interestingly, was the 369 00:13:14,100 --> 00:13:15,059 microcontroller. 370 00:13:15,060 --> 00:13:17,369 After all, the microcontroller contains 371 00:13:17,370 --> 00:13:19,809 the actual system implementation. 372 00:13:19,810 --> 00:13:21,839 So if we are able to analyze the 373 00:13:21,840 --> 00:13:23,939 firmware, we will also find out 374 00:13:23,940 --> 00:13:26,459 precisely how the system works 375 00:13:26,460 --> 00:13:28,109 and whether it contains security 376 00:13:28,110 --> 00:13:29,399 vulnerabilities. 377 00:13:29,400 --> 00:13:31,109 And in our case, we had a look at the 378 00:13:31,110 --> 00:13:33,239 microcontroller and what we 379 00:13:33,240 --> 00:13:35,819 could see there is the microchip logo. 380 00:13:35,820 --> 00:13:38,409 So the logo of the manufacturer, 381 00:13:38,410 --> 00:13:40,259 uh, microchip. 382 00:13:40,260 --> 00:13:42,329 And so we assumed that it is 383 00:13:42,330 --> 00:13:44,459 probably a pick microcontroller, 384 00:13:44,460 --> 00:13:46,619 but unfortunately, the model type of the 385 00:13:46,620 --> 00:13:48,689 chip. So the exact, uh, microcontroller 386 00:13:48,690 --> 00:13:51,179 type was not written on the chip package. 387 00:13:51,180 --> 00:13:52,619 Instead, there was a very long 388 00:13:52,620 --> 00:13:54,299 manufacturer code. 389 00:13:54,300 --> 00:13:56,609 So you might notice that if you 390 00:13:56,610 --> 00:13:58,859 if you buy a microcontrollers in large 391 00:13:58,860 --> 00:14:01,079 quantities, sometimes you get your own 392 00:14:01,080 --> 00:14:02,489 chip markings. 393 00:14:02,490 --> 00:14:04,649 And obviously we had something 394 00:14:04,650 --> 00:14:06,419 like this. So we really didn't know what 395 00:14:06,420 --> 00:14:08,519 kind of microcontroller we have. 396 00:14:08,520 --> 00:14:10,739 We only knew that probably it is a pick 397 00:14:10,740 --> 00:14:12,089 microcontroller. 398 00:14:12,090 --> 00:14:13,859 But what else did we know? 399 00:14:13,860 --> 00:14:15,959 We knew that the chip has twenty 400 00:14:15,960 --> 00:14:17,339 eight pins. 401 00:14:17,340 --> 00:14:19,589 We knew that the chip is an AKUA 402 00:14:19,590 --> 00:14:20,939 package. 403 00:14:20,940 --> 00:14:22,889 We also knew that the chip is probably 404 00:14:22,890 --> 00:14:26,159 older than three years since the system, 405 00:14:26,160 --> 00:14:27,749 the biosecure system has been on the 406 00:14:27,750 --> 00:14:30,119 market for a long time 407 00:14:30,120 --> 00:14:32,369 and only recently 408 00:14:32,370 --> 00:14:33,989 Microchip acquired Atmel. 409 00:14:33,990 --> 00:14:35,519 So it could be possible that in the 410 00:14:35,520 --> 00:14:37,739 future there might be Atmel chips 411 00:14:37,740 --> 00:14:39,869 that now have a microchip logo on 412 00:14:39,870 --> 00:14:41,999 it on them. But in our case, 413 00:14:42,000 --> 00:14:44,609 this cannot be the case. 414 00:14:44,610 --> 00:14:46,799 And from the PCB, we knew that 415 00:14:46,800 --> 00:14:49,589 ground is on pins five and sixteen. 416 00:14:49,590 --> 00:14:51,689 And as you saw in the picture before, 417 00:14:51,690 --> 00:14:53,879 we saw all these test pins. 418 00:14:53,880 --> 00:14:56,189 And so we also assumed that the test 419 00:14:56,190 --> 00:14:58,319 points on the PCB probably 420 00:14:58,320 --> 00:15:00,629 also go to the programing pins 421 00:15:00,630 --> 00:15:02,759 of the microcontroller. 422 00:15:02,760 --> 00:15:05,069 So to identify the controller, 423 00:15:05,070 --> 00:15:07,139 um, the first thing we came up 424 00:15:07,140 --> 00:15:08,989 with is just. 425 00:15:08,990 --> 00:15:11,119 Doing a simple search at a component 426 00:15:11,120 --> 00:15:12,109 distributor. 427 00:15:12,110 --> 00:15:14,449 So we searched for the manufacturer 428 00:15:14,450 --> 00:15:16,849 microchip, we searched for chips 429 00:15:16,850 --> 00:15:19,129 with twenty eight pins and chips 430 00:15:19,130 --> 00:15:20,659 that are available in the queue event 431 00:15:20,660 --> 00:15:21,859 package. 432 00:15:21,860 --> 00:15:24,139 And the results were only for 433 00:15:24,140 --> 00:15:26,029 four different models. 434 00:15:26,030 --> 00:15:28,099 So they pick 16 F 18 F 435 00:15:28,100 --> 00:15:29,899 24 events, 32 F. 436 00:15:29,900 --> 00:15:31,729 And so at that point, from those four 437 00:15:31,730 --> 00:15:33,889 candidate series, we 438 00:15:33,890 --> 00:15:36,319 started to look into the data sheets 439 00:15:36,320 --> 00:15:38,929 and as it turns out, to pick 24 440 00:15:38,930 --> 00:15:41,359 and pick two is not only a pretty large 441 00:15:41,360 --> 00:15:43,609 microcontroller, um, but 442 00:15:43,610 --> 00:15:45,919 it would also need a ground on PIN 443 00:15:45,920 --> 00:15:46,909 24. 444 00:15:46,910 --> 00:15:48,979 And this is something that was not on our 445 00:15:48,980 --> 00:15:50,119 PCP. 446 00:15:50,120 --> 00:15:52,259 So, um, we assumed 447 00:15:52,260 --> 00:15:54,739 that the pick my, uh, microcontroller 448 00:15:54,740 --> 00:15:57,259 must in fact be either a pick 16 449 00:15:57,260 --> 00:15:58,759 or 18 F series. 450 00:15:59,820 --> 00:16:01,889 So what we did next is 451 00:16:01,890 --> 00:16:04,379 to identify the programing pins, 452 00:16:04,380 --> 00:16:06,839 so if you want to go to the program 453 00:16:06,840 --> 00:16:09,179 or pick microcontroller, you need 454 00:16:09,180 --> 00:16:11,279 you need the programing pins, 455 00:16:11,280 --> 00:16:13,829 not our PGD, PGC, 456 00:16:13,830 --> 00:16:15,329 and then a supply voltage. 457 00:16:15,330 --> 00:16:18,179 So we did The Uncrowned and 458 00:16:18,180 --> 00:16:20,309 all of the pick 16 F 459 00:16:20,310 --> 00:16:22,889 series and pick 18 F series 460 00:16:22,890 --> 00:16:24,929 in this 28 PIN package. 461 00:16:24,930 --> 00:16:26,639 They have the programing pins at the same 462 00:16:26,640 --> 00:16:27,959 location. 463 00:16:27,960 --> 00:16:28,859 So it's easy. 464 00:16:28,860 --> 00:16:30,929 And at that point you can just 465 00:16:30,930 --> 00:16:33,089 connect the, um, 466 00:16:33,090 --> 00:16:35,309 the the ticket three program 467 00:16:35,310 --> 00:16:37,529 to the device. So that's like a very low 468 00:16:37,530 --> 00:16:39,389 cost programing tool that everybody is 469 00:16:39,390 --> 00:16:42,569 using to program peak microcontrollers. 470 00:16:42,570 --> 00:16:44,819 So this is the picture 471 00:16:44,820 --> 00:16:47,219 of the PCB and now 472 00:16:47,220 --> 00:16:49,379 you can also see in red marked 473 00:16:49,380 --> 00:16:51,449 in red, uh, the test points on the 474 00:16:51,450 --> 00:16:54,149 PCB and in the table on the right, 475 00:16:54,150 --> 00:16:56,459 we can see that, in fact, the programing 476 00:16:56,460 --> 00:16:59,129 pins have been, uh, connected 477 00:16:59,130 --> 00:17:00,809 to those test pads. 478 00:17:00,810 --> 00:17:03,299 Yeah. So we did a little break board, 479 00:17:03,300 --> 00:17:05,009 break out board to connect the picket 480 00:17:05,010 --> 00:17:05,969 programa. 481 00:17:05,970 --> 00:17:08,279 And, um, yeah, we wanted 482 00:17:08,280 --> 00:17:10,469 to know what microcontroller 483 00:17:10,470 --> 00:17:11,999 we are dealing with. 484 00:17:12,000 --> 00:17:14,429 And the two, um, reported 485 00:17:14,430 --> 00:17:16,618 to us that in fact it is a pick 18 486 00:17:16,619 --> 00:17:18,809 f uh 26 K 20 487 00:17:18,810 --> 00:17:19,828 microcontroller. 488 00:17:19,829 --> 00:17:21,419 OK, so much for that. 489 00:17:21,420 --> 00:17:23,608 But what it also told us that 490 00:17:23,609 --> 00:17:25,979 we already assume that, uh, 491 00:17:25,980 --> 00:17:28,919 that all the flesh blocks are locked. 492 00:17:28,920 --> 00:17:31,139 So there are cord protection bits and 493 00:17:31,140 --> 00:17:33,209 we cannot just read the firmware. 494 00:17:33,210 --> 00:17:34,859 The firm is locked down. 495 00:17:34,860 --> 00:17:36,329 It cannot be read out. 496 00:17:36,330 --> 00:17:38,219 What we also saw is that the EPROM at 497 00:17:38,220 --> 00:17:39,809 this point is not locked. 498 00:17:39,810 --> 00:17:41,819 So we could just dump the EPROM at this 499 00:17:41,820 --> 00:17:43,949 point. But unfortunately, it doesn't 500 00:17:43,950 --> 00:17:44,950 contain the firmware. 501 00:17:46,330 --> 00:17:48,459 Yeah, so we want to do a family 502 00:17:48,460 --> 00:17:50,709 analysis because in the firm where 503 00:17:50,710 --> 00:17:53,079 there's the entire system implementation 504 00:17:53,080 --> 00:17:55,569 and only by conducting a family analysis, 505 00:17:55,570 --> 00:17:57,999 we will know how the system operates 506 00:17:58,000 --> 00:18:00,819 and whether the system is secure. 507 00:18:00,820 --> 00:18:03,909 And yeah, from it's locked, 508 00:18:03,910 --> 00:18:06,159 the locking pits on the on the pick 509 00:18:06,160 --> 00:18:08,439 microcontroller are typically implemented 510 00:18:08,440 --> 00:18:10,479 in a form of a security fuze. 511 00:18:10,480 --> 00:18:12,639 But yeah, since we were 512 00:18:12,640 --> 00:18:14,499 in the situation that we could not dump 513 00:18:14,500 --> 00:18:17,079 the firmware, um, the issue 514 00:18:17,080 --> 00:18:19,239 would be more or less that we cannot get 515 00:18:19,240 --> 00:18:20,319 the firmware out. 516 00:18:20,320 --> 00:18:22,329 And so we would have to go back to 517 00:18:22,330 --> 00:18:23,379 security by obscurity. 518 00:18:23,380 --> 00:18:25,389 We would have to trust the manufacturer 519 00:18:25,390 --> 00:18:27,459 that the system is really secure because 520 00:18:27,460 --> 00:18:29,139 we cannot dump the phone. 521 00:18:29,140 --> 00:18:31,359 Yeah. So what we did is we 522 00:18:31,360 --> 00:18:33,249 have had the security lapse. 523 00:18:33,250 --> 00:18:35,319 So we have a lot of methods 524 00:18:35,320 --> 00:18:37,599 that we can apply to to even 525 00:18:37,600 --> 00:18:39,729 conduct a security audit in 526 00:18:39,730 --> 00:18:40,689 this case. 527 00:18:40,690 --> 00:18:42,909 Now, our first question was, how is 528 00:18:42,910 --> 00:18:45,249 the security use logic implemented 529 00:18:45,250 --> 00:18:47,739 on the pick 18 F microcontroller? 530 00:18:47,740 --> 00:18:48,729 How does it look like? 531 00:18:48,730 --> 00:18:50,469 What are we up against? 532 00:18:50,470 --> 00:18:52,959 What do we need to get around to 533 00:18:52,960 --> 00:18:54,999 be able to extract the farmer? 534 00:18:55,000 --> 00:18:57,279 And our approach in this case was 535 00:18:57,280 --> 00:18:59,649 to do and I see the capsule, 536 00:18:59,650 --> 00:19:01,929 so to open up the chip and 537 00:19:01,930 --> 00:19:04,779 then do a rough microscopic analysis. 538 00:19:04,780 --> 00:19:06,189 So here are some pictures. 539 00:19:06,190 --> 00:19:08,049 So rather easy process. 540 00:19:08,050 --> 00:19:10,269 So you just dissolved 541 00:19:10,270 --> 00:19:11,289 the chip. 542 00:19:11,290 --> 00:19:13,449 And then we follow, 543 00:19:13,450 --> 00:19:15,519 uh, what chemicals? 544 00:19:15,520 --> 00:19:17,169 The capitulation process. 545 00:19:17,170 --> 00:19:19,449 And in the last picture, we can see that, 546 00:19:19,450 --> 00:19:21,759 uh, the chip has been opened up. 547 00:19:21,760 --> 00:19:23,709 It would still be functional at that 548 00:19:23,710 --> 00:19:25,989 point, but we can visibly see 549 00:19:25,990 --> 00:19:26,990 the Dynel. 550 00:19:27,720 --> 00:19:30,779 So the next step, um, 551 00:19:30,780 --> 00:19:33,749 we used to Chip and we 552 00:19:33,750 --> 00:19:37,229 we had a look at it in a microscope. 553 00:19:37,230 --> 00:19:39,669 And this is what we could see. 554 00:19:39,670 --> 00:19:42,659 This is a pick F microcontroller. 555 00:19:42,660 --> 00:19:45,149 It has a very large Flesche area 556 00:19:45,150 --> 00:19:46,169 to Sandström. 557 00:19:46,170 --> 00:19:47,549 It hasn't EPROM. 558 00:19:47,550 --> 00:19:49,709 And on the sides on on the right 559 00:19:49,710 --> 00:19:52,379 side is the area where we suspect 560 00:19:52,380 --> 00:19:54,599 that the security fuzes are. 561 00:19:54,600 --> 00:19:55,709 Big question. 562 00:19:55,710 --> 00:19:57,809 Why do we suspect that there 563 00:19:57,810 --> 00:19:59,549 are other security fuzes? 564 00:19:59,550 --> 00:20:02,399 Yeah. Um, on today's microcontrollers, 565 00:20:02,400 --> 00:20:04,709 it's often very easy to spot them because 566 00:20:04,710 --> 00:20:06,359 of those little metal shields. 567 00:20:06,360 --> 00:20:09,299 So in the old days, there was, uh, 568 00:20:09,300 --> 00:20:10,889 there was an attack where you could just 569 00:20:10,890 --> 00:20:13,709 reset the security fuzes 570 00:20:13,710 --> 00:20:15,869 by using UV light 571 00:20:15,870 --> 00:20:18,629 so you could erase the security fuzes 572 00:20:18,630 --> 00:20:19,649 with UV light. 573 00:20:19,650 --> 00:20:21,299 And after that, you could just dump the 574 00:20:21,300 --> 00:20:22,319 chip. 575 00:20:22,320 --> 00:20:24,779 And, um, as a countermeasure, 576 00:20:24,780 --> 00:20:26,939 manufacturers came up with those little 577 00:20:26,940 --> 00:20:28,079 shields. 578 00:20:28,080 --> 00:20:30,089 So now you can use those little shields 579 00:20:30,090 --> 00:20:32,309 to spot the potential areas of 580 00:20:32,310 --> 00:20:34,049 the security forces. 581 00:20:34,050 --> 00:20:36,119 OK, so we knew at this point 582 00:20:36,120 --> 00:20:38,279 what we are up against, what we need to 583 00:20:38,280 --> 00:20:40,529 do. And we were sitting 584 00:20:40,530 --> 00:20:42,959 in the lab and exploring different 585 00:20:42,960 --> 00:20:44,519 options that we could do. 586 00:20:45,570 --> 00:20:48,299 And, um, yeah, so 587 00:20:48,300 --> 00:20:50,669 the first method that came to our mind 588 00:20:50,670 --> 00:20:53,229 is the chip is already, 589 00:20:53,230 --> 00:20:55,499 uh, we could do an invasive circuit 590 00:20:55,500 --> 00:20:56,579 at it. 591 00:20:56,580 --> 00:20:58,409 So we have a chip already. 592 00:20:58,410 --> 00:21:00,929 And, um, the approach 593 00:21:00,930 --> 00:21:03,089 would work, uh, in the following 594 00:21:03,090 --> 00:21:05,369 that we that we would have to identify 595 00:21:05,370 --> 00:21:07,679 the security Feuilles logic so we already 596 00:21:07,680 --> 00:21:09,419 know where the security fuzes are. 597 00:21:09,420 --> 00:21:11,519 We would have to to 598 00:21:11,520 --> 00:21:13,739 look a bit deeper into that to find 599 00:21:13,740 --> 00:21:15,869 out how the logic works. 600 00:21:15,870 --> 00:21:18,119 And then we could bypass the Security 601 00:21:18,120 --> 00:21:20,339 Fuze by using, uh, by applying 602 00:21:20,340 --> 00:21:21,879 a circuit at it. 603 00:21:21,880 --> 00:21:23,909 OK, so that's a method. 604 00:21:23,910 --> 00:21:26,039 Um, and the big question was, 605 00:21:26,040 --> 00:21:28,259 uh, what would be the advantage of it 606 00:21:28,260 --> 00:21:30,359 and what would be the disadvantage 607 00:21:30,360 --> 00:21:31,449 that vantages. 608 00:21:31,450 --> 00:21:33,749 Yeah. If you can do that, 609 00:21:33,750 --> 00:21:35,399 you have a high success rate 610 00:21:35,400 --> 00:21:36,569 disadvantages. 611 00:21:36,570 --> 00:21:38,699 We didn't do an analysis of the 612 00:21:38,700 --> 00:21:40,859 picaridin before, so we 613 00:21:40,860 --> 00:21:42,929 didn't have a recipe at hand. 614 00:21:42,930 --> 00:21:45,089 And so it would have taken us a long 615 00:21:45,090 --> 00:21:47,279 time to figure out how the 616 00:21:47,280 --> 00:21:49,929 Security Fuze logic works. 617 00:21:49,930 --> 00:21:52,479 Yeah, so to give you an idea 618 00:21:52,480 --> 00:21:54,639 how hot it how that method would 619 00:21:54,640 --> 00:21:55,659 have worked. 620 00:21:55,660 --> 00:21:57,909 This is our fifth machine 621 00:21:57,910 --> 00:21:59,469 and this is what you can do with it. 622 00:21:59,470 --> 00:22:00,759 So it's like a solar ring. 623 00:22:00,760 --> 00:22:03,049 Iren, for a chip on this picture, 624 00:22:03,050 --> 00:22:05,229 you see an example of another chip where 625 00:22:05,230 --> 00:22:06,129 we did a circuit. 626 00:22:06,130 --> 00:22:08,289 Edit in general, the machine allows 627 00:22:08,290 --> 00:22:10,479 you to cut tracers 628 00:22:10,480 --> 00:22:13,359 and also to deposit new tracers. 629 00:22:13,360 --> 00:22:16,269 So in the case of the pick a controller, 630 00:22:16,270 --> 00:22:18,519 we could have just cut the 631 00:22:18,520 --> 00:22:20,769 output rail of the Security 632 00:22:20,770 --> 00:22:22,939 Fuze and then connect it to 633 00:22:22,940 --> 00:22:24,339 video ground. 634 00:22:24,340 --> 00:22:26,679 And so we would have a fixed output 635 00:22:26,680 --> 00:22:28,939 and bypass the Fuze, 636 00:22:28,940 --> 00:22:31,269 the next option we 637 00:22:31,270 --> 00:22:32,979 explored. So we did a bit of more 638 00:22:32,980 --> 00:22:35,259 research and there 639 00:22:35,260 --> 00:22:37,569 is the well known panic attack. 640 00:22:37,570 --> 00:22:39,759 So I told you before that now there 641 00:22:39,760 --> 00:22:41,409 is this countermeasure where the 642 00:22:41,410 --> 00:22:43,389 manufacturer puts those little metal 643 00:22:43,390 --> 00:22:45,369 shields in order to avoid UV light 644 00:22:45,370 --> 00:22:47,829 getting down to the Fuze. 645 00:22:47,830 --> 00:22:50,199 And, um, Bunnie Huang, 646 00:22:50,200 --> 00:22:52,359 um, he he he wanted to do this 647 00:22:52,360 --> 00:22:54,639 on a different type of, uh, 648 00:22:54,640 --> 00:22:55,599 controller. 649 00:22:55,600 --> 00:22:57,889 And what he found out is that if you use 650 00:22:57,890 --> 00:23:00,489 the UV light at a very steep angle, 651 00:23:00,490 --> 00:23:02,559 it can actually go below 652 00:23:02,560 --> 00:23:04,999 the shield, bounce up again, bounce 653 00:23:05,000 --> 00:23:06,909 down again at the field and so on and so 654 00:23:06,910 --> 00:23:07,479 forth. 655 00:23:07,480 --> 00:23:09,279 And that will be enough UV light in 656 00:23:09,280 --> 00:23:12,489 order, um, to erase the Fuze. 657 00:23:12,490 --> 00:23:14,229 OK, that's nice. 658 00:23:14,230 --> 00:23:16,209 So the advantage of that would be our 659 00:23:16,210 --> 00:23:18,309 chip is already open and it's it's 660 00:23:18,310 --> 00:23:19,479 rather easy to conduct. 661 00:23:19,480 --> 00:23:22,149 So we could just ride these advantages 662 00:23:22,150 --> 00:23:24,519 that, um, Bonnie 663 00:23:24,520 --> 00:23:26,349 did the tech on on a different chip 664 00:23:26,350 --> 00:23:28,479 model. So we really not we were at 665 00:23:28,480 --> 00:23:30,429 this point really not sure whether we had 666 00:23:30,430 --> 00:23:32,169 the same Fuze type. 667 00:23:32,170 --> 00:23:33,609 So there's not a Fuze type. 668 00:23:33,610 --> 00:23:34,929 It's called A. Fuze. 669 00:23:34,930 --> 00:23:36,999 And instead of getting cleared 670 00:23:37,000 --> 00:23:38,919 by UV light, it's getting set by UV 671 00:23:38,920 --> 00:23:40,089 light. 672 00:23:40,090 --> 00:23:42,189 And, um, what you also have 673 00:23:42,190 --> 00:23:44,259 to do is you have to cover the flash 674 00:23:44,260 --> 00:23:46,539 memory, for instance, with a permanent 675 00:23:46,540 --> 00:23:48,849 marker or with a little electrical tape. 676 00:23:48,850 --> 00:23:50,979 Otherwise you will also erase the flash 677 00:23:50,980 --> 00:23:51,939 memory. 678 00:23:51,940 --> 00:23:54,069 And so at that point, we were a bit 679 00:23:54,070 --> 00:23:56,859 worried that we could damage the chip. 680 00:23:56,860 --> 00:23:59,079 And, um, it was still unclear 681 00:23:59,080 --> 00:24:01,359 to us whether the approach worked. 682 00:24:01,360 --> 00:24:03,609 Next thing is op2 covered 683 00:24:03,610 --> 00:24:05,919 today in a few talks is voltage 684 00:24:05,920 --> 00:24:07,029 glitching. 685 00:24:07,030 --> 00:24:09,099 So we have a voltage glitch 686 00:24:09,100 --> 00:24:11,589 amplifier, but we can, uh, we can conduct 687 00:24:11,590 --> 00:24:13,959 Klich, uh, attacks 688 00:24:13,960 --> 00:24:15,969 at very, very short pulses and high 689 00:24:15,970 --> 00:24:18,219 current so we could try 690 00:24:18,220 --> 00:24:20,789 to clinch the chip in order to extract 691 00:24:20,790 --> 00:24:22,899 a further advantage would be 692 00:24:22,900 --> 00:24:25,209 easier to conduct disadvantages. 693 00:24:25,210 --> 00:24:27,399 We have really no idea if this approach 694 00:24:27,400 --> 00:24:30,219 works, um, on the ATF 695 00:24:30,220 --> 00:24:32,739 and we would have to find the parameters 696 00:24:32,740 --> 00:24:33,859 first. 697 00:24:33,860 --> 00:24:35,979 Yeah. So these are the methods so far 698 00:24:35,980 --> 00:24:37,329 that we explored. 699 00:24:37,330 --> 00:24:39,909 And after doing more research, 700 00:24:39,910 --> 00:24:41,499 we also found the easy way. 701 00:24:41,500 --> 00:24:43,869 So the easy way that really everybody 702 00:24:43,870 --> 00:24:46,269 with the technical knowledge can 703 00:24:46,270 --> 00:24:48,879 conduct at home without 704 00:24:48,880 --> 00:24:50,739 all these fancy tools. 705 00:24:50,740 --> 00:24:53,049 So there is a really a trivial 706 00:24:53,050 --> 00:24:55,209 design issue in the picture. 707 00:24:55,210 --> 00:24:57,609 Eighteen F security of use logic. 708 00:24:57,610 --> 00:25:00,079 And the design issue is that the 709 00:25:00,080 --> 00:25:02,619 ATF controller, it has 710 00:25:02,620 --> 00:25:04,689 five memory blocks and 711 00:25:04,690 --> 00:25:07,419 each of those memory blocks has 712 00:25:07,420 --> 00:25:10,269 a separate security pit. 713 00:25:10,270 --> 00:25:12,039 So separate locking bit. 714 00:25:12,040 --> 00:25:14,469 And what you can do is you can erase 715 00:25:14,470 --> 00:25:16,899 a locking bit of one block, therefore 716 00:25:16,900 --> 00:25:19,149 you will also erase the content 717 00:25:19,150 --> 00:25:20,199 of the block. 718 00:25:20,200 --> 00:25:22,359 But the remaining blocks, the programing 719 00:25:22,360 --> 00:25:24,069 will stay intact. 720 00:25:24,070 --> 00:25:26,589 So you can just like upload 721 00:25:26,590 --> 00:25:29,289 a dump code to this block. 722 00:25:29,290 --> 00:25:31,359 And then by using the same code, the, um, 723 00:25:31,360 --> 00:25:33,069 code will extract the remaining blocks 724 00:25:33,070 --> 00:25:34,479 that are still locked. 725 00:25:34,480 --> 00:25:35,949 And this is, in fact, even being 726 00:25:35,950 --> 00:25:38,079 presented at the CCC at the 727 00:25:38,080 --> 00:25:40,209 2073 in 2010, 728 00:25:40,210 --> 00:25:42,609 already by Milosh Mary Agnes Talk 729 00:25:42,610 --> 00:25:44,559 Heart of Darkness, exploring the 730 00:25:44,560 --> 00:25:46,659 unchartered backwaters of hit eyeglass 731 00:25:46,660 --> 00:25:48,039 security. 732 00:25:48,040 --> 00:25:50,589 Yeah, so in order to do this, 733 00:25:50,590 --> 00:25:52,689 we implemented a very simple 734 00:25:52,690 --> 00:25:54,789 pick from the extraction tool, so it was 735 00:25:54,790 --> 00:25:57,309 just a little breadboard set up 736 00:25:57,310 --> 00:25:59,169 the Houston FTI board. 737 00:25:59,170 --> 00:26:01,629 So one of those USB to serial 738 00:26:01,630 --> 00:26:04,539 converters and we wrote a bit 739 00:26:04,540 --> 00:26:06,609 of of, uh, of a software 740 00:26:06,610 --> 00:26:08,499 tool. So it was just a small software 741 00:26:08,500 --> 00:26:10,689 script. So our set up 742 00:26:10,690 --> 00:26:12,909 then allowed us to directly talk, 743 00:26:12,910 --> 00:26:15,159 uh, with the pick microcontroller 744 00:26:15,160 --> 00:26:16,160 programing. 745 00:26:16,780 --> 00:26:18,909 So this is what it looks like 746 00:26:18,910 --> 00:26:21,219 on this pick 18 F when you start out, 747 00:26:21,220 --> 00:26:23,139 you have five memory blocks. 748 00:26:23,140 --> 00:26:25,239 So the first block is to put 749 00:26:25,240 --> 00:26:27,429 block. After that you have the first code 750 00:26:27,430 --> 00:26:29,109 block. It's a bit smaller because of the 751 00:26:29,110 --> 00:26:30,369 size of the block. 752 00:26:30,370 --> 00:26:32,319 And after that you have the additional 753 00:26:32,320 --> 00:26:34,419 code blocks and all of them are locked 754 00:26:34,420 --> 00:26:35,420 right now. 755 00:26:36,520 --> 00:26:38,679 And so what you do is you 756 00:26:38,680 --> 00:26:41,019 remove the cockpit, for 757 00:26:41,020 --> 00:26:43,209 instance, in this case here of the book 758 00:26:43,210 --> 00:26:45,129 block, and therefore you also erase the 759 00:26:45,130 --> 00:26:47,319 board block, as you mention, the 760 00:26:47,320 --> 00:26:49,449 other blocks remain intact. 761 00:26:50,500 --> 00:26:52,599 Then we create a little damp 762 00:26:52,600 --> 00:26:54,999 coat, we program it to the good, 763 00:26:55,000 --> 00:26:56,829 to the boot block. 764 00:26:56,830 --> 00:26:58,899 And once the ship is powered 765 00:26:58,900 --> 00:27:01,179 on, our block will execute 766 00:27:01,180 --> 00:27:03,339 and it will just happily dump the 767 00:27:03,340 --> 00:27:04,839 remaining four code blocks 768 00:27:05,980 --> 00:27:08,229 and after that we will have a partial 769 00:27:08,230 --> 00:27:10,239 dump of the microcontroller. 770 00:27:10,240 --> 00:27:12,219 Even so, it is locked. 771 00:27:12,220 --> 00:27:14,109 However, the only thing we don't have is 772 00:27:14,110 --> 00:27:16,419 the bootblack because we overloaded 773 00:27:16,420 --> 00:27:19,419 and the content obviously is irrevocably 774 00:27:19,420 --> 00:27:20,649 lost. 775 00:27:20,650 --> 00:27:21,809 OK, so we do. 776 00:27:21,810 --> 00:27:23,649 What do we do at that point? 777 00:27:23,650 --> 00:27:25,449 How do we even get that? 778 00:27:25,450 --> 00:27:27,369 Yeah, it's easy. Just take another pick 779 00:27:27,370 --> 00:27:29,569 microcontroller with the same programing, 780 00:27:29,570 --> 00:27:31,479 so start all over again, repeat the 781 00:27:31,480 --> 00:27:32,529 process. 782 00:27:32,530 --> 00:27:34,119 So this is what we did. 783 00:27:34,120 --> 00:27:36,489 But this time, of course, we have to 784 00:27:36,490 --> 00:27:39,049 erase another code block. 785 00:27:39,050 --> 00:27:41,799 Um, you used to dump code again 786 00:27:41,800 --> 00:27:44,169 and now the dump code can be used 787 00:27:44,170 --> 00:27:47,199 to also dump the boot block. 788 00:27:47,200 --> 00:27:49,779 However, keep in mind that the execution 789 00:27:49,780 --> 00:27:52,209 starts at the block. 790 00:27:52,210 --> 00:27:54,369 So we don't know exactly, 791 00:27:54,370 --> 00:27:56,769 um, where at 792 00:27:56,770 --> 00:27:59,859 what point in our block, um, 793 00:27:59,860 --> 00:28:02,049 there is the destination from a 794 00:28:02,050 --> 00:28:03,949 form of our Trump instruction. 795 00:28:03,950 --> 00:28:06,669 So we do not know exactly where execution 796 00:28:06,670 --> 00:28:08,889 jumps into our block. 797 00:28:08,890 --> 00:28:10,839 And so what we can what you can do there 798 00:28:10,840 --> 00:28:12,939 is you just use a knob slight, 799 00:28:12,940 --> 00:28:15,129 um, like from from 800 00:28:15,130 --> 00:28:17,259 buffer overflow stay a very well 801 00:28:17,260 --> 00:28:19,309 known there. And at the end of the knob 802 00:28:19,310 --> 00:28:21,249 slide you have your time code. 803 00:28:21,250 --> 00:28:23,139 So that's the only difference. 804 00:28:23,140 --> 00:28:25,539 And after that you have two partial 805 00:28:25,540 --> 00:28:27,609 dumps of the picks. 806 00:28:27,610 --> 00:28:29,619 You combine those stumps, then you have 807 00:28:29,620 --> 00:28:31,959 the, uh, the full firmware dump 808 00:28:31,960 --> 00:28:34,059 and then you can reflect 809 00:28:34,060 --> 00:28:36,489 those two pick microcontrollers again 810 00:28:36,490 --> 00:28:38,649 and they will have the original 811 00:28:38,650 --> 00:28:39,789 programing. 812 00:28:39,790 --> 00:28:41,889 So at this point, we had extracted the 813 00:28:41,890 --> 00:28:44,049 firmware and we 814 00:28:44,050 --> 00:28:46,749 could start doing a firmware analysis. 815 00:28:46,750 --> 00:28:48,849 So for this, we use the well known either 816 00:28:48,850 --> 00:28:49,899 pro tool. 817 00:28:49,900 --> 00:28:51,939 It, uh, it supports the pick 818 00:28:51,940 --> 00:28:53,349 architecture. 819 00:28:53,350 --> 00:28:54,579 And yeah. 820 00:28:54,580 --> 00:28:56,649 And this way we analyze the firmware 821 00:28:56,650 --> 00:28:59,379 to find out how the system operates. 822 00:28:59,380 --> 00:29:01,479 So the firmware analysis provided us 823 00:29:01,480 --> 00:29:04,299 with a very deep implementation insight. 824 00:29:04,300 --> 00:29:07,179 So we could, uh, we could confirm 825 00:29:07,180 --> 00:29:09,339 how the checksum is computed 826 00:29:09,340 --> 00:29:11,619 and that in fact the last byte is 827 00:29:11,620 --> 00:29:14,049 a check. Some of we knew how the RF 828 00:29:14,050 --> 00:29:16,899 protocol works and we could also obtain, 829 00:29:16,900 --> 00:29:19,239 um, how the encryption, uh, 830 00:29:19,240 --> 00:29:21,669 methodology in the system works. 831 00:29:21,670 --> 00:29:23,619 So to give you an idea, this is the 832 00:29:23,620 --> 00:29:25,449 result of our analysis. 833 00:29:25,450 --> 00:29:27,849 This is the cryptographic scheme and 834 00:29:27,850 --> 00:29:30,099 key generation that's used in the 835 00:29:30,100 --> 00:29:31,569 secure system. 836 00:29:31,570 --> 00:29:33,639 So on the left, 837 00:29:33,640 --> 00:29:36,129 you start out with the serial 838 00:29:36,130 --> 00:29:39,369 number. The serial number is individual 839 00:29:39,370 --> 00:29:41,289 peahen transmitter. 840 00:29:41,290 --> 00:29:43,629 And at the heart 841 00:29:43,630 --> 00:29:46,089 of the encryption algorithm, 842 00:29:46,090 --> 00:29:48,549 you have a 128 843 00:29:48,550 --> 00:29:49,479 algorithm. 844 00:29:49,480 --> 00:29:51,609 And around that, there's a bit of 845 00:29:51,610 --> 00:29:53,679 magic happening, which we believe 846 00:29:53,680 --> 00:29:56,379 is a countermeasure, a whitening approach 847 00:29:56,380 --> 00:29:58,329 against such attacks. 848 00:29:58,330 --> 00:30:00,459 And on the left, you have 849 00:30:00,460 --> 00:30:02,739 a random seat and the entire 850 00:30:02,740 --> 00:30:04,909 block just generates a new random 851 00:30:04,910 --> 00:30:07,569 seat. However, on the right, 852 00:30:07,570 --> 00:30:09,579 there is a static value that is shared 853 00:30:09,580 --> 00:30:11,739 among all the transmitters. 854 00:30:11,740 --> 00:30:14,199 The random seed is used as a key 855 00:30:14,200 --> 00:30:16,269 and it outputs the long term 856 00:30:16,270 --> 00:30:17,649 communication key. 857 00:30:17,650 --> 00:30:19,749 And subsequently, this key is 858 00:30:19,750 --> 00:30:21,819 always used to encrypt and 859 00:30:21,820 --> 00:30:24,899 decrypt wireless frames. 860 00:30:24,900 --> 00:30:27,029 So if we combine that with what we 861 00:30:27,030 --> 00:30:29,249 discovered by doing the RF 862 00:30:29,250 --> 00:30:31,739 signal analysis is, uh, 863 00:30:31,740 --> 00:30:34,259 yeah, this is what we receive 864 00:30:34,260 --> 00:30:36,629 and we know the serial 865 00:30:36,630 --> 00:30:38,759 number, the serial number 866 00:30:38,760 --> 00:30:40,709 is transmitted in the clear. 867 00:30:40,710 --> 00:30:42,929 So we have the input to this, 868 00:30:42,930 --> 00:30:45,089 uh, to this scheme, the 869 00:30:45,090 --> 00:30:47,039 serial number input. 870 00:30:47,040 --> 00:30:49,169 Next thing is, we also know the 871 00:30:49,170 --> 00:30:51,419 static value, static values contained 872 00:30:51,420 --> 00:30:53,729 in the firmware, and that is shared among 873 00:30:53,730 --> 00:30:54,930 all the transmitters. 874 00:30:56,610 --> 00:30:59,009 But we also know is, of course, 875 00:30:59,010 --> 00:31:01,679 how the encryption with the algorithm 876 00:31:01,680 --> 00:31:04,469 at its heart, how it works 877 00:31:04,470 --> 00:31:06,060 because it's implemented in the former. 878 00:31:07,250 --> 00:31:09,319 And what we found out is, 879 00:31:09,320 --> 00:31:11,419 um, yeah, we have the 880 00:31:11,420 --> 00:31:13,639 initial random seed and 881 00:31:13,640 --> 00:31:15,769 of course, the initial random seed has to 882 00:31:15,770 --> 00:31:17,719 be in a transmitter. 883 00:31:17,720 --> 00:31:19,789 Unfortunately, what we found out is 884 00:31:19,790 --> 00:31:22,039 that the very same initial random 885 00:31:22,040 --> 00:31:24,239 seed is used on all the 886 00:31:24,240 --> 00:31:27,049 transmitters that we analyzed. 887 00:31:27,050 --> 00:31:29,719 So in other words, we had all necessary 888 00:31:29,720 --> 00:31:32,209 data to compute a communication 889 00:31:32,210 --> 00:31:34,819 key from a serial number. 890 00:31:34,820 --> 00:31:37,039 Now, how can we attack this one 891 00:31:37,040 --> 00:31:39,469 ability to do an 892 00:31:39,470 --> 00:31:41,569 attack? You can, for instance, use a 893 00:31:41,570 --> 00:31:43,759 low cost software defined radio 894 00:31:43,760 --> 00:31:46,069 such as the CCC radio. 895 00:31:46,070 --> 00:31:48,209 We will demo that in 896 00:31:48,210 --> 00:31:50,389 in a few minutes or the heck RF. 897 00:31:50,390 --> 00:31:52,369 And in our case, like I mentioned, we 898 00:31:52,370 --> 00:31:53,869 used the CCC radio. 899 00:31:53,870 --> 00:31:56,179 We were visiting the CCC camp 900 00:31:56,180 --> 00:31:58,279 2015 and it 901 00:31:58,280 --> 00:31:59,479 was available for free. 902 00:31:59,480 --> 00:32:01,039 There is a conference. 903 00:32:02,210 --> 00:32:04,339 So what you do to perform the attack 904 00:32:04,340 --> 00:32:06,679 is you record the RF 905 00:32:06,680 --> 00:32:08,749 transmission from an 906 00:32:08,750 --> 00:32:10,939 biosecure transmitter one 907 00:32:10,940 --> 00:32:13,039 time only to you only 908 00:32:13,040 --> 00:32:15,469 need to do it one time and so 909 00:32:15,470 --> 00:32:17,779 you receive a wireless frame. 910 00:32:17,780 --> 00:32:19,849 So by now you should know how 911 00:32:19,850 --> 00:32:20,850 the frame looks like. 912 00:32:21,950 --> 00:32:24,019 And in the next step, 913 00:32:24,020 --> 00:32:26,239 you use the information that you have 914 00:32:26,240 --> 00:32:28,849 obtained from the firmware analysis 915 00:32:28,850 --> 00:32:30,079 and from the RF frame. 916 00:32:31,230 --> 00:32:33,569 It looks like this, so we really 917 00:32:33,570 --> 00:32:35,789 know everything that 918 00:32:35,790 --> 00:32:37,889 we need to compute the 919 00:32:37,890 --> 00:32:38,890 communication key. 920 00:32:39,950 --> 00:32:42,409 This is what we do in the next step 921 00:32:42,410 --> 00:32:44,149 with computer communication, key 922 00:32:44,150 --> 00:32:46,279 candidate, the candidate is 923 00:32:46,280 --> 00:32:48,529 correct. If we decrypt the 924 00:32:48,530 --> 00:32:50,839 encrypted packet and it has the known 925 00:32:50,840 --> 00:32:53,479 plaintext structure, otherwise 926 00:32:53,480 --> 00:32:56,089 we will repeat that process. 927 00:32:56,090 --> 00:32:58,189 Why do we have to repeat the process at 928 00:32:58,190 --> 00:33:00,409 all? Yeah, repeating the process 929 00:33:00,410 --> 00:33:02,989 is necessary if the user has manually 930 00:33:02,990 --> 00:33:05,089 generated a new so the 931 00:33:05,090 --> 00:33:07,279 system offers this functionality. 932 00:33:07,280 --> 00:33:09,499 And if a user has done that, maybe we 933 00:33:09,500 --> 00:33:11,659 have to repeat the process for one 934 00:33:11,660 --> 00:33:13,159 or two times. 935 00:33:13,160 --> 00:33:15,379 And after that we know the 936 00:33:15,380 --> 00:33:17,599 long term communication key, 937 00:33:17,600 --> 00:33:19,999 we can decrypt the 938 00:33:20,000 --> 00:33:21,799 encrypted message from the wireless 939 00:33:21,800 --> 00:33:22,800 frame. 940 00:33:23,510 --> 00:33:25,699 Um, we can increase the 941 00:33:25,700 --> 00:33:27,279 contained count up to. 942 00:33:28,410 --> 00:33:30,689 Um, just buy one and 943 00:33:30,690 --> 00:33:32,549 then encrypt the message again with the 944 00:33:32,550 --> 00:33:34,709 long term communication key 945 00:33:34,710 --> 00:33:37,019 and in the last step we use the CCC 946 00:33:37,020 --> 00:33:39,329 radio, for instance, um, 947 00:33:39,330 --> 00:33:41,249 to transmit the frame. 948 00:33:41,250 --> 00:33:43,379 Yeah. And for that, um, we have 949 00:33:43,380 --> 00:33:45,749 prepared a live demo will hopefully 950 00:33:45,750 --> 00:33:47,909 work. And I would ask the video 951 00:33:47,910 --> 00:33:50,219 guys to switch over to Marcus. 952 00:33:51,950 --> 00:33:54,099 So thank you for 953 00:33:54,100 --> 00:33:56,109 today's demonstration, we built a little 954 00:33:56,110 --> 00:33:58,269 set up. Um, this is actually 955 00:33:58,270 --> 00:34:00,219 the rail of a garage door opener. 956 00:34:00,220 --> 00:34:02,589 So this would be mounted on the ceiling 957 00:34:02,590 --> 00:34:04,719 of your garage and it moves 958 00:34:04,720 --> 00:34:07,119 up and down the flag over there. 959 00:34:07,120 --> 00:34:09,189 Down here is the operator, which 960 00:34:09,190 --> 00:34:11,499 is, um, which has the built-In receiver 961 00:34:11,500 --> 00:34:12,879 for the radio. 962 00:34:12,880 --> 00:34:15,099 And we can actually operate it with 963 00:34:15,100 --> 00:34:16,100 a remote. 964 00:34:18,690 --> 00:34:19,920 So to. 965 00:34:22,710 --> 00:34:23,710 If you like. 966 00:34:28,699 --> 00:34:30,090 Let's say that Barack Obama. 967 00:34:32,889 --> 00:34:35,349 OK, to start with the attack, 968 00:34:35,350 --> 00:34:36,580 we have a sniffer. 969 00:34:37,760 --> 00:34:39,919 Which listens for any radio 970 00:34:39,920 --> 00:34:41,869 package in the air, so I have a remote 971 00:34:41,870 --> 00:34:43,638 that's not thanks to the door, so it 972 00:34:43,639 --> 00:34:45,888 won't open, but we can see 973 00:34:45,889 --> 00:34:47,419 packets coming in. 974 00:34:47,420 --> 00:34:50,209 So if any one of you has a receiver, 975 00:34:50,210 --> 00:34:52,549 he could press it now and 976 00:34:52,550 --> 00:34:53,630 we would see the packet. 977 00:34:56,080 --> 00:34:58,419 Yeah, there are some, so 978 00:34:58,420 --> 00:35:00,519 thanks for sharing your keys. 979 00:35:00,520 --> 00:35:02,409 It's very nice. 980 00:35:02,410 --> 00:35:04,559 So, uh, dignifies 981 00:35:04,560 --> 00:35:06,729 configurator for today to stop 982 00:35:06,730 --> 00:35:08,979 when we get the signal from 983 00:35:08,980 --> 00:35:11,149 the, um, entrance 984 00:35:11,150 --> 00:35:13,089 transmitter with the correct serial 985 00:35:13,090 --> 00:35:15,549 number. So if, uh, Michaels 986 00:35:15,550 --> 00:35:16,689 presses the button again. 987 00:35:19,780 --> 00:35:22,599 The door will open and we get, um, 988 00:35:22,600 --> 00:35:25,519 the package we need for our calculations, 989 00:35:25,520 --> 00:35:27,609 so this would be the packet and 990 00:35:27,610 --> 00:35:29,649 now we have a script that calculates 991 00:35:29,650 --> 00:35:30,999 everything we need. 992 00:35:31,000 --> 00:35:32,679 So appears to pick out. 993 00:35:32,680 --> 00:35:34,749 We get that as input for 994 00:35:34,750 --> 00:35:35,959 our script. 995 00:35:35,960 --> 00:35:38,019 Um, it shows us the serial number 996 00:35:38,020 --> 00:35:40,809 and it calculates the communication key. 997 00:35:40,810 --> 00:35:42,969 Uh, it decrypt the package, 998 00:35:42,970 --> 00:35:45,369 uh, which we do not show because, 999 00:35:45,370 --> 00:35:47,199 uh, we agreed to not disclose the 1000 00:35:47,200 --> 00:35:49,389 structure of, uh, packet. 1001 00:35:50,740 --> 00:35:53,109 So we just showed the counter value, 1002 00:35:53,110 --> 00:35:54,759 the current count, the value. 1003 00:35:54,760 --> 00:35:57,189 Uh, we increase it by one, 1004 00:35:57,190 --> 00:35:59,529 then we can encrypt the packet 1005 00:35:59,530 --> 00:36:01,899 again with the key and 1006 00:36:01,900 --> 00:36:04,299 we, uh, frame it and put it into a frame. 1007 00:36:04,300 --> 00:36:06,489 So it's, uh, ready to be transmitted. 1008 00:36:07,930 --> 00:36:10,239 So with another script, we can 1009 00:36:10,240 --> 00:36:13,459 transmit the packet with our radio. 1010 00:36:13,460 --> 00:36:15,519 So if I press the button, the 1011 00:36:15,520 --> 00:36:18,109 door should open without 1012 00:36:18,110 --> 00:36:19,889 my kids doing anything. 1013 00:36:19,890 --> 00:36:21,249 So let's see if that works. 1014 00:36:33,880 --> 00:36:35,979 And now we can again 1015 00:36:35,980 --> 00:36:38,109 start up the and see what happens 1016 00:36:38,110 --> 00:36:39,849 if Marcus presses the button of his 1017 00:36:39,850 --> 00:36:40,850 remote again. 1018 00:36:45,110 --> 00:36:47,239 So we actually get the packet and it's 1019 00:36:47,240 --> 00:36:49,699 exactly the same as we calculated. 1020 00:36:49,700 --> 00:36:51,919 And in addition to that, the door didn't 1021 00:36:51,920 --> 00:36:54,169 move because it just got 1022 00:36:54,170 --> 00:36:56,289 the packet and it doesn't work to replace 1023 00:36:56,290 --> 00:36:58,549 the attack. So the counter 1024 00:36:58,550 --> 00:37:00,289 has to be counted up one more time. 1025 00:37:00,290 --> 00:37:02,089 So if you press the button again, the 1026 00:37:02,090 --> 00:37:03,109 double move again. 1027 00:37:07,360 --> 00:37:08,360 It works again. 1028 00:37:09,600 --> 00:37:11,969 OK, that's for our live demo, 1029 00:37:11,970 --> 00:37:14,189 and Marcus will continue with 1030 00:37:14,190 --> 00:37:15,599 our impact assessment. 1031 00:37:16,620 --> 00:37:17,620 Thanks. 1032 00:37:22,110 --> 00:37:24,929 But can you switch over once again? 1033 00:37:24,930 --> 00:37:26,879 Yeah, thank you. 1034 00:37:26,880 --> 00:37:28,949 OK, so after we found out, 1035 00:37:28,950 --> 00:37:31,169 uh, the, uh, the winnability, we 1036 00:37:31,170 --> 00:37:33,449 wanted to do an impact assessment 1037 00:37:33,450 --> 00:37:35,729 as well. So what we did is, uh, 1038 00:37:35,730 --> 00:37:38,159 we we we did an observation 1039 00:37:38,160 --> 00:37:40,259 and we we saw that the serial 1040 00:37:40,260 --> 00:37:42,419 numbers of the, uh, of the of 1041 00:37:42,420 --> 00:37:44,759 the same model had transmitters 1042 00:37:44,760 --> 00:37:46,869 that we bought at the same time 1043 00:37:46,870 --> 00:37:48,869 were close to each other. 1044 00:37:48,870 --> 00:37:51,119 So we made the assumption that 1045 00:37:51,120 --> 00:37:53,189 there are sequential, uh, 1046 00:37:53,190 --> 00:37:55,049 serial numbers. 1047 00:37:55,050 --> 00:37:57,299 And by having a look at those serial 1048 00:37:57,300 --> 00:37:59,369 numbers, our assumption is that 1049 00:37:59,370 --> 00:38:02,369 there are probably millions of devices 1050 00:38:02,370 --> 00:38:03,359 in the field. 1051 00:38:03,360 --> 00:38:05,189 But of course, this is only our 1052 00:38:05,190 --> 00:38:07,529 assumption how this serial number, 1053 00:38:07,530 --> 00:38:08,729 uh, scheme works. 1054 00:38:08,730 --> 00:38:10,829 And we are really not sure if the our 1055 00:38:10,830 --> 00:38:12,239 guest is correct. 1056 00:38:12,240 --> 00:38:14,429 Next big question is how can we 1057 00:38:14,430 --> 00:38:16,259 fix the vulnerability? 1058 00:38:16,260 --> 00:38:18,239 Yeah, it's actually rather easy. 1059 00:38:18,240 --> 00:38:20,819 Um, as I mentioned, right now, 1060 00:38:20,820 --> 00:38:22,709 all the hand transmitters to share the 1061 00:38:22,710 --> 00:38:24,899 very same initial random seat. 1062 00:38:24,900 --> 00:38:27,149 And the solution, the security fix, 1063 00:38:27,150 --> 00:38:29,279 is just that each hand 1064 00:38:29,280 --> 00:38:31,499 transmitter would need to have 1065 00:38:31,500 --> 00:38:33,809 its own individual random 1066 00:38:33,810 --> 00:38:34,949 seed value. 1067 00:38:34,950 --> 00:38:37,109 And since this random seed value 1068 00:38:37,110 --> 00:38:39,209 is, in this case, no longer than 1069 00:38:39,210 --> 00:38:41,669 shared between old hand transmitters, 1070 00:38:41,670 --> 00:38:43,739 and Ataca would also no longer 1071 00:38:43,740 --> 00:38:46,109 know the initial random seed and 1072 00:38:46,110 --> 00:38:48,209 he would, uh, need to start, 1073 00:38:48,210 --> 00:38:49,949 uh, like something like a brute force 1074 00:38:49,950 --> 00:38:52,379 attack on this random seed. 1075 00:38:52,380 --> 00:38:54,449 Yeah. What did we do when we found 1076 00:38:54,450 --> 00:38:56,789 out about an ability, um, 1077 00:38:56,790 --> 00:38:59,609 as it says here, in case of vulnerability 1078 00:38:59,610 --> 00:39:01,379 disclosed responsibly? 1079 00:39:01,380 --> 00:39:02,380 So we did is 1080 00:39:03,450 --> 00:39:05,519 we follow the responsible disclosure 1081 00:39:05,520 --> 00:39:07,709 process at the beginning of 1082 00:39:07,710 --> 00:39:10,229 October. We involve the Austrian national 1083 00:39:10,230 --> 00:39:12,359 search team as a coordinator. 1084 00:39:12,360 --> 00:39:14,249 And we reported the security 1085 00:39:14,250 --> 00:39:16,619 vulnerability to them, including 1086 00:39:16,620 --> 00:39:19,139 our security advisory and including 1087 00:39:19,140 --> 00:39:21,389 the suggested security fix so 1088 00:39:21,390 --> 00:39:23,459 that the manufacturer can fix the issue. 1089 00:39:23,460 --> 00:39:25,769 And at the end of October, 1090 00:39:25,770 --> 00:39:28,409 we actually received, uh, confirmation 1091 00:39:28,410 --> 00:39:30,359 from the national soccer team that the 1092 00:39:30,360 --> 00:39:32,459 manufacturer has received the 1093 00:39:32,460 --> 00:39:33,389 information. 1094 00:39:33,390 --> 00:39:35,609 And in fact, he has also understood the 1095 00:39:35,610 --> 00:39:36,839 security problem. 1096 00:39:36,840 --> 00:39:39,299 Yeah, after that, we had various 1097 00:39:39,300 --> 00:39:41,369 email and phone call exchanges with the 1098 00:39:41,370 --> 00:39:42,509 manufacturer. 1099 00:39:42,510 --> 00:39:44,399 And at the end of November, they also 1100 00:39:44,400 --> 00:39:47,189 visited us in our lab and 1101 00:39:47,190 --> 00:39:49,289 we presented the winnability once 1102 00:39:49,290 --> 00:39:51,419 again and also that suggested 1103 00:39:51,420 --> 00:39:52,739 security fix. 1104 00:39:52,740 --> 00:39:55,289 And in December, we also received 1105 00:39:55,290 --> 00:39:57,419 information from them that that 1106 00:39:57,420 --> 00:39:59,519 they have now implemented a 1107 00:39:59,520 --> 00:40:02,219 security fix and that they are currently 1108 00:40:02,220 --> 00:40:03,270 in the testing phase. 1109 00:40:05,040 --> 00:40:07,229 Yeah, to conclude to 1110 00:40:07,230 --> 00:40:09,839 talk, um, we presented 1111 00:40:09,840 --> 00:40:11,939 a viable methodology that can 1112 00:40:11,940 --> 00:40:14,129 be used if you want to 1113 00:40:14,130 --> 00:40:17,109 analyze, uh, wireless RF system, 1114 00:40:17,110 --> 00:40:19,739 uh, something like similar to this one 1115 00:40:19,740 --> 00:40:21,389 that, for instance, also uses 1116 00:40:21,390 --> 00:40:23,129 microcontrollers. 1117 00:40:23,130 --> 00:40:25,379 Um, of course, we believe 1118 00:40:25,380 --> 00:40:27,489 that if you are, uh, 1119 00:40:27,490 --> 00:40:30,209 a manufacturer and and you create 1120 00:40:30,210 --> 00:40:32,519 something like like this, so you 1121 00:40:32,520 --> 00:40:33,869 won't really want to have a secure 1122 00:40:33,870 --> 00:40:36,179 system, we believe that is important 1123 00:40:36,180 --> 00:40:38,549 to do independent security audits. 1124 00:40:38,550 --> 00:40:40,649 Um, so they can be really an 1125 00:40:40,650 --> 00:40:42,899 essential tool to achieve a high level 1126 00:40:42,900 --> 00:40:45,209 security, um, because 1127 00:40:45,210 --> 00:40:47,459 then, you know, you have this external 1128 00:40:47,460 --> 00:40:50,039 viewpoint and if vulnerabilities 1129 00:40:50,040 --> 00:40:52,109 can be found, you can then fix them 1130 00:40:52,110 --> 00:40:54,419 at an early point. 1131 00:40:54,420 --> 00:40:56,789 Yeah. Besides, if it 1132 00:40:56,790 --> 00:40:58,919 comes to hardware and hardware 1133 00:40:58,920 --> 00:41:01,199 security, it's also pretty 1134 00:41:01,200 --> 00:41:03,269 good if you have a hardware security lab 1135 00:41:03,270 --> 00:41:05,459 at hand. So as you saw, you 1136 00:41:05,460 --> 00:41:07,829 have a lot of methods that can be used. 1137 00:41:07,830 --> 00:41:09,629 So it's not that you have a system in 1138 00:41:09,630 --> 00:41:11,429 front of you and you want to do a 1139 00:41:11,430 --> 00:41:13,949 security audit and then you say, OK, 1140 00:41:13,950 --> 00:41:16,469 um, now I'm stuck. 1141 00:41:16,470 --> 00:41:18,149 I cannot read the FERMA. 1142 00:41:18,150 --> 00:41:20,639 I cannot do a security audit. 1143 00:41:20,640 --> 00:41:23,369 And so if you have more options, it's 1144 00:41:23,370 --> 00:41:24,589 just easier. 1145 00:41:24,590 --> 00:41:26,399 Well, yeah. 1146 00:41:26,400 --> 00:41:27,929 You also saw that we follow the 1147 00:41:27,930 --> 00:41:30,749 responsible disclosure process. 1148 00:41:30,750 --> 00:41:32,789 So in addition to following the process, 1149 00:41:32,790 --> 00:41:34,919 we also try to support the 1150 00:41:34,920 --> 00:41:37,199 manufacturer, uh, in 1151 00:41:37,200 --> 00:41:38,849 understanding and also in fixing the 1152 00:41:38,850 --> 00:41:40,079 vulnerability. 1153 00:41:40,080 --> 00:41:42,149 Yeah. And last but not least, we 1154 00:41:42,150 --> 00:41:44,939 will also publish the security advisory 1155 00:41:44,940 --> 00:41:46,589 today after this talk. 1156 00:41:46,590 --> 00:41:49,769 We already have KVI, ID 1157 00:41:49,770 --> 00:41:51,959 and the CBO score, 1158 00:41:51,960 --> 00:41:54,539 and in this case, the CBO score 1159 00:41:54,540 --> 00:41:55,989 is pretty high. 1160 00:41:55,990 --> 00:41:58,149 Um, and we believe it is also 1161 00:41:58,150 --> 00:42:00,739 a significant, uh, vulnerability. 1162 00:42:01,860 --> 00:42:03,989 OK, so that was 1163 00:42:03,990 --> 00:42:05,129 it for our talk. 1164 00:42:05,130 --> 00:42:07,289 I hope. I hope you enjoyed it. 1165 00:42:07,290 --> 00:42:09,239 And if you have any questions. 1166 00:42:18,510 --> 00:42:20,249 Yeah, so if you have any questions, we 1167 00:42:20,250 --> 00:42:22,679 have four microphones as one, two, 1168 00:42:22,680 --> 00:42:25,199 three and four line up behind 1169 00:42:25,200 --> 00:42:27,299 those questions just 1170 00:42:27,300 --> 00:42:29,669 to define what a question actually is, 1171 00:42:29,670 --> 00:42:32,189 is like one or two, one or two sentences 1172 00:42:32,190 --> 00:42:34,619 that actually end with a question mark. 1173 00:42:34,620 --> 00:42:37,259 It is not your life story. 1174 00:42:37,260 --> 00:42:39,359 And with that, I'm going to go to 1175 00:42:39,360 --> 00:42:41,069 microphone one, please. 1176 00:42:41,070 --> 00:42:43,349 Yeah. Thanks for sharing this inside. 1177 00:42:43,350 --> 00:42:45,839 You said that the manufacturer 1178 00:42:45,840 --> 00:42:47,489 has announced a fix for that. 1179 00:42:47,490 --> 00:42:49,649 Does that mean customers are supposed 1180 00:42:49,650 --> 00:42:51,899 to buy new devices or 1181 00:42:51,900 --> 00:42:53,999 will they be able to update them 1182 00:42:54,000 --> 00:42:55,799 or have them exchanged? 1183 00:42:55,800 --> 00:42:57,899 We really don't know what they have 1184 00:42:57,900 --> 00:43:00,229 planned, but we just received 1185 00:43:00,230 --> 00:43:02,399 the feedback that there is a security fix 1186 00:43:02,400 --> 00:43:04,379 now. So I think it will be really up to 1187 00:43:04,380 --> 00:43:06,479 the manufacturer, how 1188 00:43:06,480 --> 00:43:08,579 the how he how he will interact with the 1189 00:43:08,580 --> 00:43:09,580 customers. 1190 00:43:10,650 --> 00:43:12,599 So the Internet has a question for us. 1191 00:43:14,160 --> 00:43:16,289 Yes. And the first question is 1192 00:43:16,290 --> 00:43:18,329 one that occurred pretty early during 1193 00:43:18,330 --> 00:43:20,699 your talk and regarding your 1194 00:43:20,700 --> 00:43:22,889 reverse engineering work, because 1195 00:43:22,890 --> 00:43:25,199 CIBM user noted that it looked 1196 00:43:25,200 --> 00:43:27,419 pretty expensive from a monetary 1197 00:43:27,420 --> 00:43:29,639 and timely point of view, and he 1198 00:43:29,640 --> 00:43:31,739 wants to know who paid for it. 1199 00:43:31,740 --> 00:43:33,899 Yeah, this is this work was actually 1200 00:43:33,900 --> 00:43:35,579 done as a fun project. 1201 00:43:35,580 --> 00:43:37,859 So most of the of the of the work 1202 00:43:37,860 --> 00:43:40,259 that we do is paid work and typically 1203 00:43:40,260 --> 00:43:42,279 it's under non-disclosure agreements. 1204 00:43:42,280 --> 00:43:44,399 So in this case, I couldn't stand here 1205 00:43:44,400 --> 00:43:46,889 and and and and to talk on that. 1206 00:43:46,890 --> 00:43:49,079 So this was just a fun work and it was 1207 00:43:49,080 --> 00:43:50,080 not paid for. 1208 00:43:51,600 --> 00:43:53,759 So microphone one, 1209 00:43:53,760 --> 00:43:56,339 a great talk. 1210 00:43:56,340 --> 00:43:58,919 How many of these garage door openers 1211 00:43:58,920 --> 00:44:01,589 actually use some form of encryption? 1212 00:44:01,590 --> 00:44:03,659 It's something exceptional or is 1213 00:44:03,660 --> 00:44:05,309 is the standard? 1214 00:44:05,310 --> 00:44:07,469 I think, uh, it 1215 00:44:07,470 --> 00:44:09,649 it is, uh, that, 1216 00:44:09,650 --> 00:44:11,759 uh, that the German system, since it 1217 00:44:11,760 --> 00:44:13,859 uses a yes, it's it's 1218 00:44:13,860 --> 00:44:14,849 really an exception. 1219 00:44:14,850 --> 00:44:17,399 So the typical systems that we saw. 1220 00:44:17,400 --> 00:44:19,739 So, uh, few other guys I know, they also 1221 00:44:19,740 --> 00:44:21,539 have garage doors at home. 1222 00:44:21,540 --> 00:44:23,759 And of course, we looked at them with 1223 00:44:23,760 --> 00:44:25,229 a software defined radio. 1224 00:44:25,230 --> 00:44:27,299 And yeah, really typically you 1225 00:44:27,300 --> 00:44:29,519 can find like, uh, static 1226 00:44:29,520 --> 00:44:30,599 messages there. 1227 00:44:30,600 --> 00:44:31,829 There's a static code. 1228 00:44:31,830 --> 00:44:33,599 You just do a replay attack and there is 1229 00:44:33,600 --> 00:44:35,099 nothing. The door goes up. 1230 00:44:35,100 --> 00:44:36,869 And so this is something that we really 1231 00:44:36,870 --> 00:44:38,039 don't have here. 1232 00:44:38,040 --> 00:44:40,439 So I would really say that in general, 1233 00:44:40,440 --> 00:44:42,569 the majority of the systems 1234 00:44:42,570 --> 00:44:44,130 is probably rather weak. 1235 00:44:45,400 --> 00:44:47,709 Thanks for your microphone, 1236 00:44:47,710 --> 00:44:48,849 too. 1237 00:44:48,850 --> 00:44:51,099 So my question is, after 1238 00:44:51,100 --> 00:44:52,779 you broke into the systems, maybe you 1239 00:44:52,780 --> 00:44:54,879 play out with the counter so 1240 00:44:54,880 --> 00:44:56,829 that you can lock the door forever, 1241 00:44:56,830 --> 00:44:58,989 maybe, or it's at the counter 1242 00:44:58,990 --> 00:45:01,069 to the low value or much higher. 1243 00:45:01,070 --> 00:45:02,349 Yeah, yeah. 1244 00:45:02,350 --> 00:45:03,999 In fact, you can do that. 1245 00:45:04,000 --> 00:45:06,219 So there is, uh, there's 1246 00:45:06,220 --> 00:45:08,559 this accepted counter value and 1247 00:45:08,560 --> 00:45:10,539 of course, the, uh, the receiver, in 1248 00:45:10,540 --> 00:45:13,059 order to avoid replay attacks, 1249 00:45:13,060 --> 00:45:15,189 it has to move discount 1250 00:45:15,190 --> 00:45:16,989 window forwards. 1251 00:45:16,990 --> 00:45:19,299 And if you do that by performing 1252 00:45:19,300 --> 00:45:21,369 an attack, you can 1253 00:45:21,370 --> 00:45:23,469 move it, uh, forward 1254 00:45:23,470 --> 00:45:24,879 way too much. 1255 00:45:24,880 --> 00:45:27,189 And then you can press for like 1256 00:45:27,190 --> 00:45:29,289 hundreds of times on the hand transmit 1257 00:45:29,290 --> 00:45:30,279 and nothing will happen. 1258 00:45:30,280 --> 00:45:32,509 We had that right, uh, right before 1259 00:45:32,510 --> 00:45:34,809 when we did the stage demo, I pressed 1260 00:45:34,810 --> 00:45:36,009 the hand transmitter. 1261 00:45:36,010 --> 00:45:38,289 And since the frame had been used 1262 00:45:38,290 --> 00:45:39,699 already and the counter where you had 1263 00:45:39,700 --> 00:45:41,139 been used already, it didn't work. 1264 00:45:43,500 --> 00:45:45,719 So microphone one, thank 1265 00:45:45,720 --> 00:45:46,720 you for your work. 1266 00:45:47,450 --> 00:45:49,769 Sorry if I misunderstand, but so 1267 00:45:49,770 --> 00:45:52,319 the fix principally is to change these 1268 00:45:52,320 --> 00:45:54,489 globally static initialization vector 1269 00:45:54,490 --> 00:45:56,369 or random seed, the first one from a 1270 00:45:56,370 --> 00:45:59,279 static value to a per 1271 00:45:59,280 --> 00:46:01,590 device, and thus that kind of purchasing 1272 00:46:02,820 --> 00:46:05,069 affair. How does that stop a targeted 1273 00:46:05,070 --> 00:46:06,779 attack where the attacker just listens 1274 00:46:06,780 --> 00:46:08,489 for a specific individual and waits for 1275 00:46:08,490 --> 00:46:11,099 that particular initialization vector? 1276 00:46:11,100 --> 00:46:12,479 Yeah, the attacker wouldn't know this 1277 00:46:12,480 --> 00:46:13,649 initialization vector. 1278 00:46:13,650 --> 00:46:15,749 Where where did it get where would he get 1279 00:46:15,750 --> 00:46:17,979 this? The initial random seed. 1280 00:46:17,980 --> 00:46:20,069 So, I mean, if the manufacturer 1281 00:46:20,070 --> 00:46:22,019 would know the initial random seed in 1282 00:46:22,020 --> 00:46:24,389 case, uh, the the seed 1283 00:46:24,390 --> 00:46:26,469 would be stored there, then 1284 00:46:26,470 --> 00:46:28,199 yeah. Maybe you can you can get the seed 1285 00:46:28,200 --> 00:46:30,329 there. But if this 1286 00:46:30,330 --> 00:46:32,579 is stored only in the 1287 00:46:32,580 --> 00:46:34,829 transmitter, then nobody would know 1288 00:46:34,830 --> 00:46:36,749 the initial random seed. 1289 00:46:36,750 --> 00:46:39,139 So you would have to like to 1290 00:46:39,140 --> 00:46:40,859 have no expression on it and then you 1291 00:46:40,860 --> 00:46:42,719 need it. But since you then would have 1292 00:46:42,720 --> 00:46:44,369 physical access. 1293 00:46:44,370 --> 00:46:45,509 Yeah. 1294 00:46:45,510 --> 00:46:47,789 So if I was to purchase the product 1295 00:46:47,790 --> 00:46:49,859 and maybe it had a backup key, 1296 00:46:49,860 --> 00:46:51,689 so two two transmitters and one of them 1297 00:46:51,690 --> 00:46:54,019 went missing, that sort of thing, 1298 00:46:54,020 --> 00:46:56,099 they would they would have individual 1299 00:46:56,100 --> 00:46:58,229 random, uh, random seed and 1300 00:46:58,230 --> 00:46:59,429 not not the same one. 1301 00:46:59,430 --> 00:47:00,430 OK, thank you. 1302 00:47:01,650 --> 00:47:03,849 The Internet had a question and yes, 1303 00:47:03,850 --> 00:47:05,999 D.A. wants to know that 1304 00:47:06,000 --> 00:47:08,459 if the seat is random and 1305 00:47:08,460 --> 00:47:10,789 does that mean that you can request 1306 00:47:10,790 --> 00:47:13,079 a new forms into an existing 1307 00:47:13,080 --> 00:47:15,179 systems since the receiver would 1308 00:47:15,180 --> 00:47:16,709 know the random sete? 1309 00:47:16,710 --> 00:47:19,319 Um, no, you could you could register 1310 00:47:19,320 --> 00:47:21,749 them. That would work just fine. 1311 00:47:21,750 --> 00:47:23,879 We did not have a look at how the 1312 00:47:23,880 --> 00:47:26,039 how the actual, uh, pairing 1313 00:47:26,040 --> 00:47:28,109 process works because it is 1314 00:47:28,110 --> 00:47:29,969 only done one time. 1315 00:47:29,970 --> 00:47:31,709 But, uh, yeah. 1316 00:47:31,710 --> 00:47:33,959 In general, uh, 1317 00:47:33,960 --> 00:47:36,149 regardless of the seat in there, 1318 00:47:36,150 --> 00:47:38,549 there has to be some kind of exchange 1319 00:47:38,550 --> 00:47:41,099 where, uh, the key is compared 1320 00:47:41,100 --> 00:47:43,349 to the, uh, to the receiver. 1321 00:47:43,350 --> 00:47:44,570 So that wouldn't be a problem. 1322 00:47:46,870 --> 00:47:47,870 Microphone one. 1323 00:47:48,740 --> 00:47:51,129 And the problem was the 1324 00:47:51,130 --> 00:47:53,229 not random seat, if you get 1325 00:47:53,230 --> 00:47:55,569 random seats, you pointed out the the 1326 00:47:55,570 --> 00:47:57,639 only thing that would be 1327 00:47:57,640 --> 00:47:59,589 left to crack the system was to brute 1328 00:47:59,590 --> 00:48:01,179 force this 80 bit. 1329 00:48:01,180 --> 00:48:03,639 Can you give us a hint how much 1330 00:48:03,640 --> 00:48:05,290 how much time it would take to do so? 1331 00:48:06,820 --> 00:48:08,499 Yeah, 80 pages pretty long. 1332 00:48:08,500 --> 00:48:10,569 So even for instance, we 1333 00:48:10,570 --> 00:48:12,909 have fun. We have an FPGA cluster 1334 00:48:12,910 --> 00:48:15,489 to explore some of these questions. 1335 00:48:15,490 --> 00:48:17,769 And we did some some some some 1336 00:48:17,770 --> 00:48:20,019 some, uh, similar algorithms 1337 00:48:20,020 --> 00:48:21,999 on it. And yeah. 1338 00:48:22,000 --> 00:48:24,159 So 80 bits would still take 1339 00:48:24,160 --> 00:48:26,919 at least a few months or so. 1340 00:48:26,920 --> 00:48:27,969 So we are. 1341 00:48:30,430 --> 00:48:31,430 At least 1342 00:48:32,950 --> 00:48:35,109 microphone one, again, I 1343 00:48:35,110 --> 00:48:37,299 thank you for work, actually, um, 1344 00:48:37,300 --> 00:48:39,669 the thing is, when you jam 1345 00:48:39,670 --> 00:48:42,399 the garage door with an SDR 1346 00:48:42,400 --> 00:48:45,279 transmitter and like, 1347 00:48:45,280 --> 00:48:47,439 just record decode 1348 00:48:47,440 --> 00:48:50,139 Devore's code from the 1349 00:48:50,140 --> 00:48:52,449 transmitter, from the transmitter, 1350 00:48:52,450 --> 00:48:54,519 and you just do replay a check. 1351 00:48:54,520 --> 00:48:57,249 Will it work or just 1352 00:48:57,250 --> 00:48:58,239 from the rolling code? 1353 00:48:58,240 --> 00:48:59,709 It doesn't work. 1354 00:48:59,710 --> 00:49:02,229 If, um, so 1355 00:49:02,230 --> 00:49:04,659 if you would press the button, 1356 00:49:04,660 --> 00:49:06,429 you send out a valid frame. 1357 00:49:06,430 --> 00:49:08,649 And if this frame never reaches 1358 00:49:08,650 --> 00:49:10,869 the receiver, you could use this 1359 00:49:10,870 --> 00:49:13,149 frame at a later point of time and 1360 00:49:13,150 --> 00:49:14,619 open up the door. 1361 00:49:14,620 --> 00:49:15,909 Yeah. OK, thanks. 1362 00:49:15,910 --> 00:49:18,369 But the thing is, when the 1363 00:49:18,370 --> 00:49:20,739 like when the frame isn't used 1364 00:49:20,740 --> 00:49:23,029 by the new frame was sent, 1365 00:49:23,030 --> 00:49:25,329 will it the old frame still be active 1366 00:49:25,330 --> 00:49:27,549 or no. In this case the frame would 1367 00:49:27,550 --> 00:49:30,249 become invalid because you have uh 1368 00:49:30,250 --> 00:49:32,499 a new account of value then and 1369 00:49:32,500 --> 00:49:34,659 all countervail use before that are 1370 00:49:34,660 --> 00:49:35,679 invalid. 1371 00:49:35,680 --> 00:49:36,680 OK, thanks. 1372 00:49:37,590 --> 00:49:39,689 So the Internet and, yes, 1373 00:49:39,690 --> 00:49:41,999 rather popular question, and you noted 1374 00:49:42,000 --> 00:49:44,099 that there will be fixes and that 1375 00:49:44,100 --> 00:49:46,679 the devices will be updated and 1376 00:49:46,680 --> 00:49:48,629 do the other devices updated 1377 00:49:48,630 --> 00:49:50,909 automatically or do they do that? 1378 00:49:50,910 --> 00:49:53,099 Does the company have to go to the garage 1379 00:49:53,100 --> 00:49:54,869 doors? And if they're updated 1380 00:49:54,870 --> 00:49:56,579 automatically, other garage doors 1381 00:49:56,580 --> 00:49:59,039 connected to the Internet now. 1382 00:49:59,040 --> 00:50:01,439 So the needle, the doors, 1383 00:50:01,440 --> 00:50:03,929 nor the transmitters are connected 1384 00:50:03,930 --> 00:50:05,069 to the Internet. 1385 00:50:05,070 --> 00:50:07,199 So we really don't know what 1386 00:50:07,200 --> 00:50:09,689 the manufacturer has in mind here, 1387 00:50:09,690 --> 00:50:12,329 but they cannot be updated automatically 1388 00:50:12,330 --> 00:50:13,330 online. 1389 00:50:15,090 --> 00:50:18,179 Microphone one, are there 1390 00:50:18,180 --> 00:50:20,579 are there any other findings in the code 1391 00:50:20,580 --> 00:50:22,859 that you have dumped, for 1392 00:50:22,860 --> 00:50:24,929 example, synchronization code 1393 00:50:24,930 --> 00:50:27,299 or something like that, updating 1394 00:50:27,300 --> 00:50:29,669 firmware or something like that? 1395 00:50:29,670 --> 00:50:32,309 No, we just had a look at at the scheme 1396 00:50:32,310 --> 00:50:33,359 that is used. 1397 00:50:33,360 --> 00:50:35,759 And since we we we already found 1398 00:50:35,760 --> 00:50:37,979 this vulnerability in 1399 00:50:37,980 --> 00:50:40,169 in the scheme, how it is, uh, like, 1400 00:50:40,170 --> 00:50:42,569 uh, how it is found on 1401 00:50:42,570 --> 00:50:44,039 the systems in the field. 1402 00:50:44,040 --> 00:50:45,209 We stopped at this point. 1403 00:50:46,340 --> 00:50:47,340 OK, thank you. 1404 00:50:48,850 --> 00:50:50,469 And I think we don't have any more 1405 00:50:50,470 --> 00:50:52,779 questions unless somebody is really, 1406 00:50:52,780 --> 00:50:55,029 really quick, so I'm really glad 1407 00:50:55,030 --> 00:50:57,669 that my garage does not have an automated 1408 00:50:57,670 --> 00:50:59,829 system. And with that, I would like 1409 00:50:59,830 --> 00:51:02,229 you to help me in thanking 1410 00:51:02,230 --> 00:51:04,329 Marcus and Marcus for this fantastic talk 1411 00:51:04,330 --> 00:51:06,189 and make this really count. 1412 00:51:06,190 --> 00:51:07,190 Thank you.