Opening the Vasco Digipass 810 [en]

Vasco Digipass 810

Vasco Digipass 810

Many belgian and european banks are providing their customers with a device that look like a small calculator. This device, coupled with your bank card,  is used to secure and authenticate the transactions when using internet banking.

Since that device is fairly standard, there is nothing stopping you from using the reader from bank A with your card from bank Z and vice versa, because the crypto processing is happening on the chip of your card.

Knowing that the heavy crypto work is delegated to the bank card, it is safe to assume that the device is quite dumb: a keypad to feed data to the card, a screen to display the results and a micro-controller to do some simple housekeeping tasks, like update the screen, poll the keypad, clock the card and send/receive data.

I have no proof of what’s described above, but since mine had dead batteries after five years of use, it has become a prime candidate for exploration, so let’s open the case !! 🙂

Ugh !!

Digipass cracked open

Opened !!

It was a tough nut to crack !!

There are no screws and no clips holding it closed: the two halves of the case are welded together !! This is another prime example of planned obsolescence and wasteful engineering. There is no way to open it cleanly, you need to break it apart as careful as possible to get access to the main PCB and the batteries. Your ability to close the box afterward will fully depend on how you open it in the first place.

The batteries are nothing exotic: just two CR-2032 button cells. They are wired in series on the PCB, because many smartcards require a 5V power supply to work properly.

Circuit board detail

All test pads are clearly labelled !

When you observe the PCB, there are a lot of interesting test points, all properly labeled. A hacker’s dream. 🙂

Fried !!

Unfortunately, while groping at it with a multimeter set to continuity tester, i fried the microcontroller. Apparently, that kind of invasive measurement was enough to kill it.

I wanted to check the continuity between the SDATA test pad and the DATA line on the card connector, the SCLK and the CLOCK line of the card connector. There was no continuity between those points and the J2 pad is still a mystery of what the purpose could be. An optional eeprom maybe ?

I received a new reader to continue with my day to day banking operations, but i still want to see the data flowing between the card and the reader. My mistake is just a setback: i will change strategy and try to (ab)use the reader as-is, without opening the case. 🙂

More to come later. In the meantime, here are the Manufacturer’s information


Tags: , , ,

