Bitcoin Forum
May 02, 2024, 03:28:09 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Tool to brute-force offline armory password?  (Read 3095 times)
infernusdoleo (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
January 31, 2015, 02:54:33 PM
 #1

I'm travelling and need to access my bitcoin that I keep in my cold storage wallet. Brought my offline laptop that houses my offline wallet with me knowing I'd likely need access to it. (I mention this because i do not have access to my unencrypted paper backup for a week until I get home).

Apparently, I used a hyper secure password which I cannot remember the exact details of. Here's the issue: I know how I made the password. It's X number of different phrases/passwords I've used before, spaced out with various symbols, with a symbol or three at the beginning/end. I spent 30 mins last night typing in every combo of those things I could remember, and kept failing. I know there are tools that can brute force a bitcoin wallet, but I have no idea if anything exists for armory. Would really help to have access to my coin before I got home next week.

Something that I could give some patterns to and let it try until it figured it out.

Anyone have any idea if there's any software that could help?
1714663689
Hero Member
*
Offline Offline

Posts: 1714663689

View Profile Personal Message (Offline)

Ignore
1714663689
Reply with quote  #2

1714663689
Report to moderator
Even in the event that an attacker gains more than 50% of the network's computational power, only transactions sent by the attacker could be reversed or double-spent. The network would not be destroyed.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714663689
Hero Member
*
Offline Offline

Posts: 1714663689

View Profile Personal Message (Offline)

Ignore
1714663689
Reply with quote  #2

1714663689
Report to moderator
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1345

Armory Developer


View Profile
January 31, 2015, 04:09:00 PM
 #2

We have an in-house tool for that purpose (as long as you remember enough of your password that is). Create a ticket and ask for that, it will be escalated to the right person.

https://support.bitcoinarmory.com/home

Cypherpunk38
Newbie
*
Offline Offline

Activity: 40
Merit: 0



View Profile
January 31, 2015, 10:16:16 PM
 #3

We have an in-house tool for that purpose (as long as you remember enough of your password that is). Create a ticket and ask for that, it will be escalated to the right person.


Umm..wait...what? How is this possible on a secure wallet? We definitely need more explanation as to how this works. If YOU GUYS can do it ANYBODY can do it if they figure out how. Can you explain HOW you can do this?
SirChiko
Legendary
*
Offline Offline

Activity: 966
Merit: 1000



View Profile
January 31, 2015, 10:22:35 PM
 #4

We have an in-house tool for that purpose (as long as you remember enough of your password that is). Create a ticket and ask for that, it will be escalated to the right person.


Umm..wait...what? How is this possible on a secure wallet? We definitely need more explanation as to how this works. If YOU GUYS can do it ANYBODY can do it if they figure out how. Can you explain HOW you can do this?
Did you read the details? You have to remember most of your password.

The only online casino on which i won something. I made 17mBTC from 1mBTC in like 15 minutes.  This is not paid AD!

▀Check it out yourself▀
Cypherpunk38
Newbie
*
Offline Offline

Activity: 40
Merit: 0



View Profile
January 31, 2015, 10:26:09 PM
 #5

We have an in-house tool for that purpose (as long as you remember enough of your password that is). Create a ticket and ask for that, it will be escalated to the right person.


Umm..wait...what? How is this possible on a secure wallet? We definitely need more explanation as to how this works. If YOU GUYS can do it ANYBODY can do it if they figure out how. Can you explain HOW you can do this?
Did you read the details? You have to remember most of your password.


Ok, so it seems like the tool just brute forces the rest of the password from the point you remember on. So, how much of my password do I need to remember for this to work? And, if I remember a good portion of my password, then it's likely a password I've used before and, thus, I'd remember the rest of it probably. So let's say I have a 40 character password. How much of that do I need to remember for this to work?
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1345

Armory Developer


View Profile
January 31, 2015, 10:26:55 PM
 #6

We have an in-house tool for that purpose (as long as you remember enough of your password that is). Create a ticket and ask for that, it will be escalated to the right person.


Umm..wait...what? How is this possible on a secure wallet? We definitely need more explanation as to how this works. If YOU GUYS can do it ANYBODY can do it if they figure out how. Can you explain HOW you can do this?

Say you have a wallet for which you remember about 90% of your password, like you remember the particular letters and numbers, but not which of the letters are capitalized or where you put an underscore. This tool will take your base pattern and run all possibilities. The less you remember of your password, the harder a time it will have trying to complete it.

It can't guess your password out of thin air. You have to give us like 90~95% of your password to begin with.

Quote
as long as you remember enough of your password that is

SirChiko
Legendary
*
Offline Offline

Activity: 966
Merit: 1000



View Profile
January 31, 2015, 10:28:03 PM
 #7

We have an in-house tool for that purpose (as long as you remember enough of your password that is). Create a ticket and ask for that, it will be escalated to the right person.


Umm..wait...what? How is this possible on a secure wallet? We definitely need more explanation as to how this works. If YOU GUYS can do it ANYBODY can do it if they figure out how. Can you explain HOW you can do this?
Did you read the details? You have to remember most of your password.


Ok, so it seems like the tool just brute forces the rest of the password from the point you remember on. So, how much of my password do I need to remember for this to work? And, if I remember a good portion of my password, then it's likely a password I've used before and, thus, I'd remember the rest of it probably. So let's say I have a 40 character password. How much of that do I need to remember for this to work?
It depends on the capacity of the computer you have (computing power) but majority of it.

The only online casino on which i won something. I made 17mBTC from 1mBTC in like 15 minutes.  This is not paid AD!

▀Check it out yourself▀
Cypherpunk38
Newbie
*
Offline Offline

Activity: 40
Merit: 0



View Profile
January 31, 2015, 10:50:33 PM
 #8

We have an in-house tool for that purpose (as long as you remember enough of your password that is). Create a ticket and ask for that, it will be escalated to the right person.


Umm..wait...what? How is this possible on a secure wallet? We definitely need more explanation as to how this works. If YOU GUYS can do it ANYBODY can do it if they figure out how. Can you explain HOW you can do this?
Did you read the details? You have to remember most of your password.


Ok, so it seems like the tool just brute forces the rest of the password from the point you remember on. So, how much of my password do I need to remember for this to work? And, if I remember a good portion of my password, then it's likely a password I've used before and, thus, I'd remember the rest of it probably. So let's say I have a 40 character password. How much of that do I need to remember for this to work?
It depends on the capacity of the computer you have (computing power) but majority of it.

OK, I understand what you're saying. But, here's another question: how, without the private key, do you validate that tool has recreated the correct password? Is this documented anywhere?
infernusdoleo (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
January 31, 2015, 10:58:55 PM
 #9

Thanks for the info. I submitted a ticket.

Guys - it's a brute force tool. Which is utterly useless if you have a secure password. Will take years to figure it out.

The only reason I'm asking for this tool is Armory does not have an RPC interface or anything similar - if this were my bitcoin-qt wallet for which I effed up the password, I'd simply just brute force against the RPC with a perl script. But since it's Armory, and I need to manually type in all my password guesses, which would take forEVER, I was looking for electronic assistance. Which, thankfully, Armory has.

Unfortunately I havent heard back yet. It's the weekend. I hope I'm not waiting til Monday.  Undecided

As for how you validate it recreated the password - you use it. If it works, it did it right. If it does't, it didn't Wink How does the Armory client know you typed in the right password? Smiley



Cypherpunk38
Newbie
*
Offline Offline

Activity: 40
Merit: 0



View Profile
January 31, 2015, 11:08:58 PM
 #10

As for how you validate it recreated the password - you use it. If it works, it did it right. If it does't, it didn't Wink How does the Armory client know you typed in the right password? Smiley


Right, but that's because Armory has a way to validate it: it can try to decrypt your wallet. Since you're not sending the Armory developers your wallet or your private key, they don't have the ability to test to see if this is the right password and this tool would likely never actually work since they would/could just send you the first password they came up with and if it works it works, if it doesn't it doesn't.  Their answer seem to indicate that, given a weak enough password and you remembering enough of it for them to work from, they can send you a password that has a very reasonable chance of working and they might (they haven't said this so I don't know) have the ability to know when the recreation process succeeded or failed.

Don't get me wrong, I'm not trying to be a dick here at all and I certainly understand how brute force works. But what bothers me most is that they can have some certainty that the generation process worked. Unless I am completely misunderstanding how things work (and I may be, so feel free to correct me if I am) they shouldn't be able to do that without testing the password against a private key (which they don't and should not have).
infernusdoleo (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
February 01, 2015, 01:59:42 AM
 #11

Except... There's no such thing as another password that will "also work".
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1345

Armory Developer


View Profile
February 01, 2015, 03:47:06 AM
 #12

As for how you validate it recreated the password - you use it. If it works, it did it right. If it does't, it didn't Wink How does the Armory client know you typed in the right password? Smiley


Right, but that's because Armory has a way to validate it: it can try to decrypt your wallet. Since you're not sending the Armory developers your wallet or your private key, they don't have the ability to test to see if this is the right password and this tool would likely never actually work since they would/could just send you the first password they came up with and if it works it works, if it doesn't it doesn't.  Their answer seem to indicate that, given a weak enough password and you remembering enough of it for them to work from, they can send you a password that has a very reasonable chance of working and they might (they haven't said this so I don't know) have the ability to know when the recreation process succeeded or failed.

Don't get me wrong, I'm not trying to be a dick here at all and I certainly understand how brute force works. But what bothers me most is that they can have some certainty that the generation process worked. Unless I am completely misunderstanding how things work (and I may be, so feel free to correct me if I am) they shouldn't be able to do that without testing the password against a private key (which they don't and should not have).

etotheipi has an idea for that purpose, which was something like keeping an entry in each wallet for a public challenge you can roll against password candidates, so that others can offer to brute force your password for you without getting your wallet, just the challenge, while proving proof they find the password to the user. That idea was to create a way for the community to offer computing power to users who forgot a lot of their password and have no backup, most likely against a monetary incentive.

I think we still plan on implementing that feature in the new wallets, but for this current case, infernusdoleo would have have to give his password AND wallet, and trust we don't rob him.

The only reason I'm asking for this tool is Armory does not have an RPC interface or anything similar - if this were my bitcoin-qt wallet for which I effed up the password, I'd simply just brute force against the RPC with a perl script.

That's not true. If you aren't afraid to get your hands a little dirty with Python, the script is available in our repo, at ./extras/findpass.py. I think you'll have to build the C++ library for the crypto, but I'm not sure. Ask CircusPeanut, he built this script. Otherwise we can run it for you.

infernusdoleo (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
February 01, 2015, 04:29:17 AM
 #13

Wait. I have to give you my wallet and my thoughts on my password? I was under the assumption you'd give me access to the tool.

Please take this in the most respectful way possible: you can go f*ck yourselves.

What company in their right mind asks a use for that?

I would rather lose the btc I the wallet than give unknown people my wallet file AND what I believe my password to be.

I'm not trying to be an asshole here - but given the choice between giving the internal tool to users, and keeping it private and asking users to send you their wallet and approximate password, you guys are absolutely insane, and arrogant pricks, if your choice is "send us your info."

Close my ticket. I'd rather lose the bitcoin than risk ANYONE else getting it.

You just completely lost my faith in your software. Wtf is wrong with you people?

EDIT: I didn't see the end part about the python script. I'll try grabbing it and using it. That being said - no - I'm not giving you my wallet and approximate password.

EDIT 2: My gf had a party tonigt and I've had a few drinks. I may not exactly be polite. 😁😁
doug_armory
Sr. Member
****
Offline Offline

Activity: 255
Merit: 250

Senior Developer - Armory


View Profile WWW
February 01, 2015, 09:44:28 PM
Last edit: February 01, 2015, 09:57:28 PM by doug_armory
 #14

You just completely lost my faith in your software. Wtf is wrong with you people?

With all due respect, there's only so much we can do at any given time. Armory is open source software. Even if we wanted to add some super-duper-secret backdoor that would let us recover coins from wallets at will, somebody would find it, and we'd be strung up by our junk in the virtual town square. We also only have so much time to devote in instances like these. People sometimes come asking for help. We could turn them away. We've decided to offer help if people are willing to accept the parameters. The lowest hanging fruit is the wallet data and the password remnants. The lowest hanging fruit also tends to be the kind that requires the most trust from the end user. It's not ideal, but hey, there are only so many hours in a day, and there are a million other things we need to have finished yesterday.

Yes, I agree that sending a wallet and what one can remember of their password is risky. I'd also like to know what alternatives people have in mind, other than just accepting that their coins might be lost. We offer multiple ways to back up wallets when said wallets are created (or even well after they're created) so that our services aren't required. We also offer a last-gasp alternative if people are willing to get their hands a little dirty one way or another. Someday, maybe we'll have a shiny alternative, like the one goatpig mentioned, that doesn't require cursing at us in public. Until then, this is the way it is. Cursing at us, and then blaming one's behavior on being intoxicated, isn't going to help matters.

At the risk of sounding arrogant, keep in mind that other businesses just plain won't help you if you forget your password. I've seen several companies that had an explicit policy stating that customers who forgot their passwords, or needed some sort of help with debugging (e.g., using Wireshark to decrypt TLS output using a customer's private key), were SOL. This included multinational corporations who had spent millions of dollars on specialized hardware. There are good reasons why even they don't always get the help they want. (There are also good reasons why they should get help. It's a balancing act.)

Senior Developer -  Armory Technologies, Inc.
infernusdoleo (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
February 01, 2015, 10:38:58 PM
 #15

Understood - but why require me to send you my wallet and guessed password, instead of YOU providing a way to interface with the software?

I've spent half the day writing an autohotkey script to type in a password list into the software.

With the bitcoin wallet - I can try passwords via RPC.

With Armory, there is no way to do that, and you have an internal tool that will try, yet, we can't have it, and instead you want us to send the wallet and password. Thats not right. On what planet is is MORE acceptable to ask users to take that risk, than for you to provide a simple tool.

If your reasoning behind not providing the tool is "security" and fear of it falling into the hands of hackers, security through obscurity is pointless. Using a free windows tool I've fired off a brute force process. Yes, it's slower than a direct RPC call, but it's running now. You not providing the tool is not stopping anyone from trying to brute force a wallet. Outlaw the guns, only the criminals will have the guns. Don't release the tool, only the hackers who really want to brute the wallets will create their own tool. End result? Honest customers with a problem are really inconvenienced, and you've stopped no one.

You can close my ticket, I found a way to do it myself.

Later when I find some free time, I'm going to figure out a way to do it directly, without having the GUI open and a script program typing passwords and clicking buttons.

Then I'm going to release the software.

And you keeping your tool out of the hands of the people who NEED it becomes utterly irrelevant. Again: End result? Honest customers with a problem have a solution to try, and you've still not stopped a single hacker.

Thanks.

(Side note: Today, sober, I wouldn't curse, but how I feel is no different. It's a jackass move to have an internal tool you won't share, under the pretense of keeping hackers out. At least, thats the only reason I can fathom for not releasing it)
doug_armory
Sr. Member
****
Offline Offline

Activity: 255
Merit: 250

Senior Developer - Armory


View Profile WWW
February 01, 2015, 10:51:37 PM
 #16

Understood - but why require me to send you my wallet and guessed password, instead of YOU providing a way to interface with the software?

You're not required to send us anything. Like goatpig said, the script is provided. Perhaps we should've been clearer about that. (Hell, I didn't know about it 'til goatpig pointed it out.)

In any event, if you have a way to improve the script, feel free to send it our way. We'll look at it and consider including it. Smiley Or post it here. Whatever's clever.

Quote
With Armory, there is no way to do that, and you have an internal tool that will try, yet, we can't try it, and instead you want us to send the wallet and password. Thats not right.

Assuming I understood goatpig correctly, there is no internal tool other than the script he mentioned. (Poor wording, I agree.) AFAIK, you have what we have. We just default to asking for wallets and password remnants because, quite frankly, quite a few people have enough trouble running a simple Python script. (Even if they can run it, there's no guarantee it'll work out-of-the-box on their system.) It's just easier to do it in-house, even if it understandably ruffles the feathers of some people.

Senior Developer -  Armory Technologies, Inc.
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1345

Armory Developer


View Profile
February 02, 2015, 04:54:56 AM
 #17

https://github.com/etotheipi/BitcoinArmory/blob/master/extras/findpass.py

The script has been here the whole time. Maybe internal tool is not the proper wording, but this script needs some customization for your password pattern to squeeze decent performance, and as I said, you need to build the C++ library for the crypto, which can be painful for some. You could also just copy over the compiled so/dll from our binaries and get away with that.

Giving us your wallet is not an obligation in any way. All this code is open source, and provided you know some Python you can get away with the script on your own with moderate efforts.

If you are a responsible user, you would have paper backups (as you do), and then by all means you should just wait until you have access to them again.

If you don't have backups and can't go through the effort of setting the up the script on your own, but still have a little Python in you, you can extract that last address entry with an encrypted private key from your wallet and send us that. That's enough for us to run your password pattern against, and not enough data to recreate private keys preceding this one. This way we would not stand in a position to rob you, but you would have to roll a new wallet to move your funds there.

Ultimately, if you can't code and have no backups, you can either give up on your coins or trust us. Considering you already trust us with the code (chances are you didn't review any of our code on your own), I don't understand why you feel so uncomfortable trusting the coders. Etotheipi doesn't agree with me. He feels uncomfortable dealing with any users private data, under any condition, and frankly we'd prefer not to deal with private data, we got enough responsibility as it is. This is why he came up with the public challenge idea to allow password retrieval without exposing any private data. But that kind of development takes time and this option isn't available yet, sadly.

Decentralized and open source projects are driven by a motivation to reduce the need for trust between parties, and I think there is great power and opportunity in such approach. Yet, that doesn't mean trust is undesirable at all times. It's rather an assessment that trust is hard to build and often impractical, and that it can (and often should) be circumvented through technology. I don't think it applies in this case however.

Our greatest asset as a company is the reputation we have built ourselves, through hard work and good conduct. The loss we would incur by robbing the occasional user would largely outweigh the benefit, and most likely destroy all we have achieved through our effort. On the other hand, providing free support for a free product nets only good rep. How many open source companies can you name that have a free, direct support channel with access to the developers? Why would we go to such length and destroy it all in one go?

Even then, if you don't feel comfortable trusting us any further than with code and binaries, you still have plenty of options at your disposal. And contrary to your belief, we have a RPC interface. It's called armoryd.py, and yes, it is in our repo, right here:

https://github.com/etotheipi/BitcoinArmory/blob/master/armoryd.py

Perl away all you want. I suggested the Python script because that's a dedicated tool, but by all means, if you feel the RPC interface suits your needs better, go ahead.

doug_armory
Sr. Member
****
Offline Offline

Activity: 255
Merit: 250

Senior Developer - Armory


View Profile WWW
February 02, 2015, 07:21:14 PM
 #18

What goatpig said. Smiley

If somebody has a philosophical objection to sending us private data, I get it, and I don't begrudge them at all. Not everybody is willing to offer that level of trust. Even those who can offer it should only send their data via PGP-encrypted email (and expect the same from us), and they should move their money to a new wallet we can't access the second their password is recovered.

If somebody thinks we've played a little fast-and-loose with some terminology, they're right, although I promise them any goofs weren't malicious. Most people we hear from in the support channels don't necessarily have the technical prowess to run these scripts. Telling people to run scripts they're not familiar with will just confuse some people even further. So, it's natural that some of us tend to refer to these kinds of things as internal tools. (That said, perhaps we should let people know there are options if they are techies. Balance and all that.)

If somebody thinks we're incompetent and will somehow lose their coins, why are they using Armory in the first place?

If somebody thinks we're stupid enough to swipe coins from people at all, much less people who are already on a message board and can yell and scream about how we've robbed them, they're nuts. Our reputation is well worth protecting. Stealing coins, or having Sterling Archer somehow lose the coins, doesn't benefit anyone, much less us as a company.

Personally, I think the decentralized brute force idea is pretty intriguing, especially if we can get some crypto experts to go over the idea and bless it. But, we're not there yet, and we have what we have right now. If anybody has any ideas or code to offer, let us know, or post here, or both. We will appreciate it, I assure you.

Senior Developer -  Armory Technologies, Inc.
picobit
Hero Member
*****
Offline Offline

Activity: 547
Merit: 500


Decor in numeris


View Profile
February 02, 2015, 08:12:49 PM
 #19

Don't, under any circumstances, accept to receive is wallet and password info in the unlikely event that he changes his mind.  With this attitude, you can only get trouble from it; and if something bad later happens you will most likely be blamed.  If he thinks that losing the btc is better than giving you a chance to help him, but also a chance to steal his btc if you are dishonest, then he is more mistrusting than most (to put it politely).
doug_armory
Sr. Member
****
Offline Offline

Activity: 255
Merit: 250

Senior Developer - Armory


View Profile WWW
February 02, 2015, 08:45:00 PM
 #20

Don't, under any circumstances, accept to receive is wallet and password info in the unlikely event that he changes his mind.  With this attitude, you can only get trouble from it; and if something bad later happens you will most likely be blamed.  If he thinks that losing the btc is better than giving you a chance to help him, but also a chance to steal his btc if you are dishonest, then he is more mistrusting than most (to put it politely).

I thought about bringing this up earlier as a general threat vector (i.e., I'm not saying the OP would do this), but yes, this is one reason why people don't like handling private user/customer data. What are the chances that the user will turn around and make false/inaccurate claims? The blockchain and the various analytics make it easy to concoct a story where the evil Armory developer (or hacker breaking into an Armory computer) swept the wallet into their own wallet. It's a huge Pandora's Box that many people would prefer not to touch in the first place. Providing the recovery script is a good compromise for people who have the technical chops to use it. Everybody else? Frankly, in some ways, we're taking as much of a risk as they are in sending us their data, if not more so.

Senior Developer -  Armory Technologies, Inc.
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!