 Thank you everyone for coming. Before I start, I just want to make a big thank you to Johannes who very kindly lent me his laptop the last-minute thing but It's really helped me. It's his first camp and literally the first thing he did when he came to camp was sign up to be an angel and do volunteering so I'm Really inspirational there so I'm Dan Hagen This for me is my second camp I came to the camp in 2011 and Really that that opened my mind to Hardware hacking as something that could I could possibly do Literally came to the camp with no idea of which end of the soldering iron to hold basically and And so in the subsequent three years or so I quit my job and I now run a company along with my family are doing a Wireless control for model railways and this talk has really come out of the research that went into the power supply side of that But more importantly this talk is really to sort of give back to this community You know Just something to say. Thank you for the sort of the things that I've learned from this community in that time So why is it why is the talk called singing capacitors and winding inductors? Well, these are the key components that will generate the signals that we can use to perform these side-channel attacks And we'll see actually that they're gonna that they almost certainly are leaking really really important information And they probably shouldn't so I just want to take you back now to 2013 Snowden has just revealed himself to be the NSA leaker and a question that's on lots of people's minds is Does encryption work and his answer really sent shockwaves through the crypto community? But there is a sting in the tail with this This answer and that is this question about what it means to be to have properly implemented cryptography systems So let's consider all the things that need to be put into a Usable system for a real-world user and this is this slide really illustrates that that Engineering challenge and as you can see there's only really one solve problem and the other problems get progressively harder as we go down the stack Today, we're just gonna focus on implementation. The other ones are talks in their own rights and before we look at that Let's just have a Look at protocols and understand what's kind of missing from protocols That would lead us to consider implementation in more detail so It wouldn't be a cryptography talk if we didn't include our old friends Alice and Bob His Alice and Bob and they want to communicate with each other and they want their protocols to ensure Certain property that they have certain properties for instance that a any Easter up as such as Eve can't Recover information just simply by listening to the the traffic going between them similarly a malicious attacker such as Mallory Is not able to pretend to be Alice and Bob to the other of the two parties So what's missing from this? Well consider what happens at Bob Bob's end of the Communications channel so Really, it's not Bob that's doing the communication, but it's some Device on his behalf Messages go into that device and messages come out of it But essentially the assumption is that is a black box And also that that black box contains a secret key that never leaves that that black box now Really in reality that that is a machine as a machine that has Internal machinery and as we know about machinery That can generate all sorts of signals Okay, and these things are known as side channels and here's just a few of them and You might notice that quite a few of these ones towards the bottom here are actually ones that have appeared in the last few months So this is a present problem that we're facing now This is a problem that has been around for quite some time and actually when the first The first description of this comes from this book here called spy catcher And it concerns a cypher machine known as a haggling and this was used by several governments At the time in particular the Egyptian government I just want to read a few quotes from this because I think it's sort of lays Lays the sort of foundations for understanding how these how these attacks might actually be used in in kind of real Situations and also how they work Under the hood as it were so let me just read a few quotes from that if I may So operation Holt was begun in the early 1950s when GC HQ Asked MI5 if they could help obtain intelligence about diplomatic ciphers being used in London GC HQ hoped that one of the M of MI5 agents might be able to steal some of the way cipher tape Which they could then use to attack the cipher I'm sure that with the new high sensitivity microphones We have it must be possible to get something out of a cipher machine They have to be reset every morning by the cipher clerk Suppose we could pick up the sound of the new settings being made I Felt sure that that GC HQ will be able to use the sounds to determine What is known as the core position of the machine and from there being a position to attack the cipher if We could get the settings of three Possibly four wheels of the machine. They would have broken the cipher I Installed a series of high sensitivity microphones at various distances from the haggling as well as a probe microphone in the wall behind it Each microphone was connected in turn to an oscilloscope so that the sounds it recorded were translated into visual readings. I Checked with a post office investigation unit and obtained a complete list of telephone installations at the embassy There appeared to be one either inside or very close to the cipher complex So we decided to install special facilities on the telephone and use the microphone to capture the sounds of the cipher machine The post office faulted the telephone system and we waited for the Egyptians to call the post office The cipher room was in an annex the haggling clattering away inside Three cipher clerks were busy operating the telex machine and processing the diplomatic cables I began to extend the cable Slowly turning my back on him so that the engineer could slip a small washer into the receiver to modify it for special facilities I placed the telephone back on top of his desk not more than two feet from the haggling machine. I Hurried back from the Egyptian embassies the seventh floor to monitor the sounds from the receiver It seemed at first to be an electronic haze But after some fine tuning the clatter of the haggling was clearly audible The new technique of breaking ciphers by detecting intelligence about the machine through technical surveillance became known by the code word engulf It was a vital breakthrough the combined mi-5 gchq operation Enabled us to read the Egyptian cipher in the London embassy through the the Suez crisis So there's a question that is left As a result of that which is how did they get from the sounds that the The machine made to a determination of the positions of these wheels and We can perhaps look to see a more modern equivalent of this And that is something known as keyboard emanations So this is the idea that you can take a keyboard and the sounds that it makes and then determine from those sounds for instance What passwords are being entered into the keyboard? So one of the earliest papers on this used a neural network for? classifying key presses and so I looked to see if I could actually do a similar kind of thing Perhaps on a slightly smaller scale. So I took a laptop and hit the Enter key makes a different sound to the That's actually the space key the space key and the enter key I did that until I was basically bored and so I've got some training data there essentially Then I then compute an FFT over each of the individual key presses and create a neural network and my output from a neural network is one for say space zero for enter and I use the training data that I've got there to automatically train the neural network to to do the classification So that's actually look at the data that it generated so on the top line as you can see it's the enter key and on the bottom of the space key and You can see on the left hand column the time domain. It's fairly hard to sort of Distinguish the top and the bottom but when we look in the frequency domain on the right you can very clearly see that there is a Distinguishable patterns between the enter key and the space key and it's those patterns the neural network is actually looking at each One of the FFT bins as they're called is being used as an input to the neural network So how well does that are a little toy example do well? fairly well It's I'm pretty happy with that and I could probably go on now to to actually do full password recovery and there are more sophisticated techniques using hidden mark-off models hidden mark-off models and so on this note the bottom goes for the code that Comes as well for the rest of this It will be online later. If you really need it now come talk to me after the talk Okay, so we've just looked at passwords, but this talk is really about cryptography and then acoustic cryptanalysis, but actually acoustic cryptanalysis really is a An extension of a type of attack known as a power analysis attack So we can learn quite a lot about acoustic cryptanalysis by taking a look first of all at power analysis attacks And you'll see there's a very slight change that's required to go from one to the other So let's have a look and see how power analysis attacks works. So consider What's going on internally inside a machine? This is a not gate. It's a CMOS not gate Which means the that the transistors are complementary when one is switched on the other one switched off So we tie the input to VCC or logic one and current then is Rushes into the gates of these two transistors, but eventually goes towards zero and Current is then sunk from downstream gates. Okay, so then what happens when we connect the input to ground So that that current then is sunk down to ground from those those gates and we then Source current to the downstream Logic gates. Okay, so the take-home message from this is Power is only consumed when switching occurs. Okay, or to put it in other terms If data doesn't change from clock cycle to clock cycle We expect there to be proportionately less power consumption than that than it would be if data was changing Okay, so how can we exploit this this property? Well, let's look at a toy example here. Okay, and in this toy example We'll focus first of all on the second step. Okay, so we're going to measure The power consumption of this last operation, which is taking a constant register r0 and clearing out register r1 Okay, and what does that do? Well? Basically, the power consumption will be proportional to the number of bits that are set in Z Now how are we going to use this? Well at the top our first operation is taking the exclusive or register r3 and R2 which is values x and c now x is supposed to sound for something unknown something that doesn't leave the machine Either the key or something derived from the key and c is something chosen or it's deciphered text But it's something that we can actually Change in the system. Okay, so that's let's consider then What the operation of exclusive or which is what's being used here actually does so when? C is zero when a bit of C is zero X and Z are the same, but when C is one or set X and Z are The opposites of each other so we basically have a mechanism here for flipping the bits in X Putting them into Z and I'm measuring how many bits are in Z. Okay, so let's look at an example here In this example, we start off with C is all zeros and this gives us a baseline so in this example Two bits are set so we know that there are two bits set in X Okay, we first flip the the least significant bit of C and that results in three bits So what does that mean? Okay? Well the only bit that has changed in Z is the least significant bit and we now know that that there is One more bit set than there was in the previous one So that must mean that that is one and we know that C is doing is flipping the value in X So we have our first value in X that must be a zero and if you look at the the remaining Measurements you can essentially read off the value. It's going to be zero one one zero. So there we go That's toy example. Is this practical? Not really because it requires us to know a lot of internal details about this machine and also We need to get the timing quite precise and actually if you think about a modern process It can allow out-of-order execution and all sorts of other things So this is not going to be practical, but it actually It contains within it the sort of main ideas for a lot of the the tax So let's look at a more practical and this is an actual Setup that I put together. So what did I do? I used a an AVR microcontroller. I Created a naive implementation of AES now. Maybe you don't know what AES is We'll talk about that a little bit more detail later on but just for now some encryption algorithm, okay? We use one pin of the microcontroller and we sample that and whether that was set or not that sets or Resets the least significant bit of the key that we're using Okay, so this allows us to just see the difference between what difference that actually makes we use a What they call a current sense resistor a very small value resistor and we use that to measure the current going through that resistor And we use a fairly standard digital storage oscilloscope and a bit of Python scripting To to get that data and then finally we use one pin of the microcontroller to synchronize together all the the traces that we're going to to measure so just a zoom in on that stat current sense was the notice how small this loop is that's just a Minimize the amount of Noise that might go into the system. Okay, so this is the data that we gathered. So we've gathered 2000 runs for and the top right. It's when the least significant bit is zero I should mention also that the the key is all zeros and the the plain text is only Only doing the encryption not decryption zone the plain text is also all zeros Okay, in this in this particular case, but the only difference between the the the top left and the top right is that? that bit is either zero on the one hand or one on the other hand so What you can see in the in the bottom left is the difference between these two now if you think about it if the data Did not cause changes in the in the power consumption that should be a straight line Or as close to a straight line as we could we could imagine but it's not we actually see some spikes in there and those spikes indicate where Data differences result in power differences. Okay, so let's just zoom in a little bit more on on what's going here. So you'll notice here the Unfortunately the the the axes are going in the wrong direction. This is where that the the processor is in sleep mode This is where the process is actually doing encryption This little spike indicates where we sample that pin to determine whether or not we set or unset that least significant bit And as you can see there, that's the that's the difference between the two so looking zooming in it now on the The detail of those top two what you can actually see here if you know a little bit about a yes You might be able to recognize the first section is what's known as key expansion And then you can see individual rounds of encryption happening there. So that gives us timing information So even in a very simple setup like this We can determine lots and lots of information from just from looking at the power power consumption. Okay, so this this type of Setup is used in something known as differential power analysis So the basic idea with that very similar to what we did there except we put lots and lots of data into into our system lots of input into our system and then we We look to see What we do we make a some? Hypothesis about what the key might potentially be okay, and based on those hypotheses We infer some changes that might be observable. So that might mean that the most or the least significant bit or whichever bit it is maybe set or unset and we Use that to partition our set of traces and if our hypothesis is correct Then the difference between those two traces will be much greater than it will be in the other cases and the more traces we take the the More significant that those differences become if we pick the right hypothesis. Okay, so that's differential power analysis And we've just looked there at a symmetric crypto system. Let's look at Something known as module exponentiation, which is required for RSA public key crypto system. So you might be looking at this mod n business. You think and what does that mean? Okay, well, you're all experts in that because if I was to say to you The first day of the year is a Monday. Tell me which day a day of the week the 100th day is well, you'd be computing 100 mod 7 What you do there is you repeatedly subtract 7 from 100 until the value you had was less than 7 that's all mod does However, you don't need to know that really to understand what's going on here because it's the exponentiation part We we kind of interested in now If I were to give you the value y in this case and I was to say what is the value of x? That is it turns out to be a quite hard problem. It's known as the discrete log problem and it's what gives RSA It's it's security essentially so Remember that in a second because it will be important when we discuss this that won't be discussed module exponentiation Making that efficient. So how do we make it efficient? Well the naive approach is to multiply the base by the exponent by the number of the number in the exponent. So in this first example, we're looking at a where the exponent is a A power of two and so we can recursively group pairs of Terms and so you see that we've gone from four watch your three multiplications to Just two there and you can imagine with very much larger numbers that becomes even more efficient if we don't have a power of two in the exponent we can we can factor out into powers of two expand do a little bit of Rearrangement and we end up with a standard form, which is basically starting from the most significant bit of the binary expansion of the exponent and so we We basically Square at each bit as we go along and we multiply only if that bit is set as you can kind of see in this particular example Okay, so this this sounds great because means we've gone from Very very large multiplications remember X could be a 2048 bit number or it could be a 1496 bit number So this is great. We've got really efficient a way of doing this but turns out this is really really bad in terms of side channels because These numbers aren't going to be implemented by particular instructions on this machine They're going to be implemented in software and actually it's possible to have a slightly different Implementation for squaring than it is for multiplication So if you can observe that you can basically you can basically read off the value of X by just looking at the differences between exponentiation, so between multiplication and squaring and so yeah, basically the That this leads to you know the side channel attacks based on that now I'm more And the point being is that they don't have to compute the discrete log You don't you can get X without having to do that in that case so the most recent paper on Acoustic crypt analysis essentially used this idea, but in a more sophisticated form This is attacking GNU PG And in the particular implementation again coming back to this idea that the implementation is what what's letting letting it's down Okay, so that that was power analysis tax Now how do we switch from power analysis to acoustic crypt analysis? So we want to replace that that resistor which is in the power line and we don't have we may not have access to the power line We want to replace that with the power supply itself Okay, so we need to understand how power supplies work Okay, so let's look at internals and we'll think about this from the perspective of a control systems engineer So a control systems engineer looks at it in a sort of block form like this and it's a sort of ubiquitous design pattern That's that's found in control systems and you got your output that might be your voltage and you have your desired goal You know might be you want to get three point three volts and keep it at that And to using feedback you're measuring that to ensure that you keep the output Steady in the face of external disturbances and actually it's really really important that If if this external disturbance pushes that output Away you want to be able to react to that quickly and you can only do that if your control loop has enough Bandwidth in it so that bandwidth is important and it's important for us because actually that bandwidth is the same bandwidth That's available to us For this particular side channel and we need as much bandwidth as we can get away with So here's a so-called linear power supply and you can see that that Control control loop and the feedback directly you've got the two feedback resistors And you've got the reference voltage and you got this pass transistor that we're which is basically our plant This turns out to be not very useful for acoustic cryptanalysis because these types of power supplies tend to be fairly Noise free not completely noise free, but tends to be fairly noise free. What we're interested in is a switching power supply Now this is a buck converter, which I illustrate through the medium of my little pony and as you can see here when this Mosfet pass transistor is actually switched on the the current Goes through this inductor and the inductors the main Component that's actually sort of driving this and it ramps up You can see this in the in the bottom graph bottom right-hand graph there And then we switch switch the transistor off the current continues to go around because that's how inductors work And that that's switching that occurs has very sharp edges to it and those actually have induced harmonics and so you've got lots and lots of noise in the system inherently and There's there's modulation of that through this feedback and the pulse width modulation. Okay, so how would we? Measure the bandwidth that's in a power supply like this. So One way to do that is to look at the the feedback loop and we can inject a Signal into that feedback loops loop. So we take a signal generator and a transformer and have a little a resistor Just in that feedback loop and we're gonna have this we're gonna sweep through all the frequencies that We were interested in and we'll see what happens when the When the signal goes through that that control loop and comes out the other end so it could be that the signal is Has higher amplitude or lower amplitude it could be phase shifted One particular thing we want to avoid for instance is that the signal goes through that control loop is higher amplitude But isn't phase because when it goes through again, it's going to be even more Higher amplitude and that's going to be unstable. It might even oscillate. Okay, so The control system engineer will create something known as a BODY plot And we'll basically look to ensure there's enough margin there But he can use that plot to determine how much bandwidth is available in that power supply. Okay, so if we've we've got a power supply Theory behind us. Let's look at an actual power supply. This one has this is an evaluation module and it has the Connectors so we can put our function generator on there and you can see there the various components We've put put there before look in particular the the inductor and the capacitor Those are the things that actually going to generate the noise in the system. Okay. Now. I put this on to a Onto a well a set up basically I've got a box there that resonates so That amplifies the sound. I've also got a cone now if you look at this you kind of think well Doesn't that to look a little bit like a gramophone and that's no Accident because really if we're gonna use a function generator. We could also use an MP3 player or Some other device like that as I've got here and so let's see if we can place music through our power supply So I did is I took a track I I pitch shifted it because the frequency response at the low end is not so good and this Should be what it sounds like Okay, you may not be able to hear that so well, but that's that's Sam recording by a blue singer called Bessie Smith if you want to actually hear this If you actually want to hear this Live I have all this equipment with me so you can actually come along and hear it with your own ears okay, so Yeah, okay, so what actually causes these components to generate this sort of noise So there's two main ones for inductors We have something knows magneto restriction and then for capacitors, particularly ceramic ones multi-layer ceramic capacitors The piezoelectric effect actually is what kind of generates this and it's a sort of reciprocity there So if you if you hit a circuit board that's got these sort of capacitors you can induce Voltages in their currents into those systems, okay, so we want to now measure the Measure that the sound from our power supply, okay, and we also want to measure that at a distance and We don't want to we using a normal microphone like the one I've got here is not going to be any use because what it's not going to be as much use as say an ultrasonic microphone because Basically that those frequencies are going to go way up into ultrasound so we need an ultrasonic microphone and they are expensive to buy even the cheap ones are moderately expensive you can get You know get them for maybe a hundred and fifty euros or so if you're just playing with this stuff You probably don't want to spend that amount however The wildlife recordists have already gone ahead and thought about this problem And they've come up with them this particular they've used this particular module and there's other examples you can get there But these ones they've determined that they actually have quite good frequency response beyond 20 kilohertz Which is the normal limit for these kind of? Microphone capsules so I wanted to build my own microphone around this capsule and so this is the analog Signal path we have to increase the The game so you have some gain and basically increase the signal and we want to put this through a Low-pass filter and anti-aliasing filter. Why do we need this? Well, think about what happens in a like an old Western movie your You'll you're viewing that at 25 frames per second And a wheel on a wagon goes around much much much faster than that and so it can appear to be going Either backwards or it could be going slower than in that actually going because you're not you're not sampling High enough rates. Okay, so in our case We want to make sure that any higher frequencies and ones we're interested or us are filtered away So we're looking at 125 kilohertz of bandwidth That's that's a pretty respectable amount of this kind of microphone There's the detail I Don't expect you to take all that in at the moment But if you want this this also will be available as part of the source code as to look at But it very closely follows what that previous diagram showed So on the digital side of it and we're using a arm microcontroller that has a hardware timer Notice that we're sampling at 250 kilo samples per second. That's because our We because we are highest frequencies 125 kilohertz We need to maintain what's known as the night Nyquist criterion So we have to sample it twice the rate and so that's why we're running at that twice the rate there And so we put into a ring buffer and that reduces the the strictness of our timing so we don't have to be quite so so Synchronized in that timing there. We have a bit of glue logic here If if you can find a way of getting rid of that glue logic because there is a USB fire on board this device Good luck to you. I've had difficulties doing that. Anyway, so there's there's our glue logic that interfaces to our main host processor by USB and then we have a stack of Drivers and going from the USB side all the way up to a wrapped Code for using with numpy and pricing scripts and the rest of it. So this is what it looks like and The final thing we need to do is we need to make make sure that we can actually record a distance. Okay, so What we actually need is essentially something that Has high directivity so we could either shotgun mic, but for ultrasound you might have to sort of scratch your head and think well Are those slots the right? Distance apart and the rest of it easy way of doing that is to use a parabolic reflector so if if you notice that the The focal length of this reflector is Five centimeters and for 20 kilohertz and above we can fit several wavelengths inside the inside that Focal length that indicates to me that this would actually be quite good for ultrasound. It probably would be good for normal speech okay, and So I've sort of tested it but not really really long distance If you want to test this later on can talk to me that would be a good good thing to try out So this is more close-up pictures of that So I tested it tested the sort of frequency response using a rodent repeller and you can see quite a nice pretty sort of spectrogram there and There's a sort of little animation that goes with that And you know we can do it as a real-time FFT. It's quite quite good fun to do that kind of stuff now Later on we're gonna Very short in short while we're gonna want to look to see how we can actually Do the signal processing on the acoustic crypt analysis side, so It's important to understand when we've got a When we were actually picking out particular frequencies We want to think about tracking that frequency over time So that that might the amplitude might go up or down and that might be useful for us So if if we were to take our FFT frame size to be the entire sample that gives us no locality So we don't we can't really measure a period of time. So Reducing the frame size Gives us greater locality, but we then sacrifice Resolution I think this is potentially related to Heisenberg's uncertainty, so I'm sure somebody will correct me on this and then the other problem we have if we if we abruptly Cut off our our sample we have these side lobes as they call and that's not inherent in the In the signal, so we use a windowing function to make sure that we only get the frequencies that we're interested in Okay, so finally we can actually talk about acoustic crypt analysis. So That's actually look at Go back to AES and this is just a very brief outline of what a yes includes. Okay I want to focus on this thing Called the S-box lookups or the substitution box lookups because actually it turns out that they are where Sort of the pivot for how we actually can get data out of our system. So There was a paper by Daniel Bernstein Looking at something known as a cache timing attack and the idea behind this essentially is that lookups In lookup tables actually depend on the index you use in those in those lookup tables So S-boxes are essentially implemented as lookup tables, okay So and they actually use the key the key or a value derived from the key to perform that lookup and so Essentially, that's what we're going to use here to do this this particular side channel attack. So Just reiterating what I said there about the S-box is the other thing to mention is actually you can combine lots of those stages that we looked at in In the outline and to make very large Lookup tables and the problem there obviously gets much worse and in particular those lookup tables Don't fit completely into L1 and L2 caches. Okay, so that's how the timing differences You know the cache misses cause those timing differences Okay, it this this is actually a current Sort of live problem or an ongoing problem in the sense that for instance the recent truecip audit show that this was a problem with truecip So it's something to again. It's the implementation side of things that's letting us down Okay, so how do we actually do this this attack so we've got a secret key and a plain text and The time to do this S-box lookup depends on the value a as we said, okay, so first of all Well, let me just move forward here actually we've got we've got two phases in in the in the attack But the first phase is to compute The that distribution s essentially so pre-compute what what that distribution is now think about one example of this The the one that maximizes the the time to do the to do that lookup Okay, and actually If you think about the very first S-box lookup that happens It turns out that it's really well correlated to the overall runtime of our encryption Okay, so we we already know what the particular index that's going to maximize s is and So we already know what index is going to maximize s and then in phase two essentially if we if we pick out or if we if we rerun this but with The key being fixed, but then lots and lots of different Plain texts then actually we can compute a new distribution and there will be one Value in there that's going to maximize the runtime and that then allows us to go back and Unwind the exclusive or operation and then recover at least that value for the Of the key and we can do that for all the other bytes in the key And so yeah, and so that's basically the in outline how how that attack works now Just think about what this actually requires all it requires is us to know the runtime of our of our Program, okay, so let's let's look at how we can actually do that now This is an actual sort of experimental setup. I've got a motherboard here. I've taken everything out I've even made my own heatsink to get rid of the fan basically just so that I can have that as quiet as possible and I've got a Power brick again, I put it on a resonator to increase the sound And I'm now going to sort of send packets to that and see how long that that actually takes to Run things and see if I can actually measure that just through the power supply. So just just to show you here in This sort of if you like that sort of proof of concept of that that part of it in the bottom left We're going to show starting and stopping program and the bottom right that actually tells you the CPU load So, you know with a hundred percent or so and then the top is our real-time FFT Okay, so let's just run that animation There we go, so focus at the top primarily and you'll see just now Yep, there's a phase shift there not phase shift. Sorry a frequency shift and that occurs Just as we stop the program. So we start we start the program again. Okay Right, so you can see the CPU load go up to hundred percent Okay, and then we'll see again that when the program stops will actually see that phase shift happen again So the frequency shift I keep saying that there we go So that frequency shift just happened there So what basically we can track that and we can use that to measure how long our program runs so that is how we can use that to basically Determine the runtime of the encryption and from that we use that cache timing attack to recover the key Okay, so how do we so to just to summarize and to Finishing things off here. How do we mitigate this? Well, don't use sbox xbox sbox look up So if you can avoid it replace it with something else that Can require constant time if you actually a hardware manufacturer Think about using different types of mlcc's that don't have this problem you can actually parallel up mlcc's if they do have this problem to reduce that somewhat and There are other techniques of doing scoring multiplying for instance Montgomery's ladder, but there's more sophisticated ways of doing that Okay, so conclusions Really, it's to say that implementation details matter And Really, I want to kind of encourage you to play with these these kind of ideas You know tried to make your own sort of setup and see what you can you can achieve from that Yeah, and so basically that that that's that's the the key thing so implementation and Play with the ideas basically so just want to credit for the various slides there questions from the audience Thank you Yes, thank you for your talk. Thank you Yes, we have a lot of time for Q&A If you have questions, please come up to the microphones if you don't have questions Please keep seated because everything else would disturb the ones that who have questions So the microphones are here in the front Until then I make just the normal announcements, please if you go keep your trash with you remember the thunderstorms and Yes Again, maybe I don't you don't have heard it until now Yes, the Goli is quite happy with us, and they think we are good people here. So now there's a question Some as we aren't building our own power supplies for our own laptops or writing our own Implementations of the AES-256 algorithm. Yeah, what are you suggesting we do as normal users to protect ourselves from this sort of attack vector when We aren't building our own hardware or writing our own algorithms Okay, so I mean to kind of take the example of sort of true grip there. I mean that's that That's an example where we've had sort of Independent audit of that code and that that has kind of identified that those problems of are present Okay, so as an end user Although you can't necessarily change things in your code You know like to that to be the case you can actually Find out from other people that know, you know that can identify these problems and basically do the research about which particular products have known to have particular problems with them, so I would encourage There to be more auditing it if you like of code that's out there in a similar sort of way, but yeah, I mean other than actually sort of building your own hardware and Testing it yourself. I think there's there's not a lot extra that Can be done there Should we consider wrapping our power bricks in sound dampening foam? So probably not actually I mean, I think I think the point is that the to give you an example of how how many Packets need to be sent to do the sort of attack the cache timing attack we're talking there in the original paper We were talking about something like two to the 22 so that's going to be quite a long You're gonna be send that sort that sat there a long time with your with your microphone Trying to listen to these things although although it's possible in principle in actual practice. It's it's There's a lot of effort that require is required to do this kind of attack really and if you see what happens with Paranas attacks in those particular cases People really you know if they really want to get into the system They they'll they'll they'll spend the time to do it, but kind of an ordinary user probably wouldn't See that as part of their threat model if you like Okay, thank you. Thank you The next question from the other microphone For your test set up you had to remove all the fans and everything that made noise Yeah, this be defeated by putting a fan in the power supply So if you so if you look at the the the paper I showed about the most recent analysis paper they actually said that the In their particulates case the the fan Didn't actually make any difference in terms of what they were they were measuring actually so it's sort of a very low Frequency kind of thing and it doesn't actually it doesn't have enough sort of Information coming through it to make any difference in my case actually what I was trying to do there I wasn't actually trying to use the power brick at all I was actually trying to use the power supplies on the board the switching power supplies there and For whatever reason that particular board doesn't seem to have this as a problem Maybe they use the right sort of capacitors. I don't know but yeah, so You don't have to remove the the fan, but It doesn't make any difference if you if you do basically next question again from that microphone Modern CPU sometimes have hardware encryption. Yeah instructions. Do are you aware of any? Analysis of their side channels because they would be a prime target Yeah, and Did you know of anyone using se and the instruction? I'm not sorry come to Work with the data and it's complemented the same time So I'm not aware of anything anything particularly to do with sort of the you know Intel instruction set or anything to do with that Yeah, I mean I Would actually I mean this this particular project is something that I've been working on maybe for last sort of six months or so and so That particular level of detail. I haven't really got into yet, but I'm sure if there are things like that There will be you know papers and various things on that to look for but but thanks for the questions Another question from here Okay, so if I got you on talk white and the acoustic analysis relies on the cache timings Not what I initially thought on the instantaneous Current consumption I like DPA or something like that because that would also be I think that that should also be Visible in the SMPS. Yeah, but would have a Much higher frequency range. So, okay So the reason I've used the cache timing attack here as a sort of an example So suggesting this is the way of doing it is that I wanted this to well I'm learning this as I go along and I wanted this to be as literally the most simplest one I could possibly think of as a way of doing this and so Here the only requirement is that you know how long the thing runs for and there's a very easy to determine that from that However, there's as we know as we saw from the from the as we heard actually from the the power supply Big play in the music. There is a very rich Spectrum in there. And so yeah, you can actually see a lot more information if you're really looking hard for that information So, yeah, definitely it'll be in there if it's if it's being transmitted on the power line. Yeah Okay, but do you know of any? Attacks or papers which mentioned that they Basically here the instantaneous current consumption. Oh, yeah I mean, so so if you actually look at that again, I'll go back to that that paper. I'm not excited. They're the most recent acoustic crypt analysis paper they They actually Yeah, they can actually sort of see almost in sort of real time as as it's computing the the You know as it's computing between different values in the Modular exponentiation so they can actually sort of differentiate those things, you know, almost like a DPA attack there as you say in real time So yeah, it is possible to do that, but I would cast that as a an intermediate to more advanced level of Skill to do that kind of thing Thank you. Thank you. There's a question on that microphone. Thank you. Good talk From a professional audio background, okay, and one of the things that's fairly well known Is that? Because of ground bounce and ground noise issues, you sometimes get noises in the recorded audio Yeah, but correlate with my with mouse movements and such. Okay. Yeah. Yeah, this being essentially the same. It's the same thing. Yeah. Yeah the at least partial cure for which is To turn off the deep-sleep sea states in the biops, right? Okay, so the processor does not hide off Right as much. Yeah, and that significantly reduces the level of switching of power consumption that you get Okay But of course that up that that observation from the audio recording scene Give us nice to another possible side channel attack here. Yeah, basically the same thing. Yeah, but Using enabling the microphone on the machine Okay, yeah, if you've got a Skype connection open or Yeah, I mean, I yeah, I guess that kind of comes back to that that idea of Yeah, but right back at the beginning we're talking about with the you know the Telephone and using that to essentially get the the data Away from the the system under attack. Yeah, so using the microphone Skype or something like that Except you're not really using the microphone. Yeah, you're using the ground noise Right on the analog section on the motherboard right most laptops is appalling. Yeah. Yeah, okay picking that up and digitizing that as the Okay, that's interesting. I have to look at it more into more detail. It sounds like it could be you know potential Interesting things are looking Yeah, okay. Thank you for the question. Thanks. And I think this is a class question. At least there's nobody else standing there Well, actually, it's an answer for the guy that was asking about the fans So it's about the fans. Yes, it's an answer to the guy that was asking about the fans So hopefully he can understand. Yeah, why it didn't affect the research that they did on the paper. Oh, yeah Basically, there are two things that you should take into account Fans usually make noise at mood at much lower frequencies because they aren't that fast compared to the kilohertz Misuments you were making. Yeah But the second and more principal reason is that when you are doing cryptography with a with a half Good algorithm. Yeah, you will have approximately the same amount of ones and zeros plus less some error So when you do I mean measurement as you were doing on on your own on your own measurements Yeah, you will find out that thanks to test hysteresis of the fans The amount of noise you get when there is a one and when there is a zero more or less cancels itself always Right, so you will get more or less the same amount of noise during the world measurement after you have done a few of them Yeah, okay, that makes sense. Thanks. Thanks for the clarification. Welcome. Thank you Yes, that were our questions and this was then Hagen. I think he has another applause