Bitcoin Forum
April 23, 2024, 04:06:25 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Air gapped wallet printer  (Read 6311 times)
MoTLD (OP)
Newbie
*
Offline Offline

Activity: 42
Merit: 0



View Profile WWW
April 27, 2012, 05:20:57 AM
 #21

Although it's technically possible, the practical means of influencing the entrophy in this fashion is pretty remote.

Very true, it's probably not a practical attack vector. However, from a marketing perspective, I'd like to be able to say the device can't be influenced in any way by outside forces.

But your idea certainly has merit. I might go the really simple route by using a plain microphone and leaving it up to the user what to feed into it, if adding sound input is cheaper than other alternatives. The circuitry to turn sound into bits is pretty simple if fidelity isn't important.

-Mo
1713845185
Hero Member
*
Offline Offline

Posts: 1713845185

View Profile Personal Message (Offline)

Ignore
1713845185
Reply with quote  #2

1713845185
Report to moderator
"Bitcoin: mining our own business since 2009" -- Pieter Wuille
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Foxpup
Legendary
*
Offline Offline

Activity: 4340
Merit: 3042


Vile Vixen and Miss Bitcointalk 2021-2023


View Profile
April 27, 2012, 06:34:51 AM
 #22

Well, that's exactly why I mentioned an am receiver tuned to static.  Pipe that into the stereo mic-in jack of a small computer, mash the resulting bitstream up with some hashing algos, and you've got a pretty decent RNG hardware on the cheap. 

Good thinking! I must've read right past that, sorry. The only thing I'd worry about is an adversary having a transmitter nearby and therefore overriding the unpredictability of the seed.

Damn, I read past that too. Anyway, if you only take the least-significant bit of each sample from the ADC, you'll get complete randomness (from background noise) regardless of what an attacker is trying to transmit (since it's an analog signal, there'll always be some level of background noise that's outside the attacker's control). The same trick works with a microphone, for the same reason.

Will pretend to do unspeakable things (while actually eating a taco) for bitcoins: 1K6d1EviQKX3SVKjPYmJGyWBb1avbmCFM4
I am not on the scammers' paradise known as Telegram! Do not believe anyone claiming to be me off-forum without a signed message from the above address! Accept no excuses and make no exceptions!
EhVedadoOAnonimato
Hero Member
*****
Offline Offline

Activity: 630
Merit: 500



View Profile
April 30, 2012, 08:05:33 AM
 #23

I would happily buy such a device, but I'd like it to have a feature that I find important: ask for a strong password and use it to encrypt a copy of the key, and print this encrypted copy, so that I could scan it on my computer and safely back it up in a service like Wuala, plus different medias of mine.
I believe backups should be geographically separated, and it's much easier and cheaper to accomplish that with digital data than with paper.

Maybe it should use deterministic key generation, as some clients are already doing, so that I only have to backup an encrypted copy of the seed.

What do you think?
MoTLD (OP)
Newbie
*
Offline Offline

Activity: 42
Merit: 0



View Profile WWW
May 03, 2012, 04:38:25 AM
 #24

I would happily buy such a device, but I'd like it to have a feature that I find important: ask for a strong password and use it to encrypt a copy of the key, and print this encrypted copy, so that I could scan it on my computer and safely back it up in a service like Wuala, plus different medias of mine.
I believe backups should be geographically separated, and it's much easier and cheaper to accomplish that with digital data than with paper.

Maybe it should use deterministic key generation, as some clients are already doing, so that I only have to backup an encrypted copy of the seed.

What do you think?

Good ideas, I like 'em both. I don't think either would be difficult to incorporate into a system that's already got the horsepower to do the hashing in the first place. It might take a little more memory, but it'd be worth the extra expense IMO.

Thanks, and keep those ideas rolling! It sounds like there's a market for something like this, and you guys are really helping me flesh out some specs, so I might just do this thing.

-Mo

