硬件密碼組件的硬件結構、作用及實現應用設計

引 言

1 硬件密碼組件的概念

密碼技術是解決信息安全問題的核心技術。要實現信息的保密性、完整性、可控性和不可否認性等安全要求,都離不開密碼技術的運用。在具體的信息安全系統中,密碼技術的運用可以基于軟件密碼組件(簡稱為SCM)或硬件密碼組件(簡稱為HCM)來實現。HCM從本質上來說是一個包含某些敏感信息,能自主完成特定功能的黑盒子;外界不能訪問其中的敏感信息,亦不能干予其中正在執行或即將執行的運算任務。黑盒子可以通過嚴格定義的接口和外界進行交互,接口在黑盒子的完全控制之下。任何企圖通過物理手段探測黑盒子內部的行為都將導致其中敏感信息的完全清除。

從抽象角度,可以用如下方式描述HCM。

符號和定義:

X——敏感信息,其明文不能以任何形式出現在HCM之外;

E(X)——敏感信息X的秘文;

Fi(X,Y)——HCM用其保存的敏感信息X和外界輸入的信息Y完成某項功能,如簽名、加密和解密等其它特定功能。HCM的N項功能可以用集合{ Fi(X,Y)|1≤i≤N }表示。

Ui——某個HCM的用戶,其全部M個用戶可以用集合{ Ui |1≤i≤M }表示。

Zij——表示用戶Ui對HCM的功能Fj(X,Y)的權限信息。Zij=0表示用戶沒有權限,Zij=1表示用戶擁有權限。

則HCM可用一個五元函數G(E(X),Y,Fj,Ui,Zij)表示,其定義如下:

從應用角度來看,HCM是一個由軟硬件組成的安全計算系統,其系統結構如圖1所示。整個HCM總體上可以分為兩大部分,即軟件部分和硬件部分。在形式上,硬件部分體現為一個硬件實體,而軟件部分則是與此硬件實體相配套的驅動程序、動態庫等軟件包。硬件部分進一步可細分為底層硬件電路、初始引導固件、操作系統或控制程序固件、密碼算法庫、內部功能固件等幾部分。軟件部分由接口驅動系統、用戶應用編程接口和標準應用編程接口組成。其中標準應用編程接口是指按照某些業界接口標準,如PKCS#11、CSP等進一步對用戶應用編程接口進行封裝,以方便上層應用系統的調用。標準應用編程接口并非所有 HCM所必需,所以用虛框表示。

硬件密碼組件的硬件結構、作用及實現應用設計

2 硬件密碼組件與軟件密碼組件的對比

軟件密碼組件是指密碼技術的軟件實現。與HCM比較,SCM開發周期短,開發成本低,使用維護方便,這是其優點。但在自身安全性和實現安全功能方面,HCM則具有優勢,這主要體現在以下幾個方面。

(1)完整性保護

HCM的完整性和運行時的保密性可以得到很好的保證,而SCM的完整性和運行時的保密性則很難得到保證。HCM由硬件和硬件之上的固件組成,硬件中的密碼算法芯片一般采用反熔絲的FPGA或ASIC實現,難以破讀或更改。固件則通過燒錄器寫入到Flash芯片,不能非法改寫。另外,HCM 中的RAM空間由其專用,外部程序不能對其進行訪問;SCM一般保存在計算機的硬盤上,運行時調入系統內存運行。由于計算機系統本身的安全性不高,因此硬盤上或內存中的SCM都可能被攻擊者、病毒程序或黑客程序篡改。另外,SCM運行時占用的內存空間雖然受到操作系統的保護,但不能保證其不被其它進程訪問,這樣SCM運行時所需的敏感信息或運行中產生的敏感信息就可能泄露。

(2)對商用操作系統安全性的依賴

SCM運行時需要操作系統提供的支持,而HCM本身構成了完整的運行環境,無需依賴操作系統等其它外部支持。由于操作系統往往存在某些漏洞,這些漏洞若被攻擊者利用,就可能會給SCM帶來嚴重的安全問題。

(3)抵抗能量分析攻擊

進行密碼運算時總要消耗運算設備一定的能量,攻擊者通過收集能量值,就可能計算出密碼運算時所采用的密鑰值。特別是在進行運算量很大的?RSA簽名時,這種基于能量的攻擊更容易得到簽名私鑰。SCM對于這種攻擊是脆弱的;而HCM則可以通過特別措施來防止攻擊者收集能量值,從而抵御能量攻擊。

