【悲報】KeePassのスマホとクラウド同期は安全ではない

紛失・盗難

パソコン・スマホなどでクラウド同期をしている方は、仕様を理解しているだろうか。

キーファイルを使用していれば安全でも、それは持ち歩かない端末の話だ。

クラウドはそもそも「端末にあるファイルをクラウドにコピーして、端末かクラウドのファイルが更新されたら両方を最新版にする」というような仕様。

また、端末に情報を置いていない状態でも「KeePass2Android(キーパス2アンドロイド)」側がクラウドに許可権限を求め、求められた権限は無くしたスマホ1台で許可できてしまう。

つまり、「データベースファイル(.kdbx)」・「キーファイル(.key)」両方がスマホに集結しており、別々に保存して安全に保つ作戦が破綻している。

この記事では盗難・紛失した際の対処法と、「KeePass2Android」アプリの紛失対策法を紹介するが、対処法はiPhoneなどのiOSでも同じく存在すると思うので参考にされたし。

なお、上級者向けのやりすぎ内容であり、あきらかにKeePassガチ勢レベルであるため休みの日にすることを推奨。

紛失をカバーすることはKeePassのすることではないが、不正アクセスより紛失する可能性の方が高く注意喚起は必要と判断した。ようするに、クラウド同期をしてキーファイルを設定したその先の問題提起だ。
スポンサーリンク

無視された危険性

ほとんどの危険性は冒頭で述べたとおりで、仕様を理解しない状態で使うとまず間違いなく防ぎきれない。

※特に連携がややこしく、「対処法」の章にある『Keepass2Androidと連携解除』で詳しく説明する。

さらに、紛失したスマホは「今の時代で暗号化を解読する必要はない」。10年待てば、新しい処理レベルのパソコンが生まれているからだ。

このことから、一番重要なのは「消去」だと確定させる。

スマホが戻ってきたとしてもマルウェア(ウイルス)が仕込まれている可能性が生まれてしまったので、ビジネス要素てんこ盛りスマホなら買い替えを推奨。

「復元技術が向上すると消去しても無意味」というのもあるが、話が終わらないので無視する。

キーファイルは別の場所

「キーファイルを使わない」・「データベースと同じ場所に保存」してクラウド同期を使っているならKeePassを使う意味が大幅に減少しており、他社の1Password・LastPassと同等レベルにまで落ち込むので絶対にやめよう。

キーファイルは「データベースが襲われても、第2の鍵キーファイルが別の場所にある」ことで安全が保証されている。

オススメはDropboxにデータベース、Google DriveやOneDriveなどよく使うクラウドにキーファイルを入れることだ。

もちろん「データベースをクラウド」、「キーファイルを端末」という使い方もOK。

無視された友達の情報

KeePassの話ではないが、「初期化は事前の心構えが重要」なので躊躇を消す後押しをしていく。

あなたのスマホかもしれないが、侵入されるとどうなるか想定した。

「画面ロック、端末の暗号化をしているから大丈夫!」とはならない。例のごとく、「解読できる時代になるまで保管」されるとマズい。
  • SNSのトーク情報は丸見え・チャットができる
  • 電話帳から個人情報が漏れる
  • 写真

多くは語らないが、自分どころか友達の人生を壊すこともあり、『10万円以上するスマホをキッパリ捨てられる心構え』と対処法を熟知しよう。

残念ながらほとんどの人は無視しており、逆に自分の情報が漏らされる。

「友達の情報の価値は友達が決めること」だということも、忘れないでほしい。

気が向いたらこちらの記事でさらなるレベルアップを図るといい。

スポンサーリンク

時間稼ぎ

「対処法」の前に仕込まないと時間が足りず侵入されてアウトだ。

もちろん他にも方法はあるが、気づきにくい効果的な方法のみ紹介する。

先にやり方を述べるので、それを見て「やりすぎだよ!」と思ったりiPhoneユーザーなら、次の章偽物キーファイルを増やし撹乱まで読み飛ばそう。

Boxcryptorを使用

データベースを暗号化させると、別のファイル扱いになるので同期がされなくなる。この方法はBoxcryptorを使用中で「キーファイルを暗号化している前提」で進めるぞ。

