- tinysshdは、SSHv2機能の一部のみを実装したミニマルなSSHサーバー
- 最低128ビットのセキュリティをサポートし、キャッシュタイミング攻撃に備えた安全な暗号化のみをサポート
- RSA、DSA、HMAC-MD5、HMAC-SHA1、3DES、RC4などの古い暗号は実装していない
- パスワード認証やホストベース認証のような安全でない機能は実装していない
- SSH1プロトコル、圧縮、ポートフォワーディング、エージェントフォワーディング、X11フォワーディングなどの機能も提供していない
- 動的メモリ割り当てを使用しないため、割り当て失敗などの問題がない
暗号プリミティブ
- 最新の暗号技術: ssh-ed25519, curve25519-sha256, chacha20-poly1305@openssh.com
- 以前の標準(20190101バージョンで削除): ecdsa-sha2-nistp256, ecdh-sha2-nistp256, aes256-ctr, hmac-sha2-256
- 量子コンピューターに備えた暗号化: sntrup761x25519-sha512@openssh.com, chacha20-poly1305@openssh.com
プロジェクトのタイムライン
- 実験段階(2014年): 実験を目的としている
- アルファ段階(2015〜2017年): 本番環境には適していないが、テストのために準備されている
- ベータ段階(2018年から現在まで): 本番運用に適している
- 安定化段階: 量子コンピューターに備えた暗号化を含め、本番環境に適することが期待される
現在のリリース (20240101)
- コードは63899語で構成されている。
- ベータリリースの状態。
実行方法
- 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:
/etc/inetd.conf ファイルに ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir を追加
- SYSTEMD:
tinysshd.socket および tinysshd@.service ファイルを通じてサービスを構成し実行
GN⁺の意見
- tinysshdは最小限の機能を持つSSHサーバーであり、セキュリティを重視した設計が際立っている。過剰な機能がないため軽量であり、セキュリティ脆弱性も少ない可能性が高い。
- SSHサーバーはネットワークセキュリティの中核要素であるため、tinysshdのようなミニマリズムのアプローチは、特にセキュリティが重要な環境で有用になりうる。
- ただし、一部のユーザーにとっては、ポートフォワーディングやX11フォワーディングのような高度な機能がないことが欠点になりうる。
- 量子コンピューターに備えた暗号化をサポートしている点は未来志向のアプローチであり、セキュリティに対する継続的な関心とアップデートを反映している。
- 類似の機能を提供する他のオープンソースプロジェクトとしてはOpenSSHがあり、こちらはより多くの機能を提供する一方、その分より複雑で、管理すべきセキュリティ面も多い。
- tinysshdを導入する際は、機能制限がプロジェクト要件に適しているかを考慮する必要がある。選択によって得られる利点は簡潔さと強化されたセキュリティであり、失われる利点は一部の高度な機能が使えないことにある。
1件のコメント
Hacker Newsのコメント
TinySSHの使用例:
TinySSH関連リンク:
TinySSHのコード量に関する意見:
TinySSHの対応範囲:
ed25519-skをサポートしていないのは惜しい。TinySSHの監査しやすさ:
TinySSHとDropbear SSHの違いについての質問。
OpenSSHの代替に関する意見:
TinySSH開発者の仕事への称賛:
TinySSHの安全機能: