セキュリティ実装技術
要点と定義
SSHは、遠隔ログインで通信経路を暗号化し、接続先サーバと利用者を確認するセキュアプロトコルです。通信を始めるとき、クライアントとサーバは暗号方式などを合意し、通信データの暗号化に使うセッション鍵を定めます。サーバ認証では、サーバがセッション識別子などに付けたディジタル署名を、クライアントが事前に正当性を確認したサーバの公開鍵で検証します。これにより、接続先が正当なサーバかを確認し、中間者によるなりすましを防ぐ助けになります。
公開鍵暗号方式では、秘密鍵で作成した署名を対応する公開鍵で検証します。サーバがクライアントの署名を検証する場合は、登録済みのクライアント公開鍵を使います。署名を作る秘密鍵と、検証に使う公開鍵の役割を取り違えないことが重要です。
署名による認証と通信データの暗号化は役割が異なります。SSHではセッション鍵を使った共通鍵暗号方式で通信データを暗号化します。共通鍵暗号は公開鍵暗号より処理が高速で、大量の通信データの暗号化に向きます。一方、共通鍵を共有する必要があるため、その鍵を安全に確立する手順も必要です。RSAは公開鍵暗号方式の例で、AESとKCipher-2は共通鍵暗号方式の例です。SHA-256は暗号化方式ではなく、ハッシュ関数です。
適用条件と例
SSHの公開鍵認証では、利用者の公開鍵をあらかじめサーバに登録し、利用者が対応する秘密鍵を持つことを署名で確認します。パスワード認証では、利用者IDとパスワードをサーバへ送って照合します。SSHが通信経路を暗号化していれば、ネットワーク上の盗聴からパスワードを守れます。しかし、接続先サーバ自体が侵害されていると、送信したパスワードを攻撃者に取得されるおそれがあります。経路の暗号化は、接続先の安全性まで保証するものではありません。
暗号鍵を総当たりで探すブルートフォース攻撃では、候補を一つずつ試します。例えば、利用可能な鍵候補が千個なら、最悪の場合は千個すべてを試すことになります。候補を十分に増やすことは総当たりを難しくしますが、試行を制限する仕組みや鍵の管理も重要です。
この節の続き
- 誤りやすい点
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む