我很久以前就想寫本篇文章了,只是一直沒有付諸於行動,最近終於下定決心寫出來。本文只討論計算機安全,不涉及網路安全的討論。
隨著計算機的日益普及和網路的發展,人們越來越多的依賴於計算機,同樣對資訊保安的要求也越來越高。例如銀行密碼帳號,郵件密碼,個人日記,**,公司文件等等,都是需要保護的。
然而,目前的作業系統卻是非常不安全的,病毒,或者木馬程式橫行,只要有心,就能輕易獲取個人儲存在計算機裡的檔案。也能輕鬆竊取個人上網時銀行帳號密碼之類的,雖然有些銀行採取了很好的保護措施,例如不用鍵盤輸入密碼,而是用圖形化的數字按鈕,並且隨機變換次序,甚至包含干擾圖形,這在一定程度上提高的竊取密碼的難度,然而,只要有心,還是能夠通過一定的演算法(如神經網路,支援向量機等等)可以分析出客戶所按的數字號碼,也可以通過記憶體掃瞄技術來分析。
也許,各位會說趕緊裝個防毒軟體啊,眾所周之,防毒軟體只有對已經報告出現的病毒才有效,總是慢半拍,跟在病毒後面跑,所以總有一些不幸的使用者先做了犧牲品。而且防毒軟體一般只針對流行的具有明顯破壞作用的程式有效,對於那些有用途單一的,小範圍應用的,無明顯破壞力的,則無能為力,如一些商業間諜軟體。雖然有些防毒軟體也加入了未知病毒查殺技術,這是對各種病毒行為的特徵(如是否掛鉤敏感
api函式,是否程式本身已經儲存了其他程式的敏感資訊等等)進行分析統計,是基於數理統計理論上的分析技術,來判斷它是否為可能為病毒,缺點也是顯而易見的。總之由於
windows
作業系統的先天缺陷,要周到保護資訊保安,是非常困難的。
因此,我覺得未來的作業系統應該在安全功能上非常穩健,沒有什麼病毒之類的,像目前流行的防毒軟體,都不應該存在地如此紅火。未來的作業系統至少應該在檔案系統的安全和可執行程式的安全這兩方面得到改進。
第一,在磁碟系統方面:目前較好的檔案系統是
ntfs
,它加入了使用者角色的安全訪問許可權,同時也具有加密功能,但是它對同一使用者
id下執行的所有的可執行程式的訪問則沒有限制,都是一視同仁,這就為混在期中的木馬程式創造了竊取資訊的機會,因此訪問資料夾許可權之中應該加入應用程式訪問控制,並不是所有的程式都可以訪問。如果乙個應用程式在向系統申請一塊私有空間時,其它程式就無法訪問,只有本程式自身或者程式自己指定的特定程式才能訪問,或者進入安全模式(定義見後面的程式安全說明)時,才能通過資源管理器執行檢視、拷貝、刪除、重新命名等一些基本操作。像防毒軟體之類的都無法訪問。當然,如果應用程式申請空間時指定的是不受保護的,則大家都可以共享訪問。
這樣,導致的問題是,檔案訪問變得困難了,例如,使用者用編輯軟體(如
office)
寫了乙個商業解決方案,存在編輯軟體的私有空間裡,而要傳送給客戶時,郵件傳送程式(如
outlook),
郵件傳送程式,無權訪問該檔案,需要進入安全模式拷貝到共享區域在傳送給客戶,經常這樣將是一件非常麻煩的事。解決辦法之一是,應用程式在發布前,預設應該編寫外部程式向它請求檔案的介面(當然也包括瀏覽介面),這樣,郵件傳送程式無法直接獲得檔案。必須通過系統請求,在找到資源所屬程式,再向應用程式請求,這樣保證了應用程式的知情權,事件也方便寫入系統日誌。
第二,在可執行程式方面:系統應該保護各自程式的鍵盤輸入、螢幕內容和滑鼠單擊事件。每個應用程式執行時有兩種模式,一種是開放模式,允許其他程式,獲取其內容,另一種則是私有模式,不允許其他程式訪問,這是程式發布時的預設方式。應用程式應該無法通過設定系統鉤子,或者截圖操作來竊取其它程式敏感資訊,程式自己的位址空間在沒有得到允許的情況下,也不允許其他應用程式訪問。這樣就避免了一些木馬程式獲取資訊,或者啟動自己注入的程式,偽裝成合法程式,將資訊輕易透過防火牆軟體,安全地將資料外傳。
但是,這樣也帶來很多的麻煩,如教學用的螢幕截圖,只能截到各程式的外框,內容則是一片空白。同樣遠端監控也變得非常困難,這樣為遠端解決問題,製造了很多障礙,解決這個問題,應該由系統來解決,即通過系統設定,進入低安全模式,此時允許應用程式訪問顯示、鍵盤等資源試。還有乙個問題就是程式的除錯變得不像目前這麼容易,這也有好處,防止程式**被動態除錯分析,進行破解,對於軟體版權保護起到一定促進作用。
關於安全模式的定義,有點類似目前的
windows
作業系統下的安全模式,但這個安全模式可以由正常模式立即進入,而不需要重新啟動系統,同時進入安全模式後,可以快速切換回普通模式,普通模式原有的狀態不會改變(有點類似
softice
的切換)。在安全模式時,系統一般不能執行其它程式,只可以執行檢視、拷貝、刪除之類的基本操作,類似於只有乙個資源管理器執行,但它具有最高的許可權。切換進入安全模式後,是否需要停止其他各使用者的執行的應用程式?還是繼續讓它在它自己的使用者級別下執行(類似於目前的
xp以上,是我關於未來作業系統走向的一些個人想法,考慮也不是很周全,毫無疑問存在著這樣那樣的問題甚至笑話,希望大家指出,一起溝通討論。
2005-08-29
我的作業系統的方向
做作業系統到底是為了什麼呢?好玩,當然是乙個很重要的目的,對它很有興趣。不過後續要做成乙個什麼樣子的呢?做os是很耗時間的工作,linus讓linux可以工作,花費了整整一年的全職時間,這是建立在乙個定義良好 文件豐富的作業系統介面的基礎上,緊緊是讓一些使用者態程式可以在這個基礎上執行起來。如果要自...
關於作業系統
計算機是分層的,這是計算機的複雜性和大量的需求導致的。複雜性體現在裝置的多樣性,單機模擬多工,硬體中斷機制帶來的不確定性。大量的需求體現在人們對計算裝置的需求,以及計算裝置減少大量的勞動力,以及計算裝置能完成大量勞動力也無法完成的事。複雜性帶來操作的不便,大量需求需要快速方便的操作計算機。在這個矛盾...
關於作業系統
1.作業系統 英文名稱operating system,簡稱os。常見系統 android,ios,linux,windows 作業系統是計算機系統中必不可少的基礎系統軟體,它是應用程式執行以及使用者操作必備的基礎環境支撐,是計算機系統的核心。作業系統是管理計算機硬體資源,控制其他程式執行並為使用者...