【小ネタ】そのパスワード管理、本当に安全ですか?

おはよう世界。どうも若林です。

最近雨ばかりでなかなかお出かけする気にならない日々が続いてますね。
私は低気圧にめっぽう弱いので、雨の日はずっと気分が沈んでます。。ですが、部屋の中から聞く雨の音は好きです。
雨の音を聞きながら読書する時間は私にとって雨の日だけに形成される唯一の癒し空間です。
沈んでるのか癒しなのかどっちなんだ

さて、今回は最近セキュリティ周りのお仕事が増えてきたこともあり、セキュリティのお話をしたいと思います。
第一弾としてパスワード管理のお話をしたいと思います(気が向いたら別のお話も今後するかも)

今までやってたパスワード管理

みなさんは普段、パスワードをどうやって管理していますか?

  • スマホ・PCのメモ帳に書いて保管している
  • ブラウザ標準のパスワードマネージャーを使ってる
  • クラウドで保管
  • すべてのパスワードを暗記

大体こんな感じかなとは思います。
ですがこの保管方法、本当に安全ですか?

使ってるクラウドの脆弱性を突かれてハッキングされたら?
スタバでPC操作してたらいきなり横の席から強奪されたら?

そんなことされたら一瞬で自分の大事な情報が盗まれてしまいます。
「そんな場面、余程のことがない限りあるわけないでしょ笑」なんて考えていると、いつか恐ろしい攻撃を喰らいます!(o゚Д゚)=◯)`3゜)∵

メモ帳にパスワードを書いて管理

一番お手軽な管理方法です。
確かにID・パスワードをコピペするだけで管理できるので誰でもできます。
ただし、この方法が一番危険とも言えます。
メモ帳に書かれた内容は暗号化されていない、ただの文字データです。
パソコンがウイルスに感染してしまうと、攻撃者はメモ帳やデスクトップ上のファイルを片っ端から検索して「password」「ID」といった単語が含まれるファイルを自動的に探し出します。
つまり、メモ帳に保存しているだけで、盗んでくださいと言っているようなものなのです。
さらに、パソコンを紛失・盗難された場合、第三者が特別な技術がなくても、そのまま開いて見られてしまうという危険もあります。

ブラウザのパスワードマネージャーで管理

Google ChromeやMicrosoft Edgeにも標準機能で搭載していますが、パスワードマネージャーを使う管理方法です。
よくログイン画面に行くと、ユーザーIDやパスワードを自動的に入力してくれるやつですね。

私がいつもやってた管理方法です。確かに自動で入力してくれるので楽ですよね。
ただし、この方法にも実は危険な落とし穴があります。

それは、ブラウザに保存された「Cookie(ログイン状態を保つための情報)」が盗まれると、パスワードや二段階認証を突破していなくても、簡単になりすましログインができてしまうという点です。
せっかくパスワードマネージャーで厳重に管理していても、ログイン後の"鍵"であるCookieを盗まれてしまえば、その対策は意味を成さなくなってしまいます。
詳しくはこちらのサイトに書かれています。
Chromeを更新するだけ!「クッキー盗難・アカウント乗っ取り」を強力にブロックできる新機能の正体

パスワードをクラウドで管理

「メモ帳よりは安全そう」という理由で、Googleドキュメント・スプレッドシートやOneDrive上のファイルにID・パスワードをまとめて保存している人も多いのではないでしょうか。
確かに、パソコンが壊れてもデータが消えないし、どの端末からでも見られるので便利ですよね。
ただし、この方法にも見落としがちな落とし穴があります。

まず、GoogleアカウントやMicrosoftアカウントといった「クラウドの入り口」そのものが乗っ取られてしまうと、そこに保存していた全てのパスワードが一気に流出してしまいます。
パスワードを一箇所にまとめて保管するということは、その入り口の鍵ひとつに全財産を預けているようなものなのです。

さらに怖いのが、共有設定のミスです。
「リンクを知っている全員が閲覧可能」といった設定のまま放置してしまい、パスワードを書いたファイルが知らないうちに第三者から見られる状態になっていた、というケースもあります。
そしてメモ帳と同様、こうしたファイルの中身は暗号化されていない、ただの文字データであることがほとんどです。
クラウド上に置いているからといって、安全に保管されているわけではないのです。

すべてのパスワードを暗記

一番安全なのは、「パスワードを使い回さず、すべて暗記する」ことですが、私はそのような超記憶能力を持ってません。まぁ普通は無理ですよね。。
仮に頑張って覚えようとしても、覚えやすいパスワードは大体、他人にも推測されやすいパスワードです。
誕生日や好きな言葉を組み合わせたところで、結局使い回しが発生しますし、サービスの数だけ複雑なパスワードを暗記するなんて、もはや特技の域です。
というわけで、「暗記」は理想ではありますが、現実的な解決策ではありません。

今やっているパスワード管理方法

前置きが長くなりましたが、ここからは実際に私が今実践している管理方法をご紹介します。(※日々アップデート中)
パスワード管理方法を選ぶにあたって、私は以下の条件を軸に考えました。

  • Windowsで動作すること
  • クラウドではなく、完全ローカルで管理できること
  • ハードウェアセキュリティキーとの併用が可能なこと
  • サブスク型でなければ、有料でもOK
  • ブラウザ機能ではなく、専用のソフトウェアであること

この条件で探した結果、見つかりました。
私が今回選んだのは「KeePassXC」です!

どういうソフトウェア?

KeePassXCは、ひとことで言うと「パスワードを暗号化して、自分のパソコンの中だけで管理する」タイプのソフトです。
ID・パスワードなどの情報はすべて、ひとつの暗号化されたデータベースファイルにまとめて保存されます。

このファイルはパソコンのローカルに置かれるだけなので、これまで紹介してきたクラウド保管のような「アカウント乗っ取りで全部流出」「共有設定ミスで丸見え」といったリスクとは無縁です。
データベースを開くには、自分だけが知っているマスターパスワードが必要になります。さらに、YubiKeyなどのハードウェアセキュリティキーを鍵として組み合わせることもでき、「マスターパスワードを知っているだけ」では開けない、より強固な管理も可能です。
そして何より、無料でサブスクではない、オープンソースのソフトウェアです。
世界中の開発者がコードをチェックできる状態で公開されているため、「怪しい動作をしていないか」が第三者の目でも検証されているという安心感もあります。

以下がソースコードになります。興味ある方はぜひ
https://github.com/keepassxreboot/keepassxc

実際の使い方

まずは以下のURLから自分のOSに合ったものをダウンロードしてください。
KeePassXC Password Manager

(インストール手順はすでに入れてしまってるため割愛します)

データベース作成

インストールが完了したら、起動してみます。

起動したらまずは「+データベースを作成」を選択します。

データベース名を入力できる画面になります。
自分が見てわかる名前を入力(必要であれば概要も記載)します。


次は暗号化の設定をしていきます。

まずはデータベースの形式ですが、「KDBX 4(推奨)」と「KDBX 3」の2つから選択できます。今回は推奨されている「KDBX 4(推奨)」を選択します。
暗号化設定では、作成するデータベースの暗号形式を詳しく設定できます。

次はパスワード設定です。

これは管理したいパスワードではなく、データベースを開くためのマスターパスワードになります。要は、このマスターパスワードひとつだけ覚えておけばOKというわけです。
ここのパスワードは絶対に推測されないパスワードにしてください。KeePassXC側の自動生成機能や、パスワード生成ツールを使うのがおすすめです。
パスワード生成(パスワード作成)ツール - LUFT

ちなみに、ここでハードウェアセキュリティキーの登録もできます。お持ちであれば一緒に登録しておくと、セキュリティをさらに強化できます。
「終了」を押すと、データベースがローカルに保存されます。

パスワード管理をさらにガチりたいのであれば、「7-Zip」などを使って鍵付きZIPファイルにして保存することもおすすめです。

データベースにパスワードを登録

作成が完了したら一度閉じて正常に開けるか確認してみましょう。

先ほど設定したパスワードを入力してみます。

無事にデータベースへ入れることを確認できました。

次は、実際にパスワードを保管するところまで進めます。
「+(新しいエントリーを追加)」ボタン、またはショートカットCtrl + Nで新しいエントリーを追加してください。

この画面では、パスワードだけでなくログインユーザー名・URLなども一緒に管理できます。
必要な情報を入力したら、「OK」を押します。

すると、先ほどの画面に登録したパスワード情報が表示されます。
これで安全なパスワード管理が可能になりました。

最後に

いかがだったでしょうか。
パスワードがひとつ流出するだけで、そこからすべてが芋づる式に暴かれます。
使い回していれば、他のサービスのアカウントも次々と乗っ取られ、被害はあっという間に広がっていきます。そこからお客さんの環境に攻撃されたら洒落になりません。
エンジニアは常に機密情報を抱えていますので、情報漏洩には気を付けないといけません。
お客さんの情報が大事なのは当然ですが、まず初めに自分の情報を厳重に保管する必要があります。
今回は「パスワード管理」というテーマでしたが、セキュリティの話は他にもいろいろあるので、気が向いたらまた別の切り口でもお話しできればと思います。

それではまたどこかでお会いしましょう。

返信を残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA