9 điểm bởi GN⁺ 2024-03-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • tinysshd là một máy chủ SSH tối giản chỉ triển khai một phần các tính năng của SSHv2
  • Chỉ hỗ trợ các cơ chế mật mã an toàn, cung cấp tối thiểu 128 bit bảo mật và có biện pháp chống lại các cuộc tấn công timing trên cache
  • Không triển khai các cơ chế mật mã cũ như RSA, DSA, HMAC-MD5, HMAC-SHA1, 3DES, RC4
  • Không triển khai các tính năng không an toàn như xác thực bằng mật khẩu hoặc xác thực dựa trên host
  • Cũng không cung cấp các tính năng như giao thức SSH1, nén, port forwarding, agent forwarding, X11 forwarding
  • Không sử dụng cấp phát bộ nhớ động nên không gặp các vấn đề như lỗi cấp phát

Các primitive mật mã

  • Công nghệ mật mã hiện đại: ssh-ed25519, curve25519-sha256, chacha20-poly1305@openssh.com
  • Các tiêu chuẩn trước đây (đã bị loại bỏ trong phiên bản 20190101): ecdsa-sha2-nistp256, ecdh-sha2-nistp256, aes256-ctr, hmac-sha2-256
  • Mật mã sẵn sàng cho máy tính lượng tử: sntrup761x25519-sha512@openssh.com, chacha20-poly1305@openssh.com

Dòng thời gian dự án

  • Giai đoạn thử nghiệm (2014): phục vụ mục đích thử nghiệm
  • Giai đoạn alpha (2015-2017): chưa phù hợp cho môi trường production nhưng đã sẵn sàng để kiểm thử
  • Giai đoạn beta (từ 2018 đến nay): phù hợp cho production
  • Giai đoạn ổn định: dự kiến sẽ phù hợp cho môi trường production, bao gồm cả mật mã sẵn sàng cho máy tính lượng tử

Bản phát hành hiện tại (20240101)

  • Mã nguồn gồm 63899 từ.
  • Đang ở trạng thái phát hành beta.

Cách chạy

  • TCPSERVER: tcpserver -HRDl0 0.0.0.0 22 /usr/sbin/tinysshd -v /etc/tinyssh/sshkeydir &
  • BUSYBOX: busybox tcpsvd 0 22 tinysshd -v /etc/tinyssh/sshkeydir &
  • INETD: thêm ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir vào tệp /etc/inetd.conf
  • SYSTEMD: cấu hình và chạy dịch vụ thông qua các tệp tinysshd.sockettinysshd@.service

Ý kiến của GN⁺

  • tinysshd là một máy chủ SSH với bộ tính năng tối thiểu, nổi bật ở thiết kế tập trung vào bảo mật. Ưu điểm là nhẹ do không có tính năng dư thừa, và có khả năng ít tồn tại lỗ hổng bảo mật hơn.
  • Máy chủ SSH là thành phần cốt lõi của an ninh mạng, vì vậy cách tiếp cận tối giản như tinysshd có thể đặc biệt hữu ích trong những môi trường coi trọng bảo mật.
  • Tuy vậy, với một số người dùng, việc thiếu các tính năng nâng cao như port forwarding hoặc X11 forwarding có thể là một nhược điểm.
  • Việc hỗ trợ mật mã sẵn sàng cho máy tính lượng tử cho thấy một hướng tiếp cận mang tính tương lai, phản ánh sự quan tâm và cập nhật liên tục về bảo mật.
  • Một dự án mã nguồn mở khác cung cấp chức năng tương tự là OpenSSH; dự án này có nhiều tính năng hơn, nhưng cũng phức tạp hơn và có nhiều khía cạnh bảo mật cần quản lý hơn.
  • Khi áp dụng tinysshd, cần cân nhắc xem các giới hạn về tính năng có phù hợp với yêu cầu của dự án hay không; lợi ích nhận được là sự đơn giản và bảo mật được tăng cường, còn phần đánh đổi là thiếu một số tính năng nâng cao.

1 bình luận

 
GN⁺ 2024-03-25
Ý kiến trên Hacker News
  • Các trường hợp sử dụng TinySSH:

    • Được dùng để mở khóa từ xa các ổ đĩa được mã hóa trong lúc Linux khởi động.
    • Dùng dm-crypt/LUKS và ZFS trên máy chủ NAS không có màn hình.
    • Khi cập nhật kernel/ZFS, khởi động lại máy chủ từ xa và truy cập lời nhắc nhập khóa mã hóa qua TinySSH để mở khóa ổ đĩa.
    • Khi TinySSH kết thúc, phiên SSH sẽ đăng xuất ngay lập tức; vài giây sau đăng nhập lại bằng SSH thì có thể truy cập vào hệ thống đã khởi động hoàn chỉnh.
  • Các liên kết liên quan đến TinySSH:

    • Hiện tại khó truy cập do hiệu ứng Slashdot.
    • Có thể xem trang TinySSH qua web archive.
  • Ý kiến về lượng mã của TinySSH:

    • Cách diễn đạt lượng mã bằng “từ” khá thú vị.
    • Thông thường, các kho mã nhấn mạnh về bảo mật hay được quảng bá bằng “X dòng mã”, nên cách biểu đạt bằng “từ” là khá khác thường.
  • Phạm vi hỗ trợ của TinySSH:

    • Hơi tiếc là không hỗ trợ ed25519-sk.
    • Ngoài điểm đó ra thì dự án trông rất hứa hẹn.
  • Khả năng kiểm toán của TinySSH:

    • Đặt câu hỏi liệu 100.000 từ mã nguồn có thực sự ở mức dễ kiểm toán hay không.
  • Câu hỏi về sự khác biệt giữa TinySSH và Dropbear SSH.

  • Ý kiến về việc thay thế OpenSSH:

    • OpenSSH được rất nhiều người sử dụng và đã được kiểm chứng trong thời gian dài nên có độ ổn định cao.
    • OpenSSH có nguồn gốc từ OpenBSD, vốn rất thận trọng trong việc viết mã bảo mật.
    • Thay vì thay thế OpenSSH, tốt hơn là chuyển sang xác thực bằng khóa và tăng cường OpenSSH bằng một vài thay đổi cấu hình đơn giản, bao gồm cả các ý tưởng cấu hình của Mozilla.
  • Lời khen cho công việc của nhà phát triển TinySSH:

    • Ngoài TinySSH, họ còn phát triển nhiều tiện ích mạng nhỏ và máy chủ khác.
    • Những công việc này cho thấy nhà phát triển đang nỗ lực “xây dựng” một thứ gì đó và để hiểu nó.
  • Các tính năng an toàn của TinySSH:

    • TinySSH không triển khai các tính năng kém an toàn như mật khẩu hoặc xác thực dựa trên host.
    • Có câu hỏi về cách đăng ký khóa riêng trên thiết bị dùng chung.