Cryptographic network protocol
セキュア シェルプロトコル ( SSHプロトコル )は、 安全でないネットワーク上で ネットワークサービスを 安全に 操作するための 暗号化 ネットワークプロトコル です。 [1] その最も注目すべき用途は、 リモートログイン と コマンドライン 実行です。
SSH は、 Telnet や、 Berkeley Remote Shell (rsh) や関連する rlogin および rexecプロトコルなどの 安全でない リモート Unix シェルプロトコル ( パスワード などの安全でない プレーン テキスト認証方法を使用するもの) の 代わりとして、 Unix 系 オペレーティング システム向けに設計されました。
Telnet や リモートシェル のようなメカニズム は、リモートコンピュータにアクセスして操作するために設計されているため、 これらのコンピュータにアクセスするための 認証 トークン( ユーザー名 と パスワードなど)を パブリックネットワーク 経由で安全でない方法で送信すると、第三者がパスワードを入手し、Telnetユーザーと同じレベルのリモートシステムへのアクセスを取得する大きなリスクが生じます。セキュアシェルは、たとえ データストリーム 全体にアクセスできる場合でも、送信内容を傍受者から隠蔽することを目的とした 暗号化 メカニズムを使用することで、このリスクを軽減します。 [2]
フィンランドのコンピュータ科学者Tatu Ylönenは1995年にSSHを設計し、 rsh と rlogin のそれぞれを安全に置き換える2つのコマンド、 ssh と slogin という形で実装を提供しました。その後、このプロトコルスイートの開発は複数の開発者グループによって進められ、いくつかの実装のバリエーションが生まれました。プロトコル仕様では、SSH-1とSSH-2と呼ばれる2つのメジャーバージョンが区別されています。最も広く実装されているソフトウェアスタックは OpenSSHで、1999年に OpenBSD 開発者によってオープンソースソフトウェアとしてリリースされました。 組み込みシステム を含む、一般的に使用されているあらゆる種類のオペレーティングシステム向けの実装が配布されています 。
SSHアプリケーションは、 SSHクライアントインスタンスを SSHサーバー に 接続する クライアントサーバーアーキテクチャ に基づいています 。 [3] SSHは、3つの主要な階層コンポーネントで構成される階層化プロトコルスイートとして動作します。 トランスポート層は サーバー認証、機密性、整合性を提供します。 ユーザー認証プロトコルは サーバーに対してユーザーを検証します。 接続プロトコルは 、暗号化されたトンネルを複数の論理通信チャネルに多重化します。 [1]
意味
SSHは 公開鍵暗号を使用してリモートコンピュータ を認証 し 、必要に応じてユーザーを認証できるようにします。 [3]
SSHはいくつかの方法で使用できます。最も単純な方法は、通信チャネルの両端で自動生成された公開鍵と秘密鍵のペアを使用してネットワーク接続を暗号化し、 パスワード を使用してユーザーを認証することです。
ユーザーが公開鍵と秘密鍵のペアを手動で生成する場合、認証は基本的に鍵ペアの作成時に実行され、パスワードを入力せずにセッションが自動的に開始されることがあります。このシナリオでは、公開鍵は、対応する秘密鍵の所有者(所有者は秘密に保持)へのアクセスを許可する必要があるすべてのコンピュータに配置されます。認証は秘密鍵に基づいて行われますが、認証中に秘密鍵がネットワーク経由で転送されることはありません。SSHは、公開鍵を提供する人物が、対応する秘密鍵も所有していることを確認するだけです。
SSH のすべてのバージョンにおいて、未知の公開鍵を 有効なものとして受け入れる前に、検証、つまり 公開鍵を ID と関連付けること が重要です 。検証を行わずに攻撃者の公開鍵を受け入れると、権限のない攻撃者を有効なユーザーとして承認することになります。
認証: OpenSSH キー管理
Unix系 システムでは 、承認された公開鍵のリストは通常、リモートログインを許可されたユーザーのホームディレクトリ内のファイルに保存されます ~/.ssh/authorized_keys。 [4] このファイルは、所有者とルート以外のユーザーによる書き込みが禁止されている場合にのみSSHによって使用されます。リモート側に公開鍵が存在し、対応する秘密鍵がローカル側に存在する場合、パスワードの入力は不要になります。ただし、セキュリティを強化するために、秘密鍵自体をパスフレーズでロックすることもできます。
-i秘密鍵は標準的な場所から検索することもでき、コマンドライン設定( sshの オプション)でフルパスを指定することもできます。ssh -keygen ユーティリティは、公開鍵と秘密鍵を常にペアで生成します。
使用
SSHは通常、リモートコンピュータのシェル または コマンドラインインターフェース (CLI)にログインし 、リモートサーバー上でコマンドを実行するために使用されます。また、 トンネリング 、 TCPポート 転送 、 X11 接続のメカニズムもサポートしており、関連する SSHファイル転送プロトコル (SFTP)または セキュアコピープロトコル (SCP)を使用したファイル転送にも使用できます 。 [3]
SSHは クライアント・サーバーモデル を採用している。SSH クライアント プログラムは通常、sshdなどの SSH デーモン への接続を確立し、リモート接続を受け入れるために使用される。どちらも macOS 、 Linux のほとんどのディストリビューション 、 OpenBSD 、 FreeBSD 、 NetBSD 、 Solaris 、 OpenVMSなど、ほとんどの最新の オペレーティングシステム に一般的に搭載されている。特に、Windows 10バージョン1709より前のバージョンの Windows にはデフォルトでSSHが含まれていないが、複雑さや完全性の異なるさまざまなレベルの プロプライエタリ バージョン、 フリーウェアバージョン 、 オープンソース バージョンが存在していた( SSHクライアントの比較を 参照)。2018年に、 Microsoftは OpenSSHの ソースコードをWindowsに 移植し始め [5] 、 Windows 10バージョン1709 では OpenSSHの公式Win32ポートが利用可能になった。
UNIX系システム( Konqueror など)のファイルマネージャは、 FISH プロトコルを使用して、ドラッグアンドドロップによる分割ペインGUIを提供できます。オープンソースのWindowsプログラム WinSCP [6] は、PuTTYをバックエンドとして同様のファイル管理(同期、コピー、リモート削除)機能を提供します。WinSCP [7] とPuTTY [8] はどちらも、クライアントマシンへのインストールを必要とせず、USBドライブから直接実行できるようにパッケージ化されています。ChromeOSのCrostiniには、 デフォルト でOpenSSHが付属しています。WindowsでSSHサーバーを設定するには、通常、設定アプリで機能を有効にする必要があります。
SSHはクラウドコンピューティング において、接続性の問題を解決するために重要であり 、クラウドベースの仮想マシンをインターネットに直接公開することによるセキュリティ上の問題を回避することができます。SSHトンネルは、ファイアウォールを通過して仮想マシンへの安全なインターネット経由のパスを提供します。 [9]
IANA は このプロトコルに TCP ポート 22、 UDP ポート22、 SCTP ポート22を割り当てています。 [10] IANAは2001年には既に SSHサーバ用の標準TCPポート22を 既知のポートの一つとしてリストしていました。 [11] SSHは、接続指向のトランスポート層プロトコルとしてTCPではなく SCTP を使用して実行することもできます 。 [12]
歴史的発展
バージョン1
1995年、フィンランドの ヘルシンキ工科大学 の研究者である タトゥ・イロネン氏は、 大学のネットワーク で パスワード スニッフィング 攻撃が発生したことをきっかけに、プロトコルの最初のバージョン(現在 SSH-1 と呼ばれている)を設計しました。 [13] SSHの目的は、強力な認証機能も機密性の保証も提供していなかった従来の rlogin 、 TELNET 、 FTP [14] 、そして rsh プロトコルを置き換えることでした。彼はポート番号22を選択しました。これは ポート23と ポート21の間に位置していたためです。 [15] telnetftp
Ylönenは1995年7月に実装を フリーウェア としてリリースし、このツールは急速に人気を博しました。1995年末までに、SSHのユーザーベースは50カ国で2万人にまで拡大しました。 [16]
1995年12月、イロネンはSSHの販売と開発を目的としてSSH Communications Security社を設立しました。SSHソフトウェアの初期バージョンは、 GNU libgmp などの様々な フリーソフトウェア を使用していましたが、SSH Communications Security社がリリースした後のバージョンは、次第に プロプライエタリソフトウェア へと進化していきました。
2000年までに利用者数は200万人にまで増加したと推定されている。 [17]
バージョン2
2006年に、「secsh」というワーキンググループで議論された後、 [18] SSHプロトコルの改訂版である SSH-2が 標準として採用されました。 [19] このバージョンはセキュリティの向上と新機能を提供しますが、SSH-1との互換性はありません。たとえば、 Diffie-Hellman鍵交換 などの新しい鍵交換メカニズムや、クライアントとサーバー間でネゴシエート可能な MD5 や SHA-1 などの メッセージ認証コードによる データ整合性 チェックの改善が導入されています。SSH-2では AES などのより強力な暗号化方式も追加され、最終的には以前の標準の 3DES などの脆弱で侵害された暗号に取って代わりました 。 [20] [21] [19] SSH-2の新機能には、単一のSSH接続で任意の数の シェル セッションを実行できる機能が含まれます。 [22] SSH-2はSSH-1よりも優れており人気があったため、libssh(v0.8.0+)、 [23] Lsh [24] Dropbear [25]などの実装では 、 最終的にSSH-2プロトコルのみをサポートするようになりました。
バージョン1.99
2006年1月、バージョン2.1が確立されてからかなり経ってから、 RFC 4253は、2.0とそれ以前のバージョンをサポートするSSHサーバーは、プロトコルバージョンを1.99として識別する必要があることを規定しました。 [26]このバージョン番号は、過去のソフトウェアリビジョンを反映したものではなく、 下位互換性 を識別するための方法です 。
OSSH と OpenSSH
1999年、開発者たちはフリーソフトウェア版の提供を望み、オープンソースライセンス の下で最後にリリースされたSSHプログラムの1.2.12リリースからソフトウェア開発を再開しました 。 [27] これは、Björn GrönvallのOSSHソフトウェアのコードベースとして機能しました。 [28] その後まもなく、 OpenBSD 開発者は Grönvallのコード をフォークし、 OpenSSH を作成しました。これはOpenBSDリリース2.6に同梱されていました。このバージョンから、OpenSSHを他のオペレーティングシステムに移植するための「移植性」ブランチが形成されました。 [29]
2005年時点では [update] 、 OpenSSHは 最も人気のあるSSH実装であり、多くのオペレーティングシステムディストリビューションのデフォルトバージョンでした。一方、OSSHは廃止されました。 [30] OpenSSHは引き続きメンテナンスされ、SSH-2プロトコルをサポートしていますが、OpenSSH 7.6リリースではコードベースからSSH-1のサポートが削除されました。
未来
2023年には、従来のSSHに代わるプロトコルとして、フランソワ・ミシェル博士課程学生とオリヴィエ・ボナベンチャー教授によって SSH3 [31] [32] [33] という名称で提案され、そのコードはオープンソース化されました。 [34]この新バージョンは、オリジナルのSSH接続プロトコルを実装していますが、 QUIC 上で動作する HTTP/3 上で動作します 。以下のような複数の機能を提供します。
セッションの確立が高速化され、 ラウンドトリップの遅延 回数が5 ~ 7 回から 3 回に減少します。
高いセキュリティ: SSHv2 は独自のプロトコルに依存しますが、 SSH3 は TLS 1.3 、 QUIC 、および HTTP を活用します。
UDPポート転送
X.509証明書
OpenIDコネクト
しかし、SSH3という名称については議論が続いており、プロジェクトではより適切な名称に変更することを目指しています。 [35] この議論は、この新しい実装がSSHプロトコルを大幅に改訂するものであり、SSH3と呼ぶべきではないことを示唆していることに端を発しています。
用途
SSH 経由でX11 アプリケーションをトンネリングする例 : ユーザー「josh」は、ローカル マシン「foofighter」からリモート マシン「tengwar」に「SSHed」して、 xeyes を実行します。
Windows 上で実行されている PuTTY を使用して SSH 経由で OpenWrt にログインします 。
SSHは、多くのプラットフォーム(ほとんどの Unix 系OS( Linux 、 Apple の macOS を含む BSD系OS 、 Solaris など))で利用可能なプロトコルです。ただし、一部のアプリケーションでは、特定のSSHクライアントまたは サーバー でのみ利用可能な機能、または特定のSSHクライアントまたはサーバーでのみ利用可能な機能が必要となる場合があります。例えば、SSHプロトコルを使用して VPNを実装することは可能ですが、現時点では OpenSSH サーバーおよびクライアント実装
でのみ利用可能です。
リモートホスト上のシェルにログインする場合( Telnet と rloginの 置き換え)
リモートホスト上で単一のコマンドを実行する場合( rsh の置き換え)
リモートサーバーへの自動(パスワードなし)ログインを設定する場合(例えば OpenSSH [36] を使用)
rsync と組み合わせて、 ファイルを効率的かつ安全にバックアップ、コピー、ミラーリングします。
ポート 転送 の場合
トンネリング 用( 異なるネットワーク間でパケットを ルーティングし たり、 2 つの ブロードキャスト ドメインを 1 つに ブリッジしたりする VPN と混同しないでください )。
本格的な暗号化VPNとして使用する場合。この機能は OpenSSH サーバーとクライアントのみでサポートされます。
リモート ホストから X を転送する場合 (複数の中間ホストを経由可能)
SOCKS プロトコル をサポートする SSH クライアントとの暗号化されたプロキシ接続を介して Web を閲覧します 。
SSHFS を使用して、リモート サーバー上のディレクトリを ローカル コンピューター上の ファイル システム として安全にマウントします。
上記の 1 つ以上のメカニズムを通じて、サーバーの自動リモート監視および管理を行います。
SSH をサポートするモバイル デバイスまたは組み込みデバイスでの開発用。
ファイル転送プロトコルを保護するため。
ファイル転送プロトコル
Secure Shell プロトコルは、いくつかのファイル転送メカニズムで使用されます。
建築
SSH-2 バイナリ パケットの図。
SSH プロトコルには、3 つの個別のコンポーネントを持つ階層化アーキテクチャがあります。
トランス ポート層 ( RFC 4253)は通常、 TCP/IPの 伝送制御プロトコル (TCP)を使用し 、 ポート番号 22をサーバーのリスニングポートとして予約します。この層は、初期の鍵交換とサーバー認証を処理し、暗号化、圧縮、整合性検証を設定します。トランスポート層は、最大32,768バイトのプレーンテキストパケットを送受信するためのインターフェースを上位層に公開しますが、実装によってはそれ以上のサイズも許容されます。また、トランスポート層は、通常1GBのデータが転送された後、または1時間が経過した後(いずれか早い方)に鍵の再交換を行います。
ユーザー 認証層 ( RFC 4252)はクライアント認証を処理し、一連の認証アルゴリズムを提供します。認証は クライアント主導で行われ ます。つまり、パスワードの入力を求められる場合、サーバーではなくSSHクライアントが要求することもあります。サーバーはクライアントの認証要求に応答するだけです。広く使用されているユーザー認証方式には、以下のものがあります。
パスワード : パスワードの変更機能を含む、簡単なパスワード認証方式。すべてのプログラムがこの方式を実装しているわけではありません。
publickey : 公開鍵ベースの認証 方法 。通常は少なくとも DSA 、 ECDSA 、または RSA の 鍵ペアをサポートし、他の実装では X.509 証明書もサポートされます。
キーボードインタラクティブ ( RFC 4256):サーバーが情報入力のための1つ以上のプロンプトを送信し、クライアントがそれらを表示してユーザーが入力した応答を返す多用途の認証方式。S /Key や SecurID などの ワンタイムパスワード認証を提供するために使用されます。PAM が 基盤となるホスト認証プロバイダーである場合、一部のOpenSSH構成で効果的にパスワード認証を提供するために使用され、単純な パスワード 認証方式のみをサポートするクライアントではログインできない場合があります 。
GSSAPI認証方式は、 Kerberos 5 や NTLM などの外部メカニズムを用いてSSH認証を実行するための拡張可能なスキームを提供し 、 SSHセッションへの シングルサインオン 機能を提供します。これらの方式は通常、組織内での使用を目的とした商用SSH実装によって実装されていますが、OpenSSHにもGSSAPI実装が実装されています。
接続 層 ( RFC 4254)は、チャネル、チャネル要求、およびグローバル要求の概念を定義し、提供されるSSHサービスを定義します。単一のSSH接続は複数の論理チャネルに同時に多重化され、各チャネルは双方向にデータを転送します。チャネル要求は、端末ウィンドウのサイズ変更やサーバー側プロセスの終了コードなど、帯域外チャネル固有のデータを中継するために使用されます。さらに、各チャネルは受信ウィンドウサイズを使用して独自のフロー制御を実行します。SSHクライアントは、グローバル要求を使用してサーバー側ポートの転送を要求します。標準的なチャネルタイプには以下が含まれます。
ターミナルシェル、SFTP、および exec リクエスト(SCP 転送を含む)用の シェル
クライアントからサーバーへの転送接続用の direct-tcpip
サーバーからクライアントへの転送接続用の forwarded-tcpip
SSHFP DNS レコード (RFC 4255) は 、 ホストの信頼性の検証を支援するために、公開ホスト キーのフィンガープリントを提供します。
このオープンアーキテクチャは非常に柔軟性が高く、SSHをセキュアシェル以外にも様々な用途に使用できます。トランスポート層の機能だけでも トランスポート層セキュリティ(TLS)に匹敵します。ユーザー認証層はカスタム認証方式によって高度に拡張可能で、接続層は多数のセカンダリセッションを単一のSSH接続に多重化する機能を提供します。これは BEEP に匹敵する機能であり 、TLSでは利用できません。
アルゴリズム
脆弱性
SSH-1
1998年、SSH 1.5に脆弱性が発見されました。この脆弱性は、 このバージョンのプロトコルで使用されている CRC-32によるデータ整合性保護が不十分であったため、暗号化されたSSHストリームに不正なコンテンツを挿入できるものでした。 [42] [43] SSH Compensation Attack Detector [44] として知られる修正が、 ほとんどの実装に導入されました。これらの更新された実装の多くには、新たな 整数オーバーフロー 脆弱性 [45] が存在し、攻撃者はSSHデーモンの権限(通常はroot)で任意のコードを実行できました。
2001年1月、 IDEA 暗号化セッションの最後のブロックを攻撃者が変更できる脆弱性が発見されました 。 [46] 同月、悪意のあるサーバーがクライアント認証を別のサーバーに転送できる脆弱性も発見されました。 [47]
SSH-1には脆弱性をもたらす固有の設計上の欠陥があるため、現在では一般的に廃止されていると考えられており、SSH-1へのフォールバックを明示的に無効にすることで回避する必要があります。最近のほとんどのサーバーとクライアントはSSH-2をサポートしています。 [47]
CBC平文復元
2008年11月、SSHの全バージョンに理論上の脆弱性が発見されました。この脆弱性により、当時の標準のデフォルト暗号化モードである CBC を使用して暗号化された暗号文のブロックから最大32ビットの平文を復元することが可能になりました。 [48] 最も簡単な解決策は、 CBCモードの代わりに CTR (カウンターモード)を使用することです。これにより、SSHは攻撃に対して耐性を持つようになります。 [48]
NSAによる暗号解読の疑い
2014年12月28日、 デア・シュピーゲル誌 は内部告発者 エドワード・スノーデン が漏洩した機密情報 [49] を公開しました。この情報によると、 国家安全保障局 (NSA)はSSH通信の一部を解読できる可能性があります。しかし、このプロセスに関連する技術的な詳細は明らかにされていません。2017年に CIAの ハッキングツール BothanSpy と Gyrfalconが 分析された結果、SSHプロトコルは侵害されていないことが示唆されました [50] 。
スッポンの攻撃
2023年に、現在のほとんどのssh実装に対する新しい中間者攻撃が発見されました。これは 発見者によって Terrapin攻撃と名付けられました。 [51] [52] ただし、本物のsshセッションを傍受する必要があることでリスクは軽減され、攻撃の範囲は限定されており、幸運にもほとんどの場合接続が失敗します。 [53] [54] ssh開発者は、この攻撃の主な影響は sshの キーストロークタイミング難読化機能を低下させることであると述べています。 [54] この脆弱性はOpenSSH 9.6で修正されましたが、修正を完全に有効にするにはクライアントとサーバーの両方をアップグレードする必要があります。
標準ドキュメント
IETF 「secsh」 ワーキング グループ による 以下の RFC出版物では、提案された インターネット標準 としての SSH-2 が文書化されています 。
RFC 4250 – セキュアシェル(SSH)プロトコルの割り当てられた番号
RFC 4251 – セキュアシェル(SSH)プロトコルアーキテクチャ
RFC 4252 – セキュアシェル(SSH)認証プロトコル
RFC 4253 – セキュアシェル(SSH)トランスポート層プロトコル
RFC 4254 – セキュアシェル(SSH)接続プロトコル
RFC 4255 – DNSを使用してセキュアシェル(SSH)キーフィンガープリントを安全に公開する
RFC 4256 – セキュアシェルプロトコル(SSH)の汎用メッセージ交換認証
RFC 4335 – セキュアシェル(SSH)セッションチャネルブレーク拡張
RFC 4344 – セキュアシェル(SSH)トランスポート層暗号化モード
RFC 4345 – セキュアシェル(SSH)トランスポート層プロトコルの改良された Arcfour モード
プロトコル仕様は、後に次の出版物によって更新されました。
RFC 4419 – セキュアシェル(SSH)トランスポート層プロトコルのためのDiffie-Hellmanグループ交換 (2006年3月)
RFC 4432 – セキュアシェル(SSH)トランスポート層プロトコルのためのRSA鍵交換 (2006年3月)
RFC 4462 – セキュアシェル(SSH)プロトコルのための汎用セキュリティサービスアプリケーションプログラムインターフェース(GSS-API)認証および鍵交換 (2006年5月)
RFC 4716 – セキュアシェル(SSH)公開鍵ファイル形式 (2006年11月)
RFC 4819 – セキュアシェル公開鍵サブシステム (2007年3月)
RFC 5647 – セキュアシェルトランスポート層プロトコルのAESガロアカウンタモード (2009年8月)
RFC 5656 – セキュアシェルトランスポート層における楕円曲線アルゴリズムの統合 (2009年12月)
RFC 6187 – セキュアシェル認証のための X.509v3 証明書 (2011 年 3 月)
RFC 6239 – セキュアシェル(SSH)用のスイートB暗号化スイート (2011年5月)
RFC 6594 – SSHFPリソースレコードにおけるRSA、デジタル署名アルゴリズム(DSA)、楕円曲線DSA(ECDSA)とSHA-256アルゴリズムの使用 (2012年4月)
RFC 6668 – セキュアシェル(SSH)トランスポート層プロトコルにおけるSHA-2データ整合性検証 (2012年7月)
RFC 7479 – Ed25519 SSHFPリソースレコード (2015年3月)
RFC 5592 – 簡易ネットワーク管理プロトコル(SNMP)のセキュアシェルトランスポートモデル (2009年6月)
RFC 6242 – セキュアシェル(SSH)経由のNETCONFプロトコルの使用 (2011年6月)
RFC 8332 – セキュアシェル(SSH)プロトコルにおけるSHA-256およびSHA-512を使用したRSA鍵の使用 (2018年3月)
RFC 8709 – セキュアシェル(SSH)プロトコルのEd25519およびEd448公開鍵アルゴリズム (2020年2月)
draft-gerhards-syslog-transport-ssh – SYSLOG の SSH トランスポートマッピング (2006 年 7 月)
draft-ietf-secsh-filexfer – SSH ファイル転送プロトコル (2006 年 7 月)
draft-ietf-sshm-ssh-agent - SSH エージェント プロトコル (2025 年 3 月)
さらに、 OpenSSH プロジェクトには、いくつかのベンダー プロトコル仕様/拡張機能が含まれています。
OpenSSHプロトコルの概要
OpenSSH 証明書/キーの概要
OpenSSH FIDO/u2f サポート
参照
参考文献
^ ab T. Ylonen; C. Lonvick (2006年1月). セキュアシェル(SSH)プロトコルアーキテクチャ. IETF Trust. doi : 10.17487/RFC4251 . RFC 4251.
^ 「ミズーリ大学S&T: セキュアTelnet」。
^ abc T. Ylonen; C. Lonvick (2006年1月). セキュアシェル(SSH)認証プロトコル. IETF Trust. doi : 10.17487/RFC4252 . RFC 4252.
^ 「承認キーの設定方法」。2011年5月10日時点のオリジナルよりアーカイブ。
^ Win-32 OpenSSH
^ 「WinSCPホームページ」。2014年2月17日時点のオリジナルよりアーカイブ。
^ 「PortableApps.comのWinSCPページ」。2014年2月16日時点のオリジナルよりアーカイブ。
^ 「PortableApps.comのPuTTYページ」。2014年2月16日時点のオリジナルよりアーカイブ。
^ Amies, A; Wu, CF; Wang, GC; Criveti, M (2012). 「クラウド上のネットワーキング」. IBM developerWorks . 2013年6月14日時点のオリジナルよりアーカイブ。
^ 「サービス名およびトランスポート プロトコル ポート番号レジストリ」。
^ 「サービス名とトランスポートプロトコルポート番号レジストリ」。iana.org 。 2001年6月4日時点のオリジナルよりアーカイブ。
^ Seggelmann, R.; Tuxen, M.; Rathgeb, EP (2012年7月18~20日). SSH over SCTP — SCTPへの適応によるマルチチャネルプロトコルの最適化 . 第8回国際通信システム、ネットワーク、デジタル信号処理シンポジウム (CSNDSP). pp. 1~ 6. doi :10.1109/CSNDSP.2012.6292659. ISBN 978-1-4577-1473-3 . S2CID 8415240。
^ Tatu Ylönen. 「新しいスケルトンキー:ネットワーク環境の鍵を変える」。2017年8月20日時点のオリジナルよりアーカイブ。
^ Tatu Ylönen. 「SSHポート」。2017年8月3日時点のオリジナルよりアーカイブ。
^ Ylönen, Tatu. 「SSHポートの物語 22」 www.ssh.com . 2023年11月30日 閲覧 。
^ バレット, ダニエル・J.; シルバーマン, リチャード・E. (2001). SSH, the secure shell: the definitive guide (第1版). Cambridge [Mass.]: O'Reilly. p. 11. ISBN 978-0-596-00011-0 。
^ Nicholas Rosasco、David Larochelle著「より安全な技術がレガシー市場で成功する理由と方法:SSHの成功からの教訓」 (PDF) 。Barrett 、 Silverman 著『SSH, the Secure Shell: The Definitive Guide』(O'Reilly & Associates、2001年) を引用 。バージニア大学コンピュータサイエンス学部。 2006年6月25日時点のオリジナルからアーカイブ (PDF) 。 2006年5月19日 閲覧 。
^ IETF (インターネット技術タスクフォース): secsh のデータトラッカー
^ ab RFC4252: セキュアシェル(SSH)認証プロトコル、2006年1月
^ O'Reily: セキュアシェル決定版ガイド
^ RFC4250: セキュアシェル(SSH)プロトコル:割り当てられた名前、2006年1月、16ページ
^ 「SSH よくある質問」。2004年10月10日時点のオリジナルよりアーカイブ。
^ "libssh".
^ 「セキュアシェルプロトコルのGNU実装」。2012年2月4日時点のオリジナルよりアーカイブ。
^ “Dropbear SSH”. 2011年10月14日時点のオリジナルよりアーカイブ。
^ Ylonen, T.; Lonvick, C. 「古いクライアント、新しいサーバー」。セキュアシェル(SSH)トランスポート層プロトコル。IETF。sec. 5.1。doi : 10.17487 / RFC4253。RFC 4253 。
^ ssh-1.2.13 が利用可能になりました: コピーポリシーが変更されました (ssh を商用販売するには許可が必要になりましたが、使用は引き続きあらゆる目的で許可されています)
^ OSSHソース
^ 「OpenSSH: プロジェクトの履歴とクレジット」openssh.com. 2004年12月22日. 2013年12月24日時点のオリジナルよりアーカイブ 。 2014年4月27日 閲覧。
^ 「OSSH Information for VU#419241」 CERT Coordination Center . 2006年2月15日. 2007年9月27日時点のオリジナルよりアーカイブ。 いずれにせよ、osshは古くて時代遅れなので、使用はお勧めしません。
^ 「HTTP/3接続を介したリモートターミナル」. datatracker.ietf.org . 2024年8月1日.
^ 「HTTP/3接続上のセキュアシェル」 www.ietf.org . 2024年2月28日.
^ Michel, François; Bonaventure, Olivier (2023-12-12). 「SSH3に向けて:HTTP/3がセキュアシェルをどのように改善するか」 arXiv : 2312.08396 [cs.NI].
^ "ssh3". github.com 。 2024 年 7 月 12 日。
^ 「HTTP/3接続上のセキュアシェル」. datatracker.ietf.org . 2024年2月28日.
^ Sobell, Mark (2012). 『Linuxコマンド、エディタ、シェルプログラミング実践ガイド (第3版)』アッパーサドルリバー、ニュージャージー州: Prentice Hall. pp. 702– 704. ISBN 978-0133085044 。
^ Harris, B.; Velvindron, L. (2020年2月). Ed25519およびEd448セキュアシェル(SSH)プロトコル公開鍵アルゴリズム. doi : 10.17487/RFC8709 . RFC 8709.
^ ab Stebila, D.; Green, J. (2009年12月). セキュアシェルトランスポート層への楕円曲線アルゴリズムの統合. doi : 10.17487/RFC5656 . RFC 5656. 2012年 11月12日 閲覧 .
^ Miller, D.; Valchev, P. (2007年9月3日). SSHトランスポート層プロトコルにおけるUMACの利用. ID draft-miller-secsh-umac-00.
^ Ylonen, T.; Lonvick, C. セキュアシェル(SSH)トランスポート層プロトコル。IETF。doi : 10.17487 / RFC4253。RFC 4253 。
^ Igoe, K.; Solinas, J. (2009年8月). Secure Shellトランスポート層プロトコルのためのAESガロアカウンタモード. doi : 10.17487/RFC5647 . RFC 5647.
^ 「SSH挿入攻撃」。Core Security Technologies 。2011年7月8日時点のオリジナルよりアーカイブ。
^ 「脆弱性ノート VU#13877 - 弱いCRCにより、ブロック暗号で暗号化されたSSHセッションにパケットインジェクションが可能になる」 US CERT 。2010年7月10日時点のオリジナルからのアーカイブ。
^ 「SSH CRC-32補正攻撃検出機能の脆弱性」 SecurityFocus . 2008年7月25日時点のオリジナルよりアーカイブ。
^ 「脆弱性ノート VU#945216 - SSH CRC32攻撃検出コードにリモート整数オーバーフローが含まれている」 US CERT 。2005年10月13日時点のオリジナルよりアーカイブ。
^ 「脆弱性ノート VU#315308 - 弱いCRCにより、IDEA暗号化SSHパケットの最終ブロックが予告なく変更される可能性がある」 US CERT 。2010年7月11日時点のオリジナルからのアーカイブ。
^ ab 「脆弱性ノート VU#684820 - SSH-1 により、悪意のあるサーバーがクライアント認証を別のサーバーに転送できるようになる」 US CERT 。2009年9月1日時点のオリジナルからアーカイブ。
^ ab 「脆弱性ノート VU#958563 - SSH CBC 脆弱性」 US CERT . 2011年6月22日時点のオリジナルよりアーカイブ。
^ 「Prying Eyes: Inside the NSA's War on Internet Security」 Spiegel Online 、2014年12月28日。2015年1月24日時点のオリジナルよりアーカイブ。
^ Ylonen, Tatu (2017年8月3日). 「BothanSpy & Gyrfalcon - SSH向けCIAハッキングツールの分析」. ssh.com . 2018年 7月15日 閲覧 。
^ “Terrapin Attack”. terrapin-attack.com . 2023年12月20日 閲覧 。
^ ジョーンズ、コナー. 「SSHはTerrapinのダウングレード脆弱性によって揺さぶられるが、揺さぶられることはない」 www.theregister.com . 2023年12月20日 閲覧 。
^ ジョーンズ、コナー. 「SSHはTerrapinのダウングレード脆弱性によって揺さぶられるが、揺さぶられることはない」 www.theregister.com . 2023年12月20日 閲覧 。
^ ab 「OpenSSH 9.6 リリースノート」。openssh.com 。 2023年12月18日。
さらに読む
外部リンク
Wikimedia Commons には SSH に関連するメディアがあります。
Wikibooksには、インターネット技術/SSH に関する書籍があります。
SSHプロトコル
M. Joseph; J. Susoy (2013年11月). P6Rのセキュアシェル公開鍵サブシステム. doi : 10.17487/RFC7076 . RFC 7076.
オリジナルのSSHソースtarball