SHARE THE PERSPECTIVE
Phép thử ngoại tuyến cần có một kết quả cụ thể; hash hay minh họa mật mã không phải là kiểm toán toàn bộ sản phẩm.

Kiểm tra ngoại tuyến có thể cho thấy một phép tính cụ thể được thực hiện mà không cần phản hồi trực tiếp từ máy chủ. Điều này có giá trị, nhưng không có nghĩa là chứng minh tính bảo mật của toàn bộ ứng dụng nhắn tin. Để kết quả hữu ích, bạn cần ghi chính xác tệp, phiên bản, đầu vào và đầu ra nào đã được kiểm thử.

Hash của tệp, chữ ký bản phát hành, vectơ kiểm thử, bản dựng tái lập và kiểm toán bảo mật trả lời những câu hỏi khác nhau. Kết hợp bằng chứng hữu ích hơn việc biến một trong số đó thành “con dấu bảo mật toàn diện”.

Mỗi bằng chứng cho thấy điều gì?

Bằng chứng Kết luận đúng trong phạm vi giới hạn Điều không tự động được chứng minh
SHA-256 của tệp Tệp khớp với giá trị băm tham chiếu Nguồn tham chiếu trung thực hoặc mã hoàn hảo
Chữ ký APK Chữ ký hợp lệ đối với gói và gắn với khóa ký Khóa đó thuộc về nhà phát hành bạn muốn, trừ khi được kiểm tra riêng
Vectơ kiểm thử Các trường hợp được bao phủ cho đầu ra dự kiến Mọi trạng thái và lỗi của sản phẩm đều được bao phủ
Bản dựng tái lập Mã nguồn và môi trường xác định tạo ra cùng đầu ra Mã nguồn không có lỗ hổng
Kiểm toán Một phạm vi và phiên bản cụ thể đã được xem xét Các thay đổi về sau và thành phần ngoài phạm vi cũng đã được phê chuẩn

Định nghĩa bản dựng tái lập dựa trên đầu vào và môi trường xác định. Công cụ apksigner chính thức của Android dùng để kiểm tra chữ ký APK; việc này không giống tính hash.

Proof Lab của Livara hiện có phạm vi nào?

Trang Proof Lab giới thiệu công cụ cục bộ tính hash APK và minh họa các thao tác P-256, HKDF, AES-GCM, trong đó có thay đổi một bit để quan sát việc kiểm tra tính xác thực thất bại. Chính trang này nêu rõ rằng tổ hợp LVR1/LGS1 đầy đủ nằm ngoài bàn thử nghiệm này.

Vì vậy, hãy ghi kết luận đúng như sau: “Tệp này khớp với giá trị băm tham chiếu” hoặc “Minh họa mật mã này đã từ chối sự sửa đổi được kiểm thử”. Đừng nói: “Toàn bộ giao thức lai và toàn bộ phiên bản đã cài đặt đã được kiểm toán độc lập”. Bài viết này không báo cáo một phép thử thực thi mới đối với công cụ đó.

Chuẩn bị phép thử ngoại tuyến có thể lặp lại như thế nào?

  1. Xác định mục tiêu. Bạn muốn kiểm tra danh tính của tệp hay hành vi của một thao tác mật mã?
  2. Ghi lại phiên bản và nguồn. Tên APK, số phiên bản, địa chỉ tải xuống và giá trị băm của cùng bản phát hành phải liên quan với nhau.
  3. Chuẩn bị công cụ và đầu vào từ nguồn đáng tin cậy. Chuyển sang ngoại tuyến không làm cho mã vốn độc hại từ đầu trở nên đáng tin.
  4. Dùng dữ liệu kiểm thử không nhạy cảm. Minh họa mật mã không cần tin nhắn riêng tư hay bí mật thật.
  5. Ngắt kết nối và lặp lại phép thử. Bước này đo sự phụ thuộc vào phản hồi trực tiếp, không phải độ đáng tin của mã đã tải xuống trước đó.
  6. Ghi lại kết quả và lỗi. Đừng thay chênh lệch phiên bản, lỗi tải hoặc đầu ra không khớp bằng “đạt”.

Nếu hash khác nhau, hãy dừng cài đặt và trước tiên kiểm tra phiên bản, tệp và nguồn tham chiếu. Sự khác biệt có thể do chọn một bản phát hành khác; khi chưa kiểm tra, đừng khẳng định chắc chắn đó là mã độc hoặc chắc chắn không đáng quan tâm.

Vectơ kiểm thử khác chứng nhận chính thức như thế nào?

Vectơ kiểm thử xác định đầu vào và đầu ra dự kiến của một hành vi. Các bộ như Wycheproof hữu ích để kiểm thử thư viện với những trường hợp liên quan đến các cuộc tấn công đã biết. Vượt qua chúng không chứng minh đã bao phủ các trường hợp chưa biết.

NIST CAVP có quy trình xác nhận thuật toán. Chạy vài vectơ công khai trong trình duyệt không tương đương với nhận được chứng nhận xác nhận; sử dụng thuật toán tiêu chuẩn cũng không tự động khiến sản phẩm được chứng nhận.

Nên yêu cầu gì khi so sánh các ứng dụng nhắn tin?

Với Livara, Signal, WhatsApp, Session hoặc Element, hãy hỏi cùng những câu hỏi: phiên bản chính xác là gì? Tệp chính thức là tệp nào? Khóa ký hoặc giá trị băm tham chiếu được xác minh ra sao? Có thể chạy những phép thử nào? Mã và thành phần nào nằm trong báo cáo kiểm toán?

Bài viết này không phải bảng xếp hạng các sản phẩm đó dựa trên kiểm thử. Không có một công cụ trên một trang duy nhất không chứng minh rằng không có bằng chứng bảo mật; có công cụ như vậy cũng không chứng minh toàn bộ sản phẩm vượt trội. Hãy so sánh tài liệu chính thức của đúng phiên bản đó và báo cáo có thể tái lập.

Một phiếu kết quả hữu ích

Trong báo cáo ngắn, hãy ghi: mục tiêu, phiên bản, nguồn tệp, hash, công cụ và phiên bản của nó, trạng thái mạng, đầu vào không nhạy cảm, đầu ra dự kiến, đầu ra quan sát được và giới hạn. Nếu chưa thực hiện một phép thử khác, hãy ghi là “chưa kiểm thử”.

Xác minh khóa của người liên hệ cũng là một kiểm tra riêng. Công cụ cục bộ có thể minh họa một thao tác, nhưng không thay bạn xác nhận danh tính người đang trò chuyện hoặc tình trạng an toàn của điện thoại họ. Hãy đọc các giới hạn bảo mật của Livara cùng kết quả, thay vì coi điểm tối đa trong công cụ là sự bảo đảm cho mọi giới hạn.

Chạy phép thử trong Proof Lab
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