Audit of drand Timelock Encryption

The Drand team at Protocol Labs recently released a timelock encryption based on the Drand threshold network run by the League of entropy. This timelock encryption construction ensures a ciphertext will be decryptable only after some specified time has passed and not before. The cryptographic construction of the timelock encryption was recently presented in depth during the Real World Cryptography conference

Kudelski Security was engaged to audit the implementation made by Protocol Labs for timelock encryption and timelock responsible disclosure service. The security assessment considered:

  • tlock, the Go language implementation of the command line tool to perform timelock encryption.
  • tlock-js, the implementation in TypeScript of timelock encryption and age encryption.
  • timevault, the web interface for the time vault for encryption of vulnerability reports. A up-to-date version is running at https://timevault.drand.love/.
  • Part of some dependencies directly used by timelock encryption.

The audit was mainly focused on the protocol security as well as protocol specification matching the paper. During our assessment, we found:

  • 1 High severity issue
  • 5 Medium severity issues
  • 3 Low severity issues

All of the issues have been corrected at the time of writing the post and the details are available in the audit report available on IPFS with CID QmWQvTdiD3fSwJgasPLppHZKP6SMvsuTUnb1vRP2xM7y4m

During our audit, we reported a bug in the Date function of the Go Language. We used the timevault tool to disclose the bug and reported in a previous post.

We thank Protocol Labs for trusting us, for their availability throughout the assessment and the nice collaboration.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s