Phát hành NNCP 8.8.0, tiện ích truyền file/lệnh ở chế độ lưu trữ và chuyển tiếp

Việc phát hành Node-to-Node CoPy (NNCP), một bộ tiện ích để truyền tệp, email và lệnh một cách an toàn để thực thi ở chế độ lưu trữ và chuyển tiếp. Hỗ trợ hoạt động trên hệ điều hành tương thích POSIX. Các tiện ích được viết bằng Go và được phân phối theo giấy phép GPLv3.

Các tiện ích này tập trung vào việc giúp xây dựng các mạng bạn bè ngang hàng nhỏ (hàng chục nút) với định tuyến tĩnh để truyền tệp, yêu cầu tệp, email và yêu cầu lệnh một cách an toàn. Tất cả các gói được truyền đều được mã hóa (từ đầu đến cuối) và được xác thực rõ ràng bằng cách sử dụng khóa chung đã biết của bạn bè. Mã hóa Onion (như trong Tor) được sử dụng cho tất cả các gói trung gian. Mỗi nút có thể hoạt động như cả máy khách và máy chủ và sử dụng cả hai mô hình hành vi đẩy và thăm dò ý kiến.

Sự khác biệt giữa các giải pháp NNCP, UUCP và FTN (Mạng công nghệ FidoNet), ngoài mã hóa và xác thực nói trên, là sự hỗ trợ sẵn có cho các mạng đĩa mềm và máy tính bị cô lập về mặt vật lý (air-gapped) khỏi các mạng cục bộ không an toàn và các mạng công cộng. NNCP còn có tính năng tích hợp dễ dàng (ngang bằng UUCP) với các máy chủ thư hiện tại như Postfix và Exim.

Các lĩnh vực ứng dụng có thể có của NNCP bao gồm tổ chức gửi/nhận thư đến các thiết bị không có kết nối Internet vĩnh viễn, truyền tệp trong điều kiện kết nối mạng không ổn định, truyền an toàn lượng dữ liệu rất lớn trên phương tiện vật lý, tạo mạng truyền dữ liệu biệt lập được bảo vệ khỏi các cuộc tấn công mạng. Tấn công MitM, vượt qua kiểm duyệt và giám sát mạng. Vì khóa giải mã chỉ nằm trong tay người nhận nên bất kể gói được gửi qua mạng hay qua phương tiện vật lý, bên thứ ba không thể đọc nội dung, ngay cả khi gói bị chặn. Đổi lại, xác thực chữ ký số không cho phép tạo một tin nhắn hư cấu dưới vỏ bọc của người gửi khác.

