It's only been a few days that we saw Siri's security protocol was cracked by the gurus at Applidium and the procedures used in the interaction between Apple's servers and iPhone 4S devices, as explained by these guys, have been used further ahead by a developer who goes by the Twitter name @plamoni (Pete), who has now successfully managed to develop a proxy server for Siri. Pete believes this Siri Proxy may contribute to the developer community in adding useful functionality to Siri.

The source code of the proxy server is available on the famous social forum for developers, GitHub. Pete has created a plugin that controls w Wi-Fi thermostat, as shown in his demo. The responses to questions like What's the status of the thermostat? or Set the thermostat to 68 degrees are all positive and successful! Not to forget, this work around doesn't require a jailbroken device!

Have a look at the demo after the break!

Here's the step by step guide provided by Pete himself at GitHub:

  1. Create a root CA using open SSL and have it issue a signed certificate for guzzoni.apple.com. Save the guzzoni private key (no passphrase) and certificate as server.passless.key and server.passless.crt in the SiriProxy directory. (http://www.youtube.com/watch?v=_oaNbPOUCaE )
  2. Load the root CA's public certificate on your phone (you can just email it to yourself and click it to do that).
  3. Set up a DNS server on your network to forward requests for guzzoni.apple.com to the computer running the proxy (make sure that computer is not using your DNS server!). I recommend dnsmasq for this purpose. It's easy to get running and can easily handle this sort of behavior. (http://www.youtube.com/watch?v=a9gO4L0U59s )
  4. Install the requisite Ruby gems:
    • httparty
    • open-uri (you may not need this on newer versions of Ruby)
    • json
    • CFPropertyList
    • uuidtools
    • eventmachine
    • twitter (you can remove the require for the twitter plugin in start.rb if you don't want/have this gem)
  5. Execute start.rb (as root - since it must listen on TCP/443)
  6. Activate Siri on your phone (connected to the network and using the DNS server with the fake entry), and say, Test Siri proxy. It should respond, Siri Proxy is up and running!

So now that Siri has been hacked to control a thermostat, it would be great to see how developers add more interesting things to Siri using this proxy server! We'll keep you posted! 

The original post was published on Simon Blog.