Pages:
Author

Topic: Bitcoin smartcard Point of Sale terminal - page 4. (Read 26802 times)

legendary
Activity: 2058
Merit: 1431
grue, it's obvious that you want to argue with me about other people's proposals.  So here, watch a video about the hardware I'm suggesting:

http://www.building43.com/videos/2011/02/22/nagraid-creating-the-credit-card-of-the-future/
no, i'm arguing about how secure a smartcard system (in general) can be. it's very hard to keep your keys secure if the terminal that you're using can't be trusted. as long as the interface between the card and the user isn't protected, there will always be a risk of a man-in-the-middle attack. if you have a solution to prevent the attack i mentioned earlier, i will be glad to hear it.

One of these measures is to house your security information on a computer chip within the card as opposed to displaying it on the card. Another is a unique display window that reveals a security code necessary to complete a transaction. Each code can only be used once, so even if your card information were stolen, a thief would be unable to effect a transaction without having physical possession of the card and its security code. This window can also display account information such as your last transaction, your balance, how much you have spent this month, even messages from your bank.
too bad i got both
legendary
Activity: 1330
Merit: 1000
grue, it's obvious that you want to argue with me about other people's proposals.  So here, watch a video about the hardware I'm suggesting:

http://www.building43.com/videos/2011/02/22/nagraid-creating-the-credit-card-of-the-future/
legendary
Activity: 2058
Merit: 1431
If you can install an overlay between the keys and the actual circuit board, you can easily capture the pin, and launch a replay attack.

Well... can't the card be locked immediately after a purchase (say 30-90 s).
but then the smart card will need an internal power source, which will definitely not fit in a card.

If it does what stops anyone from hacking any VISA card in the world?
visa/mastercard is supposedly secure because POS terminals that can process EMV transactions have to be tamper evident (sealed with sticker), and can't have removable faceplates, which should remove the risk of physical keylogging attacks.

maximum rage
1. get yourself a bitcoin POS terminal
2. open it up, and place a circuit that monitors keypad input (remember, this is inside the unit, so 99.9% of the users won't notice)
3. get yourself an arduino and program it so it can do everything a normal POS terminal can do
4. hook the keylogging circuit to the arduino
5. close the entire unit, and make everything look legit
6. place it in your store
7. wait for a customer to buy something
8. the payment gets processed as usual, but now the merchant can charge the customer again, because the card is still inside, and the pin has been logged.
newbie
Activity: 46
Merit: 0


3. Third market?

Well if the intent is to enable payments with less friction (expense) and fewer middlemen, for people under duress, then the next markets should be strategic in terms of assisting people with the means of survival (food, shelter, clothing) Using Greece as an example, food and beverage distributors who can link into their regional supply chains (Europe) as well as local retail distribution would probably make a lot of sense.  

But still noodling on the central role of smart cards. I totally get why smart cards could provide access and anonymity on a distributed basis, and that the plastic and its chip has little inherent value until loaded with BTCs. But introducing a new product into a system, a product that requires additional hardware no matter how pocket sized, by its very definition attracts attention. If a citizen is stopped and searched will the mere possession of a branded smart card become probably cause?  

If only we could start a new healthy vitamin enriched beverage line sold via vending machines that has free mini smart cards attached to the bottles, and folks have to take those BTC cards into their local stores to be read so that they can see if they won the "BIG PRIZE" which of course is the act of buying and reading the cards.... now that would be a clever trick.
kjj
legendary
Activity: 1302
Merit: 1025

Think more along the lines of a small custom device with a screen, a couple of buttons, and a serial port (or serial over USB, or serial over bluetooth, or serial over NFC, etc).  The programming interface, if it has one, must be internal, or it must load software from a memory card (like SD).

What about SIM cards?

I wouldn't trust a device without a display and keypad (or at least a pair of buttons!) built-in.

I also dislike the idea of a device just signing a transaction presented to it, rather than generating the entire transaction internally.  But, this can be overcome.

Also, in my opinion, the device must generate all keys after it enters my exclusive possession, and it must include a genuine entropy source.  This may be extra paranoid on my part, but I'm not sure I even like the idea of importing keys into the device.
newbie
Activity: 46
Merit: 0

Think more along the lines of a small custom device with a screen, a couple of buttons, and a serial port (or serial over USB, or serial over bluetooth, or serial over NFC, etc).  The programming interface, if it has one, must be internal, or it must load software from a memory card (like SD).

What about SIM cards?
legendary
Activity: 1330
Merit: 1000
You're right I glossed over the one benefit of a PIN.  A PIN protects against someone stealing your card and using it.  That's all.  It doesn't protect against hostile merchants.  That's what transaction signing is for.
hero member
Activity: 815
Merit: 1000
PIN numbers are completely irrelevant.  Why would typing a static pin number into a hostile terminal gain me any security at all?

Alright first; GREAT post. Cleared things up - nice to see my research was correct.

I disagree with the PIN thing though: It offers some safety:

1. PIN is used and the card is locked 30-90 sec.
2. User removes card and leaves.
3. Merchant secretly stored the PIN.
4. Merchant does not have the card - how will he use his stolen PIN?
5. He has to either A rob the guy or B get the person to come back another time.
6. He can then destroy ALL reputation he had to make 5. happen for maybe 40-200$!

WITHOUT a PIN:
1. Send money request of "ALL YOUR BASE... PLZ".
2. Done.
3. His reputation is still ruined, but it was a lot easier to do the stealing.

(90% of the times you use your card a new place, you will never use it there again - hence you're safe)
legendary
Activity: 1330
Merit: 1000
For some inexplicable reason people want to discuss the mangled, incompetent bullshit put out by credit card companies as though it has anything to do with either 1) smart cards or 2) Bitcoin.  Here's a reality check:  credit card companies aren't interested in smart cards.  It destroys their entire business model, which is based on trust, and which therefore requires fraud to be possible.