(4)種子密鑰的保存

安全的保存種子密鑰對SCM是非常困難的。種子密鑰需要長期保存,對整個系統安全至關重要。對于SCM來說,種子密鑰只能保存在計算機的硬盤上,顯然保存種子密鑰的明文是非常不安全的。一般采用的辦法是通過一個口令加密種子密鑰,然后保存種子密鑰的密文。每當用戶使用種子密鑰時,需要輸入口令。但這樣亦是不安全的,首先這就要求有用戶在場,才可使用種子密鑰,否則就不能使用。其次用戶往往會選擇容易記憶的簡單口令,這使其容易被攻擊者猜測。

(5)安全地進行密碼操作

在HCM中可以安全地進行密鑰生成(公鑰密鑰對、會話密鑰)、加密、解密、簽名等操作,同時保證加解密密鑰和簽名私鑰的安全性;而在SCM 中進行這些操作時,則存在泄露這些密鑰的可能性。

(6)密碼算法實現的效率

在HCM中通過專用的密碼運算器,如公鑰協處理器和專用對稱算法芯片可以大大提高對稱算法和非對稱算法的運算速度;而SCM密碼運算的速度則依賴于計算機系統的效率。這使得目前SCM中密碼算法的運算速度往往低于HCM的實現速度。

(7)逆向工程攻擊

SCM保存在計算機硬盤或內存中,而一般的計算機對硬盤和內存的保護是非常脆弱的,因此它容易受到逆向工程攻擊。

SCM的基本組成如圖2所示。SCM用到的數據包括敏感數據和一般數據。敏感數據是指密鑰、用戶PIN碼等數據。SCM的程序邏輯可分為密碼算法(對稱和非對稱的)、密碼協議(例如SSL、IPSEC等)以及其它程序控制邏輯。利用逆向工程的工具和技術,攻擊者可以監控程序的輸入和輸出,從而獲得用戶口令等敏感信息;其次攻擊者還可以掃描程序數據區,得到密鑰、口令信息;另外攻擊者對程序的運行邏輯進行跟蹤,可以得到密碼算法和密碼協議的運行軌跡,特別是如果算法和協議不是公開的,而是保密的,這時攻擊者可以得到重要信息。而且攻擊者還可以進一步修改軟件執行邏輯,制造“后門”。

逆向工程工具可以分為兩大類:第一類是為獲得程序的運行邏輯,反匯編、反編譯工具屬于此類;第二類是為獲得程序實時的運行信息,仿真、調試工具屬于此類。IDA Pro是目前最有效的反匯編工具。它可以自動對目標代碼進行分析,自動檢測Win32 API功能調用,并能建立這些調用之間的關聯。IDA Pro還能以交互方式運行,攻擊者可以告訴IDA Pro某些程序片斷是帶何種參數的API調用,從而提高IDA Pro的分析能力。另外IDA Pro還有腳本語言,攻擊者可以用該語言編寫能夠進行反匯編的小程序。W32Dasm是另一個著名的反匯編自由軟件,同時它是一個功能強大的調試器,可以獲取程序運行的實時信息。Java是目前最流行的網絡編程語言,Java源代碼經過匯編成為Java字節代碼。這種代碼不同于一般的匯編代碼,它具有唯一性,獨立于底層的處理器。這就意味著Java源代碼和Java字節代碼之間幾乎存在著一一對應的關系,所以Java類文件可以很容易反編譯成Java源文件。互聯網上有很多專門完成這項功能的工具軟件。另一個類C反編譯工具是REC,它可以輸出可讀性較好、容易理解的反編譯結果。

利用仿真、調試工具可以建立軟件的模擬運行環境,在這個環境中通過實時觀察各種變量、內存和寄存器的變化情況,從而獲得較為準確的程序運行信息。最著名的調試工具是SoftICE。利用該軟件對在操作系統內核層運行的驅動程序都可以進行跟蹤調試。Microsoft Visual Studio亦提供了功能強大的調試環境,不過它主要是對在操作系統用戶層運行的程序進行仿真跟蹤。

(8)密鑰的隨機性保證

在HCM一般都有物理噪聲源,可以產生真隨機數,以此為種子可以產生高質量的隨機大素數、公鑰密鑰對和會話密鑰;而在SCM中沒有物理噪聲源,只有取系統時鐘、用戶擊鍵頻率等作為隨機因素,由此生成的公鑰密鑰對和會話密鑰的隨機性很難保證。

