今天凌晨在
Oikos的討論區裡,看到了一則消息:
蘋果電腦證實他們在新發表的Intel為核心CPU之電腦作業系統裡,植入了一首勸警駭客不要盜版的詩,引起了我腦海一陣陣的思辨漣漪,遂在討論區裡,寫了一篇我對於Macintosh電腦採用Intel CPU後,駭客如何能夠促使Mac OS X作業系統,安裝在非蘋果電腦所生產的硬體之上之看法。早上醒來,再重讀一次,發現稍早所發表的文章中,有些許小小的瑕疵,所以就像剝洋蔥一般地,把問題的根本重新釐清,企能「正本清源」,故此,也將這篇思辨的「沈思」,同步於本網誌中刊登出來,盼與對這方面有研究、有興趣的網友們一同分享、切磋!
=====
詩的原文:
Your karma check for today:
There once was a user that whined
his existing OS was so blind,
he'd do better to pirate
an OS that ran great
but found his hardware declined.
Please don't steal Mac OS!
Really, that's way uncool.
(C) Apple Computer, Inc.
(轉載自Oikos)
-----
中譯文:
業造於今朝:
某客發牢騷,
系統如此盲,
企盼能偷盜,
剽竊良系統,
但遭硬體抗,
勿盜麥金塔!
箴言徑非妙。
(悉)蘋果電腦
=====
我的沈思:
上回去參加OS X開發者的座談時,來自中國的工程師有稍微深入地介紹過OSX@intel的系統工程架構,雖然說,現在的硬體周邊已多半是跨平台的相容,就理論上而言,如果撰寫硬體鎖死的保護程式碼,當檢查保護的關卡數超過一定數量以上時,即便是用逆向工程追蹤保護程式碼之運作,按理推來,就像是走進一個迷宮陣,處處是陷阱,要能夠破解此保護措施,除非駭客擁有運算速度「超級快」的高速電腦,否則,運算破解的速度,也追不上撰寫保護的速度。不曉得
Steve Jobs,會不會使用網格運算來防止破解?(請繼續往下瞧,答案將逐漸分曉,並且於融會貫通本文所要傳遞之訊息後,再問一次自己,如果你是Steve,有沒有需要搞這麼大的工程?)
至於詩中所稱的「karma | 業」,若究其中所稱的「check | ?」看來,更值得推敲其所蘊藏的本意,剛剛打開了OS X內建的"Oxford American Dictionary",看到了解釋中一段很「雙關語」的例句解釋:
• [ intrans. ] ( check against) provide a means of preventing : processes to check against deterioration in the quality of the data held.
請留心"processes to check ... data held"這一句。deterioration可譯作惡化、墮落之意。將「墮落」對應於「業」,那是修辭中的絕佳的對應。又說,processes可泛指一切普通生活中之程序,也可以更「詭異地」解讀為電腦程式中的程序,注意這並非單單只是一個程序,而是複數多個程序,也就是說,(對人類來說)同時會有很多的程序在檢查保護,(對電腦來說)如果您對unix核心的
多工程序有概念的話,我推測這些保護程序被深深地「鑲」或「崁植」於系統核心中,而蘋果又以「人性化」見長,換句話說,如果要把保護砍掉,就等於會毀壞Mac OS X軟體本身至相當的程度(後有詳論),才有可能藉著一般市面上的PC「借屍還魂」!故云:"but found his hardware declined."即使周邊設備相容於主機,保護是鎖主機,這由先上市的All-in-one之iMac與MacBook Pro可得以窺見!
據個人研判,蘋果要做手腳,on board的晶片可以鎖,晶片可以有不只一個,對應於作業系統底層隱藏的執行程序,晶片與晶片間,程序與程序間,晶片與程序間,這樣三合一的組合,構成了3的N次方之防護網!
若說,易經有云:「二人同心,其利斷金」,那麼「三人同心」就更不得了了,這就等同於劉關張桃園三結義,彼此間相互信任,生死與共,那麼結果就很清楚了!沒有晶片,跑不動;躲過一個軟體程序,尚有N個軟體程序要破解(再跟時間賽跑吧!);不管是哪一組硬體或軟體的組合碰巧被破解了,永遠有更多的交叉保護組合要去破解。把這樣的「人類」可理解之思想概念,用電腦程式語言套上邏輯概念撰寫而成之保護抗駭程式,有別於普通之硬體Key Pro/dongle鎖,作業系統本身就是個超級大鎖(永遠不要輕忽為什麼當微軟想在Windows作業系統上發展任何應用軟體的潛力),這也就讓問題的癥結,落在稍早時提到過的,除非駭客有超快之硬體設備可以解碼,那麼駭客的下場會是什麼呢?繼續跟時間賽跑吧!被破解的"today",也就是作業系統被毀的同一天。
如果,您還有疑問是,為什麼當時研發Preview版可以安裝在普通intel機上?這答案也很簡單,因為相對應的有保護之硬體版尚未誕生!相對地,軟體可以搭配檢查硬體,只要硬體保護被破壞,就可以執行「同歸於盡」的子程序。而且,真的要撰寫保護程序,在開機這個過程中就已經在檢查保護了,哪還等得到開完機以後,再執行保護程式!?
所以說,面對這些層層的保護網,勸這些駭客們別浪費時間了!
也許您會問:「這樣的『邏輯』,難道駭客們不懂嗎?」我的回答是:「剛剛所描述的是『哲學』的領域,除非有駭客於了解0與1的「二元」對立邏輯之外,也懂得用「哲學」的觀點,跳出二元對立之問題本身之外,來看待這個問題。俗語云:「哲學為科學之母。」那麼,就還是剛剛那句話,別浪費時間了!老子云:「一生二,二生三,三生萬物。」以中國傳統哲學「道」,來檢視問題背後的真相!讓我們來看看,我們在此處所分析的觀點,「是不是」「有效地」「釐清楚」了「這個問題的根源」「究竟是出在哪裡?」v.s.「Is it-effectively-clarified-the entity of the question-What happened on this question?」個人以為,基本上,這是電腦總體設計「哲學」的問題,只是從表面上看起來,彷彿被支解為「電腦硬體工程」與「軟體程式設計」上的問題!
就二元對立觀點來說,
假設x=可以被破解;亦即x=1,
然而電腦本體之「邏輯」閘本身則非0即1,
那麼x就有可能被設定為0,
所以,
所得到的答案就變成了可能無法被破解;
反過來說,
假設x=無法被破解;亦即x=0,
然而電腦本體之「邏輯」閘本身則非0即1,
那麼x就有可能被設定為1,
所以,
所得到的答案就變成了可能會被破解;
既然x=0,也可能=1,
在二元對立的「邏輯」「認知」中,是有可能被破解的。
但若以三元的觀點來看,
所謂的三元觀點,
簡單地說,
就是用三個不同的角度與觀點,
來看待一件事情,
由於多增加了一個次元,
新增的一個次元可以再衍生出兩個位元,
(注意:這與密碼學中的「質數」問題有關,1, 2, 3, 5, ...)
因此就可以有更高層次的執行優先權,
來主導這其間的矛盾,
並以矛盾制矛盾,
只有在沒有矛盾的時候,
才得以放行。
讓程式自由地正常運作。
剛剛所指的矛盾,
可以被設計為程序癱瘓,
程序癱瘓了,
作業系統也就跟著半身不遂,
故此,
硬體沒有問題時,
電腦才可能正常運作;
硬體不相容時,
被設計者設定為癱瘓的程式,
除非駭客能夠撰寫一個「完善無缺」的補丁程式,
補強系統被破壞掉的執行程序,
否則,
嚴格說來,
就算修補到能夠開機,
駭客的程式設計「哲思」是善於「破壞」,
彌補「誤失」,
不是「建設」。
而被破壞掉的整個作業系統,
就某個程度上說來,
已算是被廢掉十全武功的,
即使是做修補,
也只能剩下九全或八全的功能可以運作!
(插曲:如果駭客像電影「神鬼交鋒 | Catch Me If You Can」裡那位改過自新的聯邦探員一樣,那天能棄暗投明,學習「建設」,那麼,電腦安全的防護,就會更加完善!)
如果您懂一些Unix,可有遇到過用kill指令殺不掉的「子程序」嗎?殺掉一個,母程序又繼續生出子程序,那是其實就已經是在某種程度的當機狀態,這是Unix系統的本性,它天生就是如此!那電腦為什麼會當機呢?簡單地講,就是CPU無法在演算過程的程序中導出答案,所以外表上看來似乎是停住了,其實,事實的真相是,在電腦的運作裡,硬體雖然沒有損壞及停止運作,只是在程式軟體的運算邏輯落入了永無止境的空轉運算!
以上「二元」與「三元」的保護措施之差異,
其實就是今天主題中最重要的關鍵!
且說,
視「一元」為「電腦可正常運作」,
論「元」者,可解讀為「具足所需之必備要件」,
則「二元」可表示為「軟體可不可以被破解與修補?」
那麼,「三元」即可象徵為「硬體與硬體」、「軟體與硬體」、「軟體與軟體」三者間之相互協防,
以如此三元「架構」所構築出的保護「原理」,
超脫於二元「邏輯」「思辨」的架構之外!(有關「邏輯」更深入的基本解釋與認知,請參看本文之後記二。)這世間的事,有許多不能只用對與錯、或說是0與1的觀點來看待,總是有那些黑、白以外的灰色地帶存在著,這些灰色地帶可以有許許多多(N個)解讀,至於要如何來解讀,只能說,需要花時間與工夫,來累積解讀的經驗。二次元有2^N個答案,三次元有3^N的題目,題目除以答案等於N,倘若駭客想要以三次元的實力來應對,那麼,有需要這麼辛苦嗎?三個打三個,結果近乎是同歸於盡!
重申一次,這是哲學問題,不是 if ... then 的程式設計問題,再更深入一點,修過程式設計的朋友應該對「河內塔」這個練習有印象吧!「河內塔」是被創造出來的一個「計算遊戲」,遊戲的本身有輸有贏,可是這現在問題的重點是:有三個交叉變因,去掉了解答中兩個變因的輸與贏,剩下的一個變因是什麼?只是存在本身!三個保護措施,拿掉了兩個,結果「總是」會有一個落單!所以說:「硬體」就是關鍵!硬體的程式碼可以被修改嗎?蘋果不會白癡到這保護程式用Flash memory,而捨棄READ ONLY MEMORY!!! 再重新思考一次,硬體是一個鎖,軟體是第二道鎖,軟體加硬體的組合是第三道鎖,三個鎖聯合起來,軟體掛了,自然軟體跟硬體的協防也就掛了,可是,問題的本身是硬體,所以答案就更清楚了!
看到這裡,不知道是不是有很多人的頭腦早就發昏了?還要駭嗎?不是剛剛已經說過,不要用二元對立可破解、不可破解的思惟來看待事物嗎?這個問題本身讓人想得發昏,「基本上」說來,這個問題好像是可以被「無止盡」地不斷推論下去……(這彷彿是電腦進入了「無止盡」的迴圈運算),「簡單」地說來,是這樣的「硬體」、「軟體」、及「軟硬體」三重組合,構成了一個完美的交叉協力防護網!
那麼,有沒有可能導入第四個變因,用第四個觀點,來分析這件事情上?應該是有的,就是使用「Grid | 網格」來計算破解。除非駭客能駭到與蘋果相匹敵的電腦資源所組成的網格,否則,在速度上還是慢了一些。況且,就算算出來了,總歸一句話,問題又回到上上一段的硬體身上。沒有硬體,破解了軟體又如何?而要破解硬體的關鍵,就會出在它的BIOS ROM上。
沒有了原版可以正常運作的BIOS,要這電腦幹嘛?彷彿這個純硬體的問題,似乎跟DVD播放機的鎖碼邏輯相同,可是以DVD播放機的複雜度,若將鎖碼的單元改掉,就電路上說來,便可以正常運作!那相對於電腦呢?要把BIOS拔掉嗎?拔掉的意義又何在?
接下來的破解之「道」,便落在「借屍還魂」的技術上!回觀電腦發展歷史,當初在IBM-DOS與MS-DOS時代,所謂的IBM PC相容度,其差別在於:硬體上的BIOS是否做得跟IBM的原版BIOS很相像,達到100%相容,如果沒有做到百分之百,有些程式仍舊無法正常的運作執行!所以,可以印證的事實是:根據周遭有成功安裝「開發版」OSX86的朋友指出,他雖然成功地安裝了Mac OS X在普通的Intel的主機上,可是,他最需要使用的應用軟體之一:Final Cut Pro就是沒有辦法執行!
在此先插播解釋一個電腦上的專有名詞:什麼是BIOS呢?如果您以前沒有相關的電腦常識,所謂的BIOS是Basic Input and Output System的縮寫,主要是負責電腦運作時的基本輸入與輸出,專門負責電腦主機與輸入單元,如鍵盤、滑鼠、掃描機、數位相機、數位攝影機,或者是輸出單元,如螢幕、喇叭、列印機等等的周邊設備,呼應在本文初曾經指出的,雖然現在的周邊設備,都已經標準化,可以跨越不同作業系統平台,問題的瓶頸出在基本的輸出與輸入上。
我們接下來繼續講,如果說,駭客能夠發展出與蘋果自家的BIOS相容的版本,那麼法律上不知道站不站得住腳?這便需要去調查蘋果有沒有權利去登記專利!
如果說,發展硬體不行,那麼「借屍還魂」的可能性,只剩下軟體了,而要修補殘缺的軟體界面,其難度有多高呢?這就彷彿又回到剛剛的「十全」、「九全」、或「八全」的地方!您可有debug抓臭蟲的程式發展經驗?累喔!所以,結論還是在「跟時間賽跑吧!」
以上的自圓其說是否還有漏洞可以鑽呢?歡迎留言指教!
回到本文開場話題之始的詩,來探討「業」的根本源流,用白話文來闡述,「業」可以說是一種「習慣」,也就是「慣性」作用,好的習慣自然會累積成好的結果;不好的習慣,也自然會累積不好的結果。若要把不好的習慣改為好的習慣,那便需要
〈下決心〉才有可能「扭轉乾坤」,但在太極的陰陽兩儀裡,想要在太陰裡鍛鍊出純陽,需要耗費相當的功力,功力卻需要靠時間來累積!即使駭客的功力在水準之上,不過,遇到新的防護措施,還是得「學習」新的破解「課題」,所以,結果又是繼續「跟時間賽跑吧!」接下來,再一次為「善」與「惡」之二元對立做總結:不要把事情的本質,只看到它為「善」=「1」、「惡」=「0」,學習多用不同的角度和觀點來看事情;善與惡存在於單一向度裡,如果說,「惡」=「-1% ~ -∞%」,將「放下屠刀立地成佛」引申為「0%」,「佛」者,中文的意義為「覺悟」的意思,從此以後,開始累積人生各面向的「正面建設」,「善」便可以泛指一切的「1% ~ ∞%」,力行累積「八正道」,便稱得上是「無上正等正覺」!「覺悟」為人生歷練成長過程中之大躍進,而今而後,更須以「覺悟」後所建立的新人生觀之認知,致力於「諸惡莫做,眾善奉行!」學「佛」就是學習「覺悟」,所指的並不只是去寺廟求神拜佛唸經,拜佛是禮佛,唸經是去認識佛陀所述之經典中,藉唸經去學習經典中的道理,並以身體力行之!同時,更要懂得跟千古諸佛、諸菩薩去學習如何在生活當中精進,學習「覺悟」一生中所有大大小小的課題。萬教皆同源,萬善本於愛,故曰:珍愛自己、珍愛生命、珍愛眾人、珍愛宇宙之萬物生靈!¶
後記一:上一次去聽Acrobat的座談時,講師有分析到Adobe Policy Server是如何能夠控管Acrobat 7.0以上的PDF文件。雖然說,PDF之保護所使用的數學函數,已宣告被中國的數學家所破解,不過,數學函數被破解,並不等於軟體本身被破解;套用剛剛的道理,把Policy Server設想成電腦硬體,又是另外一個絕佳的保護排列組合,故此,請默默等待PDF電子書滿天飛的時代來臨吧!
後記二:談到邏輯,不能不了解邏輯是什麼?邏輯是外來語,中文的思惟中,本來是沒有「邏輯」這種概念。那麼,邏輯的概念,所代表的意義為何?再查一次OS X內建的英英字典,其定義如下:
Logic
noun
1. reasoning conducted or assessed according to strict principles of validity.簡單的中文翻譯,可翻做:「根據所限制的有效性原理,被主導或估量的思考。」「邏輯」是被人類所創造出來的規範,而「原理」是自然存在的「道」理。現代人的溝通,很容易陷落在文字表達所產生的障礙裡(請詳見
〈語文的無用〉篇中之論述),如果把邏輯改作「方法」、「原理」、或
「胚騰」,重新把問題再思量一次,結果是如何呢?
後記三:哇!好久沒有這麼深入地去深思一個問題的緣由與根本,真過癮啊!
Labels: 沈思