Ever since rumors of an impending Siri port started circulating, non-iPhone 4S owners have been wondering why Siri can’t be made available on older iDevices. We’ve seen video of hackers running Siri on the iPhone 4, iPod touch 4G, iPhone 3GS, and even video of Siri controlling random devices, like a thermostat.
While these specific instances show that Siri can indeed run on non-4S devices, publicly distributing Siri poses a whole other set of problems. The complex system that Apple’s servers use to authenticate with Siri on the iPhone 4S is one of the main reasons that a Siri port can’t be made available to everyone at the moment.
A development firm called Applidium recently hacked Siri’s security protocol and made the findings available for everyone to access online. Since then, another hacker has created a Siri proxy sever that allows anyone with the appropriate knowledge to make Siri interact with non-Apple devices. When Siri connects with Apple to process requests, a multi-level series of authentications takes place.
Here’s how the authentication with Apple’s servers works, as explained by n00neimporant:
Authentication relies on four pieces of information to identify and validate the device as an iPhone 4S: three separate identifiers that appear to be somehow tied to the device, and a chunk of “validation data” generated by the 4S. As I don’t have access to a jailbroken 4S, I used Applidium’s scripts to grab this data from a 4S, then I made a tweak that “fools” my iPod into using that same exact data.
Not only does Siri require an iPhone 4S unique identifier, but the servers are smart enough to recognize a faked connection after 24 hours:
Apple designed the system so that every chunk of validation data only authenticates successfully with their servers for 24 hours. After that, the data becomes invalid, and my iPod just goes right back to apologizing for not being able to connect to the network.
The iPod doesn’t cause it to expire; the server just stops accepting that data as “valid” after 24 hours.
Essentially, running Siri on a non-4S device requires access to a iPhone 4S, effectively making the port useless for people that don’t own Apple’s latest smartphone.
The code used by the 4S to generate validation data cannot run on any other device and is highly obfuscated (intentionally made very difficult to trace or reverse-engineer).
There are more networking problems that make a Siri port problematic, including the fact that no two devices can use the same identifiers/validation data to run Siri at the same time. Essentially, if you’re using an iPhone 4S’s unique identifier to run Siri on an unsupported device, the voice technology won’t work on the iPhone 4S that is acting as the host for the other device.
Finally, n00neimportant explains how a Siri port would theoretically be distributed legally. He compares the distribution to the way that jailbreak tools like PwnageTool handle copyrighted software:
First off, without question, a method by which one could generate his/her own validation data as needed would need to be developed first. That in itself is very unlikely, but it would be required for a releasable Siri port.
But what about the “legal” part? Think for a moment about PwnageTool: it is 100% legal because it does not contain any copyrighted material. You have to provide PwnageTool with any and all iPhone software update data and it does all necessary patching on-the-fly, rather than coming bundled with pre-patched data. Now envision for a moment an app for a jailbroken 4S that would package up all of the Siri files from its own filesystem into a single .deb, installable on any of your own personal iOS devices. Such a solution would avoid any piracy complications by removing the need to actually distribute the copyrighted Siri binaries and graphics; the only downside is you would legally need your own 4S from which to gather the Siri files. Yes, it’s not ideal, but it would be the only legal way for a Siri port to be released.
Hopefully that clears the air. And in case you didn’t know, Apple itself has said that it has “no plans” to bring Siri to other iDevices.
[Thanks for the tip, Steven!]