- SSH3 là giao thức shell bảo mật thế hệ mới chạy trên HTTP/3, cải thiện mạnh tốc độ thiết lập phiên so với SSHv2 truyền thống
- Thông qua QUIC và TLS 1.3, nó hình thành kênh bảo mật và hỗ trợ các hệ thống xác thực hiện đại như OAuth 2.0 và OpenID Connect
- Có thể ẩn máy chủ sau một đường dẫn bí mật, nhờ đó chống chịu tốt hơn trước các cuộc tấn công như quét cổng, đồng thời cung cấp tính năng mới như chuyển tiếp cổng UDP và QUIC multipath
- Dự án đã tiếp nhận nhiều tính năng cốt lõi của OpenSSH, nhưng hiện vẫn ở giai đoạn thử nghiệm, nên không khuyến nghị triển khai trong môi trường vận hành thực tế
- Do có nhiều ý kiến cho rằng tên SSH3 không phù hợp, bản thảo tiêu chuẩn đã được đổi thành “Remote Terminals over HTTP/3”, và quá trình đổi tên đang được tiến hành
Tổng quan và tầm quan trọng của dự án SSH3
- SSH3 là một giải pháp mã nguồn mở tái thiết kế giao thức SSH hiện có để phù hợp với HTTP/3 và các công nghệ web hiện đại
- Tái cấu trúc ngữ nghĩa của giao thức kết nối SSH hiện tại (RFC4254) trên HTTP/3 Extended CONNECT và kênh QUIC+TLS 1.3
- Dự án được đề xuất dưới dạng bản thảo Internet của IETF draft-michel-remote-terminal-http3, giúp giảm đáng kể thời gian thiết lập phiên và mang lại nhiều ưu điểm như mở rộng phương thức xác thực hiện đại
- So với các triển khai SSH khác, những ý tưởng đổi mới như sử dụng QUIC và cấu hình máy chủ ẩn là điểm nổi bật
Các chức năng và đặc điểm chính
- Thiết lập phiên nhanh
- Trong khi kết nối SSHv2 truyền thống trung bình cần 5~7 vòng khứ hồi mạng, SSH3 chỉ cần 3 vòng khứ hồi, giúp giảm đáng kể độ trễ mà người dùng cảm nhận
- Độ trễ gõ phím (latency) vẫn được giữ ở mức tương đương trước đây
- Bảo mật được tăng cường
- Dựa trên TLS1.3, QUIC và xác thực HTTP, tận dụng các giao thức bảo mật đã được kiểm chứng và đang dùng trong thương mại điện tử, ngân hàng trực tuyến, v.v.
- Hỗ trợ nhiều phương thức xác thực như khóa công khai dựa trên RSA, EdDSA/ed25519 và OAuth 2.0, OpenID Connect
- Cũng có thể đăng nhập bằng tài khoản Google, Microsoft và Github
- Khả năng ẩn máy chủ
- Có thể đặt máy chủ sau một URL bí mật cụ thể (ví dụ: https://192.0.2.0:443/M3MzkxYWMx...); chỉ phản hồi khi có yêu cầu xác thực đi vào đúng URL đó
- Với các yêu cầu khác, trả về 404 Not Found, khiến kẻ tấn công hoặc crawler trên Internet không thể nhận biết sự tồn tại của máy chủ
- Tuy nhiên, đường dẫn bí mật không thay thế cho xác thực, nên vẫn được khuyến nghị bắt buộc sử dụng cơ chế xác thực riêng biệt như khóa công khai, mật khẩu, OIDC, v.v.
- Dự án thử nghiệm đang tiếp tục được phát triển
- Về mặt cấu trúc, dự án cần được kiểm chứng bảo mật một cách đáng tin cậy, và không khuyến nghị áp dụng trên máy chủ production
- Hiện đang thu thập phản hồi từ cộng đồng trong môi trường thử nghiệm hoặc mạng khép kín
- Tương thích OpenSSH và các tính năng bổ sung
- Hỗ trợ phân tích ~/.ssh/authorized_keys và known_hosts, tích hợp ssh-agent, chuyển tiếp cổng TCP/UDP, và Proxy Jump
- Hỗ trợ chuyển tiếp UDP, mở đường truy cập đến các máy chủ dùng UDP như DNS, RTP, QUIC service, thông qua đường dẫn QUIC datagram
- Cung cấp khả năng xác thực máy chủ ở mức HTTPS thông qua chứng chỉ X.509
- Xác thực không cần khóa (Keyless): với OpenID Connect, có thể kết nối bằng SSO doanh nghiệp hoặc tài khoản bên ngoài như Google/GitHub mà không cần sao chép khóa công khai
Kết luận
- SSH3 là một dự án mã nguồn mở mang tính thử nghiệm, thúc đẩy sự tiến hóa của môi trường SSH bằng cách đưa vào các giao thức mạng và xác thực hiện đại
- Dù cải thiện mạnh về tốc độ, tính linh hoạt và bảo mật, vẫn cần thận trọng khi dùng trong môi trường production trước khi được kiểm chứng đầy đủ
- Dự án mang lại trải nghiệm người dùng tương tự OpenSSH, đồng thời có thêm nhiều tính năng mới phong phú.
- Với đánh giá bảo mật đúng mức và sự tham gia của cộng đồng, nó có tiềm năng trở thành SSH thế hệ tiếp theo
1 bình luận
Ý kiến trên Hacker News
scpcác tệp lớn từ khắp nơi trên thế giới có thể kỳ vọng cải thiện tốc độ đáng kểconnection init, tức khởi tạo kết nối mạng, ngày càng cao nên cuối cùng người ta phải dựa vào best practice trên các giao thức đã battle-tested. Nhưng khi phần truyền tải thực tế không còn là hypertext nữa mà vẫn cứ gọi là HTTP thì vẫn thấy hơi kỳcd, và một cái tên như remote-terminals-over-http3 tốt hơn ssh3