📘

【IT基礎】SSH/ウォレット/TLS 鍵のライフサイクル比較

に公開

SSH/ウォレット/TLS 鍵のライフサイクル比較

SSHの鍵ライフサイクル

時系列フロー

  1. 接続元PC が鍵ペア(秘密鍵・公開鍵)を作成(ssh-keygen、長期利用想定)
  2. 管理者 が公開鍵を接続先VPSの~/.ssh/authorized_keysに登録
  3. 接続元PC がログイン要求時に秘密鍵で署名し送信
  4. VPS が受信した署名を登録済み公開鍵で検証し、合致すればログイン許可
  5. 管理者 が任意のタイミングで鍵ペアを更新(期限なし)

秘密鍵漏洩時の影響

  • 登録されている全サーバへ侵入可能
  • 即座にサーバから公開鍵を削除し、新しい鍵ペアへ切替必須

特徴

  • 長寿命・手動管理
  • 公開鍵は事前配布(信頼は管理者が担保)
  • 同じ鍵を複数サーバで使い回し可(リスク増)

ウォレットの鍵ライフサイクル

時系列フロー

  1. ウォレットアプリ が内部で鍵ペアを生成(多くはBIP-39ニーモニック→派生)
  2. 送金者(ウォレット) が送金トランザクションに秘密鍵で署名し、公開鍵と署名をネットワークへ送信
  3. 各ノード が受信したトランザクションの署名を公開鍵で検証
  4. ブロックチェーンネットワーク が有効な取引をブロックに記録
  5. 送金者 は資産が残る限り同じ鍵を利用(破棄せず)

秘密鍵漏洩時の影響

  • 即座に資産が盗まれる(誰でも送金可能)
  • ブロックチェーン上で鍵の失効は不可
  • 唯一の対策は全資産を新ウォレットへ速やかに移動

特徴

  • 永続利用(同じ鍵=同じ資産)
  • 公開鍵はトランザクションごとに提示
  • 秘密鍵流出=即資産消失(復旧不可)

TLS(SSL証明書)の鍵ライフサイクル(TLS 1.3)

時系列フロー

  1. サーバ が鍵ペアを生成し、CSRを作成
  2. 認証局(CA) がCSRに署名してサーバ証明書を発行
  3. サーバ がクライアント接続時に証明書(公開鍵付き)を送信
  4. クライアント が証明書チェーンを検証(CA署名 → 中間証明書 → ルート証明書)
  5. クライアントサーバ がECDHEで一時的な鍵ペアを生成し、Diffie-Hellmanで共通鍵(セッション鍵)を共有
  6. クライアントサーバ が共通鍵で実通信を暗号化(AESなど)
  7. クライアントサーバ がセッション終了時にセッション鍵を破棄
  8. サーバ管理者 が証明書有効期限(90日〜1年)ごとにサーバ証明書を更新

秘密鍵漏洩時の影響

  • サーバなりすまし可能
  • TLS 1.3では過去通信は解読不可(PFS)だが、漏洩後の通信は危険
  • 即座に証明書失効と新鍵発行が必要

特徴

  • 公開鍵の信頼はPKI(認証局)モデル
  • セッションごとに暗号鍵が変わる
  • 前方秘匿性で過去通信を守る
  • TLS 1.2以前のRSA鍵交換では秘密鍵漏洩で過去通信も解読可能だった
GitHubで編集を提案

Discussion