
Originally Posted by
Olethros
This is also my understanding, and is why I took apart this firmware to look for changes. I still doubt that the original poster got push notifications properly working simply because of this hacked firmware. I cannot find a reason why it would work. I think the devicetree is a red herring and has nothing to do with solving this.
Does anyone know more about the structure of these unique certs? Do you get a new unique cert if you restore your phone and activate again? Is the UDID of the device embedded into the cert at all? There is some good information about which files are critical to push on the forum of the guy who is selling certificates.
Push Fix • View topic - Try this if all else fails I was looking into that right now.
They are X509 certificates/key pairs in DER format. The problem is that they are signed by Apple, so there is no way to create such certificates other than by proper iTunes controlled Activation.
To illustrate, this is the dump of one of the certificates:
Code:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
02:81:0b:5d:d0:8c:48:88:19:b5
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=Apple Inc., OU=Apple iPhone, CN=Apple iPhone Device CA
Validity
Not Before: Oct 20 02:12:42 2009 GMT
Not After : Oct 20 02:12:42 2012 GMT
Subject: CN=F7066122-C872-469D-8B17-9D16E59ED1C4, C=US, ST=CA, L=Cupertino, O=Apple Inc., OU=iPhone
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1023 bit)
Modulus (1023 bit):
52:a9:a4:5c:0e:4a:6c:4d:fd:a3:a7:4a:b9:44:08:
88:2b:a4:ee:3d:e4:b4:04:0a:4c:bf:3b:1d:65:0a:
40:ac:1c:58:a1:c7:d3:5f:43:26:c5:32:c6:ce:e9:
c2:11:04:b1:f4:99:e0:fa:f5:fd:00:8e:91:2e:df:
b9:23:04:88:f3:a2:14:5e:83:14:47:0e:85:79:d5:
fe:58:cf:d0:60:6d:e3:d5:7b:04:10:5e:cf:6d:5d:
9a:7d:6d:54:5c:de:60:8a:0f:ca:04:6f:d6:61:f0:
c1:ee:dc:eb:91:0b:94:c5:f4:a4:f7:58:c3:97:2c:
a8:1a:e1:a2:b0:11:f3:1d
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:B2:FE:21:23:44:86:95:6A:79:D5:81:26:8E:73:10:D8:A7:4C:8E:74
X509v3 Subject Key Identifier:
FB:56:5C:08:51:8A:1B:CA:59:D7:AA:1F:8F:2B:2D:16:6B:FF:AE:A1
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage: critical
TLS Web Server Authentication, TLS Web Client Authentication
Signature Algorithm: sha1WithRSAEncryption
bf:a3:9e:e8:88:6c:52:0f:4a:5d:c0:13:90:28:48:57:a3:36:
68:21:bf:0d:9d:a5:31:b1:b5:73:87:78:a3:27:9d:79:5b:a3:
22:92:c0:57:c5:0d:b5:be:44:17:4f:6d:a5:d5:1f:65:a1:f1:
31:88:f9:c8:21:9f:57:66:ed:6e:e2:af:0a:50:ef:0f:07:ca:
30:db:46:b4:d1:6c:3e:1d:e7:b5:21:26:72:97:0d:af:5e:ad:
76:ca:81:3e:a4:d6:79:0f:b8:06:54:cb:fc:eb:55:3d:bb:7e:
76:3f:cb:40:5d:49:c9:4f:22:ff:a7:ec:cf:4b:f0:a0:09:54:
84:7d In the example, the issuing Certificate Authority is "Apple iPhone Device CA".
There is no "requirement" for the Push server to validate the certificate, and the certificate could be used exclusively as the delivery vessel for the public key and the iPhone identity. Code already exists for this and it's much simpler to use.
I can easily create one of those with a Private CA and give it a shot to see if that is the case.
Bookmarks