Chúng tôi không có khoá để mở màn hình của bạn
Không có tài khoản nào để lộ, không có kho dữ liệu nào để moi. Khoá phiên sinh ra trên hai máy của bạn và ở lại đó.
Khoá phiên mà máy chủ không đoán nổi
Mã 6 số chỉ có một triệu khả năng. Nếu khoá phiên dẫn từ mình nó thì người giữ máy chủ chỉ cần ghi lại một lần bắt tay rồi thử cạn, chưa tới một giây trên máy tính thường. Vì vậy mỗi phiên hai máy còn trao đổi riêng một bí mật ECDH X25519, thứ máy chủ không cầm phần nào. Dò hết cả triệu mã thì vẫn còn 128 bit không đoán được.
Máy chủ ghép nối không có gì để đọc
Việc của máy chủ là cho hai máy tìm thấy nhau rồi nối hai ống lại. Nó không biết mã 6 số. Mà biết cũng chưa đủ, vì khoá phiên còn trộn một bí mật ECDH riêng của từng phiên mà nó không cầm phần nào. Thứ chạy qua vì thế chỉ là byte ngẫu nhiên. Nhật ký lưu mã phiên, ID, IP, số byte và thời lượng, không có một mảnh nội dung nào.
Khoá máy được ghim lại như SSH nhớ máy chủ
Bí mật ECDH của máy tính được ký bằng khoá Ed25519 cố định, chính khoá nó dùng để nhận ID. Lần nối đầu tiên, máy điều khiển ghim khoá đó lại, y như cách SSH nhớ máy chủ. Máy chủ ghép nối muốn đứng giữa tráo khoá thì từ lần thứ hai trở đi app phát hiện ngay. Bắt tay bản cũ đã bỏ hẳn, không có đường lùi. Để lại một bản cũ thì kẻ đứng giữa chỉ việc ép hai bên nói bản đó rồi tấn công như thường.
Không ai chiếm hay dò ra được ID của máy bạn
Nếu chỉ cần khai “tôi là ID này” mà máy chủ tin thì ai cũng cướp được ID người khác. Mỗi máy vì thế giữ một khoá riêng Ed25519 trong kho cục bộ, chỉ tài khoản của bạn trên máy mới mở được. Kho đó không đồng bộ lên mây, không sao lưu ra ngoài. Mỗi lần ghi danh, máy chủ ra một thách thức ngẫu nhiên và máy phải ký lại. Không ký được thì không nhận ID. ID chỉ có 9 chữ số nên về lý thuyết quét được, vì vậy máy chủ chặn theo IP khi gọi hỏng quá 10 lần một phút. Bên gọi cũng không được biết là “ID không tồn tại” hay “máy đang tắt”. Phiếu mở phiên dùng một lần rồi hết hạn sau 20 giây.
Mỗi chiều một khoá, mỗi khung hình một lớp bọc
Khoá phiên dẫn bằng HKDF-SHA256, chiều đi và chiều về tách hẳn nhau. Dùng chung một khoá cho hai chiều là lỗi kinh điển làm hỏng bảo đảm an toàn của mã dòng. Sau bắt tay, hình ảnh lẫn thao tác chuột phím đi trong ChaChaPoly có xác thực, số thứ tự làm nonce nên không phiên nào phát lại được vào phiên khác.
Quyền hệ thống xin đúng thứ cần
Ghi màn hình để truyền hình, Trợ năng để nhận chuột và bàn phím. Hai quyền đó do macOS cấp. Bạn thu hồi lúc nào cũng được và app dừng ngay lúc ấy.
Cài đặt và kết nối đầu tiên
Cài app lên máy ở nhà rồi chọn vai cho nó. Đầu bên kia gõ hai con số, bằng app hay bằng trình duyệt đều được. Không phải khai gì về mình.