日式P2P原理探究(三) — 作者也下水, P2P分享軟體的原罪?

Posted by Mr. Friday

延續之前的話題. Winny自2002年由金子勇發表之後, 立刻快速榮登日本第一大P2P分享軟體. 然而人紅是非多, 沒多久(2003年8月)就出現一種專針對Winny而來的病毒Antinny, 會偷偷把使用者的資料洩漏到winny上, 連續造成多起日本軍警機密資料外洩; 加上Winny上所分享的多以版權物為主, 嚴重侵犯著作權, 因此引起日本政府的高度重視.

2003年11月28日, 日本警方宣稱破解了Winny的匿名機制, 並逮捕了兩名使用者, 分別是41歲的Yoshihiro Inoue與19歲的少年. 咦, 看到這裡大家一定覺得很奇怪, Winny不是承襲了Freenet的匿名機制, 為什麼還會被警方給破解了呢?

檢方當時並沒有說明破解過程, 不過事後從起訴書來看, 原來警方曾經嘗試直接破解winny下載過程的加密機制好幾次, 但均告失敗. 最後警方另闢蹊徑, 終於抓到了winny的小把柄! 還記得上一篇曾經提到winny附加的留言版功能嗎? 沒錯, 警方就是從這裡破解的!

正所謂畫蛇添足! winny增加的留言版功能, 是一個類似個人電子公告欄的機制, 讓使用者在自己電腦上留言給路人觀看. 由於留言版並沒有隱藏留言者的IP位置, 因此警方先在警局電腦上灌了一套winny, 搜尋鄰居中是否有人用留言版功能公告自己分享了什麼檔案; 一旦找到有這種留言, 則立刻嘗試下載該檔案, 並設下防火牆, 只允許該留言者的電腦IP連入. 簡單的說, 警方利用防火牆, 限定只有留言者能夠傳檔案給警察, 只要警察發現檔案真的下載成功了, 即可證明留言者有犯罪意圖(留言)與行為(分享檔案). 又因為日本網友大多使用固定IP, 因此一旦被鎖定IP, 也就等於鎖定了使用者. Yoshihiro與19歲少年就是如此被捕的.

這兩位網友被警方逮捕後, 金子勇也難逃厄運, 警方隨後搜索了金子勇的住處, winny的原始碼也被沒收. 但這只是開端. 2004年5月10日, 日本警方發起了一項史無前例的拘捕行動, 逮捕了金子勇, 罪名是助人違反著作權法! 這可是徹徹底底的舉世無雙, 因為從napster讓P2P分享軟體聲名大噪以來, 從來沒有任何一個程式設計師是因為撰寫P2P軟體而被逮捕的!

金子勇照片

金子勇的被捕立刻引發了廣大的社會輿論以及網友恐慌(據說金子勇被捕當日, 全日本網路總流量下跌了30~50%). 支持金子勇的一派認為, 程式軟體工具的開發在法律上應該屬於技術中立的範疇. P2P的軟體只是一種分享的平台, 好讓任何使用者可以快速地分享各種合法的檔案…當然, 有很多人會利用P2P來分享違法軟體, 但這並不屬於程式設計者可以控制的範圍. 這好比說刀匠製作水果刀的目的是讓人用來切水果, 但水果刀若被用來殺人, 難道法庭也要下令逮捕刀匠嗎?

另一派的說法則是, 金子勇在開發這套軟體時已經知道winny會被拿來做盜版用途, 開發這種軟體等於是實質上幫助了盜版的猖獗, 是”技術的恐怖主義”; 然而另一派也反駁說, 金子勇寫出這套軟體後, 自己並沒有拿它來分享, 分享盜版檔案的是其他網友, 沒有犯罪事實也可以算違法嗎?

金子勇本人對日本警方的逮補行動當然大為不滿, 他於是在隔年(2005)出版了Winnyの技術這本書 (也就是在第一集中我們看到的那本), 闡明他的創作理念是「為了日本才開發Winny。」「時間會証明Winny為日本帶來好處。」而支持金子勇的網友們更大表不滿(可以想見當中以2ch的鄉民為大宗), 他們更成立了網站, 為金子勇舉行募捐. 短短兩個禮拜之內, 就募到超過一千一百萬日幣!

雖然有著眾多網友的支持, 然而法庭並沒有站在金子勇這一邊. 2004年6月1日金子勇被交保釋放之後, 法院隨即在九月召開聽證會. 去年年底, 也就是2006年12月, 法院判定金子勇有罪, 須交付一百五十萬日幣的罰金. 金子勇並未上訴. (不過當初募來的錢應該還夠付吧!)

由於金子勇被逮捕的時間點與香港古惑天皇事件相去不遠, 因此常被拿來一起討論. 不過這兩個事件雖然都跟P2P檔案分享有關, 但古惑天皇是在網路上分享違法檔案被逮捕, 其罪證確鑿, 與金子勇不同; 金子勇事件則是世界P2P交換軟體上著名的一段歷史. 金子勇是第一位, 也是目前唯一一位, 因為撰寫P2P程式軟體而被判定有罪的軟體工程師. 雖然他沒打算再上訴, 但是據說他判決確定當日, 還是忿忿不平的說: “如果寫出來的工具被人用來犯罪, 作者也算共犯的話, 那麼微軟開發了Windows, 是不是也要被判有罪呢” ? 唔, 我個人倒是很想看Bill Gates被判有罪啦…

至於Winny的後續呢? 自從金子勇被逮捕後, winny的開發也陷入停滯. 後來, 有一位不願透露姓名的某日本軟體工程師, 接下了這個擔子. 這就是目前日本第三大的P2P軟體, 從運算架構到作者都相當神秘的–Share. 有多神秘呢? Share並沒有正式的下載網頁, 想要使用的人得自己去找來源! 運算原理呢? 當然更是沒有了.

也由於Share沒有正式的原理說明, 因此我只能就一些網友的使用經驗來推測share的一些特性. 據說, Share所使用的cluster words(5個字)比winny(3個字)更多, 因此群集的效果可能會更好; Share要求每個使用者上下載速度都要超過50KB, 這讓share在日本以外的地區推廣不易; Share也引入BT的檔案切割傳送觀念, 因此每個分享的檔案都被分成許多小塊分散在網路各處, 想下載的人得一一下載後再解密(是的它們有經過加密)才能得到原始檔案.

關於Share, 我的研究就不是那麼多了, 畢竟探討相關原理的文章比起winny來得更少, 想著手也不知從何開始. 如果有網友明瞭當中原理的話, 還請不吝賜教:)

本次系列到此告一段落, 感謝各位讀者的收看! 如果文章中有遺漏或錯誤的地方, 還請各位網友指正, 謝謝!

(p.s. 就在我剛寫完本系列第一篇沒多久, 5/18日在日本又有三個人因為用winny上傳週刊少年與Jump而被捕…)

延伸閱讀:

網上分享是否有罪?論「Winny事件」

Share on Wikipedia

Three Arrested in Japan for File-Sharing Shōnen Manga (近日新聞)

日系P2P原理探究(一) — Winny元祖: Freenet

日系P2P原理探究(二) — Winny, 日本崛起

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!