ブログや記事の冒頭に太字で「Web ホスティング会社が 1,300 万件のプレーンテキストパスワードを紛失」と書かれていたとしたら、どう感じるでしょうか?
IT セキュリティチームをこれほど震撼させるような見出しはなかなかないと思いますが、これば実際にあった見出しです。セキュリティチームにとっては背筋が寒くなるホラー映画のようです。
インターネットが存在する限り、2 つ以上のエンドポイント間でデータを転送するアクティビティには常にリスクが伴います。ファイル転送のためにユーザーがログインした瞬間から脆弱性ポイントが発生します。ユーザー名も、パスワードも、データも、すべて実行可能なターゲットになり得ます。
FPS と Telnet プロトコルについて
SSH について述べる場合、まず、先行の FPS と Telnet プロトコル、マネージド・ファイル・トランスファーの基礎とも言える、これらのプロトコルについて触れておいた方がいいかもしれません。
すべての形式のデータ転送は、クライアントとサーバーの 2 つのエンドポイントで発生します。FPS などのファイル転送プロトコルを使うことで、転送が首尾よく達成できます。ただし、FPS には問題も多く、中でも最大の難点は、暗号化されていない点です。
ユーザーがクライアントとサーバーのエンドポイント間で重要な機密情報を共有するようになると、セキュリティを強化する必要が出てきます。そこで、Telnet や RSH などのログインプロトコルに、対称キーによるパスワードベースの認証が要求されるようになりました。
ログインプロトコルで、クライアントとサーバーが一致するキーとパスワードを持っている必要があるため、クライアントはサーバーにキーを送信します。一致が確認されると、双方向のデータ転送が可能になります。
SSH プロトコルの出現
対称キーによるパスワードベースの認証によってデータ保護が確保できたと思われましたが、あまり喜んでもいられず、色々な問題が次々に判明しました。
ルーティングスプーフィング、パケットスニッフィング、サービス拒否攻撃など、ハッカーはあの手この手で攻撃を仕掛けてきます。
例えば、悪意あるユーザーが、クライアントの IP アドレスを自分の IP アドレスに変更し、プレーンテキストのパスワードや重要なデータなどの暗号化されていない情報を収集する可能性があります。また、別の悪意あるユーザーが、ユーザー名にアクセスし、意図的に間違ったパスワードを入力して、主要なクライアントへのサービス拒否攻撃を行う可能性もあります。
Telnet、RSH、FPS プロトコルが安全ではないことは確認されても、それらに代わる安全なプロトコルはなかなか現れませんでした。Tatu Ylönen 氏が個人的な使用のためにセキュアシェル (Secure Shell) プロトコルを考案したのは、1995年のことでした。
それから15年ほどが経った今では、SSH (Secure Shell) プロトコルは世界中の何百万もの企業で使用されています。
SSH ファイル転送プロトコル
SSH (Secure Shell) プロトコルは、FTP や Telnet プロトコルのセキュリティの不備を補うために考案されました。Telnet ではクライアント/サーバー認証に2つのチャネルを使用しますが、SSH は1つのチャネルだけを使用します。クライアントは自分のキーをサーバーに送信し、サーバーのキーと一致した場合、データの双方向転送を開始することができます。
それだけでなく、SSH は AES などの業界標準の暗号化を使用してデータを保護します。暗号化を使用すると、もしデータが侵害されても、悪意あるユーザーはデータを解読することができません。また、SSH は、SHA-2 などのハッシュアルゴリズムを使用して、双方向転送中にデータが破損しないようにします。
業界標準の暗号化とハッシュアルゴリズムが搭載され、最後の仕上げは非対称の識別でしょうか?
SSH 認証と非対称識別
SSH では非対称識別が可能です。サーバーは暗号化を使用しクライアントキーとサーバーキーが異なることを確認します。ハッカーは2つのパスワードのうちのどちらかを取得できでも、両方を取得することができず、「中間者」攻撃はほとんど不可能になります。
SSH プロトコルのステップ
ステップ1:SSH クライアントは SSH サーバーにコンタクトして接続を開始
ステップ2:SSH サーバーは公開鍵を送信
ステップ3:SSH サーバーと SSH クライアントの両方がプロトコルと制約をネゴシエート
ステップ4:ユーザーがログインしてサーバーホストにアクセス
SSH 認証
SSH プロトコルの利点として、ユーザー認証にオプションがあることが挙げられます。ユーザーは、必要なセキュリティのレベルに応じて選択できます。
- パスワードベースの認証
パスワードベースの認証では、サーバーとクライアントはパスワードとキーを使用して、接続の確実性を認証します。
- キーベースの認証
キーベースの認証は、公開鍵と秘密鍵の使用に適用されます。サーバーは、秘密鍵とクライアントが要求したときに送信する公開鍵を持っています。
秘密鍵と公開鍵は常に類似しているわけではありませんが、アルゴリズムの変更と計算が行われ、同様の結果が得られます。アルゴリズムで公開鍵と秘密鍵の結果の一致が計算できれば、サーバーはユーザーアクセスを許可します。
SSH プロトコルの使用
SSH プロトコルは革新的な改善でした。SSH プロトコルを使う多くのアプリケーションが、B2B や B2C 企業の日常業務に取り入れられています。SSH プロトコルを使用する応用としては次のようなものがあります。
- ファイル転送
暗号化があるからです。SSH は AES アルゴリズムを利用しており、エンドポイント間でのデータとファイルの安全な転送を必要とする企業にとって中核的な重要さがあります。
- ソフトウェアアップデートとパッチの配信
単一のサーバーと数百万人のユーザーとの間で、パスワードを使用してソフトウェアの更新やパッチを認証しようとしたら、コントロールできなくて混乱を来たすのは必至です。テスラから数百万台の車への、またはアップルから数十億台の iPhone へのアップデートを考えてみてください。SSH を使用すると、認証を自動化し、データ転送を通じてシームレスな更新とパッチを配信することができます。
- ファイル転送の自動化
古いシステムを使用して、ユーザーとクライアント間で大量のファイル転送を行おうとすると、非常に時間がかかる大変な作業になります。ファイルを間違いなく受信できるよう、パスワードを覚えておくことをクライアントに要求することも現実的ではありません。SSH プロトコルは認証を自動化するので、自動ファイル共有がずっと簡単に行えます。
- 重要なネットワークインフラストラクチャのリモートメンテナンス
重要なインフラストラクチャを手動で管理する時代は過ぎ去りました。最近では、オペレーティングシステム、ルーター、サーバーハードウェアなどは、リモートで管理されています。そのためには、データ転送のための安全で自動化された認証システムが必要になります。最適なものは SSH です。
- パスワード管理の負担削減
対称的なパスワードとキー認証は大きな負担であり、また、1つのデータベースに数百万のパスワードを保存していると、何かあったときに大混乱を起こしかねません。秘密鍵と公開鍵を使う SSH は、サーバーアクセスを自動化するのに大いに役立ちます。
- 自動化されたマシン間プロセス
数百万台のマシンにわたるバックアップ、データベース更新、システム状態監視アプリケーションなどのプロセスは、時間がかかり、リスクもあります。数百万台のマシン間でデータとキーを自動的に転送し、自動マシン間プロセス認証を行うことが可能です。
- SSH とシングルサインオン:最適なマッチ
SSH に最も適合するアプリケーションが、この数年の間に台頭してきたシングルサインオンです。認証を自動化する SSH の機能で、シングルサインオン(Single Sign-On、SSO)とパスワードなしのアクセスが可能になりました。
クライアントがサーバーにアクセスしたり、サーバーを切り替えたりするたびにパスワードを入力する必要がなくなって、ログイン操作が最少化され、何でも抵抗なくスムーズに続行できるので、サインアップが増加しました。
SSH のメリットを有効利用
データセキュリティに関しては、満足のいくものと優れたものの間に微妙な境界線がありますが、MOVEit はそれを乗り越える手助けをします。SSH や SFPS などの安全な転送プロトコルを活用して、長年の経験で培われた比類ない安全なファイル共有機能を提供します。新しいレベルの ファイル共有セキュリティへの架け橋となる MOVEit にご興味がお有りの場合は、どうぞお気軽に お問い合わせください。
David Perez
David Perez has been in the tech industry for over 20 years, working for some of the top semiconductor, data center hardware, and enterprise software companies in Silicon Valley and beyond. David is currently the marketing manager for Progress's Managed File Transfer product, MOVEit. Progress is the leading provider of products to develop, deploy, and manage high-impact business applications.