9 ポイント 投稿者 GN⁺ 2024-03-25 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-03-25
Hacker Newsのコメント
  • TinySSHの使用例:

    • Linuxの起動中に、暗号化されたドライブをリモートでアンロックするために使われている。
    • ヘッドレスのNASサーバーで、dm-crypt/LUKSとZFSを使用。
    • カーネル/ZFSの更新時にサーバーをリモートで再起動し、TinySSH経由で暗号鍵のプロンプトに接続してドライブをアンロックする。
    • TinySSHが終了するとSSHから即座にログアウトされ、数秒後に再びSSHで接続すると完全に起動したシステムにアクセスできる。
  • TinySSH関連リンク:

    • 現在はSlashdot効果のためアクセスしづらい。
    • Webアーカイブ経由でTinySSHのページを確認できる。
  • TinySSHのコード量に関する意見:

    • コード量を「単語」で表現しているのが面白い。
    • 一般にセキュリティ重視のリポジトリは「X行のコード」でアピールすることが多いが、「単語」で表現するのは珍しい。
  • TinySSHの対応範囲:

    • ed25519-skをサポートしていないのは惜しい。
    • それ以外は非常に有望に見える。
  • TinySSHの監査しやすさ:

    • 100,000語のコードが本当に簡単に監査できる規模なのか、という疑問。
  • TinySSHとDropbear SSHの違いについての質問。

  • OpenSSHの代替に関する意見:

    • OpenSSHは多くの人に使われ、長年にわたって検証されており、安定性が高い。
    • OpenSSHはOpenBSD由来であり、セキュアなコードの記述に慎重である。
    • OpenSSHを置き換えるよりも、鍵ベース認証へ移行し、Mozillaの設定アイデアを含むいくつかの簡単な構成変更でOpenSSHをさらに強化するほうがよい。
  • TinySSH開発者の仕事への称賛:

    • TinySSH以外にも、複数の小さなネットワークユーティリティやサーバーを開発している。
    • こうした仕事からは、開発者が何かを「作るために」、そして理解するために努力していることがうかがえる。
  • TinySSHの安全機能:

    • TinySSHは、パスワード認証やホストベース認証のような安全でない機能を実装していない。
    • 共有デバイスで秘密鍵を登録する方法についての質問。