Defeating Virtual Keyboards and Phishing Banks 135
An anonymous reader writes "Noam Rathaus writes on the SecuriTeam Blogs how most Image Click-Me virtual keyboards schemes used by banks to fight phishing trojan horses can be easily broken, even (and especially) when encryption is used. He then discusses how screenshots of the pointer location are over-kill, and describes how to kick these security measures out of the way." From the article: "Instead of sending the remote image and waiting for the key-stroke information to be sent back to the server (the technique which the screenshots for pointer location on-click described above was used) some banks send the PIN number in cleartext, while others encrypt them, one such example is cajamurcia. Even when the encryption is used, banks tend to implement it badly making it easy to recover the PIN number from the encrypted form. I investigated a bit more on how cajamurcia handles such PIN strokes (with virtual keyboards) and I noticed something strange, they take the timestamp of their server (cajamurcia) and send it to you - this already posses a security problem - and this timestamp is then used to encrypt the PIN number you entered"
dumb (Score:5, Insightful)
Re: (Score:1)
Re: (Score:2)
Some banks do it. ETrade, for example, will give you an RSA SecurID keyfob [rsasecurity.com] for free if you have over a certain amount of money in your account with them (like $50k I think, maybe it was 25). If you don't have enough money to get one for free, you can still get one from them for, I think, $25.
Re: (Score:2)
Re: (Score:2)
Re:dumb (Score:4, Insightful)
Client side x509 certificates (if possible on smartcards or tokens) will solve 99% of phising problems once and for all. For most "secure" sites, the clients authenticate the server (which can often be circumvented by using DNS tricks). At the same time there is no SSL level client authentication. As a result stolen credentials can be reused on another system. A smartcard holding the x509 cert prevents this outright.
Unfortunately instead of using what is right there in front of them in the actual protocol spec the banks go into all kinds of technological roccocco. Not surprising actually. I tried to explain the concept of client side certificate to one of my collegues who had in the past implemented the internet banking system (and its security) for one well known UK bank and is now to implement another one. No matter how hard I tried, he could not grasp the concept.
Re: (Score:1)
Re: (Score:2)
Unless your machine is secure, there's
Re:dumb (Score:5, Informative)
In essence, the smartcard idea is assuming that your machine could be compromised, and is moving the authentication to another machine (the smartcard) which is much harder to compromise.
Re: (Score:2)
Re: (Score:3, Informative)
The MIM will need to have both a valid server certificate to authenticate to the client a valid client certificate to authenticate to the server. If the server correlates certificates with another credentials like a username and password (2+ factor authentication) it can immediately detect that a stolen identity is being used with the wrong smartcard.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re:dumb (Score:5, Insightful)
I've been in the business of designing, implementing and selling smart card-based security solutions for nearly a decade now, and I've talked to lots of banks about these issues. Most of them understand perfectly well that smart cards with client-side digital certificates are an excellent (though not perfect, see below) solution from a security standpoint. The reasons they aren't gung ho about deploying such a solution are (1) cost and (2) consumer acceptance.
Smart cards themselves aren't expensive, and neither are smart card readers. The cost of retooling the card issuance process to support smart cards, however, is non-trivial, and the cost of deploying card readers to consumers and supporting them through the installation and usage process is very large. The biggest problem, though, is cardholder training. How do you teach millions of people how to use the thing, even if it's already set up on their machine? Simple problems like how to insert the card into the reader are surprisingly hard to address on a large scale.
The UK, and a few other countries, are much more prepared for this than the US thanks to the Chip & PIN initiative that their banks have spent tens of millions on. At least UK citizens know to put the card in chip-end first, with the chip up.
In any case, though, it's the cost and difficulty of getting consumers to deploy additional hardware on their computers that holds banks back from doing it, not lack of understanding. All of their weird security solutions are attempts to perform semi-secure transactions on the PC hardware that the cardholders already have, with no new software or hardware to install or maintain. Note that the costs and difficulties I'm talking about aren't theoretical. Various banks in different parts of the world have run pilots using these technologies, and they've invariably fallen flat. IMO that's because the pilots were poorly run, but having seen the failures, banks are very leery of trying anything else.
The new buzzword that's sweeping the financial industry these days is Near-Field Communications (NFC). NFC is basically a contactless smart card chip embedded in your cellphone. The chip can securely store and use keys, and the interface with the phone provides it with a display, keypad and Internet connection so the chip can phone home to the issuing bank as needed (for velocity checking, balance checking, etc.). Assuming the phone can be protected from viruses, trojans, etc., and can be considered a relatively secure device, this has all sorts of advantages. It can be used in a retail environment with a contactless smart card reader, using the phone's display and keypad to give the user a chance to verify the transaction details (the amount, mainly) on a device the user trusts. For on-line usage, you can connect the phone to the PC via USB, or via a contactless smart card reader for secure and easy transaction, but it's more likely that you'd use the phone's data link for the financial transaction. Imagine going to amazon, picking out your goods, hitting the "buy now" button and then waiting a few seconds for a message to arrive to your phone, requesting payment authorization. You'd review the transaction details on your phone screen, authorize payment with the keypad, and the smart card chip would then create a cryptographically-secure payment authorization message and deliver it to either the bank or the merchant (depending on how the system was structured).
What's actually going to happen? After failing repeatedly over the years in my prognostications, I won't even guess. I will say, though, that banks are big fans of "good enough", and that their definition of "good enough" doesn't require that fraud be impossible, only that it be sufficiently limited that it's affordable.
Re: (Score:3, Interesting)
for added security have a pin pad on the smart card itself.
Actually, that's not added security, but essential security. If the PIN was entered on the computer, and then sent to the smartcard for encryption, then a Trojan could still get it on that first leg of communication, before it was encrypted.
For real security, not only would the PIN need to be entered on the card itself, but essential transaction data (amount, target account) would need to be displayed by the card as well (using a pocket-calculator like LCD display, for instance). Indeed, without such displa
Re: (Score:3, Informative)
Actually, that's not added security, but essential security. If the PIN was entered on the computer, and then sent to the smartcard for encryption, then a Trojan could still get it on that first leg of communication, before it was encrypted.
The way these things usually work, the PIN entered at the keyboard is not the PIN for the bank, but the PIN to decrypt the certificate on the smartcard. So knowing the PIN is only useful to the identity theives if it can get physical access to your smartcard.
Re: (Score:3, Informative)
Re: (Score:2)
Correct. However, once the Trojan Program has the Pin, it will be able to reuse that to submit fake transactions if the user is careless enough to leave the card in the reader...
And not much carelessness is required, either. The trojan could easily perform a couple of unauthorized transactions each time the card was inserted to perform a real transaction, and the user wouldn't notice.
There are some workarounds to this, though. For example, the card can be configured so that it will only perform one transaction per insertion. The trojan could still do a bogus transaction when the card is inserted, but at least there'd be a clue to the user that something funny was going on.
I
Re: (Score:2)
I just completed a round trip vacation driving from Ohio to Sedona,AZ and back for a total of 5,000 miles driven. At about half of the gas stations where I bought gas had the pump requesting the entry of the Zip code when paying with a credit card.
If you don't know the Zip code then no dispensing of gasoline. Thi
Re: (Score:2)
Re: (Score:2)
Mostly I was traveling on the interstates... I-40 mainly and stopped at the truckers stops such as Love's, TA, Pilot and Flying J.
As a side note... I just received my replacement Visa card from Wells Fargo Bank and it came in a foil lined envelope so i assume it contains a RFID of some sort. I put it
Re: (Score:2)
I just received my replacement Visa card from Wells Fargo Bank and it came in a foil lined envelope so i assume it contains a RFID of some sort. I put it in my sock drawer and it will probably stay there.
It's an EMV-compliant contactless smart card, and there's really nothing to be concerned about. Not so much because of the technological security (which isn't being used in the current contactless cards being issued in the US) but because of the fact that Wells Fargo accepts 100% of the liability for an
Re: (Score:2)
It is nice to see someone on Slashdot who knows what they are talking about and is willing to take the time to share the wisdom.
I validated your points in research as follows:
"The company says 10 issuers have put the chip into their cards. Among them is Wells Fargo, which is issuing a Visa-branded credit card with the MicroPass contactless chip."
"The MicroPass chip does not hav
Re: (Score:2)
"The MicroPass chip does not have the onboard cryptographic co-processor required for contactless EMV transactions. (2006-11-06)"
That statement is only half-correct, actually. EMV transactions don't require crypto coprocessors. EMV provides multiple operation modes, starting with one in which the card serves up what is essentially just magstripe data. The others are "static data authentication" (SDA) and "dynamic data authentication" (DDA). SDA is basically just a copy of the magstripe data plus a digital signature from the issuing bank, which the point-of-sale terminal can validate. DDA is the only mode that requires a crypto
Re: (Score:2)
Re: (Score:3, Insightful)
Doesn't mean they always will be.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
But basically you are correct, if the cell is encoding everything correctly the connection could be trusted, the only problem is that cell networks are known for hiding behind obscurity for security, witch is not very safe after all.
Re: (Score:3, Informative)
But basically you are correct, if the cell is encoding everything correctly the connection could be trusted, the only problem is that cell networks are known for hiding behind obscurity for security, witch is not very safe after all.
Doesn't matter. You wouldn't rely on the cell networks for any of the security, you'd just use the network as a transport. The Internet is also completely insecure, but we easily create secure communications channels over it. The security of the network is irrelevant. It's the security of the endpoints that matter.
Re: (Score:2)
Re: (Score:2)
I envision that a bank would send credentials via the same, unsafe, SMS system.
As long as the credentials themselves are correctly secured, it still doesn't matter if the SMS system is insecure. Note that what I'm talking about is embedding a secure crypto chip in the phone (which is already happening, BTW), where the cryptography is defined and implemented by the banking industry, not the phone industry. The proper solutions to these security issues are very well understood as evidence by their implem
What if you obscure the pattern? (Score:2, Interesting)
What if the user was presented with a randomized "number pad" image and the user was asked to input their pin on their number pad but using the layout presented on the screen. The packet might contain: 6689 as the pin, but in reality it would be translated on the server side to 3327 using the image they were served at the time of page creation. Its unsophisticated, but I'm sure someone here could turn it into a beautiful inte
Re: (Score:3, Interesting)
Re: (Score:2)
Re: (Score:2, Interesting)
This is what I gather from using it and glancing at the page info and scripts:
The keypad numbers (are images) and are randomised (threw me first time, but no probs since) every login session.
Every time you login each number corresponds to a different image URL on the server. The URL's format is like http:// [mybank.ohyeah]
Re: (Score:2)
Re: (Score:1)
(And i'm using Firefox - in case that is a factor).
Re: (Score:2)
Anyway, here's a picture of what the virtual pinpad looks like on the US site: http://itsbeenconfirmed.com/uploaded/ingkeypad.jp
Re:What if you obscure the pattern? (Score:4, Interesting)
http://griddatasecurity.com/Approach.htm [griddatasecurity.com]
(Of course, this isn't much use against the hypothetical of a carefully-engineered realtime man-in-the-middle attack, but I suspect very little would be.)
very clever (Score:2)
It seems even better than the banks that mail out one-time password cards.
If we could convince a bank to actually send out cds with their certificates and a certificate for each user then it'd be almost infallable.
Until of course the phisher sets up a page that says "For verification purposes we'll now ask you to type your password once a month..."
sigh
Re: (Score:2)
That's a remarkably elegant system which (depending on how you establish the password) pretty much defeats any kind of screen scraping technology.
Unfortunately it doesn't defeat brute force attempts but rather helps them. In their example, the password is "Grid1" which if we assume the available characters are 0-9, A-Z, and a-z results in a possible 62^5 possible permutations. Replacing the characters with numbers results in the password having only the characters 0-9 which results in a possible 10^5 permutations -- almost 10,000 times weaker. I suppose that's yet another demonstration that security boils down to a series of trade-offs.
Re: (Score:2)
Re: (Score:2)
Regarding brute force. Let's not confuse brute forcing a static/reusable password with a one time password (OTP). Static in NON-linear and the OTP nature of GridOne creates linear security. There is nothing to bruteforce with an OTP. Also normal account/system lock out defetas any type of guessing of automated attacks.
I agree that you can't brute-force a one-time password. However, as I pointed out in my other reply, your system is not a one-time password since each attempt is derived from a static password by elementary transformations which, over the course of observing several logins, can be trivially decoded. Once I've observed the same user logging in five times using your system, I can easily login without having to guess at the password and triggering a lockout. It's good enough if the attacker can only observe
Re: (Score:2)
Since the numbers are randomly generated with each display of the entry grid, and any numeral may appear in multiple places on a given random grid, this effectively defeats both keyloggers and screengrabbers: even if you can see both the entry grid and the entered keystrokes, deriving the user's password from that information is non-trivial.
Unless you observe multiple logins, in which case matching up which numbers correspond to which letters becomes nothing more than a game of MasterMind. [wikipedia.org]
Re: (Score:2)
Re: (Score:2)
Really? Care to explain how that works when the corresponding numbers change with each login?
I'm assuming the attacker has a screenshot of the grid with the letters and numbers for each time and that the password doesn't change. Each of the 62 characters (A-Z, a-z, 0-9) has 4 numbers out of 10. So there's a 40% chance that a given number is on any of the characters. This means that, on average, 40% of the characters have that number. Rounding up each time, that's 25 possible matching characters for each character of the first login. After observing the second login, there's a 40% chance that e
Re: (Score:2)
Re: (Score:2)
Your logic might hold true if each letter corresponded to one and only one randomly-generated number. Remember, though, that the cracker doesn't know which of the four random numbers associated with each character is significant.
Read again -- I take this into consideration. The odds that one corner of a given character contains the number in question is 1 in 10. There are four corners, so the odds that the number in question is on a particular character is 4 in 10, or 40%. My analysis is unchanged.
Coupled with the ability to inject "decoy digits" into the stream, I'd have to consider this system sufficiently difficult to compromise.
I'd have to think about this a little more, but my initial impression is that the decoy digits don't significantly increase the difficulty of attack. However, I'm not certain on this point so I'm willing to be corrected. What I'd lov
Re: (Score:2)
As you increase the number of digits on any given character you also increase the possibility of false matches. For example, if each character had all ten digits on them, you could enter any combination of the right length to login since any number you enter would match every character (ignoring the fact that it's random so you wouldn't be guaranteed each digit only once, but you get the idea).
Bah... I'm on crack. Of course, you're only choosing one position out of the ten... not that all ten numbers are in the same position. With ten positions, you're looking at 40 observations. Extending the existing system to eight compass positions, for example, it would take an average 19 observations to deduce the password. Why not just go all-out and make each character into an analog clock. Instead of choosing a corner (eg: upper-right) you could choose a time (eg: 7 o'clock) and enter the number at
Re: (Score:2)
Re: (Score:2)
Nac-The GridOne system and its patented approach allow for greater security through the use of Decoys(TM) or Decoy Digits(TM).Upon login the user simple keys in (anywhere in the actual GridCode sequence) any arbitrarily selected, extra numbers or Decoy Digits(TM) and injects them into their strand of numbers So if the real GridCode answer is 51832, the user can enter 3518932; the Decoys of a 3 and 9 are added. Now you are the attacker, and not knowing what are real and what are Decoys(TM), what is the user's underlying GridPass(TM)/password???
That doesn't matter. Again, after observing several logins any decoy numbers will not matter. They too will be canceled out after you eliminate the possibilities.
This extremely simple, yet highly effective security feature will confer excellent security upon login and will force the opportunistic attack to become a concerted attack requiring time, opportunity and resources.
I agree that it is extremely simple. However, it's not that great of a security feature if the user is required to login multiple times from the same location.
Grid allows and delivers the unparalleled, proven security delivered by One Time Passwords without the need of any device, extra materials, computer modifications or time synchronization (exposed to possible reply attacks).
This is much better in that circumstance if you place the constraint that no other security options are available. X.509 certificates through a device, or even *real* one-time passwords w
Re: (Score:2)
Secure banking? Yeah right. (Score:3, Interesting)
Although, on the plus side it has made me extra paranoid about all online transactions. So now any site where I am involved in a finacial transaction has different passwords and anything that gets cached is cleared out of my system as soon as I am done.
Meanwhile, back in the old west... (Score:3, Funny)
Yeah, and? (Score:3, Insightful)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
A man could live for years without being handed a straight line like that one.
Re: (Score:1)
Re: (Score:2, Funny)
I'll take "Things a computer has in common with a penis" for $1000, Alex.
Re: (Score:2)
just go to the bank....oh wait (Score:1, Insightful)
a four digit pin?? (Score:2)
Luckily, both my bank websites are protected by 8+ chr alphanumeric passwords. I would *not* stay with a bank that wanted me to use my card's PIN to log on with.
Re: (Score:2)
Re: (Score:2)
Royal Bank was down last week (Score:1)
No Surprise (Score:4, Informative)
More scary is the fact that adding a simple network device will allow a virus to log all Internet traffic. Look at HTTPLook (a small app used to sniff HTTP traffic). It comes with a small HTTPS module that intercepts HTTP traffic transmitted via HTTPS.
Using such a device will also help cut down on the amount of data hackers can get -- HTTP traffic is useless to them. Why do they care you went to Google and searched for "hot gay wrestlers"? They don't. HTTPS, on the other hand, will set off alarm bells -- if a server is worried enough about security that it pays for certificates, the data must be worth something, right?
The solution is that logging into secure systems needs to require a physical presence. An older system I maintained a few years ago for the Mortgage industry used a username, password, and a key from a small business card in their wallet. Each month users received a new card, and each card had about 50 numbers on it. The system knew which numbers each user had and only allowed each number to be used once. Logging in with a wrong number would flag your account, repeated attempts would lock it. Yes, it increased support load when someone lost their card (the cards were unmarked so if someone found it, the numbers are useless), but it was fairly secure and generally a lower cost alternative to biometrics (and much more portable).
This combines the "something you know" authentication scheme (username, password) and the "something you have" scheme (password card). The third type is "something you are" -- biometrics.
(Failure point: person gets kidnapped. If a user gets kidnapped, security is the least of the worries until they are recovered. Failure point: if the database with the numbers is compromised, the system is no longer secure. If the database is compromised, they no longer need to log in, and no secret numbers will stop them.)
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
A man-in-the-middle attack would defeat it, though, if someone could pull it off.
Cut them off at the pass (Score:3, Funny)
Is it just me? Am I missing something? (Score:5, Insightful)
The ONLY way to outsmart software that wants your data is to not load that software on your machine. I find that I feel much safer booting a life CD (DSL or Puppy or pick your flavor) and running to the banking website with a freshly installed OS... no chances for virii or malware etc.
That is certainly easier than actually going to the bank... and I know that its safe.
It at least makes me feel a bit safer.
Re: (Score:2)
Re: (Score:3, Interesting)
Re: (Score:2)
Is this possible with non-EFI firmware/bios? Could you turn off/restrict more advanced features of an EFI firmware?
Re: (Score:2)
Liquid Crystal Display Display (Score:2)
Now if you'll excuse me, I have to enter my Personal Identification Number Number into the Automatic Teller Machine Machine.
Re: (Score:1)
My Phone is a Weapon (Score:4, Interesting)
With that protocol, I'd feel safe even using those random ATMs at delis and various "impulse purchases", where today they get my PIN and can launch a replay attack any time they want.
Never develop your own crypto protocols (Score:4, Interesting)
That business with the timestamp? Offhand I'd say the bank was trying to do the right thing by preventing replay attacks. But using a timestamp? I'm having trouble keeping up with just the obvious attacks against that, let alone the attacks that a seasoned crypto developer would find.
If you ever need to do what the bank tried to do, find something already written and battle tested, make sure its assumptions and security properties line up with what you need(*), and use that instead of repeating the last fifty years of protocol design mistakes.
(*) Then you'll find that they assume trusted endpoints, which is something worth reflecting on.
Keyring Dongle (Score:5, Interesting)
When you log in or do any transaction, you are required to enter this number (along with any other credentials which are appropriate). The bank records the serial number of the dongle they gave you, and I would assume that there is some secret mathematical algorithm that allows them, knowing the serial number and the time, to calculate what number your device will display.
If you make 3 mistakes in a row with the 6 digit code, your internet banking account is automatically locked down, and you have to contact them to unlock it.
Now, that's a very simple trick and I can't see how a hacker / phisher would get around it. Sure they can sniff the code when I log in, but 30 seconds later it will be useless. Short of mugging me for the device on my keys (after having phished my regular login/password), they can't get in to my account. Even if I leave a session logged in and walk away, and someone else sits down at the terminal, they can look at my balance and transaction history, but can't make any transactions.
Having used the device for a year I have to say it is remarkably convenient, and it seems immune to most of the attacks described here, and doesn't have the convenience drawbacks of one-time PIN cards. Why is HSBC still the only bank doing this?
More info on the device: http://om.hsbc.com.au/osd/ [hsbc.com.au]
Re: (Score:2, Informative)
e.g.
user enters username/pass/magic number to log in at fake bank website
fake bank website then uses that info to log in at real bank site and transfer $largesum to $evilguy
if your token only changes its code every 30 seconds that shouldnt be hard at all
btw, the same scam made a bit more elaborate would also work against one-time-use number pads (present user with fake 'enter transfer details and one-time-use number, use that number to do a different tra
Re: (Score:2)
--jeffk++
Have a split PIN system (Score:5, Insightful)
Re: (Score:2)
phishing happens because the banks don't care (Score:2)
Except they already have two internal alliance groups in place called MasterCard and Visa. If both of them changed their merchant agreements so that any connection to phishing or domain fraud would result in losing the merchant account, you would bet ever domain registration company and hosting company in the would be checking things a whole lot closer. Even network solutions wouldn't last m
Solutions to stop phishing & trojans etc (Score:3, Interesting)
Basicly, each customer is given a device that looks a bit like a small calculator, make it "solar" powered (in reality those panels will work just fine powered by any sufficiantly bright light source) so it never looses juce.
It would have a 0-9 keypad and other buttons. Each device would contain a unique number that is also securely stored on the banks computers.
When you want to log in, the bank generates a random number and displays it along with a form field for username/user ID/whatever, a form field for password and one for a hash. The user types in the random number into their calculator thing which is then hashed with the number stored inside it and the result displayed. The hash algorithim has to be chosen such that there is no one number that when hashed with any unknown stored number can produce either the stored number or something that you can get back the stored number from. (this prevents the hacker from feeding a chosen "random" number to the user and getting the stored number that way).
Once you do that, the displayed hash along with username and password are typed into the form. The hash is compared with the same calculation done by the banks computer and if the username, password and hash match up, you are logged in.
When you want to do a transfer to someone not on your "approved payees" list or add someone to the "approved payees" list, you have to enter the account number and/or dollar amount and/or another random number into the calculator thing which spits out another hash that has to be typed in. This prevents the phisher
Unlike some other proposals (USB smart cards, mobile phones), it is 100% OS and browser independant and requires no drivers.
Re:Solutions to stop phishing & trojans etc (Score:2, Informative)
Re:Solutions to stop phishing & trojans etc (Score:2)
Banks and third-party Javascript (Score:3, Interesting)
I only noticed this because my "NoScript" Firefox extension started showing the "Script partially allowed" message.
Now, I'm no expert, but I do know that Javascript has a bit of a spotty history when it comes to security. Having looked into liverperson.net it appears to be legit ; but in any case, I did not allow it access.
But my question is this : why on earth do BofA think it makes sense to link off-site during the login process ? Surely this is completely nuts ?
There is a simple solution, the One Time Pad (Score:2)
A: In general, The Bank if you can prove it is not your fault. Otherwise, you, the consumer.
If it was costing the banks millions of dollars each year (which it is if we believe the press), then a bank should be willing to spend $5 per on-line user to issue each and every one of them with an OTP should they not? Well, my bank in Aus (HSBC) thinks so. I do a lot of online banking, and I don't mind doing it from a public terminal, because I have an elect
Re: (Score:2)
Re: (Score:1)
the parent makes half of a good point, but even then windows can be secure if you are smarter than the average bear.
long answer is DING! DING! don't bank online. Walk, Bike, Hitchhike, or Drive TO THE BANK, and when online don't assume anything is secure, your just in for a supprise
Re: (Score:1)
Re: (Score:2)
For most people, the likelihood of an offline attack on their bank account (loss of a debit/credit card, stealing of the information through a disgruntled or dishonest employer at a legitimate company where a card is used to purchase something, theft of mail, etc) is more likely than the loss through banking online, so the advantage of checki
Re: (Score:2)
Re:Virtual Keyboards are pointless (Score:5, Insightful)
Re: (Score:1, Insightful)
1) classic cryptography: The human user uses Ke(M) = C, such that the trojan never sees M. That mapping would have to take place before M even reached the (untrusted!) keyboard or mouse. Usable or cryptographically secure, but not both.
2) obscurity: As someone me