@kyanny's blog

My thoughts, my life. Views/opinions are my own.

zoom 自動録画は自分がホストの時だけ有効

  • アカウント A
    • 自動録画 ON
  • アカウント B
    • 自動録画 OFF

という状態で、

  • A がミーティングを開始
    • 録画・録音が開始される
    • 「このミーティングは録音されています」という音声アナウンスが流れる
    • B が参加
      • 参加時に「このミーティングは録音されています」という音声アナウンスが流れる
      • A の設定次第では参加前に録画を許諾するダイアログが出る
        • 許諾 or 拒否を選んでダイアログを閉じるまで参加できない
  • B がミーティングを開始
    • 録画・録音は開始されない
    • 音声アナウンスは流れない
    • A が参加
      • 音声アナウンスは流れない
      • A が録画を開始
        • ホストに許諾を得てください、的なダイアログが出る
        • B 側で A からレコーディングのリクエストが来ています、的な通知が出る

まぁ当然の挙動ではある。

sh/bash/zsh set -eux

long short description
errexit -e コマンドがエラーになったら即終了
nounset -u 未定義の変数があったらエラー
xtrace -x 実行したコマンドを表示

まとめて、以下をテンプレとする。

#!/bin/bash
set -eux

www.atmarkit.co.jp

何年経っても覚えられないのはブログに書いてないからかもしれない。書いたけど忘れていて検索もできていないからかもしれない。

ともかく、ちゃんと整理して書く && 自分が検索したら引っかかりそうなキーワードを散りばめておくことで次回への布石とする。

iPhone のパスコードロックを突破されている状態で Evernote をパスコードロックで守ることは可能か

自分自身に不便を強いれば理論上は可能っぽい。

以下、思わぬ落とし穴で突破されうる、という妄想の話。

Evernote を有料プランにすると iOS アプリに独自のパスコードロックをかけられる。4桁の数字を設定可能。生体認証で代用も可能(Touch ID、Face ID)。

ここでは、 iPhone の生体認証も突破可能になっている、という通常は考えにくい条件下だとする(Face ID の2つ目の顔に登録済みとかそういう)。

突破までの手順

  1. Face ID で iPhone のロックを解除
  2. Evernote を開く
  3. パスコード入力を5回連続で失敗する
  4. すると、 Evernote アプリの仕様で強制ログアウトする
  5. Evernote アプリに再ログインを試みる
  6. iCloud キーチェーンに Evernote のユーザー名とパスワードが保存されていた!(盲点)
  7. Face ID で iCloud キーチェーン解除→ Evernote アプリに自動ログイン完了

iCloud キーチェーンから削除したとしても、

  • 1Password に Evernote のアカウント情報を保存している
  • 1Password のロックを生体認証で解除可能にしていると、、
  • Evernote のログイン情報を入手可能
    • パスワードの平文も手に入る
    • iCloud キーチェーンでも同じことだが、、

水際で防止するためには、

  • 1Password のロック解除に生体認証を利用しない(マスターパスワードは知られていない前提)
  • Evernote のログイン情報は暗記する、生体認証ではロック解除できない方法で iPhone 内に保管する、他のデバイスに保管しておく、など管理方法を変える

などの対策を、

  • Evernote のロック解除に生体認証を利用しない
  • Evernote のパスコードを知られていない

に加えて行う必要がありそう。十分に強力なパスワードを暗記するのは厳しいので、不便とセキュリティのトレードオフなところがある(そもそも生体認証を突破されている時点でセキュリティもクソもないが)。

余談。 Evernote アプリのパスコードロックを突破されたことはほぼ確実にわかる。なぜなら、

  • 再ログイン時にパスコードロックが無効化されるので、、
  • 次に自分が Evernote アプリを開いたとき、パスコードロック画面が出ない→突破されている!(おそらく5連続失敗→強制ログアウト→再ログイン、の手順で)とわかる

しかし、以下のケースと見分ける方法はおそらく無い。

  • たまたま Evernote アプリに入力したパスコードが「当たり」だった
    • 強制ログアウトを経由せずにアプリを開ける
    • アプリの設定からパスコードロックを無効化する

この場合、「ロックは解除されてしまったが、 iCloud キーチェーンなどの穴を塞いだ上で再度パスコードロックをかければ安心」と油断させておいて、実はパスコードを知っている(が、持ち主は知られていることを知らない)、ので気づかれずに覗き放題、という致命的な事態に陥る可能性がある。ので、一度でもロックを突破されたらパスコードも変えたほうがよい。

(そもそも、「当たり」のパスコードが分かった時点で、パスコードロックを無効化する必要はないのだが。持ち主に気づかれないまま、同じパスコードで解除し放題だから)

さらに、非常に考えづらいが以下のようなケースもありうる。

  • 5連続失敗からの手順で Evernote アプリにアクセス成功
  • 設定からパスコードロックを有効化(!)
  • その際に入力したパスコードが偶然元々設定されていたパスコードと一致した(!!!)

すると、本人が Evernote アプリを使うとき、

  • パスコードロックはかかっており、
  • 自分が設定したパスコードでロック解除できる

ので、ずっとパスコードで守られていたのと見分けることができない(Evernote はログイン都度メールでお知らせとかはやってないと思う)。

