David Wong

cryptologie.net

cryptography, security, and random thoughts

Hey! I'm David, cofounder of zkSecurity, advisor at Archetype, and author of the Real-World Cryptography book. I was previously a cryptography architect of Mina at O(1) Labs, the security lead for Libra/Diem at Facebook, and a security engineer at the Cryptography Services of NCC Group. Welcome to my blog about cryptography, security, and other related topics.

Silk Road’s trial just closed and I ran into this old (?) journal of Ross Ulbricht that contains quite a bunch of interesting passages. I think this will turn into a movie.

03/25/2013
server was ddosed, meaning someone knew the real IP. I assumed they obtained it by becoming a guard node. So, I migrated to a new server and set up private guard nodes. There was significant downtime and someone has mentioned that they discovered the IP via a leak from lighttpd.

03/28/2013
being blackmailed with user info. talking with large distributor (hell’s angels).

03/29/2013
commissioned hit on blackmailer with angels

04/01/2013
got word that blackmailer was excuted created file upload script started to fix problem with bond refunds over 3 months old

04/02/2013
got death threat from someone (DeathFromAbove)

04/04/2013
withdrawals all caught up made a sign error when fixing the bond refund bug, so several vendors had very negative accounts. switched to direct connect for bitcoin instead of over ssh portforward received visual confirmation of blackmailers execution

04/06/2013
gave angels go ahead to find tony7

04/08/2013
sent payment to angels for hit on tony76 and his 3 associates

04/21 - 04/30/2013
market and forums under sever DoS attack. Gave 10k btc ransom but attack continued.

05/04/2013
attacker agreed to stop if I give him the first $100k of revenue and $50k per week thereafter. He stopped, but there appears to be another DoS attack still persisting

05/07/2013
paid $100k to attacker

05/22/2013
paid the attacker $50k

05/29/2013
rewrote orders page paid attacker $50k weekly ransom $2M was stolen from my mtgox account by DEA

09/19 - 09/25/2013
red got in a jam and needed $500k to get out. ultimately he convinced me to give it to him, but I got his ID first and had cimon send harry, his new soldier of fortune, to vancouver to get $800k in cash to cover it. red has been mainly out of communication, but i haven’t lost hope. Atlantis shut down. I was messaged by one of their team who said they shut down because of an FBI doc leaked to them detailing vulnerabilities in Tor.

09/30/2013
Had revelation about the need to eat well, get good sleep, and meditate so I can stay positive and productive.

All of this sounds so surreal. He is making a huge amount of money for sure. A million dollars doesn’t seem much for him. He is constantly buying servers and he seems to be coding a lot. He also seem like a normal dude.

And here’s a funny thread on who’s Variety Jones

Magma vs Sage vs Pari

blog

I was looking for a way to know what are the real differences between magma, sage and pari. I only worked with sage and pari (and by the way, pari was invented at my university!) but heard of magma from sage contributors.

From the sage website: The Sage-Pari-Magma ecosystem

The biggest difference between Sage and Magma is that Magma is closed source, not free, and difficult for users to extend. This means that most of Magma cannot be changed except by the core Magma developers, since Magma itself is well over two million lines of compiled C code, combined with about a half million lines of interpreted Magma code (that anybody can read and modify). In designing Sage, we carried over some of the excellent design ideas from Magma, such as the parent, element, category hierarchy.

Any mathematician who is serious about doing extensive computational work in algebraic number theory and arithmetic geometry is strongly urged to become familiar with all three systems, since they all have their pros and cons. Pari is sleek and small, Magma has much unique functionality for computations in arithmetic geometry, and Sage has a wide range of functionality in most areas of mathematics, a large developer community, and much unique new code.

I also noticed that Sage provides an interface to Shoup’s NTL through ntl. functions. Good to know!

here’s an entertaining piece about NSA backdoors through history: http://ethanheilman.tumblr.com/post/70646748808/a-brief-history-of-nsa-backdoors

1997 Lotus Notes: The NSA requested that Lotus weaken its cryptography so that the NSA could break documents and emails secured by Lotus notes. This Software was used by citizens, companies and governments worldwide.

I talked about this one here.

I shipped!

You can get the .xpi on the github repo. Just open it with Firefox and no restart is needed! (Ctrl+O in firefox)

For now it’s very basic. You will see this icon next to the close button:

firefox time tracker

Yes I know I should create a custom icon :D but I was too busy coding. You will then see some basic statistics of the day.

