2006年10月12日 星期四

別對電腦產生運作上的迷思 (一)

【別對電腦產生運作上的迷思 (一)】

有些人(其實是大部分的人),都有一種錯覺,認為電腦無所不能,一個按鍵,所有問題皆能迎刃而解。這可能多少受到電視廣告詞的影響吧,例如:【電視可以煮土豆喔!】。但是您可知道,要電腦解決某一個問題,背後要花多少人物力以及成本,其艱辛真是難以一語道盡。前些日子,我曾說過:【我可以在一天之內,利用電腦寫出一百首,堪稱中上的詩詞】,絕無虛言。但一般人的觀感皆【嗤之以鼻】,好像這種作法與【偷、搶、騙】無異!這種反應真的令我詫異!後來我才查覺,原來有太多人對【電腦產生運作上的迷思】。君可曾想過:【電腦能像變魔術一樣,無中生有嗎?】要在一天之內利用電腦寫出一百首,堪稱中上的詩詞,背後可是須要:【一個強大的資料庫和難以數計的程式指令ㄚ!】,而建立這種資料庫和寫出程式指令,那可不是一朝一夕所能達陣的ㄚ!其背後的心酸,真是難以為外人道ㄚ!

電腦大致包含:【硬體、軟體、韌體(嵌入在硬體裝置中的軟體,晶片組即是)】。換言之,光有硬體,沒有軟體的支援,那麼,電腦只能靜靜地躺在那裡,啥事也作不了,更別說煮土豆囉!硬體,最大的功能是:【快速地執行軟體所要求的指令】,經過一段【硬體革命】之後,過去指令時間,已從秒、毫秒、微秒,進步到【奈秒】,換言之,電腦執行指令的速度,已令人髮指,快如閃電,呵呵!正確的說,應該是:【比閃電還快】。
【待續】

http://goo.gl/eBHbAH

2006年10月11日 星期三

空嘴薄舌

空喙哺舌 (空嘴薄舌) 之三:
一、信口開河,說話沒有憑證。
二、光說不練、空口說白話。指好發議論卻沒有實際的行動表現。

常見媒體報導,感覺好像很多人被駭客入侵,更荒唐的是,常見G+的某些朋友們一直以為自己被駭客入侵,依上述10篇文章的說明,這些人實在想太多了,理由如下:

一、 想要當駭客不是哪麼簡單的….有資格當駭客的人….憑他的學識早就是億萬級的富翁了…何需入侵一般人的電腦….不符比例原則。

二、目前的電腦、筆電、平板或手機,都內建防火牆及防毒軟體,除非是企業,否則只是個人用戶的話,已足堪防範入侵。

三、入侵他人設備企圖竊取資料,已構成刑法第三十六章第358-363條之妨害電腦使用罪。換言之,此行為之成本或代價太高,駭客沒必要去入侵個人電腦,除非你是一個非常重要的人。

換言之,一般用戶只要妥善處理自己的密碼,99.9 % 是不會被入侵的。也就是說:你不想讓別人知道的事,別人是無法窺視的。

糟糕的是,某些有心人士,本身連程式都不會寫,只憑著滑手機玩得很熟練,就自稱是 電腦高手 ,還誆稱可以隨時入侵取得他人之私密,實在是可笑至極!真不知這種人安的是甚麼心?

下圖是結合二張動畫gif檔,成為單一gif檔,他是用一個非常簡單的程式碼來控制所製作出來的,只需要幾個 迴圈 ,甚至簡單到無需用到條件式 ,想當駭客先把這麼簡單的程式寫出來,然後再讀個一千本書、實作出百個應用軟體再談吧!否則就是十足的 空嘴薄舌 !



2006年10月10日 星期二

雲端運算

雲端運算 :Image Source:Sukon Sebunrad:http://goo.gl/4VmPt
最近發覺有些不明就裡的科技工具使用者,對於能從其口中說出 “雲端運算” 這四個字的人,無由地崇拜不已,好像這種人能飛天鑽地,甚至於認為這種人能從 “雲端” 擷取任何其想要的資訊。一個完全不懂程式語言甚至可能連計算機概論都沒修過的人,居然大放厥詞,我只能佩服地說:臉皮厚到連子彈都難以穿破。想到這兒,不覺莞爾。因此,利用一點時間淺顯的說明所謂的 雲端運算 ,免得某些人陷入無可救藥的崇拜迷思。

