Archive for the ‘finalization’ Category

少し前から気になっていたのだが、バックアップに使っているクラウドストレージの認証情報を平文で保存しておくのは良くないので、ちゃんとしようと思った。

ストレージに限らず、サーバのアプリ(例: 某有名ブログサーバ)では、時代遅れ(そのうえ、恥知らずにも長年弱いままにしている)にもID, パスワードをテキストファイルに平文で保存しておくものが多い。

ユーザの認証情報はDBに暗号化して(実際にそうしているかは不明)格納しても、DBのID, パスワードは平文という間抜けさだ・・・

(5/4 18:34) ブログサーバソフトの設定が暗号化できないか調べたら、やっぱりなさそうだ。それどころか、Stack overflowみたいなフォーラムで、ある人が「設定を暗号化しても使う時は復号化するだろうが。そこをハッキングされたら同じことだから無意味だ」みたいに回答していて苦笑した。

確かに文面としては間違っていないが、そういう1/0の考えをするなら、DBの暗号化どころかキーリング(以下参照)でもなんでも、すべての保護機能・手段が無意味・不要になってしまうが・・・ こういう輩が被害に遭うのではないか。

ちょっと考えたが、(面倒かつ重くなりそうだけど)設定にアクセスするところを改造すれば暗号化できるように思う。誰もやってないのは 不可能なのか興味ないのか。いずれにしても、「鍵をどうするか」(以下に書いている)っていう問題はある。

問題は、そういう情報を暗号化する(それ自体は容易)として、それを使う時には復号する必要があり、その暗号化・復号化のための鍵をどこに保存し、どうやって取り出すかである。誰でもアクセスできるようなところに保存したら、全く意味がない。特定ユーザ(のプロセス)に許可するとしても、それに成りすまされたら駄目だ。

調べてみると、「ログイン」のような操作をしないシステムでは暗号化して保存するのが難しい(復号する鍵をどうするか?)ので、上述のサーバの弱さは どうしようもない面があることが分かった(けど、多くのシステムは「それなりに」ちゃんとしているのではないか?)。

「ログイン」の操作自体が重要なのでなく、そのコンピュータの外(部外者が容易にアクセスできない場所: ログインの場合は、ユーザの頭(注: ポストイットの場合も多いw))に鍵を保管し、そこから鍵を入れることが重要なのだと理解した。

これは推測だが、Windowsは必ず(一度は)ログイン(ログオン)をするので、この辺りが結構うまく行っているのではないか。Windowsサーバは使ったことないが、普通のデスクトップではログイン情報を保存できるから、それに似たような感じなのではないか。ただ、保存したログイン情報の暗号鍵は どうしているのだろうか?

更に推測だが、その辺りはNTの時に苦労していたのかも知れない(昔、そんなことを本で読んだ記憶がある: 内部で抗争しつつ作ってたんだったか?)。

そういう訳で、デスクトップなら、前に書いた(その稿の暗号化の話は、この問題を考えていて思い付いた)GNOME keyringが使えそうだが、サーバでは難しい。

というのは、GNOME keyringは(デスクトップの)ログイン時にキーリングをアンロック(≒ 復号化)するが、ログインせずに動いているサーバではアンロックするタイミングがないからだ。

GNOME keyringの処理を少し調べてみたら随分原始的で、ログイン時に入力したパスワードをそのままアンロックする処理に送り込んでいるだけのようだ・・・

ここはもう少し賢く、パスワードのハッシュを比較するとか、認証サービスに問い合わせた結果でアンロックの可否を判定するとか やりようはあると思うが、遅れているのだろう。その辺りで使われているPAMには そういう上等な機能があるのだと思って居たが、そうではないのか、GNOME keyringが使っていないのか。

ところで、僕のデスクトップは自動ログインでログインする(パスワードを入れる)タイミングがないのに なぜか使えているので、不思議に思って調べたら、自動ログインの場合はキーリングのパスワードがなく(空)、暗号化されていないことが分かった。

実際に確認したら、キーリングは単なるテキストファイルで、普通に読めた。。。: 間抜け過ぎる!

そういえば、忘れて居たが、結構前に、ログイン後にダイアログが出るのが鬱陶しいのでパスワードを空にしたような気がする。 (← 良くやる「馬鹿なこと」そのもの!)

 