firefox time tracker

I’m now working on making this page nice with pretty graphics and more statistics (week, month, tracking of the most visited website of the week…).

So if you want to try my plugin, know that it works (so far)! And that you should pay this blog a visit because I’m planning on updating it.

suggested reads:
Firefox Time Tracker blog
New portfolio blog

windows

A step by step tutorial showing you how to get admin credentials on a windows machine: http://imgur.com/gallery/H8obU

tl;dr:

  • reboot in start-up repair mode
  • read privacy statement of one menu should open notepad
  • thanks to notepad replace sethc 1 with cmd
  • so now when you press 5 times on shift it will call cmd instead of sethc 1
  • you know have a shell, use command net localgroup Administrators to get a list of the admins
  • type net user <ACCOUNT NAME HERE> * to change one account’s password.

If you’re looking for a “fix”, microsoft advise you to turn off sticky keys all completely

And here’s another exploit for windows 98

Note that as soon as you can access the hard drive, you don’t need to use the first trick and can switch around programs in system32 as you wish (except if windows is encrypted with bitlocker). For example you can do this with an ubuntu live cd and swap cmd with the magnifier tool and you will be able to do the same thing.

Firefox Time Tracker

blog

I always thought I could reduce the amount of time slacking if I could track my time on facebook, reddit, hackernews… like I track my calories intake to reduce my weight. I couldn’t find a good firefox plugin for that so I decided to make one.

I’m opensourcing the code right here: https://github.com/mimoo/FirefoxTimeTracker

I’m pretty surprised with Firefox SDK and it’s actually easier than what I thought to build a browser plugin. It might also help that everything Mozilla documents is clear and pretty.

At the moment the code successfully logs the time passed on different websites across sessions. It just lacks nice graphs. If you want to try it just wait a couple days until I ship.

suggested reads:

from wikipedia:

A kleptographic attack is an attack which uses asymmetric encryption to implement a cryptographic backdoor. For example, one such attack could be to subtly modify how the public and private key pairs are generated by the cryptosystem so that the private key could be derived from the public key. In a well-designed attack, the outputs of the infected cryptosystem would be computationally indistinguishable from the outputs of the corresponding uninfected cryptosystem. If the infected cryptosystem is a black-box implementation such as a hardware security module, a smartcard, or a Trusted Platform Module, a successful attack could go completely unnoticed.

I’ve seen implementations of this in the wild, here on reddit (python) and here on lobsters (C#)

Here’s a funny topic on CS Theory StackExchange: https://cstheory.stackexchange.com/questions/4491/powerful-algorithms-too-complex-to-implement?newreg=dbe44b3dd8ca41019f6a4a23b9fea6d3

What are some algorithms of legitimate utility that are simply too complex to implement?

Explanation of Shellshock

blog

Here’s an awesome explanation of shellshock: https://bitbucket.org/carter-yagemann/shellshock/src/f0a88573f912?at=master

This repository contains useful documents which I have written to help educate the cybersecurity community on the “ShellShock” bash vulnerability. These documents are designed to help facilitate learning, including on how to identify possibly vulnerable services and how to remediate such vulnerabilities.

It’s actually the clearest explanation I’ve seen on the subject.

Made by these guys from Syracuse:

  • Carter Yagemann
  • Amit Ahlawat
suggested reads:

Excellent finding from Adam Back.

If I understand the article correctly, when exporting encrypted content with Lotus-Notes, 24 bits of the 64 bits key would be encrypted under one of the NSA’s public key and then appended to the encrypted content (I guess). This would allow NSA to decrypt those 24 bits of key with their corresponding private key and they would then have to brute force only 40 bits instead of 64 bits.

This shouldn’t allow any bad attacker to get any advantage if they don’t know the NSA’s private key to decrypt those bits. And if they do acquire it, and they do decrypt 24bits of key, they would still have to have the computing power to brute force 40 bits of key. I have no idea what I’m talking about but I have the feeling the NSA might be the most powerful computing power when it comes to brute forcing ciphers.

suggested reads:
📖 my book
Real-World Cryptography is available from Manning Publications.
A practical guide to applied cryptography for developers and security professionals.
🎙️ my podcast
Two And A Half Coins on Spotify.
Discussing cryptocurrencies, databases, banking, and distributed systems.
📺 my youtube
Cryptography videos on YouTube.
Video explanations of cryptographic concepts and security topics.
page info:
page 42 of 63
622 posts total