Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    T

    Tobtu

    tobtu.com · Personal blog · on HN since 2013

    Personal site of a security researcher who breaks cryptography and password software, including Cryptocat, LastPass and PRNGs.

    Visit blogHN submissions
    Security
    What HN says

    HN commenters cite it for cracking password managers and exposing Cryptocat's flawed random number generation and key weaknesses.

    Stats for nerds
    24HN people shared it
    8linked in comments
    547story points
    Aug 2022last shared
    2013people per year2022

    Top posts on HN

    1. 1
      DecryptoCat
      14 people · 516 points · first shared 2013 · 276 comments on HN
    2. 2
      SRP Is Now Deprecated
      3 people · 18 points · first shared 2021 · 2 comments on HN
    3. 3
      MegaCracker
      1 person · 5 points · first shared 2013 · Discussion on HN
    4. 4
      Why No One Should Use LastPass
      3 people · 3 points · first shared 2013 · 3 comments on HN
    5. 5
      How to mess up with crypto software badly? Some thougths on CryptoCat.
      1 person · 2 points · first shared 2013 · Discussion on HN
    6. 6
      Breaking a PRNG: Is It Called Xor Shift or Xor Shit?
      1 person · 2 points · first shared 2023 · 1 comments on HN
    7. 7
      Minimum Password Settings (2022)
      1 person · 1 points · first shared 2024 · Discussion on HN
    8. 8
      Blackhat2022
      1 person · first shared 2022

    What HN people wrote when they linked it

    • zarothJul 2013

      First, this is a great article showing the bias in Cryptocat's very awkward PRNG code.

      However, the off-by-one bias was actually the least of the problems with Cryptocat's random numbers...

      From reading Steve's write-up, the problem was that their keys were ridiculous undersized, because they called their own function wrong:

      May 7, 2012 (switched from DH to ECC):

      myPrivateKey = Cryptocat.randomString(32, 0, 0, 1);

      April 19, 2013:

      rand = Cryptocat.randomString(32, 0, 0, 1);
      myPrivateKey = BigInt.str2bigInt(rand, 10);

      June 3, 2013:

      rand = Cryptocat.randomString(64, 0, 0, 1, 0);
      myPrivateKey = BigInt.str2bigInt(rand, 16);


      > The bug that lasted 347 days was the confusion between a string and an array of integers. This made the ECC private keys ridiculously small because they passed a string of decimal digits into a function expecting an array of 17, 15 bit integers. Each character was considered an element in the array. So each of those "15 bit integers" were only the values 0 to 9 (3.32 bits). Also the least significant 3 bits are zeroed giving you a key space of 2*10^16 (2^54.15). -- http://tobtu.com/decryptocat.php

      See for yourself here: https://github.com/cryptocat/cryptocat/commit/a17bb1599463e0c079137d8200eb32002ac1afc7#src-core-js-lib-multiparty-js-P4

      Even now looking at this code, for me it just doesn't pass the 'WTFs per minute' test... It still looks fucking wrong to me... Cryptocat.randomString(64, 0, 0, 1, 0) returns a 64 character string of…

    • midas007Feb 2014

      LOL. http://tobtu.com/decryptocat.php

      On a serious matter, javascript (eg all browsers) absolutely needs to change to make the web more trustworthy. I agree with some of the Matasano points[0], but these are the minimum, exhaustively complete changes that would improve browser security:

      i. js that can be cryptographically signed and verified, a trust model and a browser security policy to enforce it.

      Think ascii armored GPG signature as a comment for the code it encloses.

      ii. js native extensions: able to talk to native code that was previously installed

      iii. js objects that can be made immutable (can't change them in any way)

      iv. js objects that can be made un-protypable (can't copy or "subclass" them)

      v. js properties that can be made read-only

      vi. js properties that can be made private (only the object itself can use them)

      With folks pushing to make this happen across all browsers, javascript theft of bank passwords and credit card numbers would be much harder. Crypto stuff like the Stanford library would benefit.

      References:

      0. http://www.matasano.com/articles/javascript-cryptography/

      1. https://crypto.stanford.edu/sjcl/

    • nkobeissiMay 2016

      I am the original author of the software you refer to. Before its complete rewrite (released two months ago), Cryptocat was based on a codebase that I wrote starting in my early undergrad and that was notorious for containing many high-severity vulnerabilities. The most important was "Decryptocat", documented by Steve Thomas [0] but we also had:

      * AES-CTR counter-reuse (2012)

      * Biased Fortuna CSPRNG implementation [1] (2013)

      To be sure, Cryptocat's substandard reputation was well-deserved; but all the same, I think that every vulnerability that did pop up was addressed responsibly and with full disclosure.

      Since then, there has been a major rewrite that I am conversely quite happy with.

      [0] https://tobtu.com/decryptocat.php

      [1] https://nakedsecurity.sophos.com/2013/07/09/anatomy-of-a-pseudorandom-number-generator-visualising-cryptocats-buggy-prng/

    • anon4711Nov 2016

      One of the problems I face when somebody comes along and tells me that they're now on Telegram, Cryptocat, Wire, or whathaveyou is that I might recall an issue but there doesn't seem to be a good up-to-date overview that answers the questions (1) should I trust these people (how bad was it; was it in their code or a dependency?) and (2) is it known to be far less secure than it advertises? (still?)

      I recall e.g. that Moxie reviewed Telegram's security, found that none of it made any sense and that its authors didn't know what they were doing. https://tobtu.com/decryptocat.php looks like the cryptocat analogue of that. Have the two projects improved somehow? Have some people joined or others left?

      Could you please also provide links for the claim that CryptoCat and Telegram are being used by governments to hunt down activists?

    • StromApr 2015

      In my experience, most malware creators are pretty terrible. Even in 2015 it's common for malware to communicate with C&C servers that have classic SQL injection vulnerabilities.

      More specifically on the topic of ransomware, have a look at this gem [1], which uses RSA, but the key is 128 ASCII digits. Very similar to the cryptocat disaster. [2]

      [1] http://blog.cassidiancybersecurity.com/post/2014/02/Bitcrypt-broken

      [2] http://tobtu.com/decryptocat.php

    • bitsteakDec 2013

      That's a pretty amazing hyperbole from kaepora (twitter description of incident vs actual e-mail response from Apple). And later, Apple accepted the fix: https://github.com/cryptocat/cryptocat/issues/542#issuecomment-30551640

      Kaepora is so full of himself, I'm not sure how anyone takes what he says or the apps he writes seriously. Glad that people are putting stock in more consistent developers these days (http://tobtu.com/decryptocat.php).

    Related

    Matasanomatasano.com150 people

    Javascript Cryptography Considered Harmful

    Matasano
    Company · last shared 2023
    Daniel J. Bernsteinblog.cr.yp.to144 people

    NSA, NIST, and post-quantum crypto: my second lawsuit against the US government

    Daniel J. Bernstein
    Personal · last shared 2026
    Cryptocat Blogblog.crypto.cat17 people

    Cryptocat for iPhone and Android – Call for Review

    Cryptocat Blog
    Company · last shared 2015
    Trail of Bits Blogblog.trailofbits.com278 people

    RSA is a fragile cryptosystem

    Trail of Bits Blog
    Company · last shared 2026
    Naked Securitynakedsecurity.sophos.com740 people

    Serious Chrome zero-day

    Naked Security
    Company · last shared 2023
    Aaron Toponcepthree.org79 people

    The Meaning of 'su'

    Aaron Toponce
    Personal · last shared 2023
    Cryptologiecryptologie.net50 people

    Let's Encrypt Overview

    Cryptologie
    Personal · last shared 2025
    Noncombatantnoncombatant.org42 people

    Downloading Software Safely Is Nearly Impossible

    Noncombatant
    Personal · last shared 2025