How To Grab iPhone 4S Siri Authentication Keys

Video Tutorial

 
All Downloads:

MacPorts

N00neImportant Validation File

Parallels (virtual machine for Ubuntu/Mac)

Prerequisites: Make sure you have Ruby Gems installed on your computer (Mac or Ubuntu) and Install MacPorts for  libxml2, openssl, and zlib.

Here’s the Ruby Gems…

sudo gem install eventmachine
sudo gem install CFPropertyList
Written Tutorial
  1. First you should download the tools that applidium so graciously posted on github.
  2. Put those downloaded tools aside for now, and open up Terminal (If you don’t know what that is you should probably give up right now) and change the current directory to your desktop (or whatever directory you’d like to work in).
  3. We’re going to need to create fake SSL certificates to spoof your iPhone 4S into thinking that your computer is actually Siri’s servers. You’ll need openssl installed (I believe it’s installed by default on Mac OS X).
  4. Generate your certificate authority by entering the following into Terminal:
    openssl genrsa -des3 -out ca.key 4096
    openssl req -new -x509 -days 365 -key ca.key -out ca.crt
  5. Next you’ll need to generate your server key and request for signing. Make sure to enter guzzoni.apple.com as the Common Name.
    openssl genrsa -des3 -out server.key 4096
    openssl req -new -key server.key -out server.csr
  6. Now we can sign our certificate request using our certificate authority
    openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.passless.crt
  7. Now we need to create a version of the server key that doesn’t cause a prompt for a password
    openssl rsa -in server.key -out server.key.insecure
    mv server.key server.key.secure
    mv server.key.insecure server.passless.key
  8. OK, now that we have our certificate’s we can transfer the certificate authority to your iPhone 4S so that it will accept our custom server as Siri’s server. To do this you’ll need the iPhone Configuration Utility which can be found here (Mac only).
    EDIT: Instead you can just email the ca.crt file to your iPhone 4S and install it that way. If you do this, you can skip to step 16. (Thanks Büromöbel Team!)
  9. Once that’s downloaded open it up and connect your iPhone 4S to your computer, select File, then New Configuration Profile.
  10. In the General section enter guzzoni.apple.com as the name, and anything you want in the identifier field (i.e. com.company.profile).
  11. Select the Credentials section and click Configure.
  12. Then navigate to the ca.crt file we created earlier and select that.
  13. Now select your iPhone 4S in the source list on the right side of the window and select the Configuration Profiles tab.
  14. Next to the profile we just created, select Install.
  15. You should now be prompted on your iPhone 4S to install then approve the certificate. Do that.
  16. Now we’ll need to setup a fake DNS server on your computer to fool your iPhone into thinking that your computer is the Siri server. To do this download the python script found here and save it as dns.py.
  17. Open that file up in your text editor of choice and go to line 29 and change the IP to the local IP address of your computer.
  18. Now in Terminal go to the directory where that python script is and enter the following:
    sudo python dns.py
  19. Now back on your iPhone 4S, go to Settings > WiFi and connect to the same network as your computer.
  20. Now tap the blue arrow next to the WiFi signal to configure options.
  21. In the DNS Server field enter the IP address of your computer.
  22. Now back on your computer open a new Terminal window (leave dns.py running!) and go to the directory with the files we downloaded in the first step. Also make sure that server.passless.key and server.passless.crt are in this directory as well.
  23. Enter the following into the new Terminal window:
    sudo ruby siriServer.rb
  24. Now back on your iPhone 4S make a dictation request with Siri. For example, go to the Notes app and tap the microphone next to the space bar and say something.
  25. If everything worked you should see a bunch of text in the Terminal window. This will give you everything you need to get Siri to authenticate using the other various tools downloaded in step 1. You’ll want to replace all the instances of COMMENTED_OUT in the ruby scripts with the data that was dumped into Terminal.
  26. You are DONE! Watch part 2 of the video (last 8 minutes) to get it installed on your phone!
DISCLAIMER: I am NOT responsible for whatever happens to your device. Do this at your OWN risk. Remember, don’t put these keys on too many phones (1-3 limit) to avoid blacklisting the iPhone 4S.
You can leave a response, or trackback from your own site.
  • http://twitter.com/domi007 Domonkos Tomcsanyi

    Hey,
    Why don’t we try to do the session key generation too? It would remove the annoying 24 hour limit, and I don’t think it would be hard to do.

  • Marcusag92

    /System/Library/Frameworks/Rub­y.framework/Versions/1.8/usr/l­ib/ruby/1.8/rubygems/custom_re­quire.rb:31:in `gem_original_require’: no such file to load — eventmachine (LoadError) from /System/Library/Frameworks/Rub­y.framework/Versions/1.8/usr/l­ib/ruby/1.8/rubygems/custom_re­quire.rb:31:in `require’ from siriServer.rb:3  what do i do?

  • Austin214

    Do you have to change the DNS on the iPhone back to the original?

  • Lowe493

    Anybody got this working on ubuntu on vmware?

  • Nbr19

    did everything as said in the tutorial, used sirin1ght GUI, siri still wasn’t working. would not talk at all.

  • Abdul89

    Quit Python in Activity Monitor

  • D Ittner

    denniss-imac:~ dennisittner$ sudo gem install eventmachine
    Password:
    Building native extensions.  This could take a while…
    Successfully installed eventmachine-0.12.10
    1 gem installed
    Installing ri documentation for eventmachine-0.12.10…
    Installing RDoc documentation for eventmachine-0.12.10…
    Could not find main page README
    Could not find main page README
    Could not find main page README
    Could not find main page README

  • cndjasibversuipaevbjia;e

    python isn’t running in activity monitor and i’m having the same issue :/

  • fneauo;vbenrubivaej’aejvbjaei;

    actually i did have it but removing it did no good :/

  • E Zobler

    i have a problem: Terminal:  Step 23

    Eliass-MacBook-Pro:Siri_Files Eli$ sudo ruby siriServer.rb/Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:572:in `start_tcp_server’: no acceptor (RuntimeError) from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:572:in `start_server’ from siriServer.rb:74 from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `call’ from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine’ from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run’ from siriServer.rb:73Eliass-MacBook-Pro:Siri_Files Eli$ 

  • Anonymous

    We can do all of this but can’t sign our own shsh blobs…. Typical

  • E Zobler

    solved

  • Jazzy Singh

    Any way to this on windows?

  • Lowe493

    Has anybody had this error when running siriServer.rb?
    /home/siri/.rvm/gems/ruby-1.9.3-p0/gems/eventmachine-0.12.10/lib/eventmachine.rb:572:in `start_tcp_server’: no acceptor (RuntimeError)
        from /home/siri/.rvm/gems/ruby-1.9.3-p0/gems/eventmachine-0.12.10/lib/eventmachine.rb:572:in `start_server’
        from siriServer.rb:74:in `block in ‘
        from /home/siri/.rvm/gems/ruby-1.9.3-p0/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `call’
        from /home/siri/.rvm/gems/ruby-1.9.3-p0/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine’
        from /home/siri/.rvm/gems/ruby-1.9.3-p0/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run’
        from siriServer.rb:73:in `’

  • Devpeck1

    I got all the way to the part where you need to dictate on the 4s, but siri wouldn’t connect to the network. I got this on my terminal window: Respuesta: guzzoni.apple.com. -> 192.168.1.103

  • Devpeck1

    never mind, now I’m getting this error. siriServer.rb:4: syntax error, unexpected ‘<'

     ^
    siriServer.rb:5: syntax error, unexpected ‘<'

     ^
    siriServer.rb:8: syntax error, unexpected ‘<'
       
         ^
    siriServer.rb:8: syntax error, unexpected tIDENTIFIER, expecting $end
       
                                                  ^

  • Tvick47

    how?

  • http://twitter.com/rsaeks rsaeks

    Close to getting this working.  I have SiriProxy up and running via ruby, but this one is giving me trouble.  When I try to start the app, I get:

    ./siriServer.rb:2:in `require’: no such file to load — rubygems (LoadError)
        from ./siriServer.rb:2

    Any tips on how to get this running?

  • Hgfranke

    how do you download on step #8??????

  • orpaz

    step 23:
    orpaz@ubuntu1:~/Downloads$ sudo ruby siriServer.rb
    ‘siriServer.rb:2:in `require’: no such file to load — rubygems (LoadError)
        from siriServer.rb:2
     waht to do?

  • Jameslane

    /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:572:in `start_tcp_server’: no acceptor (RuntimeError)
    from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:572:in `start_server’
    from siriServer.rb:74
    from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `call’
    from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine’
    from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run’
    from siriServer.rb:73

  • Dmoney7237

    u really expect me to do all this every 24 hrs? lol

  • Kgjhjgjsfhgh

    it would be easier to scipt the whole thing or what ever and just have to enter the pass phases and shit