雲端運算 的概念來自於1970年代所謂的 電腦模擬(simulation) ,當時網路仍在萌芽階段,一些研究 “作業研究(operation research)” 的學者,經常要處理很多繁複運算的數學問題,單一電腦處理起來缺乏效率,甚至於無法解決問題,因此,突發其想,何不將一些人的電腦連結起來,共同來解決一個問題呢?時至今日,網路蓬勃發展,電腦甚至於手機連結都太方便了,正是發展此種概念的最好時機,遂賦予另一名詞 雲端運算 ,企圖做出更進一步的科技發展。

「雲端運算」的概念事實上也不算新,其本質大抵承襲自「分散式運算」(Distributed Computing)以及「「網格運算」」(Grid Computing)這兩位老前輩。所謂「雲端」其實就是泛指「網路」,名稱來自工程師在繪製示意圖時,常以一朵雲來代表「網路」。因此,「「雲端運算」」用白話文講就是「網路運算」。舉凡運用網路溝通多台電腦的運算工作,或是透過網路連線取得由遠端主機提供的服務等,都可以算是一種「「雲端運算」」。網際網路上的雲端運算服務特徵和自然界的雲、水迴圈具有一定的相似性,因此,雲端是一個相當貼切的比喻,換言之,雲端運算服務具有:隨需應變自助服務、隨時隨地用任何網路裝置存取、多人共享資源池等特性。

簡單的說:將來你不需要將各種應用軟體安裝在電腦上,你只要提出租用申請,任何軟體都可以快速地在雲端某個不固定的裝載資源上提供你運用。你只要將你的工作上傳雲端,那麼你可以隨時在某地利用移動工具來連續你的工作。



2006年10月9日 星期一

駭客入侵手法

駭客入侵手法 :圖:Sukon Sebunrad ... 文:Baidu文庫

攔截封包 :如果你要攔截 "所有" 封包,那只有撰寫系統層級的程式,並放在網路卡的資料連結層來截取封包,並且自己要撰寫封包處理和解析機制。根據前述,這種侵入手法,不但技術難度很高而且是高成本無效率,因此,絕大多數的入侵都是採取植入受害者木馬程式,藉機 竊取密碼 ,其方式大致如下:

擊鍵記錄 (記錄器程式在您的電腦後臺運行,能記錄您在鍵盤上的每一次按鍵。擊鍵記錄器搜集的資訊,常包括個人資訊和您向電腦輸入的密碼):如果使用者密碼較為複雜,那麼就難以使用暴力窮舉的方式破解,這時駭客往往通過給使用者安裝木馬病毒,設計“擊鍵記錄”程式,記錄和監聽使用者的擊鍵操作,然後通過各種方式將記錄下來的使用者擊鍵內容傳送給駭客,這樣,駭客通過分析使用者擊鍵資訊即可破解出使用者的密碼。

暴力窮舉 :密碼破解技術中最基本的就是暴力破解,也叫密碼窮舉。如果駭客事先知道了帳戶號碼,如郵件帳號、QQ用戶帳號、網上銀行帳號等,而使用者的密碼又設置的十分簡單,比如用簡單的數位組合,駭客使用暴力破解工具很快就可以破解出密碼來。因此使用者要儘量將密碼設置的複雜一些。

螢幕記錄 :為了防止擊鍵記錄工具,產生了使用滑鼠和圖片錄入密碼的方式,這時駭客可以通過木馬程式將使用者螢幕截屏下來然後記錄滑鼠點擊的位置,通過記錄滑鼠位置對比截屏的圖片,從而破解這類方法的使用者密碼。

不良習慣 :有一些公司的員工雖然設置了很長的密碼,但是卻將密碼寫在紙上,還有人使用自己的名字或者自己生日做密碼,還有些人使用常用的單詞做密碼,這些不良的習慣將導致密碼極易被破解。

網路釣魚 :利用欺騙性的電子郵件和偽造的網站登陸網站來進行詐騙活動,受騙者往往會洩露自己的敏感資訊 (如用戶名、口令、帳號、PIN碼或信用卡詳細資訊),網路釣魚主要通過發送電子郵件引誘使用者登錄假冒的網上銀行、網上證券網站,騙取使用者帳號密碼實施盜竊。

Sniffer(嗅探器) :在區域網上,駭客要想迅速獲得大量的帳號(包括用戶名和密碼),最為有效的手段是使用Sniffer程式。Sniffer(嗅探器)是一種威脅性極大的被動攻擊工具。使用這種工具,可以監視網路的狀態、資料流程動情況以及網路上傳輸的資訊。當資訊以明文的形式在網路上傳輸時,便可以使用網路監聽的方式竊取網上的傳送的資料包。將網路介面設置在監聽模式,便可以將網上傳輸的源源不斷的資訊截獲。任何直接通過HTTP、FTP、POP、SMTP、TELNET協定傳輸的資料包都會被Sniffer程式監聽。