(9)物理暴露與密封

普通的計算機在物理上是暴露的,攻擊者可以輕易地進行系統重啟、修改硬盤文件,安裝黑客軟件等攻擊操作。甚至攻擊者還可以將整臺機器“盜走”,據為已有。另外,普通計算機上的系統主板等電路沒有防護措施,攻擊者可以利用邏輯分析儀等其它工具對印刷電路板上的芯片進行偵測、記錄。當密鑰在芯片之間傳遞時就可能被攻擊者獲取。而HCM有物理防護措施,其關鍵電路在物理上被密封,避免被攻擊者探測。如果強行打開物理密封,則會導致系統自毀或敏感數據完全清除,從而保證了HCM在物理攻擊下的安全性。

(10)備份與災難恢復

對于重要的信息系統,備份與災難恢復機制是必不可少的。這就需要把關鍵數據復制,分散保存在不同地方。但如何保障這些數據不被竊取、修改和盜用呢?單單利用SCM不能很好地解決這個問題,而采用HCM則可構建安全可靠的數據備份與恢復系統。

(11)可靠的時間戳服務

時間戳在密碼系統中的應用越來越廣,最初使用時間戳是用來保證認證和密鑰協商協議中傳遞消息的新鮮性。目前隨著網上電子商務的不斷發展,在傳統信息的保密性、身份的真實性、內容的完整性和數據的不可抵賴性等安全要求之外,還要解決信息的時效性問題,這主要有兩方面的含義。

① 保證信息的時效性。對于像商業情報、專利發明等對時間敏感的信息,通過申請時間戳,可以證明你在某一時刻擁有這一信息。

② 保證操作有時效性。對于像竟標、竟拍等對時間敏感的活動,通過申請時間戳,可以證明你在某一時刻完成了這項活動。

在HCM中可以包含精確的時鐘部件,它可以獨立可靠地為系統提供準確時間信息。而SCM本身不能產生時間信息,只能取計算機的系統時間,顯然這是不可靠的;或者從專門的時間提供系統獲取時間信息。

3 硬件密碼組件的硬件結構

典型的硬件密碼組件結構如圖3所示。基本組成部件由中央處理器與外圍接口、隨機存儲器、Flash、BBRAM、硬件隨機數發生器、密碼運算協處理器、實時時鐘、總線接口等組成。其中Flash保存所有固件和部分加密敏感信息,BBRAM作為安全存儲器保存敏感信息明文。硬件控制邏輯通過大規模的可編程邏輯陣列CPLD實現。另有物理安全檢測與反應電路,負責檢測物理攻擊,并及時向中央處理器發出攻擊反應觸發信號。以上部件包含在硬件安全邊界之內,通過加裝物理密封層保證整個系統的物理安全性。在安全邊界之外有長效電池作為后備電源。

HCM在物理上主要從以下幾個方面區別于一般的硬件系統。

① HCM內部有安全存儲部件,其中保存敏感信息,這些信息不會以任何形式出現在HCM外部。安全存儲部件只能由HCM自己訪問,其它任何形式的訪問都會導致所有敏感信息的完全清除。普通的硬件系統沒有這樣的安全存儲部件。

② HCM有物理安全邊界,它可以阻斷對HCM的物理攻擊。普通的硬件系統沒有這樣的密封裝置,攻擊者可以對其中的信號進行多種形式的探測。

③ 在密碼算法和協議本身沒有安全漏洞的前提下,其安全性主要取決于密鑰的長度和隨機性。密鑰的長度可以提前確定,如1024位或更高的2048位的RSA密鑰,128位的對稱算法密鑰;而要生成具有高度隨機性的密鑰就必須有安全的隨機信源。因此HCM中必須有硬件隨機數發生器,為系統提供真隨機數。普通的硬件系統一般沒有專門的硬件隨機數發生器。

④ 為了獲得較高的密碼運算效率,HCM內部往往有專門的密碼運算協處理器。普通的硬件系統主要通過軟件實現各種密碼算法和協議,其效率主要依賴于系統CPU?性能。

為了增加安全性,HCM往往會有多個物理接口和外界通信,每個接口完成特定的功能。例如,具有PCI接口、USB接口、以太網接口和 RS232接口的HCM,其每個接口分別完成以下功能。