Boxcryptor(ボックスクリプター)を使いキーファイル選択時に毎回PIN入力を強制させるが、この方法は人を選ぶ。

ピンポイントで使えるユーザーは「外出先でパスワードを入力する場面に、2回以上遭遇しない人」だろうか。
  1. KeePass2Androidを起動し、データベースとキーファイルを入力
  2. クイック解除を有効にしない・毎回キーファイル選択(次の章で説明)
  3. キーファイル選択時BoxcryptorのPINを入力
  4. 使用後にKeePass2Androidを閉じる
  5. Boxcryptorアプリを起動
  6. 設定したPINを入力
  7. キーファイルのキャッシュを削除

やってみると面倒だが、覚えてしまうと実際はスムーズ。

家でキャッシュを消しておけば、外出先で紛失してもPINが仕事をしてくれるぞ。

PINの付け方はBoxcryptor Settings(設定)の「パスワードかPINを付ける」を参照。

「Lock when App is idle(アプリが何もしていない状態のときにロックする)」の設定も、「Immediately(直ちに)」に戻しておこう。

KeePass2AndroidのPIN用設定

「キーファイルを記憶する」と「クイック解除」が有効化されていると、キーファイル選択をする必要がないためPIN入力画面がでない。

Keepass2Androidの「設定」→「アプリケーション」→「クイック解除キーの長さ」まで開いておき、高度なクイック解除の騙しを仕込み、「キーファイルを記憶する」のチェックを外してPIN入力画面を出現させよう。

クイック解除の仕様上、失敗してもバックグラウンドに残っているとキーファイルが選択されたままになるようで、こちらもPIN入力画面が表示されない。

面倒だが「完全にアプリを終了」か、「アプリから抜けたときにロックする」のチェックを入れて終了させよう。

「設定」→「アプリケーション」→「アプリから抜けたときにロックする」にチェックを入れ、その下の方にある「キーファイルを記憶する」のチェックを外す。

キャッシュ消去は紛失対策で役に立つ

実は暗号化されていない状態でキャッシュとして保存されており、これは仕様だ。

現にフォーラム(英語)で述べられており、「Boxcryptorのすることではない」結論で終わっている。

あくまでクラウド暗号化ソフトとして使うものであり、「そもそも紛失するな」ということだ。

それでは手動で削除するので、Settings(設定)まで進もう。

ハンバーガーメニューをタップ
Settingをタップ

ここまではPINの設定と同じ場所だ。

ここからは右側にある(︙)をタップ →「Show Advanced Settings(詳細設定を表示する)」もタップ →「Delete all decrypted cache(復号化されたキャッシュをすべて削除する)」。

Show Advanced Settingsをタップ
Delete all decrypted cacheをタップ

キーファイルを使うたびにキャッシュのキーファイルが生まれるので、外出時は削除しよう。

自動削除アプリはあるが……

自動でキャッシュ削除してくれるアプリはあるようなのだが、

  • 昔の機能なのか自動削除機能がない・Boxcryptorだけでいいのに全部削除
  • 無駄なものは入れたくない
  • クリーナー系アプリは権限が無駄に多く、そもそも信頼したくない

となっており、データ販売業者の格好の餌場にしか見えないため、この方法を検索するのすらオススメしない。

偽物キーファイルを増やし撹乱

この方法は上記「Boxcryptorを使いPINを強制する方法」と併用不可。偽物として作ったキーファイルがキャッシュ削除ですべてなくなるからだ。

キーファイルを無くすと2度とKeePassを開けないので、「移動・開く・コピーしかできない」と覚えよう。

「.key」のつくファイルを1つの場所にたくさん用意して撹乱する古典的な防御方法を使う。