That video someone posted earlier is completely irrelevant.  They're talking about glorified credit cards.

PIN numbers are completely irrelevant.  Why would typing a static pin number into a hostile terminal gain me any security at all?

Skimming is completely irrelevant.  Smart cards have protected memory.  If they don't, then they aren't smart cards.

Dumping memory is completely irrelevant.  Like "oh shit" we left a major glaring design flaw and just allow the memory to be dumped, through the exact same pins no less?

There are some realistic hacks (power analysis) against older smart cards.  But you're not going to be able to sign Bitcoin transactions on those anyways.

And ANY APPLICATION THAT DOESN'T INVOLVE SIGNING TRANSACTIONS ON THE CARD ITSELF ISN'T EVEN A SMART CARD APP SO WHY THE HELL IS IT BEING DISCUSSED IN THIS THREAD?

hero member
Activity: 815
Merit: 1000
You [EDIT: grue], for instance, don't have a clue.

So smartcards are still saf-ish?

EDIT:
Looked it up a bit:
http://en.wikipedia.org/wiki/Smart_card_security
http://en.wikipedia.org/wiki/Smart_card
http://en.wikipedia.org/wiki/Mifare
http://people.cs.uchicago.edu/~dinoj/smartcard/security.html

So okay hacking the card is totally possible in a few ways:
1. Physical abuse.
2. Storing PINs and waiting for the customer to return.
3. Advanced hacking after stealing card.

HOWEVER: Special access pin connectors do NOT exists. Once the private keys are loaded to the card and programmed as NEVER-access level you have no practical way of getting them.

To summarize as I see it:
* If you only store what you spend in a week on your card the cost to the attacker would be MUCH MUCH higher than the return.
* If your card is stolen it can NOT be forced (by common thieves).
* Over-/double-charge using either my checksum scheme or "super cards" would be impossible.
* Even if no police will help you most merchants would not take the extreme risk of robbing a return customer for very little gain - it would loose him his customers rather quickly.
* Even storing the PIN and later overcharging would require a good deal of programming + being a merchant + getting a victim to come by minimum twice.

If people use BTC cards with a bit of care (like all else, including normal BTC) smard cards will be completely safe (safe as VISA or more anyway).
legendary
Activity: 1330
Merit: 1000
if you can install an overlay between the keys and the actual circuit board, you can easily capture the pin, and launch a replay attack.

a much better way is to have a portable wallet that "pays" a merchant by transferring a signed tx, which the merchant can verify and broadcast.

I'm not even going to ask what you thought it was we were discussing.  Some of you need to do some basic research before posting in this thread.  Or at the very least, read what others post.


I've tried to follow this thread, but it meanders a bit.

Is the basic idea under discussion having a wallet-only client running in a small hardware device that can interact with POS terminals?

