雑記

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|09|11|
2009|02|03|05|06|07|08|10|11|12|
2010|01|03|04|05|06|07|08|09|10|
2011|05|06|09|10|
2012|03|07|09|12|
2013|01|02|04|05|07|08|10|11|
2014|04|05|08|10|12|
2015|01|05|
2016|09|

2005-02-01 [長年日記]

夕食

カレーを作ってご飯を炊き忘れる。

[SSL] SSLと金庫の例え(高木浩光@自宅の日記より)

SSLを金庫と対比させるのはちょっと例えが悪いような。下のほうにある、

金庫の上に鍵が置かれているなら鍵を手にとって開ければよい。

から

共通鍵暗号の鍵が平文でいっしょに配送されている暗号化通信ならば、暗号文の傍受と同時に鍵も傍受してその鍵で暗号文を復号すればよい。

という流れはスッと受け入れられますが、その直後に続く

公開鍵暗号の公開鍵がいっしょに配送されている暗号化通信では、傍受点で、流れてきた鍵を、別途用意した自作鍵に差し替えて流してしまえば、それで暗号化されて戻ってくる暗号文を復号できる。

というくだりになると、「えっ、何でここで自作鍵への差し替えの話が出てくるの? 金庫の例と話が違うじゃん」と引っかかってしまいます(私だけ?)。この辺の違和感を逆手にとって、「鍵を差し替えるには高度な知識と技術が必要なので、通常そういうことは起こらない」とかいうトンデモな言い訳が出てきそうな予感がします。

これだけだと単なる揚げ足取りなので、一般向けにはどんな説明が良いのかなと自分なりに考えた結果、SSLは賽銭箱、ないし郵便ポストあたりが近いモデルなのかなと思いました。

賽銭箱は、

  • 屋外に置かれ、誰でもお金を投げ入れることができる (誰でもサーバにアクセス・通信できる)
  • 賽銭箱の中身は見えない (通信内容は暗号化される)
  • いったん賽銭箱に入ったお金は、設置者が別途管理している鍵を使わなければ取り出せない (暗号化された情報は、サーバ管理者が持っている秘密鍵でないと復号化できない)
といったあたり、SSLとマッチングが取れています。郵便ポストも同じように当てはめればよいでしょう。

で、肝心なのはこれらの例でも、「オレオレ証明書は危ない(または機能しない)」という構造に変わりはないということです。「オレオレ証明書」を賽銭箱の例に例えると、

道端に賽銭箱が置いてあり、その賽銭箱には「太宰府天満宮」と書いてあります。あなたが今受験生だと仮定して、その賽銭箱にお金を入れますか?

といった感じでしょうか。これが道端ではなく、太宰府天満宮の境内の中なら、お金を投げ入れて願掛けする事に躊躇はないでしょうが、その辺の道端に転がっている「オレオレ賽銭箱」の表書きを信じてお金を入れると答える人はまずいないでしょう。

と・こ・ろ・が、ですね。これが郵便ポストの例になると、明らかに印象が変わってきます。

道端に郵便ポストが立っています。あなたは葉書封筒に入れた郵便為替を持っていますが、そのポストに投函しますか?

といったところでしょうか。で、この質問にYesと答える人はいるだろうなというのが私の憶測です。実際には道端の賽銭箱と道端の郵便ポストでは、その信頼度になんら変わりはないはずなのですが。。。

思うに、「オレオレ証明書」を平気で使う人達は、おそらく自分たちのサーバには郵便ポスト並みの信頼度があると勘違いしているんじゃないでしょうか。で、よくよく考えるとその郵便ポストも実際には信頼に足る条件を満たしていないという二重落ちが付くと。

「郵便物 man-in-the-middle」

いやなんとなく思いついたのですが、語呂が良かったので。手口は書くまでもないですね。何気にその辺に悪意ある中継ポストがあったりして。


2005-02-02 [長年日記]

イーバンクさんはあくまで慇懃無礼です

すごい。SPAMメールの元凶となっているユーザではなく、SPAMメールを受け取って被害を被っている側の利用停止措置をとるなんて、斬新なクレーム処理だ。しかも、

当行にてメマネサービスへの利用禁止及びメールの配信停止のお手続きを行わせていただきます。

なんて文面がかなりいい味出してる。

ことの経緯は

を読むとわかります。

ところで、最初の日記では「メルマネってシステムを使って500円送った」という記述がありますが、それに引っかかった人が開設した口座の残高が本当に500円ぴったりになるとしたら、実際には送金0円でキャンペーンの500円だけ入手できる穴があるってことになるんですが、イーバンクは気付いてるんでしょうか。


2005-02-06 [長年日記]

ウゴツール(from メタリッククローバー)

これは楽しい。VTRモードがまたいい。


2005-02-11 [長年日記]

突然の訪問者

夜7時ごろ、突然人が訪ねてきて、車のガソリンが切れた上財布を忘れて困っているのでお金を貸して欲しいと言われたので、1万円貸す。連絡先ですと言って電話番号を残して立ち去る。

夜8時半、同じ人がもう一度訪ねてくる。お金を返しに来たのかと思って出てみると、持ってきたのはケンタッキーのポテトと借用書。わざわざこれだけ持ってきたのかと思っていたら、次に出てきた言葉が「もう1万貸してほしい」。おいおい、さっきは財布忘れただけって言ってなかったっけ?仕事がなくてお金に困ってるといわれても知ったこっちゃないし、最初からそう言われていたら当然追い返している。手持ちが無いといってお断りする。