そんな偶然はほとんどないだろう。もし覚えのある4桁の数字なら、パスコードロックを解除できていただろうし。

なお、もしでたらめに再設定したパスコードが本人が設定した番号と異なる場合、本人がパスコードロックを解除できない→強制ログアウト、の流れに入るので、「これは↑のようなパターンで再設定されたな」と気づくことができる。

「人手が足りないので人手を増やした結果、分担できるようになって負担は減ったがサイロ化と官僚化が進み、なんとなくカバーされていた境界線上が隙間だらけになってさらに人手が必要になり、終わりがない」という苦い失敗経験。

どうしてこうなった、に二つ心当たりがあり、

  1. 「単一障害点は悪である」という価値観にこだわりすぎた。これは自分の落ち度。
  2. 戦線を拡大しすぎた。正確には、もともと(自分たちの戦力に比べて)広すぎる戦線を支えていた部隊のあとを引き継ぐときに不用意すぎた。自分の意思ではなかったので落ち度ではない(不可抗力だったので誰の落ち度でもないが)

どちらも「次は失敗しません」と言うのは難しい。

  • 「単一障害点は悪である」は真だ。これは譲れない。しかし冗長化の先にあるのは「空虚な健全さ」だった。なんたるディストピア。それでも「やり方が悪かっただけ」と思いたい、が、うまくやれる気はしない。
  • 戦線拡大はほとんどの場合、宿命みたいなものだろう。よほど例外的な立ち位置にいない限り、抗えないと思う。戦線拡大と兵站整備の速度比をコントロールせよという話、なのか?どちらも相当にアンコントローラブルじゃないのか。

結論、「そういうことを考えずに済むポジショニングを(個人として)する」を、要は逃げだけど、着地点とするくらいしかない。

DataGrip が生成する ER 図から不要なテーブルを消したくていろいろ試しているがなかなかうまくいかない。

Selecting Tables for DataGrip Diagram – IDEs Support (IntelliJ Platform) | JetBrains

同じ問題に言及している人。解決策は提示されていない。

試したこと

UML (XML) エクスポート→ ER 図を GUI 編集できるツールで読み込み(→ツール上で不要なテーブルを削除→画像としてエクスポート)

ER 図を GUI で編集できる(できそうな)ツールは多過ぎて全部試していられない。

かつ、無料で商用利用できるものは少なそうな雰囲気なので、せっかく使えるやつが見つかったとしても仕事で使うわけにはいかない(これだけのためにライセンス費用を払う気にはなれない。この手のツールはそれなりの値段もするし)。

オープンソースライセンスのやつなら安心だろうということで主に Eclipse 周辺でいくつか試したが、

  • Eclipse Modeling Tools
  • ↑ + Papyrus Plugin
  • ↑ + ERMaster
    • この辺は DataGrip がエクスポートした .uml を読んでも図を描いてくれない
  • Papyrus が単体の .app として配布されてるやつ
    • macOS のセキュリティの関係で起動すらできなかった
  • Umlet とかいうツール
    • これも .uml を図にしてくれない

この辺で「ひょっとして DataGrip がエクスポートする .uml ファイルって、 UML と言いつつ独自仕様の XML ファイルなんじゃ・・?」と勘ぐる。裏は取れてないが、そんな予感がする。

UML (XML) エクスポート→テキストエディタで編集→ DataGrip で再読み込み

適当に作ったテーブルだとうまくいったが dvdrental で試したところ、編集後の .uml ファイルを DataGrip に読ませると消したテーブル情報を復元して ER 図を描写しやがる。なぜ復元されてしまうのかカラクリがわからない。おそらく内部的にスキーマ定義と照合しているのだと思う。 XML ファイルを極限まで削ってもダメだったので。

うまくいくケースでは今のところこれが一番早くて楽だが、うまくいかない(復元される)ケースだと手も足も出ないのが悔しい。

必要なテーブルの分だけ DDL を別データベース・別スキーマにコピー(→コピー先で ER 図を出力)

最後の手段、流石にこれならいけるだろうと思っていたがうまくいかなかった。 PostgreSQL に慣れてないせいもあり、

  • 同一データベース内に別スキーマを作ってそこに DDL を流す
    • sequence とかはデータベースレベルで定義されるので重複が発生してエラー
  • 別データベース内に DDL を流す
    • ↑とは逆に sequence とかが未定義なのでエラー
  • 別データベース内にスキーマ丸ごと DDL を流す(→不要なテーブルを削除)
    • 消したい(ER 図に出したくない)テーブルへの外部キーがあると消せない
    • 残したいテーブルから消したいテーブルへの外部キーを全部外す必要がある

と、相当面倒くさいことがわかった。ちまちま外部キーを消したりすればいずれできるとは思うが、やってられんと思って心が折れた。とてもじゃないが他人に勧められない。


まだ試してないが有望かもしれないオプション

ER 図を GUI で操作できるツールから直接 DB に繋ぐ→そのツールでうまいことやる方法があることを祈って探す

探し当てる手間が多そうなので有望でもない。運が良ければあたりを早く弾ける。もしくは諦めて定評ある有料ツールを買う(astar とか)