The private key cannot be read from the chip without the use of a tunneling microscope or other hardware exotics. In fact it is not untypical for a chip to have a built-in protection against key retrieval that is set to physically fry the chip. The PIN is used to tell the chip to do the digital signing. No PIN = no signing.
That's how it works in general. This application of the smartcard technology is almost 20 years old, so while there are some variations one could still call it sufficiently mature :grin
That may or may not be case (there is no way for customers to check that), but the problem is that this encrypted communication is between some third party's terminal and my bank, not between my chip and my bank. IIRC correctly, the protocol in the end boils down to:
- bank asks terminal 'Can you verify that the customer is who he claims to be?'
- terminal asks user for PIN
- terminal asks chip: is this PIN correct?
- chip replies: yes.
So, I have to trust that the terminal will not e.g. put my PIN on Twitter.
Worse, that terminal-chip communication is not encrypted. Hence, it is vulnerable to a man-in-the-middle attack. That is what 'chip and PIN is broken' demonstrated.
- bank asks terminal "Here's a random token, have the chip sign it with its private key"
- terminal asks the customer for the PIN
- terminal feeds PIN into the chip, and this enables signing function
- terminal feeds bank's token into the chip, gets the signature back and forwards it to the bank
What you described looks like something designed by a layman with very basic understanding of the cryptography. I will not be shocked if this was in fact deployed, but I still find it very unlikely.
A man in the middle can hide the "check this PIN" request that the terminal sends from the chip and send a "PIN is OK" reply to the terminal. That way, the terminal thinks PIN check succeeded, and the chip thinks it is doing a payment without PIN check.
This has actually happened: http://business.timesonline.co.uk/tol/business/law/article71...
So it's not sufficient just to host a fake machine and expect it to be accepted within the EMV infrastructure (cards, POC machines and backend processors).