硬盤如何加密

導讀:硬盤加密有利於用戶的信息安全,那麼硬盤加密有哪幾種方法呢,就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!

硬盤如何加密

  一、修改硬盤分區表信息

硬盤分區表信息對硬盤的啓動至關重要,如果找不到有效的分區表,將不能從硬盤啓動或即使從軟盤啓動也找不到硬盤。通常,第一個分區表項的第0子節爲80h,表示c盤爲活動dos分區,硬盤能否自舉就看這裏。若將該字節改爲00h,則不能從硬盤啓動,但從軟盤啓動後,硬盤仍然可以訪問。分區表的第4字節是分區類型標誌,第一分區的此處通常爲06h,表示c盤爲活動dos分區,若對第一分區的此處進行修改可對硬盤起到一定加密作用。

具體表現在:

1.若將該字節改爲0,則表示該分區未使用,當然不能再從c盤啓動了。從軟盤啓動後,原來的c盤不見了,看到的c盤是原來的d盤,d盤是原來的e盤,依此類推。

2.若將此處字節改爲05h,則不但不能從硬盤啓動,即使從軟盤啓動,硬盤的每個邏輯盤都不可訪問,這樣等於整個硬盤被加密了。另外,硬盤主引導記錄的有效標誌是該扇區的最後兩字節爲55aah。若將這兩字節變爲0,也可以實現對整個硬盤加鎖而不能被訪問。硬盤分區表在物理0柱面0磁頭1扇區,可以用norton for win95中的diskedit直接將該扇區調出並修改後存盤。或者在debug下用int 13h的02h子功能將0柱面0磁頭1扇區讀到內存,在相應位置進行修改,再用int 13h的03h子功能寫入0柱面0磁頭1扇區就可以了。

上面的加密處理,對一般用戶來講已足夠了。但對有經驗的用戶,即使硬盤不可訪問,也可以用int 13h的02h子功能將0柱面0磁頭1扇區讀出,根據經驗將相應位置數據進行修改,可以實現對硬盤解鎖,因爲這些位置的數據通常是固定的或有限的幾種情形。另外一種保險但顯得笨拙的方法是將硬盤的分區表項備份起來,然後將其全部變爲0,這樣別人由於不知道分區信息,就無法對硬盤解鎖和訪問硬盤了。

  二、對硬盤啓動加口令

在cmos中可以設置系統口令,使非法用戶無法啓動計算機,當然也就無法使用硬盤了。但這並未真正鎖住硬盤,因爲只要將硬盤掛在別的計算機上,硬盤上的數據和軟件仍可使用。要對硬盤啓動加口令,可以首先將硬盤0柱面0磁頭1扇區的主引導記錄和分區信息都儲存在硬盤並不使用的隱含扇區,比如0柱面0磁頭3扇區。然後用debug重寫一個不超過512字節的程序(實際上100多字節足矣)裝載到硬盤0柱面0磁頭1扇區。該程序的功能是執行它時首先需要輸入口令,若口令不對則進入死循環;若口令正確則讀取硬盤上存有主引導記錄和分區信息的隱含扇區(0柱面0磁頭3扇區),並轉去執行主引導記錄。

由於硬盤啓動時首先是bios調用自舉程序int 19h將主硬盤的0柱面0磁頭1扇區的主引導記錄讀入內存0000:7c00h處執行,已經偷樑換柱,將0柱面0磁頭1扇區變爲自己設計的程序。這樣從硬盤啓動時,首先執行的不是主引導程序,而是設計的程序。在執行設計的程序時,口令若不對則無法繼續執行,也就無法啓動了。即使從軟盤啓動,由於0柱面0磁頭1扇區不再有分區信息,硬盤也不能被訪問了。當然還可以將設計的`程序像病毒一樣,將其中一部分駐留在高端內存,監視int 13h的使用,防止0柱面0磁頭1扇區被改寫。

  三、對硬盤實現用戶加密管理

unix操作系統可以實現多用戶管理,在dos系統下,將硬盤管理系統進行改進,也可實現類似功能的多用戶管理。該管理系統可以滿足這樣一些要求: 1.將硬盤分爲公用分區c和若干專用分區d。其中“超級用戶”來管理c區,可以對c區進行讀寫和更新系統;“特別用戶”(如機房內部人員)通過口令使用自己的分區,以保護自己的文件和數據;“一般用戶”(如到機房上機的普通人員)任意使用劃定的公用分區。後兩種用戶都不能對c盤進行寫操作,這樣如果把操作系統和大量應用軟件裝在c盤,就能防止在公共機房中其他人有意或無意地對系統和軟件的破壞,保證了系統的安全性和穩定性。2.在系統啓動時,需要使用軟盤鑰匙盤才能啓動系統,否則硬盤被鎖住,不能被使用。 此方法的實現可通過利用硬盤分區表中各邏輯盤的分區鏈表結構,採用彙編編程來實現。

  四、對某個邏輯盤實現寫保護

軟盤上有寫保護缺口,在對軟盤進行寫操作前,bios要檢查軟盤狀態,如果寫保護缺口被封住,則不能進行寫操作。而寫保護功能對硬盤而言,在硬件上無法進行,但可通過軟件來實現。在dos系統下,磁盤的寫操作包括幾種情況:①在支持下的寫操作,如md、rd、copy等;②在dos功能調用中的一些子功能如功能號爲10h、13h、3eh、5bh等可以對硬盤進行寫操作;③通過int 26h將邏輯扇區轉換爲絕對扇區進行寫;④通過int 13h的子功能號03h、05h等對磁盤進行寫操作。 但每一種寫操作最後都要調用int 13h的子功能去實現。

因此,如果對int 13h進行攔截,可以實現禁止對硬盤特定邏輯盤的寫操作。由於磁盤上文件的寫操作是通過int 13h的03h子功能進行寫,調用此子功能時,寄存器cl表示起始扇區號(實際上只用到低6位);ch表示磁道號,在硬盤即爲柱面號,該柱面號用10位表示,其最高兩位放在cl的最高兩位。對硬盤進行分區時可以將硬盤分爲多個邏輯驅動器,而每個邏輯驅動器都是從某一個完整的柱面開始。如筆者的硬盤爲2.5gb,分爲c、d、e、f、g五個盤。其中c盤起始柱面號爲00h,d盤起始柱面號爲66h,e盤起始柱面號爲e5h,f盤起始柱面號爲164h,g盤起始柱面號爲26bh。如果對int 13h進行攔截,當ah=03h,並且由cl高兩位和ch共同表示的柱面號大於e4h並小於164h,就什麼也不做就返回,這樣就可以實現對e盤禁止寫。