Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Defeating Virtual Keyboards and Phishing Banks

Posted by Zonk on Mon Nov 27, 2006 12:46 AM
from the sounds-like-a-full-night dept.
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"
This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • dumb (Score:5, Insightful)

    by Lehk228 (705449) <ender86187@yahoo.com> on Monday November 27 2006, @12:59AM (#16998488)
    (http://www.cafepress.com/lehk | Last Journal: Wednesday July 25, @12:50AM)
    the whole idea is dum, you are trying to make a compromised host somehow "Safe" by obscuring what is going on. if they wanted to be really safe they would use a trusted device and allow the computer to simply be one more untrust part of the cloud between that device and the bank. a USB "smart card" could do the trick just fine. for added security have a pin pad on the smart card itself.
    • Re:dumb by ancient_kings (Score:1) Monday November 27 2006, @02:06AM
      • Re:dumb by iamdrscience (Score:2) Monday November 27 2006, @02:28AM
        • Re:dumb by sr180 (Score:2) Monday November 27 2006, @06:49PM
      • Re:dumb by aussie_a (Score:2) Monday November 27 2006, @05:58AM
      • 1 reply beneath your current threshold.
    • Re:dumb (Score:4, Insightful)

      by arivanov (12034) on Monday November 27 2006, @02:18AM (#16998796)
      (http://www.sigsegv.cx/)
      Ahem. Exactly.

      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.
      [ Parent ]
      • Re:dumb by timmarhy (Score:1) Monday November 27 2006, @03:22AM
      • Re:dumb by moro_666 (Score:2) Monday November 27 2006, @06:00AM
        • Re:dumb (Score:5, Informative)

          by theCoder (23772) on Monday November 27 2006, @08:12AM (#17000416)
          (http://slashdot.org/ | Last Journal: Saturday April 01 2006, @07:15PM)
          If you use a smartcard, the crypto happens on the card itself. The private key never leaves the card. Simply speaking, a request is made to the card to sign something, and it gives back the signature. This means that no one listening on the computer can duplicate the authentication (assuming there is nothing else wrong with the protocol, such as replay attacks, any sort of man in the middle, etc).

          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.

          [ Parent ]
          • Re:dumb by Directrix1 (Score:2) Monday November 27 2006, @10:44AM
            • Re:dumb by arivanov (Score:3) Monday November 27 2006, @10:52AM
              • Re:dumb by Directrix1 (Score:2) Monday November 27 2006, @01:06PM
              • Re:dumb by arivanov (Score:2) Monday November 27 2006, @03:42PM
              • Re:dumb by Directrix1 (Score:2) Monday November 27 2006, @04:48PM
      • 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.

        [ Parent ]
    • Re:dumb by ArsenneLupin (Score:3) Monday November 27 2006, @03:47AM
      • Re:dumb by jrumney (Score:3) Monday November 27 2006, @05:12AM
        • Re:dumb by ArsenneLupin (Score:3) Monday November 27 2006, @05:27AM
          • Re:dumb by swillden (Score:2) Monday November 27 2006, @09:43AM
            • Re:dumb by Sanat (Score:2) Monday November 27 2006, @09:44PM
              • Re:dumb by swillden (Score:2) Monday November 27 2006, @11:48PM
              • Re:dumb by Sanat (Score:2) Tuesday November 28 2006, @08:04AM
              • Re:dumb by swillden (Score:2) Tuesday November 28 2006, @02:12PM
              • Re:dumb by Sanat (Score:2) Tuesday November 28 2006, @04:18PM
              • Re:dumb by swillden (Score:2) Tuesday November 28 2006, @07:23PM
    • Re:dumb by Kjella (Score:2) Monday November 27 2006, @02:17AM
      • Re:dumb by mochan_s (Score:3) Monday November 27 2006, @03:14AM
      • Re:dumb by bogado (Score:2) Monday November 27 2006, @07:03AM
        • Re:dumb by swillden (Score:2) Monday November 27 2006, @08:53AM
          • Re:dumb by bogado (Score:2) Monday November 27 2006, @09:17AM
            • Re:dumb by swillden (Score:3) Monday November 27 2006, @09:50AM
              • Re:dumb by bogado (Score:2) Tuesday November 28 2006, @06:39AM
                • Re:dumb by swillden (Score:2) Tuesday November 28 2006, @02:16PM
          • Re:dumb by Barryke (Score:1) Tuesday November 28 2006, @12:32AM
            • Re:dumb by Barryke (Score:1) Tuesday November 28 2006, @12:40AM
    • 2 replies beneath your current threshold.
  • What if you obscure the pattern? (Score:2, Interesting)

    by crossmr (957846) on Monday November 27 2006, @01:06AM (#16998526)
    (Last Journal: Thursday February 15 2007, @08:40PM)
    Its a bit overkill, but I'm wondering if it could be broken short of a screen cap?
    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 interface of some sort, using some kind of crazy method to hide the image from any kind of snooping software.
  • Secure banking? Yeah right. (Score:3, Interesting)

    by thedarknite (1031380) on Monday November 27 2006, @01:07AM (#16998530)
    For institutions that are responsible for vast quantities of peoples money, some of the security policies they implement are really quite strange. For example, the bank I use, even before they brought in the annoying virtual keyboard, had a six character alpha-numeric limit on there passwords. Very bizarre considering that you enter in your customer id which is a ten character string.

    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.
  • by werewolf1031 (869837) on Monday November 27 2006, @01:12AM (#16998554)
    (http://werewolf.darkicon.com/)
    this already posses [tfd.com] a security problem
    Round 'em up, boys! We gonna lynch us some bank robbers!
  • Yeah, and? (Score:3, Insightful)

    So the article is saying that people with trojans on their computers are fucked? Is anyone surprised by this? The point of virtual keyboards is not to defend against trojans, it's to defend against keyloggers. They may defend against trojans that try to steal your account information with a keylogger, but I think it's safe to say that no matter what security technology your bank is using, if you've got a trojan on your computer you're going to be fucked.
    • Re:Yeah, and? by uhlume (Score:2) Monday November 27 2006, @02:29AM
      • Re:Yeah, and? by Rew190 (Score:2) Monday November 27 2006, @07:47AM
    • Re:Yeah, and? by Beryllium Sphere(tm) (Score:2) Monday November 27 2006, @02:51AM
      • Re:Yeah, and? by shigelojoe (Score:1) Monday November 27 2006, @03:08AM
    • Re:Yeah, and? by shigelojoe (Score:2) Monday November 27 2006, @03:01AM
    • Re:Yeah, and? by iamdrscience (Score:2) Monday November 27 2006, @03:44AM
      • 1 reply beneath your current threshold.
    • 1 reply beneath your current threshold.
  • just go to the bank....oh wait (Score:1, Insightful)

    by ILuvRamen (1026668) on Monday November 27 2006, @01:31AM (#16998620)
    I'd say just go visit the bank in person, it's probably right down the street, but of course it's not open. I don't care what type of bank it is, it's not open right now. Why? Because you're home and not at work, probably cuz it's a weekend. If banks really wanted to improve security, they'd actually be open at usefull times so you wouldn't have to rely on web services. But I guess that's all you can expect from a business where the less customers stop in, the more money they save (in staffing etc). I have another great idea too. On the applications for web banking services, they could have an area where it says "I hereby swear that I am not a complete dumbass when it comes to passwords. It is not a. my last name, b. something I tell everyone, or c. on a sticky note on my monitor." That would get rid of at least half of the major security problems.
  • a four digit pin?? (Score:2)

    by ampathee (682788) on Monday November 27 2006, @01:40AM (#16998652)
    It seems to me that having a 4-digit numeric password on a bank *website* is a pretty fatal flaw in the first place! Given a relatively large botnet and enough legit account numbers (much easier to come by than passwords), let's say 3 tries per account number, how long till you find someone with '1234', '4321', or '1337' ?

    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.
  • by genevaroth (685479) on Monday November 27 2006, @01:44AM (#16998670)
    The Royal Bank was down last week- they said it was "software problems" me thinks they were hacked of DDOS'ed.
  • No Surprise (Score:4, Informative)

    by daeg (828071) on Monday November 27 2006, @01:45AM (#16998680)
    This is no surprise at all. Keyloggers will be a thing of the past soon enough for the major hackers.

    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.)
  • Cut them off at the pass (Score:3, Funny)

    by SEWilco (27983) on Monday November 27 2006, @01:56AM (#16998722)
    (http://www.wilcoxon.org/~sewilco | Last Journal: Friday October 19, @12:46AM)
    posses a security problem
    It depends upon your posse whether one or several of them are a problem.
  • by zappepcs (820751) on Monday November 27 2006, @01:59AM (#16998732)
    (Last Journal: Friday May 18, @11:07AM)
    If your pc is infected with a trojan, or other malicious software, its feasible to capture the screen with each keystroke while connecting to a bank website and forward that data to a server somewhere at a later time... key logging doesn't have to be only key logging, it could be logging keystrokes and relevant screen data at the same time.

    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.
  • by springbox (853816) on Monday November 27 2006, @02:01AM (#16998736)
    This was an interesting article, but it got painful to read after a while. I would hope that SecuriTeam knows that PIN stands for Personal Identification Number.


    Now if you'll excuse me, I have to enter my Personal Identification Number Number into the Automatic Teller Machine Machine.

  • My Phone is a Weapon (Score:4, Interesting)

    by Doc Ruby (173196) on Monday November 27 2006, @02:03AM (#16998744)
    (http://slashdot.org/~Doc%20Ruby/journal | Last Journal: Thursday March 31 2005, @01:48PM)
    I'd rather use an ATM by touching my mobile "phone" to it to pair it with my Bluetooth (and exchange keys), then use the phone to control my session. I'd prefer my phone client to generate onetime passwords consumed by the ATM to giving anyone my PIN.

    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.
  • Unless you're an expert crypto protocol developer and you're not going to deploy it to the field until it's had several years of peer review.

    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)

    by bonhomme_de_neige (711691) on Monday November 27 2006, @04:05AM (#16999256)
    (http://www.spunmonkey.org/)
    HSBC in Australia and SE Asia (and, it seems, with a bit of Googling, elsewhere in the world) issue with online banking accounts a device that sits on your keyring that generates a 6 digit number when the button on it is pressed, and displays that on a small screen. The number is different every time.

    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]
  • Have a split PIN system (Score:5, Insightful)

    Have a split PIN system - half in your head, and a random second half texted to your phone, which is valid for 5 minutes after it is texted. Voila. And the bonus? Everyone owns one of these "what you have" devices (in the UK at least).
  • If the banks did care they would form an international alliance to track down the cash flow and put quick end to it.

    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 more than 3 months if they couldn't take credit card payments.

    There is a simple solution to the problem and the infrastructure already exists. I know this because I used to work directly or indirectly with both card schemes.
    (if your from a bank reading this, get in touch with me and I can provide details on how you can push this, just follow the links or google for my name and you will find links to contact me)
  • by jonwil (467024) on Monday November 27 2006, @05:42AM (#16999678)
    This solution would be OS and browser independant and would not be subject to any issues such as SMS's not getting through to a cellphone.

    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 /trojan/whatever from changing the details of the transaction ($ amount or destination account).

    Unlike some other proposals (USB smart cards, mobile phones), it is 100% OS and browser independant and requires no drivers.
  • Banks and third-party Javascript (Score:3, Interesting)

    by timlewis_atlanta (195776) on Monday November 27 2006, @08:32AM (#17000522)
    (http://slashdot.org/)
    And this story breaks the evening after I notice that a large bank that I shall not name, but instead refer to "Bank of America", changes their SiteKey/Login page so that it now loads Javascript from a domain other than bankofamerica.com : "liveperson.net".

    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 ?
    • 1 reply beneath your current threshold.
  • Boot from CD ROM (Score:1)

    by 2901 (676028) on Monday November 27 2006, @01:49PM (#17004890)
    (http://www.cawtech.freeserve.co.uk/ | Last Journal: Saturday March 03 2007, @02:39PM)

    I don't get why banks are trying to do money stuff with a domestic grade operating system.

    I would expect to collect a CD ROM in person from the Bank. Then I would do my internet banking by booting my machine from the Bank's CD ROM, connecting to my bank account with a client program that was on the CD and runs on the bare metal.

  • Q: Does on-line bank fraud cost the consumer or the bank?
    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 electronic OTP, and each six-digit number is good for one login attempt, one payment or one transfer only. And that's the beauty of an OTP. You can't predict the next number, and the number just used has been used for ever.

    Now I do understand that there must be some algorithm to match the number off my pad and what the on-line system is expecting, but I have my doubts as to whether or not that could be broken by a man-in-the-middle or a key logger attack.
  • by werewolf1031 (869837) on Monday November 27 2006, @01:26AM (#16998608)
    (http://werewolf.darkicon.com/)
    I believe you're thinking of software keyloggers, in which case you're (probably) correct. However, to the best of my knowledge, a hardware-based keylogger (dongle between keyboard and port) doesn't give a rat's ass what your OS is. Then again, if someone has both physical access to your computer and motivation to spy on your online transactions, your bank's online security may be the least of your problems...
    [ Parent ]
  • As far as keyloggers installed by trojans, you're probably right, I've never heard of that happening with any OS besides Windows, but there certainly are keyloggers for unix and other OSes and while you probably don't have to worry about those (presuming you keep your PC secured), there are also hardware keyloggers.
    [ Parent ]
    • 1 reply beneath your current threshold.
  • Virtual keyboards are designed to protect against keyloggers, not phishers, and they do a pretty good job. No one technology protects all fronts of attack -- saying virtual keyboards are useless because users can still be phished is like saying that encrypting data between you and a bank is useless because it doesn't protect you from somebody looking over your shoulder.
    [ Parent ]
  • Re:PINN? (Score:1)

    by MLease (652529) on Tuesday November 28 2006, @10:52AM (#17017282)
    You know that if they started calling them PINNs, they'd start referring to them as PINN numbers, and then they'd have to start calling them PINNNs. And the day when PINNNNNNNNNNNNNNNNNNNNNNNNs appear wouldn't be far behind.

    Maybe we should just call them PI numbers to spare ourselves that...?

    -Mike
    [ Parent ]
  • 5 replies beneath your current threshold.