Most of the smartcards that I've seen are just (tiny) general purpose CPUs embedded in a card, usually with a small ROM containing a secret key.  This is not a useful model for bitcoin.  For bitcoin, you need the secrets in RAM (flash, etc) because you need to be able to add new secrets.  You also need to make sure that you don't ever let the device communicate with a hostile device using the same physical pins that can be used to reprogram or dump it.

You, for instance, don't have a clue.
hero member
Activity: 815
Merit: 1000
If you can install an overlay between the keys and the actual circuit board, you can easily capture the pin, and launch a replay attack.

Well... can't the card be locked immediately after a purchase (say 30-90 s).

That way the merchant would have to wait for you to come back AND remember who you were?

(he only gets 3 PIN attempts)


As for special override PINs I did not know about that? Is it real does that exist?
It seems to defeat the point of even making a smartcard...

If it does what stops anyone from hacking any VISA card in the world?
legendary
Activity: 2058
Merit: 1431
assuming you can even implement a protocol that doesn't allow the private keys to be leaked

A lot of smartcard apps are poorly designed.  But it isn't black magic or anything.  It's definitely doable.  Look at the satellite TV access cards.  They can be reverse engineered, if you have access to the card itself and a scanning electron microscope.
if you can install an overlay between the keys and the actual circuit board, you can easily capture the pin, and launch a replay attack.

a much better way is to have a portable wallet that "pays" a merchant by transferring a signed tx, which the merchant can verify and broadcast.
kjj
legendary
Activity: 1302
Merit: 1025
I've tried to follow this thread, but it meanders a bit.

Is the basic idea under discussion having a wallet-only client running in a small hardware device that can interact with POS terminals?

Most of the smartcards that I've seen are just (tiny) general purpose CPUs embedded in a card, usually with a small ROM containing a secret key.  This is not a useful model for bitcoin.  For bitcoin, you need the secrets in RAM (flash, etc) because you need to be able to add new secrets.  You also need to make sure that you don't ever let the device communicate with a hostile device using the same physical pins that can be used to reprogram or dump it.

Think more along the lines of a small custom device with a screen, a couple of buttons, and a serial port (or serial over USB, or serial over bluetooth, or serial over NFC, etc).  The programming interface, if it has one, must be internal, or it must load software from a memory card (like SD).
hero member
Activity: 815
Merit: 1000
Okay replying loosely to posts above and questions from Haplo:

1. The card does not know the balance -> The terminal will check if the address the card returns along with the tx has sufficient funds.
If so the terminal sends the tx to the network otherwise it says "overcharge" on the screen.

2. The card would be programmed by a third party that you would have to trust, however:
* The program loaded would be the same for ALL card manufacturers.
* The program would be open source and standardized.
* Anyone with a with a cable could program cards - for the paranoid.
* Using web-of-trust you would choose a trusted card programmer.

-> The cost for the individual remains 2$ for the card.
-> 15$ for the Android Phone + Cable Terminal (APCT) for the merchants.

3. PIN, address and keys would be sent to you along with the card or you would know if you programmed it yourself.

4. Maintaining anonymity:
* The card would contain multiple addresses and keys (~50).
* This allows spending with it again within 60 mins. after use.
* It also allows maintaining anonymity by only sending the address to the terminal that will be used to pay with.

5. Overcharge prevention:
* The card will have a number only you know.
* This number will be multiplied by the charge amount from the terminal and sent back.
* If the wrong result is shown you know you have been tricked and can just leave.
* If a new charge is sent before giving the PIN the card locks itself for 10 minutes.

6. Backend:
* We can add two features to the APCT app.
* A QR code scanner to scan price and item type from the wares. (QR code formats are standardized)
* The app will create a file with a column with QR results and a column with charged price.
* The auto-file/spreadsheet can later be merged with corporate databases automatically with a small parsing program.
* If the auto-spreadsheet is saved as XLS (Excel) it could also be used as-is.

7. "Needing a reader" - only merchants will need a reader (15$) (+Android and APCT app).

8. Hackability:
* Locked memory: Casascious (who seems knowledgeable about this field) said there is locked memory ONLY the card can see.
* Force: You would need access to the physical card and a microscope to FORCE the chip.
* Hack: If you hack the APCT app, save all used customer addresses and pins THEN you MAY one day be able to overcharge a multi-return customer for the small amount he keeps on his spending card.

