Closed
Bug 1401407
Opened 8 years ago
Closed 7 years ago
DigiCert: Mis-Issuance Rekey certificates
Categories
(CA Program :: CA Certificate Compliance, task)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: jeremy.rowley, Assigned: jeremy.rowley)
References
Details
(Whiteboard: [ca-compliance] [ov-misissuance] [ev-misissuance])
Attachments
(1 file)
90.96 KB,
application/vnd.ms-excel
|
Details |
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36
Steps to reproduce:
On Friday, Sep 15, we discovered that 1090 certificates were rekeyed using expired domain validation documents. In each case, the original certificate’s domain was properly verified at time of issuance using an approved method. Organization verification properly completed for each rekey prior to issuance. This means, to get a rekeyed certificate with expired validation data the following had to be true:
A. Unexpired organization validation information,
B. A previously issued, unexpired, and unrevoked certificate for the same domain as the rekeyed certificate,
C. Valid domain documentation for the original certificate at time of issuance, and
D. All necessary access and permissions on the account issuing the original certificate.
In parallel to the on-going investigation, we are reverifying the affected domains using one of the approved domain methods. So far, we have reverified 1021 of the 1090 affected certificates, leaving 69 domains outstanding. We are working with the domain owners to re-establish domain approval, but plan to revoke any certs that cannot be revalidated by end of this week.
1. How your CA first became aware of the problem (e.g. via a problem report submitted to your Problem Reporting Mechanism, via a discussion in mozilla.dev.security.policy, or via a Bugzilla bug), and the date.
[DC] We first became aware that there was a potential issue on Sep 14th during part of a routine internal review. We noticed some of the domain control validation documents were older than permitted under both the Baseline Requirements and EV Guidelines. On Sep 14th, we confirmed that rekeys in a validation system did not follow the proper path for verification of the timestamp associated with domain documents, instead using the timestamp of the domain documents on the original certificate. We patched our system early Sep 15th, preventing the system from further re-using expired domain documentation to rekey a certificate. Over the weekend, we worked on this report while revalidating domains associated with the misissued rekeys.
2. A timeline of the actions your CA took in response.
[DC] The same day the staff reported the potential issue, we began investigating the root cause. On Sep 15th, we confirmed that older validation code improperly reused domain validation when rekeying a certificate. We thought we patched this after the CAB Forum’s previous discussion on what constitutes a new certificate. If you recall those discussions, DigiCert mistakenly believed rekeyed certificates were considered the same certificate, not requiring domain reverification. The original system believed duplicate certificates and rekeyed certificates were identical to the original cert (despite a new serial number) and relied on a previously completed validation outside of the permitted reuse period. Ultimately, we decided to amend our issuance process because of the CAB Forum discussions but failed to properly communicate this requirement internally. Although most workflows were patched to follow our “new issuance” process, one workflow path was not. Validation documents properly expired in the system, preventing issuance of “new” certificate orders using expired documentation. All organization documents expired in the system according to the proper guidelines, blocking both new issuance and issuance of rekeyed certificates.
3. Confirmation that your CA has stopped issuing TLS/SSL certificates with the problem.
[DC] Confirmed. The system was patched on Sep 15th to require valid domain validation prior to rekey. This was within 24 hours of receiving an internal message about the issue and within two hours of confirming the issue’s existence.
4. A summary of the problematic certificates. For each problem: number of certs, and the date the first and last certs with that problem were issued.
[DC] 1090 certificate rekeys so far. Impacted certificates will be provided in the bug list and will also be available through CT (we’re still working on this part).
5. The complete certificate data for the problematic certificates. The recommended way to provide this is to ensure each certificate is logged to CT and then list the fingerprints or crt.sh IDs, either in the report or as an attached spreadsheet, with one list per distinct problem.
[DC] Provided as an excel file on the bug list (once compiled).
6. Explanation about how and why the mistakes were made or bugs introduced, and how they avoided detection until now.
[DC] The issue was intentionally introduced during DigiCert’s earlier days because of a mis-understanding by the original DigiCert team about whether rekeys constituted new issuance rather than duplication of a previous certificate. We thought we fixed the issue back when the CAB Forum discussed this topic, but apparently missed a work flow path. One mitigating factor is that all rekeys were initiated at the request of a previously verified and currently active account holder associated with the domains and a currently active certificate holder. Although the certificates had improper documentation, there was an active cert with the same name in each case.
Also note that all rekeys have the same expiration date as the original certificate, meaning the rekeyed certificate would expire the same time as the currently active, non-revoked certificate. Over the weekend, we revalidated 1021 domains, limited the non-verified pool to 69 domains. The error avoided detection because there was a misunderstanding by former DigiCert staff that all certificates, regardless of whether the certificate is a rekey, duplicate, modification, etc, requires domain verification completed within the established BR timeframe. The new team discovered this exception for rekeys during their routine code review.
7. List of steps your CA is taking to resolve the situation and ensure such issuance will not be repeated in the future, accompanied with a timeline of when your CA expects to accomplish these things.
[DC] Everyone is now fully aware that all certificates are “new” certificates, meaning they follow the same process regardless of whether the certificate is a duplicate, rekey, or modification. We’ve patched the system to remove this alternate work flow and prevent additional issuance without proper validation. We are currently revalidating the 1090 certificates. We are also deprecating this validation service in favor of a new, robust system. Although the system is still heavily used, a complete switch to DigiCert’s v3 validation services will occur early next year.
Updated•8 years ago
|
Comment 1•8 years ago
|
||
> On Sep 14th, we confirmed that rekeys in a validation system did not follow the proper path for verification of the timestamp associated with domain documents, instead using the timestamp of the domain documents on the original certificate.
I'm not sure I fully understand this - could you explain a bit more about this? I'm wondering if maybe you forgot a few words or phrased it incorrectly.
> but failed to properly communicate this requirement internally
This seems like an important part of the root cause. That is, the reuse of documents explains the what, but this begins to explore the why. It would be useful to continue unpacking this - you can get a sense of what I mean through a process like https://www.linkedin.com/pulse/use-5-whys-find-root-causes-peter-abilla
> but apparently missed a work flow path.
Similar/identical to the above, it's good to unpack this through several layers.
> will occur early next year.
It sounds like monthly updates on the progress would be a reasonable expectation.
Comment 2•8 years ago
|
||
Did any of the domain revalidations fail?
Gerv
Assignee | ||
Comment 3•8 years ago
|
||
No. None have.
Assignee | ||
Comment 4•8 years ago
|
||
Here's another go to try and answer Ryan's questions:
On Sep 14th, a routine review of our code revealed that we rekeyed 1090 certificates without updating the validation document. In each case, the domain validation documentation was outside the time frame permitted under the EV Guidelines and BRs. Basically, the system ignored the expiration date of the validation document if the original certificate was valid and the organization documentation was not expired. The system copied the validation documents from the original certificate, reusing it for the rekeyed certificate with an updated timestamp so everything looked perfect from the audit perspective. Note, that the expiration date of the documentation was not updated by the process so no new certificates could be issued except for additional rekeys of the original certificate.
Although we internally discussed the need to ensure all certificates followed the same validation path, regardless of how DigiCert originally classified them, this change was never fully implemented. Part of the reason was the people originally designing the code no longer worked at DigiCert. There was one workflow that was missed.
DigiCert originally categorized certificates into three types:
1. New issuance (changed domain, changed org, etc)
2. Duplicates (same cert, could be a new key)
3. Rekeys (new key but a revoked certificate)
4. Modifications (new org info)
After the CAB Forum discussion on the issue, we modified our systems to treat each cert as a new cert with respect to all validation. However, not everyone was on-board with the reclassification of "new". The rationale was that if the original certificate is still valid and unrevoked, why would it matter if a new cert was issued with the same expiration date with the same key (or a different key even) duplicate? This meant duplicates (under our definition) followed a different path from the other three.
In this case, the duplicate path was not properly patched because of a confusion on which of the four counted as a new certificate. Everyone was clear that the DigCert definition of Modification, New, and Rekey counted as new. However, duplicates was ambiguous. What happened is one path on one platform wasn't modified to require a proper domain verification refresh. This is where the certificate was rekeyed but classified as "Duplicate" because the cert wasn't revoked, modified, or expired. The communication from me was that, "All new certificates, including rekeys and modifications, should follow the same validation path." I thought this was industry-wide vernacular, meaning all certificates would use the correct process to expire and revoke certificates. As you can imagine, this left a gray area on duplicates, which is why one path remained unchanged.
Two of the reasons this was not properly communicated to the dev team is DigiCert didn't have a product team back then and multiple dev teams could touch the CA. Each of our handful of dev worked on the CA as necessary. Over the last coupled years, we restructured things to create a product team (lead by me) to ensure all products are properly defined, scoped, and built in compliance with the BRs. We also created a CA dev team that is the sole set of trusted developers who can touch and maintain the CA operations. This gives us tighter control over CA changes and assurance over the BR compliance. I realize sometimes I'm not as precise as I should be (this thread is case in point), so we have multiple individuals involved in making sure we are correctly distilling BR requirements into dev projects. I think you know Clint Wilson, who is one of these primary people. He's awesome.
Happy to give monthly updates on our new validation system roll out.
Assignee | ||
Comment 5•8 years ago
|
||
As an update - Of the 1090, we revoked five certs where we couldn't reverify or reach the original requester. I'm still working on getting them all submitted to CT logs. We've also finished a complete scan of all certs to see if any other followed this same path. Should have that data posted soon.
Assignee | ||
Comment 6•8 years ago
|
||
The five revoked certs were:
*.kit.nl; 0723B1BD0770FF40C5D6C2DA8C5C1B74
*.txunited.com; 0DB4EE06CB0ADBCD9C55677B740BDAFB
mh.bcpss.org; 0DA7E6A98FEF93BDD2EB38BEE615C10F
www.bcpss.org; 077AE974560C75041A26B5030C39110A
*.lindquist.com; 08893A184CECCF928C615E6C0690B358
Of these five, three were replaced after the domain owner completed the appropriate verification. Two never replied post revocation.
Assignee | ||
Comment 7•8 years ago
|
||
Our finished scan showed a total of 2739 certs issued with expired domain validation, including the 1090 previously reported. We are currently working through the remaining certs to re-verify the domain with the contact owner. All the certs should be uploaded to CT this next week. Anything that doesn't complete re-verification will be revoked by end of week.
Assignee | ||
Comment 8•8 years ago
|
||
I should clarify that last number. There were actually 4263 certs issued with expired domain validation docs. However, only 2739 were not reconfirmed post-issuance through an approved domain validation process.
Assignee | ||
Comment 9•8 years ago
|
||
Assignee | ||
Comment 10•8 years ago
|
||
All certs have been added to the CT database. We're still working through the remaining cert validations.
Comment 11•8 years ago
|
||
Hi Jeremy: any update?
Gerv
Assignee | ||
Comment 12•8 years ago
|
||
We're still working through them. Down to 187 certs left. If it's okay with Mozilla, we plan to revoke any certs not re-validated and publish a list here of the revoked certs.
Assignee | ||
Comment 13•8 years ago
|
||
Getting a final list today. I've been out for a few days. Should have an updated before tomorrow morning.
Assignee | ||
Comment 14•8 years ago
|
||
There were a total of 112 certs revoked in batch 2. These were:
0B16173E70A77C813D31ACB3D8A3A758
011DA9E0DB948D26B7149A1E286386B9
0FE07A1FAF30382668AB178C349F7A11
083FF3CD2CA49899C5B8C1030D6D1DAC
08B7BB24AE4791588E42E5E208570D2D
0EF25D5BD659A57E0423B810D70D4FD1
0CE817F028571741BE47E91D405630FE
0792B0E7A03F3867E6C87B4003FFA7C8
0BC2C8341F3B3E3E604850B1D682168E
06264731F6D8C646ECCD56CEBD17331E
07A7171B50D04DB104330354ACD2575B
0DEAFEAF60D2D6BEDE235E977BE948B6
053DB7E60AF762655EEE4FBBC072ED63
014CF2DC4D2DDEC0DAA9EEDC7F864F42
03E6186B8F0A625C1D045079BDFEF87A
04A4EB0D4A4E461F95EC2136C36AFF9A
082C5D15FBD271866FBFEA3B3366C772
08F530AC337B02F78890BB1A3DD8F409
06E6C0811963A6FAA4379F46793C6D50
0A2E88E1D6629FFEDCD8FB058A8FA34F
0C87BF037D10554C1FDA366A696608B8
02877CB3B4F134492E0282E7DD88D855
051F2BF1BEFF65B4C6431227E5B6846E
08F7F0A3A1A9A4E7808ED0E93EF2477C
07A08FE896A9318174AA75F4E3E8BA15
07BFA228273BDA9DA30C96972766CBD5
071E58BA0ACD27B4FE457F80F8326B77
0F70B65591CC3D117B6F125365436C2D
0147C96BFC47ACF0B47DBB366F500935
0F5B546E2F298BAC942E920E4BE060E6
06B7F2A131108365CBE9F907DA487464
0764339FFFBC112E6A11A3EA6951A0B8
0BC831A9DD805823F23A73F3448BDD50
01E55C5545427F1B74082391065B63D1
088C4C2426D3E266E42213BCC9859C6D
01EFE817490585A145A7C3FB0D2830E4
0EAB6AA1428D813BF4B7B17B33872D69
0AE93E37840AD02D760E12C644CAEEC8
0E7760CDE9CD8748A31FFA61FF36DD6C
0E804AAA888ED5E6BD1FCF785F4DD478
08E633A25941C43A71CF5E5F8FE12544
08EBA31B4366832B887AFC6A8A552A4E
08506E6A7ABD57D9FD525DE0C8CC0C07
0EF76DD337DF21CE5FD290D06550488E
05105BA127B7A38B78F68AC0DE3BDDCE
069B0F9BBB2C3280BECC88B6BDF99DCE
0DDC135384657DAF62100C5768D4A005
021821DE8D1CDA26C4E689A60DA99AE1
0A69296189531434050FDAE8A6370EEA
068EF1B10A80A05B13E66F3E072F6EA7
09AF2946931CC82080DF9B453E987C4A
067D00875D52855DCF4570DB183E129B
09E17843F89A33B6AF66677C59C861F1
034FE5578BEFC9F38AADE7E283B68D73
0ADDE0DB2D1996006B5AD28E3734F69F
0D1239374198DFC838D87D48FB6B8C12
0540DE52340042EF417DAD7AFE461A65
0CC740D25F1166E72F387250406332B3
0F14BDD2BE6255FDCF8469FFDB41031E
036D0B115A333782654C5BB611955A64
0160AFC5A87D6EF2BD8CF4587A6FC3FF
0E163A808E49F75EB57FBC760D800822
0B504E6903E0AE625149AA09A4F577FD
06C02FF6AA890EE985377E2D77B9EF8F
0B95245A2AF082FFCC411C82A1F4206F
0FEA84BC54D5ADD63B04649B2202C474
0A9EE30403B5B27EECE1AA276C062435
04A283D6343DB2B210F916485B1EFEE1
0A04A889589E7441AD8149FF74A7F3B7
049267659953BE82C238A1753F47259A
05D0336A1C9EBD34CA2C3ADA85278501
07C09D6BEDBC35881B76E62CE589ABF8
08045AB95FCE4AE150F9308D0C1AFF88
05AEE06CD57CAB3EF6F384C5E478D65D
0B8B95B00F89C1FE809D790931EC84F1
0E147A71ABB11647D6907B0ADF5023FB
0F93A3A5BE4C1845A200F766CD27B266
0D33DB724006FE0FC5705678A8155754
03B0A05803C01B69734370400E8DD535
020C15650531CEB365A5C59A6D142983
081667C64E6B9EC73E2A08A856058840
09B9B6AE8DE9F2FDD275F6D9EEA8CA93
09679CE2B71AC50DD8860E14B1536B90
0F65941F8CA0A3C1541C3DD91A16B733
0D45C69B92444769D576B09EEA7B524A
0FF93AB347B592C1DF120AA8BA11EACB
0B20027304CF1AAE53E46FA9D060C64B
0AC2487E90C6B801BF4D93071E3BE2E5
0716460C11DBBC2F6AEF58654B7BD1BD
0ACFFA538CE299C99F3B9E208DAD501E
0AD7A3043EF8338219B861411943438D
0D470E6CAE991B0C9B9575397A908A1D
0F8E24863BDE865AB8ABE91AD600BD98
05E6C6E360450EE95E0122ACDD6BED77
0EBC8F87AFB816BD6BCB819395F70258
01C9F74C0B9DB09AA847AE88B6B0DAEC
03D9FDB5900240AC0796F850D7709C39
0C8F0FFB9C38A9BCE391878A2DB1F45A
06A250C383E24F6E518EBFA5FBDC8CF4
07D8EEFEFB6B01221B991306A078D83C
07A178D74D822AC1A30E660B1550E72D
01A99AEF9863F5C7CC8974CE05266E7B
0FEDD796AC819F3C8A88F3D113E7043D
07E411383AECE2C935981250332F6CB7
07F7AB085C359850DFA64959FE511C6C
0EEC33C7C7DFD0FB525870453605776B
04502B83A53C9E9F542D45EE36FAA3B3
098443FFEF060C4CF09CE388553DAD5C
0A7E0C4ABFC6A816E05FD924EC0B2977
02A1D7B69D1EEB4C08224824E9DF120A
054D780912A3CAFC04B3701DB7EA6CBE
011A732559FA97400441E4C17A937FEF
This issue is complete minus the updates to our validation system. The status on that is that v3 is still being rolled out. The Symantec acquisition has temporarily delayed customer migration while we finish integration with various APIs.
Comment 15•7 years ago
|
||
Jeremy: please provide an update on the validation system improvements.
Flags: needinfo?(jeremy.rowley)
Updated•7 years ago
|
Whiteboard: [ca-compliance] → [ca-incident] - Need remediation status
Assignee | ||
Comment 16•7 years ago
|
||
They are pretty much done. We've got migration to it planned for everyone by the end of this year with all of the former Sym customers transferred over already. The transfer of remaining is going to happen in phases in Q1, Q2, and Q3. At that point, there will be a single point for all validation and issuance.
Flags: needinfo?(jeremy.rowley)
Comment 17•7 years ago
|
||
All certificates have been remediated and system updates are in place, so I'm closing this out.
Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Updated•3 years ago
|
Product: NSS → CA Program
Updated•3 years ago
|
Summary: DigiCert Mis-Issuance: Rekey certificates → DigiCert: Mis-Issuance Rekey certificates
Updated•2 years ago
|
Whiteboard: [ca-incident] - Need remediation status → [ca-compliance] [ov-misissuance] [ev-misissuance]
You need to log in
before you can comment on or make changes to this bug.
Description
•