23 Responses to “Opening the Vasco Digipass 810 [en]

  1. Ruben dit :

    There’s a fair amount of stuff to be found in the patent claims, noted on the vasco device, but I suppose this would not count as clean room reverse engineering anymore?

  2. Tom dit :

    With the Random Reader for the Rabobank, the J2 connector is pushed against a piece of conductive foam in the back shell. Once taken apart, it only displays « Defect » on the LCD. Once the battery is taken out, it doesn’t turn on anymore.

    If yours doesn’t have the same conductive foam pressed against J2, you could try replacing the batteries while you have the external power supply connected…

  3. Xlauw dit :

    Ok, very fast got a second chance. Another Vasco Digipass 810: Low battery: 14%.
    Opened the case carefully & slowly & nice.
    Remaining voltage: 5.2V.
    {Safety glasses on! Don’t have experience with explosive batteries!}
    So I put 5V from-power-supply over the batteries and changed them with new ones.
    Power Supply off and … test with bankcard.
    IT WORKS, still tells me battery low 14%. But is asking me « challenge ».

    Then I put on computer to check with bank.
    Checking batteries: still 6.2V…………… =OK…………..

    No more display………….
    Digipass died again…………………. may it rest in peace {for the moment}.

  4. Xlauw dit :

    {Before} searching the web I opened the Digipass 810. And consequently, by changing the batteries, dumped the RAM…
    But it was fun trying.
    Did someone find an alternative use for this {waste} devise?

  5. John dit :

    Hi Guys,

    Old posts, but I’ have maybe some interesting info’s for you.

    1st. The devices DP810 are not unique. I have 2 different banks working with the BP810 and I can use any of them for any of the 2 Banks. It doesn’t make a difference.

    2nd. To my knowledge the Pin code is stored on the card but is not readable. The card gets the pin entered transmitted and replies Y/N if correct. But no reader is able to read the pin from the card. This would be the end of the pin card.

    Sincerely yours

  6. Henk dit :

    I found my batteries almost empty and wanted to replace them. Currently, I live outside of my home country and applying for a new device is not an easy option.
    First I tried opening the casing and found that I could only open the top half. The bottom is welded. Before opening the rest of the casing, I decided to look on internet for a solution and found this blog. I then decided to completely close the casing again and first obtain a replacing power supply before I change the batteries.

    After closing the casing again, the message on my device changed from « Kaartfout » to « Defect ». It seems there are more anti tampering protections in place than just a welded casing and RAM being emtied when the device get’s out of power completely.

  7. Firespeed team© dit :

    I have a random reader form the ING bank. I have this device carefully reopen and the photo on your page has confirm exactly the same random-reader to Europe.

  8. […] you remember when i opened my bank calculator ? Beside replacing dead batteries, i wanted to see what made it tick and eventually replace it by […]

  9. Zorro dit :

    and if want to change the batteries and before doing that , you put another power source of the same voltage in parrallel? will the firmware than also be wiped?

    • Askarel dit :

      That’s an option.

      If you keep the device powered, it will not notice the battery exchange, thus the RAM will keep it’s content.

      Something to test, but watch the power supply voltage carefully to avoid charging full batteries. Lithium cells are unforgiving and may blow up in your face.

      Hope you have a steady hand. 🙂

      • JeeCee dit :

        I see there is a batt+ and batt- test point. So if I solder 2 wires to it, it can be connected to a power supply?

        Let’s say that the almost empty batteries provide a voltage of 5V instead of 6V (as fully charged). Then I must set my power supply to 5V or less. In this case the 2 CR2032 will not be charged hence will not explode. Correct? Then they could be removed and replaced by new ones…

        Or am I overlooking something? 🙂

        • Askarel dit :

          The batt+ and batt- test points are directly tied to the batteries.
          I never tried that trick on such device, but it should work IMHO.

          If it work for car batteries, why not on such device ?

          If you fry it in the process, well… At least you tried to save it.
          In my case, i just asked for a new digipass from my bank. No question or money asked.

          • pault dit :

            I did the test replacing the batteries while keeping a voltage parallel. The total voltage changed from 5.8V to 6.6V. This seems to work OK. My Digipass now works with new batteries.
            Only problem : after replacing the batteries, the Battery Level remains on the same level as before the replacement. (In my case 09%) I will monitor the battery level for some time. I do not care too much about the indicated level, as long as I can use the device for some extra years. Maybe it remains for the next 5 years on 09% (as long as voltage remains larger than 5.8V)

  10. Xcrypt0 dit :

    @ Frederic —-> What do you think about this hypothesis?

    Input data on the remote application (server side)
    Card number
    Bank account number

    Input data client-side (the Vasco 810 in this case)
    The given verification code

    Basically the return answer from clientside base is the key to log in.
    This is an algorithm which is calculated on the vasco 810 and not by the chip of your card. I think (I am probably wrong) that the card’s chip function only counts as verification of ownership by checking the pin code.

    So with the full access to this device a bypass might be possible.

    Another interesting fact which can motivate my theory:

    After you typed your challenge code and pin on the device press info.

    You will see a STATUS CODE option.
    Normally you only get
    Proton (If belgium)

    So the STATUS CODE only appears after the challenge is accepted.
    **-**-***** (the second part is the month I think need to test this again in may **-04-*****)

    However a few annotations.

    @ login server-side
    The challenge code is already calculated and active, even before you enter your card number or bank account number on the application.

    This might destroy my theory but however not fully.

    Because I think every bank has it’s *amount of challenge codes randomly in a db. Obviously the end-user will only start the application of the bank where he wants to log in to.

    My guess:
    The answer to the algorithm must be somewhere in the STATUS CODE.
    And because of the second set of numbers used in the STATUS CODE I seriously start to think that it might have something to do with the date.

    If following this way of thinking my theory that the card chip only functions as a verification that you are the actual owner of the card by entering the associated card pin-code is strengthened.
    The pin-code is the key that opens the door for the end user after giving in the challenge code to start the algorithm calculation.

    This is of course my humble theory.

    What do you think?
    I am interested to hear your comment or thoughts about this, because great minds think alike?

    Sincerely yours


    Black-hat hacker

    • Askarel dit :

      The EPCI number seems to be tied to the reader

      The STATUS CODE seems to be a counter. The third field is increasing by one at every transaction. (don’t know yet if it get updated even if the PIN check fail or you interrupt it in the middle of the transaction) I have an old card and a new card to test stuff.

      Your theory about the two first fields seems wrong: the old card says **-01-***** and the new one says **-02-*****. Number of cards issued to that account ?

      I might be wrong, but i think there is no real time clock in the reader itself.

    • SecEng dit :

      If you’d like to know something more on the « algorithm » to calculate your reply-challenge:

      First of all, it would be very unsafe to have an amount of challenge codes in a database. These challenges are random generated numbers, and are generated when the client opens the web banking page.

      The user (all of us humble home bankers) receives a challenge from his bank and feeds it to the Vasco Digipass, then the Digipass asks for your pin. If this is correct, the device has access to a number stored on the card. This number is unique and unknown to anybody, except the issuer (bank) and the card itself. This is of huge importance as otherwise it would be very easy to hack this system. Suppose that entering the PIN-code correctly would be the only thing to happen to have the correct challenge reply, then the response from every card to the MCU would always be the same (it would be: « Pin code correct »). If it’s always the same, it would imply a very easy to hack system.

      Actually this is a nice example of Message Authentication in standard cryptography: everybody (!!) can see the challenge to start communicating to the web banking server, and everybody can enter a challenge, yet only one unique device will be able to give the right answer (and thus to authenticate itself).

      Lastly, the protocol isn’t really a secret. It’s based on known cryptographic protocols (such as AES (aka Rijndael) or ECC or Grain or any other publicly known crypto. The worst choice would have been a « secret » protocol (it’s called having security by obscurity), once the secret has been discovered: all hope is lost. Known (public) protocols have been tested and proofed for years! That is why cryptography is such a nice thing to study! 😉

  11. Xcrypt0 dit :

    Frederic once again I have a question about the system. Since your device is already open. Is there a processing unit under the black paste? I can’t fuck up mine since I only have one and I don’t want to loose the firmware. I will go ask a second device in my bank 😀

    I made an annotation on your picture to visualize my question.

    Could you verify this for me and get back in touch?

    You can e-mail me @

    Sorry for the double commenting

    Sincerely yours

    Blackhat Hacker

    • Askarel dit :

      I don’t have the tools to decap an inspect the chip die, sorry.

      What would be interesting before getting that invasive would be to first sniff the data exchanged by the card and the reader and see what we’re dealing with. There might be a pattern showing up (at least i hope so).

      That’s my next step when i find the time. 🙂

  12. Xcrypt0 dit :

    Basically, it is a security measurement.

    The device it’s firmware will be wiped as soon as batteries are removed. That’s why they don’t want you to open it in the first place. The producer of these things is afraid of reverse engineering. I am not so experienced with the Digipas 810 but I have one here right now and I’ll start my « experiments » on it soon. However don’t get the illusion that you’ll be able to do some ebanking without the actual card but yet it will be interesting for many hackers. Since most of them use « remote administration tools » they can see when someone starts to e-bank. Most of the Belgian and Dutch (Holland) people use this type of device for their ebanking. With the help of a remote administration tool the hacker can easily find out the card number. (he can see his victims screen also in live view). So it’s just a matter of time before an exploit will be found. If it hasn’t been done already. If I will encounter some interesting data I will post it here.

    If some of you are busy on this already and want to share any information or exchange it one way or another, you can contact me on

    Sincerely yours

    Blackhat Hacker

  13. Louis dit :


    I changed the batteries, but the card reader seems dead now… What could be the cause? Would it be protected against a ‘battery change’.
    It’s just ridiculous we can’t change the batteries.

Leave a Reply