一提到駭客(hacking),多數人腦中浮現的是電子破壞、間諜活動、染色頭髮與身體穿環的刻板印象,並理所當然地認為凡是從事駭客行為的人都是罪犯。

駭客的本質:遵守規則,而非破壞規則#

確實有人利用駭客技術犯法,但駭客的本質並不在此。事實上,駭客比起破壞規則,更接近於遵守規則——它的核心是為既有情境中的法則與性質,找出未被預期、或被忽略的用途,再以新穎而巧妙的方式運用它們來解決問題。

一道數學題就足以說明這種精神:

使用 1、3、4、6 這四個數字各一次,搭配加、減、乘、除四則運算,讓結果等於 24。每個數字只能用一次,運算順序可自行決定。例如 3 * (4 + 6) + 1 = 31 符合規則,但答案不對。

規則清楚又簡單,答案卻讓許多人卡住。就像這道題的解法一樣,駭客式的解法完全遵守系統的規則,只是用了違反直覺的方式運用它們。這正是駭客的優勢所在:讓他們能用受制於傳統思維的人所無法想像的路徑解決問題。

駭客的本質是:在規則之內,找到別人沒看到的那條路。犯不犯法是應用層面的事,與這項能力本身無關。

從 MIT 鐵道社到「優雅」的誕生#

自電腦誕生之初,駭客就一直在創造性地解決問題:

  • 1950 年代末,MIT 模型鐵道社(MIT model railroad club)收到一批捐贈零件,多半是舊電話設備。
  • 社員用這些設備搭出一套複雜系統,讓多位操作者能靠撥號各自控制軌道的不同區段。
  • 他們把這種對電話設備的新穎用法稱為 hacking——許多人視這群人為最初的駭客。

這群人後來轉向為 IBM 704、TX-0 等早期電腦撰寫打孔卡與紙帶程式。當其他人滿足於「寫出能解決問題的程式」時,早期駭客執著的是把問題解得漂亮:一個新程式若能達成同樣結果卻用更少的打孔卡,就被認為更好——即使功能完全相同。關鍵差異不在結果,而在達成結果的方式,也就是優雅(elegance)

能減少程式所需的打孔卡數量,展現的是對電腦的一種藝術性掌握。一張做工精細的桌子和一個牛奶箱同樣都能放花瓶,但兩者看起來就是不同。早期駭客證明了技術問題可以有藝術性的解答,並因此把程式設計從單純的工程任務轉化為一種藝術形式。

駭客倫理#

如同許多藝術形式,駭客常被誤解。少數真正理解它的人形成了一個非正式的次文化群體,專注於學習與精通這門技藝。他們相信資訊應當自由,任何阻擋這種自由的東西都應該被繞過——包括權威人物、大學課程的官僚體制,以及歧視。

在一片以畢業為導向的學生之中,這群非官方的駭客違逆傳統目標,轉而追求知識本身。這股持續學習與探索的動力甚至跨越了歧視所畫下的界線:MIT 模型鐵道社接納了年僅 12 歲的彼得·多伊奇(Peter Deutsch),只因他展現出對 TX-0 的知識與學習的渴望。年齡、種族、性別、外貌、學位與社會地位都不是評斷他人價值的主要標準——這並非出於對平等的追求,而是出於推進這門新興技藝的渴望。

最初的駭客在傳統上枯燥的數學與電子學中看見了壯麗與優雅。他們視程式設計為一種藝術表達,視電腦為那門藝術的樂器。他們拆解與理解的欲望並非為了去除藝術的神祕感,而只是為了對它有更深的欣賞。

這些以知識為核心的價值觀後來被稱為駭客倫理(Hacker Ethic):把邏輯視為一種藝術形式,並促進資訊的自由流動,為了「更好地理解世界」這個單純目標而跨越傳統的界線與限制。

這並非新的文化潮流。古希臘的畢達哥拉斯學派(the Pythagoreans)在沒有電腦的年代就有類似的倫理與次文化——他們在數學中看見美,並發現了幾何學的許多核心概念。這股對知識的渴望及其帶來的效益貫穿歷史:從畢達哥拉斯學派、到愛達·勒芙蕾絲(Ada Lovelace)、到艾倫·圖靈(Alan Turing)、再到 MIT 模型鐵道社的駭客們。理查·史托曼(Richard Stallman)與史蒂夫·沃茲尼克(Steve Wozniak)等現代駭客延續了這個傳統,帶給我們現代作業系統、程式語言、個人電腦,以及我們每天使用的眾多技術。

Hacker 與 Cracker:一場失敗的正名#

如何區分帶來技術進步的「好駭客」與偷信用卡號的「壞駭客」?cracker 一詞正是為此而造。當時的說法是這樣教給記者的:cracker 是壞人,hacker 是好人;hacker 忠於駭客倫理,cracker 只想犯法賺快錢。

