Data encryption in VIPole is always performed on the client side, and encryption keys are available to the user only. Data is transmitted encrypted to the web and to the server, and only the user can decrypt it. Therefore, no third party, including the service provider, can intercept or disclose the user data.
VIPole uses strong cryptographic algorithms for data protection:
- AES-256 for symmetric encryption;
- RSA with 3072 bit key for asymmetric encryption.
All messages are sent and stored on the server in secured VIPole containers. VIPole encrypted container includes symmetric and asymmetric encryption blocks and is based on the principle similar to S/MIME e-mail protection algorithm.
- Protected data is encrypted with the symmetric algorithm using a one-time key of the container symmetric encryption;
- VIPole ID of the sender , a one-time symmetric encryption key is encrypted with the asymmetric algorithm using the public key of the sender
- VIPole ID of the receiver , a one-time symmetric encryption key is encrypted with the asymmetric algorithm using the public key of the receiver.
The original message is encrypted symmetrically (AES-256) using a one-time encryption key. The one-time encryption key is then encrypted asymmetrically (RSA) using the sender’s and the receivers’ public keys. Therefore, only the sender and the receivers can decrypt the one-time key with their private keys and then decrypt the message.
Encryption key management
Data protection level is defined not only by the encryption algorithm being used, but also by the system of creating, storing and transmitting encryption keys.
The core feature of VIPole security system is that only the users have access to the keys for decrypting their data. This is why no one else, including VIPole employees, is able to read the user data that is transferred and stored in the system.
Purpose | Origin | Storage | Who has access | |
---|---|---|---|---|
User password | Client access to VIPole server. Access to the account on VIPole website. | Created by user during sign up or when changing password. | Hashed on the server. Hashed on the device in the encrypted database. | User Server |
One-time symmetric encryption key for secured VIPole container | Encryption of secured data using the symmetric encryption algorithm. | Generated automatically for each secured VIPole container. | Encrypted in secured VIPole container. | The sender of the secured VIPole container. The receivers of the secured VIPole container. |
User’s public key | Encryption of one-time symmetric encryption keys for the secured VIPole containers. | Generated by the user together with the private key when creating the profile. | On the server. On the user’s device. In the contact lists of the users. | All users from the contact list |
User’s private key | Decryption of one-time symmetric encryption keys for the secured VIPole containers. Decryption of other data, asymmetrically encrypted with user’s public key. | Generated by the user together with the public key when creating the profile. | Encrypted on the server. Encrypted on the user’s device. | Only the user |
User’s secret phrase | Decryption of user’s private key | Generated by the user when creating the profile | Is not stored anywhere | Only the user |
Data transmission
VIPole protects all transmitted data from interceptions and eavesdropping. Along with transferring data in secured containers, VIPole additionally protects data transmission channels.
VIPole uses two types of channels:
- Client-server connections – basic connection to VIPole server, enabling all client-server interactions;
- Direct user-to-user channels for voice and video transmission.
Connection | Connection type | Connection establishment |
---|---|---|
Basic connection to the server | VIPole protocol via protected TLS connection |
|
Channels for voice and video calls | VIPole protocols |
|
Data storage
VIPole stores all user data encrypted both on devices and on the server. Chat history, files and account information are stored in local encrypted databases on users’ devices.
Database encryption master key is generated at the database creation and is stored only on the device. The key is stored encrypted; the secret phrase and the private key of the user are used to decrypt it.
Data type | Transmission format | Data storage format on VIPole server | Data storage format on devices |
---|---|---|---|
Text messages | Secured VIPole container | Secured VIPole container | Secured VIPole database |
Data stored in organizer and password manager, notes and tasks | Secured VIPole container | Secured VIPole container | Secured VIPole database |
Voice and video communications | Secured VIPole channels | data is not stored | data is not stored |
Files | Encrypted VIPole blocks in the special format | Encrypted VIPole blocks in the special format | Encrypted VIPole blocks in the special format |
Encrypted database on the device
Each page of the user profile database is encrypted with the AES-256 symmetric encryption algorithm using a one-time key.
Key management | Access |
---|---|
|
|
Secure file storage
VIPole ensures the uniform protection for all user data stored in VIPole and transmitted via VIPole. Encryption is applied to files transferred via VIPole as well: files are not only transmitted encrypted, they are also stored encrypted on VIPole servers and on the devices of the users.
Special VIPole virtual drives are used for working with encrypted files on the user device. These drives are used to decrypt files when working with them in any program on the device.
Encryption keys | Access | |
---|---|---|
Storage on the server Each file is splitted into blocks, each block is symmetrically encrypted using a one-time encryption key |
|
|
Storage on the device Each file is splitted into blocks, each block is symmetrically encrypted using a one-time encryption key |
|
|