The Opus card is pretty much like an onionHere in Montreal, the public transportation system (STM) started to use a new system for paying the fares: a smartcard.
~ Oscar Wilde
This smartcard is called Opus and features contactless communication as well as regular metal pads (like those on telephone cards). This card can be recharged with various tickets, month passes, week passes, etc. More info on it can be found in its very own wiki page.
Ever since it came out, I wanted to hack it and learn more about it. By searching a bit on the net, I found out that it is similar to other smart cards being used elsewhere in the world and this allowed me to learn some interesting things.
Similarly to the Hong Kong version of the system, the reader has a security feature that avoids writing to more than one card at the time. Let me explain: if you try to add fares to many cards at the same time (on the paying machine that features a contactless reader) by placing them on the reader, only the first one will get loaded with fares. This means that the cards are more than a simple memory, they feature a more complex and almost certainly encrypted communication system.
Also, each card has its own identification number.
Observations on the card behaviour:
- Cards loaded with a monthly pass will make the the readers shine a green light (or yellow for students) during the given month and grant access.
- Cards loaded with tickets will make the reader say that one ticket has been used, shine a green light and grant access (same behaviour as with alternative magnetic band tickets). The ticket is then spent.
- If the card with a ticket is read again within two hours of spending a ticket, the reader will shine a green light and grant access without spending another ticket. The readers also displays a message acknowledging this.
- The process of loading a card with new fares takes around two seconds after the payment has been performed. While the card is being loaded, a yellow progress bar is shown. This means that writing to the card is a slow operation and cannot be performed on the fly while passing the card by the reader when entering the bus, for instance.
- It is unlikely that the readers in the buses are connected in a network with all metro stations and themselves.
- The card is put next to the reader which provides it with power (same as any contact less communication)
- The reader sends the current time to the card.
- The card checks if it can grant access to the transportation at the given time.
- If it has a month pass, the card only worries to see if the month is write.
- If it has a ticket it stores the time and spends a ticket.
- If it has spent the ticket in the previous two hours it does not decrement the ticket count
- In all the previous cases, the card sends the instruction to the reader to grant access and tells it what kind of message/light it should show.
- If the card does not have tickets or month passes or transfers (a ticket spent in the last two hours) it less the reader so and the reader does not grant access.
Also, at some point, the card may send its unique ID number to the reader.
Some extra info:
I also wanted to see how the card is built, and the easiest way of doing so is to disassemble it.
Since it is made out of plastic, I put it to rest in a bath of acetone (nail polish remover) for a bit less than a day while periodically checking how it was doing. I poured the acetone in a old iPod metal casing since it has almost the same size as the card.
In the end I found out that the card is made up of several layers. This layers are very thin (or so are they after being soaked in acetone for 20 hours) but very sturdy.
Note that the dissolved plastic in acetone really stinks on the fingers when you manipulate the dissolved card and it is really a pain to clean.