Trong ranh giới của dự án (Tinfoil Chat) một nỗ lực đã được thực hiện nhằm tạo ra một nguyên mẫu của một hệ thống nhắn tin được bảo vệ bằng chứng hoang tưởng nhằm duy trì tính bí mật của thư từ ngay cả khi các thiết bị cuối bị xâm phạm. Để đơn giản hóa việc kiểm tra, mã dự án được viết bằng Python và được cấp phép theo GPLv3.
Các hệ thống nhắn tin phổ biến hiện nay sử dụng mã hóa đầu cuối cho phép bạn bảo vệ thư khỏi bị chặn trên các máy chủ trung gian và khỏi phân tích lưu lượng chuyển tuyến, nhưng không bảo vệ khỏi các sự cố từ phía thiết bị khách. Để xâm phạm các hệ thống dựa trên mã hóa đầu cuối, việc xâm phạm hệ điều hành, chương trình cơ sở hoặc ứng dụng nhắn tin trên thiết bị cuối là đủ, chẳng hạn như thông qua việc khai thác các lỗ hổng chưa biết trước đó, thông qua việc giới thiệu ban đầu dấu trang phần mềm hoặc phần cứng vào thiết bị hoặc thông qua việc cung cấp bản cập nhật hư cấu có cửa sau (ví dụ: khi gây áp lực lên nhà phát triển bởi các cơ quan tình báo hoặc nhóm tội phạm). Ngay cả khi các khóa mã hóa nằm trên một mã thông báo riêng biệt, nếu bạn có quyền kiểm soát hệ thống của người dùng, bạn luôn có thể theo dõi các quy trình, chặn dữ liệu từ bàn phím và giám sát đầu ra màn hình.
TFC cung cấp một tổ hợp phần mềm và phần cứng yêu cầu sử dụng ba máy tính riêng biệt và bộ chia phần cứng đặc biệt ở phía máy khách. Tất cả lưu lượng truy cập trong quá trình tương tác của những người tham gia nhắn tin đều được truyền qua mạng Tor ẩn danh và các chương trình nhắn tin được thực hiện dưới dạng dịch vụ Tor ẩn (người dùng được xác định bằng địa chỉ và khóa dịch vụ ẩn khi trao đổi tin nhắn).
Máy tính đầu tiên đóng vai trò là cổng kết nối mạng và chạy dịch vụ ẩn Tor. Cổng chỉ thao tác dữ liệu đã được mã hóa và hai máy tính còn lại được sử dụng để mã hóa và giải mã. Máy tính thứ hai chỉ có thể được sử dụng để giải mã và hiển thị các tin nhắn đã nhận và máy tính thứ ba chỉ có thể mã hóa và gửi tin nhắn mới. Theo đó, máy tính thứ hai chỉ có khóa giải mã, còn máy tính thứ ba chỉ có khóa mã hóa.
Máy tính thứ hai và thứ ba không có kết nối trực tiếp với mạng và được tách biệt khỏi máy tính cổng bằng bộ chia USB đặc biệt sử dụng “” và truyền dữ liệu vật lý chỉ theo một hướng. Bộ chia chỉ cho phép gửi dữ liệu tới máy tính thứ hai và chỉ nhận dữ liệu từ máy tính thứ ba. Hướng của dữ liệu trong bộ chia bị giới hạn bằng cách sử dụng (việc ngắt đơn giản các đường Tx và Rx trong cáp là không đủ, vì việc ngắt không loại trừ việc truyền dữ liệu theo hướng ngược lại và không đảm bảo rằng đường Tx sẽ không được sử dụng để đọc và đường Rx để truyền ). Bộ chia có thể được lắp ráp từ các bộ phận phế liệu, () và có sẵn theo giấy phép GNU FDL 1.3.
Với sơ đồ như vậy, cổng bị xâm phạm có quyền truy cập vào các khóa mã hóa và sẽ không cho phép bạn tiếp tục cuộc tấn công trên các thiết bị còn lại. Nếu máy tính chứa khóa giải mã bị xâm phạm, thông tin từ máy tính đó không thể được truyền ra thế giới bên ngoài, vì luồng dữ liệu chỉ bị giới hạn khi nhận thông tin và việc truyền ngược lại bị chặn bởi diode dữ liệu.
Mã hóa dựa trên khóa 256 bit trên XChaCha20-Poly1305, hàm băm chậm được sử dụng để bảo vệ khóa bằng mật khẩu . Để trao đổi khóa, nó được sử dụng (Giao thức Diffie-Hellman dựa trên Curve448) hoặc khóa PSK (). Mỗi tin nhắn được truyền đi trong bí mật chuyển tiếp hoàn hảo (PFS, ) dựa trên hàm băm Blake2b, trong đó việc xâm phạm một trong các khóa dài hạn không cho phép giải mã phiên bị chặn trước đó. Giao diện ứng dụng cực kỳ đơn giản và bao gồm một cửa sổ được chia thành ba khu vực - gửi, nhận và một dòng lệnh có nhật ký tương tác với cổng. Việc quản lý được thực hiện thông qua một phương pháp đặc biệt .
Nguồn: opennet.ru
