Closed
Bug 54104
Opened 25 years ago
Closed 23 years ago
PSM doesn't work with VeriSign's OCSP service
Categories
(Core :: Security: PSM, defect, P3)
Tracking
()
VERIFIED
DUPLICATE
of bug 130885
Future
People
(Reporter: javi, Assigned: ddrinan0264)
References
Details
(Whiteboard: nsbranch)
Attachments
(1 file)
This is a tracking bug for PSM which depends on NSS bug 53205.
> I can demostrate the problem by doing the following:
>
> 1) Using
> Netscape 6.1 Preview Release 1
> Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.1) Gecko/20010607
> Netscape6/6.1b1
> 2) Create a new profile
> 3) Go to Validation, and use "Builtin Object Token: Verisign Secure
> Server OCSP Responder" as the
> Response Signer. (This should be the fifth item in the listbox)
> 4) Visit https://www.verisign.com
> 5) Click on the lock icon at the bottom of the browser
> 6) Hit "view" button
> 7) The panel said "Could not verify this certificate unknown reasons"
>
> The browser is not even sending out the OCSP request.
>
>
> thomas
We have identified a bug in NSS. The bug prevents the client to pick up the
correct URL to the OCSP responder.
I suspect NSS may have bugs on decoding the response almost. So just in
case, I paste in a good response that NSS recognize, and a response that
is from Verisign (you can obtain the response from accessing
http://ocsp.verisign.com/ocsp/status)
Good Response:
0 30 1121: SEQUENCE {
4 0A 1: ENUMERATED CRYPT_MODE_NONE (0)
7 A0 1114: [0] {
11 30 1110: SEQUENCE {
15 06 9: OBJECT IDENTIFIER ocspBasic (1 3 6 1 5 5 7 48 1 1)
: (OCSP)
26 04 1095: OCTET STRING, encapsulates {
30 30 1091: SEQUENCE {
34 30 141: SEQUENCE {
37 A0 3: [0] {
39 02 1: INTEGER 0
: }
42 A1 34: [1] {
44 30 32: SEQUENCE {
46 31 30: SET {
48 30 28: SEQUENCE {
50 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
55 13 21: PrintableString 'OCSP cert-pc614451xcz'
: }
: }
: }
: }
78 18 15: GeneralizedTime '20010621031753Z'
95 30 81: SEQUENCE {
97 30 79: SEQUENCE {
99 30 58: SEQUENCE {
101 30 9: SEQUENCE {
103 06 5: OBJECT IDENTIFIER sha1 (1 3 14 3 2 26)
: (OIW)
110 05 0: NULL
: }
112 04 20: OCTET STRING
: E4 52 F9 87 84 FC 1D 59 7B 24 CB 23 7C A7 B3 A0
: 79 EA B4 D3
134 04 20: OCTET STRING
: 8E BB FE 7C 27 6A F2 B4 FF 9A 19 FA 8C 4A B6 4B
: B8 DA 1C 4F
156 02 1: INTEGER 6
: }
159 80 0: [0]
: Error: Object has zero length.
161 18 15: GeneralizedTime '20010621031753Z'
: }
: }
: }
178 30 13: SEQUENCE {
180 06 9: OBJECT IDENTIFIER
: md5withRSAEncryption (1 2 840 113549 1 1 4)
: (PKCS #1)
191 05 0: NULL
: }
193 03 65: BIT STRING 0 unused bits
: 3A 71 DD DC 77 78 F5 26 43 7A 2F 15 A3 2A 9B A0
: 55 40 F9 87 7C 3A E0 21 9F 98 74 DA 60 98 47 25
: 74 08 D9 FC DB 4A 4F BD 09 35 15 21 EE 00 DC C0
: 72 F3 04 43 42 24 E9 83 CA 05 35 7A 94 B3 46 E1
260 A0 861: [0] {
264 30 857: SEQUENCE {
268 30 372: SEQUENCE {
272 30 286: SEQUENCE {
276 A0 3: [0] {
278 02 1: INTEGER 2
: }
281 02 1: INTEGER 2
284 30 13: SEQUENCE {
286 06 9: OBJECT IDENTIFIER
: md5withRSAEncryption (1 2 840 113549 1 1
4)
: (PKCS #1)
297 05 0: NULL
: }
299 30 59: SEQUENCE {
301 31 11: SET {
303 30 9: SEQUENCE {
305 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
: (X.520 id-at (2 5 4))
310 13 2: PrintableString 'US'
: }
: }
314 31 14: SET {
316 30 12: SEQUENCE {
318 06 3: OBJECT IDENTIFIER
: organizationName (2 5 4 10)
: (X.520 id-at (2 5 4))
323 13 5: PrintableString 'x121x'
: }
: }
330 31 28: SET {
332 30 26: SEQUENCE {
334 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
339 13 19: PrintableString 'Certificate Manager'
: }
: }
: }
360 30 30: SEQUENCE {
362 17 13: UTCTime '010614070000Z'
377 17 13: UTCTime '030614070000Z'
: }
392 30 32: SEQUENCE {
394 31 30: SET {
396 30 28: SEQUENCE {
398 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
403 13 21: PrintableString 'OCSP cert-pc614451xcz'
: }
: }
: }
426 30 92: SEQUENCE {
428 30 13: SEQUENCE {
430 06 9: OBJECT IDENTIFIER
: rsaEncryption (1 2 840 113549 1 1 1)
: (PKCS #1)
441 05 0: NULL
: }
443 03 75: BIT STRING 0 unused bits
: 30 48 02 41 00 A8 40 BA F3 54 C4 68 5F A0 EF 7A
: 09 C3 64 E1 30 3E 31 9A 80 0D 3D 76 6F ED B6 C8
: DB EE 86 EF 16 7A 97 99 C3 04 22 DA 37 A2 E1 9D
: B7 96 00 15 32 9D 55 DB 4A A8 49 30 F7 9D B7 6B
: B3 7C 3D F1 15 02 03 01 00 01
: }
520 A3 40: [3] {
522 30 38: SEQUENCE {
524 30 19: SEQUENCE {
526 06 3: OBJECT IDENTIFIER
: extKeyUsage (2 5 29 37)
: (X.509 id-ce (2 5 29))
531 04 12: OCTET STRING, encapsulates {
533 30 10: SEQUENCE {
535 06 8: OBJECT IDENTIFIER
: ocspSigning (1 3 6 1 5 5 7 3 9)
: (PKIX key purpose)
: }
: }
: }
545 30 15: SEQUENCE {
547 06 9: OBJECT IDENTIFIER
: ocspNoCheck (1 3 6 1 5 5 7 48 1 5)
: (OCSP)
558 04 2: OCTET STRING
: 05 00
: }
: }
: }
: }
562 30 13: SEQUENCE {
564 06 9: OBJECT IDENTIFIER
: md5withRSAEncryption (1 2 840 113549 1 1 4)
: (PKCS #1)
575 05 0: NULL
: }
577 03 65: BIT STRING 0 unused bits
: 88 F9 B0 58 97 D3 DF 48 28 0E 93 41 8D 76 9B 3C
: 5F 2D E9 22 DF D9 04 A7 2A A3 85 13 6D DA 7C 61
: 21 1A FD 44 0B CC 8E 46 48 DF BB F8 BE F7 4A ED
: B3 0A 82 EA 7E 0C 46 93 45 48 4D 0F 17 28 C8 E8
: }
644 30 477: SEQUENCE {
648 30 391: SEQUENCE {
652 A0 3: [0] {
654 02 1: INTEGER 2
: }
657 02 1: INTEGER 1
660 30 13: SEQUENCE {
662 06 9: OBJECT IDENTIFIER
: sha1withRSAEncryption (1 2 840 113549 1 1
5)
: (PKCS #1)
673 05 0: NULL
: }
675 30 59: SEQUENCE {
677 31 11: SET {
679 30 9: SEQUENCE {
681 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
: (X.520 id-at (2 5 4))
686 13 2: PrintableString 'US'
: }
: }
690 31 14: SET {
692 30 12: SEQUENCE {
694 06 3: OBJECT IDENTIFIER
: organizationName (2 5 4 10)
: (X.520 id-at (2 5 4))
699 13 5: PrintableString 'x121x'
: }
: }
706 31 28: SET {
708 30 26: SEQUENCE {
710 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
715 13 19: PrintableString 'Certificate Manager'
: }
: }
: }
736 30 30: SEQUENCE {
738 17 13: UTCTime '010614070000Z'
753 17 13: UTCTime '030614070000Z'
: }
768 30 59: SEQUENCE {
770 31 11: SET {
772 30 9: SEQUENCE {
774 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
: (X.520 id-at (2 5 4))
779 13 2: PrintableString 'US'
: }
: }
783 31 14: SET {
785 30 12: SEQUENCE {
787 06 3: OBJECT IDENTIFIER
: organizationName (2 5 4 10)
: (X.520 id-at (2 5 4))
792 13 5: PrintableString 'x121x'
: }
: }
799 31 28: SET {
801 30 26: SEQUENCE {
803 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
808 13 19: PrintableString 'Certificate Manager'
: }
: }
: }
829 30 92: SEQUENCE {
831 30 13: SEQUENCE {
833 06 9: OBJECT IDENTIFIER
: rsaEncryption (1 2 840 113549 1 1 1)
: (PKCS #1)
844 05 0: NULL
: }
846 03 75: BIT STRING 0 unused bits
: 30 48 02 41 00 A6 D1 82 23 B9 F6 2E C5 F5 2B A5
: A0 D4 16 02 03 A0 3D 6D B9 CB 5E CA 20 F9 F7 03
: F0 1A 38 A9 E2 CE 7E AC 34 D8 B1 0E D8 2D 1F 9B
: E1 DD E7 49 6F D3 F8 C6 89 BB A0 06 A1 12 DB 7B
: F7 E6 BA CA 37 02 03 01 00 01
: }
923 A3 118: [3] {
925 30 116: SEQUENCE {
927 30 17: SEQUENCE {
929 06 9: OBJECT IDENTIFIER
: netscape-cert-type (2 16 840 1 113730
1 1)
: (Netscape certificate extension)
940 04 4: OCTET STRING, encapsulates {
942 03 2: BIT STRING 0 unused bits
: '00000111'B
: }
: }
946 30 15: SEQUENCE {
948 06 3: OBJECT IDENTIFIER
: basicConstraints (2 5 29 19)
: (X.509 id-ce (2 5 29))
953 01 1: BOOLEAN TRUE
956 04 5: OCTET STRING, encapsulates {
958 30 3: SEQUENCE {
960 01 1: BOOLEAN TRUE
: }
: }
: }
963 30 29: SEQUENCE {
965 06 3: OBJECT IDENTIFIER
: subjectKeyIdentifier (2 5 29 14)
: (X.509 id-ce (2 5 29))
970 04 22: OCTET STRING
: 04 14 8F 06 19 4B EA 3F 32 CB 7E F1 2B 1D C1 61
: BA 90 67 03 EE F3
: }
994 30 31: SEQUENCE {
996 06 3: OBJECT IDENTIFIER
: authorityKeyIdentifier (2 5 29 35)
: (X.509 id-ce (2 5 29))
1001 04 24: OCTET STRING, encapsulates {
1003 30 22: SEQUENCE {
1005 80 20: [0]
: 8F 06 19 4B EA 3F 32 CB 7E F1 2B 1D C1 61 BA 90
: 67 03 EE F3
: }
: }
: }
1027 30 14: SEQUENCE {
1029 06 3: OBJECT IDENTIFIER keyUsage (2 5 29 15)
: (X.509 id-ce (2 5 29))
1034 01 1: BOOLEAN TRUE
1037 04 4: OCTET STRING, encapsulates {
1039 03 2: BIT STRING 1 unused bits
: '1000011'B
: }
: }
: }
: }
: }
1043 30 13: SEQUENCE {
1045 06 9: OBJECT IDENTIFIER
: sha1withRSAEncryption (1 2 840 113549 1 1 5)
: (PKCS #1)
1056 05 0: NULL
: }
1058 03 65: BIT STRING 0 unused bits
: 9F 32 DB 94 67 12 85 66 7E 86 C8 16 FD 5D 85 25
: 0E 20 26 D9 56 BD E5 32 39 D1 66 63 E9 CF 27 F6
: 82 6D 97 C2 5F 64 44 E0 2E 8A DA 54 DC 17 31 40
: BD E1 1B D9 C9 40 83 F5 CB 0D 80 97 01 94 98 2C
: }
: }
: }
: }
: }
: }
: }
: }
Verisign:
0 30 1461: SEQUENCE {
4 0A 1: ENUMERATED CRYPT_MODE_NONE (0)
7 A0 1454: [0] {
11 30 1450: SEQUENCE {
15 06 9: OBJECT IDENTIFIER ocspBasic (1 3 6 1 5 5 7 48 1 1)
: (OCSP)
26 04 1435: OCTET STRING, encapsulates {
30 30 1431: SEQUENCE {
34 30 344: SEQUENCE {
38 A1 170: [1] {
41 30 167: SEQUENCE {
44 31 23: SET {
46 30 21: SEQUENCE {
48 06 3: OBJECT IDENTIFIER
: organizationName (2 5 4 10)
: (X.520 id-at (2 5 4))
53 13 14: PrintableString 'VeriSign, Inc.'
: }
: }
69 31 31: SET {
71 30 29: SEQUENCE {
73 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
78 13 22: PrintableString 'VeriSign Trust Network'
: }
: }
102 31 59: SET {
104 30 57: SEQUENCE {
106 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
111 13 50: PrintableString
: 'Terms of use at https://www.verisign.com/RPA
(c)'
: '00'
: }
: }
163 31 46: SET {
165 30 44: SEQUENCE {
167 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
172 13 37: PrintableString 'Class 1 Public Primary OCSP
Responder'
: }
: }
: }
: }
211 18 15: GeneralizedTime '20010620232324Z'
228 30 113: SEQUENCE {
230 30 111: SEQUENCE {
232 30 71: SEQUENCE {
234 30 7: SEQUENCE {
236 06 5: OBJECT IDENTIFIER sha1 (1 3 14 3 2 26)
: (OIW)
: }
243 04 20: OCTET STRING
: FA 91 BE DD 25 0A 6C AF BC 64 60 CE 76 19 38 EC
: 9C B3 6E A6
265 04 20: OCTET STRING
: 58 63 7C 48 EA 9B EA F2 0B 64 73 25 12 F2 26 CC
: A5 7B 9A 5A
287 02 16: INTEGER
: 48 D4 F1 9C 28 D7 2B 5B 48 EB F1 8F BF B2 94 AF
: }
305 82 0: [2]
: Error: Object has zero length.
307 18 15: GeneralizedTime '20010620232324Z'
324 A0 17: [0] {
326 18 15: GeneralizedTime '20010620232324Z'
: }
: }
: }
343 A1 37: [1] {
345 30 35: SEQUENCE {
347 30 33: SEQUENCE {
349 06 9: OBJECT IDENTIFIER
: ocspNonce (1 3 6 1 5 5 7 48 1 2)
: (OCSP)
360 04 20: OCTET STRING
: 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36
: 37 38 39 30
: }
: }
: }
: }
382 30 11: SEQUENCE {
384 06 9: OBJECT IDENTIFIER
: sha1withRSAEncryption (1 2 840 113549 1 1 5)
: (PKCS #1)
: }
395 03 129: BIT STRING 0 unused bits
: 71 D2 6D 5D 5E F6 5D 69 1D C8 D1 C7 56 31 F9 E9
: AD D5 9D 7C AF 6E 6D D0 F4 8A 0C 27 72 76 5D 25
: DA 36 C6 FB D7 7A D6 D0 EB 45 F9 92 54 3E 3F 9C
: C0 5C 27 C5 3D 6E 5E DA 00 88 73 97 BE D6 74 9C
: 7D E1 67 61 80 F3 E1 CE 9F C9 BA 89 BD A0 5F A9
: AB 1A 77 6F DA A6 D3 7F 48 F5 56 9C DF 50 F9 05
: 4F D9 C5 C0 B9 24 ED B0 F6 7F C2 1A 23 61 86 EC
: 0D 6F D7 6D E5 DD D3 2B DA B1 F1 89 F0 BE B7 FF
527 A0 934: [0] {
531 30 930: SEQUENCE {
535 30 926: SEQUENCE {
539 30 775: SEQUENCE {
543 A0 3: [0] {
545 02 1: INTEGER 2
: }
548 02 16: INTEGER
: 2B 68 D4 A3 46 9E C5 3B 28 09 AB 38 5D 7F 27 20
566 30 13: SEQUENCE {
568 06 9: OBJECT IDENTIFIER
: sha1withRSAEncryption (1 2 840 113549 1 1
5)
: (PKCS #1)
579 05 0: NULL
: }
581 30 95: SEQUENCE {
583 31 11: SET {
585 30 9: SEQUENCE {
587 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
: (X.520 id-at (2 5 4))
592 13 2: PrintableString 'US'
: }
: }
596 31 23: SET {
598 30 21: SEQUENCE {
600 06 3: OBJECT IDENTIFIER
: organizationName (2 5 4 10)
: (X.520 id-at (2 5 4))
605 13 14: PrintableString 'VeriSign, Inc.'
: }
: }
621 31 55: SET {
623 30 53: SEQUENCE {
625 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
630 13 46: PrintableString
: 'Class 1 Public Primary Certification Authority'
: }
: }
: }
678 30 30: SEQUENCE {
680 17 13: UTCTime '000804000000Z'
695 17 13: UTCTime '040803235959Z'
: }
710 30 167: SEQUENCE {
713 31 23: SET {
715 30 21: SEQUENCE {
717 06 3: OBJECT IDENTIFIER
: organizationName (2 5 4 10)
: (X.520 id-at (2 5 4))
722 13 14: PrintableString 'VeriSign, Inc.'
: }
: }
738 31 31: SET {
740 30 29: SEQUENCE {
742 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
747 13 22: PrintableString 'VeriSign Trust Network'
: }
: }
771 31 59: SET {
773 30 57: SEQUENCE {
775 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
780 13 50: PrintableString
: 'Terms of use at https://www.verisign.com/RPA
(c)'
: '00'
: }
: }
832 31 46: SET {
834 30 44: SEQUENCE {
836 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
841 13 37: PrintableString 'Class 1 Public Primary
OCSP Responder'
: }
: }
: }
880 30 159: SEQUENCE {
883 30 13: SEQUENCE {
885 06 9: OBJECT IDENTIFIER
: rsaEncryption (1 2 840 113549 1 1 1)
: (PKCS #1)
896 05 0: NULL
: }
898 03 141: BIT STRING 0 unused bits
: 30 81 89 02 81 81 00 B9 ED 5E 7A 3A 77 5F CE 5F
: 3A 52 FC CD 64 F7 71 B5 6F 6A 96 C6 59 92 55 94
: 5D 2F 5B 2E C1 11 EA 26 8A CB A7 81 3C F6 5A 44
: DE 7A 13 2F FD 5A 51 D9 7B 37 26 4A C0 27 3F 04
: 03 6A 56 C1 83 2C E1 6F 5B A9 54 50 24 4A C6 2E
: 7A 4C A1 5B 37 54 24 21 31 1F A1 78 18 76 A7 B1
: 70 DA 22 D0 6A FE 07 62 40 C6 F7 F6 9B 7D 0C 06
: B8 4B C7 28 E4 66 23 84 51 EF 46 B7 93 D8 81 33
: [ Another 12 bytes skipped ]
: }
1042 A3 272: [3] {
1046 30 268: SEQUENCE {
1050 30 32: SEQUENCE {
1052 06 3: OBJECT IDENTIFIER
: subjectAltName (2 5 29 17)
: (X.509 id-ce (2 5 29))
1057 04 25: OCTET STRING, encapsulates {
1059 30 23: SEQUENCE {
1061 A4 21: [4] {
1063 30 19: SEQUENCE {
1065 31 17: SET {
1067 30 15: SEQUENCE {
1069 06 3: OBJECT IDENTIFIER
: commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
1074 13 8: PrintableString 'OCSP 1-1'
: }
: }
: }
: }
: }
: }
: }
1084 30 49: SEQUENCE {
1086 06 3: OBJECT IDENTIFIER
: cRLDistributionPoints (2 5 29 31)
: (X.509 id-ce (2 5 29))
1091 04 42: OCTET STRING, encapsulates {
1093 30 40: SEQUENCE {
1095 30 38: SEQUENCE {
1097 A0 36: [0] {
1099 A0 34: [0] {
1101 86 32: [6]
'http://crl.verisign.com/pca1.crl'
: }
: }
: }
: }
: }
: }
1135 30 19: SEQUENCE {
1137 06 3: OBJECT IDENTIFIER
: extKeyUsage (2 5 29 37)
: (X.509
I think I hit the size limit of the text box. Anyway, let's try again:
Verisign:
0 30 1461: SEQUENCE {
4 0A 1: ENUMERATED CRYPT_MODE_NONE (0)
7 A0 1454: [0] {
11 30 1450: SEQUENCE {
15 06 9: OBJECT IDENTIFIER ocspBasic (1 3 6 1 5 5 7 48 1 1)
: (OCSP)
26 04 1435: OCTET STRING, encapsulates {
30 30 1431: SEQUENCE {
34 30 344: SEQUENCE {
38 A1 170: [1] {
41 30 167: SEQUENCE {
44 31 23: SET {
46 30 21: SEQUENCE {
48 06 3: OBJECT IDENTIFIER
: organizationName (2 5 4 10)
: (X.520 id-at (2 5 4))
53 13 14: PrintableString 'VeriSign, Inc.'
: }
: }
69 31 31: SET {
71 30 29: SEQUENCE {
73 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
78 13 22: PrintableString 'VeriSign Trust Network'
: }
: }
102 31 59: SET {
104 30 57: SEQUENCE {
106 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
111 13 50: PrintableString
: 'Terms of use at https://www.verisign.com/RPA
(c)'
: '00'
: }
: }
163 31 46: SET {
165 30 44: SEQUENCE {
167 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
172 13 37: PrintableString 'Class 1 Public Primary OCSP
Responder'
: }
: }
: }
: }
211 18 15: GeneralizedTime '20010620232324Z'
228 30 113: SEQUENCE {
230 30 111: SEQUENCE {
232 30 71: SEQUENCE {
234 30 7: SEQUENCE {
236 06 5: OBJECT IDENTIFIER sha1 (1 3 14 3 2 26)
: (OIW)
: }
243 04 20: OCTET STRING
: FA 91 BE DD 25 0A 6C AF BC 64 60 CE 76 19 38 EC
: 9C B3 6E A6
265 04 20: OCTET STRING
: 58 63 7C 48 EA 9B EA F2 0B 64 73 25 12 F2 26 CC
: A5 7B 9A 5A
287 02 16: INTEGER
: 48 D4 F1 9C 28 D7 2B 5B 48 EB F1 8F BF B2 94 AF
: }
305 82 0: [2]
: Error: Object has zero length.
307 18 15: GeneralizedTime '20010620232324Z'
324 A0 17: [0] {
326 18 15: GeneralizedTime '20010620232324Z'
: }
: }
: }
343 A1 37: [1] {
345 30 35: SEQUENCE {
347 30 33: SEQUENCE {
349 06 9: OBJECT IDENTIFIER
: ocspNonce (1 3 6 1 5 5 7 48 1 2)
: (OCSP)
360 04 20: OCTET STRING
: 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36
: 37 38 39 30
: }
: }
: }
: }
382 30 11: SEQUENCE {
384 06 9: OBJECT IDENTIFIER
: sha1withRSAEncryption (1 2 840 113549 1 1 5)
: (PKCS #1)
: }
395 03 129: BIT STRING 0 unused bits
: 71 D2 6D 5D 5E F6 5D 69 1D C8 D1 C7 56 31 F9 E9
: AD D5 9D 7C AF 6E 6D D0 F4 8A 0C 27 72 76 5D 25
: DA 36 C6 FB D7 7A D6 D0 EB 45 F9 92 54 3E 3F 9C
: C0 5C 27 C5 3D 6E 5E DA 00 88 73 97 BE D6 74 9C
: 7D E1 67 61 80 F3 E1 CE 9F C9 BA 89 BD A0 5F A9
: AB 1A 77 6F DA A6 D3 7F 48 F5 56 9C DF 50 F9 05
: 4F D9 C5 C0 B9 24 ED B0 F6 7F C2 1A 23 61 86 EC
: 0D 6F D7 6D E5 DD D3 2B DA B1 F1 89 F0 BE B7 FF
527 A0 934: [0] {
531 30 930: SEQUENCE {
535 30 926: SEQUENCE {
539 30 775: SEQUENCE {
543 A0 3: [0] {
545 02 1: INTEGER 2
: }
548 02 16: INTEGER
: 2B 68 D4 A3 46 9E C5 3B 28 09 AB 38 5D 7F 27 20
566 30 13: SEQUENCE {
568 06 9: OBJECT IDENTIFIER
: sha1withRSAEncryption (1 2 840 113549 1 1
5)
: (PKCS #1)
579 05 0: NULL
: }
581 30 95: SEQUENCE {
583 31 11: SET {
585 30 9: SEQUENCE {
587 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
: (X.520 id-at (2 5 4))
592 13 2: PrintableString 'US'
: }
: }
596 31 23: SET {
598 30 21: SEQUENCE {
600 06 3: OBJECT IDENTIFIER
: organizationName (2 5 4 10)
: (X.520 id-at (2 5 4))
605 13 14: PrintableString 'VeriSign, Inc.'
: }
: }
621 31 55: SET {
623 30 53: SEQUENCE {
625 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
630 13 46: PrintableString
: 'Class 1 Public Primary Certification Authority'
: }
: }
: }
678 30 30: SEQUENCE {
680 17 13: UTCTime '000804000000Z'
695 17 13: UTCTime '040803235959Z'
: }
710 30 167: SEQUENCE {
713 31 23: SET {
715 30 21: SEQUENCE {
717 06 3: OBJECT IDENTIFIER
: organizationName (2 5 4 10)
: (X.520 id-at (2 5 4))
722 13 14: PrintableString 'VeriSign, Inc.'
: }
: }
738 31 31: SET {
740 30 29: SEQUENCE {
742 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
747 13 22: PrintableString 'VeriSign Trust Network'
: }
: }
771 31 59: SET {
773 30 57: SEQUENCE {
775 06 3: OBJECT IDENTIFIER
: organizationalUnitName (2 5 4 11)
: (X.520 id-at (2 5 4))
780 13 50: PrintableString
: 'Terms of use at https://www.verisign.com/RPA
(c)'
: '00'
: }
: }
832 31 46: SET {
834 30 44: SEQUENCE {
836 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
841 13 37: PrintableString 'Class 1 Public Primary
OCSP Responder'
: }
: }
: }
880 30 159: SEQUENCE {
883 30 13: SEQUENCE {
885 06 9: OBJECT IDENTIFIER
: rsaEncryption (1 2 840 113549 1 1 1)
: (PKCS #1)
896 05 0: NULL
: }
898 03 141: BIT STRING 0 unused bits
: 30 81 89 02 81 81 00 B9 ED 5E 7A 3A 77 5F CE 5F
: 3A 52 FC CD 64 F7 71 B5 6F 6A 96 C6 59 92 55 94
: 5D 2F 5B 2E C1 11 EA 26 8A CB A7 81 3C F6 5A 44
: DE 7A 13 2F FD 5A 51 D9 7B 37 26 4A C0 27 3F 04
: 03 6A 56 C1 83 2C E1 6F 5B A9 54 50 24 4A C6 2E
: 7A 4C A1 5B 37 54 24 21 31 1F A1 78 18 76 A7 B1
: 70 DA 22 D0 6A FE 07 62 40 C6 F7 F6 9B 7D 0C 06
: B8 4B C7 28 E4 66 23 84 51 EF 46 B7 93 D8 81 33
: [ Another 12 bytes skipped ]
: }
1042 A3 272: [3] {
1046 30 268: SEQUENCE {
1050 30 32: SEQUENCE {
1052 06 3: OBJECT IDENTIFIER
: subjectAltName (2 5 29 17)
: (X.509 id-ce (2 5 29))
1057 04 25: OCTET STRING, encapsulates {
1059 30 23: SEQUENCE {
1061 A4 21: [4] {
1063 30 19: SEQUENCE {
1065 31 17: SET {
1067 30 15: SEQUENCE {
1069 06 3: OBJECT IDENTIFIER
: commonName (2 5 4 3)
: (X.520 id-at (2 5 4))
1074 13 8: PrintableString 'OCSP 1-1'
: }
: }
: }
: }
: }
: }
: }
1084 30 49: SEQUENCE {
1086 06 3: OBJECT IDENTIFIER
: cRLDistributionPoints (2 5 29 31)
: (X.509 id-ce (2 5 29))
1091 04 42: OCTET STRING, encapsulates {
1093 30 40: SEQUENCE {
1095 30 38: SEQUENCE {
1097 A0 36: [0] {
1099 A0 34: [0] {
1101 86 32: [6]
'http://crl.verisign.com/pca1.crl'
: }
: }
: }
: }
: }
: }
1135 30 19: SEQUENCE {
1137 06 3: OBJECT IDENTIFIER
: extKeyUsage (2 5 29 37)
: (X.509 id-ce (2 5 29))
1142 04 12: OCTET STRING, encapsulates {
1144 30 10: SEQUENCE {
1146 06 8: OBJECT IDENTIFIER
: ocspSigning (1 3 6 1 5 5 7 3 9)
: (PKIX key purpose)
: }
: }
: }
1156 30 66: SEQUENCE {
1158 06 8: OBJECT IDENTIFIER
: authorityInfoAccess (1 3 6 1 5 5 7 1
1)
: (PKIX private extension)
1168 04 54: OCTET STRING, encapsulates {
1170 30 52: SEQUENCE {
1172 30 50: SEQUENCE {
1174 06 8: OBJECT IDENTIFIER
: ocsp (1 3 6 1 5 5 7 48 1)
: (PKIX)
1184 A6 38: [6] {
1186 16 36: IA5String
'http://ocsp.verisign.com/ocsp/status'
: }
: }
: }
: }
: }
1224 30 68: SEQUENCE {
1226 06 3: OBJECT IDENTIFIER
: certificatePolicies (2 5 29 32)
: (X.509 id-ce (2 5 29))
1231 04 61: OCTET STRING, encapsulates {
1233 30 59: SEQUENCE {
1235 30 57: SEQUENCE {
1237 06 11: OBJECT IDENTIFIER
: Verisign certificatePolicy (2
16 840 1 113733 1 7 1 1)
: (Verisign)
1250 30 42: SEQUENCE {
1252 30 40: SEQUENCE {
1254 06 8: OBJECT IDENTIFIER
: cps (1 3 6 1 5 5 7 2 1)
: (PKIX policy qualifier)
1264 16 28: IA5String
'https://www.verisign.com/RPA'
: }
: }
: }
: }
: }
: }
1294 30 9: SEQUENCE {
1296 06 3: OBJECT IDENTIFIER
: basicConstraints (2 5 29 19)
: (X.509 id-ce (2 5 29))
1301 04 2: OCTET STRING, encapsulates {
1303 30 0: SEQUENCE {}
: }
: }
1305 30 11: SEQUENCE {
1307 06 3: OBJECT IDENTIFIER keyUsage (2 5 29 15)
: (X.509 id-ce (2 5 29))
1312 04 4: OCTET STRING, encapsulates {
1314 03 2: BIT STRING 7 unused bits
: '1'B
: }
: }
: }
: }
: }
1318 30 13: SEQUENCE {
1320 06 9: OBJECT IDENTIFIER
: sha1withRSAEncryption (1 2 840 113549 1 1 5)
: (PKCS #1)
1331 05 0: NULL
: }
1333 03 129: BIT STRING 0 unused bits
: 70 90 DD B8 E4 BE 53 17 7C 7F 02 E9 D5 F7 8B 99
: 93 31 60 8D 7E E6 60 6B 24 EF 60 AC D2 CE 91 DE
: 80 6D 09 A4 D3 B8 38 E5 44 CA 72 5E 0D 2D C1 77
: 9C BD 2C 03 78 29 8D A4 A5 77 87 F5 F1 2B 26 AD
: CC 07 6C 3A 54 5A 28 E0 09 F3 4D 0A 04 CA D4 58
: 69 0B A7 B3 F5 DD 01 A5 E7 DC F0 1F BA C1 5D 90
: 8D B3 EA 4F C1 11 59 97 6A B2 2B 13 B1 DA AD 97
: A1 B3 B1 A0 20 5B CA 32 AB 8D CF 13 F0 1F 29 C3
: }
: }
: }
: }
: }
: }
: }
: }
Reporter | ||
Comment 7•24 years ago
|
||
I'm seeing a response that NSS deems to old to consider valid.
The following error code gets set
http://lxr.mozilla.org/mozilla/source/security/nss/lib/certhigh/ocsp.c#3015 with
the following values:
(gdb) print now
$11 = 993169576580836
(gdb) print nextUpdate
$12 = 993169571000000
(gdb) print producedAt
$13 = 993169571000000
Perhaps not making the producedAt value less than, but not equal to, the
producedAt value will fix their problem. (Once the patch I'm about to attach
lands.)
Reporter | ||
Comment 8•24 years ago
|
||
Comment 9•24 years ago
|
||
Reporter | ||
Comment 10•24 years ago
|
||
I tried disabling the one check that was failing as per discussion with thayes
and relyea and what I see now is if I step through the OCSP verification calls,
things seem to verify and occasionally https://www.verisign.com/ will load.
But if I just let the browser run and try to load the page without setting any
breakpoints, the load *always* fails.
There appears to be a fundamental problem in the depths of NSS that will prevent
a small thrown together patch from working.
My gut feeling is that we need to look more closely at what NSS is doing in
regards to the producedAt, thisUpdate, and nextUpdate fields to understand
what's going on.
Moving on to testing CRL's for now.
Comment 12•24 years ago
|
||
If we can't fix this before RTM, we'll need to release note it.
Keywords: relnote
Assignee | ||
Comment 15•24 years ago
|
||
The code that's failing is in ocsp.c at line 3015:
if (LL_CMP(nextUpdate, <, now) || LL_CMP(producedAt, >, nextUpdate)) {
PORT_SetError(SEC_ERROR_OCSP_OLD_RESPONSE);
return SECFailure;
}
When stepping through in the debugger, the variables producedAt and nextUpdate
have the *same* value and are less than the variable now. Is it possible that
NSS is decoding the nextUpdate field incorrectly or could VeriSign be returing a
bad value for this field? I will need help from someone in the NSS team to look
at the response from VeriSign in order to determine the value of the nextUpdate
field that's returned.
If I comment out the above check, then https://www.verisign.com loads
successfully.
Comment 16•24 years ago
|
||
OK, Terry looked up the relevant specs. Here are the meanings of the fields:
2.4 Semantics of thisUpdate, nextUpdate and producedAt
Responses can contain three times in them - thisUpdate, nextUpdate
and producedAt. The semantics of these fields are:
- thisUpdate: The time at which the status being indicated is known
to be correct
- nextUpdate: The time at or before which newer information will be
available about the status of the certificate
- producedAt: The time at which the OCSP responder signed this
response.
If nextUpdate is not set, the responder is indicating that newer
revocation information is available all the time.
2.5 Response Pre-production
OCSP responders MAY pre-produce signed responses specifying the
status of certificates at a specified time. The time at which the
status was known to be correct SHALL be reflected in the thisUpdate
field of the response. The time at or before which newer information
will be available is reflected in the nextUpdate field, while the
time at which the response was produced will appear in the producedAt
field of the response.
3.2 Signed Response Acceptance Requirements
Prior to accepting a signed response as valid, OCSP clients SHALL
confirm that:
1. The certificate identified in a received response corresponds to
that which was identified in the corresponding request;
2. The signature on the response is valid;
3. The identity of the signer matches the intended recipient of the
request.
4. The signer is currently authorized to sign the response.
5. The time at which the status being indicated is known to be
correct (thisUpdate) is sufficiently recent.
6. When available, the time at or before which newer information will
be available about the status of the certificate (nextUpdate) is
greater than the current time.
4.2.2.1 Time
The thisUpdate and nextUpdate fields define a recommended validity
interval. This interval corresponds to the {thisUpdate, nextUpdate}
interval in CRLs. Responses whose nextUpdate value is earlier tha
n
the local system time value SHOULD be considered unreliable.
Responses whose thisUpdate time is later than the local system time
SHOULD be considered unreliable. Responses where the nextUpdate value
is not set are equivalent to a CRL with no time for nextUpdate (see
Section 2.4).
The producedAt time is the time at which this response was signed.
---------------------------------------------------------------
Our code processes OCSP requests as follows:
/*
* Check that this single response is okay. A return of SECSuccess means:
* 1. The signer (represented by "signerCert") is authorized to give status
* for the cert represented by the individual response in "single".
* 2. The value of thisUpdate is earlier than now.
* 3. The value of producedAt is later than or the same as thisUpdate.
* 4. If nextUpdate is given:
* - The value of nextUpdate is later than now.
* - The value of producedAt is earlier than nextUpdate.
* Else if no nextUpdate:
* - The value of thisUpdate is fairly recent.
* - The value of producedAt is fairly recent.
* However we do not need to perform an explicit check for this last
* constraint because it is already guaranteed by checking that
* producedAt is later than thisUpdate and thisUpdate is recent.
* Oh, and any responder is "authorized" to say that a cert is unknown to it.
*
Given the spec, I believe our value checks are appropriate (producedAt should
always be between thisUpdate and nextUpdate [if it is given]). We could
formulate our checks somewhat differently, and we probably should discuss that,
but clearly the Verisign responses are out of spec and should be rejected
according to the spec. Verisign should either send a valid nextUpdate period
which is in the future, or not send a nextUpdate value. Otherwise all their
responces are invalid when sent..... so the question is how do we communicate
this back to Verisign?
bob
Assignee | ||
Comment 18•24 years ago
|
||
We should condider checking in Javi patch
(http://bugzilla.mozilla.org/showattachment.cgi?attach_id=39601) to find the
responder cert. The way things are now, the setting of a default responder will
always fail for a build in CAs because its cert retrieval fails.
Assignee | ||
Comment 22•24 years ago
|
||
Checked in Javi's patch to NSS 3.2, 3.3 and the tip. Updated the NSS_CLIENT_TAG
so that the client picks up this fix.
Reducing priority to P3, since there is nothing else engineering can do resolve
this since we believe this to be a Verisign problem. This bug should get
re-assigned to someone who can follow up with Verisign.
Priority: P1 → P3
Updated•24 years ago
|
Keywords: nsenterprise → nsenterprise+
Updated•24 years ago
|
Target Milestone: 2.1 → Future
Comment 23•24 years ago
|
||
Move to future. Won't have time to fix these for 2.1
Updated•24 years ago
|
QA Contact: ckritzer → junruh
Comment 25•23 years ago
|
||
I have tested the response from http://ocsp.verisign.com/ocsp/status with the
server certificate the site https://www.verisign.com will return.
According to the openssl 0.9.7 tool, the answer is valid and does NOT have a
nextUpdate field (wich means you can get a newer answer at any moment).
With 2002041803 under NT 4 accessing the site https://www.verisign.com with ocsp
checking enabled returns "Error trying to validate certificate from
ad.doubleclick.net using OCSP - corrupted or unknown response. Error Code -8073".
Manually configuring the OCSP responder ("Use OCSP to validate all certificates
using this URL and signer") did sometime change the result, but it was not very
consistant.
I also sometimes get the same error for the certificate
"verisign.webhost.newschannel.com".
I did a number of testing with the following constatations :
- With ocsp enabled, I can access to
https://www.verisign.com/images/001/ui/logo_verisignBtm.gif
without error. Page info tells me everything is OK in the page and the
certificate has been succsefully verified.
- With ocsp enabled, I can not access to
https://ad.doubleclick.net/viewad/377234/code_sign2_145x60_02_by.gif
I get the same error as above and the picture is not displayed.
Therefore the problem with the page https://www.verisign.com is in the links to
the pictures on ad.doubleclick.net inside it, not on the main page that verifies
succesfully.
The trouble is that both the certificate for www.verisign.com and for
ad.doubleclick.net are emitted by Verisign and exactly have the same URL
for OCSP checking.
I also tried to verify with a Verisign OCSP responder some personnal certificate
inside Certicate Manager and got an error "Could not verify this certificates
for unknown reason".
The OCSP responder log shows me four status requests have been answered positively.
Comment 26•23 years ago
|
||
I realised I did not test with the openssl ocsp tool what the ocsp answer is for
the ad.doubleclick.net certificate.
The answser is 5 byte long :
0x30 0x03 0x0A 0x01 0x06
and openssl interprets it as
Responder Error: unauthorized (6)
So the source of the problem is that despite the fact the certificate has an
AuthorityInfoAccess extension with OCSP, OCSP is not enabled for this CA and
Mozilla seems to fail to interpret correctly the "unauthorized" response.
Still I fail to verify personal certificates with Mozilla's OCSP, and the CA for
these certificates is OCSP enabled.
Comment 27•23 years ago
|
||
Looks like a dupe of bug 53205, which is marked worksforme.
Comment 28•23 years ago
|
||
This is the same problem as 130885 . The fix is in NSS, 141256 . The HTTP OCSP
parser had a bug that prevented the OCSP response from being read properly.
Marking duplicate.
*** This bug has been marked as a duplicate of 130885 ***
You need to log in
before you can comment on or make changes to this bug.
Description
•