【新卒向け】セキュリティの基本 - パスワード管理と多要素認証
新卒エンジニアに向けて、パスワードの仕組みと危険性、パスワードマネージャーの使い方、多要素認証の考え方を、日常の場面から順を追って解説する入門記事です。
朝、ログインできない画面の前で
出社してPCを立ち上げ、社内システムにログインしようとしたら「パスワードが違います」と表示されました。心当たりのある文字列をいくつか試しても通りません。しばらくして、別のサービスから「新しい端末からのログインがありました」という通知が深夜の時刻で届いていることに気づきます。
これは架空の話ですが、原因の多くは共通しています。同じパスワードを複数のサービスで使い回していて、そのうちの一つが漏れた、という筋書きです。この記事では、なぜこうしたことが起きるのかという仕組みから始めて、防ぐための具体的な手段までを順番に説明します。
パスワードは「本人であること」の証明である
まず、パスワードが何のために存在するのかを整理します。
システムは、画面の向こうにいる人が本当にあなたなのかを直接には確認できません。そこで「あなただけが知っているはずの情報」を尋ね、それを正しく答えられた人を本人とみなします。これが認証(あなたが誰であるかを確かめる仕組み)であり、パスワードはその代表的な手段です。
ここで大事なのは、パスワードは「知っている人なら誰でも本人になれてしまう」という性質を持つことです。鍵に例えると分かりやすいかもしれません。家の鍵は、正規の持ち主が持っていても、コピーを拾った他人が持っていても、同じように開いてしまいます。パスワードもまったく同じで、盗まれた時点で、それを使う人が本物かどうかをシステムは区別できません。
なぜ「使い回し」が特に危険なのか
漏えいは、あなたの不注意だけで起きるわけではありません。利用しているサービスの側が攻撃を受け、登録されていたパスワードがまとめて流出することがあります。これは自分では防ぎようがありません。
問題は、その先です。攻撃者は流出したメールアドレスとパスワードの組み合わせを、他の有名なサービスに片っ端から入力して試します。これをパスワードリスト攻撃と呼びます。あるサービスAで使っていたパスワードを、銀行や社内システムでも使い回していれば、Aの流出だけで芋づる式に破られてしまう、というわけです。
つまずきポイント: 「自分は無名だから狙われない」と考えてしまう人がいます。しかし攻撃は人間が一件ずつ狙うのではなく、プログラムが自動で大量のアカウントを試すものです。有名か無名かは関係ありません。
強いパスワードとは「長くて予測できない」もの
では、どんなパスワードが安全なのでしょうか。
攻撃者はパスワードを総当たりで試すことがあります。このとき効いてくるのは、記号を混ぜているかどうかよりも、まず「長さ」です。文字数が一つ増えるだけで、試すべき組み合わせは桁違いに増えます。次に効くのが「予測できないこと」です。password123 や自分の誕生日は、辞書やよくある候補として真っ先に試されるため、長くても意味がありません。
つまり、目指すべきは「長く、規則性がなく、他のどこでも使っていない」パスワードです。しかし、そんな文字列をサービスごとに何十個も覚えるのは現実的ではありません。ここで登場するのがパスワードマネージャーです。
パスワードマネージャー — 記憶を道具に任せる
パスワードマネージャーとは、サービスごとの長くランダムなパスワードを生成し、暗号化して保管してくれる専用ソフトです。あなたが覚えるのは、その金庫を開けるための一つの鍵、マスターパスワードだけになります。
考え方を整理すると、次のようになります。
- サービスごとに違う、長くてランダムなパスワードを道具に作らせて保管する
- 人間はマスターパスワード一つだけを、しっかり覚える
- ログイン時は道具が自動で正しいパスワードを入力する
代表的なツールに Bitwarden や 1Password があります。会社では、業務で許可されたツールを使ってください。個人の判断で無断のサービスに業務アカウントを登録しないよう注意します。
使ってみる — CLIでパスワードを生成する
マスターパスワードそのものは、長く覚えやすいフレーズを自分で決める必要があります。その材料として、ランダムな文字列を手元で生成する方法を示します。以下は macOS や Linux のターミナル(コマンドを打ち込む黒い画面)で実行できます。特別なインストールは不要です。
# Generate a 20-character random password using the built-in OpenSSL tool
openssl rand -base64 20
実行すると k9Xd2... のようなランダムな文字列が一行表示されます。rand はランダムなデータを作る指示、-base64 はそれを人間が読める文字に変換する指定、末尾の 20 は元にするデータの長さ(バイト数)です。数字を増やせば、より長い文字列が得られます。
この出力を、そのままサービスのパスワードとして使うイメージです。自分の頭でひねり出すより、こうして機械に作らせるほうが予測されにくくなります。
つまずきポイント: マスターパスワードを付箋やメモアプリに平文で(暗号化せずそのまま)書かないでください。金庫の鍵を金庫の扉に貼るのと同じことになります。マスターパスワードは、他のどこでも使っていない、自分だけが覚えているフレーズにします。
多要素認証 — 鍵が一つでは足りない
ここまでで、パスワードを強くし、使い回さない方法を見てきました。しかし、どれだけ強いパスワードでも、盗まれれば他人が本人になりすませるという根本の弱さは残ります。
そこで登場するのが多要素認証(MFA、Multi-Factor Authentication)です。パスワードという「知っている情報」に加えて、別の種類の証拠をもう一つ要求する仕組みです。証拠には大きく三種類あります。
- 知っている情報(パスワード、暗証番号)
- 持っている物(スマートフォン、専用の鍵デバイス)
- 本人の身体的特徴(指紋、顔)
このうち種類の異なるものを二つ以上組み合わせるのが多要素認証です。パスワードが盗まれても、攻撃者はあなたのスマートフォンまでは持っていません。そのため、鍵を一つ突破されても、もう一つの扉が残る、という構図になります。
よく使われるのは、スマートフォンの認証アプリ(Google Authenticator など)が表示する、30秒ごとに変わる6桁の数字です。これはワンタイムパスワードと呼ばれ、一度使うと無効になるため、盗み見られても再利用されにくいという利点があります。
さらに最近は、パスキーという方式に対応するサービスが増えています。パスキーは、スマートフォンやPCの中に保管された鍵と、指紋や顔による確認を組み合わせてログインする仕組みです。入力する文字列そのものがないため、偽のログイン画面に誘導されても盗まれる情報がありません。選べる場面では、パスキーを優先して使うと安心です。
つまずきポイント: SMSで数字を受け取る方式は、何もないよりは有効ですが、電話番号を乗っ取る攻撃に弱いことが知られています。選べるのであれば、認証アプリのほうを使うようにします。また、MFAの設定時に表示されるリカバリーコード(スマートフォンを紛失したときの予備の合言葉)は、必ず安全な場所に控えておいてください。これを控え忘れると、自分自身が締め出されてしまいます。
まとめ
この記事で扱った考え方を、頭の中の地図として整理します。
- パスワードは鍵と同じで、盗まれた時点で本人かどうかを区別できない
- 使い回しは、一か所の流出をすべてに波及させるため最も危険である
- 強いパスワードとは「長く・予測できず・使い回さない」もので、その管理はパスワードマネージャーに任せる
- 多要素認証は「知っている情報」に「持っている物」を足し、鍵を二重にする仕組みである
次の一歩として、今日、自分が最も大切だと思うアカウントを一つ選び、その設定画面で多要素認証を有効にしてみてください。多くのサービスでは「セキュリティ」や「二段階認証」という項目にあります。一つ設定を終えれば、ここまでの説明が具体的な操作として結びつくはずです。
次に読むなら: 【新卒向け】プログラミング学習ロードマップ2026
※ この記事はAIが自動生成したものです。本記事の内容は執筆時点の情報であり、正確性を保証するものではありません。ご利用の際は免責事項をご確認ください。
Related / 関連記事
関連記事
【新卒向け】文字コードとエンコーディング入門 - 文字化けはなぜ起きる?
文字化けはなぜ起きるのかを、文字コードとエンコーディングの仕組みから新卒エンジニア向けにやさしく解説し、Pythonでファイルのエンコーディングを確認・変換する安全な手順までを紹介します。
Azureクラウド入門 - 主要サービスの全体像を掴む
Azureを初めて学ぶ若手エンジニア向けに、クラウドの考え方からリソースグループ、計算・保存・通信・認証の主要サービス、Azure CLIでの実践までを全体像として整理して解説します。
【新卒向け】ネットワーク基礎 - IPアドレスからDNSまで
ブラウザがサーバーに繋がらない場面を入り口に、IPアドレスやポート番号、そして名前を住所へ変換するDNSの仕組みを、身近な例えとすぐ試せるコマンドで新卒エンジニア向けに丁寧に解説します。
Comments / コメント