Bitcoin Forum

Bitcoin => Project Development => Topic started by: david4dev on June 28, 2011, 08:43:26 PM



Title: Wallet Manager
Post by: david4dev on June 28, 2011, 08:43:26 PM
Wallet Manager (https://launchpad.net/walletmanager) is my little project to create a simple GUI for the common tasks of backing up, restoring and encrypting wallets.

The GUI isn't that great at the moment (just a set of buttons) but its simple and it works:

https://i.imgur.com/t5nH4.png

You can download it here (https://launchpad.net/walletmanager/+download) or grab the bzr branch
Code:
bzr branch lp:walletmanager
.

Feedback, bug reports (https://bugs.launchpad.net/walletmanager/+filebug), suggestions etc are all welcome :)


Title: Re: Wallet Manager
Post by: compro01 on June 28, 2011, 09:20:04 PM
is it just me or does a big "shred wallet" button look like a loaded shotgun pointed downwards?


Title: Re: Wallet Manager
Post by: mouse on June 29, 2011, 04:27:21 AM
Your button says 'import' but the text says 'replaces your current wallet with a differnt one'. That doesnt sould like import to me, that sounds like closeing my current wallet and opening a new one. Or does it delete the current one? I would have though it would add in the keys (or however bitcoin works) - kinda like a merge.

Also how does a normal import differ form a decrypting import? Is the the import methaphore being used consistently?

This app *may* need a little work :-)

good luck!


Title: Re: Wallet Manager
Post by: Rogue Star on June 29, 2011, 05:32:23 AM
how do you ensure that shred in fact overwrites the physical bytes where the wallet is stored? seems like that would be a problem anywhere that hard drive access is abstracted (any modern file system/OS), especially in the case of solid state drives.


Title: Re: Wallet Manager
Post by: david4dev on June 29, 2011, 08:40:38 AM
Your button says 'import' but the text says 'replaces your current wallet with a differnt one'. That doesnt sould like import to me, that sounds like closeing my current wallet and opening a new one. Or does it delete the current one? I would have though it would add in the keys (or however bitcoin works) - kinda like a merge.

Also how does a normal import differ form a decrypting import? Is the the import methaphore being used consistently?

Import just copies the selected wallet stored somewhere else of the disk to ~/.bitcoin/wallet.dat, overwriting ~/.bitcoin/wallet.dat in the process. So this does delete the current one. It doesn't do a merge. Maybe import/export is a bit confusing and I should use a backup/restore metaphor instead.

Decrypt and import is the same as normal import but first it decrypts the file (which needs to have been encrypted using Wallet Manager), prompting the user for the passcode.

Maybe 'Create Backup', 'Create Encrypted Backup', 'Restore Backup' and 'Restore Encrypted Backup' would be more self explanatory.

Quote
This app *may* need a little work :-)

It *does* need a little work. :) Currently its just at the proof of concept stage.


Title: Re: Wallet Manager
Post by: david4dev on June 29, 2011, 08:47:15 AM
how do you ensure that shred in fact overwrites the physical bytes where the wallet is stored? seems like that would be a problem anywhere that hard drive access is abstracted (any modern file system/OS), especially in the case of solid state drives.

Put simply, I don't. This is a problem with shredding algorithms in general. All of the limitations of shred(1) (http://en.wikipedia.org/wiki/Shred_(Unix)) are inherent here as well.

However, it is more secure than a normal delete (which itself is more secure than the default delete function of most file managers which send the file to a rubbish bin) and it should stop most simple undelete programs (It won't stop high grade forensic programs).

The only way to be totally secure is to shred the whole file system!  :o


Title: Re: Wallet Manager
Post by: XIU on June 29, 2011, 12:12:10 PM
What would be a cool feature is the ability to create a ramdisk, decrypt the wallet.dat to there, and then use the -datadir option to use the ramdisk or something. This way the decrypted version is never stored on your hdd and would make it alot harder to recover it :)


Title: Re: Wallet Manager
Post by: david4dev on June 29, 2011, 12:46:20 PM
What would be a cool feature is the ability to create a ramdisk, decrypt the wallet.dat to there, and then use the -datadir option to use the ramdisk or something. This way the decrypted version is never stored on your hdd and would make it alot harder to recover it :)

That's an interesting idea that I may look at in the future. There are some big difficulties in implementing this though - for example, you generally need to be root to create a ramdisk. Although, I could possibly use fuse (http://fuse.sourceforge.net/) to do this.


Title: Re: Wallet Manager
Post by: Rogue Star on June 30, 2011, 12:29:10 AM
how do you ensure that shred in fact overwrites the physical bytes where the wallet is stored? seems like that would be a problem anywhere that hard drive access is abstracted (any modern file system/OS), especially in the case of solid state drives.

Put simply, I don't. This is a problem with shredding algorithms in general. All of the limitations of shred(1) (http://en.wikipedia.org/wiki/Shred_(Unix)) are inherent here as well.

However, it is more secure than a normal delete (which itself is more secure than the default delete function of most file managers which send the file to a rubbish bin) and it should stop most simple undelete programs (It won't stop high grade forensic programs).

The only way to be totally secure is to shred the whole file system!  :o
cool, that's what I expected. I mostly wanted to know that you had considered the possibility and don't want people to have a false sense of security when using the shred feature. maybe you can make that clear somehow without being obtrusive.


Title: Re: Wallet Manager
Post by: david4dev on June 30, 2011, 03:59:41 PM
Changes to file formats

I've worked on this project for a couple of days now and I now have a clearer picture of where this project is heading and what problems there are currently.  I have concluded that changing the file formats and the file extensions will help with this. For this reason, if you are using any of the current versions, ensure you keep an unencrypted backup (or a backup encrypted using a different program) because the change will break compatibility with the old encrypted files.

Problem 1 - file recognition
Using set file extensions will help both this application and users recognise which files are wallet backups and which files are encrypted wallet backups. Therefore, when I make the change, I will enforce file extensions when saving.

Problem 2 - verifying decryption
Currently, if a user decrypts a wallet but gets the passcode wrong, the application will spit out a garbled file that is no use to anyone. It is currently unable to check if the decryption was successful. To enable this, I will change the file format of encrypted wallets to include the sha256 digest of the original file which will give an easy way to verify the decryption. A side effect of this is breaking compatibility with the current encrypted format.

The file extensions
I will use the following file extensions:
  • Unencrypted backups: .bw - bitcoin wallet
  • Encrypted backups: .ebw - encrypted bitcoin wallet

As always, feedback is welcome  8).


Title: Re: Wallet Manager
Post by: done on June 30, 2011, 08:35:03 PM
Best of luck with the development. The community is looking for multiple options in all areas.


Title: Re: Wallet Manager
Post by: david4dev on June 30, 2011, 11:09:08 PM
Version 1.0.0 is out

This brings in the new file format and breaks compatibility with previous versions.

I made a video (http://vimeo.com/25840218) showing some typical use of the application.


Title: Re: Wallet Manager
Post by: david4dev on July 01, 2011, 03:10:00 PM
.deb package and PPA available

Installation should now be a lot easier. You can install Wallet Manager from:

  • The PPA: ppa:david4dev/walletmanager (https://launchpad.net/~david4dev/+archive/walletmanager) (for Ubuntu and derivatives)
  • .deb files on the downloads page (https://launchpad.net/walletmanager/+download) (for Debian and derivatives)


Title: Re: Wallet Manager
Post by: done on July 02, 2011, 05:01:46 AM
Demo looks real nice. Great job.