遠端控制 :使用遠端控制木馬監視使用者本地電腦的所有操作,使用者的任何鍵盤和滑鼠操作都會被遠端的駭客所截取。

分析推理 :如果使用者使用了多個系統,駭客可以通過先破解較為簡單的系統的使用者密碼,然後用已經破解的密碼推算出其他系統的使用者密碼,比如很多使用者對於所有系統都使用相同的密碼。

密碼心理學 :很多著名的駭客破解密碼並非用的什麼尖端的技術,而只是用到了密碼心理學,從使用者的心理入手,從細微入手分析使用者的資訊,分析使用者的心理,從而更快的破解出密碼。其實,獲得資訊還有很多途徑的,密碼心理學如果掌握的好,可以非常快速破解獲得使用者資訊。



2006年10月8日 星期日

駭客 (Hacker)

駭客 (Hacker):通常是指對電腦科學、編程和設計方面具高度理解的人。真實的駭客主要指的是高級程式設計師,而不是為人所誤解專指對電腦系統及程式進行惡意攻擊及破壞的人。主流社會一般把駭客看作為電腦罪犯,在媒體的推波助瀾下,Hacker這一詞早已被污名化,因為媒體和影界通常描述他們進行違法行為。

駭客需要精通的基礎 :
1、目前世界網際網路70% 網站都是英文網站,非常多的資源都是由英語撰寫的,所以成為一名駭客,英語是必須精通的基礎之一。
2、精通網路如TCP/IP以及網路原理,才能成為一名「硬體型駭客」。而對作業系統的熟悉與精通,才能更深入去學習如何入侵它們以及發現它們當中的漏洞。
3、必須精通組合語言、C、C++、.Net、資料庫、SQL、網路程式設計。
4、對任何事查根究底的好奇心與批判性的思考以及對未知的探索。
5、具有高道德水準,不隨意攻擊或篡改他人的電磁紀錄。由此可知,世人對駭客有高度的誤解。

民間著名駭客 :列舉四例,證明駭客被歸類為最高殿堂-來自實驗室
理察•馬修•斯托曼:傳統型大駭客,斯托曼在1971年受聘成為美國麻省理工學院人工智慧實驗室程式設計師。
斯蒂夫•沃茲尼亞克:蘋果電腦創辦人之一,現職小學教師。
林納斯•托瓦茲:他於1991年開發了著名的Linux核心,當時他是芬蘭赫爾辛基大學電腦系學生。
肯•湯普生和丹尼斯•利奇:貝爾實驗室的電腦科學操作組程式設計師。兩人在1969年發明了Unix作業系統。
Image Source:Sukon Sebunrad:http://goo.gl/4VmPt



2006年10月7日 星期六

防火牆(Firewall)

防火牆(Firewall) :是一項協助確保資訊安全的裝置,會依照特定的規則,允許或是限制傳輸的資料通過。防火牆可能是一台專屬的硬體或是架設在一般硬體上的一套軟體。

Internet 上常有一些不道德、搞破壞的使用者!要避免他們的入侵,設定一個區域網路的存取點(Acces s Point),然後檢查存取點所有輸出和輸入的傳輸情況會非常有幫助。一些位於 Internet 和區域網路之間的軟體和硬體,便可以協助處理此類工作。它們可以檢查輸入和輸出的資料,藉此確定這些傳輸資料的行為或內容是否適當,這些軟硬體被稱為防火牆。

最基本的防火牆是封包過濾器(packet filt er),它會檢查每個進入或離開網路的封包,並且使用一些規範來判斷這些傳輸資料的動作是否正當。過濾的動作通常是根據網路位址和port。例如,你可以拒絕所有來自 193.28.25 網路的傳輸要求,因為這網路曾經出現過駭客,讓你心有餘悸。防火牆可以允許內部網路上的人用telnet連線出去,但禁止外界的人telnet 進來。來自port 80上進來的網路連結可以被允許,但是只允許存取網頁伺服器,…等等。



2006年10月6日 星期五

淺談電腦網路通訊協定

淺談電腦網路通訊協定 : OSI七層協定 → TCP/IP協定

正如同,一個只懂中文和一個只懂英文的人,無法溝通一樣;全世界的作業系統,不是只有 Windows而已,還有Linux、Mac_OS、Unix等等。那麼多的作業系統要如何進行網路溝通呢?那就得要制訂共同遵守的標準才行了。這個標準是由國際組織規範的,你的系統裡面只要提供可以加入該標準的程式碼, 那你就能夠透過這個標準與其他系統進行溝通!

