加密機主密鑰(MK——Master Key)
加密機主密鑰是存入在HSM機內(nèi)的由三個成分合成的一對最上層密鑰。在HSM機器以外的地方不會以明文形式存放,它采用雙倍標準DES密鑰(長達112位)實現(xiàn)三重數(shù)據(jù)加密。由于DES算法依靠某一個密鑰進行加密,同時所有密鑰和數(shù)據(jù)都經(jīng)由MK進行加密,所以MK必須通過一種安全的方法生成和維護。MK由三個成分組成,32位十六進制數(shù)為一個成分。MK以密文行書存儲在加密機黑匣子中,且永遠不以明文形式出現(xiàn)。一般說來TMK通過MK加密后保持在數(shù)據(jù)庫中。
終端主密鑰(TMK——Terminal Master Key)
TMK,主要作用是用來驗證工作密鑰是否合法,以及加密TAK、TPK,保證TAK和TPK在傳輸線路上地安全性。一般情況下,TMK是人工在POS設置或者通過IC卡導入,也有可能通過母POS下發(fā)。TMK被寫入密鑰保護芯片,此芯片具有自毀功能,能很好地保護TMK的安全性。TMK是和每一臺POS相關聯(lián)的,即主密鑰和POS設備是一一對應的。TMK又分為明文和密文,由具備銀聯(lián)認可資質(zhì)的服務商下發(fā)(舉例:工商銀行、招商銀行、建設銀行)。如果是密文,則需要先解密,然后校驗,校驗通過后,在本地存儲。
如果終端主密鑰時密文,該如何解密呢?需要用KEK進行解密,那么KEK又是什么呢?KEK為密鑰加密密鑰。
工作密鑰
工作密鑰也稱為數(shù)據(jù)密鑰,包含PIN密鑰,MAC密鑰以及磁道密鑰。在POS每次做簽到交易時,由POS中心下發(fā)給POS。存儲在本地,需要經(jīng)常性地定期更換,通常每天更換一次。
PIN密鑰
終端PIN密鑰是一個數(shù)據(jù)加密用的密鑰,用于加密PIN,什么是PIN呢?PIN就是你的銀行卡密碼。在簽到時,以密文的形式下發(fā)給POS終端,POS機接收到密文后,需要用TMK去解密,然后校驗,校驗通過后,將TPK存儲在專用地密鑰保護芯片里。TPK用于加密在局域網(wǎng)內(nèi)POS終端和POS中心之間傳送地PIN。
TPK的用法:當你在密碼鍵盤上輸入銀行卡密碼時,輸出的是加密后的密文(通過TPK加密),那么在網(wǎng)絡傳輸中,一直都使用該密文,即使被截獲,得到的也是密文。
這里有個注意點,就是校驗。通過校驗KCV,簽到的時候,下發(fā)給POS機的不僅有工作密鑰,還有每個密鑰的checkvalue。
終端認證密鑰(TAK–Terminal Administrative Key)
終端認證密鑰用于計算校驗MAC。MAC是用來完成消息來源正確性鑒別,防止數(shù)據(jù)被篡改或非法用戶切入的數(shù)據(jù)。TAK也同樣是在簽到時,以密文的形式下發(fā)給POS終端,POS機接收到密文后,用TMK終端主密鑰解密,然后校驗,校驗通過后,將TAK存儲在專用的密鑰保護芯片里。TAK用于局域網(wǎng)內(nèi)POS終端與POS中心之間傳送消息時,生成和校驗一個消息認證碼(Message Authentication Code), 從而達到消息認證的目的。TAK需要經(jīng)常性地定期更換,通常每天更換一次。
為什么POS機要簽到?
其實POS協(xié)議的簽到不是單純的開機報到,它是加強整個交互的安全性和可靠性。POS機簽到有兩個目的:一是鏈接主機證明該POS機設備是合法的,二是下載最新的工作密鑰。POS設備硬件芯片在出廠時會設置一個設備ID和一個密鑰。簽到就是POS設備向服務器發(fā)起簽到請求,然后讓服務器返回三個工作密鑰,分別用于加密POS傳輸給服務器的銀行卡的三個信息。三個工作密鑰是通過POS設備硬件芯片內(nèi)的密鑰(在服務器端也有)進行加密的。