はじめに
ネットワークを介してコンピュータにアクセスする場合、システム管理者は、パスワードスニッフィングなどの悪意のあるサイバー攻撃から身を隠すための安全な接続が必要です。大規模なネットワークにはセキュリティ上の欠陥があるため、必要な保護を確保するには、TLS / SSL、IPsec、S / MIME、PGP、SSHなどの暗号化プロトコルが必要です。
この記事では、SSHプロトコルの概要(その機能、用語、使用例)を説明します。
SSHとはどういう意味ですか?
頭字語SSHは「SecureShell」の略です。 SSHプロトコルは、セキュリティで保護されていないリモートシェルプロトコルの安全な代替手段として設計されました。これは、クライアントとサーバーが安全なチャネルを介して通信するクライアントサーバーパラダイムを利用しています。
SSHプロトコルには3つの層があります:
- トランスポート層 。サーバーとクライアント間の安全な通信を確保し、データの暗号化/復号化を監視し、接続の整合性を保護します。また、データのキャッシュと圧縮も実行します。
- 認証レイヤー 。クライアント認証手順を実行します。
- 接続レイヤー 。認証後の通信チャネルを管理します。
SSHによって作成されたチャネルは、公開鍵暗号を使用してクライアントを認証します。接続が確立されると、SSHは、基盤となるネットワークインフラストラクチャに関係なく、情報を安全に交換するための暗号化された方法を提供します。
SSHは、Linux、macOS、BSDなどのUnixライクなオペレーティングシステム用に設計されました。ただし、Windowsでも機能します。
SSHの簡単な歴史
SSHは1995年にTatuYlönenによって作成されました。プロトコルはパスワードスニッフィングを防止するように設計されています ヘルシンキ工科大学での攻撃。現在SSH-1と呼ばれているプロトコルの最初のバージョンは、rsh、rlogin、Telnetなどのセキュリティで保護されていないプロトコルを置き換えるように設計されました。フリーウェアとして始まりましたが、すぐにプロプライエタリソフトウェアになりました。
YlönenのSSH-1が世界中で人気のあるツールになった後、インターネット技術特別調査委員会(IETF)は、プロトコルの後継を開発することを目的としたグループを結成しました。 2006年、SSH-2は新しい標準となり、Diffie-Helman鍵交換などのセキュリティが向上しました。
オープンソースコミュニティは、SSH-1のバージョン1.2.12に基づくSSHプロトコルバージョンであるOSSHを開発しました。 OpenBSD開発者は後にOSSHをフォークして、今日世界で最も人気のあるSSH実装であるOpenSSHを作成しました。バージョン7.6以降、OpenSSHはSSH-2のみをサポートします。 SSH-1のサポートは終了しました 。
SSHの用語
次の表には、SSHを使用するときに遭遇する可能性のあるいくつかの用語が含まれています。
用語 | 説明 |
---|---|
〜または$ HOME | UnixまたはUnixライクなシステム上のユーザーのホームディレクトリ。 |
認証レイヤー | SSH認証の実行を担当するレイヤー。 |
クライアント | サーバーとの接続を確立するためのクライアントプログラム。 |
クライアントマシン | SSHクライアントを実行しているコンピューター。 |
接続レイヤー | 通信チャネルを管理するSSHプロトコルのレイヤー。 |
ローカルコンピューター | その場所でSSHクライアントを実行しているコンピューター。 |
ローカルユーザー | ローカルコンピューターを介してSSHにアクセスするユーザー。 |
秘密鍵 | ローカルマシンで秘密として保持されるユーザー認証用の公開鍵と秘密鍵のペアの一部。 |
公開鍵 | 認証プロセス中にSSHサーバーにコピーされるユーザー認証用の公開鍵と秘密鍵のペアの一部。 |
リモートコンピューター | SSHクライアントが接続するSSHサーバーを実行しているコンピューター。 |
リモートユーザー | リモートコンピューターを介してSSHにアクセスするユーザー。 |
サーバー | SSHクライアントと通信するためのSSHサーバープログラム。 |
サーバーマシン | SSHサーバーを実行しているコンピューター。 |
SCP | セキュアコピー-SSHを利用して安全なファイル転送を行うCLIユーティリティ。 |
SFTP | Secure File TransportProtocol-SSHを使用してネットワークファイル転送を保護するプロトコル。TLS/SSLを活用するFTPSと混同しないでください。 |
トランスポート層 | SSHセッション全体を見下ろすSSHプロトコルのレイヤー。 |
SSHの使用
SSHは、安全な管理、リソースへのリモートアクセス、ソフトウェアパッチ、および更新を提供するためにデータセンターで広く使用されています。このプロトコルにより、保護されたルーター管理、サーバーハードウェアの保守、および仮想化プラットフォームの管理も可能になります。
使いやすさ、堅牢性、および多数の機能により、SSHはさまざまなシナリオに適用できます。
これらのシナリオは次のとおりです。
- リモートホストに接続しています。
- SFTPを使用したファイルのバックアップ、コピー、ミラーリング。
- クライアントのポートをサーバーのポートにマッピングして、TCP/IPおよびその他のネットワークプロトコルを保護します。
- Xウィンドウシステムをサーバーからクライアントに転送します。
- セキュリティで保護されたチャネルを介して機密データをトンネリングします。
- 仮想プライベートネットワークの使用。
SSHキーは、パスワードなしのログイン、構成管理、およびバックアップによるサーバーアクセスの自動化によく使用されます。
SSHの使用方法は?
SSHサーバーへの接続は、SSHクライアントを使用して実行されます。ほとんどのUnixベースおよびUnixライクなオペレーティングシステムには、デーモンとクライアントがプリインストールされています。これらのシステムでは、SSHクライアントはターミナルで利用できます。
ターミナルを使用してリモートホストに接続するには、ユーザーはsshコマンドに続いて、ユーザー名とサーバーアドレスまたはホスト名を発行します。
ssh [username]@[server_ip_or_hostname]
例:
Windows 10は、バージョン1709の時点でOpenSSHクライアントとサーバーを提供します。以前のバージョンのWindowsには機能としてSSHが含まれていなかったため、PuTTYなどのツールを使用してSSH接続を確立しました。 PuTTYは、SSHおよびTelnet用のGUIを備えたSSHクライアントです:
Windows用の他の一般的なSSHクライアントには次のものがあります。
- Bitvise
- WinSCP
- KiTTY
- Solar-PuTTY
- SmarTTY
SSHはどの程度安全ですか?
標準のセキュリティ対策を講じて使用する場合、SSHプロトコルは非常に安全であると見なされます。ただし、SSH接続のセキュリティを維持するには、人的要因が重要な役割を果たします。
SSHサーバーへのブルートフォース攻撃は一般的なシナリオです。攻撃者は、一般的なユーザー名とパスワードを使用して、多数のSSHサーバーに接続しようとします。サーバーにアクセスすると、権限昇格を使用してルートアカウントにアクセスします。
パスワードよりも安全な認証方法として、SSHキーをお勧めします。ただし、SSHキー管理が不十分な場合でも、重要な情報がキーの秘密保持に依存している組織にとっては重大なリスクがあります。
SSHキーはより優れた保護を提供しますが、SSHキーの誤用により、悪意のある個人が特権情報にアクセスできるようになる可能性があります。この情報には、データベース、ルーター、支払いシステムなどのアカウントとリソースが含まれます。
公開されたSSHポート もう1つの潜在的なセキュリティ上の弱点です。一部のマルウェアプログラムは、ポートが公開された状態でIoTデバイスを攻撃し、ローカルネットワークへのバックドアの入り口として使用します。
最後に、市場に出回っているSSHクライアントの数が多いということは、プロトコルのセキュリティがサードパーティのアプリのセキュリティにも依存していることを意味します。