網路上的任一部電腦都可被視為一個網路節點(Node)。大部份的網路節點都是一部電腦,但印表機、路由器(Router)、橋接器(Bridge)、閘道器(Gateway)、終端機(Terminal),也可以被視為網路節點。網路上的每個節點的位址都是一個獨一無二的編號,位址是唯一可以用來識別節點的一組位元組。那麼各個節點之間是如何溝通訊息的呢?其實就是透過標準的通訊協定啦!但是,整個網路連接的過程相當複雜,包括硬體、軟體資料封包與應用程式的互相連結等等,如果想要寫一支將聯網全部功能都串連在一塊的程式,那麼當某個小環節出現問題時,整隻程式都需要改寫啊!真麻煩!那怎辦?沒關係,我們可以將整個網路連接過程分成數個階層(layer),每個階層都有特別的獨立的功能,而且每個階層的程式碼可以獨立撰寫,因為每個階層之間的功能並不會互相干擾的。如此一來,當某個小環節出現問題時,只要將該層級的程式碼重新撰寫即可。所以程式撰寫也容易,整個網路概念也就更清晰!那就是目前常聽到的 OSI七層協定的概念囉!雖然 OSI七層協定的架構非常嚴謹,是學習網路的好材料。但是也就是因為太過嚴謹了,因此程式撰寫相當不容易,所以造成它在發展上面些許的困擾。而由 ARPANET 發展出 TCP/IP 協定。其實 TCP/IP 也是使用 OSI七層協定的觀念, 所以同樣具有分層的架構,只是將它簡化為四層,在結構上面比較沒有這麼嚴謹,程式撰寫會比較容易些。後來在 1990 年代由於 email, WWW 的流行,造成 TCP/IP 這個標準為大家所接受,這也造就目前我們的網路社會囉!



2006年10月5日 星期四

封包(Packet)

封包(Packet) :扼要說明如下:Source:http://goo.gl/pHwPU4
封包是能夠在網路上進行傳輸的最小資訊單位。一個封包含有 發送端節點地址 接收端節點地址 和這 兩個節點之間需要傳送的數據 。

電腦上的資料通常是連續且長度很長的(例如 100KB),這麼長的資料串無法一次在網路上傳完,所以需要把它 分段 (例如分成 1KB 一段),一次傳一段。

分完段送上網路之後,接收端必須把這些分次收到的資料段重組回去。為了完成重組的動作,必須讓接收端知道那些資料段是同一組的,它們的先後順序為何等等,所以每個資料段都必須額外加上這些資料,稱之為 標頭 (header)。

一個標頭加上一段資料,就稱之為一個封包(packet)。封包是網路傳輸的基本單位。例如一個 100KB 的資料,分段之後會變成:
[標頭1+ 資料段1]、[標頭2+ 資料段2]、[標頭3+ 資料段3]、…。每一個分段就是一個封包。

封包的功用 :封包的內容,是兩台電腦間想要建立溝通所需的資料,藉由傳輸封包,發訊端製作封包,並將封包送出,收訊端接收封包,並將其恢復為原來發訊端的傳輸內容,兩台電腦互丟封包,來來往往,兩台電腦就可以相互溝通囉。

封包的由來 :MIT 林肯實驗室的 Larry Roberts 決定以封包交換的技術作為電腦網路的切入點,並於 1966 年從 IPTO 取得研究資助。



2006年10月4日 星期三

資訊業從業人員

資訊業從業人員 :撇開細分,大致可分類為:硬體維護員、應用程式員、系統程式員、以及,實驗室。

硬體維護員 :最底層的資訊工作人員,無須太多電腦知識,眼明手巧、熟悉軟體操作即可,中等學校程度稍加訓練就可勝任,網路管理、系統工程人員大致上也被歸為這類,但需要較長期的訓練。令人詫異的是,這類人員廣泛被一般使用者稱之為 電腦高手 ,可能是他們實際解決用戶的問題吧!80486時代PC零件蠻貴的,我個人曾自行維修及組裝,近來硬體皆採模組化,維修容易且便宜,我也就懶得自己動手了。

應用程式員 :大部分的程式員屬之,我也是其中之一。低階語言時代,仍須資工科系者方能勝任;進入高階語言之後,非本科系程式員大量湧入。此類人員的任務是:開發一些生活或工作上得以自動化的應用軟體。大體而言,此類程式員至少得花五年以上去熟悉程式語言,而且還需具有市場靈敏度,才能開發出符合需求的客製化軟體。程式語言進入Visible Basic之後,大量引入 物件導向 的觀念,封裝、繼承、多型等等抽象化概念,邏輯搞得比學習 量子力學 還難,遂多少形成進入者障礙。