① PCI接口:向上層用戶提供HCM的各種密碼服務功能,如加密、解密、簽名、驗證或其它特定應用執行結果。

② USB接口:HCM對操作員身份進行驗證時,操作員將標識其身份的USB電子TOKEN插入USB接口,即提供操作員身份認證的物理通道。

③?以太網接口:通過該接口,可以在網絡上對HCM進行遠程配置和管理。另外,還可以向遠端用戶提供密碼服務。

④ RS232接口:通過該接口可以對HCM進行本地配置和管理。

結 語

硬件密碼組件是信息安全系統的核心部件,是嵌入式硬件設計技術與密碼理論結合的成果。目前國內的硬件密碼組件設計技術與國外相比還有差距,這為商用嵌入式系統的研發廠商進入信息安全領域提供了良好的機遇。希望本文能對此起到拋磚引玉的作用。

責任編輯:gt

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446052.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446052.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446052.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sql倒序查詢語句_SQL丨1.基本查詢語句復習

此為自用查詢語句1.selectSELECT column1,column2 FROM table1;常用的格式慣例:大寫了SELECT和FROM,而將表名和列名小寫;通常在列名中使用下劃線,避免使用空格;在每個語句末尾添加分號;SQL不區分大小寫。2.…

基于區塊鏈的檔案共享 項目啟動

注意事項 已經備份了一個配置fabric的完整ubuntu系統,其需要注意的細節如下1,此鏡像系統需要配置host文件,sudo vim /etc/hosts,添加如下內容127.0.0.1 orderer.example.com peer0.org1.example.com peer1.org1.example.c…

知道一點怎么設直線方程_【初中數學】反比例函數策略(二) ——構造方程法...

【相關閱讀】【初中數學】反比例函數策略之一 ——數形結合反比例函數策略(二)——構造方程法(王 橋)上一次,咱們探討了解決反比例函數的策略一——數形結合,本節課我們繼續反比例函數的策略(二)——構造方程法。構造方程法,在《春季攻勢》第…

音視頻處理 C語言編譯器

命令 gcc/clang -g -O2 -o test test.c -I ... -L ... -lgcc Linux環境下的命令;clang是MAC環境下的執行命令-g 輸出文件中的調試信息-O 對輸出文件進行指令優化-o 輸出文件,可執行文件-I 指定頭文件,大寫的i 從-I 開始 是鏈接內容&#x…

wpf將文字轉化為圖形_將創新轉化為實際應用

Worldsensing是全球公認的物聯網先驅。這家位于西班牙巴塞羅那的技術供應商成立于2008年,為城市和傳統行業提供運營情報。伊格納西維拉霍薩納(IgnasiVilajosana)是公司聯合創始人兼首席執行官。伊格納西擁有西班牙巴塞羅那大學物理學博士學位,還接受過美…

音視頻處理 FFmpeg相關內容介紹 以及八大

FFmpeg的介紹 FFmpeg由Fabrice Bellard于2000年創建,由C和匯編語言進行開發FF -> Fast Forward 快進mpeg -> 標準化組織 Moving Pictures Experts Group使用到FFmpeg的開源項目gstreamer: a framework for streaming mediachromiummpv: Command line video pl…

python開發wince軟件_Wince6.0應用開發:二、模擬器的使用

上一篇我們只是搭建我們的開發平臺,那么下面我們結合之前安裝的Wince6.0模擬器進行簡單的開發,來了解一個操作流程一直寫的東西都是很直白的,(*^__^*) 嘻嘻……一、連接上我們的模擬器1、打開vs2008,選擇工具---->設備仿真器管…

python預測股票價格tushare_用tushare對股票進行簡單分析

用tushare對股票進行簡單分析(僅供交流學習)import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport tushare as ts#使用tushare 獲取每只股票的行情數據df ts.get_k_data(‘600519’,start‘2008-01-01’)print(type(df))df.to_csv(‘600519.csv’)df …

音視頻處理 基礎開發 語言基礎

基礎開發內容 Vim編譯器C語言回顧,重點介紹指針的概念Linux/MAC C語言的編譯和調試Linux/MAC 常用開發工具介紹 Vim編譯器 命令模式 拷貝 刪除 粘貼等,通過i / a 等切換到編輯模式編輯模式 編輯字符,通過ESC進行切換常用命令 創建文件 vim …

