SSHプロトコル

このページは、SSHプロトコルについてです。 その背後にある会社については、SSH コミュニケーションズセキュリティをご覧ください。 Linux の ssh コマンドの使い方については、ssh コマンドの使い方を参照してください。

SSH プロトコル (Secure Shell とも呼ばれます) は、あるコンピュータから別のコンピュータへ安全にリモートでログインするための方法です。 これは、強力な認証のためのいくつかの代替オプションを提供し、強力な暗号化で通信のセキュリティと整合性を保護します。 保護されていないログインプロトコル (telnet や rlogin など) や安全でないファイル転送方法 (FTP など) に代わる、安全な方法です。

SSH プロトコルの典型的な使用例

このプロトコルは企業ネットワークにおいて、次のような目的で使用されています。

  • ユーザーおよび自動化されたプロセスに安全なアクセスを提供する

  • インタラクティブで自動化されたファイル転送

  • リモートコマンドを発行する

  • ネットワークインフラおよび他の基幹システムコンポーネントを管理すること。

SSH プロトコルはどのように動作するか

プロトコルはクライアント/サーバーモデルで動作し、SSH クライアントが SSH サーバーに接続することにより確立されます。 SSH クライアントは接続のセットアッププロセスを駆動し、公開鍵暗号を使用して SSH サーバーの身元を確認します。 セットアップ段階の後、SSH プロトコルは強力な対称暗号とハッシュ アルゴリズムを使用して、クライアントとサーバー間で交換されるデータのプライバシーと整合性を保証します。

以下の図は、安全なシェル接続の簡略化したセットアップのフローを示しています。 最も一般的なものは、パスワードと公開鍵認証です。

公開鍵認証方式は、主に自動化のために使用され、時にはシステム管理者がシングル サインオンのために使用することもあります。 これは、私たちが予想していたよりもはるかに広く使用されていることが判明しています。 公開鍵と秘密鍵という暗号鍵のペアを持ち、サーバー上で公開鍵を構成してアクセスを承認し、秘密鍵のコピーを持っている人にサーバーへのアクセスを許可するというものです。 認証に使用する鍵は、SSH鍵と呼ばれます。 公開鍵認証は、米国政府で使用されている CAC や PIV カードなどのスマートカードでも使用されています。

鍵ベースの認証の主な用途は、安全な自動化を可能にすることです。 自動化された安全なシェル ファイル転送は、アプリケーションをシームレスに統合するため、また、自動化されたシステムの& 構成管理のために使用されます。

大きな組織は想像以上に多くの SSH 鍵を持っており、SSH 鍵の管理が非常に重要であることが分かってきました。 SSH 鍵は、ユーザー名とパスワードと同じようにアクセスを許可します。

いくつかのケースでは、顧客環境の本番サーバーへのアクセスを承認する数百万の SSH 鍵が見つかりましたが、鍵の 90% は実際には未使用で、プロビジョニングされたが終了されなかったアクセスであることが判明しました。 SSH の使用に関しても適切なポリシー、プロセス、および監査を保証することは、適切な ID およびアクセス管理にとって重要です。 従来のID管理プロジェクトでは、SSHキーを無視することで、全クレデンシャルの90%も見落とされていました。

SSH は強力な暗号化と整合性保護を提供します

一旦、SSH クライアントとサーバー間で接続が確立されると、送信されるデータはセットアップで交渉されたパラメーターにしたがって、暗号化されます。 ネゴシエーションの間、クライアントとサーバは使用される対称暗号アルゴリズムに同意し、使用される暗号鍵を生成します。 通信する当事者間のトラフィックは業界標準の強力な暗号化アルゴリズム (AES (Advanced Encryption Standard) など) で保護され、SSH プロトコルは標準のハッシュアルゴリズム (SHA-2 (Standard Hashing Algorithm) など) を使って送信データの完全性を保証する仕組みも備えています。

IETF SSH 標準規格と詳細な技術文書

コアプロトコル

SSH プロトコルが普及したとき、Tatu Ylonen は標準化のために IETF に持ち込んでいます。

RFC 4251 – The Secure Shell (SSH) Protocol ArchitectureRFC 4253 – The Secure Shell (SSH) Transport Layer ProtocolRFC 4252 – The Secure Shell (SSH) Authentication ProtocolRFC 4254 – The Secure Shell (SSH) Connection Protocol

SFTP file transfer protocol

The SFTP (SSH File Transfer Protocol) はおそらく現在最も広く使われている安全なファイル転送プロトコルと思われます。 これは SSH 上で動作し、現在 draft-ietf-secsh-filexfer-02

公開鍵ファイルフォーマット

公開鍵ファイルフォーマットは正式な標準ではありません (これは情報文書です) が、多くの実装がこのフォーマットをサポートしています。RFC 4716 – The Secure Shell (SSH) Public Key File Format

How to Cite SSH

研究論文で SSH を引用するには、以下のようにしてください:

Tatu Ylonen: SSH - Secure Login Connections over the Internet.Proceedings of the 6th USENIX Security Symposium, pp. 37-42,USENIX, 1996.

.