Trong số những đổi mới của NNCP 8.8.0 so với bản tin trước đó (phiên bản 5.0.0):

  • Thay vì hàm băm BLAKE2b, cái gọi là MTH: Merkle Tree-based Hashing, sử dụng hàm băm BLAKE3, được sử dụng để kiểm tra tính toàn vẹn của tệp. Điều này cho phép bạn tính toán tính toàn vẹn của phần được mã hóa của gói ngay trong quá trình tải xuống mà không yêu cầu phải đọc nó trong tương lai. Điều này cũng cho phép kiểm tra tính toàn vẹn song song không giới hạn.
  • Định dạng gói được mã hóa mới hoàn toàn thân thiện với việc phát trực tuyến khi không xác định trước được kích thước của dữ liệu. Tín hiệu hoàn thành quá trình truyền, với kích thước được xác thực, đi trực tiếp vào luồng được mã hóa. Trước đây, để tìm ra kích thước của dữ liệu được truyền, cần phải lưu nó vào một tệp tạm thời. Vì vậy lệnh “nncp-exec” đã mất đi tùy chọn “-use-tmp” vì nó hoàn toàn không cần thiết.
  • Các hàm BLAKE2b KDF và XOF đã được thay thế bằng BLAKE3 để giảm số lượng mã gốc được sử dụng và đơn giản hóa mã.
  • Hiện tại có thể phát hiện các nút khác trên mạng cục bộ thông qua tính năng phát đa hướng tới địa chỉ “ff02::4e4e:4350”.
  • Các nhóm multicast đã xuất hiện (tương tự như hội nghị tiếng vang FidoNet hoặc nhóm tin tức Usenet), cho phép một gói gửi dữ liệu đến nhiều thành viên trong nhóm, trong đó mỗi gói cũng chuyển tiếp gói đến những người ký còn lại. Việc đọc một gói multicast yêu cầu kiến ​​thức về cặp khóa (bạn phải là thành viên của nhóm một cách rõ ràng), nhưng việc chuyển tiếp có thể được thực hiện bởi bất kỳ nút nào.
  • Hiện đã có hỗ trợ xác nhận rõ ràng việc nhận gói. Người gửi không được xóa gói sau khi gửi, phải đợi cho đến khi nhận được gói ACK đặc biệt từ người nhận.
  • Hỗ trợ tích hợp cho mạng lớp phủ Yggdrasil: daemon trực tuyến có thể hoạt động như những người tham gia mạng độc lập chính thức mà không cần sử dụng triển khai Yggdrasil của bên thứ ba và không hoạt động hoàn toàn với ngăn xếp IP trên giao diện mạng ảo.
  • Thay vì các chuỗi có cấu trúc (RFC 3339), nhật ký sử dụng các mục nhập recfile, có thể được sử dụng với các tiện ích GNU Recutils.
  • Theo tùy chọn, các tiêu đề gói được mã hóa có thể được lưu trữ trong các tệp riêng biệt trong thư mục con "hdr/", tăng tốc đáng kể hoạt động truy xuất danh sách gói trên các hệ thống tệp có kích thước khối lớn, chẳng hạn như ZFS. Trước đây, việc truy xuất tiêu đề gói yêu cầu chỉ đọc khối 128KiB từ đĩa theo mặc định.
  • Việc kiểm tra các tệp mới có thể tùy ý sử dụng kqueue và inotify các hệ thống con kernel, thực hiện ít lệnh gọi hệ thống hơn.
  • Các tiện ích giữ ít tệp mở hơn và đóng và mở lại chúng ít thường xuyên hơn. Với số lượng lớn các gói, trước đây có thể gặp phải giới hạn về số lượng tệp mở tối đa.
  • Nhiều đội bắt đầu cho thấy sự tiến bộ và tốc độ của các hoạt động như tải/tải lên, sao chép và xử lý (quăng) các gói.
  • Lệnh “nncp-file” có thể gửi không chỉ các tệp đơn lẻ mà còn cả các thư mục, tạo một kho lưu trữ pax với nội dung của chúng một cách nhanh chóng.
  • Các tiện ích trực tuyến có thể tùy ý gọi ngay lập tức việc chuyển gói sau khi gói được tải xuống thành công mà không cần chạy trình nền "nncp-toss" riêng biệt.
  • Cuộc gọi trực tuyến tới người tham gia khác có thể tùy chọn xảy ra không chỉ khi bộ hẹn giờ được kích hoạt mà còn khi một gói gửi đi xuất hiện trong thư mục bộ đệm.
  • Đảm bảo khả năng hoạt động trong NetBSD và OpenBSD OS, ngoài FreeBSD và GNU/Linux được hỗ trợ trước đó.
  • "nncp-daemon" hoàn toàn tương thích với giao diện UCSPI-TCP. Cùng với khả năng đăng nhập vào một bộ mô tả tệp được chỉ định (ví dụ: bằng cách đặt "NNCPLOG=FD:4"), nó hoàn toàn thân thiện khi chạy trong các tiện ích giống như daemontools.
  • Việc lắp ráp dự án đã được chuyển hoàn toàn sang hệ thống làm lại.

Nguồn: opennet.ru

Thêm một lời nhận xét