秘密鍵とは?公開鍵暗号の核心を担う本人だけが持つ鍵の役割

システム開発・テクノロジー
秘密鍵とは?ざっくりと3行で
  • 公開鍵暗号方式で使われる鍵ペアのうち本人だけが厳重に保管する鍵のこと。他人に公開する公開鍵と対になっており絶対に外部に漏らしてはいけない
  • 公開鍵で暗号化されたデータは秘密鍵でしか復号できず秘密鍵で作った署名は公開鍵でしか検証できないという数学的に一方向の関係を利用して安全な通信・認証・署名を実現する
  • SSL/TLS・SSH・デジタル署名・ビットコインウォレットなど現代のITセキュリティインフラの核心で広く使われている

【深掘り】これだけ知ってればOK!

公開鍵暗号の仕組み:暗号化通信ではAさんの公開鍵でメッセージを暗号化→Aさんだけが持つ秘密鍵でのみ復号できる。デジタル署名では秘密鍵でメッセージのハッシュ値を署名→誰でも公開鍵で検証できる(本人しか署名できないことを証明)。この2つの仕組みが現代の暗号通信・認証の基盤だ。

SSHでのサーバーログインに秘密鍵を使う手順:事前に公開鍵をサーバーの`~/.ssh/authorized_keys`に登録。ログイン時にSSHクライアントが秘密鍵でチャレンジに署名→サーバーが公開鍵で署名を検証→一致すれば認証成功。パスワードを使わないためブルートフォース攻撃への耐性が大幅に上がる。

秘密鍵の管理で最も重要なのが流出防止と紛失対策だ。秘密鍵が流出すると攻撃者がなりすましできる。一方で秘密鍵を紛失すると復号・ログイン・署名ができなくなる。パスフレーズで秘密鍵自体を暗号化し、バックアップを安全な場所に保管することが基本だ。

仮想通貨ウォレットでも秘密鍵は中心的な役割を担う。「Not your keys, not your coins(鍵を持っていなければコインもない)」という言葉が示す通り、秘密鍵の管理が資産の管理そのものだ。取引所に預けているだけでは秘密鍵は自分で管理していないことになる。

SSH秘密鍵の基本的なセキュリティ設定:ファイル権限を`chmod 600 ~/.ssh/id_ed25519`で自分だけが読めるように設定する。鍵の種類はEd25519(最新・推奨)またはRSA 4096ビットを使う。生成時に必ずパスフレーズを設定することで秘密鍵ファイルが流出しても即座に悪用されるリスクを下げる。

よくある誤解

秘密鍵=パスワードだと思っている

秘密鍵はパスワードとは仕組みが異なる。秘密鍵はコンピューターが生成する数学的な数値で対応する公開鍵と数学的なペアを形成しており公開鍵暗号の計算に使われる。パスワードは人間が記憶できる文字列で認証に使われるという点が本質的に異なる。

秘密鍵をバックアップしておけばどこに保存してもよいと思っている

クラウドストレージへのアップロード・メールへの添付は流出リスクが高い。オフラインのバックアップ(USBメモリ・紙への書き出し)を金庫などの物理的に安全な場所で管理することが基本だ。

会話での使われ方

ITKAGYO運営者デプロイ太郎のアイコン画像

SSHの秘密鍵がそのまま.sshフォルダに置いてあります。パスフレーズで保護して権限も600に設定してください。

セキュリティ担当者が同僚のSSH秘密鍵の管理の問題を発見して改善を指示している場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

本番サーバーのSSH秘密鍵をSlackで送らないでください。新しく鍵ペアを生成してください。

シニアエンジニアが不適切な秘密鍵の共有方法を即座に止めさせている場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

デジタル署名は秘密鍵で署名して公開鍵で検証するから本人しか作れない署名なんですよ。

エンジニアがデジタル署名の仕組みを分かりやすく同僚に説明している場面。

【まとめ】3つのポイント

  • 本人だけが持ち絶対に流出させてはいけない公開鍵暗号の核心:秘密鍵の流出はなりすましログイン・暗号通信の傍受・仮想通貨の盗難など壊滅的な被害につながるため厳重な管理が不可欠だ
  • パスフレーズ保護・権限600設定・オフラインバックアップで秘密鍵を守る:秘密鍵自体をパスフレーズで暗号化しファイル権限を600に設定してオフラインの安全な場所にバックアップする三重の保護が秘密鍵管理の基本だ
  • SSH・SSL/TLS・デジタル署名・仮想通貨ウォレットで核心的な役割を担う:現代のセキュリティインフラの広範な領域で秘密鍵が使われており公開鍵暗号方式の基本を理解することがITセキュリティ全体の理解につながる

よくある質問

Q
公開鍵と秘密鍵はどうやって生成しますか?
A

ssh-keygenコマンドやOpenSSLで生成できます。鍵の種類はEd25519(最新・推奨)やRSA 4096ビットが一般的です。

Q
秘密鍵が流出してしまった場合の対処法は?
A

まず対応する公開鍵を全てのサーバーのauthorized_keysから削除します。次に新しい鍵ペアを生成して全ての認証先を更新します。

Q
SSH鍵認証とパスワード認証のどちらが安全ですか?
A

SSH鍵認証の方が安全です。秘密鍵は数学的に推測が困難でブルートフォース攻撃への耐性が高いです。

Q
ビットコインの秘密鍵を失ったらどうなりますか?
A

そのアドレスの資産に永遠にアクセスできなくなります。復元不可能です。

【出典】参考URL

https://docs.github.com/ja/authentication/connecting-to-github-with-ssh :GitHubのSSH認証の公式ドキュメント
https://www.openssh.com/ :OpenSSH公式サイト

:ビットコイン公式「ウォレットの安全な管理」

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!
タイトルとURLをコピーしました