Thursday, 3 July 2008

Job Vacancy: Mobile Tester

Masabi are looking for another London-based Mobile Software Tester to come and work at our offices on the South Bank – our ideal candidate will be flexible and multi-talented, main responsibilities would include:

  • Testing new applications across all our mobile handsets;
  • Researching new mobile announcements and identifying what handsets need to be purchased;
  • Acquiring new handsets, configuring them, experimenting with their Java implementations and documenting everything about them.
Good attention to detail, Quality Assurance and an interest in playing with the latest handsets is crucial, but we’re a small company so there are huge opportunities to take on other roles and an ideal candidate would be able to show they bring a lot more to the table, be it skills in tech writing, graphics, sound, usability testing – surprise us!

Note: FULL TIME or PART TIME roles available, and full training provided for keen applicants who can demonstrate good technology puzzle-solving aptitude and ability to learn.

Email those CVs over to jobs (at) masabi.com with the subject line "MOBILE TESTER JULY 2008" or give Ben a call on +44 207 981 9781 to find out more.

Please - NO AGENCIES!

p.s. for those that want to see the office that you might be coming to work in:
Photos:
Exterior
Interior, Interior again
Ed pretending to do testing

(map shows it has great access to food heaven at Borough Market, Tube stops at Borough, London Bridge and Southwark, and commuting access from the Thames Water Taxi, and trains from Waterloo or London Bridge stations)

Tuesday, 27 May 2008

MoMo Global Summit 2008 Talks

Last week I gave two presentations (linked below) at the Mobile Monday Global Summit 2008 in Kuala Lumpur, Malaysia attending in my 'other' role as co-founder of MoMo Estonia, alongside speakers from the Mobile Marketing Association, AdMob and a range of other global companies.
It was an excellent event with a very interesting cross-section of speakers and attendees from around the world. Topics covered included mPayments and some great insights into China.


Masabi's Securing Mobile Transactions slides from MoMo Global Summit 2008

Masabi's Mobile Best Practices and the VC Angle slides from MoMo Global Summit 2008

Thursday, 24 April 2008

Judging When An mPayment Makes Sense

The clip starting at 10:00 in this video (courtesy Ketai) starkly represents why many mPayment schemes will not succeed - simply because you can do something doesn't mean you will or should do it.
mPayments will certainly work, if they offer a significant benefit to the user over all alternatives, and are sufficiently easy and obvious that the user will think of attempting them. In many implementations I have seen, this is sadly not the case. Cash or cards are just easy natural payment systems, so the phone should only be brought in where these alone are not possible.
To succeed, the payment system needs to take the minimum of clicks and be resilient to error. It needs to interface seamlessly with the vendor/machine, just like a credit card terminal does in a shop - and just like dropping a coin in a slot does. If either of those is a viable alternative and the ease of use does not match them, you're toast.
This suggests that the most fruitful targets are payments for less tangible things you can predict you need whilst on the move - like tickets - where there is huge benefit in the convenience of eg. not queuing behind ten slow people for a machine which may be out of change when you reach it, whilst your train is pulling out of the station. You could even buy the ticket with your phone after boarding the train, an option which has disappeared on many UK trains in recent years.
Having selected a 'mobile friendly' payment, you need to work out what the best platform is for taking it - which involves weighing up a number of factors:

  • For a small rapid payment with limited options that can absorb a 30-60% margin, Premium SMS (PSMS) is king
    • The response can even include simple barcodes, though not the complex ones likely to become standard in most applications;
    • For anything more complex, margin sensitive or larger than a few pounds/euros/dollars PSMS cannot be used.
  • The mobile web implemented well will offer rapid access for a user
    • It can have big problems for multistep payments when the user is on the move (flaky connections, no on-client validation etc)
    • There are also security concerns with some handsets/networks;
  • For regular payments a thick client offers big advantages if it is written to work for the whole mass market
    • Greater ease of use eg. with on-client validation, interactive help etc;
    • More resilience to poor connections;
    • Lower data costs.
Even with a good target service, success is not guaranteed - the process still needs to be smooth and just work, something sadly lacking for so many reasons in today's mobile experience. To quote Andrew Orlowski on the Register:
"Today's mobile hypesters who confidently predict the web going mobile, forgot that the web competes with local knowledge. It's almost always quicker (and more fun) to be prepared in advance, or ask someone, once mobile. You can ask someone next to you, or you can call a friend: either is quicker than tapping away on a phone. Mobile surfing was crap when it was WAP, crap now it's an XHTML browser, and will be crap when it's an AJAX Widget."

mPayments are not for everything. Before embarking on a trial just place yourself in the shoes of a user and ask - why does this make my life easier than the alternatives at my disposal? Only continue if you can answer that question honestly. We're currently getting great feedback from rail ticketing and parking trials and we're pursuing a number of other clear business cases with our partners - but we're steering clear of Coke vending machine purchases as coins look set to have some life in them yet!

Tuesday, 22 April 2008

Masabi at Infosecurity Europe 2008

This week Masabi are at the Infosec show at London's Olympia demonstrating our mobile solution for secure ID jointly developed with our partner GrIDsure. If you're interested in having a chat about our work in this area or mobile encryption and security in general feel free to swing by the GrIDsure stand (No. G245) and ask for either Ben or Alex.

Tuesday, 15 April 2008

Masabi to Present at Mobile Monday Estonia

If you happen to be in Tartu, Estonia on April 28th then drop in to the next MoMo Estonia meeting at the lovely Ülikooli Kohvik to hear Masabi’s very own Giacomo present and myself take part in a round table discussion.
The event topic will be: "Software Development for Mobile Phones: Platforms, Users, and Managing Complexity." The full event schedule is:

  • "Creating services for the mobile phone - how to best serve users on the move" - Giacomo Biggero, Masabi, London
  • "Designing mobile user experiences - coping with the huge range of mobile handset types" - Sven Kirsimäe, MoMo Estonia
  • Open Panel Discussion "Future services - The best and worst" - experts from different mobile companies
For those not in the know, Estonia is a veritable hot-bed of mobile software development so the event is likely to be both lively and informative.

Sunday, 13 April 2008

Ideas for Interoperability of Secure Barcode Tickets

Barcode ticket security is a growing issue (we get asked about it all the time) and there aren't any standards yet for preventing unscrupulous individuals from altering the tickets that are issued.

Barcodes are being used as a form of virtual ticket that you can print from your PC at home or show on your phone screen to gain access to airport check-in, bus tickets, train tickets, promotional coupons, to gain access to a venue or be entitled to something valuable.

phone barcode being scanned

What do we want to achieve?

Barcode tickets that can be used to allow a virtual transaction, such as on a PC or a mobile phone to provide an instant ticket to the customer, with which they can instantly prove entitlement at a venue.
Ideally, to get the largest acceptance of barcode tickets, the designers of venue ticket systems should be free to integrate the ticket validation in whatever hardware or software they want to, and without any onerous security requirements - that way whatever cash registers (tills/EPOS), handheld scanners or gate systems that a venue uses can be used at their convenience.

Is there a problem?
As an illustration, mobile and print-at-home barcode ticketing on the UK railways is currently limited as follows:

  • Barcode tickets are only used on a few routes because they are not inter-operable from one company to another;
  • The reading hardware and ticket data formats are not agreed - each route uses different standards (although reading hardware is pretty similar);
  • Barcodes are only currently used for advance-purchase tickets (purchased the day before travel) because the ticket validation databases don't propagate quickly enough from the central servers to the on-train scanners to support walk-up (instant) tickets.
The same problems affect event tickets, gift tokens, and other uses where a more unified approach, and more secure ticket data would enable the convenience of m-ticketing to grow.

So, we need to get something in place that allows interoperability between barcode schemes, and also allows walk-up tickets to be validated without having to propagate all of the ticket databases.

Why do we need Security?
As the value of barcode entitlements go up, more people will take an interest in copying, altering, or re-generating valuable barcodes. Without the security, the ticket cannot be proof.

Why Interoperability?
When a ticket needs to be issued by one party, and checked by another party, then you need some way of the two parties being sure that the ticket is valid, paid for, and has not been altered between issue and scanning.
On public transport, some journeys swap on and off vehicles run by different companies - it is preferable that a single ticket can bought in one place and validated by each different company on the route, rather than the user having to separately purchase and show different tickets.