但今天幾乎沒有人使用這個詞。

延伸:cracker 一詞為何沒有流行起來

Cracker 也被認為遠不如頂尖 hacker 有本事——他們只會拿駭客寫的工具和腳本來用,卻不理解其原理。這個詞原本要當成一個總稱,涵蓋所有用電腦做不道德之事的人:盜版軟體、竄改網站,以及最糟糕的一項——不明白自己在做什麼。

沒有流行起來的原因可能有二:

  • 詞源混亂:cracker 最初指的是破解軟體版權、逆向工程防拷機制的人。
  • 新定義本身就模棱兩可:既可指「用電腦從事非法活動的一群人」,也可指「技術相對不熟練的駭客」。

很少有科技記者願意使用讀者陌生的詞彙。相對地,多數人都知道 hacker 這個詞所帶有的神祕與技術含金量,所以對記者而言選用 hacker 是件容易的事。同樣地,script kiddie 有時也被用來指稱 cracker,但就是缺少 hacker 那種陰影般的張力。

有些人仍主張 hacker 與 cracker 之間存在明確界線,但作者認為:任何具備駭客精神的人就是駭客,無論他或她可能觸犯了什麼法律。

當法律模糊了界線#

限制密碼學與密碼學研究的現行法律,讓這條界線更加模糊。

  • 2001 年,普林斯頓大學費爾騰教授(Edward Felten)與其研究團隊準備發表一篇討論各種數位浮水印機制弱點的論文。這篇論文本身正是回應「安全數位音樂倡議(SDMI,Secure Digital Music Initiative)」公開挑戰的成果——該挑戰鼓勵大眾嘗試破解這些浮水印機制。論文尚未發表,團隊就同時遭到 SDMI 基金會與美國唱片業協會(RIAA)的威脅。
  • 1998 年的數位千禧年著作權法(DMCA) 讓「討論或提供可能繞過業界消費者控制機制的技術」變成違法。同一部法律也被用來對付俄羅斯程式設計師兼駭客德米崔·斯克利亞洛夫(Dmitry Sklyarov):他寫了軟體來繞過 Adobe 產品中過於簡陋的加密,並在美國一場駭客大會上發表研究成果,隨即遭 FBI 逮捕,陷入漫長的法律訴訟。

在這部法律下,業界消費者控制機制的複雜程度完全不重要——若「豬拉丁文(Pig Latin)」被拿來當作消費者控制機制,逆向工程它、甚至只是討論它,在技術上都算違法。

現在誰是 hacker、誰是 cracker?當法律看似妨礙言論自由時,說出真話的好人就突然變成壞人了嗎?作者的立場是:駭客精神超越政府法律,而不是被它定義。

知識無善惡,道德在於應用#

核子物理與生物化學可以殺人,同時也帶給我們重大的科學進展與現代醫學。

知識本身無所謂好壞;道德存在於知識的應用之中。

即使我們想壓制,也無法抹去「如何把物質轉換為能量」這樣的知識,也無法阻止社會的技術持續前進。同理,駭客精神無法被停止,也不容易被分類或解剖。駭客會不斷推進知識與可接受行為的邊界,迫使我們探索得更遠。

這股動力帶來的一個最終有益的結果,是攻擊方駭客與防守方駭客在競爭中形成的安全性協同演化(co-evolution):正如羚羊因被獵豹追逐而變快、獵豹又因追逐羚羊而更快,駭客之間的競爭同時為使用者帶來更好更強的防護,以及更複雜精巧的攻擊技術。

入侵偵測系統(IDS,intrusion detection system)的出現與演進正是典型例子:防守方打造 IDS 加入軍火庫,攻擊方發展 IDS 規避技術,這些規避技術最終又被更大更好的 IDS 產品所補償。整體互動的淨結果是正向的——更聰明的人、更好的安全性、更穩定的軟體、更具創意的問題解決手法,甚至一個新的經濟體。

本書的意圖#

本書要教的是真正的駭客精神。我們會檢視從過去到現在的各種駭客技術,拆解它們,弄懂它們如何運作、又為何有效。

隨書附上的可開機 LiveCD 包含書中所有原始碼與預先配置好的 Linux 環境。探索與創新是駭客技藝的關鍵,因此這張 CD 讓你能跟著操作、自行實驗。

唯一的硬體要求是 x86 處理器——所有 Microsoft Windows 機器與較新的 Macintosh 電腦都符合。插入 CD 重開機即可;這個替代的 Linux 環境不會干擾既有的作業系統,用完再重開機並取出 CD 即可。

希望這本書能激發你內在的好奇駭客天性,並促使你以某種方式為駭客這門技藝做出貢獻——無論你選擇站在圍籬的哪一邊。