結局、デスクトップもサーバも脆弱だったというオチだった。それで(、まずはデスクトップを)どうにかしたくて考えたが、余りいい案はなかった。以下に書く。

  • × GNOME keyring以外(例: gpg)を使う。: 安全に鍵を保管する問題は同じなので無意味。
    • GNOME keyringでもgpgでも、TPM (Trusted Platform Module)の機能を使えばできそう(な気がした)だが、PCもサーバも非対応である。
      • ただ、TPMへのアクセスの許可はどうするのか分からない。それを保存したユーザならできるとかでは余り意味がない。これに認証が要るならログインと同じことだ。
  • △- [デスクトップ] 自動ログインを止める。
    • もしもの時に、家族がPCにアクセスできなくなる。
      • 一応、起動したあとで見るべき場所が分かるようにしているし、PC以外の手段も用意しては居るが、「面倒」とか「分からない」とかでアクセスしない可能性が99.9%と思われる。(その時は僕の手を離れているので、それでも良い。)
  • △+ [デスクトップ] GNOME keyringにパスワードを付けるが、自動ログインのままにし、ログイン後にGNOME keyringを最初に起動した時に入力する(ダイアログが出るはず)。
    • サーバでは、gnome-keyring-daemon --unlock にパスワードを入れればアンロックできるので、どうにかして入れれば良い。
      • なお、Xの動いていないサーバでは、dbus-run-sessionでgnome-keyring-daemonを動かす必要がある。
    • アンロックしない限り、キーリングを使うプログラムは動かなくなるが、(上記の)家族がアクセスできなくなる問題は回避できる(家族がアクセスするファイルは暗号化しないとする)。
  • △ [デスクトップ] 外付けUSBメモリなどに鍵を保管しておき、最初に読み込んでキーリングをアンロックする。
    • 盗難などに弱いが、自動ログインしている時点で脆弱なので良し?
    • サーバでも、最初(再起動後)にデスクトップから鍵を送るようにすれば、同様にできる。ただ、sshでアンロックするプログラムを起動するほうが楽かも。
    • 面倒な割に実効性は少ない?
    • ちゃんとやるなら、生体認証デバイスのようなものを使うのがいいのだろう。
      • 単なる思い付きだが、銀行の認証のようにスマフォで指紋認証できたら便利だがなあ・・・
        • でも、これは既にありそうなので、あとで調べたい。
        • → (既にあるものがなければ、)直接 スマフォの指紋認証を使うのは難しそうだが、スマフォから鍵を送ってアンロックするのはできそうだ(基本部分は自作の画像転送の仕組みが使える)。スマフォは指紋認証で開くので、間接的には指紋認証を通すことになる。PCだけでなくスマフォ、そのうえに この方式までハッキングされなければ、きっと安全だ(要確認)。 (18:31)

 

いつものように僕が間抜けなことを実感した。とりあえずは、GNOME keyringにパスワードを付けて暗号化し、ログイン後にアンロックしようと考えている。

どこまでしっかりすればいいか分からない(おそらく、どこまでやってもキリがない)が、とりあえずは、間違ったり予期せぬ問題で認証情報の入った設定ファイルが流出しても ひどいことにならないようにしたいと思っている。

その点でサーバ(で動かしているアプリ)は頭が痛過ぎるが、根本から駄目なものは(すぐには)どうしようもないから、デスクトップをやってから徐々に何とかしたい・・・

そこにSE Linuxが出て来るのだろうか? (すごく面倒だってことしか知らんけど) それに似たようなものにAppArmorがあり、使っているLinuxに既に入って居るが、どういう関係なのかは分からない。 (やっぱり、面倒だってことしか分かってないw)

 

(5/3 8:21) GNOME keyringにパスワードを付けて暗号化するのを試したら、いくつか思い違い(あるいは細かい情報)が見つかり、やろうとして居たことが容易にはできないことが分かった。

まず、デフォルトのキーリングが暗号化されている場合、ログイン時に自動でアンロックすることはできる。最初に入力したパスワードが保存され※、次回のログイン時にそれを使って自動でアンロックできる。ただし、(上に書いたように、)自動ログインの場合はできず、パスワード入力ダイアログが出る。

※パスワードはloginキーリングに入る。

