What are secrets?
In software, secrets are usually random character strings used to authenticate one system against another. These secrets are the basic building blocks of digital trust, enabling secure access to protected data and services. Much like a password (plus a device in the case of 2FA) is used to authenticate a person, a secret authenticates systems to enable interoperability.
However, they can be exploited and cause damage if they fall into the wrong hands.
For example, when a software program needs to query data from another program, it must provide a unique credential. This allows the data holder to identify who the program is and whether they are authorized to interact with it. In most cases, anyone with the same credentials can access the same data and potentially steal, maliciously alter, or destroy it. A key challenge in software development is granting the right people and processes the access to the secrets they need while ensuring those secrets don’...