8 ms·
How I Stole a User's Siacoin
- RichardHeart 9y agoI'd pay to discover the error I made :)
- bubbabojangles 9y agoI used to mine Bitcoin back in 2011 and I lost my wallet.dat file (through several stupid moves on my part). It's got approx 103 BTC in it, anyone is welcome to it, I've given up trying. https://blockchain.info/address/166BuLPWHUjqoqiYp5rGE3B5r5AmqgHpoL https://blockchain.info/address/166BuLPWHUjqoqiYp5rGE3B5r5Am...
- dantillberg 9y agoWow. That's like, "I know I bought a house a few years ago. It was a decent house, I think, but I lost the address and can't seem to remember where it was or how to find it again." (except that with Bitcoin, it's like, "the house is somewhere in this galaxy, but I can't remember which solar system")
- diegoprzl 9y agoIt's more like: "I bought a painting for 20$ at flea market. 6 years later I learned it was from Van Gogh but sadly I don't know where it is now."
- jacquesm 9y agoMy dad actually bought a painting for $25 at a flea market in Amsterdam and it turned out to be a Paul Citroen, we ate pretty good for a couple of years because of that. Not quite a Van Gogh but still, a good catch.
- diegoprzl 9y agoIt's not possible with only the address. If you have the encrypted wallet I could give it a try though.
- placeybordeaux 9y agoAs in trying to guess the private key given the hash of a public key? If thats the game there are higher value address to try.
- vxl 9y agoDo you have the hard drives wallet.dat was stored on at some point?
- NwmG 9y agoi was going to ask the same thing, you can search the bytes in hex for 01 03 6B 65 79 41 04
- bubbabojangles 9y agoI have tried that, I've been scouring old hard drives for the last few weeks. I also had the file "encrypted" on a True Crypt Container in Dropbox, but I deleted the container in 2012 before the file was lost. (One of the stupid moved I made) Dropbox will/ can not help me recover the file.
- illumin8 9y agoMy brother accidentally deleted his wallet.dat from Dropbox a few years ago - he had given it a random filename and encrypted it with GPG so it was unrecognizable to hackers (and apparently him as well). It had 1,000 BTC in it! He had received them from a generous Bitcoin contributor in the early days who said "here you go, hold on to it, it will be worth something someday." I still give him a hard time about his $3 million USD mistake...
- lend000 9y agoAny hints on how you generated you key/passphrase? Did you use Satoshi's original Bitcoin client? Will reward information which results in successful discovery :)
- 6c75726b6572 9y agoWondering the same thing. Was a passphrase used to generate the private key?
- tylersmith 9y agoDave the wallet recovery guy might be able to help if you have any sort of hints as to what your key might be. Obviously do some research to verify I'm not scamming you. Good luck. https://walletrecoveryservices.com https://walletrecoveryservices.com
- feelix 9y agodo you have any spinning disks around that once may have had the unencrypted keys on it? I could modify the commercial data recovery software I wrote (https://macosxfilerecovery.com/ https://macosxfilerecovery.com/) to scan your drive for the private keys
- bubbabojangles 9y agoThanks for the offer, I kept the drive I stored the TrueCrypt container on. I think it was like a bad drive arm or PCB. I'd considered paying for a service to move the platters to a good drive, but at the time the service cost more then Bitcoin worth and there was no guarantee of recovery. I ended up throwing the drive away (another dumb move). Never in my wildest dreams did I think it would increase in value like it did. I think I would have sold a lot sooner if I had access to the wallet file for the whole time.
- feelix 9y agoThat's alright. I see a lot of these posts saying "the bitcoin I lost would be worth $X Million dollars now", but the thing that people overlook is that it would not be worth that now, because they would have sold it a lot earlier if they had access to it. Many people would sell the moment it's all worth about $20k depending on a few factors. In almost no cases is is it truly a million or multi million dollar loss.
- dantillberg 9y agoI often wish that password entry for things fully under your control (i.e. when there are no retry limits aside from brute computational power) would come with limited brute forcing support. Such password dialogs could just let you type your best effort, and they could use the things you type to inform the guessing process; you could fat-finger a character or two, and it would just take a moment longer to log in as it uses the accurate parts of the data to make educated guesses of the password. For old encrypted files, for example, I often don't remember which password or which combination of passwords I might have used, but I can provide all the important bits and a smart program could easily guess the right combination.
- eterm 9y agoIt's a protocol, there's no way to rate-limit beyond the mathematics behind the protocol. The author of the blog post could have written their own software to try passphrases if existing software is rate limited.
- ktta 9y ago(offtopic - misunderstood comment. Let's assume the parent comment said 'we should prevent bruteforcing') As the other commenter said, there's nothing you can do to prevent brute forcing. What you can do, is have a very expensive KDF. So for every password you enter the wallet will take a very long time to 'unlock', which is basically the process of deriving the key from the input. 'Expensive KDF' sounds cryptic, but often just having some memory/CPU requirements for an instance of the KDF should suffice. Fun fact: There is a reason why when you enter a wrong password for `su` or `sudo` it seems to take longer to throw the wrong password dialogue than to log you in. That's because the password authentication module (called PAM) artificially delays you to prevent brute forcing. You can go and change it if you want. (I would discourage it) Of course, this won't stop everyone. One can just put the harddrive in a different computer to get the hash of the password and crack it within a day with proper resources. This is the problem with trying to 'stop' bruteforcing at the input level. You must already asssume the attacker has the hash, then the difficulty must be determined. That's the point of people arguing about password hashes (for fun, of course)
- 9y ago
- logicallee 9y agoThis was an amazing story, but there are LOT more take-aways here!!! First of all, let's look at something: the burden of memorizing 29 words was SO great, that despite carefully writing it down and double-checking it, the user failed to memorize it or even come close: after trying 500 times, they could not tell that ionic was a different word from tonic. No doubt they had looked at each handwritten word very carefully during the 500 attempts, but just could not do it. By the way, if you write the word ionic down in your own handwriting, you could easily see that it might look exactly like your own handwritten tonic. There is something else about these 29 words. You can find the number of bits of entropy in a dictionary you'd pick one word from at random by taking the log2 of the number of entries. (In a pinch you do log 2 by taking the log and dividing by the log of 2). That shows that 1626 words (the number of entries in the dictionary) have 10 bits of entropy.[1] So by making the user "remember" (write down) 29 such words, you are making them memorize (write down) 290 bits of entropy. 2^290 is 1.9892929e+87. There are about 10^80 atoms in the ENTIRE universe (a hundred billion galaxies with a hundred billion stars each). You'd have to get every atom in our entire universe -- every planet's every atom, every sun's, every black hole's, every one of the atoms anywhere in the world, to try 10,000,000 operations each, before you got an answer. That is WAY too much. But despite having such an incredible amount of extra information in there (base-64 encoding 290 bits would take 48 characters - six bits per character), it does not contain enough of a checksum to correct against a single transcription error. So this is a great example of a solution that is very user-hostile: so long that the user is forced to write it down, but despite its length so fragile that it does not contain any help against any amount of corruption. And very clearly, the longer it is, the greater the possibility of user error: could you hand-write an entire Dickens novel without a single error anywhere for example? What about a 12-character alphanumeric password? So the latter is stronger than the former! The latter is a better password. I am not sure what kind of passwords would have redundancy built-in (so that a slightly wrong version would be corrected and accepted) but this would be a good time to find out. One last thing. Does anyone know how long it takes to try a combination? I'm surprised that the blog poster went through the trouble of finding Levenshtein distance, since I would think from a coding standpoint it would be faster to code trying all 1625 other possibilities for the 1st word (leaving the rest unchanged), trying the other 1625 possibilities for the 2nd word, and so forth. Since there are 29 words this is just 47125 possibilities in total which doesn't seem like it's that many. (Then again, some 'treasure hunter' the blog poster was "competing with" might have had that script running already when the blog poster got there first!) [1] https://www.google.com/search?q=(log+1626)+%2F+(log+2) https://www.google.com/search?q=(log+1626)+%2F+(log+2)
- jancsika 9y agoSo what are both "ionic" and "tonic" in the same dictionary for a human readable entropy library?
- Taek 9y agoGood question. I'm the author of that library and I can say I just borrowed the word list from another project. Luckily, that library only cares that you get the first three letters of each word correct, so we can update the word to 'tonsil' or 'tongue' without breaking compatibility.
- Scaevolus 9y agoUsing ngram or part-of-speech data could create better mnemonics: https://rmmh.github.io/abbrase/ https://rmmh.github.io/abbrase/ Filtering the list to require a minimum edit distance of 2 or 3 would be quite easy, too!
- codys 9y agoYa, it seems like trying to choose words that are hard to mistake for each other (high lev distance, and perhaps also considering letter similarity) would be a very good idea for selecting a dictionary like this. I wonder what the original process was?
- tonyhb 9y agoEFF has a new wordlist which can be used for things like this. It focuses on phonetic and spelling differences across each word so that this doesn't happen, plus it prevents words from "duplicating" when you combine them (ie the two words `in put` and `input` being the same). https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases https://www.eff.org/deeplinks/2016/07/new-wordlists-random-p...
- r00fus 9y agoThis is awesome. I had no idea my EFF money was doing great things like this in addition to fighting for net freedom :)
- awalton 9y agoSo I can overlook the misdemeanor pocketing of a few bucks with the intent on giving it back, but you basically admit and brag about breaking the Computer Fraud and Abuse Act as some kind of exercise of how clever you are for doing a dictionary attack against a weak and exposed key? Good luck sir.
- problems 9y agoWould CFAA really apply here? He's not accessing any computer illegitimately, the blockchain is public record, the key was posted to a public website. He's accessing the public siacoin network, posting transactions that anyone has permission to.
- IanCal 9y agoI'm not convinced that "posting to a public network" gets you out of the sketch. Sections 5-7 seem at least partially relevant, but then I'm neither in the US nor am I a lawyer anywhere else. Posting data to a remote system, with the clear intent of taking a thing of value from another person without permission. Perhaps it falls between the cracks, but I'd be reasonably surprised if it doesn't come under this or another similar act. https://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act https://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act
- problems 9y agoWell, have a look at United States v. Kane, it basically indicates that if you don't exceed authorized access you're in the clear. It's hard to say that posting a cryptographic signature to a network design to accept them from anyone exceeds authorized access if pushing buttons to trigger an exploit on a poker machine doesn't. I'm sure you could have a pretty good argument in court if they went after you using CFAA. Other theft and fraud laws might cover it without issue though, just saying CFAA might not be the right choice here.
- IanCal 9y agoPerhaps, again I'm not a lawyer. However, one of the things brought up is that they didn't do something with a computer “which is used in or affecting interstate or foreign commerce or communication”. I don't know about the additional "unauthorised access" but I'd be surprised if someone can't make a case from cracking a password to do something on a network you know shouldn't be possible unless you were the person who owned the address.
- markc 9y agoA wise wife tagged and jagged and nagged Her aptitude had altitude to push the lush He bore the brunt with a grunt and tonic His music was ionic sonic Their topic too toxic to adapt And they, too adept to adopt