Oct 2024 - Nov 2024
Backend Developer - Golang
Encryption & Security Platform
Encryption Web is a backend platform designed to manage secure file uploads, encryption, and digital signature verification. The platform utilizes both symmetric and asymmetric encryption to ensure the confidentiality and integrity of user data. HashiCorp Vault is used for secure key management, making the system robust and scalable for handling sensitive operations like file access requests and signature validation.
The system was designed with a focus on security and performance. Symmetric and asymmetric encryption techniques were implemented to handle different types of data and security requirements.
Postman documentation for the API is available here
Auth:
POST /register
: Register a new user.POST /login
: Login and obtain a token for authentication.GET /me
: Retrieve user profile data.File:
POST /file
: Upload an encrypted file.GET /file
: Retrieve a specific file (after successful access request).GET /files
: Get a list of all files uploaded by the user.GET /files/{user_id}
: Get all files from another user.File Request:
GET /request/{file_id}
: Check status of user request for file access.POST /request/access
: Request access to a file.GET /request/approval
: Get a list of access requests pending approval from the file owner.POST /request/accept
: Accept an access request for a file.Signature:
POST /sign
: Sign a file with a digital signature.POST /verify
: Verify a digital signature for authenticity.The development process followed a security-first approach, focusing on building the encryption and digital signature verification functionality early on. After implementing core security features, I collaborated with the frontend team to ensure proper integration of file handling and signature verification APIs. The iterative process also involved extensive testing to ensure the robustness of encryption operations and access control flows.
Key technical decisions included selecting the appropriate encryption algorithms for different use cases and leveraging HashiCorp Vault for encryption key management to avoid security pitfalls associated with hardcoded keys.
Implementing secure encryption mechanisms and efficient management of digital signature verification while ensuring data integrity and access control.
Leveraged HashiCorp Vault for secure encryption key management, implemented both symmetric and asymmetric encryption for file and signature operations, and designed a flexible access control system for file requests and signature verification.