Bảo mật

Parla làm việc với micrô của bạn, nên được thiết kế để khó bị lạm dụng. Giọng nói của bạn không bao giờ rời khỏi thiết bị, tiện ích xin ít quyền nhất có thể, và mọi đoạn mã chúng tôi phát hành đều được cố định phiên bản, quét và kiểm thử trước khi đến tay bạn.

Khi bạn dùng Parla

  • Giọng nói của bạn được làm sạch ngay trên thiết bị, bên trong trình duyệt. Parla không có máy chủ nào nhận âm thanh, cũng không có tài khoản hay mật khẩu nào có thể bị đánh cắp.
  • Công cụ xử lý là mã của chính chúng tôi, viết bằng Rust không dùng thư viện bên thứ ba, và chạy dưới dạng WebAssembly trong môi trường cách ly (sandbox) của trình duyệt. Các mô hình AI là dữ liệu (các con số), không phải chương trình: không có mã nào của tác giả mô hình chạy trên máy tính của bạn.
  • Tiện ích chỉ xin những gì cần để làm sạch micrô: lưu cài đặt của nó và chạy trên các trang mà bạn dùng micrô. Các trang riêng của tiện ích chỉ chạy script của chính chúng (Content Security Policy nghiêm ngặt).
  • Các trang web chỉ giao tiếp với tiện ích qua một kênh hẹp: chúng chỉ nhận được các tệp của công cụ xử lý, không gì khác, và mọi thứ chúng gửi đều được kiểm tra và giới hạn kích thước.
  • Báo cáo luôn tắt cho đến khi bạn bật. Báo cáo là ẩn danh, và mọi trường dữ liệu đều được liệt kê trong tài liệu của chúng tôi.

Từ mã của chúng tôi đến trình duyệt của bạn

  • Mọi thứ quá trình build sử dụng đều được cố định ở một phiên bản chính xác và kiểm tra bằng dấu vân tay của nó: GitHub actions theo commit, container image theo digest, tệp tải về theo SHA-256, gói npm và Python theo lockfile.
  • Không dùng bản phát hành nào mới hơn 3 ngày. Phần lớn các phiên bản gói độc hại bị phát hiện và gỡ bỏ trong vòng vài ngày, nên chúng tôi để chúng bị phát hiện trước. Các bản cập nhật tự động chờ một tuần, và mỗi bản đều được build và kiểm thử trước khi được chấp nhận.
  • Các gói không bao giờ được phép chạy script cài đặt, và chữ ký của npm registry được xác minh trong mỗi lần build.
  • Chỉ quy trình tự động của chúng tôi mới build bản phát hành, từ nhánh chính. Thông tin đăng nhập của cửa hàng và npm được giữ trong một môi trường được bảo vệ mà chỉ bước phát hành mới dùng được, và quá trình build không giữ token truy cập của kho mã.

Kiểm tra trên mọi thay đổi

  • Phân tích tĩnh: CodeQL đọc mã TypeScript, công cụ xử lý Rust và các workflow build; zizmor kiểm tra các workflow.
  • Quét động trang web (OWASP ZAP) trên mọi thay đổi và hằng tuần.
  • Thay đổi nào thêm một gói có lỗ hổng đã biết đều bị chặn, và cảnh báo Dependabot theo dõi mọi lockfile.
  • Quét bí mật kèm bảo vệ khi push: GitHub từ chối mọi commit chứa mật khẩu hoặc khóa.
  • Mã có kiểu nghiêm ngặt (TypeScript và Python) và kiểm thử tự động trên Chrome và Firefox trước mỗi bản phát hành.

Bạn phát hiện vấn đề?

Vui lòng báo riêng cho chúng tôi: báo cáo lỗ hổng trên GitHub. Như vậy vấn đề có thể được sửa trước khi bị công khai.

Mọi điều trên trang này đều có thể kiểm chứng: mã, quy trình build và các bước kiểm tra bảo mật đều là mã nguồn mở. Cách các bản phát hành được build và kiểm tra