Motivation
HashiCorp Vault is the most widely used secret management product in cloud native realm. But in practice, it has some disadvantages:
- Open-source license is not OSI-approved any more;
- Lack of cryptography compliance ability except FIPS, including:
- cryptography algorithms
- cryptography validations in other countries and regions
- Inadequate cryptography performance especially in critical scenarios;
- Many useful features are not open-sourced
- ...
And compared to Hashicorp Vault, there is rare open source key/secret management project available in the market. Thus, we started a new open source project to address the issues.
The new project needs to fulfill most features the a traditional KMS has. It also needs to be a replacement for Hashicorp Vault, with the features that even are not included in the open source versions of Vault. As such, the new project should be:
- Written in Rust to achieve memory safe
- Fully compatible with Hashicorp Vault on APIs and data format
- Configurable underlying cryptographic module
- High performance on cryptography operations
- High availability
- Support for underlying cryptography hardware
- OSI-approved open-source license
Requirements List
Language: Rust
Project Name: RustyVault
Features:
- API
- RESTful
- Compatible with Hashicorp Vault
- gRPC (low priority)
- RESTful
- User and Authentication
- X.509 based authentication
- Password based authentication
- Basic ACL
- Role based secret management
- Configuration
- Support configuration file
- Dynamic reload
- PKI/CA
- X.509 issuing: RSA/ECC/SM2
- X.509 revocation: OCSP, CRL
- Key Management
- Symmetric: generation/storage/rotation
- Public key type: RSA/ECC/SM2
- Cryptography Algorithm
- Symmetric ciphers: AES, SM4
- Public key algorithms:
- Signature: RSA/ECDSA/EdDSA/SM2/Ring Signature
- Encryption: RSA/SM2
- Digest: SHA1/SHA2/SM3
- Advanced Cryptography Algorithm
- PHE: Paillier, EC-ElGamal
- ZKP: Bulletproofs
- Post Quantum Cryptography
- Hardware Support
- Acceleration card or CPU instruction sets
- HSMs
- Cluster and HA
- Active - Active mode
- Storage
- local disk
- etcd/consul...
- Logging and Audit
- TBD