Secure Shell(SSH)とは
Secure Shell(SSH)は、ネットワークを介してリモートコンピュータと安全に
通信するためのプロトコルです。
暗号化技術と認証技術を用いることで、
パスワードなどの機密情報を保護し、
盗聴や改ざんのリスクを低減します。従来のTelnetやrshなどのプロトコルに代わる、より安全な
通信手段として広く利用されています。
SSHの歴史
SSHは、
1995年にフィンランドのプログラマー、タトュ・ウルネンによって開発されました。当初はフリーソフトウェアとして公開されましたが、後にSSH Communications Security社が設立され、
プロプライエタリソフトウェアとなりました。
SSHの仕組み
SSHは、以下の3つの主要な技術を組み合わせて安全な
通信を実現しています。
1.
鍵交換アルゴリズム:
ディフィー・ヘルマン鍵共有などのアルゴリズムを用いて、共通鍵
暗号で利用するセッション鍵を生成します。
2.
共通鍵暗号: 生成されたセッション鍵を用いて、トリプルDESやAESなどの共通鍵
暗号で
通信内容を
暗号化します。
3.
公開鍵[[暗号]]: RSAやDSAなどの
公開鍵[[暗号]]を用いて、ホストやユーザーの認証を行います。
SSHの認証方式
SSHでは、以下の認証方式が利用可能です。
パスワード認証: パスワードによる認証。
公開鍵認証: 秘密鍵と公開鍵のペアを利用した認証。
パスワード認証よりも安全性が高い。
ワンタイムパスワード: 使い捨てパスワードを利用した認証。
SSHのバージョン
現在、SSHにはバージョン1とバージョン2の2種類が存在します。バージョン1には既知の脆弱性があるため、バージョン2の使用が推奨されています。
SSHの関連技術
SSHには、ファイルコピー用のscpや、FTPを代替するsftpといった関連技術も存在します。これらの技術もSSHの暗号化機能を活用し、安全なファイル転送を実現します。
SSHの実装
SSHは、商用およびフリーのソフトウェアで様々な実装が提供されています。以下に代表的なソフトウェアを示します。
SSHサーバ
OpenSSH: オープンソースで最も普及しているSSHサーバ。
LinuxなどのUNIX系OSで標準的に利用されています。
SSH Tectia Server: 商用のSSHサーバ。
Reflection for Secure IT: 商用のSSHサーバ。
Dropbear: 軽量なSSHサーバ。
SSHクライアント
OpenSSH: オープンソースのSSHクライアント。多くのOSで利用可能。
PuTTY: Windowsで利用される代表的なSSHクライアント。
Xshell: Windowsで利用される商用SSHクライアント。
Tera Term: Windowsで利用されるオープンソースのSSHクライアント。
Poderosa: Windowsで利用されるSSHクライアント。
RLogin: Windowsで利用されるSSHクライアント。
SSH Tectia Client: 商用SSHクライアント。
Reflection for Secure IT: 商用SSHクライアント。
WebSSH: ブラウザ上でSSH接続を実現する。
SSHのセキュリティリスク
SSHは安全な
通信プロトコルですが、以下のようなセキュリティリスクが存在します。
中間者攻撃: SSH接続時にサーバ鍵のフィンガープリントを確認しないと、意図しないサーバに接続していることに気づかず、通信内容を盗聴される可能性があります。
ブルートフォースアタック: SSHサーバの設定によっては、ブルートフォースアタック(総当たり攻撃)によって
シェルへのアクセスを許してしまう可能性があります。特に
パスワード認証を利用している場合は、強力な
パスワードを設定することが重要です。
Terrapin Attack: 2023年10月頃に報告された中間者攻撃の一種。SSHの暗号化通信を一部変更することで、通信を傍受し内容を解読可能にする。
セキュリティ対策
IPA(情報処理推進機構)は、以下の対策を推奨しています。
パスワード管理の徹底: 強力な
パスワードを設定し、定期的に変更する。
セキュリティパッチの適用: SSHサーバのセキュリティパッチを最新の状態に保つ。
アクセスログの監視: 不正なアクセスを早期に発見し、対応できるようにする。
公開鍵認証の採用: パスワード認証よりも安全な公開鍵認証を採用する。
まとめ
SSHは、リモートコンピュータへの安全なアクセスを実現するための重要なプロトコルです。適切なセキュリティ対策を講じることで、より安全に利用することができます。
関連項目
TLS
Telnet
File Transfer Protocol
SSH File Transfer Protocol
Secure copy
*
FISH)