Hey! I'm David, a security engineer at the Blockchain team of Facebook, previously a security consultant for the Cryptography Services of NCC Group. I'm also the author of the Real World Cryptography book. This is my blog about cryptography and security and other related topics that I find interesting.

I'm back! Oh and also: my master defense posted November 2015

So I'm now completely out of the loop, because I've been traveling a bunch. If you have any interesting crypto paper/blog post that was released in these last couple of months please post it here :)

Also I obtained my master. If you speak french or are just curious, you can check that here:

comment on this story

ECC 2015 in Bordeaux posted October 2015

After defending my master thesis in Labri's amphitheatrum I thought I would never have to go back there again. Little did I know, ECC 2015 took place in the exact same room. I was back in school.

Talks

It was a first for me, but for many people it was only one more ECC. Most people knew each other, a few were wandering alone, mostly students. The atmosphere was serious although relaxed. People were mostly in their late 30s and 40s, a good part was french, others came from all over the world, a good minority were government people. Rumor has it that NSA was somewhere hidden.

Nothing really groundbreaking was introduced, as everybody knows ECC is more about politics than math these days. The content was so rare that a few talks were not even talking about ECC. Like that talk about Logjam (was a good talk though) or a few about lattices.

Rump Session

We got warmed up by a one hour cocktail party organized by Microsoft, by 6pm most people were "canard" as the belgium crypto people were saying. We left Bordeaux's Magnificient sun and sat back into the hot room with our wine glasses. Then every 5 minutes a random person would show up on stage and present something, sometimes serious, sometimes ridiculous, sometimes funny.

Panel

The panel was introduced by Benjamin Smith and was composed of 7 figures. Dan Bernstein that needs no introduction, Bos from NXP, Flori from the french government agency ANSSI, Hamburg from Cryptography Research (who was surprised that his company let him assist to the panel), Lochter from BSI (German government) and Moody from NIST.

It was short and about standardization, here are the notes I took then. Please don't quote anything from here, it's inexact and redacted after the fact.

• Presenter: you have very different people in front of you, you have exactly 7 white people in front of you, hopefuly it will be different next year.

• The consensus is that standardisation in ECC is not working at all. Maybe it should be more like the AES one. Also, people are disapointed that not enough academics were involved... general sadness.

• Lochter: it's not good to change too much, things are working for now and Post-Quantum will replace ECC. We should start standardizing PQ. Because everything is slow, mathematics takes years to get standardized, then implemented, etc... maybe the problem is not in standardization but keeping software up-to-date.

• Hamburg: PQ is the end of every DLP-based cryptosystem.

• Bos: I agree we shouldn't do this (ECC2015) too often. Also we should have a framework where we can plugin different parameters and it would work with any kind of curves.

• Someone: why build new standards if the old/current one is working fine. This is distracting implementers. How many crypto standards do we already have? (someone else: a lot)

• Bos: Peter's talk was good (about formal verification, other panelists echoed that after). It would be nice for implementers to have tools to test. Even a database with a huge amount of test vectors would be nice

• Flori: people don't trust NIST curves anymore, surely for good reasons, so if we do new curves we should make them trustable. Did anyone here tried generating nist, dan, brainpool etc...? (3 people raised their hands).

• Bernstein: you're writing a paper? Why don't you put the Sage script online? Like that people won't make mistakes or won't run into a typo in your paper, etc...

• Lochter: people have to implement around patents all the time (ranting).

• Presenter: NSA said, if you haven't moved to ECC yet, since there will be PQ, don't get into too much trouble trying to move to ECC. Isn't that weird?

• Bernstein: we've known for years that PQ computers are coming. There is no doubt. When? It is not clear. NSA's message is nice. Details are weird though. We've talked to people at the NSA about that. Really weird. Everybody we've talked to has said "we didn't see that in advance" (the announcement). So who's behind that? No one knows. (someone in the audience says that maybe the NSA's website got hacked)

• Flori: I agree it's hard to understand what the NSA is saying. So if someone in the audience wants to make some clarification... (waiting for some hidden NSA agent to speak. No one speaks. People laugh).

• Hamburg: usually they say they do not deny, or they say they do not confirm. This time they said both (the NSA about Quantum computers).