python 人氣高的項目_給大家推薦:五個Python小項目,Github上的人氣很高的!

1.深度學習框架 PytorchPyTorch 是一個 Torch7 團隊開源的 Python 優先的深度學習框架,提供兩個高級功能:● 強大的 GPU 加速 Tensor 計算(類似 numpy)● 構建基于 tape 的自動升級系統上的深度神經網絡● 你可以重用你喜歡的 python 包,如 n…

音視頻處理 ffmpeg下載、編譯和安裝

創建文件夾 ffmpeg_sources 存放源文件ffmpeg_build 構建文件并安裝庫bin 存放二進制可執行文件 安裝依賴環境 整體安裝 sudo apt-get update -qq && sudo apt-get -y install \autoconf \automake \build-essential \cmake \git-core…

CLion配置 鼠標滾輪 放大和縮小

操作 點擊File -> Settings點擊Appearance & Behavior -> Keymap在搜索框搜索 font 選擇 Decrease FontSize ,右鍵點擊,選擇add Mouse Shortcut,按住ctrl,同時向下滑動滾輪;同理,操作 Increase…

struts2通配符_基于Struts2框架的名片管理系統

本篇博文將分享一款基于Struts2框架的名片管理系統,JSP引擎為Tomcat9.0,數據庫采用的是MySQL5.5,集成開發環境為Eclipse IDE for Java EE Developers。名片管理系統主要包括用戶管理和名片管理功能。用戶功能主要包括:用戶注冊、用…

音視頻處理 Clion搭建ffmpeg開發環境

參考鏈接 Ubuntu 20.04 搭建 CLion FFmpeg 開發環境_TYYJ-洪偉的博客-CSDN博客 安裝CLion 首先到 jetbrains 官網 https://www.jetbrains.com/clion/ 下載 CLion 安裝包 CLion-2021.1.tar.gz使用finalshell和ubuntu之間配置ssh鏈接將Clion-2022.1.tar.gz 使用move移動到 /hom…

python安裝好的界面_手把手教你配置最漂亮的PyCharm界面,Python程序員必備!

高逼格超美的IDE界面,是每個程序員的夢想!隨著人工智能/機器學習的興起,Python作為一門“漂亮的語言”,再次獲得廣大程序員的關注。而JetBrains出品的PyCharm無疑是最好用的Python IDE之一。俗話說“工欲善其事,必先利…

音視頻處理 ffmpeg中級開發 H264編碼

開發介紹 libavcodec/avcodec.h常用的數據結構 AVCodec 編碼器結構體AVCodecContext 編碼器上下文AVFrame 解碼后的幀結構體內存的分配和釋放 av_frame_alloc 申請av_frame_free() 釋放avcodec_alloc_context3() 創建編碼器上下文avcodec_free_context() 釋放編碼器上下文解碼…

微信公眾號python人工智能回復_python實現微信機器人: 登錄微信、消息接收、自動回復功能...

安裝wxpypip install -u wxpy登錄微信# 導入模塊from wxpy import *# 初始化機器人,掃碼登陸bot bot()運行以上代碼,會生成一個二維碼,通過圖片掃描二維碼即可登錄微信。如果是在服務器上運行代碼,無法顯示圖片的時候&#xff0c…

音視頻處理 ffmpeg中級開發 視頻轉圖片

操作流程 目的:使用FFmpeg將視頻的每一幀數據轉換為圖片1,打開輸入的多媒體文件,檢索多媒體文件中的流信息2,查找視頻流的索引號,通過索引號獲取數據流;通過解析視頻流中的編碼參數得到解碼器ID&#xff0…

python非阻塞多線程socket_Python實現web服務器之 單進程單線程非阻塞實現并發及其原理...

在Python實現web服務器入門學習多進程、多線程實現并發HTTP服務器中,我們知道可以分別通過多進程、多線程的方式實現并發服務器,那么,是否可以通過單進程單線程的程序實現類似功能呢?實際上,在Python多任務學習分別通過yield關鍵…

企業知識庫與知識管理:如何統一戰略與實踐

在知識密集型的現代企業中,知識已經成為了一種寶貴的資產。如何有效地管理和利用這一資產,成為企業持續發展與創新的關鍵。企業知識庫與知識管理作為知識經濟的兩大支柱,它們的重要性不言而喻。但很多時候,我們發現企業的知識管理…