New Alpha Release: Vault 0.1.0
Source Code
NOTE:This writeup doesn't contain information about all the components involved in the operations; it focuses solely on the Vault and the client devices.
The Vault is a technology developed by the SMSWithoutBorders team to secure users' access tokens and facilitate the secure usage of these tokens for publishing users' messages. It leverages the Double Ratchet Algorithm to ensure secure communication between the sending device and the publishing server. The Vault has undergone significant evolution to reach its current state.
Key Features
- End-to-End Encryption: Devices exchange keys using X25519(Curve25519) for secure communication with the Vault.
- Device Identification: Each device is uniquely identified using a device_id generated from the key exchange.
- Double Ratchet Algorithm: Ensures message confidentiality and forward secrecy.
How it Works
The Vault utilizes the smswithoutborders_libsig Python library for cryptographic operations.
X25519 for Key Exchange
To be identified and communicate securely, a device must perform two X25519 key exchanges with the Vault:
1. For Generating an Identity (Device ID): Refer to the specification.
2. For Communication: Encrypting and decrypting messages using the Double Ratchet Algorithm.
Communication Using The Double Ratchet Algorithm
Messages sent from an authenticated device are encrypted using the Double Ratchet Algorithm and can be decrypted by the Vault using the same algorithm.
Considerations
- Transmission via SMS: End-to-end encryption between the device and the Vault ensures that no unauthorized party can read the content in transit.
- Security: The use of the Double Ratchet Algorithm provides forward secrecy and ensures that even if one session is compromised, it does not compromise future sessions.
- Authentication: Devices are authenticated using their unique device_id, computed from the initial key exchange, ensuring that only authorized devices can communicate with the Vault.
Changelog
Added
- gRPC service communications.
- Device Identification (device_id).
- End-to-End Encryption.
Contributors
A big thank you to the following contributors for their valuable contributions to this release:
- Promise Fru: Implementation of gRPC service and core cryptographic technologies.
- Wisdom Nji: Development of smswithoutborders_libsig Python library.
Feedback
Your feedback is crucial to us! If you encounter any bugs or have suggestions on how we can improve this release, please let us know.