Blog

The 2018 Contest Winners

First, an apology: we’re super late posting the 2018 entries, and we’re sorry. We know some of you have been waiting to see them for a long time. We have more to say about the future of the contest, but first, let’s see the winners! Winner: Matt Cheung – Incomplete Elliptic-Curve Parameter Validation The winning entry comes from Matt Cheung. You can find the full submission here...

2018 Sponsors & Prizes

Underhanded Crypto Contest participants put a lot of effort into their submissions, and it’s important for us to reward that effort. For the 2018 Underhanded Crypto Contest, we have two generous sponsors that have agreed to provide cash prizes for our winners. See the contest rules for more information. Note: Due to tax regulations, winners may be required to complete certain tax forms to...

Rules for the 2018 Underhanded Crypto Contest

Introduction The Underhanded Crypto contest was inspired by the famous Underhanded C Contest, which is a contest for producing C programs that look correct, yet are flawed in some subtle way that makes them behave inappropriately. This is a great model for demonstrating how hard code review is, and how easy it is to slip in a backdoor even when smart people are paying attention. The Underhanded...

Sorry, we’re late! Last year’s entries are coming!

We’ve taken too long to publish all of last year’s entries. We wanted to give each non-winning entry its own blog post, since they can all teach us a useful lesson, but I (Taylor) promised to write those blog posts and took far too long. Sorry everyone! Those posts are finished now and we’ll be posting one per week. Here’s the first one: AverageSecurityGuy’s Entry...

Sc00bz’s 2017 Entries: Circumventing Slow Password Storage, and Targeted Backdoor Delivery

Sc00bz sent in two entries to the 2017 Underhanded Crypto Contest. First Entry Sc00bz’s first entry (inspired by one of Adam Caudill’s tweets) is a password storage library that appears to use bcrypt, a slow password hashing function. However, instead of generating the salt randomly, it uses a hash of the user ID and password: // Generate salt $salt = substr(hash_hmac('sha256'...

Recent Posts

Categories