バイト数や更新日時でバレてしまうので、それらを対策した作り方をWindowsで説明していく。

  1. 偽物を100~500個ほど作る前提とする(参考までに、バイト数は平均180バイトで、500個でも0.9MB)
  2. 既存のキーファイル名の後ろに、Windowsで同名ファイルを作成するルールに基づいた「半角スペース半角(本物にしたい数字半角)」をつける
    1. 例:「keepassfile半角スペース(83).key」(好きな名前にしよう。この例ではkeepassfileという名前で進む)
  3. 適当にフォルダを作成し、その中に『コピーした』「keepassfile (83).key」を入れ、デスクトップに1つ残す
  4. 名前の変更で拡張子を「keepassfile (83).key」から「keepassfile (83).txt」に変更する
  5. 「keepassfile (83).txt」を開き、Dataに囲まれた文字列を適当に3文字変更する(次の画像参照)
  6. ファイルのプロパティを開き、バイト数が本物と同じか確認。文字数でバイト数が変動するので、必ず変更した分の文字数を戻すこと
  7. ファイル名を「keepassfile (83).txt」から「keepassfile (83).key」に戻す
  8. 偽物「keepassfile (83).key」でKeePassに入れるか確認する(弾かれればOK)
  9. 適当フォルダの中の偽物「keepassfile (83).key」を選択し、Ctrl + C でコピーし、Ctrl + V を※押しっぱなし大量貼り付け(PCが壊れるので※注意事項確認
  10. デスクトップにある本物「keepassfile (83).key」を適当フォルダにコピーして移動し、偽物「keepassfile (83).key」を上書き(まだデスクトップに本物を残す)
  11. Change Timestampをダウンロードし(後ほど説明)、更新日を統一する
  12. クラウドや端末内のキーファイルフォルダに偽物と本物を入れ、どれが本物か忘れないようにする
  13. 本物「keepassfile (83).key」でKeePassに入れるか確認する
キーファイルの中身を変更
※注意事項:CPUがものすごいスピードで上昇し危険だ。Ctrl を押した状態で V を何度も押し、10~50こになるまで1こずつ増やそう。今度はその個数すべてを選択し、貼り付けることで一気に増える。

更新日を統一する

せっかく500個用意しても、1つだけ更新日が違うとバレてしまう。

Windowsのフリーソフトでレジストリを使用しないものがあったので紹介。アンインストールは解凍したフォルダごと削除するだけだ。

ダウンロードChange Timestampの詳細情報 : Vector ソフトを探す!

ダウンロードが完了したら起動 →「作成日時」・「更新日時」・「アクセス日時」だけをチェックし、増やした偽物ファイルをすべて選択して「対象のファイルまたはフォルダをここにドロップしてください」に移動させる。

他は触らなくて良い。

タイムスタンプの変更

変更したあとにファイルのプロパティを見ると、すべて同じ時間になっているはずだ。

日時が同じ

クラウドにデータベースとキーファイルを一瞬でも集結させず、ファイル転送サービスでキーファイルをスマホに移動させたいなら「Firefox Send」を使おう。

zipで転送するので、Androidにzip解凍アプリが必要かも。

スポンサーリンク

対処法

対処する前に侵入されて抜き取られたらどうしようもないが、わかりようのないことを考えても仕方がないのでイメージトレーニングをして本番に備えよう。

緊急事態用のためブックマーク推奨(対処する端末の方でも)。念のためこの記事のQRコードも置いておく。

このページのURL・QRコード
仕事中に紛失してアカウント情報が家に帰らないとわからない場合は、「会社の情報(同僚の電話帳など)も入っているので、今すぐ帰らなくてはいけないんです!」と言って無理矢理にでも帰宅するか、家族にでもログインしてもらおう。
iPhone(iOS)ユーザーはここから先を参考程度に確認し、激ムズと悟ったらスマホとパソコンをわけるまで読み飛ばそう。

遠隔操作(端末データを消去)

公式アプリは存在するが、ブラウザからでも遠隔初期化できる機能。

持ち主不明になるのでスマホはほぼ返ってこないが一番安全。パソコンの画面で説明するが、やることは同じだ。

SDカードは初期化されず助けられないので、変なものを入れるのはやめよう。

そして、「最後の手段」と思われているが本当は『最初の手段』としてやるべきことなので、さきほどの無視された友達の情報でしっかり決断力を高めるといい。

キッパリ「初期化する!」と今この段階で決心をした者だけが、すぐに安心を手に入れられる。

iOSにも同じ機能「iPhoneを探す」が存在するぞ。

端末を探すへアクセスし、Googleアカウントにログインしていなければログイン情報を入力。

そうすると以下の探す方法が出現。

  1. 大まかな端末の位置
  2. 端末名(クリックで別の端末に変更可能)
  3. 電池残量(少ないなら、問答無用で初期化かも)
  4. 音を鳴らす
  5. 「端末を保護」は次の章で説明
  6. 端末データを消去

準備ができていたら、すぐに初期化してしまおう。

「端末の保護とデータ消去を有効にする」が表示されている場合は、押すことで強制的にロック・初期化することが可能になる。

「端末の保護とデータ消去を有効にする」を押しても「端末を保護」・「端末データを消去」が表示されないのはバグ。一度、Androidの「設定」→「セキュリティ」→「端末を探す」のチェックをいろいろ言われるが無視して無効化し、すぐに有効化すると表示されるはずだ。端末によって場所が違うかもしれず、なければセキュリティ項目を1つずつ調べよう。

有効にしてバグを確認
端末を探すトップ画面で、初期化を選択

「端末データを消去」を押してもアカウント情報が必須かもしれないので注意。その場合は端末のロックを試そう。

端末データを消去する

常にオフラインにされると初期化どころか何もできない点は諦めるしかない。

一応、この方法で初期化すると初期化前に使用していたGoogleアカウント情報を入れない限りAndroidが使えず、売却できないメリットはある(店が買い取ろうとしない)。

運良く返ってきたなら、自分しか使用できないということだ。

2段階認証を設定している方:2段階認証手段が紛失したスマホにしかない場合は、事前にGoogleアカウントから「バックアップコード」を取得し、スマホがなくても2段階認証を突破できる状態にしておこう。
公式専用アプリはあるのだが、家専用のスマホ・タブレットにログイン情報を保持しておくと、家族に電話する際にGoogleアカウント情報を入力する手間を省けるぞ。消去はログインを求められることがあるようなので、端末のロックをとりあえず指示しよう。
Find My Device

 

Find My Device

Google LLCposted withアプリーチ

端末の保護(ロック)

初期化すると追跡できないが、ロックする分には追跡可能。ただし、通信を切られなければの話だ。

このロックは自分がいつも使用している画面ロックのことで、画面ロック設定をしていなければこのタイミングで設定できる。

端末を保護(ロック)を選択

善意の恥ずかしがり屋さんをカバーするため、拾った人が顔を合わせない方法を記入しておこう。

端末を保護する

盗まれたのが確定しているなら記入する必要がないので、「端末を保護」をすぐにでも押そう。

そうするとAndroid側に以下のような画面が出現。

画面ロックメッセージ

プッシュ通知は表示されるし、本当にメッセージを伝えるためだけの遠隔画面ロックだ。

パソコンには「セキュリティ診断を実施してください」表示がされ、タイミング的に今更なので無視してOK。

セキュリティ診断を促される
今からやっても遅い診断結果

なお、解除してもとくに何の表示もないため、ロックしたのに「実は解除されてました!」なんてことが起こるかも。

「端末を保護」を連打するか、ロックのあいだに「Keepass2Androidと連携解除」しよう。

「端末をロックし、Googleアカウントからログアウトします。」と書いてあるが、ロック画面解除後にログアウトされていなかった。パスワードを間違えたらログアウトされるということなのだろうか?

Keepass2Androidと連携解除

ロックしているあいだにやるべきだが少々ややこしく、間違えると意味がない点に要注意。

連携解除を有効にしたいならKeepass2Androidの「設定」→「アプリケーション」→「クイック解除キーの長さ」まで開いておき、高度なクイック解除の騙しを仕込もう。

クイック解除が有効化されていると連携解除しても開けてしまうので、1度騙して失敗させ「マスターパスワード入力画面にまで誘導」する必要がある。

連携解除したいサービスにログインしたら、「紛失した端末の連携(ブラウザログインならブラウザ)」と「KeePass2Androidアプリの連携」を解除だ。

片方だけだと意味がないので必ず両方解除しよう。

データベースをDropboxとGoogle Driveに入れていたケースで連携解除後1秒後にログインしてみたが、どちらのサービスも連携解除は成功していた。

OneDriveなど他のメジャーなクラウドも、このような方法だと思われる。

スマホとパソコンをわける

被害を最小限に抑える方法で、意外と簡単なのでオススメ。

この方法は外に情報を持っていく必要のない銀行の暗証番号以外だったり、金融関係(株や仮想通貨など)のアカウントをスマホ用とは別にできる。

以下の記事を参考にし、KeePass用クラウドを2つ用意して読み進めればOK。

あまり言いたくないが、私は「パソコン用データベースをSync・キーファイルをBoxcryptor → Google Drive」・「スマホ用データベースはDropbox・キーファイルをパソコン用とは別のBoxcryptor → Google Drive」という使い方をしている。

ここまでやりすぎな応用が効くのもKeePassの醍醐味だし、とてつもないセキュリティを共有することに意味はある。

わけるとパソコン版だけセキュリティを上げられるので、時間があればArgon2で負荷をかけよう。
スポンサーリンク

KeePass2Androidでキャッシュを作らない

KeePass2Androidの設定に「ローカルに置いたキャッシュから起動できる方法」があるのだが、連携解除しても使えてしまう。

インターネットのない状況で使うのがよくわからないので、無効にしよう。

「設定」→「アプリケーション」→「ファイル操作」→「データベース キャッシュ」のチェックを外すで無効化完了だ。

スポンサーリンク

イメージトレーニングの効果

すべて予想しておくことで実際にあった際にするべきことがわかる。非常に有用な情報なので、紛失する予定以外の端末でもブックマークをしよう。

当サイトはKeePassの高度設定や自動入力の雛形を作り、コピーするだけで簡単にできるよう紹介した記事もある。

【SSS】Keepass2Androidのセキュリティ設定
【SSS】どこよりも詳しいKeePass自動入力などの設定と使い方
コピペでOK!有名サービスKeePass自動入力まとめ・2018

この記事で端末紛失問題が解決しなかったら専用の記事もあるので、参考にしよう。

コメント

  1. ミック より:

    KeePass2Androidオンラインのアプリをセットアップしようとしているところなんですが、

    ・キーファイルなし
    ・マスターパスワードのみ
    ・データベースはクラウド(OneDrive)に入れて同期

    でやろうと思うのですが、セキュリティ的には大丈夫でしょうか。

    また、その状態で仮にスマホが盗まれた場合、他のデバイスからクラウド(OneDrive)にログインしてデータベースを安全な場所に早めに移動すればOKな感じでしょうか。これをKeepass2Androidと連携解除という言い方で正解でしょうか。

    ブログ内容は一通り理解はしているつもりですが、少し難しく(汗)私自身理解力が低く申し訳ないですがよろしくお願いいたします。

    よろしくおねがいいたします。

    • ぷっぷ より:

      KeePass2Androidの仕様がちょっと思い出せないのですが、端末にデータベースが残っていれば(キャッシュ)、OneDriveから移動させても端末に残ったままなので、マスターパスワードが突破されるであろう年月まで安全じゃないです。
      その場合、確実な安全はKeePass2Androidに登録してあるアカウントデータすべてを変更することのみとなります。
      毎日コツコツですね……。
      1日1件で、最悪でも1年には終わると思えばちょっとは楽かもしれません(´ε`;)
      基本的には1年どころか数十年~生涯いけると思いますが、パソコンが高性能化したり、そもそも桁数が短かったり、キーファイルを使っていなかったり、Argon2の機能(強制的に重くして試行回数を遅らせる処理)を使っていなかったりで生涯は当てにしてはだめです!
      すべての機能は延命なので、延命時間をへらすのを許容できるのであれば、キーファイルはなくても構いません。

      その状態で仮にスマホが盗まれた場合、他のデバイスからクラウド(OneDrive)にログインしてデータベースを安全な場所に早めに移動すればOKな感じでしょうか。これをKeepass2Androidと連携解除という言い方で正解でしょうか。

      OneDriveとKeePassの連携解除というか、OneDriveと盗まれたスマホとの連携解除ですね。
      大手サービスはだいたい連携解除できる手段を残してるはず。