 So, we prepared in, so first of all to our, to the two of us, we somehow stumbled upon each other while we started studying physics in Munich. And this is very much the character of the talk. So we are talking with other competence other than we saw some formulas once in university. So please take it with a huge grain of salt and don't try anything of this at home. Or if you do, write a paper about it and please cite us. We badly need that and stuff like that. So, the talk was prepared in German. This was our, our lack of foresight or insight into the, into the Fab plan. Nobody looks at that, right? Especially if you're planning to do a talk. And the, the slides will be in German, but we will do our best to try and translate it. Everything else, well, you can try and I mean, it's not that complicated. Numbers are international, I've heard. So it's about what happens when the subwoofer inhales the cat and we deliberately chose the German word for subwoofer to make it more on point. First of all, we will start with a quote from a famous Austrian composer. Unfortunately, he did not supply waffles to events he visited. Only when the subwoofer inhales the cat, you know that the bass fucks. And this is attributed to him, but as we know famously from a blink on, don't trust anything you read on the internet. So we shall start. First of all, we have to assume a point like cat in a vacuum. Oh, vacuums don't work with subwoofers. Okay, let's screw the vacuum. So point like cat. If the cat needs to be accelerated by airflow, then it needs some surface area. Can we compromise on spherical? Spherical cats. Okay, spherical cats it is. So we have spherical cats in a vacuum. So this is our experimental setup. Don't mind my awesome gimp skills in cutting out whatever this AI generator did. You see elite gimp skills that you see all over the internet. So yeah, this is our experimental setup. So we have a subwoofer and a cat that we assume to be a sphere of 6.5 centimeters in diameter. That's three radius, yeah, radius, no, diameter, no, whatever. It's just half an hour of magnitude, who cares. And this for the people who don't know metric, this is roughly three waffles and one chunk or something like that. So first now we have to dump some formulas on you. I will give that to you. Okay, so now these formulas are obviously very complicated. These formulas are obviously very complicated and no one has ever seen those. That's cool at least. No, no. So at first we have to calculate the velocity, average velocity with which the cat is sucked into the subwoofer and what acceleration results from that. So we have here the known formula vs x by time and acceleration one half x by t squared. So we are assuming that our cat is moved by a distance of 50 centimeters and this happens during the time of half a frequency. Half a period, yeah. So now we make some assumptions starting with a frequency of 10 hertz. We calculate our acceleration, which then comes out to about 100 meters per second squared. So that's already a 10G. Usually a cat would not survive that, I think. The G does not stand for goulash in this case. Not goulash of accelerations. To be thorough, we obviously also wanted to have a more realistic calculation. Subwoofers usually don't go as low as 10 hertz, 20 is more realistic. And then we unfortunately end up with 40Gs of force on the cat. We already know that cats are liquid, but this one definitely is. Now what velocities of air do we need to accelerate a cat that fast? You can calculate this with the obviously known formula for the drag force, which is the surface area of the cat times the certain value, the CW value. Adjust the note, this formula has been banned in Florida just for the record. Fair. You know Florida, man. So times the density of the air and times the velocity squared. Now plugging in all our totally realistic numbers, we get a velocity of about 330 meters per second of airflow for the 10 hertz case or 660 for the 20 hertz case. To those who don't know, 348 is the speed of sound. So we would need a airflow faster than the speed of sound, which is not possible. So just to make sure, theoretically during the preparation of this talk no cats were harmed and we had a message from one other guy, I think his name is Erwin and he said he didn't like this because now he knows what happens with a cat. So long story short, if you have a cat at home and a subwoofer, please make sure the subwoofer doesn't inhale the cat because then the only thing that is fucked is the cat. Okay, then thank you very much and enjoy the GPN. So many people, it would be so bad if something would go wrong. Anyhow, hi I'm Janus and I will show you something about destroying data with style or how life oh dang it, don't you hate it when your HDMI goes out of tune? Wrong channel, bear with me, bear with me, maybe batteries are hot, it's a rocket lunch now, bear with me, bear with me, ah there we go, okay I think I've got it, it's a bit of a tune but, ah okay I've got it. What you've just seen was obviously not a fault by my HDMI but a sample of data moshing. By the way, data moshing is an art form in which you create a visually appealing videos or image data by deliberately destroying it, so to understand how data moshing works or data moshing with H264 specifically, we first need to understand how H264 compression works basically so it's a form of lossy video compression and basically as if you watch a video or a movie with a set scene you can observe that mostly the scene is quite constant and so if you look at every frame of your scene there are only small differences so it would be nonsense to store every frame by itself, it would just use up a lot of data but to compress this data some clever people develop algorithms to use these properties and to this observation that motion data is different between, ah I'm sorry I've prepared my talk in German so I have to translate my stuff in the head but basically in the sample you can see there's a pacman with these three dots, he wants to eat those three dots and we see those different frames and we can observe between those two frames only the dots are moved so the H264 compression things are alright, only those dots moved we just need to store the motion information that these three dots have been moved by a certain amount of pixels between those two frames and this is quite clever because it quite fits the data well which we can typically see in movies but if we well mess with that we can create some funny effects, those frames which are referencing an iframe we call frames which contain a full image iframes and frames with a delta to that frame p-frames, there are also b-frames which can reference both p-frames and the next iframe in the future but we don't care about them they're just destroying everything they're bad so we throw them out as well and if we now deliberately do a scene change without the iframe in the middle we can observe some funny effects for example you have here this scene and we've removed iframes and just put another video next to it and then we get this funny morph effect so to do that efficiently in our tool we need to do some preparations at first we need to throw out all those b-frames because well they suck forward references and we need to renumber them and that's bad so we throw them out that we do this by setting b-frames equal zero in this super simple ffmpec command we all love those great and also we try to reduce the number of iframes to a minimum we use it with the screen command which basically tells the ffmpec or the h264 encoder to assume that the whole video is one scene okay and we also like want to keep the resolution constant and the frame rate constant and now we can have fun with that we build a tool which allows us to control that life what this tool basically does is iterates through h264 videos separates them frame by frames and we parse the frame type like iframe is an iframe or a p-frame and then we can mess with the data we can drop iframes we can skip frames and then we just need to make it controllable we've built like a smaller us or c interface for that we can use the ipad to control the glitchiness of our video and we can attach for example beat and beat input for that and change the videos so today we have another slot at the lounge starting at 745 and yeah happy to see you there and maybe some glitching out there's also the the project is under discoders.io.com is wrong i don't know what happened there it's discoders.io i don't know what happened there but yeah thank you and happy glitching oh hello everybody i want to tell you a bit about web application firewalls or one in specific which is just another layer of duct type trying to fix web security because i did this as part of my work there you can also find our small little logo and link up there well let's start with the question what is a WAF well it's a simple device which just tries to answer the question for every HTTP request well is it malicious if no then forward it to the web application otherwise report an error or do some logging or do some intrusion detection or whatever fun you can imagine um oh well things got broken so there is this funny little question is it malicious hard question how do we answer it well we use other people's work because the fancy people from OWASP already did this work and they did a pretty neat job about it which is called the OWASP mod security core root set so next question what is this funny OWASP core root set it's a core root set for mod security well helps much not mod security is a plugin which is which was originally built for Apache but can also be compiled against engine x the problem is it's included in engine x plus but if you want it it was your everyday open source engine x you have to compile it yourself we come to back to this a bit later or why this could be a problem but in theory it works well it's a framework of production tested filter rules which make it very easy to just deploy a sort of application for a firewall which answers this funny little question from the slide before automatically for you so how do you use it well for most use cases just use paranoia level one that's the default it tries to just work with your everyday application if you have fancy fields something like a password you may need some specifier to not check the password field if you want your users to provide passwords like exec pin bash or something like this if you want this as a password then probably you want to change something normally you don't need to change these things so can i help you to set it up well yes this is an answer the link to my to a github page where you can find a ansible playbook wait i can show it yeah this is this um um yeah playbook uh or a role actually it's a role we developed um it's part of the thing some of you know public money so i'm get i get paid by the state you saw it in the logo so we make we tried to make some public code um you can find it here um it's tested for um redhead and um dbm-based system so there are also fedora and centOS works um you install it with ansible galaxy and um yeah then you can just set the playbook which has five lines and that will deploy a batchy web server because of this neat little problem um i can write an ansible playbook which compiles your engine x but you probably don't want to use that in production so we just use a batchy i hope most of you find that somewhat helpful um this thing just deploys in a batchy sets up the web application firewall does pretty much everything for you um yeah then you have an installed web server with a web application firewall and you can deploy your web application or do whatever thank you thank you hardening electronics um protecting computers from cosmic rays so well that's of course that was to be expected uh can i exchange it well that's perfect typical um okay so let me see if i can change the mode and then extend to write present again and you better be right uh yeah okay yep close enough so failure is not an option uh today i want to talk about an important concept oh for fuck's sake okay i mean i'm not swearing um yeah so today i want to talk about an important concept in computing especially when you want things okay especially if you want things to work reliably uh much above the typical failure rates that you'd have for individual components and of course this is especially important for um aerospace more things may not go wrong but it's also used in cars and medical equipment and all kinds of other things um some menu on my screen is not going away okay that's typical for a hacker con okay so yeah just a quick anecdote um which i found quite interesting and which showcases where some of these errors might come from especially for spacecraft um intel was working on some of their new memory in the late 70s and they were reducing the process size and they were trying to get more and more ram onto one silicon die and then they started encountering issues and they knew all of the typical ones they knew that some of the issues in their production could cause that but they actually had them all ironed out they weren't a problem anymore but still some of the bits would start flipping um and it turned out that there were nuclear isotopes in the icy packages especially in the ceramics which likes to hold on to polonium and uranium and things like that and the alpha particles so charged ionizing radiation that it emitted would trigger the cells to flip they would cause some of the electrons to release from the silicon mesh and activate the cell and you didn't want that that was a big issue and it was a pretty big find when when they figured it out back then and it's the same thing that is the main challenge when you're designing a computer for use in space that was a motivating example but these kinds of bit flip issues systems failing and having a limited reliability they apply to spacecraft but also to all kinds of equipment there was a case of Toyota's I believe in the early 2000s where cosmic radiation so not radiation in the packaging but also ionizing radiation from another source caused cars to no longer be able to break the acceleration would just continue and continue and continue and many people died due to that so now cars also implement these principles yeah a typical margin of error you would have for a computer if you're really trying to make it reliable is that it fails every 10 million hours we can't really do much better than that unless you're doing some very special things but a standard processor won't give you more reliability than that and it's just not good enough so what do we do triple modular redundancy that's the magic word or three magic words and the idea is I think that's a little stretched doesn't matter you take one computer it can fail it can go wrong so you take a few more now you have a few computers and even if one of them fails the other two will very likely be working correctly because the fact that the chance that two fail at once is just hugely unlikely you have to figure out which one of the results is correct so you use a voter a majority voter and it says okay well these two the results are identical and the other one isn't so that one has to be wrong and that works but your voter typically only has the same limit of reliability so if that fails well you have a you have a bottleneck you have a weakest link in your system it doesn't work the solution is not sufficient but you can also triple the voters so now when one of the voters fails the other two are still working correctly and you have three correctly working computers so you have two correct solutions coming from the voter and one incorrect solution I mean we're a little closer but that still doesn't help us because who decides which one of these three results is correct again you would need a single component but of course everything is spoiled here at the top right and what you can do is you run the three computers over the three results and now one of the computers can only give you an incorrect value because it's working off incorrect information but with the voter step that follows that you have actually managed to completely work around this failure in one of the lanes they're called lanes typically in this field yep okay so I'm done it applies to everything in the system sensors buses actuators well excellent um that's quite tricky in that topic um excellent programming in excel now I'm sorry I'm just trolling here's the okay so I want to show you now a spreadsheet I made with what you can create code you can create code so it works on so you have their predefined operations and then you can combine these operations and you only to mention the operation and the the variables of the operations and then you can combine it and it's also the feature to for example the first two lines this is here these are together then it is also possible to combine two lines currently two lines of input together to one line of output is for variables important to assign something to a variable for that this is important and yeah and it works based on how I hope I can navigate to another so yeah and here there you can see the definitions so here there's for each for each operation you need to define how many rows you have and then you can then you can create code with it yeah and I think it's relatively simple so you need to specify how many rows of input you have to generate these operations and you need to tell how many variables are in this and then with these two informations and what's the kind of what you can see in column h and i then you can create through that the function yeah and if you are more interested you can talk to me then I can explain it a bit more afterwards thank you very much then blender introduction to blender please come forward because that's all i've got sadly is wrong no sorry okay yeah cool then we do that hopefully I hope so okay if you can't type that I type for you because it's slash blender dot html okay so the slides are online just copy this if you want to see them okay thanks I guess five minutes are running okay so hi and welcome to a short introduction to blender in the next four and a half minutes I will be talking about what is blender what can it be used for and how could you use it in your free time if you want to I'm sorry the slides are in German and I'm translating on the fly so let's see about that also thank you very much for lending me your think pad okay so what is blender blender is a 3d software and it can do everything except ironing your clothes as my mom would say you can model some 3d models of course and do everything fun that you can do with 3d models like you can export them in every file imaginable you can use them for game assets if you're programming a video game you can also animate them and do some short little fun video clips like you can see on the pictures there and I've also got some film tips later on if the five minutes are long enough and yes of course if you are into 3d printing and can't find something on the thingiverse just open up blender and do it on your own and just export it and you're ready to print so what else can you do you can also animate not only in a 3d but also in 2d if you're more into drawing stuff and drawing a lot of frames because you will need a lot of frames if you're doing a short film and you can also do some special effects like it like you can see on the right below picture and this is a film frame taken from an official blender film um yes what you can also do but there are other softwares out there that are better for this use case are cutting videos you can do this in blender but there's better software out there and c ad if you need something uh some mechanical pens mechanical parts with exact measurements maybe using a dedicated c ad program instead of blender but otherwise you're fine it's okay let's go on to the let's go on to the promised film tips if i can hit the button okay so um talking about blender you also might want to know about the blender foundation because um they are publishing a new film about every new year um there are three examples on the right and if you're tired of netflix and amazon prime chest go have a look at studio.blender.org slash films they have lots of great films out there and they even provide some materials and some assets if you are trying to make your own film so okay thank you for listening and go download blender it's free it's open source and have fun thank you very much wonderful then ssh for your apps ssh keys i actually had a different talk prepared but my battery is dead and that one needs slides yeah so i am going to improvise a little bit ssh keys for your app uh hands up who has used ssh or who is regularly using ssh as expected almost everyone and who is using ssh keys to log in yes do not use passwords passwords suck and um okay who set up an htps website there's still a lot of people and there's a there difference between ssh security and htps security what is the difference one major difference is that no one logs in using client keys to a website right well almost it's pretty much not supported but uh for ssh the situation is completely different you already have the keys and you already know how to use it the security model is kind of obvious so if i want to set up a secure service would i use a tls which is used for scps or would i use ssh ssh i already have the ssh keys all my friends have them like i mean why not uh and yeah if you want to do the same with uh htps then you would have to use something like pass keys or or and this is complicated i don't want it i want my application to be simple so i asked myself the question is it possible to reuse my ssh keys in my custom application based on tls the answer is yes actually it's possible and uh i built a key converter to test this uh and it actually works uh i built it of course in rust because rust is cool and so why is it even possible this possible this is possible because they are both using the same encryption they use the same some of the same signature algorithms specifically the elliptic curve 25519 it's possible to either use the uh the ssh key after conversion as the base for the tls certificate that you present as a client to log in to to authenticate yourself to some tls service and yeah i did it i even managed to make it work with an ssh agent if you want to talk about the details come to me or come to my website and see what other random things i do the website is dorota c dot e you and yeah we can meet up on mastadan and talk about crazy projects as well the dorota dot e you thanks thank you awesome without computer um the react takes 10 minutes and we just got six okay then um we running out of talks oh okay then shoot yeah then shoot typing and holding microphones probably tough so um thank you so log ceiling is a technique to allow a system administrator to set up journal d in order that the log files after someone fully compromise the system cannot be modified without the administrator noticing and to show you how this works um i'll just quickly do this so here's a container where journal d is running and if i can write journal ctl correctly um you can see that it is log messages and in order to get log ceiling running it's it's enabled by default you just need to set up keys use journal ctl and is more setup keys and usually ceiling happens once every 15 minutes but we don't have 15 minutes then i set it to 30 seconds so generates a key pair and now um i'm gonna rotate yeah journal ctl great um so that we have a file that only contains sealed messages and i'm just writing a message in and journal ctl works just as before but now i can give it the key and it tells me yeah okay um your last message here is not sealed yet because the time hasn't passed but in 10 seconds um log ceiling when it happens every 30 seconds it will happen once on the full minute and at 30 seconds in the minute so now it tells me the journal has been completely sealed and cryptographically um i i'll just put another message is uh are you i'm standing in front of it yes uh so okay so we have uh journal ctl um told me that every message has been sealed and cryptographically it means that it has thrown away the key with which it has um sealed the old message so an attacker who will then compromise the system should not have the possibility um to to tamper with that message okay and now the new message was sealed as well but as i mentioned um we have an attack and where is the code here's the code i run the attack and after a bit of patching around um verify still says everything is okay but if i display the log um the last message has been changed and if you want to know more about the vulnerability we have published the demo code um the patch that system did not accept because they thought it was not a bug uh and um a bit more information on the background here thank you