最初の時点で追い返すぐらいじゃないともう駄目な時代なんだろうか。次の機会のために最寄りの交番の位置を確認する。

突然の電話

今度は会社の同僚から、飲み屋に上着を忘れてきて車の鍵すらないと救助要請が。どうやら今日はそういう日らしい。

本日のツッコミ(全2件) [ツッコミを入れる]

- taru_k [A「一万円貸して」B「駄目!!!」って言わせてBに精神的負荷をかけておいてから,A「じゃあ千円」B「良いよ…」って言..]

- sukoya [振り込め詐欺被害の少ない大阪から突っ込みます。 5年ほど前に、財布を落として帰りの電車賃がないので貸してくれと言う若..]


2005-02-23 [長年日記]

今日の架空請求メール

突然のご連絡申し訳ありません。
以前よりご連絡しておりました、お客様がご利用になられました携帯電話のサービス内でお客様はブラックリストになり延滞課金利用者となっております。
サーバー管理者からの忠告といたしましてそのサービスの退会直通のアドレスを今回のみお客様のために載せておきます。
「突然のご連絡」を詫びておいて「以前よりご連絡しておりました」とはこれいかに。それ以降は日本語になってないし、書いているうちに敬語に飽きてきた様子が伺えます。

2005-02-24 [長年日記]

ソフトウェアのページ

tDiaryをバージョンアップした時に、公開していたソフトのページが軒並み閲覧不可能になっていたことを、見に来ていただいた方の指摘により気付く。さっそく修正。

Windowsプログラミング始めました

友人に対抗したわけではないですが、昨年末から仕事でWindowsアプリケーション作ってます。

諸事情でVisual C++ 6.0を使ってるのですが、いかんせん古いバージョンで、.Net以降のリファレンスしかないMSDNのオンラインドキュメントがあまりあてになりません。さらに検索はC#とかVBの情報が混ざってしまってS/N比が悪すぎます。googleで入門系やサンプル集のページを探してみましたが、結局それらしい書籍を買いあさることに。以下、買った本について。

  • C++ライブラリクイックリファレンス,オライリー」
    C++の標準ライブラリの情報はこれで引いています。ちょっと癖がありますが、慣れると必要十分な情報がコンパクトにまとまっていてかなり使えます。難点はstring.clear()とか、Windowsで実装されていないメンバー関数があること。サンプルコードは .Net 7.0で検証済みらしいのですが。これのWin32 APIバージョンがあったら絶対買うのですが。。。
  • C++ 実践プログラミング, オライリー」
    ついつい i.to_s とか書いてしまう脳を切り替えるために必須の1冊。
  • Win32 API オフィシャルリファレンス改定3版, アスキー」
    この本の価値は付録C「機能別関数索引」と付録D「アルファベット順関数索引」に集約されています。この約50ページ弱に5200円払う気になれるかどうかは難しいところですが、今のところ他に代わりがありません。オライリーが「Win32 API デスクトップリファレンス」を1000円ぐらいで出してくれると良いんですが。
  • VisualC++逆引き大全 500の極意,秀和システム」
    説明やサンプルコードはなかなかわかりやすくて良いのですが、索引が駄目駄目。「Win32 API ...」で引いたものの使い方がわかり難いときにたまに引いてみる程度。
  • Winsock2プログラミング, ソフトバンクパブリッシング」
    まださわりを読んだだけ。
  • 新Visual C++ 6.0入門, ソフトバンクパブリッシング」
    最初にざっと読んだっきりですが、Visual C++の概要を知るには十分役に立ちました。

テスト駆動開発

挑戦しようとしているのですが、ネットでかじった程度ではなかなかうまくいきません。

まず基本的なツールの使い方の問題。ツールに対する無知も悪いんですが、最初のうちはテストコードと本番コードを別のワークスペースに置き、作ったコードをコピー&ペーストしていて、これはなんか違うぞと。本体とテストは別物という感覚が、旧来のスタイルの呪いとして根強くあったようです。結局、1つのワークスペースに複数のプロジェクトを作ってソースの共有をするようにしたんですが、プロジェクトは名前順に表示されるので、名前付けを間違えると本体が中途半端な位置に来て、わかりにくいことこの上ない。一人で作っている間は良いのですが、完成したソースの納品時にどうするのかという問題が。

あとは、おそらくいままで染み付いてきたプログラミングスタイルの影響で、脳の中に適切なテストを考えるというモードがどうもないようです。たとえば、

Mersenne Twisterを使って平均m、分散sigmaの正規分布になるような乱数を生成する

というコードを書く場合、どんなテストを書けばよいのかさっぱり判らない。で、結局

    0[   12827]: +
  500[   52991]: +
 1000[  186887]: +
 1500[  566351]: **
 2000[ 1455090]: *******
 2500[ 3204286]: ****************
 3000[ 6024426]: ******************************
 3500[ 9680565]: ************************************************
 4000[13277204]: ******************************************************************
 4500[15541309]: *****************************************************************************
 5000[15539441]: *****************************************************************************
 5500[13277266]: ******************************************************************
 6000[ 9677424]: ************************************************
 6500[ 6026278]: ******************************
 7000[ 3202617]: ****************
 7500[ 1457232]: *******
 8000[  564575]: **
 8500[  187692]: +
 9000[   52670]: +
 9500[   12869]: +

というありがちなテストプログラムを書いて、『これでいいのか?』と自問したり。

なかなか奥が深い。


2005-02-25 [長年日記]

ソフトウェアのページ(2)

プラグインを有効にし忘れていて、ダウンロードできない状態だったのを、アクセスしてきた方に指摘されました。駄目駄目。