前回の日記「Wikipedia ∩ Winny で何が判るか」で用いたデータは、ノード数調査の目的で作成したcrawlerがダンプしたデータであり、観測密度が十分ではないため(一巡するのに1時間半ほどかかる)、ウイルスファイルの放流元を追跡するには不十分なものだろうと、これまでは考えてきた。しかし、今回の事件で、放流元とされる犯人のノード情報が明らかになったことから、追跡の検証ができるようになった。そこで、駄目元で念のためにやってみることにした。
まず、基礎情報から。
私のcrawlerでは、1日に約1500万個の公衆送信されるキーを受信し記録している。このうち、拡張子を偽装したと思われるファイル(ファイル名に「 .」を含むファイル)のキーの割合を調べてみたところ、次の通りであった。
観測日 | 観測キー数 | 拡張子偽装数 | 拡張子偽装率 |
---|---|---|---|
2006年9月1日 | 14273264 | 15598 | 0.109% |
2006年10月1日 | 15702248 | 17146 | 0.109% |
2006年11月1日 | 5276244 | 6181 | 0.117% |
2006年12月1日 | 12484431 | 20021 | 0.160% |
2007年1月1日 | 15502438 | 21375 | 0.138% |
2007年2月1日 | 16672311 | 25341 | 0.152% |
2007年3月1日 | 14641230 | 28230 | 0.193% |
2007年4月1日 | 15738955 | 30102 | 0.191% |
2007年5月1日 | 13861971 | 31370 | 0.226% |
2007年6月1日 | (観測停止期間) | ||
2007年7月1日 | 14257686 | 23057 | 0.162% |
2007年8月1日 | 14371248 | 22004 | 0.153% |
2007年9月1日 | (観測停止期間) | ||
2007年10月1日 | 14187262 | 21913 | 0.154% |
ウイルスは .zip ファイル内に潜んでいることも多いことから、拡張子偽装だけ調べてもウイルス全般の調査にはならないが、ここではひとまず拡張子偽装されたファイルについてだけ調べることにした。
まず、時刻順に並んでいるキーのダンプから、ファイル名に「 .」を含むものだけ抽出しながら、ファイルのハッシュID(Winny用語で言うところの「ハッシュ値」)毎に、そのキーを送信してきたWinnyノードを出現順にシリアル番号を振りながら転記することで、データを整理した。
たとえば、2007年1月1日に最初に観測*2した拡張子偽装ファイルのハッシュIDは「%09fdce1365df9fc28dd921faXXXXXXXX」であったが、このIDについての観測記録の冒頭は次のようになっている。「X」は伏字であり、1行目にはファイル名を記載しているがここでは省略している(「tail +2」)。
% more filelog-%09fdce1365df9fc28dd921faXXXXXXXX.txt | tail +2 | domain | head -20 1167579693 1167574844 1 softbank220XXXXXXXXX.bbtec.net:24062 1167580106 1167361870 2 pXXXX-ipadXXfukuhanazo.fukushima.ocn.ne.jp:30770 1167580728 1167579458 3 218-XXX-X-XX.eonet.ne.jp:22658 1167581351 1167579911 4 softbank221XXXXXXXXX.bbtec.net:20279 1167581351 1167579911 4 softbank221XXXXXXXXX.bbtec.net:20279 1167581575 1167578448 5 221.XXX.XX.XX:15779 1167581575 1167578448 5 221.XXX.XX.XX:15779 1167582286 1167536392 6 softbank219XXXXXXXXX.bbtec.net:24299 1167582286 1167536392 6 softbank219XXXXXXXXX.bbtec.net:24299 1167581575 1167578448 5 221.XXX.XX.XX:15779 1167582286 1167536392 6 softbank219XXXXXXXXX.bbtec.net:24299 1167582286 1167536392 6 softbank219XXXXXXXXX.bbtec.net:24299 1167585183 1167580392 7 gifX-pXX.flets.hi-ho.ne.jp:31800 1167586297 1167578664 8 softbank219XXXXXXXXX.bbtec.net:18001 1167587201 1167584562 9 tetkyoXXXXXX.tkyo.te.ftthX.ppp.infoweb.ne.jp:2500 1167581351 1167579911 4 softbank221XXXXXXXXX.bbtec.net:20279 1167587461 1167583961 10 pXXXX-ipadXXokidate.aomori.ocn.ne.jp:23198 1167582286 1167536392 6 softbank219XXXXXXXXX.bbtec.net:24299 1167588472 1167536392 11 softbank221XXXXXXXXX.bbtec.net:1976 1167588889 1167556404 12 ponXXX-XXX.kcn.ne.jp:31206 %
左から1カラム目は観測時刻、2カラム目はWinnyのキーに記載されていた「キー更新日時」である。3カラム目は、このファイルIDにおいて出現順に割り振ったノードのシリアル番号であり、4カラム目はノードのIPアドレスとポートの組である。3カラム目を見れば、同じノードが再びこのファイルのキーを送ってきたことがわかる。たとえば4番のノードが16個目に再び現れている。
そして、シリアル番号が 1番のノードが、最初にこのファイルのキーを送ってきたノードを意味するのだが、この集計の開始直後は、既にWinnyネットワーク全体に蔓延中のファイルを途中から観測している可能性が高いことから、上記のデータでは、1番のノードが放流元を意味するわけではない。
カラム1とカラム2の時刻を読み易い表示形式に変換したのが以下である。
% more filelog-%09fdce1365df9fc28dd921faXXXXXXXX.txt | tail +2 | strftime.rb | domain | head -5 20070101-004133 20061231-232044 1 softbank220XXXXXXXXX.bbtec.net:24062 20070101-004826 20061229-121110 2 pXXXX-ipadXXfukuhanazo.fukushima.ocn.ne.jp:30770 20070101-005848 20070101-003738 3 218-XXX-X-XX.eonet.ne.jp:22658 20070101-010911 20070101-004511 4 softbank221XXXXXXXXX.bbtec.net:20279 20070101-010913 20070101-004511 4 softbank221XXXXXXXXX.bbtec.net:20279 %
ここで注目したいのは、2番のノードが送ってきたキーの「キー更新時刻」が、1番のノードがキーを送ってきた時刻よりも先、つまり、2行目の2カラム目の時刻が1行目の1カラム目の時刻より古いという点である。これは、1行目のキーは放流直後の最初のキーを観測したものではないことを意味する(既に2番のノードが先に処理している)。また、2行目の2カラム目が1行目の2カラム目より古い。これも、1行目のキーは放流直後の最初のキーを観測したものではないことを意味する。
さて、昨年の2月にこんなニュースが世間を騒がせていた。
これはP2P-DESTROYER Pro(ウィキペディアの解説)というツールによって、ファイル名偽装などの細工がなされているという。(略)これらの感染活動から推定すると、当該ウイルスはいわゆる「原田ウイルス」(ウィキペディアの解説)の亜種と思われる。
Symantecに掲載された時刻は(PST (UTC-8) だとすれば)日本時間で 24日の昼の12時42分にあたる。前回の日記では、たまたま2007年2月23日 09:43 にWikipediaの投稿記録があったことから、この日における 218.228.201.103 のWinny稼働状況ついて調べたところ、「kanon 第21話」といった番組名を含むウイルス(拡張子偽装)ファイルが公衆送信可能化されている様子が観測されていたと判明したことについて書いた。「kanon」なる番組の放送日について調べてみると、はてなキーワードの「京アニKanon」によれば、21話は 2月22日の深夜(23日の早朝)に放送されたようである。
これらを踏まえて、2007年2月1日以降のデータを集計し、2月23日前後の記録を調べてみた。
調査の対象としたのは、前回の日記で列挙した以下の21個のウイルスファイルである。
218.228.201.103:7777 %554cbea3db36eaf4ea5c656c39bfac90 [映画] ナイト・ミュージアム (2007年 TS-SCREEN x264 日本語字幕誰か付けて〜ww).avi .exe 218.228.201.103:7777 %4e36d43aa015e19537c35225cf4a9bb4 [映画] ナイト・ミュージアム (2007年公開 DivX651日本語字幕=アナル男爵).avi .SCR 218.228.201.103:7777 %302ad3d3df1506f0f526b10dfc1da79c (映画) ナイト・ミュージアム (divx521)(lameMP3).avi .exe 218.228.201.103:7777 %dc82ac69cf98cba77cbb43b588aadfbd kanon 第21話 「君のいない輪舞曲〜ronde〜」 (704x396 DivX5.11 120fps).avi .SCR 218.228.201.103:7777 %1fc51810a286b073dc4683108ecc2501 kanon 第21話 「君のいない輪舞曲〜ronde〜」 (BS-i 1280x720 x264 120fps).avi .exe 218.228.201.103:7777 %8e0c1d6ad457fe70ec372e9562ecbbaa kanon 第21話 「君のいない輪舞曲〜ronde〜」 (704x396 DivX651 120fps LameMP3 Audio).avi .exe 218.228.201.103:7777 %ff8acb98c8d4dc2c923c2df1e828d1c4 kanon 第21話 「君のいない輪舞曲〜ronde〜」 (BS-i 704x396 DivX6.22 120fps).avi .exe 218.228.201.103:7777 %e1c80536b3a52749a24c9ea3e74f0348 kanon 第21話 「君のいない輪舞曲〜ronde〜」 (704x396 x264).avi .exe 218.228.201.103:7777 %02693f2d6b8cc77ba57d93419a724189 (映画) さくらん (2007年 土屋アンナ 椎名桔平 成宮寛貴他 DivX5.21).avi .SCR 218.228.201.103:7777 %cd73db972fa17ff77179cf76e8e68091 コードギアス 反逆のルルーシュ 第18話 「枢木スザク に 命じる」 (MBS 640x440 DivX6.51 120fps).avi .exe 218.228.201.103:7777 %50491a8fbad29323f982acdab40cdefb [アニメ](CD) コードギアス 反逆のルルーシュ 2期OP ジン 「解読不能」 (CD LameMP3 192kbps).zip .SCR 218.228.201.103:7777 %576e4d9b8700f79ed27489406bac7b88 (映画)(洋画) エラゴン 意志を告ぐ者 (XviD1.1.0beta2 lamemp3 日本語吹き替え版).avi .SCR 218.228.201.103:7777 %25a105abd98b59b1ba9e8d0680aa56a8 (映画)(洋画) 2007米 スパイダーマン3 (BitTorrent輸入 XviD1.1.0beta 字幕無し).avi .COM 218.228.201.103:7777 %a263ffc30bd28870cd537bc51e2db1e7 [アニメ] コードギアス 反逆のルルーシュ 第18話 「枢木スザク に 命じる」 (CBC-D 640x448 DivX6.51).avi .SCR 218.228.201.103:7777 %8065f1d441cadbabc2fe6fefc225e90b [アニメ] デスノート DEATH NOTE 第19話 「松田」 (704x396 wmv9 120fps).avi .SCR 218.228.201.103:7777 %08d0c6e3afc19cdb8c49d34519a59691 (映画)(アニメ) 2007年 ドラえもん のび太と新魔界大冒険〜7人の魔法使い〜 (CAM DivX6.40 lamemp3).avi .SCR 218.228.201.103:7777 %be8821efd2780e779a98714f329b48ad [アニメ] デスノート DEATH NOTE 第19話 「松田」 (CTV 1280x720 DivX651+AC3).avi .exe 218.228.201.103:7777 %e4693e0eba8db3bb671cd54a2ebd6a1d 【映画】2007 シュレック3 (CAM DivX640 日本語字幕 by アナル男爵).avi .exe 218.228.201.103:7777 %2dc1b87786478b69ed7ccc60affd713a (アニメ) kanon カノン 第21話 「君のいない輪舞曲〜ronde〜」 (BS-i 1280x720 DivX6.51 120fps).avi .exe 218.228.201.103:7777 %d63e7a26cfe33a3382e41119d99e3662 (映画) ドラえもん のび太の新魔界大冒険 〜7人の魔法使い〜 (2007年 DivX6.51 撮影:インパルス堤下).avi .com 218.228.201.103:7777 %e4693e0eba8db3bb671cd54a2ebd6a1d 【映画】2007 シュレック3 (CAM DivX640 日本語字幕 by アナル男爵).avi .exe
(右にスクロールすると本当に拡張子が表示される)
これらの各ファイルについて、前述の集計を行った結果を以下に示す。以下、順に1つずつ検討する。
% more filelog-%554cbea3db36eaf4ea5c656c39bfac90.txt | strftime.rb [映画] ナイト・ミュージアム (2007年 TS-SCREEN x264 日本語字幕誰か付けて〜ww).avi .exe 20070222-074415 20070222-072030 1 125.XXX.XXX.XXX:32341 20070223-033526 20070222-182349 2 218.228.201.103:7777 20070224-173804 20070224-153138 3 221.XXX.XXX.XXX:26176 20070224-203236 20070224-174244 3 221.XXX.XXX.XXX:26176 20070224-205851 20070224-174244 3 221.XXX.XXX.XXX:26176 20070224-214509 20070224-201534 3 221.XXX.XXX.XXX:26176 20070224-222123 20070224-174244 4 218.XXX.XXX.XXX:7745 20070225-023357 20070225-011013 4 218.XXX.XXX.XXX:7745 20070225-024054 20070225-011013 4 218.XXX.XXX.XXX:7745 20070225-025232 20070224-153138 2 218.228.201.103:7777 20070225-030054 20070225-011013 4 218.XXX.XXX.XXX:7745 20070225-030104 20070225-011013 4 218.XXX.XXX.XXX:7745 20070302-111214 20070302-093858 2 218.228.201.103:7777 20070302-133735 20070302-121249 2 218.228.201.103:7777 %
これは、(2月1日から集計して)このファイルIDのキーが初めて出現したのがこの1行目の時刻であったことを意味する。2行目に 218.228.201.103:7777 が現れている。1番のノードが放流元の可能性も否定されないが、必ずしもそうとは限らない。観測密度が薄いために、20070222-074415 より早い時刻に送信されたキーを観測し損ねた可能性もある。
% more filelog-%4e36d43aa015e19537c35225cf4a9bb4.txt | strftime.rb [映画] ナイト・ミュージアム (2007年公開 DivX651日本語字幕=アナル男爵).avi .SCR 20070222-040817 20070222-015308 1 221.XXX.XXX.XXX:28800 20070222-042817 20070222-034323 2 61.XXX.XXX.XXX:5742 20070222-045446 20070222-033959 3 125.XXX.XXX.XXX:22389 20070222-082948 20070222-044154 2 61.XXX.XXX.XXX:5742 20070222-083141 20070222-075344 4 219.XXX.XXX.XXX:11420 20070222-103326 20070222-090402 4 219.XXX.XXX.XXX:11420 20070222-110319 20070222-103242 4 219.XXX.XXX.XXX:11420 20070222-120428 20070222-045327 5 219.XXX.XXX.XXX:27505 20070222-140313 20070221-224913 6 59.XXX.XXX.XXX:4176 20070223-020238 20070222-225600 4 219.XXX.XXX.XXX:11420 20070223-020431 20070222-225600 4 219.XXX.XXX.XXX:11420 20070223-020644 20070222-225600 7 60.XXX.XXX.XXX:3664 20070223-030935 20070222-225600 8 125.XXX.XXX.XXX:15678 20070223-031251 20070223-013806 9 122.XXX.XXX.XXX:29648 20070223-032440 20070222-215351 8 125.XXX.XXX.XXX:15678 20070223-034647 20070223-005844 10 218.228.201.103:7777 20070223-035952 20070222-215351 10 218.228.201.103:7777 20070223-043412 20070223-040423 8 125.XXX.XXX.XXX:15678 20070223-050333 20070222-215351 11 121.XXX.XXX.XXX:90 20070223-050740 20070223-042157 11 121.XXX.XXX.XXX:90 20070223-051008 20070223-040423 11 121.XXX.XXX.XXX:90 20070223-053750 20070223-040423 4 219.XXX.XXX.XXX:11420 20070223-055819 20070223-042157 4 219.XXX.XXX.XXX:11420 20070223-060053 20070223-042157 12 221.XXX.XXX.XXX:11000 20070223-060449 20070223-042157 4 219.XXX.XXX.XXX:11420 (略) 20070401-215647 20070401-063805 1403 218.XXX.XXX.XXX:22709 20070401-230719 20070401-220302 1404 221.XXX.XXX.XXX:4431 20070401-231100 20070401-134725 1402 58.XXX.XXX.XXX:25816 20070401-231536 20070401-135957 1165 61.XXX.XXX.XXX:16544 20070401-231610 20070401-203111 854 221.XXX.XXX.XXX:6669 20070401-234307 20070401-212720 1405 124.XXX.XXX.XXX:24202 20070401-235257 20070401-224538 1405 124.XXX.XXX.XXX:24202 %
これは、2行目の2カラム目の時刻が、1行目の1カラム目より古いことから、1行目のキーは放流直後のキーではないことが言える。放流元を観測し損ねた事例と言える。
そして末尾を見ると、2007年4月1日までの集計で、1405ノードにも拡散していた(観測できた範囲で)ことがわかる。
% more filelog-%302ad3d3df1506f0f526b10dfc1da79c.txt | strftime.rb (映画) ナイト・ミュージアム (divx521)(lameMP3).avi .exe 20070223-035003 20070222-080538 1 218.228.201.103:7777 20070224-222123 20070224-145545 2 219.XXX.XXX.XXX:11420 20070224-223913 20070224-145545 2 219.XXX.XXX.XXX:11420 20070224-233957 20070224-145545 2 219.XXX.XXX.XXX:11420 20070225-022121 20070224-145545 3 220.XXX.XXX.XXX:2269 20070225-023357 20070224-145545 3 220.XXX.XXX.XXX:2269 20070225-024056 20070224-145545 3 220.XXX.XXX.XXX:2269 20070225-030054 20070224-145545 3 220.XXX.XXX.XXX:2269 20070225-030104 20070224-145545 3 220.XXX.XXX.XXX:2269 20070225-044619 20070224-145545 2 219.XXX.XXX.XXX:11420 20070225-102044 20070225-062817 2 219.XXX.XXX.XXX:11420 20070226-230405 20070226-032945 4 211.XXX.XXX.XXX:29237 20070301-220737 20070301-121415 5 125.XXX.XXX.XXX:6422 20070306-013228 20070226-032945 6 219.XXX.XXX.XXX:29237 20070306-235123 20070226-032945 7 61.XXX.XXX.XXX:7122 20070307-000620 20070226-032945 7 61.XXX.XXX.XXX:7122 %
1番ノードが 218.228.201.103:7777 になっている。2行目の2カラム目は1行目より新しい。1番ノードが放流元である可能性は否定されない。また、1行目と2行目の時刻の差が 42時間以上も開いていることから、1番が放流元である可能性はそこそこ高いのではないかと思われる。これはもしかすると、放流元をを観測できた事例かもしれない。
また、これは、2007年3月7日を最後にそれ以降(2007年4月1日まで)このファイルIDのキーは観測されなかったことを意味しているので、このウイルスはほとんど拡散しなかったと推定できる。(観測できた範囲では、7つのノードしか保有していることを確認できなかったと言える。)
% more filelog-%dc82ac69cf98cba77cbb43b588aadfbd.txt | strftime.rb kanon 第21話 「君のいない輪舞曲〜ronde〜」 (704x396 DivX5.11 120fps).avi .SCR 20070218-234318 20070218-202420 1 218.228.201.103:7777 20070219-181923 20070219-161550 2 122.XXX.XXX.XXX:16850 20070222-045929 20070221-060136 3 125.XXX.XXX.XXX:24556 20070222-062218 20070222-050423 4 220.XXX.XXX.XXX:8080 20070222-100257 20070222-091009 5 124.XXX.XXX.XXX:7743 20070222-112927 20070222-110551 5 124.XXX.XXX.XXX:7743 20070222-114153 20070222-111218 6 222.XXX.XXX.XXX:9891 20070222-130312 20070222-120135 7 122.XXX.XXX.XXX:25334 20070222-134557 20070222-120135 7 122.XXX.XXX.XXX3:25334 20070222-143303 20070222-110551 7 122.XXX.XXX.XXX:25334 20070223-025703 20070223-003016 8 125.XXX.XXX.XXX:1830 20070223-032325 20070223-025053 9 61.XXX.XXX.XXX:1671 20070223-033136 20070223-010336 10 221.XXX.XXX.XXX:3495 20070223-034006 20070223-013029 9 61.XXX.XXX.XXX:1671 20070223-034716 20070223-013029 9 61.XXX.XXX.XXX:1671 20070223-035001 20070221-014849 11 203.XXX.XXX.XXX:11500 20070223-035839 20070223-013029 12 121.XXX.XXX.XXX:23528 20070223-035912 20070223-013029 13 125.XXX.XXX.XXX:23432 20070223-042201 20070223-034551 14 58.XXX.XXX.XXX:5262 20070223-043539 20070223-013029 9 61.XXX.XXX.XXX:1671 20070223-050334 20070223-042015 15 121.XXX.XXX.XXX:7144 20070223-051431 20070222-204713 16 60.XXX.XXX.XXX:5704 20070223-052048 20070222-235253 15 121.XXX.XXX.XXX:7144 20070223-052156 20070223-033226 16 60.XXX.XXX.XXX:5704 20070223-052755 20070223-003016 8 125.XXX.XXX.XXX:1830 (略) 20070313-205832 20070311-212021 95 202.XXX.XXX.XXX:7099 20070314-090422 20070312-105630 94 124.XXX.XXX.XXX:11223 20070316-174937 20070316-090926 96 220.XXX.XXX.XXX:32727 20070316-174954 20070316-090926 96 220.XXX.XXX.XXX:32727 20070318-031122 20070312-053723 97 220.XXX.XXX.XXX:19847 20070319-213234 20070319-001319 98 122.XXX.XXX.XXX:11560 20070320-144131 20070319-001319 99 211.XXX.XXX.XXX:24125 20070327-162203 20070316-090935 100 202.XXX.XXX.XXX:7099 20070328-044347 20070223-032423 101 222.XXX.XXX.XXX:32677 %
またしても、1番ノードが 218.228.201.103:7777 になっている。2行目との時間差は18時間40分。この後2日半ほど間を置いた後、3番〜7番ノードに1時間ほどごとに拡散して行き、23日の午前3時ごろから急速に多数のノードに拡散していった様子が窺える。その後も、3月末まで細々とどこかのノードに存在し続け、4月1日までに101のノードに拡散していたことがわかる。(観測できた範囲では。以下同様。)
% more filelog-%1fc51810a286b073dc4683108ecc2501.txt | strftime.rb kanon 第21話 「君のいない輪舞曲〜ronde〜」 (BS-i 1280x720 x264 120fps).avi .exe 20070219-083513 20070219-080041 1 218.XXX.XXX.XXX:5000 20070219-121951 20070219-112142 2 125.XXX.XXX.XXX:11228 20070222-035405 20070221-070830 3 203.XXX.XXX.XXX:30313 20070222-040305 20070221-234005 4 222.XXX.XXX.XXX:9891 20070222-071029 20070221-182913 5 122.XXX.XXX.XXX:25334 20070222-080215 20070221-182913 6 124.XXX.XXX.XXX:6304 20070222-110549 20070222-103507 5 122.XXX.XXX.XXX:25334 20070222-110553 20070222-103507 5 122.XXX.XXX.XXX:25334 20070222-141851 20070222-132427 5 122.XXX.XXX.XXX:25334 20070222-152635 20070222-145832 7 219.XXX.XXX.XXX:26907 20070223-020301 20070222-195101 8 121.XXX.XXX.XXX:9477 20070223-020320 20070222-195101 9 218.XXX.XXX.XXX:1702 20070223-021404 20070222-195101 10 221.XXX.XXX.XXX:23139 20070223-025703 20070223-015134 11 60.XXX.XXX.XXX:5704 20070223-025747 20070223-015134 11 60.XXX.XXX.XXX:5704 20070223-025935 20070222-195101 12 222.XXX.XXX.XXX:26628 20070223-032457 20070223-010438 11 60.XXX.XXX.XXX:5704 20070223-033726 20070223-002456 13 221.XXX.XXX.XXX:18843 20070223-034003 20070223-015134 11 60.XXX.XXX.XXX:5704 20070223-035411 20070223-015134 12 222.XXX.XXX.XXX:26628 20070223-040356 20070223-015134 12 222.XXX.XXX.XXX:26628 20070223-050033 20070223-040919 12 222.XXX.XXX.XXX:26628 20070223-050120 20070222-195101 14 125.XXX.XXX.XXX:32512 20070223-050455 20070223-040919 15 121.XXX.XXX.XXX:7144 20070223-050629 20070223-045132 14 125.XXX.XXX.XXX:32512 20070223-051431 20070223-015134 16 210.XXX.XXX.XXX:14644 20070223-054207 20070223-040919 17 125.XXX.XXX.XXX:11364 20070223-054829 20070223-002456 18 125.XXX.XXX.XXX:23432 20070223-061455 20070223-060053 18 125.XXX.XXX.XXX:23432 20070223-061955 20070223-040611 18 125.XXX.XXX.XXX:23432 20070223-062357 20070223-040919 19 124.XXX.XXX.XXX:30889 20070223-062948 20070223-002456 12 222.XXX.XXX.XXX:26628 20070223-063640 20070223-053108 20 124.XXX.XXX.XXX:10050 20070223-063640 20070223-053108 20 124.XXX.XXX.XXX:10050 20070223-064059 20070223-061814 21 124.XXX.XXX.XXX8:20581 20070223-065046 20070223-050806 20 124.XXX.XXX.XXX:10050 20070223-065046 20070223-050806 20 124.XXX.XXX.XXX:10050 20070223-065330 20070223-060659 12 222.XXX.XXX.XXX:26628 20070223-070028 20070223-063452 14 125.XXX.XXX.XXX:32512 20070223-070752 20070223-042321 11 60.XXX.XXX.XXX:5704 20070223-071050 20070223-064343 11 60.XXX.XXX.XXX:5704 20070223-071500 20070223-054842 22 122.XXX.XXX.XXX:16850 20070223-072349 20070223-060922 22 122.XXX.XXX.XXX:16850 20070223-072952 20070223-040611 12 222.XXX.XXX.XXX:26628 20070223-073311 20070223-002456 22 122.XXX.XXX.XXX:16850 20070223-073319 20070223-002456 22 122.XXX.XXX.XXX:16850 20070223-073817 20070223-053108 23 61.XXX.XXX.XXX:20854 20070223-073937 20070223-050806 22 122.XXX.XXX.XXX:16850 20070223-074443 20070223-054309 8 121.XXX.XXX.XXX:9477 20070223-074618 20070223-060659 24 222.XXX.XXX.XXX:22258 20070223-075247 20070223-002456 8 121.XXX.XXX.XXX:9477 20070223-082402 20070223-073222 11 60.XXX.XXX.XXX:5704 20070223-085103 20070222-093110 25 219.XXX.XXX.XXX:6176 20070223-085359 20070223-081125 26 218.228.201.103:7777 20070223-085737 20070223-002456 25 219.XXX.XXX.XXX:6176 (略) 20070329-233557 20070312-035137 93 218.XXX.XXX.XXX:11949 20070331-175029 20070224-154216 94 61.XXX.XXX.XXX:7741 20070401-210648 20070401-102147 95 222.XXX.XXX.XXX:26247 20070404-200238 20070224-154216 96 58.XXX.XXX.XXX:6100 %
この事例では、218.228.201.103:7777 は26番目のノードとしてようやく現れる。これが、放流元を観測し損ねた結果(20070218 に流れたキーを観測できなかった)なのか、それとも本当にこの1番ノードが放流元なのか、判断する材料はない。
また、この例でも、23日の午前2時ごろから急速に拡散していった様子が窺える。
% more filelog-%8e0c1d6ad457fe70ec372e9562ecbbaa.txt | strftime.rb 第21話 「君のいない輪舞曲〜ronde〜」 (704x396 DivX651 120fps LameMP3 Audio).avi .exe 20070223-022629 20070222-221948 1 60.XXX.XXX.XXX:5704 20070223-022636 20070222-221948 1 60.XXX.XXX.XXX:5704 20070223-025703 20070222-221948 1 60.XXX.XXX.XXX:5704 20070223-070029 20070223-020617 2 220.XXX.XXX.XXX:9412 20070223-071500 20070223-022126 3 220.XXX.XXX.XXX:6885 20070223-073629 20070223-022126 4 58.XXX.XXX.XXX:9876 20070223-073937 20070223-020617 5 210.XXX.XXX.XXX:28251 20070223-074046 20070223-025620 3 220.XXX.XXX.XXX:6885 20070223-075401 20070222-221948 6 219.XXX.XXX.XXX:17332 20070223-075515 20070223-022126 4 58.XXX.XXX.XXX:9876 20070223-081014 20070223-020617 4 58.XXX.XXX.XXX:9876 20070223-083931 20070223-022126 7 125.XXX.XXX.XXX:23432 20070223-084539 20070223-022126 8 125.XXX.XXX.XXX:2265 20070223-085103 20070223-020617 9 219.XXX.XXX.XXX:6176 20070223-085400 20070223-020617 10 218.228.201.103:7777 (略)
2番ノードの最初(4行目)の2カラム目が1行目よりも古いので、これは放流元の観測に失敗した事例。
% more filelog-%ff8acb98c8d4dc2c923c2df1e828d1c4.txt | strftime.rb kanon 第21話 「君のいない輪舞曲〜ronde〜」 (BS-i 704x396 DivX6.22 120fps).avi .exe 20070223-021713 20070222-222356 1 220.XXX.XXX.XXX:6885 20070223-022630 20070222-222356 2 60.XXX.XXX.XXX:5704 20070223-022637 20070222-222356 2 60.XXX.XXX.XXX:5704 20070223-023425 20070223-021149 3 218.XXX.XXX.XXX:1702 20070223-025703 20070223-021928 1 220.XXX.XXX.XXX:6885 20070223-033036 20070222-222356 4 125.XXX.XXX.XXX:23432 20070223-034004 20070223-021928 4 125.XXX.XXX.XXX:23432 (略) 20070223-085401 20070223-064622 15 218.228.201.103:7777 (略)
これも同様に失敗した事例。
% more filelog-%e1c80536b3a52749a24c9ea3e74f0348.txt | strftime.rb kanon 第21話 「君のいない輪舞曲〜ronde〜」 (704x396 x264).avi .exe 20070223-025703 20070222-223849 1 58.XXX.XXX.XXX:10000 20070223-070752 20070223-022353 2 125.XXX.XXX.XXX:23432 20070223-071500 20070223-022353 2 125.XXX.XXX.XXX:23432 20070223-073522 20070223-022353 3 219.XXX.XXX.XXX:17332 20070223-074558 20070223-022353 4 218.XXX.XXX.XXX:20479 20070223-080403 20070223-022004 3 219.XXX.XXX.XXX:17332 20070223-085103 20070223-022353 5 121.XXX.XXX.XXX:14656 20070223-092250 20070223-022004 6 218.228.201.103:7777 (略)
これは、観測に失敗したのか1番ノードが放流元なのかわからない事例。
% more filelog-%02693f2d6b8cc77ba57d93419a724189.txt | strftime.rb (映画) さくらん (2007年 土屋アンナ 椎名桔平 成宮寛貴他 DivX5.21).avi .SCR 20070208-115743 20070206-102146 1 59.XXX.XXX.XXX:19104 20070208-173614 20070206-102146 1 59.XXX.XXX.XXX:19104 20070208-202748 20070208-185532 1 59.XXX.XXX.XXX:19104 20070209-101635 20070209-061449 2 222.XXX.XXX.XXX:4467 20070209-101635 20070209-061449 2 222.XXX.XXX.XXX:4467 20070211-074301 20070211-033834 3 125.XXX.XXX.XXX:22516 (略) 20070217-052441 20070217-020814 14 218.228.201.103:7777 20070217-144438 20070217-143252 14 218.228.201.103:7777 (略) 20070401-180817 20070401-154541 377 210.XXX.XXX.XXX:9906 20070401-181556 20070401-164627 377 210.XXX.XXX.XXX:99065 20070401-194855 20070401-185201 377 210.XXX.XXX.XXX:99065 20070401-194909 20070401-185201 377 210.XXX.XXX.XXX:99060 20070401-194910 20070401-185201 377 210.XXX.XXX.XXX:99068 20070401-194910 20070401-185201 377 210.XXX.XXX.XXX:99068 20070401-203208 20070401-123659 348 220.XXX.XXX.XXX:24905 20070401-213416 20070325-023152 127 210.XXX.XXX.XXX:21264 20070401-214230 20070322-061001 378 218.XXX.XXX.XXX:82359 20070401-230415 20070401-222939 373 210.XXX.XXX.XXX:16800 20070401-230614 20070327-091420 379 61.XXX.XXX.XXX:20898 20070401-232235 20070326-193903 332 220.XXX.XXX.XXX:6925 %
これも、観測に失敗したのか1番ノードが放流元なのかわからない事例。もしかすると、これは 218.228.201.103:7777 による放流ではないのかもしれない。
なお、このファイルは4月1日までに379ノードにも拡散しており、拡散速度もこの時点では衰えていない様子が見られる。
% more filelog-%cd73db972fa17ff77179cf76e8e68091.txt | strftime.rb コードギアス 反逆のルルーシュ 第18話 「枢木スザク に 命じる」 (MBS 640x440 DivX6.51 120fps).avi .exe 20070223-021927 20070223-013909 1 210.XXX.XXX.XXX:1905 20070223-022113 20070223-004922 2 222.XXX.XXX.XXX:17128 20070223-023233 20070223-020750 1 210.XXX.XXX.XXX:1905 20070223-024211 20070223-003646 3 220.XXX.XXX.XXX:5346 20070223-024526 20070223-012507 3 220.XXX.XXX.XXX:5346 20070223-024958 20070223-011443 2 222.XXX.XXX.XXX:17128 20070223-025000 20070223-011443 2 222.XXX.XXX.XXX:17128 20070223-032257 20070223-023945 4 221.XXX.XXX.XXX:7224 20070223-032342 20070223-025851 2 222.XXX.XXX.XXX:17128 20070223-032425 20070222-221057 3 220.XXX.XXX.XXX:5346 20070223-032444 20070223-004922 5 124.XXX.XXX.XXX:7743 20070223-032606 20070222-221057 3 220.XXX.XXX.XXX:5346 20070223-040349 20070222-221057 6 220.XXX.XXX.XXX:16576 20070223-043039 20070223-024607 7 221.XXX.XXX.XXX:2002 20070223-044941 20070223-041452 8 210.XXX.XXX.XXX:5434 20070223-052306 20070223-035644 9 211.XXX.XXX.XXX:28665 20070223-080333 20070223-071348 10 60.XXX.XXX.XXX:7317 20070223-084444 20070223-013521 11 203.XXX.XXX.XXX:19816 20070223-085015 20070223-083834 12 210.XXX.XXX.XXX:23144 20070223-100132 20070223-085932 12 210.XXX.XXX.XXX:23144 20070223-105741 20070223-100309 13 218.228.201.103:7777 20070223-105832 20070223-103120 12 210.XXX.XXX.XXX:23144 20070223-112046 20070223-111354 12 210.XXX.XXX.XXX:23144 20070223-114505 20070223-091028 9 211.XXX.XXX.XXX:28665 20070223-125807 20070223-093024 14 210.XXX.XXX.XXX:14550 20070223-131205 20070223-093024 14 210.XXX.XXX.XXX:14550 20070223-142318 20070223-080033 15 220.XXX.XXX.XXX:26885 20070223-144218 20070223-125651 9 211.XXX.XXX.XXX:28665 20070223-161120 20070223-021055 16 58.XXX.XXX.XXX:8501 20070223-174506 20070223-163559 17 58.XXX.XXX.XXX:25000 20070223-191055 20070223-175354 12 210.XXX.XXX.XXX:23144 20070223-235318 20070223-233109 18 219.XXX.XXX.XXX:21648 20070224-010142 20070224-000745 19 203.XXX.XXX.XXX:17301 20070224-045608 20070224-041911 20 125.XXX.XXX.XXX:8934 20070224-052654 20070223-233109 21 122.XXX.XXX.XXX:11936 20070224-175921 20070224-071210 22 221.XXX.XXX.XXX:2001 20070224-192335 20070224-162030 2 222.XXX.XXX.XXX:17128 20070225-211036 20070225-150426 23 61.XXX.XXX.XXX:17743 20070226-223535 20070226-220941 24 218.XXX.XXX.XXX:17732 20070227-031945 20070226-065233 25 220.XXX.XXX.XXX:4363 20070228-133406 20070223-114040 26 219.XXX.XXX.XXX:7109 20070228-220321 20070223-201509 27 121.XXX.XXX.XXX:8501 20070301-115144 20070223-114040 28 121.XXX.XXX.XXX:25296 20070301-115147 20070223-114040 28 121.XXX.XXX.XXX:25296 20070301-221404 20070225-031753 2 222.XXX.XXX.XXX:17128 20070302-011523 20070301-073814 24 218.XXX.XXX.XXX:17732 20070302-025505 20070301-074108 29 221.XXX.XXX.XXX:12203 20070303-012403 20070225-150426 8 210.XXX.XXX.XXX:5434 %
2番ノードの最初の2カラム目が1行目よりも古いので、これは放流元の観測に失敗した事例。なぜか3月3日で拡散が途絶えた事例。
% more filelog-%50491a8fbad29323f982acdab40cdefb.txt | strftime.rb [アニメ](CD) コードギアス 反逆のルルーシュ 2期OP ジン 「解読不能」 (CD LameMP3 192kbps).zip .SCR 20070201-003514 20070201-001407 1 222.XXX.XXX.XXX:28339 20070201-003952 20070131-214303 2 219.XXX.XXX.XXX:1168 20070201-004016 20070131-225523 3 222.XXX.XXX.XXX:11421 20070201-004418 20070131-225304 2 219.XXX.XXX.XXX:1168 20070201-010333 20070201-000553 4 210.XXX.XXX.XXX:24545 (略) 20070211-120308 20070211-104646 127 60.XXX.XXX.XXX:7777 (略)
これは、最初の日付が2月1日となっており、集計開始直後であることから、それより前から既に蔓延していたファイルであると思われる。
% more filelog-%576e4d9b8700f79ed27489406bac7b88.txt | strftime.rb (映画)(洋画) エラゴン 意志を告ぐ者 (XviD1.1.0beta2 lamemp3 日本語吹き替え版).avi .SCR 20070202-231002 20070202-211032 1 218.XXX.XXX.XXX:6113 20070203-084804 20070202-211032 1 218.XXX.XXX.XXX:6113 20070203-121654 20070203-115319 2 218.XXX.XXX.XXX:19105 20070204-100742 20070204-072052 1 218.XXX.XXX.XXX:6113 20070205-061436 20070125-174659 3 43.XXX.XXX.XXX:19366 20070206-014410 20070125-225705 4 59.XXX.XXX.XXX:1986 (略) 20070218-220514 20070218-180658 22 218.228.201.103:7777 (略)
これも上と同じ状況のようだ。
% more filelog-%25a105abd98b59b1ba9e8d0680aa56a8.txt | strftime.rb (映画)(洋画) 2007米 スパイダーマン3 (BitTorrent輸入 XviD1.1.0beta 字幕無し).avi .COM 20070201-023956 20070131-232316 1 60.XXX.XXX.XXX:6257 20070201-023958 20070131-232316 1 60.XXX.XXX.XXX:6257 20070201-024000 20070131-232316 1 60.XXX.XXX.XXX:6257 20070201-025106 20070131-232316 1 60.XXX.XXX.XXX:6257 20070201-033633 20070131-232316 1 60.XXX.XXX.XXX:6257 20070201-041108 20070131-232316 2 58.XXX.XXX.XXX:6257 20070201-073248 20070131-232316 3 58.XXX.XXX.XXX:6257 20070201-084348 20070131-232316 4 218.XXX.XXX.XXX:19103 20070201-093859 20070201-083542 5 219.XXX.XXX.XXX:27932 20070201-093900 20070201-083542 5 219.XXX.XXX.XXX:27932 (略) 20070215-181117 20070215-081806 93 218.228.201.103:7777 (略)
これも上と同じ状況。
% more filelog-%a263ffc30bd28870cd537bc51e2db1e7.txt | strftime.rb [アニメ] コードギアス 反逆のルルーシュ 第18話 「枢木スザク に 命じる」 (CBC-D 640x448 DivX6.51).avi .SCR 20070218-225306 20070218-201634 1 222.XXX.XXX.XXX:24585 20070218-234245 20070218-233431 2 202.XXX.XXX.XXX:18824 20070218-235737 20070218-201634 3 219.XXX.XXX.XXX:28421 20070219-000204 20070218-201634 1 222.XXX.XXX.XXX:24585 20070219-000727 20070218-201634 2 202.XXX.XXX.XXX:18824 20070219-001240 20070218-221830 1 222.XXX.XXX.XXX:24585 20070219-011350 20070218-234244 4 220.XXX.XXX.XXX:26885 20070219-015203 20070219-010900 4 220.XXX.XXX.XXX:26885 20070219-020115 20070218-201634 5 220.XXX.XXX.XXX:26763 20070219-022139 20070219-001403 6 211.XXX.XXX.XXX:30264 (略) 20070219-133302 20070219-084549 21 218.228.201.103:7777 (略)
これは、観測に失敗したのか1番ノードが放流元なのかわからない事例。
% more filelog-%8065f1d441cadbabc2fe6fefc225e90b.txt | strftime.rb [アニメ] デスノート DEATH NOTE 第19話 「松田」 (704x396 wmv9 120fps).avi .SCR 20070219-095052 20070219-091756 1 218.228.201.103:7777 20070222-032832 20070221-204211 2 124.XXX.XXX.XXX:11419 20070222-042554 20070221-212916 3 221.XXX.XXX.XXX:7743 20070222-043803 20070222-032445 4 59.XXX.XXX.XXX:17886 20070222-045141 20070221-232212 4 59.XXX.XXX.XXX:17886 20070222-052439 20070220-224939 5 218.XXX.XXX.XXX:11156 20070222-052858 20070222-004450 6 125.XXX.XXX.XXX:7743 20070222-055716 20070222-044709 4 59.XXX.XXX.XXX:17886 (略) 20070324-165106 20070223-194013 123 124.XXX.XXX.XXX:27846 20070325-144823 20070317-130320 124 122.XXX.XXX.XXX:23733 20070328-225746 20070320-215039 125 219.XXX.XXX.XXX:27344 20070330-234523 20070325-174443 124 122.XXX.XXX.XXX:23733 20070401-130135 20070314-154629 126 124.XXX.XXX.XXX:28824 %
218.228.201.103:7777 が1番ノードになっている。2行目までの時間差が66時間も開いている。これは放流元を観測できた事例ではないだろうか。
4月1日まで拡散し続けて、126ノードまで広がっている。
% more filelog-%08d0c6e3afc19cdb8c49d34519a59691.txt | strftime.rb (映画)(アニメ) 2007年 ドラえもん のび太と新魔界大冒険〜7人の魔法使い〜 (CAM DivX6.40 lamemp3).avi .SCR 20070223-155918 20070223-143632 1 218.228.201.103:7777 20070224-060454 20070224-050034 2 221.XXX.XXX.XXX:30931 20070224-085431 20070224-014731 3 125.XXX.XXX.XXX:22295 20070224-161725 20070224-151555 2 221.XXX.XXX.XXX:30931 20070225-013345 20070225-001030 2 221.XXX.XXX.XXX:30931 20070226-025904 20070226-022449 4 121.XXX.XXX.XXX:5533 20070226-045156 20070226-025007 5 219.XXX.XXX.XXX:17880 20070227-130608 20070227-074210 6 61.XXX.XXX.XXX:13704 20070227-224332 20070227-220206 7 219.XXX.XXX.XXX:17880 20070227-230548 20070227-221212 8 122.XXX.XXX.XXX:32341 20070227-230551 20070227-221212 8 122.XXX.XXX.XXX:32341 20070228-233052 20070228-225911 1 218.228.201.103:7777 20070301-122917 20070301-042245 1 218.228.201.103:7777 20070302-152540 20070302-125209 9 58.XXX.XXX.XXX:15860 20070302-214356 20070302-185848 9 58.XXX.XXX.XXX:15860 20070302-214359 20070302-185848 9 58.XXX.XXX.XXX:15860 20070303-192244 20070228-034253 10 221.XXX.XXX.XXX:32341 20070305-012959 20070228-013220 11 219.XXX.XXX.XXX:17880 20070306-215923 20070306-190517 9 58.XXX.XXX.XXX:15860 20070310-155750 20070310-144449 12 59.XXX.XXX.XXX:1035 20070310-184354 20070310-183620 13 220.XXX.XXX.XXX:7072 20070310-193451 20070310-144449 14 59.XXX.XXX.XXX:1986 20070310-205659 20070310-193932 13 220.XXX.XXX.XXX:7072 20070311-053408 20070310-204504 15 220.XXX.XXX.XXX:5501 20070311-110356 20070311-095023 16 219.XXX.XXX.XXX:10000 %
これも、218.228.201.103:7777 が1番ノードになっている。2行目までの時間差は14時間。放流元を観測できたのかもしれない。
3月11日まで16ノードに拡散して終了したようだ。
% more filelog-%be8821efd2780e779a98714f329b48ad.txt | strftime.rb [アニメ] デスノート DEATH NOTE 第19話 「松田」 (CTV 1280x720 DivX651+AC3).avi .exe 20070222-034334 20070222-030634 1 220.XXX.XXX.XXX:12047 20070222-041339 20070221-020248 2 210.XXX.XXX.XXX:7743 20070222-044907 20070222-041708 1 220.XXX.XXX.XXX:12047 20070222-045141 20070221-223305 1 220.XXX.XXX.XXX:12047 20070222-060309 20070222-015905 3 210.XXX.XXX.XXX:17524 20070222-063824 20070222-050218 4 61.XXX.XXX.XXX:29974 (略) 20070223-155919 20070223-095917 22 218.228.201.103:7777 (略)
放流元の観測に失敗した事例。
% more filelog-%e4693e0eba8db3bb671cd54a2ebd6a1d.txt | strftime.rb 【映画】2007 シュレック3 (CAM DivX640 日本語字幕 by アナル男爵).avi .exe 20070208-031447 20070205-130425 1 59.XXX.XXX.XXX:19104 20070208-115123 20070205-130425 1 59.XXX.XXX.XXX:19104 20070209-121616 20070209-021151 2 60.XXX.XXX.XXX:7777 20070209-175842 20070209-162804 3 125.XXX.XXX.XXX:19918 20070211-110032 20070211-090307 2 60.XXX.XXX.XXX:7777 20070214-164559 20070214-113717 4 60.XXX.XXX.XXX:15288 20070214-195228 20070214-113717 4 60.XXX.XXX.XXX:15288 20070215-095443 20070215-082137 5 61.XXX.XXX.XXX:30776 20070215-172513 20070215-123730 6 121.XXX.XXX.XXX:10284 20070217-195643 20070216-003241 7 219.XXX.XXX.XXX:7500 20070217-195645 20070216-003241 7 219.XXX.XXX.XXX:7500 20070222-125005 20070222-050305 8 58.XXX.XXX.XXX:28680 20070222-125006 20070222-050305 8 58.XXX.XXX.XXX:28680 20070223-055328 20070223-014208 9 61.XXX.XXX.XXX:30776 20070223-171214 20070223-155002 10 218.228.201.103:7777 20070223-202328 20070223-055525 9 61.XXX.XXX.XXX:30776 20070223-235541 20070223-232156 10 218.228.201.103:7777 20070224-020830 20070223-233604 10 218.228.201.103:7777 20070224-064409 20070224-042308 11 219.XXX.XXX.XXX:19725 20070224-120121 20070224-055933 10 218.228.201.103:7777 20070224-120122 20070224-055933 10 218.228.201.103:7777 20070224-120128 20070224-055933 10 218.228.201.103:7777 20070224-201417 20070224-184046 12 60.XXX.XXX.XXX:18475 20070224-231146 20070224-211646 13 219.XXX.XXX.XXX:3141 20070225-130649 20070225-124419 10 218.228.201.103:7777 (略) 20070325-125647 20070325-011252 30 220.XXX.XXX.XXX:3548 20070325-203447 20070325-011252 30 220.XXX.XXX.XXX:3548 %
観測に失敗したのか1番ノードが放流元なのかわからない事例。もしかすると、これは 218.228.201.103:7777 による放流ではないのかもしれない。あるいは、2月より前から流れていたものかもしれない。
% more filelog-%2dc1b87786478b69ed7ccc60affd713a.txt | strftime.rb (アニメ) kanon カノン 第21話 「君のいない輪舞曲〜ronde〜」 (BS-i 1280x720 DivX6.51 120fps).avi .exe 20070222-111401 20070222-102657 1 202.XXX.XXX.XXX:12391 20070222-114153 20070222-091307 2 222.XXX.XXX.XXX:9891 20070222-140452 20070222-112123 3 122.XXX.XXX.XXX:25334 20070222-141041 20070222-133128 3 122.XXX.XXX.XXX:25334 20070223-022629 20070223-001100 4 60.XXX.XXX.XXX:5704 (略) 20070223-203801 20070223-131924 59 218.228.201.103:7777 (略)
観測に失敗した事例。
% more filelog-%d63e7a26cfe33a3382e41119d99e3662.txt | strftime.rb (映画) ドラえもん のび太の新魔界大冒険 〜7人の魔法使い〜 (2007年 DivX6.51 撮影:インパルス堤下).avi .com 20070223-212355 20070223-190414 1 218.228.201.103:7777 20070224-120121 20070224-034626 1 218.228.201.103:7777 20070224-120123 20070224-034626 1 218.228.201.103:7777 20070224-120128 20070224-034626 1 218.228.201.103:7777 20070226-075921 20070226-065054 2 211.XXX.XXX.XXX:4259 20070227-004302 20070224-082043 3 122.XXX.XXX.XXX:6502 20070227-053815 20070227-043749 4 58.XXX.XXX.XXX:32100 20070227-053827 20070227-043749 4 58.XXX.XXX.XXX:32100 20070228-171547 20070228-111520 1 218.228.201.103:7777 20070301-111816 20070301-095121 1 218.228.201.103:7777 20070301-194849 20070301-175734 5 121.XXX.XXX.XXX:3463 %
218.228.201.103:7777 が1番ノードになっている。2番ノードまでの時間差は 58時間。放流元を観測できた事例ではないか。
% more filelog-%e4693e0eba8db3bb671cd54a2ebd6a1d.txt | strftime.rb 【映画】2007 シュレック3 (CAM DivX640 日本語字幕 by アナル男爵).avi .exe 20070208-031447 20070205-130425 1 59.XXX.XXX.XXX:19104 20070208-115123 20070205-130425 1 59.XXX.XXX.XXX:19104 20070209-121616 20070209-021151 2 60.XXX.XXX.XXX:7777 20070209-175842 20070209-162804 3 125.XXX.XXX.XXX:19918 20070211-110032 20070211-090307 2 60.XXX.XXX.XXX:7777 20070214-164559 20070214-113717 4 60.XXX.XXX.XXX:15288 20070214-195228 20070214-113717 4 60.XXX.XXX.XXX:15288 20070215-095443 20070215-082137 5 61.XXX.XXX.XXX:30776 20070215-172513 20070215-123730 6 121.XXX.XXX.XXX:10284 20070217-195643 20070216-003241 7 219.XXX.XXX.XXX:7500 20070217-195645 20070216-003241 7 219.XXX.XXX.XXX:7500 20070222-125005 20070222-050305 8 58.XXX.XXX.XXX:28680 20070222-125006 20070222-050305 8 58.XXX.XXX.XXX:28680 20070223-055328 20070223-014208 9 61.XXX.XXX.XXX:30776 20070223-171214 20070223-155002 10 218.228.201.103:7777 20070223-202328 20070223-055525 9 61.XXX.XXX.XXX:30776 20070223-235541 20070223-232156 10 218.228.201.103:7777 20070224-020830 20070223-233604 10 218.228.201.103:7777 20070224-064409 20070224-042308 11 219.XXX.XXX.XXX:19725 20070224-120121 20070224-055933 10 218.228.201.103:7777 20070224-120122 20070224-055933 10 218.228.201.103:7777 20070224-120128 20070224-055933 10 218.228.201.103:7777 (略) 20070325-203447 20070325-011252 30 220.XXX.XXX.XXX:3548 %
観測に失敗したのか1番ノードが放流元なのかわからない事例。もしかすると、これは 218.228.201.103:7777 による放流ではないのかもしれない。あるいは、2月より前から流れていたものかもしれない。
以上の21個の事例をまとめると次のようになる。
事例 | 観測失敗か | 既に蔓延中か | 1番が当該ノードか |
---|---|---|---|
1 | No | ||
2 | 観測失敗 | ||
3 | Yes | ||
4 | Yes | ||
5 | No | ||
6 | 観測失敗 | ||
7 | 観測失敗 | ||
8 | No | ||
9 | No | ||
10 | 観測失敗 | ||
11 | 既に蔓延中 | ||
12 | 既に蔓延中 | ||
13 | 既に蔓延中 | ||
14 | No | ||
15 | Yes | ||
16 | Yes | ||
17 | 観測失敗 | ||
18 | No | ||
19 | 観測失敗 | ||
20 | Yes | ||
21 | No |
既に蔓延しているタイミングのケースと、観測に失敗しているとわかるケースを除く、12例のうち、218.228.201.103:7777 が1番ノードとして観測されたものが 5例もあった。
これほどまでに高い確率でそのような観測ができるとは予想しなかった。駄目元でやった実験だったが、期待以上の結果となった。
私が自宅でやっているこのcrawlerは、1本の回線を使い、1台の古いノートPCで運用しているという、非力なシステムである。それでもここまでの結果が出た。業務でこの種の調査を行っているところは、数十回線を数十台のコンピュータで並列稼動させ、数分でWinnyネットワークを一巡するほどの勢いで監視しているのかもしれない。そうであれば、高い精度で放流元を特定できるシステムになっているのではないだろうか。
上の追跡方法を自動化して、すべてのファイル(すべての拡張子偽装ファイル)を対象に、その放流元っぽいWinnyノードを洗い出してみた。
集計してみると次の表の通りとなった。
対象ファイル | 単発キー | 観測失敗 | 観測成功かも |
---|---|---|---|
339,909 | 218,725 | 72,404 | 48,780 |
2007年の2月1日〜4月1日に受信したキーを対象に、拡張子を偽装したファイル名のファイルをハッシュID毎に集計したところ、33万9千種のファイル(ハッシュID)を観測した。うち、21万8千種は、2番のノードが現れなかった(1つのノードからの発信しか観測できなかった)もので、これは観測が十分でないものとして除外し、残りのうち、7万2千種は前述の手順で「観測に失敗した事例」と判断したもの(2番のノードの方が時刻が早い、もしくは、集計開始日から10日以上経過していないもの)であった。
残りの 4万8千種が、放流元ノードを特定できているかもしれないものであるわけだが、これも特定できているものばかりとは限らない。そこで、この4万8千種のファイルについて、1番ノードとして観測されたノードの頻度を集計してみた。
以下はその上位ノードである。左端から、順位、頻度数、ノードを表す。
1 1359 202.231.XXX.XXX:XXXXX 2 361 219.116.XXX.XXX:XXXXX 3 349 60.56.XXX.XXX:XXXXX 4 333 202.78.XXX.XXX:XXXXX 5 304 220.214.XXX.XXX:XXXXX 6 303 219.53.XXX.XXX:XXXXX 7 278 219.4.XXX.XXX:XXXXX 8 240 219.104.XXX.XXX:XXXXX 9 236 202.138.XXX.XXX:XXXXX 10 218 221.80.XXX.XXX:XXXXX (略) 46 114 218.228.201.103:7777 47 114 203.135.XXX.XXX:XXXXX 48 110 210.148.XXX.XXX:XXXXX 49 108 210.229.XXX.XXX:XXXXX 50 106 219.112.XXX.XXX:XXXXX
このように、2か月弱の間に千個とか、数百個ものファイルに対して1番ノードとして出現するという現象は、偶然に起きているとは考えにくい。少なくともこれらはウイルス(拡張子偽装ファイル)放流の常習者だと言えるのではないだろうか。
なお、上で調べた 218.228.201.103:7777 は、この期間中に 114個ものファイルに対して1番ノードとして観測されていた。
頻度の分布を確認するため、上位200ノードをグラフにしてみた。横軸がノードの並びで、縦軸は各ノードの度数である。矢印は 218.228.201.103:7777 のノードを指す。
それにしても、こんなにもたくさんの人達(ノード)が拡張子偽装ファイルを放流しているのだろうか? 「何回以上の頻度で1番ノードとして観測されたら放流元である疑いが濃い」といった検討が必要そうだ。「放流元でないのに1番ノードとして観測され易いノード」というものがあるとすれば、それははどういうものだろうか。ウイルスファイルを専門に自動ダウンロードしている(そしてそれを送信可能化している)輩だろうか。
しまった。「被参照量」を使うことをすっかり忘れていた。次週末に再調査予定。
昨日の日記(追記あり)では、ウイルスの放流元(つまり、おそらくはそのウイルスの作成者)を特定できるかを調べてみたが、実は、放流元が誰であるかということはあまり重要なことではない。なぜなら、国会に提出されている「不正指令電磁的記録等の罪」を新設する刑法改正案では、作者でなくても、他人に実行させる行為も作者と同等に処罰するものとしている(不正指令電磁的記録供用罪、3年以下の懲役又は50万円以下の罰金)からだ。
改正案の刑法 第19章の2 不正指令電磁的記録に関する罪
(不正指令電磁的記録作成等)
第168条の2人の電子計算機における実行の用に供する目的で、次に掲げる電磁的記録その他の記録を作成し、又は提供した者は、三年以下の懲役又は五十万円以下の罰金に処する。
一 人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録
二 前号に掲げるもののほか、同号の不正な指令を記述した電磁的記録その他の記録
2 前項第一号に掲げる電磁的記録を人の電子計算機における実行の用に供した者も、同項と同様とする。
3 前項の罪の未遂は、罰する。
(不正指令電磁的記録取得等)
第168条の3前条第1項の目的で、同項各号に掲げる電磁的記録その他の記録を 取得し、又は保管した者は、二年以下の懲役又は三十万円以下の罰金に処する。
昨年6月13日の朝のNHKニュースで「“ウィニー”で情報流出 毎月1,600件」と報道されていた(「winny 流出 毎月 1600」で検索)ように、Winnyネットワークにおける暴露ウイルスの被害は、表沙汰にならないものを含めて、尋常でない数に上っている。こんなにも被害が続出し続けるのは、ウイルスを専門に収集して公衆送信可能化している輩が存在しているのが原因の1つであろう(関連:2007年6月12日の日記「キンタマコレクターは約1000人もいるらしい」)。ウイルス作者が放流元の原本を削除しても、こうした輩によって、いつまでもウイルスファイルが供給され続けるわけである。
こうした輩を処罰しようにも直接処罰する法律がないのが現状であるわけだが、刑法が改正されれば、不正指令電磁的記録供用罪ないし同未遂罪、あるいは、不正指令電磁的記録取得及び保管罪として処罰されるものと予想する。
ここで問題となるのが、取得及び保管罪の場合に「人の電子計算機における実行の用に供する目的で」の行為と立証されるかどうか、また、供用罪の場合に「人の電子計算機における実行の用に供した」行為の故意が認められるかどうかであろう。
一般論で言うと、自己増殖型のウイルスの場合、ウイルス被害者は、そのウイルスを他人に伝染させる結果をも招くのであるから、被害者なのに不正指令電磁的記録供用罪に問われるのではないかという不安が出てきがちであるわけだが、この法案では過失罪は規定されていないので、善良な人が「不正指令電磁的記録過失供用罪」に問われるということはない。しかし、ウイルスに感染し人に感染させてしまうことに無頓着で「人に感染させても仕方がない」というような人も処罰されないのかどうかは疑問だ。
対象はすべて故意犯であり、過失は処罰されない。感染したサーバーの管理者が、不注意で他のコンピュータに感染を拡大させてしまった場合でも、処罰の対象にならない。
微妙なのは、(中略)バグにはまったユーザーの「意図に反する動作」が実行されると知りながら出荷した場合には、未必の故意に問われる可能性は残る。故意があるというためには、積極的な加害意思は必要ないからだ。
メールなどで流れてくる昔ながらのウイルスについて言えば、人に供用する(実行させようと提供する)故意があるか否かは、従来からの他の犯罪と同様の方法に基づいて判断されるのだろう。単に1回ウイルスが送りつけられてきたからといって、送信元の故意が認められるかというと、なかなか普通は難しいところではないかと思う。
それに対し、Winnyネットワークに流通させられているウイルスはどうだろうか。
これを検討する材料として、ウイルスファイル(拡張子偽装ファイル)の流通状況について調査してみた。
昨日の日記では、過去に観測したキーのダンプデータを元に、ファイル毎にキーを整列したリストを作成して分析を行ったが、今回はそれとは逆に、Winnyノード毎にそこから発信されたキーを整列して集計してみる。
昨日と同様、.zip ファイル等に混入されたウイルスの被害も多いところ、拡張子を偽装したと思われるファイルをウイルスと仮定して調査しており、これがすべてのウイルスを意味するわけではない。
各ノードについて、そこから発信されたキーの総数と、そのうち拡張子偽装ファイルのキーが占める割合を集計してみた。以下は、2007年2月15日〜28日の2週間で観測したキーに基づくデータである。この間に観測されたノードの総数は約109万ノードであった。
下のリストは、キーに占める拡張子偽装ファイルの割合が多い順に並べ替えたノード一覧である。ただし、キー総数が100件に満たないノードは、割合を求めるのに十分な精度がないとして除外したため、20万8千ノードが集計対象となっている。左から、順位、ノード、拡張子偽装率(%)、拡張子偽装数、キー総数を表す。
昨日の日記で着目したノード 218.228.201.103:7777 は、391位にランクしており、偽装率は 33% となっている。
1 219.XXX.XXX.XXX:XXXX7 100.0000 % ( 110 / 110 ) 2 122.XXX.XXX.XXX:XXXX7 99.7519 % ( 402 / 403 ) 3 202.XXX.XXX.XXX:XXXX4 99.4845 % ( 193 / 194 ) 4 222.XXX.XXX.XXX:XXXX9 98.8827 % ( 177 / 179 ) 5 218.XXX.XXX.XXX:XXXX0 98.7421 % ( 157 / 159 ) 6 125.XXX.XXX.XXX:XXXX3 98.6111 % ( 142 / 144 ) 7 219.XXX.XXX.XXX:XXXX4 98.5537 % ( 477 / 484 ) 8 220.XXX.XXX.XXX:XXXX9 98.4375 % ( 126 / 128 ) 9 221.XXX.XXX.XXX:XXXX9 98.0000 % ( 98 / 100 ) 10 220.XXX.XXX.XXX:XXXX9 97.9167 % ( 141 / 144 ) 11 121.XXX.XXX.XXX:XXXX5 97.4359 % ( 152 / 156 ) 12 219.XXX.XXX.XXX:XXXX6 97.4093 % ( 188 / 193 ) 13 59.XXX.XXX.XXX:XXXX5 97.1631 % ( 137 / 141 ) 14 220.XXX.XXX.XXX:XXXX2 97.1154 % ( 101 / 104 ) 15 58.XXX.XXX.XXX:XXXX1 96.9231 % ( 126 / 130 ) 16 60.XXX.XXX.XXX:XXXX2 96.8254 % ( 122 / 126 ) 17 219.XXX.XXX.XXX:XXXX3 96.7213 % ( 118 / 122 ) 18 219.XXX.XXX.XXX:XXXX3 96.6412 % ( 1266 / 1310 ) 19 124.XXX.XXX.XXX:XXXX9 96.6154 % ( 628 / 650 ) 20 221.XXX.XXX.XXX:XXXX2 96.5779 % ( 254 / 263 ) 21 61.XXX.XXX.XXX:XXXX6 96.3768 % ( 133 / 138 ) 22 124.XXX.XXX.XXX:XXXX6 96.2963 % ( 104 / 108 ) 23 124.XXX.XXX.XXX:XXXX8 96.1648 % ( 1354 / 1408 ) 24 61.XXX.XXX.XXX:XXXX7 96.1165 % ( 99 / 103 ) 25 220.XXX.XXX.XXX:XXXX9 95.5882 % ( 390 / 408 ) 26 60.XXX.XXX.XXX:XXXX3 95.5326 % ( 278 / 291 ) 27 222.XXX.XXX.XXX:XXXX2 95.3947 % ( 145 / 152 ) 28 222.XXX.XXX.XXX:XXXX7 95.0820 % ( 232 / 244 ) 29 211.XXX.XXX.XXX:XXXX2 94.9580 % ( 113 / 119 ) 30 124.XXX.XXX.XXX:XXXX2 94.8718 % ( 111 / 117 ) 31 125.XXX.XXX.XXX:XXXX0 94.5736 % ( 122 / 129 ) 32 222.XXX.XXX.XXX:XXXX1 94.3662 % ( 134 / 142 ) 33 121.XXX.XXX.XXX:XXXX4 94.3396 % ( 150 / 159 ) 34 210.XXX.XXX.XXX:XXXX5 94.3098 % ( 895 / 949 ) 35 221.XXX.XXX.XXX:XXXX9 94.1667 % ( 113 / 120 ) 36 61.XXX.XXX.XXX:XXXX7 94.0741 % ( 127 / 135 ) 37 221.XXX.XXX.XXX:XXXX4 94.0315 % ( 3403 / 3619 ) 38 210.XXX.XXX.XXX:XXXX8 93.9759 % ( 312 / 332 ) 39 222.XXX.XXX.XXX:XXXX1 93.9103 % ( 293 / 312 ) 40 221.XXX.XXX.XXX:XXXX6 93.8596 % ( 107 / 114 ) 41 125.XXX.XXX.XXX:XXXX4 93.5780 % ( 102 / 109 ) 42 222.XXX.XXX.XXX:XXXX5 93.5691 % ( 582 / 622 ) 43 210.XXX.XXX.XXX:XXXX0 93.4884 % ( 3216 / 3440 ) 44 59.XXX.XXX.XXX:XXXX4 93.4307 % ( 384 / 411 ) 45 210.XXX.XXX.XXX:XXXX5 92.8747 % ( 378 / 407 ) 46 60.XXX.XXX.XXX:XXXX7 92.7367 % ( 715 / 771 ) 47 58.XXX.XXX.XXX:XXXX5 92.5512 % ( 497 / 537 ) 48 218.XXX.XXX.XXX:XXXX5 92.5373 % ( 186 / 201 ) 49 210.XXX.XXX.XXX:XXXX5 92.2849 % ( 311 / 337 ) 50 220.XXX.XXX.XXX:XXXX3 92.0348 % ( 1271 / 1381 ) (略) 391 218.228.201.103:7777 33.1210 % ( 312 / 942 ) (略) 208525 58.XXX.XXX.XXX:XXXX1 0.0000 % ( 0 / 100 )
このように、96%以上が拡張子偽装ファイルであるというノードが 24ノードも存在する。千個を超える拡張子偽装ファイルのキーを送りながら、それが90%を超える頻度になっているノードも散見される。
Winnyを普通に使っていて偶然こうなるということは考えにくい。これらのノードが異常であることを確認するために、割合の分布を調べてみた。
図1は、横軸をノードから発信されたキー総数とし、縦軸を拡張子偽装の割合として、各ノード(109万ノード全部)をプロットしたものである。ここでは、キー総数が1万を超えるものは除外した。
これを見ると、4、5千個にもおよぶ高い頻度で拡張子偽装ファイルのキーを送信しているノードまで存在することがわかる。
他に比べて高い頻度でキーを送ってくるノードは、それだけ多数のファイルを公衆送信可能化している、あるいは「上流ノード」として存在するものではないかと考えられる。
左端を詳細に観察するために、横軸を 1000までに絞って拡大した同じグラフを図2に示す。灰色でマスクされた部分は、データ数が100に満たないために偽装割合に信頼性がないことを意味する。矢印は 218.228.201.103:7777 のノードである。
これを見ると、縦軸の中央部分に空白領域ができており、その上側に、拡張子偽装率が高くなっている集団が存在していることがわかる。これは自然にこうなったというよりも、何らかの要因によってこのようになっていると考えるべきだろう。
次に、キー総数100以下を除外したノード(偽装率を信頼できる)20万8千ノードについて、偽装率の頻度を集計したものを図3に示す。横軸が拡張子偽装率であり、縦軸はその偽装率の出現頻度を表す。頻度は1000を最大に、それ以上の値を省略している。
1000を超えて省略されている部分の頻度は以下の通りであった。「0.0」のデータは 0.1% 未満の頻度を表す。
0.9 1001 0.8 1194 0.7 1263 0.6 1489 0.5 1776 0.4 2123 0.3 2431 0.2 2960 0.1 3549 0.0 184665
偽装率が 0.1% 未満のノードが18万4千件であり、全体の 88.6% を占めている。4% 未満では、20万6千ノードが該当し、99.2% を占める。
このように、偽装率が 4% を超えるようなノードは 0.8% の頻度でしか存在しておらず、異常なノードであると言える。*1
さらに詳細に観察するため、図3のグラフを、縦軸の上限を100に絞って拡大したものを図4に示す。矢印はノード 218.228.201.103:7777 の位置を指す。
こうしてみると、偽装率が 20% を超えるあたりから異常なノードである感じがする。これらのノードは、故意でウイルスファイルを収集しているのではないだろうか。
5% 〜 20% あたりの偽装率を示すノードもけっこうな数が存在するようだが、これらは、アニメや映画、音楽などのウイルスでないファイルを、キーワード指定で自動ダウンロード(「地曳き」と呼ばれる)で収集していて、結果的に、それらに偽装されたウイルスファイルも収集してしまっている集団を示しているのかもしれない。
偽装率が 80% を超えるようなノードは、「アニメや映画や音楽ファイルを収集する傍らで誤ってウイルスを収集してしまった」という言い訳が通用しないレベルであるように思う。
偽装率が 80% を超えるノードは 138ノード、50% を超えるノードは 291ノード、20% を超えるノードは 533ノードであった。
偽装率が 20% 〜 80% あたりのノードは、ウイルス専門に収集しているノードであると仮定して、拡張子偽装率が低いのはウイルスを同梱した .zip や .lzh 等も収集しているためだと推定することもできよう。
こうした悪質なノードの存在によってウイルス被害が続出し続けているわけであり、「ウイルス作成罪」刑法改正が成立し施行された暁には、こうした輩を、不正指令電磁的記録供用罪、同未遂罪、取得及び保管罪としてジャンジャン処罰していけばいいと思う。
ここで、彼らに「自分がウイルスファイルを公衆送信可能化している認識」があるかどうかが問題となる。図5は、これまでにも何度も書いてきたことを図式化したもので、先日の日弁連のシンポジウムの講演で使ったスライドからの1枚である。
LimeWireは、デフォルト設定のまま使うと、ダウンロードしたファイルはそのまま公衆送信可能化されてしまう。これは、送信可能化すると著作権侵害に問われるようなファイルをダウンロードする目的で使用する際に危険な設定であるわけだが、こうしておかないと、人々がなかなかファイルを送信可能化してくれないため、LimeWire作者の意図によってわざとこう設計されているのだろうと思っている。しかし、ユーザが設定を変更すれば「Up」と「Down」を別のフォルダにすることができ、「責任あるダウンロード」ができるようになっている。これは、LimeWire作者が責任を問われることを回避するために、そのように設計されているのだろうと私は思っている。「設定を変更しないで使うのは利用者の責任だ」と。
それに対してWinnyの場合は、そうした設定変更が不可能なように作られていると言ってよい。ダウンロードしたファイルは、そのまま「Cache」と称するフォルダ上で公衆送信可能化される。この仕組みを知らないある種の「ど素人」は、ダウンロードしたことが公衆送信につながるという事実の認識がないかもしれない。
だが、どうだろう? 本当に知らないでやっているのか。上で集計したような、明らかにウイルスファイルに絞って集めている輩は、何のためにそれをやっているのか。人に供用することになるという認識なしにやっているって? そんなわけがない。知りながらやっている輩が多いに違いないし、実際、2ちゃんねる掲示板で「俺の高速回線で拡散してやる」というような宣言が書き込まれるのを目にすることもある。
このWinnyの仕組みを知らない人がいるとすれば、知らせればいい。ウイルス罪の刑法改正が成立した暁には、Winnyでウイルスをダウンロードする行為は、ウイルス供用罪ないし、同未遂罪あるいは、取得及び保管罪に問われるということを、マスコミが大々的に解説すればいい。新聞テレビあらゆるメディアで散々注意喚起された状況で、「知りませんでした」という言い訳が通用するのか? そういう状況を作っていけばいいのだ。
実は、この話は今始まったことではない。著作物のWinnyによるダウンロードをやめさせたいなら、あるいは、警察官や自衛官にWinnyの使用をやめさせたいのなら、「Winnyによるダウンロードはアップロードになる」事実を大々的にマスメディアが解説すればよいのだが、なぜかやってくれなかったという話は 12月25日の日記に書いた。
Winnyはその仕組み上、ダウンロードすると同時にアップロード可能にする構造になっているのであるから、本当は、送信可能化権侵害で違法性がある。もちろん、その仕組みを知らなければ故意が認められないことになるが、それならば、その仕組みを周知徹底すればよい。
私は、Winnyが事件化して以来、何度かテレビや新聞から取材を受けたが、その都度、「ダウンロードするとアップロード可能にすることになる」ことを説明して、それを伝えてもらうよう試みてきた。しかし、残念ながら、いつもどういうわけかその部分を使ってもらえなかった。マスコミはなぜそこを伝えようとしないのか。何か狙いがあるのか、それとも天然なのか。
「ダウンロード違法化」で漏洩情報のWinny流通を抑止できるか, 2007年12月25日の日記
これまでこのことがなおざりにされてきたのは、著作権侵害はしょせん親告罪であり、また被害も金の問題であるから、さして重大なことと認識されてこなかったためではなかろうか。Winnyでは猥褻図画も公衆送信されているが、金銭目的がないなどからこれもさして重大なことと認識されてこなかったのかもしれない。
それに対し、刑法が改正されて「ウイルス罪」が新設されれば事態は異なってくる。この法案は、「プログラムに対する社会の信頼を保護法益とする罪」として構成されたものであり、誰かの告訴がなくとも、取り締まるべき罪であるからだ。
まず,保護法益の関係でございますが,コンピュータ・ウイルスは,他人が使用しているコンピュータで実行されて,データの破壊などの実害を与えるものでありまして,その意味でコンピュータ・ウイルスは個々のコンピュータ利用者の利益を害するという側面があって,それについても刑法的な保護が必要であると考えておりますが,それとともに,コンピュータのプログラムというのは容易に広範囲の電子計算機に拡散するという性格がある上に,コンピュータの使用者は,プログラムがどのように機能するかというのを容易には把握できないので,プログラムが変な動作をしないと信頼して利用できないと,コンピュータの社会的機能が保護できないということになります。また,現実にコンピュータ・ウイルスが広範囲に社会に害を与えているという実態がございますので,そういうことを考えますと,電子計算機のプログラムに対する信頼という社会的法益を害する罪として構成するのが相当だと考えているところでございます。
まさに現在、ウイルスを故意に収集し送信可能化して憚らない行為が横行し、電子計算機のプログラムに対する信頼という社会的法益が害されている状況である。
ウイルス作者を突き止めるのが困難という話を昔からよく耳にする。先日の逮捕報道でも、一部に次のような報道があった。
しかし、99年3月に米国を中心に大流行したコンピューターウイルス「Melissa(メリッサ)」の作者が翌月、FBI(米連邦捜査局)に逮捕された。00年春に発見された「LOVE LETTER(ラブレター)」ウイルスは、「I LOVE YOU」で始まる電子メールを介して感染が広がり、作者であるフィリピンの専門学校生が逮捕された。04年5月には、インターネットに接続するだけで感染する「Sasser(サッサー)」が出現、直後に作成者がドイツで逮捕された。
しかし摘発は氷山の一角で、ほとんどの作者は捕まっていない。突き止めるのが極めて難しいからだ。
クローズアップ2008:ウイルス作成罪 刑法改正、見通し立たず, 毎日新聞, 2008年1月25日 大阪朝刊
たしかに昔はそういう状況があった。しかし時代は変わった。この数年ほどは、Winnyに代表されるファイル共有ソフトにおいて甚大な被害が大量に続出しているのであり、作者の特定はともかく、故意にばら撒いている連中が野放しになっていることこそが原因であり、そういう連中を突き止めることは可能な状況になっているのである。
先日の報道で、どこぞの「専門家」が、
仮に法が整ったとしても、「法律があっても事件がなくならないのと同様、ウイルスをすべて追放するのは不可能」と指摘。
「法整備は困難」専門家指摘 ウイルス作成事件, 産経新聞, 2008年1月25日
などと稚拙なコメントをしてたが、こういうのは程度問題であって、明らかにウイルスを供給し続けている輩を検挙していけば、毎月1600件も被害が出ているという暴露ウイルスの被害は激減させることができるだろう。
*1 しかも、Winnyでは、キーの発信元IPアドレスは、キーの中継時に自ノードのIPアドレスに書き換える操作が 4% の確率で行われるとされているので、この 99.2% のノードらは、拡張子偽装ファイルを1つも送信可能化していない可能性もある。
自宅用にMac miniを買った。Boot CampパーティションにWindows Vistaを入れた。VMware Fusionから使う。快適だ。MacBook Airも出たことだし、8年ぶりにマカーに戻ろうかという気分になってきた。振り返れば8年前、「使ってなければ駄目さもわからないし」と、渋々Windowsをメイン環境にしたものだったが、最近ではもうその必要性も薄れてきている。
Windows Vistaを本格的に使うのは今回が初めてなので、環境設定をしている際に、誤訳が直っていないことに気づいた。これは、Windows XPのときからあった誤訳で、1年くらい前に気づいたがまだ何も行動していなかったもの。
これは、Internet Explorerでダウンロードして保存したファイルを後で開こうとした際に現れる警告ダイアログで、ファイルが実行形式のものである場合にこのような警告を出すという仕組みだ。(関連:2006年3月2日の日記「WinnyのDownフォルダをインターネットゾーンにする」)
ここで、「この種類のファイルであれば常に警告する」と書かれたチェックボックスがあることに注意したい。このチェックを外したことのある人はいるだろうか?
「このチェックボックスを外してしまうと、この警告の機能がオフになってしまう。設定の戻し方もわからないし、そんな危ないことしちゃだめだ」と考えて、ここを触らないように気をつけてきた人も少なくないのではないだろうか。
しかし、実際はそんな心配はいらない。これは誤訳なのだ。
英語版のWindowsでは、ここは「Always ask before opening this file」と書かれている。つまり、正しくは「このファイルは開く前にいつも確認する」だ。
このチェックボックスは何なのかというと、ダウンロードしたファイル毎に2度目以降の実行でこの警告を出さないようするための設定だ。つまり、ファイルの「プロパティ」で設定できる、「ブロックの解除」ボタン(図2)と同じ役割の機能だ。
どうしてこんな誤訳が生じたかというと、おそらく、類似の別の確認ダイアログにある「Always ask before opening this type of file」と混同したのだろう。つまり、IEでファイルをダウンロードするときに出る(安全なファイルをダウンロードする場合にだけ出る)図3の確認ダイアログと混同したというわけだ。
「この種類のファイルであれば常に警告する」で検索してみるとわかるように、図3の確認ダイアログでこのチェックを外すと後で戻せなくなって困ったというトラブル事例が多い。「この種類のファイルであれば常に警告する」は絶対に触らないようにしているという人も多いだろう。図1の誤訳は、図1の警告もこれと同じ仕組みだという誤解を生んでいると思われる。(私も以前はそう誤解させられていた。)
ところで、図3のこのメッセージの訳も正しくない。元の英文「Always ask before opening this type of file」に「警告」という意味はない。このダイアログはタイトル部を見ればわかるように警告ダイアログではない。仕事がいい加減すぎる。
もっと言えば、図1の警告ダイアログのタイトルに「開いているファイル - セキュリティの警告」と書かれているのもマヌケだ。英語版ではここは「Open File - Security Warning」となっている。正しくは「ファイルを開く」あるいは「ファイルを開いています」といったところだろう。いったいどんな仕事をしたら「Open File」が「開いているファイル」になってしまうのか。どうせリソースファイルだけ見て訳してるんだろう。
だいたい、マイクロソフト社の日本人たちもこれを見ておかしいと思わないのだろうか? 10年前にRedmondのMicrosoftを訪問した際には、日本語化作業チームのひとりの方にお会いする機会があったが、日本人ではない人だった。今はどうやって日本語のチェックをしているのか知らない。ユーザからの意見を取り入れるようにすればいいものが作れると思うのだが、そういうことはしないのだろうか。その点、Firefoxの日本語化は、ユーザコミュニティ主導で行われているため、翻訳の質は高い。
まあ、Windowsの日本語訳が酷いのは大昔からの話で、Windowsの評判が悪いのは自業自得なのだから周りからとやかく言うことではないという意見もあるだろう。だが、ここまでWindowsが社会のインフラとして普及した状況で、セキュリティに係るメッセージが正しくないというのは、いかがなものか。もし日本語訳だけが狂っているなら、世界に比べて日本だけ相対的にセキュリティレベルが下がるという事態も招きかねない。
今回の件は安全側に倒れるものなので、脆弱性と言えるようなバグではないが、もう少し本気で日本語化に取り組んでもらえないものだろうか。
昔はMacintoshにも似たような誤訳があった。今はどうなっているだろう。今後はMac OS Xについて調べていくとしよう。
昨年9月23日の日記でも参照していた、日本銀行の「日銀レビュー・シリーズ」「インターネットバンキングの安全性を巡る現状と課題」の2007年版が、新たに公開されていた。
次のように書かれているあたりが興味深い。*1
(2)サイト認証の強化
▲侫ッシングサイト警告ツール
地銀等を中心に、利用者のパソコンに導入した専用ツールから、認証サーバ等に問い合わせを行うことにより、正規のサイトであるかどうかを確認するサービスを提供する金融機関が多数みられる。
(略)
もっとも、サイトの確認自体は、本来、SSL 証明書を始め、ブラウザの基本機能で確認できるはずのものであり、利用者のパソコンに専用のソフトウェアを導入し、その使い方を理解してもらうなどの追加的負担が生じることを考慮すると一概に利用者の利便性が高まるとはいえないとの見方もある。
(4)利用者におけるセキュリティ強化
▲札ュリティ・チェック・サービスの提供
インターネット・バンキングに接続中、スパイウェアやウィルス等のマルウェアに感染していないかどうかをリアルタイムで監視するインストール不要のセキュリティ・チェック・サービスを提供する金融機関が地銀等を中心に増えつつある。正規のサイトへのアクセス時に、マルウェアに感染しているかどうかをチェックできる可能性はあるが、最新のマルウェアには対応していない場合も多い17ことや、そもそも不正サイトにアクセスしているときには起動されないことから中間者攻撃には効果がない。したがって、誤解に基づく安心感を与えて返って逆効果になることがないよう、利用者に対しては、どのようなリスクに対して有効な対策なのか、その限界を十分に説明し、油断することのないように注意を喚起することが必要である。
*1 一部、微妙に誤解もあるようではあるが……。
この「Tagged」はよくあるふつうのSNSなのですが、参加する際になぜかウェブメールのログイン情報(メールアドレスとIDとパスワード)を入力させられるという仕様になっており、その際の情報を使って「Tagged」運営側が勝手にウェブメールにログイン、アドレス帳に記載されている友人全員に「Tagged」への招待メールを送りつけるというとんでもないことをしているようです。
の件が再び話題になっていた。これは、
GoogleのGmail、MicrosoftのHotmail、Yahoo! MailなどのWebメールが普及する中、ユーザーのWebメールにアクセスしてアドレス帳に登録されたメールアドレスを入手しようとするソーシャルネットワーキングサイト(SNS)が現れたと、セキュリティ企業のSymantecが報告している。
にあるように去年騒動になった件だが、まだ続いていたようだ。 日本では少なくとも倫理的に非難の対象となるため真っ当な企業ならやらないことだろう。 米国では違法ではない様子だが、日本ではどうだろうか。
この「Tagged」がやっていることは、Gmailなど他のサービスにパスワードを送信してアドレス帳を取得するという行為なのだが、これが、日本の不正アクセス禁止法3条2項1号の「他人の識別符号入力して制限されている利用をし得る状態にさせる行為」にあたるかどうかだ。
その前に、phishing行為が日本でどのように取り締まられているかを確認しておきたい。
この記事にあるように、偽サイトで入手した他人のIDとパスワードを使用する行為が不正アクセス禁止法違反で立件されているわけだが、これらの事件ではおそらく、偽サイトで入手したIDとパスワードをターゲットサイトに送信する行為は、手作業で行われていただろう。
では、中継型のphishing行為における違法性はどうだろうか。中継型のphishingでは、IDパスワードを入手する行為と使用する行為が同時に自動的に行われる。 他人のパスワードを入手する行為自体は日本の現行法では違法ではなく(そのため偽サイトの開設行為が著作権法違反で立件された事例がある)、使用する行為が不正アクセス禁止法違反であるわけだが、 パスワードの送信がコンピュータによって自動的に行われている場合に、不正アクセス禁止法違反の罪に問えるだろうか。
まず、不正アクセス禁止法は、「何人も、不正アクセス行為をしてはならない。」としてその「行為」を規定しているわけだが、機械が処理することも「行為」たり得るのだろうか。同法の定番解説書「逐条 不正アクセス行為の禁止等に関する法律」によれば、
「入力」は、ここでは、電気通信回線を通じて対象となる特定電子計算機に他人の識別符号を送信することを意味しているから、他人の識別符号を送信する方法として、一々キーボードを操作することは必ずしも必要ではなく、パソコンのインターネット接続ボタンを押す、識別符号が記録されているICカードを差し込むなどにより、自動的に識別符号を送信するコンピュータの機能を用いて入力することも含まれる。
逐条 不正アクセス行為の禁止等に関する法律, 立花書房, p.75
とあるので、手入力を避けてパスワード送信プログラムを使うくらいのことは、モロに違法だろう。
だが、上の解説の例でも、パスワードの送信をコンピュータに処理するよう指令を出す行為の主体が人であるから、それはそうに違いないのだが、中継型phishingの場合ではどうだろうか。偽サイトのコンピュータがパスワードをターゲットサイトに送信するわけだが、その処理を直接引き起こす引き金は、偽サイトにパスワードを入力してしまった被害者が引いている。phishing行為をする者は、そのような仕掛けを設置しただけであり、送信を直接に指令してはおらず、間接的にそのような結果がもたらされることを期待した仕掛けを設置しただけだという言い訳で、同法違反を免れてしまう可能性はないのだろうか。
この点について、「道具を使って人を殺すような罠を設置した者が殺人罪に問われる」という理屈と同じなのか、それとも不正アクセス禁止法ではそれと同じにはならないのか、法律を体系的に学んだことのない私にはわからない。
しかし、もしそれが違法と解釈されるとして、ユーザの入力したパスワードを中継して渡すプログラムの設置のすべてが同法違反と解釈されてしまうと、今度は、プロキシサーバの設置までもが違法ということになってしまう。中継型phishing行為とプロキシサーバとの違いは何なのかということになる。
「結果として何がもたらされるかしだいだ」という主張は通らない。なぜなら、不正アクセス禁止法は、結果の如何を問うものではないからだ。結果として何も起こさなくても、ただ他人のパスワードを入力してログイン状態にしただけで即座に違法とする法律なのだ。なぜそんな法律になっているかというと、この法律の保護法益は「電気通信に関する秩序の維持」であるからだ。解説書は、同法1条の趣旨を次のように解説している。
コンピュータをネットワークに接続して営まれる社会経済活動の安全の確保は、一般に、その利用権者等をID・パスワード等の識別符号により識別し、識別符号が入力された場合にのみその利用を認めることとするコンピュータの機能(アクセス制御機能)により実現されているが、氏名、容貌等の個人識別情報を五官の作用をもって認識できる一般の場合とは異なり、コンピュータ・ネットワークの利用においては、利用権者の識別は専らアクセス制御機能に依存する。(略)高度情報通信社会は、アクセス制御機能による利用権者等の識別が正しく行われているとの信頼の上に成り立つ社会であると言える。(略)
ネットワークを通じてコンピュータを利用する者が誰であるかを正しく識別できなければ、「侵害行為に及んだとしても追求を免れ得るのではないか」との期待を生んで侵害行為に対する抑止力が失われ、アクセス制御機能により保護を図ることとしている業務の円滑な遂行や関係者の権利利益に対し具体的な侵害の危険が生ずる。(略)アクセス制御機能によるその抑止力が失われれば、高度情報通信社会の健全な発展祖著しく阻害する結果となる。(略)
このように、不正アクセス行為については、アクセス制御機能の社会的信頼を害することにより、コンピュータ・ネットワークにおけるハイテク犯罪の抑止力を失わせてこれを助長するおそれを生じさせるとともに、ネットワークを無秩序な状態にし、安心してネットワークを利用できない事態を招いてネットワーク同士の接続が抑制され、ひいては高度情報通信の健全な発展が阻害されるという独自の危険性が認められる。
逐条 不正アクセス行為の禁止等に関する法律, 立花書房, pp.21-23
一般的なプロキシサーバと中継型phishingを外形的に区別できるとすれば、中継に際して何らかの細工を加えるか否かではないだろうか。中継型phishingで直接に犯罪的利益を得るには通常、リクエストやレスポンスの内容を一部書き換えて中継する必要がある。
中継型phishingによってもたらされる結果が犯罪を構成する場合には、電子計算機使用詐欺罪などで処罰できるにしても、「中継型の場合には不正アクセス禁止法違反には問えない」ようでは法体系として不備があると言わざるを得ないのではないだろうか。もしそうならば、中継型phishingを不正アクセス禁止法違反と見なせるような法解釈の確立、あるいは法改正がなされるべきだと思う。
プロキシサーバと中継型phishingを区別し得るもう一つのポイントは、利用権者の承諾があるか否かであろう。不正アクセス禁止法3条2項1号では「当該識別符号に係る利用権者の承諾を得てするものを除く」とあり、プロキシサーバの利用者はプロキシサーバを経由してパスワードが送信されることを承知しているのだから、利用権者の承諾があるのだという解釈があり得る。
しかし、透過型プロキシではなく、Webサイト上に設置されている中継サイト(非透過型プロキシ)の場合はどうだろうか。利用者が承知している場合もあるだろうけども、承知せずに使ってしまうことだって起こり得る。その場合、phishingサイトとどう違うのかということになる。やはり、上に書いたように、中継に際して何が行われるかによって区別する必要性もあるように思う。
さて、話を戻して、今回の怪しげなSNSサイトだが、GIGAZINEが書いているところによると、利用規約でそのような用途で登録情報を用いることを表明しているそうだ(確認はしていない)。
たしかに、利用規約に「あなたの登録したGmailのパスワードは○○に使用します」と書かれていてそれに同意して使用したなら、パスワードの送信も、「利用権者の承諾を得てするもの」ということになるのだろう。
だが、もしphishingサイトが、不正アクセス禁止法違反に問われるのを免れるために、そのような利用規約を設けていた場合はどうだろうか。利用規約が極小文字で書かれているなど、利用者が規約の存在を誤認する形でパスワードを入力している現実があるなら、同法違反に問われることもあり得るのだろう。
じつは、日本においても、真っ当な企業が、外形的には同様の処理をするサービスを提供している。「アカウントアグリゲーション」と呼ばれるサービス(のうち「サーバ型」と呼ばれるもの)だ。これらは、銀行のパスワードなどを預かって、アグリゲーションサイトが代理でパスワードを送信して中継するという仕組みになっている。ここで、中継に際してアグリゲーションサイトが何をするかが問題となる。不正な送金をしたりしないのは当然としても、残高情報や取引履歴を他の目的に使用しないといったことが明示的に約束されていなければならない。
それは単に倫理的にそうだというだけでなく、不正アクセス禁止法違反で刑事罰に問われないためにも、アグリゲーションサービス提供事業者が留意しなければならないことだと思う。規約に明示されていない処理を事業者が行っていた場合、パスワードを代理送信して「制限されている利用をし得る状態にさせる行為」が「利用権者の承諾を得てするもの」に該当しないとして告訴される可能性があるように思う。アグリゲーションサービスは、米国で2000年ごろから利用が進んでいたように記憶しているが、当初、法務上のリスクについての議論が盛んで論説が発表されていたように記憶している(探したが見つからない)。日本においてはそのような議論を見かけたことがないが、大丈夫だろうか。真っ当な企業が運営するアグリゲーションサービスなら、集約するターゲットサイトの運営者の同意は得て契約を締結しているだろう。だが、利用者に対して完全な説明(何をして、何はしないのか)をする義務があることが認識されているのかどうかだ。
ここまで検討して、さて本題である。
昨年4月に、「nwitter」なるサイトが現れ、話題になった。はてなブックマークの当該エントリなどでどのように注目されたかを確認できる。今年になってもまだ利用されている様子が伺える。
これは、他サイトであるところの「Twitter」のID・パスワードの入力を促している。ここに、TwitterのID・パスワードを入力してボタンを押すと、nwitterサイトのプログラムが、そのID・パスワードをTwitterサイトに送信してログインすると同時に、定型文の書き込み操作を行うという動作をする。
しかし、はてなブックマークの当該エントリを見てわかるように、この動作は、実際にパスワードを入力した人の意図に反する動作となっているようだ。
このようなサイトを設置する行為は、不正アクセス禁止法違反に問われるおそれがあるのではないだろうか。
技術面で見てもプロキシとは違って、パスワード送信後に、利用者が指示していないリクエストを本サイトに送信するものとなっているし、法律面でも、このような動作をすることを明示していないことから、「利用権者の承諾を得てするもの」になっていない。*1
これはジョークサイトとして設置されているようなので、そもそも、どんな結果を招くかを規約で明示するということはあり得ないのだろう。はてなブックマークの当該エントリでの反応を見る限り、おおむねジョークとして受け止められているようではあるが、利用者がジョークと受け止めていれば違法性がないということにはならない。なぜなら、不正アクセス禁止法は、パスワードを無断で使われた人を被害者として保護する趣旨(個人的法益)の法律ではなく、「アクセス制御機能による利用権者等の識別が正しく行われているとの信頼の上に成り立つ社会」という社会的信頼を害する行為を禁止するというもの(社会的法益)だからだ。
こうした構成のサービス(どんな挙動をするかを明示せずに、他サイトのパスワードの入力を求める)が巷に溢れるようになってそれが普通となれば、重要なサービスでphishingサイトが区別されにくくなるという実害が生じる。それはまさに、「アクセス制御機能による利用権者等の識別が正しく行われているとの信頼」が損なわれた社会であり、そのような状況に陥るのを防止するために禁止行為を定めたのが、不正アクセス禁止法であろう。
TwitterのID・パスワードを使ったマッシュアップが流行した昨年、ついには、「mixilabo」なる胡散臭いサイトが現れてしまった。mixiの利用規約違反 があってサービス中止となったが、ここでもmixiのID・パスワードを入力させようとしていた。その必然性がないにもかかわらず安易にこのような行為がなされるようになったのは、「nwitter」のようなやり方が放置されて横行した結果であろう。
仮に、中継先のサイトがそのような利用を暗に認めているサービスで、「当サイトは特に被害を受けていない」と表明したとしても、関係ない。なぜなら、そもそも不正アクセス禁止法に被害者というものは想定し得ない*2のであり、パスワードがみだりに他用される状況自体の社会的危険を懸念して制定された法律だからだ。
「nwitter」のサイトには「アカウント名やパスワードなどの情報は一切ヌいてません」と書かれているが、そういう問題ではない。昨年6月の時点で「何故一発ネタマッシュアップを作る人の多くは入力したID/PASSの扱いについての同意文を書かないのだろう」という疑問を呈していた人もいたが、そういう問題ではない。ID・パスワードの扱いはもちろんのこと、その先でどんな利用をするのかが完全に説明されていなければならない。
近頃は「Web API」という言葉がもてはやされるようになった。APIといっても、単にPOSTやGETで元々アクセス可能なURLを指すものだが、固定したパラメータ仕様を明確にすると同時に、利用してよいことを明示的に表明するところに意義があるものである。特に、ログインの認証を必要とするサービスにおいては、APIを提供することは有意義である。なぜなら、APIが提供されていない状況でマッシュアップなどを実現しようとすると、安易にパスワードの代理送信という方法が使われかねないからだ。どこまでが第三者に許されている利用なのかがはっきりしないままでは、悪質な利用も横行するということになりかねない。Web APIの公表はそれを防ぐ役割を果たしているのであり、第三者は(認証を必要とするサービスにおいては)APIに従った利用のみをするべきであろう。
このことからも、理由や目的の明示なく他サイトのパスワードを要求する行為は、必然性がないと言えるのであり、慎むべきである。
ちなみに、(現時点でどうなっているかは確認していないが)昨年4月に調べた時点では、「nwitter」にログインすると、TwitterのIDとパスワードがそのまま、nwitter.comドメインのcookieとして保存されるようになっていた(図2)。
何のためにこんなことをする必要性があるのか全くわからない。
*1 ただし、アグリゲーションサービスの「クライアント型」は話が別で、不正アクセス禁止法による規制の範囲外かもしれない。もし、利用者の意図に反する動作をするアグリゲーションクライアントが配布されていたら、現在国会で審議中の「不正指令電磁的記録等の罪」つまり、いわゆる「ウイルス作成罪」で処罰されるべきものであろう。
*2 「アクセス制御機能に対する信頼を保護法益とする立場からすれば、わいせつDVDを購入した者に被害届けを出させて受理しているようなもの」参照。
「コンピュータセキュリティを基礎から」というと、暗号の解説、特に共通鍵暗号と公開鍵暗号の違いからなどといった解説をよく目にする。昔は専門の方によって注意深く書かれていたのに対し、ここ何年かはひどい状況になっている。先月、宮崎で開かれたSCIS 2008の席でも暗号研究者の方々との雑談でそういう話になった。私は暗号は専門でないのでその話題は迂闊に書けないできたが、このところの巷の誤り解説の氾濫ぶりは目に余るものがある。
最もひどく蔓延っていてしばらく消えそうにない間違い解説の典型例は次だ。
このような共通鍵暗号方式の問題点を解決する暗号方式が、公開鍵暗号方式です。(略)つまり、公開鍵を使って暗号化した平文は、ペアとなっている秘密鍵によって復号化します。
「公開鍵は暗号化するための鍵で、秘密鍵は復号化するための鍵なのかな?」
いいえ、公開鍵は秘密鍵を逆に使って暗号化することもできます。秘密鍵を使って暗号化した平文は、ペアとなっている公開鍵を使うと復号化できます。電子証明書の基本的なはたらきはこの原理に基づいています。
電子証明書やデジタル署名で公開鍵暗号方式を使う場合には、送信したメッセージが本人のものであることを証明するために、本人の秘密鍵で署名を暗号化して、メッセージに埋め込みます。メッセージを受け取った人が、メッセージ中に暗号化された署名を対となる公開鍵で復号できれば、本人の作成したメッセージであることが証明されます。
これらの解説は誤っている。これらは、RSAアルゴリズムを説明するものにはなり得ても、公開鍵暗号方式を説明するものになっていない。公開鍵と秘密鍵が「逆に使える」というのはRSAアルゴリズムがたまたま(まあまあ)そうなだけであって、そのような性質を持たない他の公開鍵暗号方式がたくさん存在する。
断りなくRSAを前提に公開鍵暗号方式一般をこのように解説してしまうことが、どのくらいの重大な誤りと言えるのか、私は暗号が専門ではなくわからなかったので、暗号の専門家に確認したところ、少なくとも、前者については最初に発表された公開鍵暗号方式がその性質を持たないこと、後者については現に広く使用されている方式がその方法ではないことから、完全なる誤りと言ってよいとのことだった。
私はこうした指摘をずいぶん前にWebで見かけて知った。たとえば次などが、古くから公表されていて多く読まれた指摘ではないかと思う。
そもそも、『暗号化』と呼ぶ以上、それは(複数であっても構わないんだが)『特定の相手によってのみ復号可能』という条件が成り立っていて欲しいんだよね。ところが、公開鍵を不特定多数の相手に公開してしまってこその公開鍵暗号なんだから、『秘密鍵で暗号化』されたデータなどというものがもしあったとしても、それは誰でも復号ができる、つまり、暗号化されたと呼べるようなデータではまったくないわけ。で、正確を期すならば、『秘密鍵で変換されたデータ』程度に留めておかなければならないということ。
最近でも昨年、次の指摘があった。
この数日後に「IT用語辞典 e-Words」の公開鍵暗号の項目は訂正されたようだが、デジタル署名の項目は指摘に対応する訂正はされていない。「IT用語辞典 e-Words」はGoogleで検索したときにWikipediaに次いで上位に現れるサイトであり、こういったところに誤りが書かれていると、見よう見まねで書かれる解説で誤りが再生産されてしまう。
2006年に書かれた日経BPの「情報セキュリティ入門」にも同様の誤り解説がされている。
ポイント
●公開鍵暗号方式では,1人の利用者(ノード)に対して二つの鍵(キー)を作る。片方を「個人鍵」と呼び,もう片方を「公開鍵」と呼ぶ
●個人鍵は,作ってからその鍵ペアを使わなくなるまで,絶対に秘密に取り扱う。このため,秘密鍵と呼ぶ場合がある。これに対し公開鍵は,その名の通り,不特定多数のユーザーに公開して使う
●公開鍵で暗号化したデータは,そのペアの個人鍵でしか復号できない
●個人鍵で暗号化したデータは,そのペアの公開鍵でしか復号できない
この誤解はそうとう蔓延っており、訂正させても訂正させてもまた湧いてくるという勢いだ。
ところで、先月のSCISで話題になったのは、それに加えてさらに誤り満載なある日経BPの連載記事の話だった。
デフィーの着想は,鍵を2種類に分けるというものでした(図2)。一つめの鍵は,それまでと同様に大切に扱う鍵で「秘密鍵」といいます。もう一つの鍵は「公開鍵」です。秘密鍵があれば,ある手順により公開鍵を容易に作り出せます。しかし公開鍵から秘密鍵は作り出すことができない,もしくは作り出すのに天文学的な時間が必要となるというものです。
この秘密鍵と公開鍵はペアで不思議な動作をします。(略)今度は秘密鍵で宝箱を閉めてみます。すると,今後はそのペアとなっている公開鍵でなければ箱は開きません。箱を閉めた秘密鍵を使っても箱は開かないのです。不思議な箱と不思議な鍵です。デフィーとヘルマンはこの仕組みで,鍵交換問題をどのように解決したのでしょうか?(略)
(略)
RSA暗号
デフィーとヘルマンのアイデアは画期的で素晴らしいものでしたが,実際に「秘密鍵から公開鍵を作るのは容易だが,その逆は困難である」という鍵をどうやって作るのかという問題がありました。(略)
問題を解く最初のステップは,与えられた数を2つの数に因数分解することです。これ自体はさほど難しくありません。難しいのは,その因数が素数であるかどうかの判定です。
Nが素数であるかどうかを検査する方法として,√Nまでの素数で次々と割り算してみるというのがあります。しかし,「nより小さな素数は,およそ n/log(n)個ほど存在する」(素数の定理)ため,10進数で150けた程度あるNが素数かどうかを判定するには,10進数で70けた以上の個数の素数をラインナップして割り算をしなければなりません。現在のコンピュータでは,この計算が終了するまでに太陽が燃え尽きているということになります。
(略)
D-H鍵交換アルゴリズム
(略)Diffie-Hellman鍵交換アルゴリズム(略してD-H鍵交換アルゴリズム)を図9にまとめています。このアルゴリズムは「数は累乗するより対数(累乗の逆演算)を計算する方が難しい」という原理に基づいています。
ハッシュ関数とは,何らかの数値が入力されて,何らかの数値が出力される仕掛けの一つです。同じ数値を入力する限り,必ず同じ数値が出力されます。(略)そこでperlやJavaのような言語では,ハッシュ・テーブルを使うことができます。ハッシュ・テーブルは、(略)
(略)
この暗号化されたハッシュ値を「MAC」(Message Authentication Code)といい,特にハッシュを使っていることからHMACともいいます。受信側でも,受け取ったメッセージのハッシュを計算し,一方でMACを復号化してみて計算したハッシュと一致すれば,メッセージは改ざんされていないと分かります。
公開鍵暗号では,「秘密鍵」と「公開鍵」の2つの鍵をペアにして使います。この2つの鍵は,次の2つの性質を持っています。
性質1)秘密鍵から公開鍵は容易に生成できるが,その逆は非常に困難(図1)。
性質2)秘密鍵で暗号化した情報は,そのペアである公開鍵でなければ復号化できない。また公開鍵で暗号化された情報は,そのペアである秘密鍵でなければ復号化できない(図2)。
(略)
特に第3回の記事は多重に間違っているためどういう間違いをしているのか説明しにくい。私は暗号は専門でないので正確に間違いを指摘する自信がない。この連載に対しては、少なくとも2名の方による間違いの指摘がWebに書かれた。
後者の方は日経IT Proに指摘を送ったそうだが、記事に訂正はないようだ。前者の方の指摘は、わかっている者同士ではこれはひどいよねと認識を共有できても、間違いだと知るべき肝心な読者にはこの声は響かない書き方だと思う。私も何度か自分で書こうとしたが、専門外のことについて誤りを指摘する文はやはり書けない。
こうしたことは真正面から専門の方々にもっと指摘されたらよいのにと思う。必要な読者に読まれる形で。
一般的に言うと、専門家が非専門家の誤りを指摘するというのはなかなか難しい作業である。非専門家の読者の関心を集めるように書かなければそもそも読まれない。どのような誤解に基づくものかを見いだして指摘する必要がある。「専門家の視点と一般向けの視点は別なのですよ」というありがちな言い訳をされないように注意しなければならない。重箱の隅をつつく揚げ足取りと思われないようにし、過剰な指摘をしないよう注意しないといけない。加えて、感情的に反発されないように配慮しないと書けないと考える人もいるだろう。専門家であるが故に、指摘でミスをすれば職業上の信用を失うことになりかねず、慎重になってしまう。
blogの普及と認知はそうしたことをやりやすくしたのだと思うが、日本では暗号研究者によるblogはまだとても少ないようだ。