湯浅とトリュフとオレオレ証明書

今日は昨日、ランチを決めるときにすでに閉まっていたんだけど気になったお店に来てみた。名前を『湯浅』。どっかで聞いたことある名前なんだよね。といってもそれはこの店に過去に来たことがあるわけじゃなくて、観光地名かその観光で見たお店の名前……みたいな感じ。と思ったら、地名だった(汗

湯浅、けっこう人気の店らしいがボクが入った頃にはだいぶ席は空いていた。それでも一回は満席、二階席に通される。従業員が凄く多い。一族経営難だろうか? おばちゃんたちが所狭しと駆け回る。
まかないが厨房横のちょっとした空間に、ビールケースを裏返してテーブル代わりにして供されてたw

ボクはミックスフライ定食を注文。他の二人は天ぷら蕎麦としらす丼、海鮮丼だった。お値段いずれも 780 円。
味は二本の定食の見本とも言うべきだろうか。見た目通りの味な上に揚げ物はどれも柔らかく中まで火が通っていつつも固くなりすぎないような揚げ加減。そして写真では解らないけど、お米が美味しい! なのでおかずも自ずと美味しくなる。
いいなぁ、ここは常連になりたい。店員さんと会話を許してくれる雰囲気もあったし。

ところで帰りにマイバスケットによってデザートを物色してたんだけど、なんだか高そうなチョコを見つけたので何となく買ってみるっていうか、カロリーがすごい。そして食べると……あっま~~~~い! 喉が焼ける! 焼ける!!
それぐらいの甘さだ。
思わずお茶をがぶ飲みしてしまった。

日本のチョコ感覚でパクパク行きすぎた。そもそもこれは一人で全部食うものではない。というわけで周囲にも配りつつ(相対ダイエット)、まぁ結局はほとんど自分で食ったんだけどさ!

iPad を買った時、これを Windows ノート PC のように使おうとしたときに、オレオレ証明書で躓いたという話を書いた。結局証明書のエラーは出たまんま使っている。このエラーは iOS 起動後ブラウザを初めて起動するときに出るだけなので、まぁいっかって感じだったので、そのまま放置していたのだが、今日、ふと iOS の設定を見ていたら上のツイートのような画面があるのを発見した。

なんだこれ、いつ追加されたんだ???

というわけでこれを ON にしたら無事、ウチのサーバの証明書でもエラーが出なくなった。

ところでボクは iOS のウェブブラウザには Google Chrome を使っている。理由は単純に Chrome の方が反応が速いからだが、これは iPad では感じられない(マシンパワーが充分なので、両者の差異が出ない)。そもそも iOS は iOS が用意したレンダリング エンジン以外は許可しておらず、Safari も Chrome も速度は変わらないはずなのだが iPhone で使っていると Chrome の方が速く感じる。これはおそらく UI の出来の違いだと思われる。

でね、インターネットのリンクをタップ(クリック)するとブラウザが起動してリンク先のページが表示されるじゃない? このとき、 Windows や Android だとどのブラウザを使って開くのか設定が出来るんだけど、iOS は Safari 固定になってしまう。そのためいつの間にか Safari がとんでもない数のページを開いた状態になっていたりするのだ。

かつて EU が Windows と Internet Explorer を分離させたように、是非とも iOS から Safari 以外のブラウザが選べるように Apple に働きかけて欲しい。マジで頼みます!

クラウドに頼らずに iPad を使う with オレオレ証明書との戦い

 

さて、iPad をいかにノート PC の様にして使うか、それが iPad を初めて手に入れたボクの最初の使命である。iOS はバカ素人でも使えるように、様々な PC 的概念が見た目上排除されている。例えば撮った写真は写真アプリでしかアクセス出来ない。他の写真加工ソフトとかで見ることができないのだ。
これはアプリとデータをセットで隔離することによって、セキュリティを高めることが出来るからだ。別のソフトが勝手に他のアプリのデータを読んだり、また他の場所にコピーしたり出来ないようにしているわけだ。

この制限はあくまでも見た目上であり、中身は PC と同じなので、フォルダ(ディレクトリ)があり、ファイルがある。そして上記の制限を完全に守ると使いにくいので、他のアプリが写真にアクセス出来るように許可を出す設定が出来たり、他の場所にコピーをする許可を出す設定ができたりする。

さて、ボクの場合は amatsukami.jp サーバに開発に関わるあらゆるデータが置いてある。これは iPad からするといわゆるクラウドに相当する。要するにボクは 2000 年頃からすでにクラウドみないなことをやっているわけだが、iOS 上のアプリはこの独自クラウドには対応していない。Google DriveiCloudDropbox などの有名なサービスには対応しているが、ボクが個人的に立ち上げたクラウドにはアクセスする手段を用意していないのだ。

じゃぁ Google Drive などのサービスを使えばいいじゃないかというと、そう簡単にはいかない。まず容量が足りない。ボクのサーバはプロジェクト用だけでも 8TB 用意してある。Google Drive で無料に使えるのはその 1/1000 以下の 5GB である。そしてもう一つ重要なのが、エロゲのデータが置いてあることだ。
エロゲの画像データは海外からしたら児童ポルノに認定されてしまうことがよくある。Google などが勝手にボクのデータをのぞき見て、エロゲのデータを児童ポルノだと認定したら垢バンどころかそれ以上の面倒なことになりかねない。

そう言った理由で、自宅サーバにデータを置いているのである。

でね、Googe Drive とかも別に特殊なことをやっているわけではなくて、内部ではインターネットで規定された汎用の技術(WebDAV など)を使って実現されている。と言うことはつまり iOS のアプリ側も汎用的な技術を使って Google Drive とかにアクセスしている。
そこで汎用的な技術を使って iOS とその他のサーバとをやりとりできるアプリを間に挟むことによって、自宅のサーバのデータを iPad で読み書きするように設定できた。FileExplorer というアプリだ。このアプリは、様々なアプリがファイルを開くとき、この FileExplorer が選択できるように設計されているようだ。そのため、アプリからファイルを開くとき、FileExplorer を選べば FileExplorer がアクセス出来るファイルを読み書きできるという具合だ。

ところが iPad 側でいろいろとファイルをいじれるようになったものの、問題が起きた。それはフォント(笑)。ボクの開発用 PC には相当数のフォントが入っているのだが、iPad にはないし、そもそもそんなにたくさんのフォントを入れることは出来ない。
結局印刷物を作ったり、バナーを作ったりするのには全く使えなかった(汗)。

ただ、よくわかんないんだけど、PC で作ったファイルを読み込むと、Adobe や Office はどこからかフォントを読み込んでくれるようだ(アプリ起動時に、本体にないファイルを読み込んでいますみたいなことが表示される)。

さて、ここまではまずまずの結果と言ってもイイだろう。
問題はその次である。それはオレオレ証明書だ。amatsukami.jp の通信を暗号化するための証明書は公的なものではなく、ボクが勝手に発行したものだ(笑)。別にボクだけが使うものだし、暗号化さえされていればいいのでちゃんとした証明書はいらない。それにこのオレオレ証明書を iPad に登録すれば、ボクの iPad だけ公式な証明書となるのだ。
ところが、これが何度登録しても実際に使おうとするとオレオレ証明書になってしまう。コレは困った。iPhone ではすでに同じことをしてあって、そっちではちゃんとエラーも出ずに公式な証明書として使えているのに、なぜか iPad ではダメなのだ……。そのためボクの仕事で使っているサイト(redmine とかグループウェアとか)までエラー表示されてしまう。

困ったなぁ……いったい何が原因なんだろうか? っていうかもう公式な証明書をとるしかないんだろうか??

与太話。ボクは今、趣味でも仕事でも PHP でプログラムを組んでいるんだけど PHP で扱う日付は UNIX 時間という 1970 年 1 月 1 日から何秒経過したかっていうデータなのね。でもそれだと何が何だか解らんので、この秒数を「○年○月○日 XX時XX分XX秒」に変換して使ってる。

ところが、この年月日を計算するとなると(例えば今日は 2017 年 7 月 11 日から何日が経過しているかとか、2018 年 12 月 13 日引く2001 年 10 月 9 日は何年何ヶ月何日間なのかとか)、UNIX 時間のままの方が楽だ。ただの秒数だから、秒数同士を足したり引いたりするだけで OK だからだ。

しかし一度貰ったデータは「○年○月○日 XX:XX:XX」っていう形式のデータに変換してしまっている。

上の strtotime という関数はこの「○年○月○日 XX:XX:XX」っていうデータから UNIX 時間に戻してくれる関数なのだ。コレのおかげで時間計算が凄く楽になって助かったーっていう意味が上のツイートには込められているのであった。

Chrome で証明書エラーが出るようになった

ボクは自宅サーバを立てているわけだけれど、SSL 証明書オレオレ証明書を使っている。が、オレオレ証明書は当然ボクが勝手に発行した証明書なので、インターネットの世界では信頼性がない。証明書は本来「認証局」と呼ばれるインターネット上で信頼性が担保された機関によって発行されたものでなければならないのだ。
とはいえ、それにはお金がかかるし(最近では無料のものもある)、そもそも暗号化さえできれば良いので、オレオレ証明書を使っている。で、ウチのサーバを「信頼していい認証局ですよ」と PC に登録することによって、エラーが出ないようにしているのだ。

ところが、数日前から Google Chrome でボクのサイトを開くと証明書エラーが出るようになった。よくよく調べて見ると、証明書には当然そのサイトのドメイン名(うちなら amatsukam.jp)が入っているわけだけど、それの参照する場所が変わったらしい。ボクが発行した証明書には Google Chrome が参照する値が入っていないのが原因だった。

Google Chrome が参照するようになったのは「X509v3 Subject Alternative Name(略称:SAN)」というものらしいのだが、これは証明書で設定するのではなく、認証局側で設定するらしい。というわけで、amatsukami.jp の SSL 証明書をウチのサーバの認証局で発行する際に、この SAN を設定することによって解決できた。

下の写真は会社に行く途中の歩道橋に乗り捨ててあった自転車。帰りに撮ったんだけど、行きは倒れた状態で歩道の階段をほぼ塞いでいた。あれかなー、酔っ払って盗んで乗って帰ってきてこの辺で捨てたって事なのかな? もし盗まれたものだとしたら、持ち主がここにあることを知ることはなかなか難しい気がした。
ちなみにその後、この自転車は歩道橋を上がった歩道にずーっと少なくとも 7  月 31 日までは置かれていた。その後は渋谷の出向が解かれたので、解らない(汗)。

Aipo と PC & モバイル環境

Aipo っていうグループウェアがある。
で、これをボクは一人で使っている(笑)。
備忘録とかスケジュールとかを前はテキスト エディタでメモってたんだけど、今ボクの情報端末環境がけっこう変わったって言うか無節操って言うか、なんていうか、場所によって色々機器が変わるので、スケジュールの確認等をすべて Web 上でやる必要が出てきた。
ちなみにボクを取り巻く情報端末は以下の通り。

  • 自宅開発機(Windows 10)
  • 会社開発機(Windows 10)
  • ゴロ寝用 ThinkPad X200(Windows 10)
  • いつも持ち歩いている iPhone 6(iOS)
  • いつも持ち歩いている VAIO Duo 11(Windows 10)
  • 自室以外で使ってる ASUS Vivo Tab Note 8(Windows 10)

外出先での打ち合わせなどは主に VAIO Duo 11。VAIO を持ち出すのを忘れた場合 iPhone でメモを取っている。
会社では会社の開発機でメモを取る。
わりと複雑なのが自宅で、自分のデスクに座っているときは自宅開発機、ベッドとか床でゴロゴロしている時は ThinkPad X200、自分以外の部屋にいるときは ASUS の Vivo Tab Note 8 を持ち歩いているというような状況である。

これら 6 つの機械から、スケジュールやらメモやら ToDo やらをすべてテキスト エディタでやってて、自宅サーバにあるメモ ファイルを入れるフォルダにどんどん入れてた。けどね、これ、あとで見返さないのよねww メモ取ったっきり。で、〆切とかやることとか忘れることが多かった。

ので、ボク一人しか使わないけど Aipo を入れているのだが、それが 7.0.1 だったので 8.1.1 にアップグレードした。といってもこれは簡単で、EXE を叩くだけである。そうすると勝手にアップグレードしてくれる。

次に SSL である。ウチはオレオレ証明書で運用しているのだが、自分で使う機械にはウチのサーバの認証局を信用する認証局として登録してあるので、ブラウザなどでエラーが出ることはない。しかし、Aipo の SSL は独自設定のため、アクセスするたびに「信頼できない証明書」って表示されていた。この Aipo 独自の証明書をウチのサーバの認証局で認証するようにした。
これは Aipo に入っている Keystore というコマンドラインを使って csr ファイルを作成し、そいつをウチのサーバの認証局で認証させるという方法でできた。
こんな感じで今はメモやスケジュール、ToDo なんかを全部 Aipo に任せて、どの端末からでも参照できるようにした。

暗号化の意義

bs_tuba01i
朝日新聞に、こんな記事が載った。

実は技術系の掲示板『スラッシュドット』でもこの手の話題がチラホラ出るようになった。

これらの記事を鵜呑みにするならば、SSL 通信を米国当局が復号出来るということになるわけだが、本当かなぁ~~~。本当だとするとこれは非常に心理的にイヤだ。
しかし量子コンピュータがすでに実用化されていて、ばんばん SSL 通信をリアルタイムで解読しているというのも考えにくい。
問題点はいくつかある。

  1. ともかくデータが膨大。これらをすべて復号するには、量子コンピュータがいくつも必要
  2. 米国を経由しないデータはどうするのか

で、1 に関してはひょっとして Verisign などの認証局を陥落させたってことなんじゃないかなぁ、と何となく想像している。つまり認証局から直接秘密鍵を取得する何らかのルートなりなんなりを手に入れたのではないかと。そうすれば、認証局に登録された SSL 通信ならば解読出来ることになる。
もしそうだとするなら、正規の証明書はアメリカに解読されてしまう脆弱な証明書で有り、オレオレ証明書と言われる、個人が勝手に発行した証明書こそがアメリカに解読されない安全な証明書と言うことになってしまう(汗)。

2 に関してはわりと簡単にクリア出来そうだ。まぁそもそも米国の IP 通信網を流れないデータについては無視しても良いだろうし、DNS もしくは各国の IX に働きかけて、どんなデータでも米国を経由するようにすることは出来る。もっともそんなことをすれば、アメリカの回線がそうとう圧迫されそうだが(汗)。

んー、取り越し苦労なのか、もはや対抗する手段がないのかは解らないが、将来的に Linux 系にサーバを移行した方がいいのではないかと漠然と思い始めている。というのも Microsoft はアメリカ当局に手の内を漏らしそうだし、アメリカ当局が復号出来ないような暗号形式を実装するとも思えない。そういうのは Linux 陣営の方が実装が早いだろうし、アメリカ当局の干渉を比較的受けないのかなぁと思っている。