Locker sử dụng thuật toán mã hóa AES-256-CBC để mã hóa kho dữ liệu bí mật và thuật toán PBKDF2 SHA-256 để khởi tạo khóa cho AES-256-CBC.
Locker luôn mã hóa và/hoặc băm dữ liệu của bạn trên thiết bị cục bộ của bạn trước khi gửi bất kỳ thứ gì đến máy chủ để lưu trữ. Máy chủ Locker chỉ được sử dụng để lưu trữ dữ liệu đã được mã hóa. Kho dữ liệu bí mật chỉ có thể được giải mã bằng khóa khởi tạo từ Mật khẩu chính của bạn. Locker là một giải pháp zero-knowledge, nghĩa là bạn là người duy nhất có quyền truy cập vào khóa và giải mã dữ liệu trong Kho dữ liệu bí mật của bạn.
Quá trình mã hóa dữ liệu của người dùng chỉ được thực hiện khi và chỉ khi việc xác thực tài khoản đã thành công trước đấy. Ý tưởng chính của quá trình này gồm:
- Client lấy Encrypted Symmetric Key từ máy chủ Locker.
- Client dùng Master Password do người dùng nhập vào để tạo ra Stretched Master Key.
- Client dùng Stretched Master Key và thuật toán AES-CBC-256 để giải mã Encrypted Symmetric Key, thu được Symmetric Key.
- Client mã hóa dữ liệu được người dùng nhập vào, Vault Item (ví dụ như password, thông tin credit card, thông tin định danh người dùng…) bằng thuật toán AES-CBC-256 và khóa là Symmetric Key.
- Client gửi dữ liệu đã mã hóa, Encrypted Vault Item, thu được lưu vào máy chủ Locker.
Chi tiết quá trình mã hóa dữ liệu được mô tả ở hình dưới đây.