加密技術是利用數學或物理手段,對電子資訊在傳輸過程中或儲存裝置內的資料進行保護,以防止洩漏的技術。在資訊保安技術中,加密技術占有重要的地位,在保密通訊、資料安全、軟體加密等均使用了加密技術。常用的加密演算法有
des系列(包括
des和
3des
),rc系列(
常用的有
rc4和
rc6)
和aes
等對稱加密演算法(加密金鑰和解密金鑰相同或相似)以及
rsa等非對稱加密演算法。除此此外,還有用於獲取資訊摘要的
md5等。這些常用的加密演算法,只要設定合適的密碼,在現有的計算機技術條件下,一般均可滿足安全性要求,但不同的加密演算法,需要的計算量有很大的不同。對於文件安全加密系統,加密演算法是整個系統的核心,其選擇的依據一般根據系統的安全性要求進行確定,在滿足安全性要求的前提下,盡可能選用速度快的加密演算法,在條件容許的情況下,可以採用硬體的方式對資料進行加密(如直接利用安全晶元提供的加密演算法進行加密等)。 1.
文件安全中的加密技術
雖然加密演算法是文件安全系統的核心,但加密演算法以何種方式進行實現,是決定文件安全系統的關鍵。在文件安全系統中,常用的實現方式有靜態加密方式和動態加密方式,靜態加密是指在加密期間,待加密的資料處於未使用狀態(靜態
),這些資料一旦加密,在使用前,需首先通過靜態解密得到明文,然後才能使用。目前市場上許多加密軟體產品就屬於這種加密方式。
與靜態加密不同,動態加密(也稱實時加密,透明加密等,其英文名為
encrypt on-the-fly
),是指資料在使用過程中(動態)自動對資料進行加密或解密操作,無需使用者的干預,合法使用者在使用加密的檔案前,也不需要進行解密操作即可使用,表面看來,訪問加密的檔案和訪問未加密的檔案基本相同,對合法使用者來說,這些加密檔案是「透明的
」,即好像沒有加密一樣,但對於沒有訪問許可權的使用者,即使通過其它非常規手段得到了這些檔案,由於檔案是加密的,因此也無法使用。由於動態加密技術不僅不改變使用者的使用習慣,而且無需使用者太多的干預操作即可實現文件的安全,因而近年來得到了廣泛的應用。
由於動態加密要實時加密資料,必須動態跟蹤需要加密的資料流,而且其實現的層次一般位於系統核心中,因此,從實現的技術角度看,實現動態加密要比靜態加密難的多,需要解決的技術難點也遠遠超過靜態加密。
2.文件安全加密系統的實現層次
在現代作業系統中,檔案的操作均通過檔案系統進行,雖然不同的作業系統支援的檔案系統不同,但對檔案的訪問方式基本相同,在
windows
系統中,檔案系統是以裝置驅動程式形式存在的。
windows
的裝置驅動程式採用分層方式,允許在應用程式和硬體之間存在多個驅動程式層次,其中過濾驅動程式是一種特殊型別的中間驅動程式,它們位於其它驅動程式的上層或下層,截獲傳送給低層驅動程式裝置物件的請求,在請求到達低層驅動程式之前,過濾驅動程式可以更改該請求,而低層驅動程式完全不知道在其上層驅動中發生的一切操作。圖
1給出了
windows
系統中的檔案操作流程,其中層次i和
ii屬於應用層;層次
iii和
iv屬於作業系統核心層。從中可以看出,乙個應用程式(i層
)在發出檔案操作請求時,需要經過作業系統提供的
api層(
ii層)、檔案過濾驅動程式層(
iii層)和檔案系統層(
iv層)才能訪問檔案,由此可知,文件安全加密系統也只能在這四個層次上進行實現。
檔案系統的這種組織結構決定了文件安全加密系統的實現方式,在資料從應用程式訪問檔案所經過的每個層次中,均可對訪問的資料實施加密
/解密操作,由於層次
i只能獲取應用程式自身讀寫的資料,其他應用程式的資料不經過該層,因此,在層次
i中只能實現靜態加密,無法實現動態加密;即使是層次
ii,也並不是所有檔案資料均通過該層,但在該層可以攔截到各種檔案的開啟、關閉等操作。因此,在應用層實現的動態加解密產品無法真正做到「實時」加密
/解密操作,一般只能通過其他變相的方式進行實現(一般均在層次
ii進行實現)。例如,在應用程式開啟檔案時,先直接解密整個檔案或解密整個檔案到其他路徑,然後讓應用程式直接(重定向)訪問這個完全解密的檔案,而在應用程式關閉這個檔案時,再將已解密的檔案進行加密。其實質是靜態加解密過程的自動化,並不屬於嚴格意義上的動態加密。
只有在層次
iii和
iv中才能攔截到各種檔案操作,因此,真正的動態加解密產品只能在核心層進行實現。
圖1 windows
系統中檔案的操作流程 3.
在系統核心層實現動態加解密
在檔案過濾驅動層
(iii)
和檔案系統層
(iv)
,不僅能夠獲得檔案的各種資訊,而且能夠獲得訪問這些檔案的程序資訊和使用者資訊等,因此,可以研製出功能非常強大的文件安全產品。就動態加解密產品而言,有些檔案系統自身就支援檔案的動態加解密,如
windows
系統中的
ntfs
檔案系統,其本身就提供了
efs(
encryption file system
)支援,但作為一種通用的系統,雖然提供了細粒度的控制能力(如可以控制到每個檔案),但在實際應用中,其加密物件一般以分割槽或目錄為單位,難以做到滿足各種使用者個性化的要求,如自動加密某些型別檔案等。雖然有某些不足,但支援動態加密的檔案系統在某種程度上可以提供和磁碟級加密技術相匹敵的安全性。由於檔案系統提供的動態加密技術難以滿足使用者的個性化需求,因此,為第三方提供動態加解密安全產品提供了足夠的空間。
要研發在檔案級的動態加解密安全產品,雖然與具體的作業系統有關,但仍有多種方法可供選擇,一般可通過
hook
或過濾驅動等方式嵌入到檔案系統中,使其成為檔案系統的一部分,從某種意義上來說,第三方的動態加解密產品可以看作是檔案系統的乙個功能擴充套件,這種擴充套件往往以模組化的形式出現,能夠根據需要進行掛接或解除安裝,從而能夠滿足使用者的各種需求,這是作為檔案系統內嵌的動態加密系統難以做到的。 4.
文件安全加密系統的例項
對於個人使用者,由於不涉及許可權和金鑰的管理分配等,文件安全加密系統一般只需要在客戶端實現加解密等功能即可;對於單位使用者來說,只提供加解密等功能是遠遠不夠的,必須提供相應的管理系統,如使用者身份的確認,許可權分配,金鑰管理、安全策略管理等多種功能。雖然不同的文件安全系統有不同的實現方式,但總體架構基本是相似的。下面我們以億賽通公司的文件安全加密系統
smartsec
為例,對文件安全加密系統的實現方式進行分析和說明。 圖
2是smartsec
的總體架構圖,整個安全系統由伺服器端和客戶端兩大部分組成,支援
c/s和
b/s兩種組織結構。服務端主要由使用者管理、金鑰管理、文件流轉管理、安全引擎等組成。其中使用者管理主要負責使用者身份的驗證,權 圖
2 smartsec
文件安全系統的架構 圖
3smartsec
系統中動態加解密的實現
限的分配和管理等;文件流轉管理的主要功能是負責文件在單位內部不同部門之間的流轉和單位內部與外部之間的流轉工作,在保證文件不影響使用者交流的情況下,為文件提供安全保障。如控制文件的瀏覽次數、使用時間,擁有的許可權等。金鑰管理用於實現不同部門之間的金鑰分配和交換等功能;安全策略管理用於設定和管理系統的安全策略以及為每個使用者分配相應的安全策略等;安全引擎主要為伺服器系統提供安全保障,如驗證安全系統模組的執行許可權和條件等,並提供對伺服器端儲存的文件進行加密
/解密等多種安全相關的功能。 圖
3給出了
smartsec
客戶端的實現原理,從中可以看出,
smartsec
的動態加解密是以檔案過濾驅動程式的方式進行實現的(位於層次
iii),同時在應用層(層次
ii)和核心層(層次
iii)均提供訪問控制功能,除此之外,還提供了日誌和程式行為控制等功能,這種通過應用層和核心層相互配合的實現方式,不僅能提供更高的安全性,而且有助於降低安全系統對系統效能的影響。
網路安全幾種加密方式
下面介紹幾種網路傳輸加密方式 注.這些加密涉及明文傳輸的,需要在https協議上加密傳輸 1.金鑰雜湊 採用md5或者sha1等雜湊演算法,對明文進行加密 這裡的加密僅對人,不對機器,因為這些演算法機器可以用對應演算法算出來 2.對稱加密 優點 安全 可認證 適用場景 收發方數量固定,金鑰使用物件少...
網路通訊安全基礎(加密方式,OpenSSL)
網路通訊安全基礎 1 nist定義的安全通訊 具備如下條件 保密性 資料保密性 私隱性完整性 資料完整性 系統完整性 可用性 安全攻擊 被動攻擊 竊聽 主動攻擊 偽裝成傳送或接聽者 重放 訊息篡改 拒絕服務攻擊 安全機制 加密,數字簽名,訪問控制,資料完整性,認證交換,流量填充,路由控制,公證 安全...
常見加密方式及Python實現
行者ai 由於計算機軟體的非法複製,通訊的洩密 資料安全受到威脅,所以加密在開發過程中是經常使用到的技術,在一些重要場景中都有所應用,如 登入 支付 oauth等,場景不同需要搭配不一樣的簽名加密演算法來達到業務目標。加密演算法分雜湊演算法 對稱加密 非對稱加密。1 雜湊演算法 經常需要驗證訊息的完...