So YES you CAN hack the smartcard, but it requires the physical card and collecting a lot of card information.
Merchants will have little incentive to do this anyway as their shops would be raided shortly after.
I'm sure Visa is no better really.

To BitCoinAndie about early markets:
1. First market:
Market:
* Bitcoin promoters and bitcoin physical exchanges.
Motive:
* This could be used by people trying to replace Western Union and such.
Users:
* It would be used by early adopters or rarely by normal people as a novel means of easy money moving.

2. Second market:
Market:
* Greece and other oppressed economies.
Motive:
* Cash is good and WILL be used, but it is not always practical - hiding your pension as devaluing bills inside your couch is hardly optimal.
* With a BTC client you have a safe savings account.
* All the users need is access to internet bars and a smartcard.
* The shop owners can more easily hide BTCs than cash in case of a raid.
* Transferring cash over larger distance (pay, relatives and investors) is a complete pain.
Users:
* Savers, businessmen, drug dealers and at times shops.

3. Third market?
legendary
Activity: 1330
Merit: 1000
That's exactly the point.  You can put multiple addresses on a smart card, verify the transaction amounts with a display, and create all the transactions right on the card.  There's absolutely zero need to trust merchants.

How do you get them on there? In order for a card to create tx it would have to have the relevant txIns, in which case it could also know its own balance, and could use a simple interface for "locking in" the settling price for a tx prior to pin input. Again, though, that requires having a computer and a card reader for loading and managing it, or else a bank which can do it for you.

Hmm, I see your point.  If the card is your only device, you do have to trust whomever you purchase Bitcoins from.  That's not entirely different from most Bitcoin users today, though, who have to trust the exchanges they send money to.

But perhaps it could be solved by setting up some sort of centralized service that would just send you a signed verification of your balance.  That way, the card itself could query the service through a 3rd party terminal, and would only have to trust the service, but not the terminal.  The card would have the public key for the service, and can verify that the balance was not tampered with.
newbie
Activity: 46
Merit: 0
Security is another big question, I think. What happens if someone steals your phone? How do you enter a pin or something without your phone recording it? Etc etc.
[/quote]

Right, don't know what the Telecom infrastructure looks like or the cost of service. But that's pretty straight forward market research.

Would need to consult/work with with a BTC expert on the security side, there are plenty of folks here. Yes, security would be PIN based. Realize that each phone has a unique number like a POS device.  But using dual PINs may also make a lot of sense, for example requiring a second PIN to send money to a new merchant not in the system or on the customers call list.  Also when sending money to another individual, that person would need a know the the special Receiver PIN as designated by the Sender (I believe that's how its done in Ghana) As you can see, mobile does solve a lot of problems but it also requires design/build, a server (hardware or space in the cloud) and a caretaker.  Meaning linking in folks who with an interest in helping to pull this together for the Greek market.  Let me know if you'd like to discuss further you can PM me.
full member
Activity: 168
Merit: 100
I was talking more about security from merchant overcharging, and for that matter, since BTC is spent by referring to previous txOuts, you'd have to load all the txOuts onto your card, or trust the merchant to construct a tx with the proper amounts that pays you the proper change. If the merchant is using a USB smart-card reader, they would have even more room for messing with clients since there are no software restrictions on a general computer as opposed to a specialized card payment unit.

That's exactly the point.  You can put multiple addresses on a smart card, verify the transaction amounts with a display, and create all the transactions right on the card.  There's absolutely zero need to trust merchants.

How do you get them on there? In order for a card to create tx it would have to have the relevant txIns, in which case it could also know its own balance, and could use a simple interface for "locking in" the settling price for a tx prior to pin input. Again, though, that requires having a computer and a card reader for loading and managing it, or else a bank which can do it for you.
legendary
Activity: 1330
Merit: 1000
I was talking more about security from merchant overcharging, and for that matter, since BTC is spent by referring to previous txOuts, you'd have to load all the txOuts onto your card, or trust the merchant to construct a tx with the proper amounts that pays you the proper change. If the merchant is using a USB smart-card reader, they would have even more room for messing with clients since there are no software restrictions on a general computer as opposed to a specialized card payment unit.

That's exactly the point.  You can put multiple addresses on a smart card, verify the transaction amounts with a display, and create all the transactions right on the card.  There's absolutely zero need to trust merchants.
full member
Activity: 168
Merit: 100
Pages:
Jump to: