node-siri icon indicating copy to clipboard operation
node-siri copied to clipboard

Generating certificates for iOS 7

Open seberenimer opened this issue 12 years ago • 26 comments

I am running iOS 7 and the siri server seems to be different. I used wireshark to figure out which siri server is used and from what I gather the siri server for iOS 7 seems to be daryl.apple.com.

I am trying to generate the certificates for daryl.apple.com using openssl. When I replace the certificates in your keys directory with the ones I generate and run the install app, I am able to install the certificate on my phone and then everything is green on the install page. But when the siri server starts and I try to speak to siri I get the following error:

Error: 1292:error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher:openssl\ssl\s3_srvr.c:1355

I am really not familiar with SSL so I am pretty sure that I am doing something wrong when I generate the certificates

Could you tell me the exact openssl commands you used to generate the guzzoni.apple.com certificate

Thank you

seberenimer avatar Sep 10 '13 17:09 seberenimer

It is possible they completely reworked Siri's protocol for iOS 7. The error you are receiving is not a problem with your device talking to the proxy, it's a problem with the proxy talking to apple's servers.

Is that the FULL error you are receiving? There's no node dump?

If the case is they reworked Siri's protocol, this is all broken and pointless.

jnovack avatar Sep 10 '13 19:09 jnovack

Yes this is the only error I get and I had to set DEBUG=siri:* to get it

I don't know if they reworked Siri's protocol but when I search for the no shared cipher error I got the feeling that this is an SSL handshake error so from what I understand at this point we are not even talking about the Siri protocol, the problem is at a lower level, it is pure TLS or SSL

seberenimer avatar Sep 10 '13 20:09 seberenimer

I am not sure how to get the node dump. I set dumpdata: true in the config.json but nothing changed

seberenimer avatar Sep 10 '13 20:09 seberenimer

Yes, you are correct so far. It seems at this point it is merely the SSL Cipher, but until we get past that we won't know if the protocol has changed or not.

openssl s_client -connect daryl.apple.com:443 -ssl3

returns:

SSL-Session:
    Protocol  : SSLv3
    Cipher    : RC4-MD5

You may have to change line 235 from:

serverStream = tls.connect(SIRI_PORT, SIRI_SERVER, onServerConnect)

to:

serverStream = tls.connect(SIRI_PORT, SIRI_SERVER, { secureProtocol: "SSLv3_method"}, onServerConnect)

and try again.

jnovack avatar Sep 10 '13 20:09 jnovack

Additionally, you have to set SIRI_SERVER as daryl.apple.com.

In the contrib/ directory, there is a genca.sh that has the exact commands to run. Edit the file and replace 1024 with 2048. Try again.

jnovack avatar Sep 10 '13 20:09 jnovack

Thanks I will try it tonight! I already set the SIRI_SERVER to daryl.apple.com via the the server property of the config.json

seberenimer avatar Sep 10 '13 20:09 seberenimer

I have't upgrade to IOS7 yet. Siri's protocol for iOS 7 may have changed.I will analyze the protocol as soon as possible when IOS7 is released.

zhangyuanwei avatar Sep 11 '13 03:09 zhangyuanwei

Fantastic work you've done so far. Me and wejmolahs are looking into solutions for iOS 7 and would love to help out wherever we can. It seems Plamoni has been quiet over the issue lately.

monoxgas avatar Sep 18 '13 17:09 monoxgas

plamoni has been rightfully quiet because he may be a Apple Developer. They are under an NDA to not disclose anything until it has been publicly released. Now that it has been publicly release, he can most likely talk about it if he has the time.

jnovack avatar Sep 18 '13 18:09 jnovack

@jnovack I edited the genca.sh script like you said and it worked, I was able to inspect the SIRI packets which changed a little from the previous version but the structure remains the same. When I came back the next day to continue where I left off I don't know why but I still had the same SSL problems as before (no shared cipher).

Since I had modified a little bit of code in siri.js I decided to re-install node-siri from scratch but no luck.

After examining the clientStream and the serverStream I am pretty sure that the problem is not with Apple's siri server, the connection seems to work properly. The handshake problem occurs when the iPhone connects to the siri proxy

seberenimer avatar Sep 18 '13 19:09 seberenimer

Any progress? Maybe this can be helpful https://github.com/plamoni/SiriProxy/issues/542

rendom avatar Sep 24 '13 18:09 rendom

No, I'm playing GTA V this month, and have not upgraded to iOS 7 yet.

jnovack avatar Oct 03 '13 15:10 jnovack

Any progress for IOS 7 ?

criroselli avatar Dec 10 '13 22:12 criroselli

Please progress in SiriProxy for iOS 7 ! It's very important for some people ! Help us !

Ant1B2x avatar Dec 29 '13 14:12 Ant1B2x

Hi guys Any progress for iOS 7?

schiizo avatar Jan 12 '14 22:01 schiizo

Well, I'll try it tonight.

zhangyuanwei avatar Jan 13 '14 07:01 zhangyuanwei

Pretty please!

suhajdab avatar Jan 28 '14 13:01 suhajdab

is there a tutorial on how to set this up? and help with testing?

phillpafford avatar Feb 27 '14 15:02 phillpafford

bump. any news on the subject?

kaminskypavel avatar Mar 09 '14 23:03 kaminskypavel

Are we heading towards a brick wall? ANY Updates? @seberenimer @jnovack

ritvik1512 avatar Mar 17 '14 06:03 ritvik1512

I have dropped this project due to a lack of interest.

Justin J. Novack Official Disturber of the Peace

On Mon, Mar 17, 2014 at 2:02 AM, Ritvik Choudhary [email protected]:

Are we heading towards a brick wall? ANY Updates? @seberenimerhttps://github.com/seberenimer @jnovack https://github.com/jnovack

Reply to this email directly or view it on GitHubhttps://github.com/zhangyuanwei/node-siri/issues/13#issuecomment-37787220 .

jnovack avatar Mar 17 '14 18:03 jnovack

I think there are a lot of people (including me) who want to see this project go live!

Timvdv avatar Apr 29 '14 10:04 Timvdv

I never gave up on this project.But regrettably,Node-siri has no full time development staff.I have full time job that keep me busy. On the other hand.Significant changes made to the Siri protocol stack have rendered node-siri inoperable with iOS 7.I don't have enough time to follow up. So, I'm waiting for this project to solve the IOS7 problem,then I well transplant to node-siri. Thx.

zhangyuanwei avatar Apr 30 '14 02:04 zhangyuanwei

im with you, this proj should be alive!

kaminskypavel avatar Apr 30 '14 10:04 kaminskypavel

Have you read the comment from @KenFalk 3 days ago? He said: instead of intercepting and changing the response we could try to just read it.

The downside is that you can't have a response from Siri, but I think a lot of people would still be happy because most tasks don't require a response.

Do you think this would work?

Timvdv avatar Apr 30 '14 10:04 Timvdv

Apologies for digging up an old thread, just been poking around with this and wanted to share what I learnt. Poking around on iOS8, it seems that the server is back to guzzoni.apple.com again. I still get the same error @seberenimer got originally though, the issue with the handshake.

Again, not an SSL expert myself either. I just though it was interesting that the servers had changed again. Can anyone else confirm this as well? iPhone 6 in the UK

thomaslove avatar Jun 28 '15 00:06 thomaslove