Secure Shell(セキュア シェル、SSH)は、暗号や認証技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証を含むすべてのネットワーク上の通信が暗号化される。

概要

従来からTelnet、rsh、rloginなどリモートホストのシェルを利用するためのプロトコルは存在した。しかしながら、これらはネットワークに平文でパスワードを送信するため、パスワードを覗き見(盗聴)される危険性が高く、特にインターネット上では大きな問題であった。SSHは通信を暗号化した代替の通信プロトコルである。

オリジナルのSSHは、フィンランド出身のプログラマであるタトュ・ウルネン (Tatu Ylönen) により1995年に開発され、はじめフリーで公開された。しかし、同年12月には、SSH社 (SSH Communications Security) が設立され、プロプライエタリソフトウェアとなった。

ファイルコピー用のコマンドrcpを代替するscpや、FTPを代替するsftpも用意されている。

SSHの暗号通信はいわゆるハイブリッド暗号であり:

  • 鍵交換アルゴリズム(ディフィー・ヘルマン鍵共有など)で共通鍵暗号のセッション鍵を生成し
  • 共通鍵暗号(トリプルDES、AESなど)で通信を暗号化し
  • 公開鍵暗号(RSAやDSA)でホストやユーザ認証を行なう

認証方式は公開鍵認証の他にも、パスワード認証、ワンタイムパスワードなどが提供されており、各個人/企業の情報セキュリティポリシーに合わせて選択できる。

なりすましを防止するための仕組みも充実している。

現在はバージョン1と2の2種類のプロトコルが共存している。バージョン1は既知の脆弱性があり推奨されない。

商用、自由ソフトウェア含めて幾つかの実装があり、特許や互換性の問題などでやや混乱があったが、2006年にSSHおよびその関連技術がRFCとして制定された。2008年の時点で最も普及しているのは、オープンソースのOpenSSHである。Linuxなどでも標準利用されており、現在では単にSSHと言った場合、OpenSSHの実装系を指すことが多い。

ソフトウェア

SSHサーバ

  • OpenSSH (マルチプラットフォーム)
  • SSH Tectia Server (マルチプラットフォーム)
  • Reflection for Secure IT(マルチプラットフォーム)
  • Dropbear (Unix系)

SSHクライアント

  • OpenSSH (マルチプラットフォーム)
  • PuTTY (Windows, UNIX)
  • Xshell (Windows)
  • Tera Term (Windows)
  • Poderosa (Windows)
  • RLogin (Windows)
  • SSH Tectia Client (マルチプラットフォーム)
  • Reflection for Secure IT(マルチプラットフォーム)
  • WebSSH

セキュリティリスク

SSH接続時にサーバ鍵のフィンガープリントを確認しないと、意図しないリモートコンピュータに接続している事に気づかず、通信内容を盗聴される恐れがある。

SSHサーバによっては、設定次第でブルートフォースアタックでシェルへのアクセスを許してしまう。IPAが発表している不正アクセスの届け出状況では、SSHポート経由でパスワードクラッキングが行われた例が繰り返し発表されている。「パスワード管理の徹底」「セキュリティパッチの適用」「アクセスログの監視による攻撃の迅速な発見」のような対策に加えて、公開鍵認証を採用することをIPAは推奨している。

2023年10月頃にTerrapin Attackという中間者攻撃法が報告された。

脚注

関連項目

  • TLS
  • Telnet
  • File Transfer Protocol
  • SSH File Transfer Protocol
  • Secure copy
  • FISH

[PDF] SSH The Secure Shell free tutorial for Beginners

What Is SSH Or Secure Shell Protocol? ProDigitalWeb

What Is SSH (Secure Shell) and How Does It Work? Helenix

SSH Secure Shell

SSH Secure Shell 3.2.9 Download (Windows / Deutsch) bei