david wong

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.

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

Alright! My master thesis is done. Here's a download link

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

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.


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.

The draft is here.