eMudhra disclosed additional details related to the incident, as a result of which eight root certificates of the certification authority had easily selected private keys having only 1 byte of entropy instead of 48. In addition to the initially identified problematic intermediate 8 more root certificates are reported to have been revoked, but not due to entropy issues. The analysis showed that the source of the entropy problems was a Python script created on our own, used to transfer private keys between hardware key stores (HSM) from different manufacturers. The key migration was due to delays in the delivery of improved HSM models to meet new requirements for certificate authorities.
Due to an error, the size of ECDSA private keys was truncated to 1 byte. In addition, during the transfer of keys between HSMs, the script processed private keys in the unprotected RAM of the computer on which it was launched, while operations with private keys are prescribed to be carried out only within the HSM. HSM logs confirmed that the hardware storages worked correctly, and the problem was caused by the use of a homemade script.
In addition to ECDSA keys, the script was also used to transfer 8 RSA-4096 keys, with which there were no entropy problems, but processing keys in regular memory violates the security requirements for certification authorities, so RSA certificates have also now been revoked.