PSAM卡相關知識整理

2021-08-15 23:23:19 字數 1727 閱讀 1346

**:

其實,兩者都是卡片,或者說都是從裝置。它們之間是無法相互訪問的。

實際上,psam 卡是作為秘密金鑰的載體,專門執行加密和數字簽名等任務。

從應用的角度來看,終端裝置比如說 atm 機,我們可以把他看作包含 psam 才構成整體。而使用者卡,對 atm 機來說,則是外部裝置。

當需要對使用者卡片進行操作的時候,實際上終端裝置是交替地訪問使用者卡和 psam,按協議流程來完成安全協議規定的操作。

比如說外部認證,是要讓卡片確認終端裝置的合法性(實質上是檢驗它是否持有共享的金鑰):

1 終端裝置向使用者卡傳送取隨機數命令,得到乙個卡片生成的隨機數。

2 終端裝置向 psam 卡傳送乙個加密命令,使其對上述隨機數加密。

3 終端裝置向使用者卡片傳送帶有上述加密結果(密文)的外部認證命令。使用者卡片進行驗證後,確定認證是否成功。如果成功,則可以進行後續的安全操作。

當然,實際的過程還要複雜一些,因為要抗禦暴力攻擊每一次外部認證是要生成乙個過程金鑰的。上述簡化過程是僅僅是為了說明這種交替訪問的情景。

具體的應用規範,都具體規定了各種交易的具體實施步驟,以及卡片和 psam 所支援的命令(可能分布在不同的文字中)。

psam裡儲存乙個母金鑰

要求實現的功能就是:

1、首先psam要根據分散因子能算出乙個子金鑰,但是這個子金鑰只作為臨時金鑰,不能被讀出psam卡外

2、然後再傳送隨機數和資料,psam算出mac後,mac可以被出卡外

標準psam能否實現這樣的功能,母金鑰再寫入psam卡時,要指定哪種用途型別呢

我看過資料psam在支援離線消費方面的流程,是可以專門為這種消費流程計算mac1和mac2的,那象我這種只想簡單的獲取乙個mac的方式行不行呢?

psam安全方式廣泛用於金融系統,我認為其主要特點在於硬體加密,金鑰在硬體中生成,而不用在網路上傳輸。但由此帶來的缺點是,雖然最底層一次一密,似乎比較安全,但最重要的主金鑰,乃至子金鑰在整個過程中都是固定的。

比如臨時工作金鑰的生成過程:伺服器端生成隨機數傳給客戶端(psam卡),利用卡內儲存的子金鑰對隨機數進行des/3des加密,加密過程並不是採用直接加密的形式,而是將金鑰分為左右兩部分,先用左半部分對輸入資料加密,然後用右半部分解密,然後再用左半部分加密,得到生成金鑰的左半部分。右半部分,則取反,然後進行相同的步驟。

開始我們認同des加密是很容易破解的,但已知的破解方法除了窮舉攻擊,其餘的基本需要對大量的明密文對進行分析。也就是說,如果我們在對敏感資訊進行加密的時候注意對敏感資訊的選擇,那麼獲得大量的明密文對是比較困難的。

退一步講,即使成功得到臨時加密金鑰,那是否就意味著子金鑰的不安全呢?現在想,也不一定。採用逆向思考方法,假定已經獲得在網路上明文傳輸的隨機數,將臨時加密金鑰分成左右兩部分,則相當於已知輸入和輸出,求經過兩次加密和一次解密的的左右兩部分金鑰。如果將加密步驟視為進行對映f(x,y),解密視為對映g(x,y),假設輸入(隨機數)為x,輸出(臨時工作金鑰)為y(左半部分為y1,右半部分為y2),子金鑰的左半部分為m,右半部分為n,則相當於已知一下兩個等式:

f(g(f(x,m),n),m) = y1;

f(g(f(-x,m),n),m)=y2;

已知x,y1,y2,求m,n;其中,f,g為des加解密過程。

可見,求解此式是相當困難的,因此,可以如psam規範中所聲稱的,這個過程是不可逆的。so我們可以認為,即使獲得臨時加密金鑰,也是很難推導出子金鑰的,也就是說,通過這種途徑是很難獲得子金鑰,主金鑰的。反過來可以認為,由一次一密產生的臨時工作金鑰也是基本安全的。

PSAM卡檔案結構

psam卡用於商戶pos 網點終端 直聯終端等端末裝置上,負責機具的安全控管。psam卡具有一定的通用性。經過個人化處理的psam卡能在不同的機具上使用。psam 卡支援多級發卡的機制,各級發卡方在卡片主控金鑰和應用主控金鑰的控制下建立檔案和裝載金鑰。psam卡檔案結構符合iso iec7816 4...

XMPP 相關知識整理

xmpp the extensible messaging and presence protocol 中文全稱 可擴充套件通訊和表示協議 簡介 可擴充套件通訊和表示協議 xmpp 可用於服務類實時通訊 表示和需求響應服務中的xml資料元流式傳輸。xmpp以jabber協議為基礎,而jabber是即...

patch,diff相關知識整理

diff 命令列選項 原始檔案 新檔案 幾個常用的選項說明 diff的內容預設輸出到stdout上,所以需要把它重定向到乙個檔案中才能儲存,如下 diff un test0 test1 test1.patch如果是資料夾就加個r 常用 rnu就行 patch 命令列選項 待打補丁的檔案或文件 補丁檔...