
基於可視按鍵型智能密碼鑰匙的交互型電子簽名方案中,簽名設備中內置了SHA-1(安全散列算法)和RSA算法。該簽名設備從上位機中接收指令,根據指令完成各種操作。上位機中安裝有配合簽名設備用的中間件,被調用時生成相應的指令序列並發給簽名設備,通知簽名設備操作。
操作指令執行方法的步驟如下:
步驟1:上位機對簽名設備下發MSE(創建安全環境)指令,來指明簽名設備約定用的簽名算法,這樣才能保證簽名設備完成的簽名操作是上位機能識別的。
上位機下發的指令為所包含的內容為:指令標識、簽名算法標識、密鑰ID。
步驟2:簽名設備接收到MSE指令後,由以上的密鑰ID設置當前用的RSA密鑰。
步驟3:簽名設備向上位機返回預先約定的代表操作成功的狀態碼。
步驟4:因用戶需簽名設備進行簽名操作,故而用戶需由上位機向簽名設下發含待簽名數據的Hash指令。
步驟5:簽名設備接收到待簽名數據後,對待簽名數據進行哈希運算,具體運算為:使用上位機指定的算法對待簽名數據進行運算,並將計算結果緩存在設備內部。
步驟6:向上位機返回操作成功的狀態碼。此時也可把哈希運算結果返回給上位機。
步驟7:上位機向簽名設備下發籤名指令。
步驟8:簽名設備分析接收到的操作指令是不是關鍵操作指令,若該操作指令為關鍵操作指令,則執行步驟9;如果該操作指令為非關鍵操作指令,則執行步驟14。
具體地,關鍵操作指令主要包括簽名指令、生成密鑰指令、刪除密鑰指令、讀取密鑰指令與解密指令;或所說關鍵操作指令為對密鑰進行操作的指令。
步驟9:因簽名操作為關鍵操作,所以簽名設備接收到簽名指令後,需等待用戶輸入確認信號,同時簽名設備還可以執行如下操作:
第一,簽名設備開始計時。
第二,由視頻或音頻播放器提醒用戶輸入確認信號,或指示上位機視頻或音頻播放器提醒用戶輸入確認信號;例如,簽名設備可顺利获得燈光、聲音等方式提示用戶輸入確認信號,上位機也可由簽名設備返回的狀態碼,利用圖像、文字、聲音等方式提醒用戶輸入確認信號。
步驟10:簽名設備判斷是否接收到用戶顺利获得簽名設備輸入的確認信號:若接收到用戶輸入的確認信號,那麼執行步驟13;若無接收到用戶輸入的確認信號,則執行步驟11。
為了保證用戶有操作權限,還可在用戶輸入確認信號之前由簽名設備對用戶身份進行認證。僅有在用戶身份認證顺利获得後才允許用戶輸入確認信號。
步驟11:若上述過程中簽名設備啟動了計時方案,則需判斷計時得到的時間是否超過預定時間;若計時得到的時間超過了預定時間,那麼取消執行接收到的操作指令,簽名設備結束操作,並向上位機返回事先約定的代表操作取消的狀態碼;如果計時得到的時間未超過了預定時間,則執行步驟12。
步驟12:由於上位機收到“需要等待按鍵”的狀態碼後,上位機可向簽名設備反覆發送獲取簽名結果的指令或向簽名設備發送取消簽名的指令;故該過程中需判斷是否接收到上位機發送的獲取簽名結果的指令或取消簽名的指令;如果接收到上位機發送的獲取簽名結果的指令,則返回執行9;若接收到上位機發送的取消簽名的指令,那麼流程結束。
步驟13:簽名設備由MSE指令指定的算法標識,在步驟5中計算得到的散列值前面加上X.509規範定義的算法標識串,再按照PKCS#1補位,對補位後的數據進行RSA運算來得到簽名結果,並同時需向上位機發送該簽名結果,並返回操作成功的狀態碼。
步驟14:直接執行非關鍵操作指令。