そして、ログイン時にキーリングをアンロックする時、gnome-keyring-daemon --unlockで解除するのに指定するのはデフォルトのでなくloginキーリングのパスワードで、それはログインパスワードである。 (確かにそうで、都合良くデフォルトキーリングと思い込んでいた。)

 

それで、ログインまたは起動時にデフォルトのキーリングがアンロックできないと、それを使ういろいろな自動起動アプリに支障が出る(例: Evolutionはメール取得できない)ので、ひとまずは自動ログインを解除した。

ログインパスワードを外部から入れてloginキーリングをアンロックするとしても、ログインまたは起動時にタイムリーに入れないと不都合が起こって嫌なので、「スルっ」とできる方法やデフォルトキーリングの解除を保持する方法を考える必要がありそうだ。

本質でないところにも面倒があるな。

(5/3 19:44) 例によってしつこく粘り強く試行錯誤していたら、大分近づいた。: 自動ログインで起動したあとで、そうでない時のようにloginキーリングをアンロックして、デフォルトキーリングのアンロックを自動でできるようにする手順が分かった。以下のようにすれば良さそうだ。

  1. キーリングを使いそうなログイン時の自動起動アプリを停める。: 完全には無理だった(使っていそうなもの(以下に例を示す)を随分停めたが、まだ起動後にログインパスワード入力のダイアログが出る)が、何とかなる。
    • GNOME keyring daemon, seahorse, Vivaldi, Firefox, Spotify, Thunar, Dropbox, Evolution, Seamonkey, Joplin
    • 上の他に、Policy kitとNetwork Managerも怪しかったが、起動しなくなりそうなので試さなかった。
  2. 再ログイン(自動ログインを設定してreboot)する。
  3. 起動後、起動してしまったgnome-keyring-daemonを停める。
    • pkill -TERM -f gnome-keyring-daemon
  4. gnome-keyring-daemonにログインパスワードを入れて起動し、loginキーリングをアンロックする。
    • echo -n LOGIN-PW | gnome-keyring-daemon -r --unlock
      • 注: パスワードの最後に改行があるとアンロックに失敗する(が、エラーにならないので分かりにくい)。なので、キーボードから手で入力するとアンロックできず、うまく行かない。
      • gnome-keyring-daemonのオプション -r は不要だが、念のために指定した。
    • パスワード入力ダイアログを出す例
      • zenity --password | tr -d '\n' | gnome-keyring-daemon -r --unlock
  5. キーリングを使う(自動起動)アプリを起動する。
    • 例: seahorse, Evolution
    • 実際に使う場合はスクリプトで一括自動起動がいいか。

いろいろな落とし穴があって苦労したが、どうにかなりそうな感じだ(いろいろ作るのは面倒だが・・・)。デフォルトキーリングのパスワードは複雑なので入れるのは手間だが、ログインパスワードはsudoコマンドで いつも入れているから、それほど面倒ではない。それに、この方法なら、上に書いたような、スマフォからパスワードを入れるといった複雑な処理が不要になって好都合だ。

結局、最初にログインパスワードを入れるなら自動ログインでない場合と同じではないかと思われるが、そうではない。僕から見れば同じだが、(もしもの時に)家族が起動した時に、パスワードが分からなくてもデスクトップが開けて ある程度のことができる点が違う。できないのは、上の例に挙げたようなアプリを使う作業だが、そういうのは不要だし することもないだろう。

他に分かったこととして、dbus-daemonを停めるとデスクトップが終わってしまうことがある。以前から何度か、突然画面が真っ暗になって「全部終わり」になってしまうことがあったが、これだった(スクリプトの作成・確認中などに間違って停めてしまった)ような気がする。詳しくは分からないが、重要な要素なのだろう。

(5/12 9:03) 上の手順で使う自動起動アプリを起動するスクリプトの詳細を考えたものの、作るのとデバッグが面倒で保留(うだうだ)していたら、何も作らずに済ませる うまい手を思い付いた。

デフォルトキーリングにパスワードを設定して自動ログインで起動すると、デフォルトキーリングを使うアプリが起動した時点でデフォルトキーリングのパスワード入力のダイアログが出るので、それにパスワードを入れれば良い。: ごく当たり前の手順である。

アプリによっては、パスワード入力が遅いとエラーになる可能性もあるが、今のところは問題は起こっていない。

今までは、デフォルトキーリングのパスワードを複雑なものにして覚えられないから、ログインキーリングに(覚えている)ログインパスワードを入れることで済ませようとしていたが、デフォルトキーリングのパスワードを覚えられる・覚えているもの(例: 何かの使い回し)にすればいいのだ。

セキュリティ上は若干弱くなるが、そもそも自動ログインにしていること自体が弱いので、多少は目をつぶろう。

これで、残りはサーバの対処だ。やり方は分かっているものの、やっぱり面倒ではある。

  •  0
  •  0

昨日、「「こんまり式」はもう古い!? スウェーデン式の断捨離「死のお片付け」とは?」という記事を読み、なるほどと思った。特に同感だと思った箇所を引用する。

「これをとっておいたら誰かが喜んでくれる?」

米雑誌「ピープル」とのインタビューでマグネソン氏は、「死のお片付け」を経ても捨てずにとっておいた物が詰まった箱の存在について語っている。手紙や写真など個人的な思い出の品で、つまり自分には意味のあるものだが、いくら家族と言えど自分以外の人には不要な物だ。自分にもしものことがあったら、家族はこの箱に何が入っているかを吟味することなく捨てていいことになっていると言う。

まさにこれで、僕は、お金以外は、残しておいて家族が喜ぶ「物」など何もないと思う(せいぜい家や車などの実用品? それだって、使うあてがなければ処分が面倒なだけだ)。お金だって、余計な争いを生む可能性があるから有害だ。だから、自分の物は好きなだけ処分すればいいし、(残った家族が処分する手間を少なくするために、)身の回りの物は最小限に留めるべきだと思う。そういう意味では、死んだら自分の物が自動的に何もかも消滅するような仕組みがあれば、便利だと思う。そして、残った家族は、何だって捨てていいと思う。

結局のところ、価値があるのは本人自身であって、物ではないということだ。そして、このブログや日記のような情報だって同じだろう。ただ、物と違って場所を取らないし削除も容易だから、物よりは残しておいても迷惑ではないだろう。

ただ、例外はあって、音楽のような作品の類は、本人が死んだからといって消滅しては困り、楽しむ人が居る限りずっと残る必要がある。そういうものは、作った人だけのものではなく、公共のものになっているということなのだろう。

  •  0
  •  1

昨日、ピロリ菌の検査のために、初めての胃カメラをした。予約をしてから約3か月経っていて、本当にやるのか半信半疑だったのだが、親切なことに、前の日に確認の電話が来て、「本当にやるんだ」と実感した。と書くのは盛り過ぎだw

その医院は随分のんびりしているし、少し間抜けなところがあるのだが、かなり親切な感じがした。確認の電話はくれるし、検査の時の対応も、とても親切だった。だから混んでいるのかも知れない。

そして、昨日、予定の時間に充分間に合うように行ったのだが、同様な検査の人が多いせいか、40分くらい待った。その間、下らないテレビ番組が目に入って、世の中には甘過ぎる連中が居ると思った。参考のため、概要と思ったことを書く。

転勤が多かった家族の母が、(当時高校生の)娘から「私のふるさとはどこ?」と聞かれて、なぜか答えられなかった。そして現在、その娘の結婚式でその話をして謝りたいのだが、両親は自分たちからは言い出せないので、アイドルの番組に頼んだとのこと。

その程度でお涙頂戴かっ! その子が養子だったとか親が再婚したとか(個人的には、それだって問題ではないと思うが、一般には問題になることもあるだろうという意味)じゃなく、ただ引越しが多かっただけで「ふるさと」がなくて、それを言い出せないほど可哀想なのか? 全く頭に来る。引越しが問題でなく親が問題だ。百歩譲ってそれが真当だったとして、そんなに大切なことなら、テレビなんて頼らずに自分たちで話せばいいのに、余程の馬鹿なんだろうか。今はそういう親が多いのか。

テレビも、そんな下らないこと(そもそも、やらせとか作り話かも知れない)を取り上げるほどレベルが低下し、ネタがなくなっている(考えられない)のだろう。アイドルを出して視聴率が取れれば、何でもいいのかも知れないな。

そうこうしているうちに、検査の順番が来た。意外に準備がしっかりしていた。脈拍センサを付け、鼻に酸素を通した。検査中、みんなでずっと呼吸法(「すってー、はいてー」)を声掛けしてくれたり、背中をさすったりしてくれて(したことはないけど、出産の時のようだった)、すごく安心だった。医師も説明などが丁寧で、信頼出来そうな感じだった。

すっかり安心したのか麻酔が効いたのか、気付いたら終わっていた。鼻からでなく口からだったのだが、喉に管を通す痛みどころか、「唾液だらだら」も、むせその他嫌なことは全然なしで、すごく楽だった。せいぜい、最初に飲んだ、胃液の泡を抑える薬がまずかった程度だ。「いつの間にか終わっちゃったという人が多いんですよ」という、看護師さんの説明どおりだった。

何だかんだいっても、医療は進歩しているのだろう。そして、(僕の知っている)定説と違って、鼻を通した方が楽という訳じゃないのかもしれない。両方やっていないので分からないが。でも、もし同じ条件だったら、次回も口を選択すると思う。

ただ、最初に準備と説明をしてくれた、若くて親切な看護師さんは若干注射の経験が浅かったようで、最初に刺した針が駄目になって、もう片方の腕に刺し直す羽目になった(二回目は、おそらく、別の年長の方がしたと思う)。僕は腕の血管が分かりにくいので、良くあることだから、全然気にならなかった。

ここでも、(外部から判断する)性格と仕事の結果は無関係という、厳然たる事実が再確認できた。だからといって、その看護師さんが駄目だとかいうつもりはない。むしろ、明るくて、(今は縁を切ってしまったが)前の会社での友人に似て親しみやすそうで、気安く接せる感じの、その看護師さんには好感が持てた。それは仕事とは全く関係ないがw それはともかく、多少経験不足だって、僕を安心させてくれたのは、充分に評価できることだと思う。

ただ、自分では安心し切っていたつもりなのに、医師に「始めます」と言われたら、急に脈拍が倍くらいに上がったのが、不思議でおもしろかった。

検査中のことは何も覚えていないのだが、胃液と組織を取ったようだ。終わった直後に写真を見せられて、ピロリ菌は陽性と言われた。詳しい結果は後日とのことだが、土曜日は混んでいるせいで、一か月くらい後になった。なかなかののん気さだが、慣れてしまったw

それから別のベッドに移動し、1時間以上休憩していた。なかなか呼びに来ないので、自分から出るんだったかと思ったが、出て行って「まだいいんですよ」とか言われたら面倒だし、長居しても怒られないだろうから、ごろごろしていたら、呼びに来た。医院までは歩いて行ったのだが、まだ麻酔が抜けていなかったようで、帰路は結構ふらふらしていた。前日の21時から全然食べられず、お腹が空いていたので、途中で甘い飲み物を買って飲んだら、最初に少しむせてしまった。なお、検査費用は約7千円だった。

帰宅したら、太腿をはじめ、身体中が痛かった。これは検査のせいではなく、前日に会社のレクレーションで十年以上ぶりに軽い運動をしたせいだと思う。帰宅してから飲んだホッピーがおいしかった。やたらと疲れていたので、20時前に寝てしまった。

そして、今日。まだだるい。まだ麻酔が抜けていないのか、目の焦点がいつもより合いにくいし、タイプミスなどの細かい間違いがやたらに多い。例えば、カレーうどんを「うどんカレー」と打つとか。。。麻酔のせいで頭がボケてしまったのか? そんな訳で、予定していたドライブを明日に延期した。

でも、心配していた胃カメラの痛みが全然なくて、良かった。あの医院なら、何度やってもいいくらいだw

PS. 初めの方に間抜けと書いたのは、例えば、喉にカメラの管を通すのに、事前に喉の診察をしていなかったことだ。例えば、すごく扁桃腺が腫れていたりして、喉の径が細かったら大丈夫だったのかと思うが、彼らの経験上、今までそういう問題はなかったのだろうと想像する。

PS2. まだ死ぬつもりはないけれど、昨日のように介抱されて、すっかり安心しているうちに意識が遠のいて、「気付いたら(気付かないだろうが)死んでいた」というのなら、痛みも不安も恐怖もないから、全く許容できる気がした。なんか、いいことを知った気がする。(20:24)

(10/9 7:41 検査費用を追記)

  •  1
  •  0