Chuyển đến nội dung
Quay lại Nymchat

Cơ sở tri thức Dưới mui xe

Xác minh bản dựng

Nguồn mở chỉ hữu ích nếu mã bạn đang chạy là mã đã được được xuất bản. Nymchat được xây dựng một cách xác định để bạn có thể tự mình kiểm tra từ bên trong ứng dụng hoặc từ một thiết bị đầu cuối.

Bản dựng có thể tái tạo

Việc xây dựng ứng dụng sẽ phát ra một build-manifest.json chứa cam kết nguồn, một Hàm băm SHA-256 của mọi nội dung HTML, JavaScript và CSS được cung cấp và một bundleHash trên toàn bộ tập tài sản đó.

Đầu ra chỉ phụ thuộc vào nội dung nguồn - ngay cả thời gian xây dựng được ghi lại cũng là dấu thời gian của cam kết thay vì thời điểm bản dựng chạy - vì vậy bất kỳ ai xây dựng lại giống nhau cam kết nhận các tệp giống hệt byte và giống nhau bundleHash.

Sau đó, Hành động GitHub sẽ xây dựng lại từng cam kết một cách độc lập và ký tên nguồn gốc xây dựng chứng thực cho hàm băm và bảng kê khai, do đó có một bản ghi đã ký kết buộc một bundleHash tới một cam kết trong kho lưu trữ, được tạo ra bởi một cái gì đó không phải là triển khai.

Hộp thoại Giới thiệu kiểm tra nội dung gì

Về trong tiêu đề chạy kiểm tra trực tiếp, trong trình duyệt của bạn.

Hộp thoại Giới thiệu về Nymchat, hiển thị phiên bản, tính toàn vẹn của bản dựng và trạng thái bảo đảm chính xác.
Hộp thoại Giới thiệu: phiên bản, tính toàn vẹn của bản dựng, bảo hành canary và đường dây trực tiếp tới nhà phát triển.

Nó tìm nạp lại từng nội dung mà trang đang thực sự chạy, băm nó bằng API Web Crypto và so sánh với bảng kê khai. Sau đó - và đây là phần quan trọng - nó tính toán lại bundleHash từ băm vừa tính toán, không phải từ bất kỳ điều gì mà bản kê khai tuyên bố và tìm kiếm điều đó trong các chứng thực đã ký của kho lưu trữ thông qua API GitHub.

Đó là điều khiến quá trình triển khai không thể tự bảo đảm: cung cấp các tệp đã sửa đổi cùng với bảng kê khai phù hợp vẫn không thành công vì hàm băm được tính toán lại không có chứng thực.

Trạng tháiCó nghĩa
&kiểm tra; Ứng dụng chính thức đã được xác minh (n/n)Mọi nội dung đều khớp, hàm băm gói được tính toán lại được chứng thực bởi kho lưu trữ, trang được phục vụ từ tên miền chính thức.
⚠ Bản dựng đã được xác minh · không phải ứng dụng chính thứcMã này là chính hãng và đã được chứng thực, nhưng đây là bản sao của một miền khác. Một tấm gương không thể loại bỏ cảnh báo này nếu không xác minh được.
✗ Không phù hợpMột nội dung không băm theo nội dung của bảng kê khai.
✗ Bản dựng không chính thứcBăm gói được tính toán lại không có chứng thực từ kho lưu trữ - một bảng kê khai tự tạo.
⚠ Không thể truy cập được nguồn gốcKhông thể truy cập API GitHub nên không thể kiểm tra chứng thực theo cách nào đó.

Tự mình xác minh

Xây dựng lại cam kết tên hộp thoại Giới thiệu và so sánh:

git clone https://github.com/Spl0itable/NYM
cd NYM
git checkout <commit shown in the About dialog>
npm ci
npm run build   # prints "Build hash: <bundleHash>"

Hàm băm được in phải khớp với cả hàm băm trong hộp thoại Giới thiệu và hàm băm trong cam kết đó bản tóm tắt quá trình xây dựng xuất xứ. Bạn cũng có thể kiểm tra chữ ký trực tiếp bằng GitHub CLI:

gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM

Lệnh bắt chim hoàng yến

Lệnh bảo đảm là một tuyên bố được xuất bản theo một lịch trình cố định mà nhà phát triển có không nhận được một lệnh bí mật của chính phủ mà họ bị cấm tiết lộ - một Thư An ninh Quốc gia, lệnh FISA. Nhà phát triển có thể bị buộc phải giữ im lặng về mệnh lệnh như vậy, nhưng không thể bắt buộc phải nói dối, nên con chim hoàng yến bị ôi thiu hoặc biến mất là chính nó là tín hiệu.

Nó sống ở canary.json ở thư mục gốc của kho lưu trữ và được lấy trực tiếp từ GitHub, vì vậy lịch sử của nó có thể được kiểm tra độc lập với bất kỳ điều gì trang web được triển khai nói. Hộp thoại Giới thiệu mã màu cho nó:

Màu sắcCó nghĩa
Màu xanh lá - tất cả đều rõ ràngĐã ký, hiện tại và chữ ký khớp với khóa của nhà phát triển. Không có lệnh bí mật nào được nhận.
Màu vàng — quá hạn, hoặc không rõ ràngNó không được làm mới trước ngày đã nêu, hoặc allClear cờ là sai. Không thể loại trừ được lệnh im lặng.
Màu đỏ — chữ ký không hợp lệ hoặc đã biến mấtChữ ký không khớp với khóa của nhà phát triển hoặc tệp đã bị xóa hoàn toàn. Hãy coi đây là một cảnh báo nghiêm túc.

Mỏ neo tươi mát

Canary đã ký sẽ nhúng chiều cao và hàm băm khối Bitcoin mới nhất tại thời điểm ký. Hàm băm đó không thể được biết trước khi khối tồn tại, điều này chứng tỏ chim hoàng yến đã đã ký sau đó một thời điểm cụ thể thay vì được ký trước hàng loạt tháng trước đó. Hộp thoại Giới thiệu liên kết mỏ neo với trình khám phá khối để bạn có thể kiểm tra nó.