• Lochter: 30 years is the lifetime of secret data, could be 60 years if you double it (grace period?). We take the NSA's announcement seriously, satelites have stuff so we can upgrade them with curves (?)

• Presenter: maybe they (the NSA) are scared of all the curve standardization happening and that we might find a curve by accident that they can't break. (audience laughing)

• Bos: we have to follow standards when we implement in smartcards...

• Lochter: we can't blame the standard. Look at Openssl, they did this mess themselves.

• Moody: standards give a false sense a security but we are better with them than without (lochter looks at him weirdly, Moody seems embarassed that he doesn't have anything else to say about it).

• Bernstein: we can blame it on the standard!

• Lochter: blame the process instead. Implementers should get involved in the standardization process.

• Bernstein: I'll give you an example of implementers participating in standardization, Rivest sent a huge comment to the NIST ("implementers have enough rope to hang themselve"). It was one scientific involved in the standardization.

• Presenter: we got 55 minutes of the panel done before the first disagreement happened. Good. (everybody laughs)

• Bos: we don't want every app dev to be able to write crypto. It is not ideal. We can't blame the standards. We need cryptographers to implement crypto.
1 comment

Factoring RSA Keys With TLS Perfect Forward Secrecy posted September 2015

Note: This is a blogpost I initialy wrote for the NCC Group blog here.

Here's the story:

Florian Weimer from the Red Hat Product Security team has just released a technical report entitled "Factoring RSA Keys With TLS Perfect Forward Secrecy"

Wait what happened?

A team of researchers ran an attack for nine months, and from 4.8 billion of ephemeral handshakes with different TLS servers they recovered hundreds of private keys.

The theory of the attack is actually pretty old, Lenstra's famous memo on the CRT optimization was written in 1996. Basicaly, when using the CRT optimization to compute a RSA signature, if a fault happens, a simple computation will allow the private key to be recovered. This kind of attacks are usually thought and fought in the realm of smartcards and other embedded devices, where faults can be induced with lasers and other magical weapons.

The research is novel in a way because they made use of Accidental Faults Attack, which is one of the rare kind of remote side-channel attacks.

This is interesting, the oldest passive form of Accidental Fault Attack I can think of is Bit Squatting that might go back to 2011 at that defcon talk.

But first, what is vulnerable?

Any library that uses the CRT optimization for RSA might be vulnerable. A cheap countermeasure would be to verify the signature after computing it, which is what most libraries do. The paper has a nice list of who is doing that.

 Implementation Verification cryptlib 3.4.2 disabled by default GnuPG 1.4.1.8 yes GNUTLS see libgcrypt and Nettle Go 1.4.1 no libgcrypt 1.6.2 no Nettle 3.0.0 no NSS yes ocaml-nocrypto 0.5.1 no OpenJDK 8 yes OpenSSL 1.0.1l yes OpenSwan 2.6.44 no PolarSSL 1.3.9 no

But is it about what library you are using? Your server still has to be defective to produce a fault. The paper also have a nice table displaying what vendors, in their experiments, where most prone to have this vulnerability.

 Vendor Keys PKI Rate Citrix 2 yes medium Hillstone Networks 237 no low Alteon/Nortel 2 no high Viprinet 1 no always QNO 3 no medium ZyXEL 26 no low BEJY 1 yes low Fortinet 2 no very low

If you're using one of these you might want to check with your vendor if a firmware update or other solutions were talked about after the discovery of this attack. You might also want to revoke your keys.

Since the tests were done on a broad scale and not on particular machines, it is obvious that more are vulnerable to this attack. Also only instances connected to internet that offered TLS on port 443 were tested. The vulnerability could potentially exist in any stack using this CRT optimization with RSA.

The first thing you should do is asses where in your stack the RSA algorithm is used to sign. Does it use CRT? If so, does it verifies the signature? Note that the blinding techniques we talked about in one of our cryptography bulletin (may first of this year) will not help.

What can cause your server to produce such erroneous signatures

They list 5 reasons in the paper:

• old or vulnerable libraries that have broken operations on integer. For example CVE-2014-3570 the square operations of OpenSSL was not working properly for some inputs

• race conditions, when applications are multithreaded

• arithmetic unit of the CPU is broken by design or by fatigue

• corruption of the private key

• errors in the CPU cache, other caches or the main memory.

Note that at the end of the paper, they investigate if a special hardware might be the cause and end up with the conclusion that several devices leaking the private keys were using Cavium hardware, and in some cases their "custom" version of OpenSSL.

I'm curious. How does that work?

RSA-CRT

Remember, RSA signature is basically $y = x^d \pmod{n}$ with $x$ the message, $d$ the private key and $n$ the public modulus. Also you might want to use a padding system but we won't cover that here. And then you can verify a signature by doing $y^e \pmod{n}$ and verify if it is equal to $x$ (with $e$ the public exponent).

CRT is short for Chinese Remainder Theorem (I should have said that earlier). It's an optimization that allows to compute the signatures in $\mathbb{Z}_p$ and $\mathbb{Z}_q$ and then combine it into $\mathbb{Z}_n$ (remember $n = pq$). It's way faster like that.

So basically what you do is:

$$\begin{cases} y_p = x^d \pmod{p} \\ y_q = x^d \pmod{q} \end{cases}$$

and then combine these two values to get the signature:

$$y = y_p q (q^{-1} \pmod{p}) + y_q p (p^{-1} \pmod{q}) \pmod{n}$$

And you can verify yourself, this value will be equals to $y_p \pmod{p}$ and $y_q \pmod{q}$.

The vulnerability

Let's say that an error occurs in only one of these two elements. For example, $y_p$ is not correctly computed. We'll call it $\widetilde{y_p}$ instead. It is then is combined with a correct $y_q$ to produce a wrong signature that we'll call $\widetilde{y}$ .

So you should have:

$$\begin{cases} \widetilde{y} = \widetilde{y}_p \pmod{p}\\ \widetilde{y} = y_q \pmod{q} \end{cases}$$

Let's notice that if we raise that to the power $e$ and remove $x$ from it we get:

$$\begin{cases} \widetilde{y}^e - x = \widetilde{y}^e_p - x = a \pmod{p}\\ \widetilde{y}^e - x = y_q^e - x = 0 \pmod{q} \end{cases}$$

This is it. We now know that $q \mid \widetilde{y}^e - x$ while it also divides $n$. Whereas $p$ doesn't divide $\widetilde{y}^e - x$ anymore. We just have to compute the Greatest Common Divisor of $n$ and $\widetilde{y}^e - x$ to recover $q$.

The attack

The attack could potentially work on anything that display a RSA signature. But the paper focuses itself on TLS.

A normal TLS handshake is a two round trip protocol that looks like this:

The client (the first person who speaks) first sends a helloClient packet. A thing filled with bytes saying things like "this is a handshake", "this is TLS version 1.0", "I can use this algorithm for the handshake", "I can use this algorithm for encrypting our communications", etc...

Here's what it looks like in Wireshark:

The server (the second person who speaks) replies with 3 messages: a similar ServerHello, a message with his certificate (and that's how we authenticate the server) and a ServerHelloDone message only consisting of a few bytes saying "I'm done here!".

A second round trip is then done where the client encrypts a key with the server's public key and they later use it to compute the TLS shared key. We won't cover them.

Another kind of handshake can be performed if both the client and the server accepts ephemeral key exchange algorithms (Diffie-Hellman or Elliptic Curve Diffie-Hellman). This is to provide Perfect Forward Secrecy: if the conversations are recorded by a third party, and the private key of the server is later recovered, nothing will be compromised. Instead of using the server's public key to compute the shared key, the server will generate a ephemeral public key and use it to perform an ephemeral handshake. Usualy just for this session or for a limited number.

An extra packet called ServerKeyExchange is sent. It contains the server's ephemeral public key.

Interestingly the signature is not computed over the algorithm used for the ephemeral key exchange, that led to a long series of attack which recently ended with FREAK and Logjam.

By checking if the signature is correctly performed this is how they checked for the potential vulnerability.

I'm a researcher, what's in it for me?

Well what are you waiting for? Go read the paper!

But here are a list of what I found interesting:

We implemented a crawler which performs TLS handshakes and looks for miscomputed RSA signatures. We ran this crawler for several months. The intention behind this configuration is to spread the load as widely as possible. We did not want to target particular servers because that might have been viewed as a denial-of-service attack by individual server operators. We assumed that if a vulnerable implementation is out in the wild and it is somewhat widespread, this experimental setup still ensures the collection of a fair number of handshake samples to show its existence. We believe this approach—probing many installations across the Internet, as opposed to stressing a few in a lab—is a novel way to discover side-channel vulnerabilities which has not been attempted before.

• they used public information to choose what to target, like scans.io, tlslandscape and certificate-transparency.

• Some TLS servers need a valid Server Name Indication to complete a handshake, so connecting on port 443 of random IPs should not be very efficient. But they found that it was actually not a problem and most key found like that were from weird certificates that wouldn't even be trusted by your browser.

• To avoid too many DNS resolutions they bypassed the TTL values and cached everything (they used PowerDNS for that)

• They guess what devices were used to perform the TLS handshakes from what was written in the x509 certificates in the subject distinguished name field or Common Name field

• They used SSL_set_msg_callback() (see doc) to avoid modifying OpenSSL.
comment on this story

Explanation of my paper: Timing and Lattice Attacks on a Remote ECDSA OpenSSL Server: How Practical Are They Really? posted September 2015

I gave a talk about my paper at the NCC Group office in Chicago and recorded myself.

If you have any questions, you think something was not clear, badly explained, etc... I'll take any feedback since this is going to be my master defense in two weeks.

comment on this story

Timing and Lattice Attacks on a Remote ECDSA OpenSSL Server: How Practical Are They Really? posted August 2015

It's a timing attack on an vulnerable version of OpenSSL. In particular its ECDSA signature with binary curves.

There was an optimization right before the constant-time scalar multiplication of the nonce with the public point. That leads to a timing attack that leaks the length of the ephemeral keys of an Openssl server's signatures.

In this paper I explain how to setup such an attack, how to use lattices to recover the private key out of just knowing the lengths of the nonces of a bunch of signatures taken during an ephemeral handshake.

If this doesn't make sense to you just read the paper :D

Also everything is on this github repo. You can reproduce my setup for a vulnerable server and an attacker. Patch and tools are there. If you end up getting better results than the ones in the paper, well tell me!

Also here's a demo:

EDIT: it's on the ePrint archive as well now.

Key Ceremony posted August 2015

There was a DNSSEC KSK (Key Signing Key) Ceremony. I guess it most not be too far away from what is a Key Ceremony

In public-key cryptography and computer security, a root key ceremony is a procedure where a unique pair of public and private root keys is generated. Depending on the certificate policy, the generation of the root Keys may require notarization, legal representation, witnesses and ‘key holders’ to be present, as the information on the system is a responsibility of the parties. The 'best practice' is to follow the SAS 70 standard for root key ceremonies.

The actual Root Key-Pair generation is normally conducted in a secure vault that has no communication or contact with the outside world other than a single telephone line or intercom. Once the vault is secured, all personnel present must prove their identity using at least two legally recognized forms of identification. Every person present, every transaction and every event is logged by the lawyer in a Root Key Ceremony Log Book and each page is notarized by the notary. From the moment the vault door is closed until it is re-opened, everything is also video recorded. The lawyer and the organization’s two signatories must sign the recording and it too is then notarized.

Finally, as part of the above process, the Root Key is broken into as many as twenty-one parts and each individual part is secured in its own safe for which there is a key and a numerical lock. The keys are distributed to as many as twenty-one people and the numerical code is distributed to another twenty-one people.

It's not that interesting, but I was just curious so I watched the footage of what it is here: http://data.iana.org/ksk-ceremony/21/KSK21-CAM1.mp4

It's boring.

But if you have nothing better to do, or you are curious like me, well here you go

comment on this story

I got a job! posted August 2015

Hey you! So mmm, I don't know if you've been reading my blog for long, but it all started when I got accepted at the University of Bordeaux' Cryptography Master. At first it was just a place where I would talk about my (then) new life in Bordeaux and what I was doing in class.

2 years and 287 blog posts later, here I am, still blogging and still in school. But not for long! Well not in school for long, I'm still gonna blog don't worry.

So yeah, the big news is, I'll be starting full time as a security consultant for the Cryptography Services team of NCC Group in November!

Woop woop!

Pardon? You are here for the crypto? ah umm, wait, I have this:

It's from this paper: Practical realisation and elimination of an ECC-related software bug attack by B.B.Brumley, Barbosa, Page and Vercauteren.

Dual EC or the NSA's Backdoor: Explanations posted August 2015

I've done a new video. It is an explanation following the paper Dual EC: A Standardized Backdoor by Daniel J. Bernstein, Tanja Lange and Ruben Niederhagen.

Need helpz for my Master Thesis posted August 2015

I have two weeks left to turn in my Master thesis.

It is about a timing attack on OpenSSL that was found in this paper: Billy Bob Brumley and Nicola Tuveri - Remote Timing Attacks are Still Practical

I tried to replicate the results. But to make it interesting I explained in more details how to mount this attack. There are lattice involved. It should be pedagogical.

Well... it should be.

Can I ask for your help? If you have time to spare, read a tiny part of this whitepaper and tell me if something seems odd, wrong, or badly explained.

I'll credit you here, you will have my eternal love and I will buy you a beer at one point.

Vegas - Part 3: Defcon 23 posted August 2015

Another world

I bought my Defcon badge through Blackhat to avoid having to move out of the Mandalay and miss some of the talks. Avoiding the long-and-early-in-the-morning lines of Defcon and still getting a "real" badge is also part of the benefits. So after lining up for 30 seconds at a small stand between two talks, I received a plastic bag with a program printed as a newspaper and several CDs containing music (I assume, but who owns a CD player nowadays?). The Defcon badge was an old and white record, apparently every other year the badge is non-electronic.

Defcon was taking place in Bally's and Paris this year. The talks were in Paris, the rest was in Bally's. If you wanted to mix them up you had to change casino over and over. The two are connected but it's still a pain.

I missed the first two days of Defcon. Well the first day isn't actually an official one as it takes place outside in a public park. The "toxic barbecue" is a gathering where people bring booze and meat. The second day, the official Defcon first day, is a single track of introductory talks that takes place in their Conference Center.

So I arrived in what I thought was something that already started, but all of blackhat and others that wanted to get the real deal were now rushing to the Defcon's talks, all at the same time. It was packed, the lines were not moving and the staff was screaming. I was starting to miss the organization of Blackhat.

After leaving my first talk, I figured I would never go to another talk again. But they finally moved the 101 track (talks that are more for begginers) and things got better.

And then I went to visit the other side of Defcon, and that's where everything made sense

The Villages

My favorite part of Defcon was the Villages, small sized rooms (compared to the ones hosting the talks) where people of common interests gather and spend their whole Defcon together.

The crypto Village was great, apparently Diffie was there. Other renown cryptographers hung out there too and I met a bunch of people I had always wanted to meet :) (although most conversations were short, I guess others were more at ease in this kind of environment than me).

There were a bunch of posters everywhere on the walls. Here's my favorite one from Tony Arcieri:

You could also find byte descriptions of packets of certain protocols, they are all available here

Every hour, or 30 minutes, there was a talk. I left Defcon thinking that I should get more involved in this crypto village and that I should submit a talk for the next one.

There were maybe a dozen of other Villages. There was a lock picking one, but you had to buy your own gear so I passed (although I really wanted to do it).

After Defcon, sitting in the plane I read their "newspaper" and realized there was much more. There was a huge number of things that I didn't even know were going on. I could even have went and met some of them somewhere in the desert to shoot range.

I felt like I did nothing. I was a lurker and I took part in none of the cool things. Next time I will come prepared.

The Parties

The parties were definitely better than the Blackhat ones. The Facebook student party was the best I got to do, few people, no loud music and a "bingo" game where you were handed a card with a bunch of "can do X" or "is X at facebook" and you had to find a facebook employee/intern that could sign it for you. If you got a full row plus a column signed you won. This was awesome as it gave you an excuse to go talk to them.

There was also a party in a suite of the hotel were I got to meet a lot of really cool people in the field as well. The funny thing is that everywhere I went, even at these parties, a huge amount of the people present were from my company (NCC Group) which made things super easy to meet people, we also were all wearing the company Tshirt.

The Rest

There was a main room full of tables, people hacking, people playing, weird people handing me papers and tokens and telling me cryptic passphrase. Other weird people holding huge antennas and pointing them at everyone obviously looking for something/someone.

There was an OpenCTF space, and a CTF space as well with korean, french, american and chinese teams just sitting there on their computers and cracking stuff. I was not allowed to take a picture there :() Hacking contests are everywhere. The ambiance is nothing like Blackhat (Which is way more corporate). Between weird things happening on my wifi, the femtocell found in between the two casinos and the non-stop protocol downgrades on our phones, we felt like everyone was trying something on you.

A stand to cut your hair and make you a mohawk. A spaceX stand giving out posters.

A tesla hacking stand, someone on the floor looking at it. I heard they dismantled the whole car at one point.

and Finally... Hacker Jeopardy

This post makes no sense, but Defcon made no sense. It was awesome.

EDIT: Here's a video of a first timer

comment on this story

Lattices and Tikz posted August 2015

I'm writing a paper, which temporary (but maybe final) title is Timing and Lattice Attacks on a Remote ECDSA OpenSSL Server: How Practical Are They Really?

(and I already have a github repo for that)

I'm explaining a few things about Lattices, taking some of the old material I already wrote for my last paper Survey: Lattice Reduction Attacks on RSA. But this time I wanted to be more pedagogical, with more graphics and illustrated examples. For reasons that I ignore lattices are seldom well explained on the internet thing. Here's a little preview, I guess you can re-use the images however you want, just don't copyright them against me :|

What are Lattices?

The Shortest Vector Problem:

The Closest Vector Problem:

How do we solve (approximate) the SVP? LLL:

and Babai's first procedure that approximates a solution to the CVP:

comment on this story

Vegas - Part 2: Blackhat 2015 posted August 2015

Vendors

Blackhat is famously known for its vendor's room. A huge space where vendors knock themselves over to hand you their free goodies. There is also a "career fair" with a few tables where people are mostly interrested in hiring you contrarily to the other booths were people try to sell you something.

It was an excellent opportunity for me — coming from France and knowing close to 0 company names — to learn a lot about the field and who was a big actor there. I rapidly started recolting company names. Fireeye, Rapid7, Mandiant, Trustwave, Splunk... no I'm not paid to write that.

I also spent a few hours just recolting swag, just because I have an addictive personality. The number of stands giving away Tshirts was... impressive to say the least.

The RSA booth had an Oculus Rift demo, but it was disapointing and I wasted my time there staring at the emptiness of RSA's soul. I should have taken the clue seeing people taking off their headset making faces. I felt like with a better demo and controllers the execution would have been better, but after having tried the HTC Vive (see my blogpost), the competitor from valve and HTC, it's hard to be impressed by the Rift.

I saw people wining fitbit smartwatches, 50\$ amazon coupon (damn you Jason!) and bluetooth speakers...

The whole thing is just entertainment if you're not trying to buy anything. There are raffles, games, and also after a certain hour... you get free beers (and even hard liquor at the Microsoft bar, but shhhh). And I didn't tell you about the cheese buffet, the baked-in-front-of-you cookies, the cupcakes everywhere, the... oh my!

Arsenal

I feel like I should mention Arsenal, although I didn't take part in it at all. From what I understood it's like briefings but for presenting a tool. Some people only swear by that but I felt like I would waste time trying to understand a tool I might have no use for.

Networking and Parties

The best thing I did while there was to attend the different parties. It's usualy short, like 2 hours, and you get free booze and sometimes free food. You get to meet a lot of cool people too.

If I had to re-do it I would avoid these loud parties though, they were nice as I got to see what big clubs in Vegas look like. But the music is often too loud and the bars so crowded that you end up doing nothing and talking to no one.

The trainer's party was the nicest I attended (but you need to be a trainer, speaker, etc...), Rapid7's was the most impressive.

Protip: always take the card that is inside your badge with you, you might get bounced if you don't show up with it since they always want to scan your badge.

Vegas - Part 1: Blackhat 2015 posted August 2015

inb4 people start complaining that this blogpost is not about crypto. It's not.

Diving in

That's it, I'm leaving Chicago for the arid desert of Nevada. Las Vegas, we meet again.

First let me say that I love Vegas, and I think anyone should go see what it looks like at least once in their life. Imagine a bunch of billionaire wandering in the desert, high on cocain, lost in their train of thoughts, laughing their ass off and suddenly coming up with the idea of bringing dozens of architects in the same desert and throw loads of money at them with no directions what-so-ever. Just for the lulz.

And that's how Vegas happened.

But I'm not here to eyeball at buildings and visit their guts. This time I'm here to mingle with nerds, geeks and other SAPs (Socially Awkward Penguins). I'm here to learn about the latest security vulnerabilities, the craziest discoveries of the best of the best. I'm here to meet with my tribe. I'm here to attend BlackHat and Defcon, the two biggest hacker conventions. And I'm seldom going to see the natural lights of our sun for a good long week.

But weird things started on the way, in the plane, when one of the hotess handed me a napkin. To me, only me. A white and clean napkin, nothing else. Did I have a booger? Nope. Was it something on my face then? Nein. The United Airline skeequing chairs, crying babies and eye-vessels blowing/nose congesting air conditionner were already killing me when we began to dive toward the unfamous LV.

Training

A couple of hours after I was in the Mandalay arpenting the corridors of its enormous conference center. Two huge floors filled by multiple rooms of different sizes. Not a living soul. I checked-in to get my badge and got a blackhat bag with a few goodies. The four first days of blackhat are reserved for trainings.

I waited in the hallways, enjoying the complimentary coffee & cookies while sitting in these huge sofas that were decorating the place. At 6pm I met with my coworkers and we went to play Craps

The next morning I woke up early, dressed and went to eat the blackhat breakfast in a huge room filled with empty tables, some of them had people sat across each other not saying a word. I ate, drank my coffee and went to the class room.

I spent two days as a trainer helping Tom Ritter, Sean Devlin and Alex Balducci giving the course Beyond the BEAST: Deep dives into crypto vulnerabilities. A mix of general culture in crypto, reknown attacks as exercises, cool crypto stuff we are excited about and some hours spent in the mathematics of cryptography. Every break we would go in the hallway, get some of the free pastries and coffee and chat a bit. Then we would go back to the class and teach. It went pretty well and I thought the convention would continue like that. I had no idea of the storm that was going to happen.

Briefings

I woke up and headed to the Conference, passing by the swimming pool that I had still not visited and that I would not visit for the rest of my stay. Attending Blackhat and the Defcon was pretty much staying indoors for a week. It was working, drinking, getting free stuff and meeting people without producing any natural vitamins.

The briefings are the talks. A bunch of people apply for Blackhat CFP (Call For Papers) and if they get accepted by a jury they are allowed to give a talk at the convention. People then have to choose between 8 talks happening at the same time (more or less), and then regroup in these gigantesc rooms to hear someone talking about something.

This is not training time anymore, we don't receive complimentary breakfast and lunch, hallways are now crowded and you can even see camera crews. Thing that you will never see at Defcon.

I started by going mostly to crypto talks or other subject I understood better. Crypto talks were rare. Not that it mattered since I was expecting this but I felt like the quality of most talks were meh and I rarely went out of a room with the feeling that I actually got something from it.

Jeff Jarmoc told me that a good way of taking something out of these was to not look at the schedule and to wander and go sit at random talks. This is an excellent idea that I'll try to apply next time.

Most of the time I felt like it could have been better explained, or I could have read about that/watched a video on youtube and understood it way better. Maybe it's just me and the format of attending a talk is not working in my case, but besides a few talks I left unimpressed most of the time.

One talk stood out from the others, Remote Exploitation of an Unaltered Passenger Vehicle by Charlie Miller & Chris Valasek. First it was entertaining, second it was telling a story. That's what a good talk should do no? Be easy to follow, and by that I don't mean easy, but pedagogical. The "conversation" format where Charlie and Chris talked like they were just talking to one another retelling a story to their friends was just awesome. I left out, read that they were giving the same talk again at Defcon and planned to go see their talk one more time. That's how good it was.