0

[Open Source] #104 - AliasVault: Hệ thống quản lý mật khẩu Zero-Knowledge tích hợp Email Alias với .NET, React và kiến trúc bảo mật đa tầng

Trong kỷ nguyên số, việc lộ lọt dữ liệu thường bắt đầu từ địa chỉ email thật và mật khẩu yếu. AliasVault không chỉ đơn thuần là một trình quản lý mật khẩu (Password Manager); nó là một giải pháp bảo mật toàn diện cho phép tạo danh tính ảo (Identities) và quản lý email alias ngay trong một nền tảng duy nhất. Với triết lý "Zero-Knowledge", AliasVault đảm bảo rằng ngay cả nhà phát triển hệ thống cũng không thể tiếp cận được dữ liệu của người dùng.

Dưới góc độ kỹ thuật, AliasVault là một Case Study xuất sắc về việc xây dựng hệ thống đa nền tảng (Web, Extension, Mobile) sử dụng hệ sinh thái .NET, React và các giao thức mã hóa tiên tiến nhất hiện nay.

Github: https://github.com/AliasVault/AliasVault


🛠️ 1. Nền tảng công nghệ: Sự giao thoa giữa .NET và Modern JS

AliasVault tận dụng tối đa sức mạnh của cả hai thế giới: Backend hiệu năng cao và Frontend linh hoạt.

  • Backend Core (.NET 8): Sử dụng C# để xây dựng hệ thống API, Admin Portal và đặc biệt là một Custom SMTP Server. Việc tự viết SMTP Service cho phép AliasVault xử lý các luồng email alias một cách chủ động và bảo mật tuyệt đối.
  • Frontend Web (Blazor WASM & React): Một sự kết hợp độc đáo. Phần Client chính sử dụng Blazor WebAssembly để chạy mã C# trực tiếp trên trình duyệt, trong khi Browser Extension được xây dựng bằng React và framework WXT (hỗ trợ Manifest V3).
  • Mobile (React Native & Native Modules): Sử dụng React Native để đạt hiệu suất đa nền tảng, nhưng vẫn viết các module Native (Kotlin/Swift) để xử lý các tác vụ nhạy cảm như Biometric UnlockAutofill Service.
  • Hybrid Database: Sử dụng PostgreSQL ở phía Server để lưu trữ các blob dữ liệu đã mã hóa và SQLite (Wasm) ở phía Client để quản lý Vault cục bộ, giúp tăng tốc độ truy vấn mà không cần giải mã toàn bộ database mỗi lần sử dụng.

🏗️ 2. Trụ cột kiến trúc: Bảo mật Zero-Knowledge và SRP

Kiến trúc bảo mật của AliasVault được xây dựng trên nguyên tắc "Không bao giờ tin tưởng Server":

  • Key Derivation (Argon2id): Master Password của người dùng không được lưu trữ. Nó được đi qua thuật toán Argon2id (thuật toán thắng giải Password Hashing Competition) với chi phí tài nguyên cao để tạo ra Encryption Key cục bộ.
  • SRP (Secure Remote Password) Protocol: Đây là điểm sáng kỹ thuật. AliasVault sử dụng giao thức SRP để xác thực người dùng. Client chứng minh với Server rằng mình biết mật khẩu mà không cần gửi mật khẩu (hay thậm chí là hash của mật khẩu) qua mạng.
  • Hybrid Encryption (AES-256-GCM & RSA):
    • Dữ liệu mật khẩu được mã hóa đối xứng bằng AES-256-GCM.
    • Dữ liệu Email Alias được mã hóa bất đối xứng. Server nhận mail, dùng Public Key của người dùng để mã hóa nội dung trước khi lưu. Chỉ người dùng giữ Private Key (nằm trong Vault) mới có thể đọc.

🔄 3. Workflow: Quy trình xác thực và giải mã Vault (Sequence Diagram)

Sơ đồ dưới đây mô tả cách AliasVault thiết lập kết nối an toàn và giải mã dữ liệu tại Client:

image.png

⚡ 4. Các kỹ thuật "Pro-level" trong mã nguồn

  1. WebAuthn/Passkey Interception: Trình duyệt Extension có khả năng "đánh chặn" các yêu cầu Passkey của hệ thống để thay thế bằng trình quản lý của AliasVault, cho phép đăng nhập không mật khẩu trên mọi thiết bị.
  2. QR-based Mobile Unlock: Kỹ thuật cho phép thiết bị di động (đã mở khóa) chia sẻ Encryption Key cho trình duyệt Web thông qua mã QR và kênh truyền tin mã hóa đầu-cuối (E2EE), giúp đăng nhập trên web mà không cần nhập Master Password dài.
  3. Built-in Identity Generator: Tích hợp bộ thư viện shared-logic để tạo ngẫu nhiên các danh tính đầy đủ (Tên, địa chỉ, ngày sinh) dựa trên các bộ từ điển ngôn ngữ, phục vụ cho việc đăng ký tài khoản ẩn danh.
  4. Offscreen Documents (Chrome MV3): Sử dụng tài liệu ẩn để thực hiện các tác vụ nền như tự động xóa Clipboard sau 30 giây, đảm bảo tuân thủ nghiêm ngặt các giới hạn bảo mật mới nhất của Google Chrome.

⚖️ 5. So sánh chiến lược

Tiêu chí AliasVault Bitwarden Proton Pass
Email Alias Tích hợp sâu (Self-hosted SMTP) Qua bên thứ 3 (SimpleLogin) Tích hợp (Proton Mail)
Giao thức Auth SRP (Cực an toàn) PBKDF2 + Hash SRP
Giao diện Client Blazor + React C# / Angular React / Go
Self-hosting Hỗ trợ toàn diện (Full Stack) Hỗ trợ Hạn chế

✅ Kết luận: Tại sao AliasVault đáng để nghiên cứu?

AliasVault không chỉ là một công cụ tiện ích, nó là một bài học về việc thiết kế hệ thống xoay quanh quyền riêng tư. Dự án cho thấy cách kết hợp các ngôn ngữ lập trình khác nhau (.NET, JS, Kotlin, Swift) để tạo ra một trải nghiệm người dùng liền mạch nhưng vẫn duy trì các tiêu chuẩn mã hóa quân đội.

Đối với các lập trình viên, nghiên cứu AliasVault giúp hiểu sâu về:

  • Cách triển khai giao thức SRP trong thực tế.
  • Kỹ thuật xây dựng Web Extension hiện đại với Manifest V3.
  • Tư duy Shared-logic giữa Mobile, Web và Backend để tối ưu hóa code.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí