Ubuntu Weekly Recipe

第778回Nextcloud Passwordsでログイン情報の記憶をアウトソーシング

今回はWebサイトのログイン情報をNextcloudに記憶させる方法を紹介します。

ログイン情報は覚えない

先日、とあるSNSが個人情報を流出させるという事件がありました。それ自体は大変残念なことにしばしば起こっていることですが、個人情報に含まれるパスワードのうち約半数が平文で保存されていたとのことです。

通常パスワードは何らかの方法でハッシュ化されて保存するのがセオリーのはずですが、ユーザーとしてはパスワードの保存方法なんて知る余地がありません。流出した個人情報が販売されたという事実もあるようで、購入した人は当然倫理観なんてあるわけがないのでログインユーザー名とパスワードで他のサービスへのログインを試みるわけです。ログインに成功してクレジットカードの情報が登録されていたりすると、それはもう酷いことになることが容易に予想できます。

このことからわかることは、パスワードは使い回されることが多いということです。人間の記憶力には通常限りがあるため、複雑なパスワードなんてそんなにたくさん覚えられません。

ではどうするかというと、Webサイトごとに個別のパスワードを作成し、それを管理することになります。そうすると、今回のようにパスワードが平文で保存されていて流出したとしても、他のどこにもログインできないので安心です。

パスワードを生成し、管理する方法はたくさんあります。UbuntuデフォルトのWebブラウザーであるFirefoxにもあり、Firefox SyncというサービスでほかのFirefoxとログイン情報を同期できます。Google ChromeやMicrosoft Edgeにも同様の仕組みがあります。

Webブラウザーで完結できればそれでいいのですが、ほかのOSのことを考えると必ずしも便利とはいえません。Webブラウザーに依存しない仕組みもそれはもう数多ありますが、今回はおなじみのNextcloudPasswordsアプリをインストールして使用する方法を紹介します。以下Nextcloud Passwordsとします。

Nextcloud Passwordsとは

Nextcloud Passwordsは専用のWebブラウザー拡張機能があり、簡単にログイン情報を登録したり呼び出したりできます。Nextcloudサーバーをインターネットに置けばあらゆるところからアクセスできます。AndroidやiOS用のクライアントアプリもありますし、WindowsやUbuntuでも動作するクライアントがなくはないです(後述⁠⁠。

ほかのパスワード管理ツールからインポートする機能もあります。Nextcloudに登録されたほかのユーザーとパスワード共有もできます。

Nextcloudサーバーを管理する必要はありますが、ほかのことにも使えますし、なんといってもログイン情報というセンシティブな情報が手元で管理できるというのは魅力的です。

そのような理由により、今回紹介することにしました。

Nextcloud Passwordsのセットアップする

Nextcloudサーバーをセットアップするに当たり、VPSのレンタルから始める場合は第751回を参考にセキュアな状態を保つようにしてください。

Nextcloudサーバーのセットアップは第476回を参考にしてください。Let's Encryptは必須です。

Snapパッケージの更新タイミングの変更は第714回を参考にしてください。

Passwordsはアプリとして実装されているので、⁠アプリ」「セキュリティ」からインストールします図1⁠。⁠ダウンロードして有効にする」という表記になっていますが。

図1 Passwordsをインストール
図1

すると上部に鍵のアイコンが増えます図2⁠。

図2 鍵のアイコンをクリックするとPasswordsのメニューを表示する
図2

Webブラウザーに拡張機能をインストールする

続いてWebブラウザーに拡張機能をインストールします。今回はUbuntu 22.04 LTSデフォルトのSnapパッケージ版Firefoxを例に紹介しますが、ほかのWebブラウザー、具体的にはGoogle ChromeとMicrosoft Edgeでも方法に大差はありません。

図2で開いたPasswordsの左下にある「More」をクリックすると、メニューが展開されます図3⁠。

図3 ⁠More」をクリックしたところ
図3

一番下にある「Apps and Extensions」をクリックします。するとWebブラウザーごとの拡張機能へのリンクなどが表示されます図4⁠。

図4 Passwordsに対応したWebブラウザー一覧
図4

今回はFirefoxを使用するので、⁠Available on Firefox Add-ons」をクリックします。その名のとおりFirefoxのAdd-onsのページが開いたら、⁠Firefoxへ追加」をクリックします図5⁠。

図5 PasswordsのFirefox add-onsのページが開く
図5

右上に確認が表示されるので、⁠追加」をクリックします図6⁠。インストール完了後「OK」をクリックします図7⁠。

図6 本当に追加するか確認される
図6
図7 インストールが完了するので「OK」をクリック
図7

図4に戻るので、Firefoxの「Connect with PassLink」をクリックします。するとQRコードと「Connect via link」が表示されるので、⁠Connect via link」をクリックします図8⁠。

図8 デカデカと表示されるQRコードは無視してConnect via linkをクリック
図8

PassLinkのWebサイトが開いたら、⁠Firefox」をクリックします図9⁠。

図9 PassLinkのWebサイトで「Firefox」をクリックする
図9

Passwordsのページに戻ってきて、2つのウィンドウで4つの文字や数字が表示されるので、一致している場合は「Looks good」をクリックします図10⁠。

図10 2つのウィンドウで一致するか確認する
図10

すると接続に成功した旨のメッセージが表示されるので「I'm done」をクリックして終了します。

図11 接続に成功したところ
図11

Nextcloudの通知としても新しいクライアント追加された旨のメッセージが表示されます図12⁠。

図12 Nextcloudからのメッセージ
図12

追加された拡張機能は常に表示するようにピン留め設定するといいでしょう。拡張機能のアイコンをクリックし、Passwordsの右にある歯車アイコンをクリックし、⁠ツールバーにピン留め」にチェックを入れます図13⁠。

図13 Firefoxで拡張機能をピン留めする方法
図13

パスワードを生成する

パスワードはピン留めした拡張機能の「Tools」タブで生成できます図14⁠。厳密な文字数は指定できませんが、ある程度の長さ(Strength=強度)と数字と記号を含むか含まないかを指定できます図15⁠。

図14 パスワード生成機能
図14
図15 パスワードは大まかな強度と記号と数字のあるなしを指定できる
図15

ログイン情報を記憶する

Webブラウザーが新しいログイン情報を認識すると、通知を表示します図16⁠。同時に拡張機能の「Collected」タブにログイン情報が表示されるので、保存する場合は右上の保存アイコンをクリックします図17⁠。

図16 新しいパスワードを検出した旨のWebブラウザーの通知
図16
図17 保存は拡張機能から
図17

ログイン情報を使用する

保存してあるログイン情報が使用できる入力フォームを検出すると、拡張機能の「Suggestions」タブに表示されるので、使用したい情報をクリックします図18⁠。情報が正しいとログインできます。

図18 Suggestionsに表示されたログイン情報をクリックしてログインする
図18

Amazonのようにアカウント名とパスワードが別のフォームであっても適切に処理してくれます。もちろん2回クリックする必要はあります。

ログイン情報をインポートする

Webブラウザーやその他で収集したログイン情報をインポートすることもできます。

まずはNextcloud Passwordsの管理ページを開いてみましょう。上部の鍵アイコンをクリックすると、現在登録されているログイン情報とともに表示されます図19⁠。インポートする場合は、左下の「More」をクリックし、⁠Backup and Restore」をクリックします。図3と同じなのでスクリーンショットは省略します。

図19 Nextcloud Passwordsの管理ページ
図19

すると「Backup or export」「Restore or import」が表示されるので、後者をクリックします図20⁠。

図20 ⁠Backup or export」「Restore or import」をクリックする。今回は後者
図20

インポートできる形式がずらりと表示されます図21⁠。今回はGoogle Chromeからインポートしてみるので「Chrome/Google Passwords CSV」を選択します。もちろん事前にGoogle Chromeからエクスポートしておいてください。

図21 インポートできる形式の一覧。とても多い
図21

次にインポートするファイルを選択します図22⁠。また同じログイン情報があった場合にどうするかを選択します。ここでは「Create new entry」を選択し、とにかく全部移行することにしました。同じログイン情報はユーザーが確認して不要なものを削除していくという形式です。

図22 インポート情報の詳細
図22

というのも、Google ChromeからエクスポートしたCSVファイルには登録日の情報がなく、新しいか古いかの判断ができません。インポート元がGoogle Chromeだけだとそれでも構わないのですが、複数のインポート元があるとどれが最新のものなのかの判断がつきません。そのような場合には問答無用でインポートし、あとはユーザーが管理すべきであるという考えです。

なお、Firefoxからエクスポートしたログイン情報には登録日の情報がありました。

最終的にインポートを行うには、最下行の「Import」をクリックします。

専用クライアント

GNOMEのオンラインアカウント機能など、ログイン情報はWebブラウザーだけで完結できるわけではありません。そのような場合は単独の専用アプリがあると便利で、Nextcloud Password ClientとしてFlutterを採用したGUIアプリがリリースされています。Ubuntuでもlibjsoncpp25パッケージをインストールすれば起動できましたが、メニューが英語ではなかったので使用を断念しました図23⁠。

図23 Nextcloud Password Clientのスクリーンショット。どうもこれはチェコ語らしい
図23

おすすめ記事

記事・ニュース一覧