The data security risk is that, in most cases the ticket generator can be kept in a safe place (locked in your secure e-commerce server) but your ticket checking is distributed thinly around, at the entrances to venues, or often in a mobile devices held by bouncers or ticket-inspectors that can't be expected to keep your devices safe from unwanted attention or theft 100% of the time.

We will describe the security measures for simple (small) 1D barcodes that just contain a number, medium sized barcodes with some details and symmetric seals, right up to large 2D barcodes that contain the full details of the ticket and asymmetric cryptographic signatures to verify authenticity.

SMALL BARCODES (1D, around 12 bytes)
(images are all examples only - don't expect to scan them and get anything useful out of them)

1D Barcode


Anti-copying using DRM (Digital Rights Management)
However you deliver a barcode, it has to be presented in a scannable format, which means that an adversary can always scan the ticket, and if they want to, change some details on the barcode and create multiple copies without DRM. People that have barcode delivery systems that use or rely on "forward lock" or DRM to prevent the barcode image being sent from one person to another are being blind to the availability of barcode scanners to beat all of their software. Also consider that OMA DRM for forward locking images downloaded to phones places laughably little protection against an assailant armed with such exotic tools as a web-browser and a text editor.

Anti-copying using a local database at the scanner
Storing the serial number of each ticket scanned, and flagging/halting duplicate scan attempts can detect the most obvious cases of a small group of users copying tickets and sharing them around. You can refuse the second use of the same ticket, and also in your back-office systems start to collate details of which user's tickets are being copied/re-used the most, and lock those users out, or mark their tickets (and future tickets) on a blacklist for 100% inspection in the future, including ID check.

Anti-Editing using Central Database

Simple (small) barcode tickets are just a serial number, and their validity is checked from a database of known tickets, which reveals all of the extra ticket detail, possibly including ID information about the legitimate user of the ticket which might be checked in high value situations.

The problem of this approach is that your ticket checking systems must have up-to-date access to the ticket database. This is fine if all of your tickets are sold many hours in advance, and your local ticket validating system has had time and connectivity to synchronise it's local database with the ticket selling server, but is far less use when people are buying tickets immediately before use, or when your ticket database is too big for your portable ticket checking devices to download and store, or if one ticket vendor doesn't want to give copies of all of their tickets to every single ticket checking agent, because one of the agents may just sell them on!

Live Check Speed and reliability issue:
If you design a ticket checking system that relies on the scanners being connected to the internet, to access a central database to check every ticket, then you may get issues with speed of checking tickets, and therefore the throughput of your entry systems. Especially if you have to check tickets underground or on a moving vehicle.
Additionally, your whole system could become useless from a single point of failure or connection. A huge factor in the design of the Oyster smartcard transport system for London was to make sure that each station could continue to check tickets in milliseconds, even if disconnected or when connectivity was slow. Otherwise any unforeseen issue with central servers or internet connections could bring millions of Londoners to a grinding halt during business rush hour - an expensive and potentially pin-stripe and bowler-hat riot inducing situation, if you are unfamiliar with London!

Offline Ticket Checking
If you can put all of the details of the ticket into a medium or larger barcode, then an offline system can scan the ticket, and instantly know what the entitlement is without the need to access a database. Trouble is, you need to make sure that the ticket is genuine, and not adjusted. There are two major ways to do this:

MEDIUM BARCODES (2D, around 42 bytes, ~27pixel square)
datamatrix Aztec QR Code
These not only contain the ticket serial number, but can also contain brief details about what the ticket entitles, such as destination, price paid, and valid date, and possibly even some very brief ID information, such as the last 4 digits of the credit card used to purchase the ticket, which could be checked against the user to make sure they are the valid ticket holder.

Anti-Editing using Symmetric Cryptography.
If your ticket issuing server and your ticket checking systems all share a secret symmetric key (symmetric means that all parties use the same key) then the contents of the medium barcode can be encrypted using the secret key. You can either encrypt and hide the contents, or leave the contents in clear text and add a small amount of the encrypted version at the end, as a "seal" or "signature" that can be verified by the scanner. Were an attacker to change the plain text bit of the ticket (such as the date) then after scanning the verifying scanner can encrypt the new plain text, and compare the new encrypted seal with the previous seal in the barcode, and detect an alteration, and can now reject the barcode as a forgery. The moment we can "seal" the contents of the barcode, it means that we can also add customer ID information to the barcode so that a validating agent can check that the correct user is gaining access.

Example format:
sellerIdentifier + ticketNumber + ticketDetails + CMAC
(CMAC is a small message authentication code, around 4 to 16 bytes long, created from the text of the message with a symmetric cryptographic function, using a secret key known only to the ticket seller, and ticket validators)
Suggested encryption scheme: AES 256 based CMAC.

Benefits:
doesn't add much data - adding a symmetric seal to the end of a ticket can be done in very little space (you can just put a small portion of the encrypted or hashed version of the ticket into the seal and still provide strong protection) You can even send these medium barcodes in an SMS picture message (not MMS or WAP).

Problems: If a symmetric key is discovered by a thief, they can create and adjust tickets. This becomes quite likely as you have to give every ticket validator copies of every single symmetric key in use, so that they can check tickets. If one piece of ticket validating equipment is stolen, or compromised by a virus, or sold to criminals, then it can reveal the symmetric keys.

The ITSO ticket system makes it difficult for a thief to retrieve keys from stolen equipment by protecting the keys in a smart-card "Secure Module", and closely controlling the development of hardware that works with the smartcard. However, you can only use special hardware and software that is certified for use with ITSO, which increases the costs of integrating new ticketing systems, and expanding ticket reading options. Some organisations resist adopting ITSO ticketing due to the added cost and reduced flexibility (Oyster isn't compatible for one). Even if a symmetric key system doesn't use ITSO, it would need some hardware or cunning protocol to protect against leaking of keys. The big problem is that it would be impossible to detect which agent was losing keys, so if there were business losses, it would be difficult to assign responsibility.

LARGE BARCODES (2D, around 128bytes, ~41pixel square)

Datamatrix Aztec QR code

These tickets can contain all of the information about the ticket, including detailed ID information, multiple travellers, terms of the ticket, and details about the purchase history and multiple entitlements such as multi-part journeys, reserved seating etc. Some draft standards for Airline tickets and Train tickets require data payloads as large as this for full e-tickets.

Anti-Editing using Asymmetric Cryptography
Modern internet systems use Asymmetric cryptography for just about every secure transaction you do on-line.
Asymmetric encryption is often called Public/Private key cryptography, and means that the two parties use different keys - one of which is kept secret at the server, for creating and signing tickets, but the Public half of the key for validating the tickets can be freely given away (even to your enemies).

Benefits: The public keys, and instructions for their use can be freely distributed to ticket validators, friends, and enemies, for checking the validity of tickets. It means that open source ticket checking software can be made available to allow quicker integration of new scanning systems, and greater flexibility of providers.

Each Ticket issuing party can have their own private key, and give away their public key on a public website for all ticket validators to download and use. The keys would not need to be updated, unless one was stolen, or completely new providers appeared.

If one of the Private keys was lost, through virus, hacking, theft, or deliberate fraudulent activity, then the only new tickets that a thief could create would be from that one ticket issuing source, and that ticket issuer could be held financially liable for fraudulent tickets, without other members of the scheme being affected.

Suggested usage: football tickets or Olympic tickets - these may be sold in many places, and need to be checked in multiple locations, by different organisations. In some cases it may be advantageous for a ticket to entitle certain linked items, such as reductions on food in the olympic village for certain guests. You would need the ticket to be checkable by a food vendor, but you wouldn't necessarily want to equip every vendor with an ITSO hardware module or a large database of tickets. However, if you could provide open software and public keys, then EPOS integrators, mobile phones, and all manner of cheaper scanners could perform scanning and validation of the global ticket without reducing the security of the ticket.

Simple Format of the data inside the barcode:
sellerIdentifier + ticketSerialNumber + ticketDetailsEncryptedBySellersPrivateKey
Suggested Asymmetric encryption standard: 1024bit RSA with PKCS#1

Drawbacks: Asymmetric cryptography creates larger signatures than the symmetric cryptography, and therefore requires larger barcodes to contain them. Some much older (black and white) mobile phones wouldn't be able to display the larger barcodes. However, for walk-up tickets on paper or the modern phones this would not be an issue. You could display these on a mobile which supported MMS or WAP or Java based ticket delivery.

What about ECC instead of RSA?
ECC based Asymmetric encryption could probably be used too, even on the medium sized 40 byte barcodes, but there aren't such clear standards for message encrypt/decrypt with ECC quite yet - we'd be keen to explore this further.

Common Misconception: Small devices haven't got the processing power to cope with Asymmetric Encryption - this is simply not true.
Phones displaying a barcode don't have to process the encryption at all, and phones or PDA's checking the code can do so easily with modern methods. An ancient black-and-white Nokia 6310i could check an 1024bit RSA encrypted barcode in 1 second, a modern mobile phone or PDA could check the code in less than 1/100th of a second. ECC is roughly equivalent to RSA in speed for small keys, and gets faster than the equivalent RSA key as they get bigger.


Suggestion: 2 approaches:
Legacy phones:
Use MEDIUM barcodes, which have to be live-checked when being validated in an inter-operator way. Slower, but the only way to use the smaller ticket format without the security issues of having to give away all of your tickets or all of your private keys to third parties.
A standard web-services server interface should be agreed so that one ticket validator can query the validity of a ticket from the Ticket Issuer's database in a standard way.
Operators that trust each other could share secret keys and mirror databases to speed up ticket validation and allow off-line checking, as long as security steps have been taken to help prevent staff leaking keys and ticket databases.

Newer Phones and Print at Home: Use LARGE barcodes with Asymmetric encryption. This allows walk-up tickets to be sold and instantly verified by open standard scanning hardware, even with no database connectivity or secret key distribution.


Less Critical: 2D Barcode Format:
Datamatrix, QR Code and Aztec are all suitable.
Datamatrix is more freely available and has more scanners available, so if it was adopted there would be more choice for providers of scanning hardware. (More choice usually leads to cheaper and lighter hardware.)
Aztec can cope better when there's less whitespace around the barcode, which Datamatrix needs.

We've seen plenty of scanners that read Datamatrix and QR, but fewer that handle Aztec.
Every Aztec scanner reads Datamatrix and QR, and the same data format can be contained in all barcodes, and in most cases the hardware in the scanner makes the difference between one format and the other transparent anyway, as long as the scanner supports the rarer Aztec.

We would go for Datamatrix, but the internal data format and the security model behind it is the most important thing to standardise at this point.


If you are interested in Barcode tickets, please comment on this thread, especially the following:
  • Can people agree to inter-operate barcode tickets?
  • Is the ability to off-line check not as important in the connected world?
  • Are the large format barcodes that we talk about too big?
  • Should we link virtual tickets to physical smartcards?
  • Should we all publish our barcode ticket formats each time we launch mobile ticketing, so that other similar providers can easily copy them, to make sharing barcode systems easier in the future?
  • Have you had experience that one barcode symbology is MUCH better than the others for scanning success from the mobile?
  • What ECC (Elliptic Curves Cryptography) standard would you suggest to use Asymmetric encryption in MEDIUM 40byte barcodes? And how much data payload data could fit inside?

Tuesday, 4 March 2008

RSS Feeds for the Community

As an RSS junkie, I get almost all of my mobile information through news feeds. Unfortunately, a few key sites just don't have them - most frustrating.

Well, after a little research I discovered the excellent Feed43.com, which I have been testing for the last few weeks. Their service allows you to rip a feed from any site, but offers far more control than any of the competitors I could find.

As a service to the mobile community we have decided to make these feeds available to anyone who needs them - on a non-commercial, unsupported (but hopefully as reliable as possible) basis, of course! The sites we have ripped feeds from are selected for their own quality, we aren't claiming any rights or ownership over the content and we urge you to support them in whatever way they want.

One last note: there are individual feeds offered direct from Feed43, and aggregated feeds aliassed through Feedburner. If anythign serious happened with Feed43's service we might consider changing the URLs of these individual feeds, but we will update the aggregated feeds accordingly and the Feedburner URLs will remain the same.

Without further ado - the feeds:

Of course, while you're in an RSS mood remember to bookmark the Masabi feeds as well!
I hope you find all these feeds as useful as I do!

Please note: occasionally, the Feed43 feeds seem to throw up "Error: Source Page not available" news items; just ignore these, over the last few weeks of testing I've found that the service does work nicely most of the time despite occasional hiccups!