This API provides secure, permission-based access control for files stored in Google Drive by integrating cryptographic techniques with group-based authorization.
-
Access Control Mechanism:
Implements group-based access permissions, where users are assigned to groups managed via a PostgreSQL database. Each group is associated with specific access rights to encrypted files. -
Cryptographic Architecture:
- RSA (asymmetric encryption) is used for secure key distribution. Each group or user has an RSA key pair, ensuring that only authorized entities can decrypt the symmetric AES keys.
- AES (symmetric encryption) is used for actual file encryption, ensuring fast and secure data protection at rest.
-
File Handling:
Depending on the user's group membership and associated permissions, files retrieved from Google Drive are either:- Decrypted on-the-fly using the appropriate AES key (if access is granted), or
- Displayed in their encrypted form (if access is denied), preventing unauthorized disclosure.
-
Security Model:
Ensures confidentiality through a hybrid encryption scheme (RSA + AES), and enforces strict access control via database-managed group associations.