系統程式員 :讓高階語言使用者能夠安心地用電腦解決問題,而不需要學習電腦內部如何地運作等複雜而又不相關的瑣事,並且讓系統的資源能有效而充分地被運用。包括作業系統、監督程式、組譯程式、編譯程式、通訊軟體…等等,驅動程式程式員也被歸於這類。這類人員非資工本科系者難以勝任,大部分由具有碩博士資工本科系者擔任。比爾蓋茲也是因從事此類工作,而開發出DOS、Windows等作業系統而發跡。當然他現在不需要再去寫這些程式,他曾感慨地說:現在程式語言越來越繁瑣,要我回復以前的功力至少需要三年,可見進入此領域有多難,而有軟體革命之說。

實驗室 :例如,AT & T 貝爾實驗室、麻省理工學院林肯實驗室。這是資訊業從業人員的最高殿堂,最主要的任務是:科技創新 概念及雛形的搖籃。



2006年10月3日 星期二

淺談程式語言之歷程

淺談程式語言之歷程 :

程式語言 (programming language),是用來定義電腦程式的形式語言。它是一種被標準化的交流技巧,用來向電腦發出指令。一種電腦語言讓程式設計師能夠準確地定義電腦所需要使用的資料,並精確地定義在不同情況下所應當採取的行動。

機器語言 :是一種 不具英文意義 的指令集體系。這種指令集,稱機器碼(machine code),是電腦的CPU可直接解讀的資料。機器語言具有靈活、直接執行和速度快等特點。編出的程式全是些0和1的指令代碼,直觀性差,還容易出錯。現在,除了電腦生產廠家的專業人員外,絕大多數的程式設計師已經不再去學習機器語言了。

低階語言 :又稱為組合語言(Assembly Language),使用一種【助憶碼 (例如ADD 表加法)】來代替0、1。例如:ADD X,Y;表從隨機記憶體中取出x和y的值然後相加。這種 含有英文意義 的基本指令集【ADD(+)、SUB(-)、MUL(*)、DIV(/)】已經使得撰寫程式員容易辨識多了。

高階語言 :(High Level Language):以人類易學、易寫的文字或符號來表達的程式語言,高階語言所設計的程式,不能由電腦直接執行,必須經過一種翻譯程式轉換成機械語言才能進行執行。撇開一些不常用或特定用途的語言(例如:FORTRAN、COBOL、PASCAL等等),大致上的演進順序為:Basic、C、Java。Basic:有編譯式和直譯式兩種,語法簡單易學,適合於初學者。C:兼具了高階語言方便、低階語言效率,可攜性高、富有彈性,適用在系統程式撰寫上。Java:程式架構像C++但是它拿掉了C++最困難的指標部份,它能發揮網路及多媒體的內建支援。

 :低階或高階,不代表低級或高級,反而是越高階越容易學習,所必要具有的電腦知識反而更少。



2006年10月2日 星期一

淺談PC之歷程

淺談PC之歷程 :

我學的是 “管理數學” 經常要繳交有關 “線性規劃” 的數學作業,在只有IBM大型電腦的時代,只好徹夜在實驗室裡排隊,以二進制的機器語言編出全是些0和1的代碼,輸入指令,不但直觀性差,還容易出錯。

1970年代末期進入Intel 8086所謂的 “8bit” 時代,而有個人電腦(PC)的產生,當時最風行的機種莫過於AppleⅡ,不但 “本機、螢幕、鍵盤” 一體成形,更配合高階語言Basic及Lotus123試算軟體,使得數學運算有了突破性的發展,80年代中期進入Intel的 “16、32bit” 時代,這是一個 “作業系統” 競爭的年代,蘋果不敵微軟的DOS、Window,市面上幾由微軟全面接管,當時的PC由80286、80386及80486所壟斷。

時至今日,進入64bit時代,作業系統也發展到Window8.1,不但筆電高度發展,更進入觸控、平版、手機、雲端運算年代,PC當然式微,首先由市占率第二名的HP退出PC市場發出警訊,再由第三名Acer的市值大幅滑落加以證明,第一名的Dell其營運結構性調整當然也不意外。PC會被終結嗎?這是我最關心的問題,因為對於每天蟄伏於電腦前12小時以上的專職人員而言,PC仍是無可取代。因此,我認為PC仍會朝精緻化持續一段時間,但是在這個高速進化的年代,誰知道呢?