this space intentionally left blank

July 1, 2008

Filed under: tech»mobile

Open Access Control

Back when the iPhone first appeared, in response to its locked-down development environment (Shorter Steve Jobs: "Sure, you can make iPhone applications, if by applications you mean 'web pages'"), Nokia launched a short-lived ad campaign called "Open to Anything" for its N95 smartphone. They put up some posters and bought some TV time, and then they went back to doing what Nokia does best: ignoring the American market.

As a shot at Apple's legendary control-freak tendencies, it was a good one. But the sad part was that it just wasn't true: the N95 runs on Symbian 9, which requires applications using "protected" APIs (camera, networking, personal data access) to be digitally certified before they can run, for security reasons (probably an overreaction: a couple of extremely limited viruses had been shown running on the platform).

This is not to say that Nokia's phones aren't relatively open--even compared to the iPhone v2, which will introduce a centralized application store, Symbian devices are still much more accessible, and potentially more powerful. There's an open-signed program that allows developers and users to authorize a program with high privileges on a single phone. A number of Nokia's tools are open-source, including the Python interpreter that allows users to write and run applications on the device, using its full capabilities. And the standard browser on S60 is a Webkit-based system that runs Javascript and even some Flash apps.

And in theory, the principle behind the app signing is not a bad one. Sandboxing applications by capability is pretty much the same concept at work behind sudo on Unix, gksudo/kdesu on Linux, or UAC on Windows. As smartphones get more sophisticated, this will have to happen on mobile platforms as well if they want to use their full potential. The mistake Symbian made was not to enforce security, but to take it out of the user's hands.

Perhaps ironically, the mobile OS most open to developers is Windows Mobile, which offers free development tools and no code-signing or approval process required. You can even get some of the source for Windows CE, if you're into that kind of thing. The catch is that it needs to be this open, because Windows Mobile is not terribly useful without a fair amount of third-party software (and I say that as someone who actually likes the platform).

I probably would not be writing about this, except that I ran into a problem with PED, the Python editor I use on my phone. While I was messing around with the camera, I kept running into errors even though my code was identical to the examples from Nokia. Eventually I figured out the problem--the Python interpreter itself is signed with full privileges, but PED is not. In order to test scripts using the camera, I had to run them in the standalone Python shell instead of PED's built-in launcher.

Not cool. Kind of runs against the notion of an Integrated Development Environment when it's not actually Integrated. Again, I'm complaining about details, since the ability to write and run scripts (in a standard language) on the phone itself is still pretty advanced stuff. But it's a frustrating, needless, arbitrary detail--as details tend to be when security control is placed under control of a third-party.

In the end I installed a hack created by some Spanish developer that overrides Symbian's certificate check. Effectively, I "jailbroke" it. This means I can't upgrade the firmware on the phone, since new versions of the firmware intentionally closed off the security hole used in the hack--nice "open to anything" support, Nokia. Luckily, the existing firmware updates seem to have been pushed out primarily to close said hole, and don't offer any new capabilities that I need.

There is always going to be this dynamic on mobile devices: how paranoid are we going to be? Lord knows the communication infrastructure in this country often seems far from robust, so some attention to security is certainly required. But none of the existing answers seem sufficient. Windows Mobile simply has no real security model. At the other extreme, the iPhone will only run Apple-approved applications in a small sandbox without access to the filesystem, multitasking, or low-level hardware--no Bluetooth keyboards, wireless headphones, or copy-and-paste unless they come directly from Apple, I'm afraid. And in the middle, Symbian has its signature program, which is much less irritating, but it's certainly not "open to anything."

I have my own doubts that the mobile revolution in this country is going to arrive anytime soon--I suspect that the ridiculous cost of data rates on cell plans will keep it stillborn. And the most interesting uses of mobile technology that I see elsewhere are often decidedly low-tech: microbanking and automated information services over SMS or voice, the kinds of technologies that aren't Web 2.0 but have changed lives in lesser-developed countries. Nevertheless, any real innovation in mobile, location-based services is going to require actual open systems for development. I like that Nokia is bringing snark and criticism of the tightly-locked carrier ecosystem to the table. But I hope that as it has announced plans to open-source Symbian, the company will also be starting a real, flexible, consumer-friendly security model, instead of the opaque Symbian Signed system.

Future - Present - Past