PS - Casascius, I hope you're looking for the code you need to make a POS term work, 'cause competition is good! Also, if you open-source it (and I don't wimp out and use a basic stamp), I might steal some of your code. Wink
EhVedadoOAnonimato
Hero Member
*****
Offline Offline

Activity: 630
Merit: 500



View Profile
May 03, 2012, 07:47:31 AM
 #25

I've thought a little more about it, and there's an issue with the air gapped printer idea.

If we're talking about an air gapped device, that's because we cannot trust our other devices. So, let's assume somebody has one of these printers, but all of his computers are compromised with bitcoin-stealing malware.
While he uses the printer to generate addresses, and only gives these addresses to those that should credit him, he should be safe - assuming the malware is not advanced enough to also tamper the messages where the user sends his addresses to others.

But what would this user do when he wants to spend the money he has in these safe addresses? If he loads the private key into any of his computers, he loses the money.

For such a device to be complete, it should be able to generate offline transactions as well. But that would probably require a way to scan QR-codes. Manually inputing addresses is error prone and annoying.
Anyway, this increases the complexity of what you're trying to do...


Suggestion: talk with someone42, who started this topic: https://bitcointalk.org/index.php?topic=78614.msg879194;topicseen#msg879194
He's trying to do something similar, but purely digital instead of paper printer. I tend to prefer it since I'm not a big fan of paper wallets anyway. But I guess the printing part is not the hard part.
casascius
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1136


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
May 04, 2012, 07:32:15 PM
 #26

...but all of his computers are compromised with bitcoin-stealing malware...

Even his computer he booted from a live CD?  or his computer that has never been connected to the internet since the OS was freshly installed?

If someone could create a module in C that exposed a function which took 32 random bytes and gave me a bitcoin address and base58 private key in a buffer I provide, with no dependency on any libs or 3rd party stuff (100% self contained code), I could PROMPTLY produce a downloadable program for the VeriFone VX credit card machines that would issue addresses as QR codes on receipt paper and on screen.  That means all bignumber math and ECC math would have to be implemented right there.  Such a C function would not need to be responsible for entropy, I can handle that, I can provide the 32 random bytes to be used for the private key.  Open source OK as I plan on publishing source to it all.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
MoTLD (OP)
Newbie
*
Offline Offline

Activity: 42
Merit: 0



View Profile WWW
May 05, 2012, 02:43:59 AM
 #27

If we're talking about an air gapped device, that's because we cannot trust our other devices. So, let's assume somebody has one of these printers, but all of his computers are compromised with bitcoin-stealing malware.
While he uses the printer to generate addresses, and only gives these addresses to those that should credit him, he should be safe - assuming the malware is not advanced enough to also tamper the messages where the user sends his addresses to others.

But what would this user do when he wants to spend the money he has in these safe addresses? If he loads the private key into any of his computers, he loses the money.

Actually, I kinda had in mind users who are already so distrustful of their computers as to boot from a live CD every time they create new wallets, and even to create transactions if those wallets are intended for more than one use. This device would simply be a more convenient way to do the same thing.

For such a device to be complete, it should be able to generate offline transactions as well. But that would probably require a way to scan QR-codes. Manually inputing addresses is error prone and annoying.
Anyway, this increases the complexity of what you're trying to do...

All true. I would love for the device to generate transactions, too, but like you said, manual input of addresses is problematic and adding a camera or the like increases the complexity beyond what I had in mind. But I'll keep brainstorming. Manual input, annoying as it is, wouldn't add too much complexity if the device already had a keyboard and screen (like casascius's POS terminals). Hmm...casascius, do your POS terms support a barcode scanner? Maybe the printer could output an old fashioned barcode instead of/in addition to a QR code...?

Suggestion: talk with someone42, who started this topic: https://bitcointalk.org/index.php?topic=78614.msg879194;topicseen#msg879194

Thanks for the link, I hadn't seen that thread yet. Looks like I've got some more prior art reading to do! Smiley

If someone could create a module in C[...]

Are you really gonna make me finally learn C? I've managed to avoid doing so for over 20 years now... Wink

-Mo
casascius
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1136


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
May 05, 2012, 05:29:51 PM
 #28

Hmm...casascius, do your POS terms support a barcode scanner?

Yes, several models (e.g. Vx570) have a USB port which can accept an external keyboard, to which you'd attach a keyboard-wedge 2d barcode scanner that supports QR codes.

Having the credit card terminal approve and sign transactions sent by a computer (either via RS232 or USB) is also a very useful application.  (When connected to a computer, it will look like a serial port over USB, as it supports serial port emulation).

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
EhVedadoOAnonimato
Hero Member
*****
Offline Offline

Activity: 630
Merit: 500



View Profile
May 05, 2012, 06:38:44 PM
 #29

For such a device to be complete, it should be able to generate offline transactions as well. But that would probably require a way to scan QR-codes. Manually inputing addresses is error prone and annoying.
Anyway, this increases the complexity of what you're trying to do...

All true. I would love for the device to generate transactions, too, but like you said, manual input of addresses is problematic and adding a camera or the like increases the complexity beyond what I had in mind. But I'll keep brainstorming. Manual input, annoying as it is, wouldn't add too much complexity if the device already had a keyboard and screen (like casascius's POS terminals). Hmm...casascius, do your POS terms support a barcode scanner? Maybe the printer could output an old fashioned barcode instead of/in addition to a QR code...?

The barcode is a good idea. Two people both using this device could safely send money to one another.

Concerning the keyboard, it doesn't need to be embedded. You may have just an USB port to connect a keyboard to. Such port could be used both to input the encryption password and to write out the encrypted wallet seed into a memory stick.
Such port could also be used to connect to some external software that would provide transactions to be signed. That would still be vulnerable to the risks described here, which can be considerably mitigated by what jim said just after.

Actually, if you manage to make the printer "detachable", or make it capable of connecting to an USB-printer instead of having its own, than your device may be really small. By that I mean "portable". Improve it with p2p wireless communication like that bitcoincard thing, and hidden volumes for plausible deniability, and you've got the best bitcoin storage and payment device. Wink
EhVedadoOAnonimato
Hero Member
*****
Offline Offline

Activity: 630
Merit: 500



View Profile
May 05, 2012, 06:41:30 PM
 #30

Why is this topic in the Newbies section by the way?
Wouldn't it fit better in the Alternative clients section, like the other one about the Hardware Wallet?
MoTLD (OP)
Newbie
*
Offline Offline

Activity: 42
Merit: 0



View Profile WWW
May 05, 2012, 10:41:35 PM
 #31

Why is this topic in the Newbies section by the way?

'Cause I was a newbie when I started it. Wink

Wouldn't it fit better in the Alternative clients section, like the other one about the Hardware Wallet?

It would. But I think I've learned what I wanted to know from this thread, so I'm going to summarize it and, after a little time for comments, close it. I'll then organize my thoughts and start a new topic in the appropriate forum later, probably when I've got a prototype (unless my flights of fancy take me elsewhere...).

Having the credit card terminal approve and sign transactions sent by a computer (either via RS232 or USB) is also a very useful application.  (When connected to a computer, it will look like a serial port over USB, as it supports serial port emulation).
Actually, if you manage to make the printer "detachable", or make it capable of connecting to an USB-printer instead of having its own, than your device may be really small. By that I mean "portable". Improve it with p2p wireless communication like that bitcoincard thing, and hidden volumes for plausible deniability, and you've got the best bitcoin storage and payment device. Wink

Well, while these things are all excellent and useful; I think the easiest way to make them happen would be for someone42 to add printer support to his ongoing project. I haven't read more than the first few posts of his thread, but from the sound of things it already does most of what's been discussed here in terms of connecting to a computer and dealing with transactions, etc. I need to read the rest and get up to date.

Also, it sounds like a POS term would be the easiest and cheapest OTS hardware for this purpose, so maybe casascius and someone42 should be collaborating on the best and most cost-effective hardware wallet around? Or...competition is always good... Wink

But the device I had in mind is truly air gapped. It never connects to a computer, and it doesn't even store keys. It's a wallet generator, not a wallet. Some folks don't like paper wallets, and I can understand that, but I do. Smiley

A hardware wallet is a replacement for a checking account or a real wallet full of cash. They don't have nearly the attack surface of a general purpose computer, but they do have an attack surface. Think of my proposed device as a savings account generator instead. It makes wallets which never have and never will touch a networkable device until the moment you're ready to transfer the entire balance elsewhere. When you want to do so, you boot your computer with your handy live CD and generate an offline transaction and when it's gone through you throw away the old paper wallet. Since the paper wallet is a one-time thing, you might not even need the live CD/offline transaction hassle if you're reasonably sure nobody will be able to snarf your private key and empty your wallet before your own transaction goes through.

So I guess the point of this thread, for me, was to see if anybody would be interested in dedicated hardware to do what GP hardware and a dedicated live boot CD already does very well. It seems to me that if you generate enough wallets with a CD boot you won't need to reboot to generate wallets as often as you'll need to reboot to generate transactions. So there probably isn't a market for an air gapped wallet generator unless it also generates air gapped transactions.

However, there does seem to be quite a potential market for hardware wallets. Someone42 and casascius seem to be on similar paths for a convenient but reasonably secure daily-use type hardware wallet. I'll keep thinking about how a proper savings account generator should work, and whether one is even useful versus something like a brain wallet or just CD booting a computer once in a while.

Maybe I'll just put together a bitcoin-tailored live CD. :-P

-Mo

PS - Feel free to post your closing comments, but I'd like to close this topic soon so if there's a good discussion to be had it should have its own topic.
westkybitcoins
Legendary
*
Offline Offline

Activity: 980
Merit: 1004

Firstbits: Compromised. Thanks, Android!


View Profile
May 08, 2012, 09:13:57 PM
 #32

So I guess the point of this thread, for me, was to see if anybody would be interested in dedicated hardware to do what GP hardware and a dedicated live boot CD already does very well. It seems to me that if you generate enough wallets with a CD boot you won't need to reboot to generate wallets as often as you'll need to reboot to generate transactions. So there probably isn't a market for an air gapped wallet generator unless it also generates air gapped transactions.

Well, just as a closing comment I'd like to say that I disagree with the highlighted text above.

I still believe your initial idea, of just printing one-address wallets from an offline, air-gapped device is still very valuable. If it were available right now, for the right price (<$20) I'd be looking to get one or two ASAP, and I'm not worried that my system is compromised yet. I can handle my own transaction sending. But a quick and easy way to spit out addresses for storage (with accompanying private key) greatly simplifies things.

Just my 0.02btc.

Bitcoin is the ultimate freedom test. It tells you who is giving lip service and who genuinely believes in it.
...
...
In the future, books that summarize the history of money will have a line that says, “and then came bitcoin.” It is the economic singularity. And we are living in it now. - Ryan Dickherber
...
...
ATTENTION BFL MINING NEWBS: Just got your Jalapenos in? Wondering how to get the most value for the least hassle? Give BitMinter a try! It's a smaller pool with a fair & low-fee payment method, lots of statistical feedback, and it's easier than EasyMiner! (Yes, we want your hashing power, but seriously, it IS the easiest pool to use! Sign up in seconds to try it!)
...
...
The idea that deflation causes hoarding (to any problematic degree) is a lie used to justify theft of value from your savings.
LukeL
Member
**
Offline Offline

Activity: 210
Merit: 10

Bounty manager


View Profile
May 09, 2012, 09:11:02 PM
 #33

Pardon my ignorance but what does "air gapped" mean exactly?

Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
May 09, 2012, 09:55:45 PM
 #34

Pardon my ignorance but what does "air gapped" mean exactly?

Not connected to the network.

There actually are varying degrees of this though even.   You could have a desktop Windows system with the network cable unplugged and no wif-fi and try to call that airgapped, but it isn't.  Because if that system was compromised by a keystroke capture or malware that read the wallet.dat file as then that malware could transmit when the network connectivity is eventually restored.

So the more secure air gapped device doesn't have connectivity and won't.  Since you don't want to have to have around an extra PC or other device just for Bitcoin, a less-capable, specialized system like this wallet printer idea might be more useful.

 - http://en.wikipedia.org/wiki/Air_gap_(networking)

Unichange.me

            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █


MoTLD (OP)
Newbie
*
Offline Offline

Activity: 42
Merit: 0



View Profile WWW
May 10, 2012, 07:30:23 AM
 #35

So I guess the point of this thread, for me, was to see if anybody would be interested in dedicated hardware to do what GP hardware and a dedicated live boot CD already does very well. It seems to me that if you generate enough wallets with a CD boot you won't need to reboot to generate wallets as often as you'll need to reboot to generate transactions. So there probably isn't a market for an air gapped wallet generator unless it also generates air gapped transactions.

Well, just as a closing comment I'd like to say that I disagree with the highlighted text above.

I still believe your initial idea, of just printing one-address wallets from an offline, air-gapped device is still very valuable. If it were available right now, for the right price (<$20) I'd be looking to get one or two ASAP, and I'm not worried that my system is compromised yet. I can handle my own transaction sending. But a quick and easy way to spit out addresses for storage (with accompanying private key) greatly simplifies things.

Just my 0.02btc.


Duly noted, and thanks! Smiley

I'll be back on the road next week, and will thus have lots of time to meditate on this. When winter rolls around again and I find myself indoors with a soldering iron and lots of free time, this might just be the project I take up. And if before then I find myself struck by sudden inspiration (or a pallet of cheap printers) I'll let y'all know.

Thanks again, everybody, for all of the great ideas, refinements, and discussion!

-Mo

PS - It's a credit to this forum that so many pillars of the community hang out here in the newbies section!
Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
October 08, 2012, 01:53:58 AM
 #36

Anybody have use for a dedicated wallet generator?

As a bookend to this thread, further discussion here:


Physical device to generate public/private key pairs
 - http://bitcointalk.org/index.php?topic=117054.0

Unichange.me

            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █


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!