交易鑒權(quán)之軟證書與硬 ukey
最近一直在思考交易鑒權(quán)以及對(duì)于交易有效性舉證的問題,記下來對(duì)此的一些知識(shí)點(diǎn)與思考,希望能拋磚引玉。其中涉及到《電子簽名法》的部分內(nèi)容,雖然我的大學(xué)專業(yè)中也帶了一個(gè)“法”字,但是畢竟是“法語”不是“法律”。也和幾位做法務(wù)領(lǐng)域的朋友交流過,但是《電子簽名法》相對(duì)小眾且新潮,歡迎各位有《電子簽名法》實(shí)操經(jīng)驗(yàn)的法務(wù)大神吐槽。
一、目前的交易鑒權(quán)模式
其實(shí)這一段純碎是為了湊字?jǐn)?shù),我想任何一個(gè)做 PM 的同學(xué)都會(huì)說上絕大多目前市面上廣泛使用的交易鑒權(quán)方式。
1. 賬號(hào)+密碼
賬號(hào)+密碼是目前最普遍的驗(yàn)證方式,還有的業(yè)務(wù)會(huì)增加交易密碼二次驗(yàn)證。方案很成熟,也很基礎(chǔ)。借用在討論交易安全時(shí),我們的一個(gè)資深開發(fā)小哥哥的一句話來證明:(在我們說了問題之后,小哥哥默默的來了一句)我對(duì)我的編程生涯第一次產(chǎn)生了懷疑,難道我連登陸系統(tǒng)都寫不了了么?賬號(hào)+密碼的方案用戶接受程度最高,可以作為登陸等非關(guān)鍵操作的驗(yàn)證方式。
對(duì)于這一塊,我曾經(jīng)在《互金產(chǎn)品基礎(chǔ)知識(shí)(三)作為 P2P 產(chǎn)品經(jīng)理,你要知道的融資端風(fēng)控問題》[1]寫到一些。
2. 密碼控件
作為上一種鑒權(quán)方式的加強(qiáng)版,通過使用密碼控件來在保證密碼輸入框安全,保證密碼不被竊取:軟鍵盤防止鍵盤監(jiān)聽、星號(hào)顯示防止被偷看;加密傳輸防止網(wǎng)絡(luò)竊取。目前主要的廠商有科籃、飛天等。
但是安全控件兼容性差,必須用 windows+IE 瀏覽器,且無法應(yīng)對(duì)鍵盤記錄器等木馬(當(dāng)然,有一些安全控件還有軟鍵盤功能),隨著目前賬號(hào)風(fēng)控體系的完善,已經(jīng)很少有系統(tǒng)在使用了。先不考慮。
3. 生物識(shí)別
主要利用指紋、人臉、虹膜等不可變的生物特征進(jìn)行識(shí)別。目前比較廣泛的是指紋和人臉識(shí)別。
隨著各種生物識(shí)別設(shè)備的普及被竊概率不斷增加,且生物特征不可變更,識(shí)別準(zhǔn)確率不高。之前有過通過三張照片,小視頻之類的突破銀行存管開戶的案例。不過作為一個(gè)發(fā)展中的技術(shù),我相信生物識(shí)別的能力會(huì)越來越強(qiáng)。
4. 圖形驗(yàn)證碼
圖形驗(yàn)證碼并不是一個(gè)狹義的交易鑒權(quán)方案,它只能算是人機(jī)對(duì)抗、過濾機(jī)器人(虛假用戶)的一個(gè)方案。
圖形驗(yàn)證碼存在著一個(gè)天然的悖論:太簡單會(huì)被機(jī)器破解起不到過濾作用,太復(fù)雜則會(huì)給真實(shí)用戶帶來影響;另外隨著現(xiàn)在機(jī)器學(xué)習(xí)圖片識(shí)別技術(shù)的發(fā)展,圖形驗(yàn)證碼(包括其變種模式)已經(jīng)越來越難起到作用。還有就是現(xiàn)在的打碼平臺(tái),本質(zhì)就是個(gè)人在輸入驗(yàn)證碼,單純依靠圖形驗(yàn)證碼(不考慮其他輔助措施,比如ip風(fēng)控、機(jī)器指紋識(shí)別等)怎么來過濾。
5. 手機(jī)驗(yàn)證碼
手機(jī)驗(yàn)證碼是目前比較廣泛的鑒權(quán)方案,但是手機(jī)病毒、偽基站、盜換/復(fù)制 SIM 卡等辦法都可以進(jìn)行攻擊。當(dāng)然隨著 GSM 網(wǎng)絡(luò)的退網(wǎng),偽基站和復(fù)制 SIM 卡的方法可能會(huì)絕技,但是手機(jī)病毒多半估計(jì)無法徹底滅絕。
人民銀行辦公廳曾經(jīng)在2016年專門下發(fā)過《金融業(yè)信息安全風(fēng)險(xiǎn)提示》,提示手機(jī)驗(yàn)證碼短信被黑客攔截的手段、風(fēng)險(xiǎn)和后果。
6. 動(dòng)態(tài)密碼鎖
就是將軍令那種東西, HOTP 事件同步或 TOTP 事件同步,一次性口令生成。我曾經(jīng)寫過《給產(chǎn)品經(jīng)理講技術(shù)-Google驗(yàn)證的原理及應(yīng)用場(chǎng)景》[2],有興趣的可以去看看。
但是問題也很明顯:需要多攜帶一個(gè)設(shè)備(口令工具)或多安裝一個(gè) app,另外目前眾多算法已經(jīng)被公開,安全性較差。
7. 動(dòng)態(tài)口令卡
就是一張卡片,每張動(dòng)態(tài)口令卡覆蓋有若干個(gè)不同的密碼。在啟用動(dòng)態(tài)口令卡后,進(jìn)行交易時(shí),需按順序輸入動(dòng)態(tài)口令卡上的密碼。
這東西絕對(duì)是逆歷史潮流的,每張口令卡覆蓋的密碼有限,每個(gè)密碼只可以使用一次。用盡后需要重新更換,局限性大。除非你家公司可以在全國任何一個(gè)縣鄉(xiāng)都有點(diǎn)(比如國有大銀行爸爸們),否則你還是不要想了。另外密碼都在口令卡上以明文方式存在,容易泄漏。
8. 數(shù)字證書
數(shù)字證書是用于公開秘鑰基礎(chǔ)建設(shè)(PKI 體系)的電子文件,用來證明公開密鑰擁有者的身份。此文件包含了公鑰信息、擁有者身份信息(主體)、以及數(shù)字證書認(rèn)證機(jī)構(gòu)(發(fā)行者)對(duì)這份文件的數(shù)字簽名,以保證這個(gè)文件的整體內(nèi)容正確無誤。擁有者憑著此文件,可向計(jì)算機(jī)系統(tǒng)或其他用戶表明身份,從而對(duì)方獲得信任并授權(quán)訪問或使用某些敏感的計(jì)算機(jī)服務(wù)。
計(jì)算機(jī)系統(tǒng)或其他用戶可以透過一定的程序核實(shí)證書上的內(nèi)容,包括證書有否過期、數(shù)字簽名是否有效,如果你信任簽發(fā)的機(jī)構(gòu),就可以信任證書上的密鑰,憑公鑰加密與擁有者進(jìn)行可靠的通信。
數(shù)字證書的其中一個(gè)最主要好處是在認(rèn)證擁有者身份期間,擁有者的敏感個(gè)人數(shù)據(jù)(如出生日期、身份證號(hào)碼等)并不會(huì)傳輸至索取數(shù)據(jù)者的計(jì)算機(jī)系統(tǒng)上。透過這種數(shù)據(jù)交換模式,擁有者既可證實(shí)自己的身份,亦不用過度披露個(gè)人數(shù)據(jù),對(duì)保障計(jì)算機(jī)服務(wù)訪問雙方皆有好處。
數(shù)字證書必須存儲(chǔ)在指定的安全位置中,比如注冊(cè)表、本地或遠(yuǎn)程計(jì)算機(jī)、磁盤文件、數(shù)據(jù)庫、目錄服務(wù)、智能設(shè)備或其他位置。
二、關(guān)于數(shù)字證書
在以上幾種鑒權(quán)的方式中,認(rèn)證效力最高、最安全的應(yīng)該數(shù)字證書了。那數(shù)字證書是怎么來的呢?和我們文章標(biāo)題所說的軟證書和硬 key 又有什么關(guān)系呢?
我從網(wǎng)上找到一張圖來說明數(shù)字證書的產(chǎn)生:
用戶向 RA 申請(qǐng)證書;RA 對(duì)用戶提交的信息進(jìn)行核實(shí)后向 CA 提出注冊(cè)請(qǐng)求。CA建立對(duì)于該用戶的注冊(cè),并將注冊(cè)建立結(jié)果返回給RA。
RA將注冊(cè)結(jié)果通知用戶,注冊(cè)結(jié)果中包含了兩組數(shù)字,分別稱為“參考號(hào)”和“授權(quán)碼”。(兩碼)
用戶方的軟件生成一對(duì)公鑰和私鑰。用戶向CA提出證書請(qǐng)求,這個(gè)請(qǐng)求信息中還包含了用戶的公鑰和用戶的可甄別名等信息,這些信息在CA創(chuàng)建證書時(shí)要用到。
CA創(chuàng)建該用戶的數(shù)字證書。通過適當(dāng)方式將證書分發(fā)給用戶,適當(dāng)?shù)姆绞桨ǎ篛ut-of-band Distribution帶外分發(fā)、In-band distribution帶內(nèi)分發(fā)等多種概念,就不展開了,有興趣的可以私聊。
——(來源:《CFCA 數(shù)字證書的存儲(chǔ)和USBKey的安全性》[3])
數(shù)字證書是在PKI體系框架下公鑰的表現(xiàn)形式。那么數(shù)字證書和私鑰到底存儲(chǔ)在哪里呢?這就引出了我們今天的題目:軟證書和硬 key 。
我們所說的軟證書和硬 key 其實(shí)指的是我們數(shù)字證書和私鑰存儲(chǔ)在哪里的問題。
軟證書一般是將文件存放在電腦/移動(dòng)設(shè)備的指定位置里,比如 Windows 會(huì)將數(shù)字證書存儲(chǔ)在注冊(cè)表(HKLM(HKCC)SoftwareMicrosoftSystemCertificates)和用戶配置文件(%USERPROFILE%Application DataMicrosoftSystemCertificatesMy)中。而對(duì)應(yīng)的私鑰存處在用戶配置文件(計(jì)算機(jī):%ALLUSERSPROFILE%Application DataMicrosoftCryptoRSA(DSS)Machine Keys;用戶:%USERPROFILE%Application DataMicrosoftCryptoRSA(DSS))中。 大家有興趣可以去找找。
而硬 key 則是將私鑰和數(shù)字證書導(dǎo)入到設(shè)備中。這個(gè)設(shè)備內(nèi)置單片機(jī)或智能卡芯片,可以存儲(chǔ)用戶的密鑰或數(shù)字證書。
這兩種存儲(chǔ)方式只要是安全性的差別:
軟證書是以文件形式保存的,并且可以標(biāo)記允許再次導(dǎo)出,極易受到木馬等攻擊。另外,軟證書不強(qiáng)制用戶設(shè)置證書使用口令,其他人登錄同一臺(tái)電腦就可以直接使用。曾經(jīng)出現(xiàn)過銀行軟證書被攻破的案例,大部分銀行在 2008 年以后逐步取消了軟證書的網(wǎng)上支付功能。
硬證書則是以UKey移動(dòng)設(shè)備為載體,通過 PIN 碼保護(hù) key,且密鑰一旦導(dǎo)入 USB-KEY 中,及不可被導(dǎo)出。(甚至無法刪除,我和 CFCA 的技術(shù)支持確認(rèn)過這件事,除非我使用專用軟件格式化掉這個(gè) Ukey。)
在推薦國標(biāo) GB/T 25065-2010 《信息安全技術(shù)公鑰基礎(chǔ)設(shè)施簽名生成應(yīng)用程序的安全要求》中也提到安全簽名生成設(shè)備 SSCD(用來存放簽名人的電子簽名制作數(shù)據(jù),驗(yàn)證簽名人鑒別數(shù)據(jù),使用電子簽名制作數(shù)據(jù)產(chǎn)生電子簽名)需要是:
- 智能卡
- USB 令牌
- PCMCIA 令牌
- 并應(yīng)符合國家密碼主管部門的相關(guān)要求。
另外,目前第三方電子合同平臺(tái)大部分采用的是云托管證書的方案,秘鑰在云端存儲(chǔ),不需要任何介質(zhì),只需要通過口令(比如密碼或者短信驗(yàn)證碼)就可以隨時(shí)隨地的進(jìn)行簽名。(說實(shí)話,考慮到頭部公司的技術(shù)實(shí)力,我覺得這種方案都比軟證書安全,畢竟秘鑰是存在一個(gè)有著相應(yīng)技術(shù)能力維護(hù)的服務(wù)器上,而不是存在一些完全不懂電腦的普通人的電腦里。)
我們知道基于密碼或短信驗(yàn)證碼屬于弱身份認(rèn)證手段,攻擊門檻低,容易發(fā)生秘鑰泄露的事件。同時(shí)第三方電子合同平臺(tái)作為托管方理論上(不考慮內(nèi)控、法律和道德)在一定利益的驅(qū)使下是有條件冒充用戶替客戶簽名的。
從國密局至今只為一家云托管方案發(fā)放了商用密碼產(chǎn)品型號(hào)證書來看,這個(gè)行業(yè)還無法滿足可靠電子簽名的一些條件。(當(dāng)然我們也應(yīng)該看到這些第三方電子合同廠商做的努力,通過完善證據(jù)鏈來修補(bǔ)可靠數(shù)字簽名的瑕疵,不加這句話我是不是會(huì)被電子合同廠商的朋友們罵死……)
另外,國密算法證書標(biāo)注啟用后,國家密碼局強(qiáng)制要求不再提供軟證書哦。(現(xiàn)在很多金融領(lǐng)域已經(jīng)被監(jiān)管要求將加密方式轉(zhuǎn)向國密標(biāo)準(zhǔn),主要是為了自主可控,這可不是為了什么特色,而是真的有必要。詳見 NSA 在 RSA 加密算法中安置了后門——RSA BSAFE[4]。)
關(guān)于安全性還有個(gè)一個(gè)例子從側(cè)面來印證:某家 CA 廠商(就是你們知道的最牛B 的那個(gè)),在一次交流中說我們給我們發(fā)的軟證書上了保險(xiǎn),出現(xiàn)意外保XX;給 XX 項(xiàng)目上來保險(xiǎn),出現(xiàn)問題保 XX。
我問說你們的硬件 key 賠多少?小哥回答我說,我們沒上保險(xiǎn),因?yàn)閡key 理論上只有可能因?yàn)橛脩舻谋9茉蛟斐蓳p失……
三、講完技術(shù)講法律
理論上說,數(shù)字證書的基本原理是基于非對(duì)稱密碼機(jī)制的 PKI 體系,這個(gè)體系和算法(RSA)都是公開的技術(shù)并不復(fù)雜。Adobe Acrobat 可以很方便的為你的 PDF 增加簽名。
但是!在我國有一部法律叫做《電子簽名法》(其實(shí)包括美國、歐盟等國家和地區(qū)都有相關(guān)的理發(fā)),估計(jì)做互金的小伙伴前段時(shí)間會(huì)被電子合同服務(wù)商的商務(wù)同時(shí)刷屏一波,對(duì)就是最近剛剛修正過的《電子簽名法》。
《電子簽名法》規(guī)定對(duì)于從事電子認(rèn)證服務(wù)的機(jī)構(gòu)采取「資質(zhì)許可」的形式來確保 CA 機(jī)構(gòu)的權(quán)威、公正和可信賴(《電子簽名法》第十八條)。截止2018年4月22日,在工信部網(wǎng)站上公示的電子認(rèn)證服務(wù)機(jī)構(gòu)一共37家。
數(shù)據(jù)來源:工信部-數(shù)據(jù)資料庫-電子認(rèn)證服務(wù)機(jī)構(gòu)設(shè)立審批[5]
同時(shí),它還對(duì)可靠的電子簽名做出了規(guī)定,其中提到:(二)簽署時(shí)電子簽名制作數(shù)據(jù)僅由電子簽名人控制。(《電子簽名法》第十三條)
同時(shí)《電子簽名法》第二十八條:電子簽名人或者電子簽名依賴方因依據(jù)電子認(rèn)證服務(wù)提供者提供的電子簽名認(rèn)證服務(wù)從事民事活動(dòng)遭受損失,電子認(rèn)證服務(wù)提供者不能證明自己無過錯(cuò)的,承擔(dān)賠償責(zé)任。也就是說,電子認(rèn)證服務(wù)提供者需要承擔(dān)的推定過錯(cuò)責(zé)任。
在舉證過程中,電子認(rèn)證服務(wù)者舉證一個(gè) U 盤大小的 key 介質(zhì)似乎要比舉證數(shù)據(jù)文件的所有權(quán)容易也直觀多了。
另外,還有人一直在和我討論自建 CA 是否有效的問題。比如四大行的 CA 體系(中行除外,他們用的 CFCA 的)?!峨娮雍灻ā返谑藯l明確指出:從事電子認(rèn)證服務(wù),應(yīng)當(dāng)向國務(wù)院信息產(chǎn)業(yè)主管部門提出申請(qǐng)……予以許可的,頒發(fā)電子認(rèn)證許可證書……
不過很顯然,他們并沒有工信部的認(rèn)可。那是不是是不合法的呢?
也不盡然,《電子簽名法》第十三條:當(dāng)事人也可以選擇使用符合其約定的可靠條件的電子簽名。第十六條:電子簽名需要第三方認(rèn)證的,由依法設(shè)立的電子認(rèn)證服務(wù)提供者提供認(rèn)證服務(wù)。
針對(duì)這兩條,我發(fā)現(xiàn)不同人的解釋不太一樣,我更傾向于:在雙方認(rèn)可前提下且不需要第三方認(rèn)證的,可以使用自建 CA。更像是一種擦邊球行為,因?yàn)橛腥苏J(rèn)為自建 CA 只能在自己系統(tǒng)內(nèi)部,不如小璋 CA 在小璋集團(tuán)內(nèi)部作為文件簽署使用,而不能向社會(huì)第三方提供服務(wù)。不過咱也不知道,咱也不敢問。《電子簽名法》任重而道遠(yuǎn)啊。
關(guān)于數(shù)字簽名及電子合同,我還有一篇文章,有興趣的可以去看看:【小璋的筆記】電子合同是個(gè)啥[6]
相關(guān)閱讀
[1]《互金產(chǎn)品基礎(chǔ)知識(shí)(三)作為 P2P 產(chǎn)品經(jīng)理,你要知道的融資端風(fēng)控問題》:http://www.codemsi.com/pmd/696772.html
[2]《給產(chǎn)品經(jīng)理講技術(shù)-Google驗(yàn)證的原理及應(yīng)用場(chǎng)景》:http://t.cn/AiN4vEwy
[3]《CFCA 數(shù)字證書的存儲(chǔ)和USBKey的安全性》:http://t.cn/AiN4P7rs
[4] RSA BSAFE:http://t.cn/AiN4P7dv
[5] 工信部-數(shù)據(jù)資料庫-電子認(rèn)證服務(wù)機(jī)構(gòu)設(shè)立審批:http://t.cn/RnMdgKm
[6]【小璋的筆記】電子合同是個(gè)啥:http://www.codemsi.com/pmd/1036833.html
#專欄作家#
張小璋,公眾號(hào):張小璋的碎碎念(ID:SylvainZhang),人人都是產(chǎn)品經(jīng)理專欄作家。野蠻生長的產(chǎn)品經(jīng)理,專注于互聯(lián)網(wǎng)金融領(lǐng)域。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Pexels,基于 CC0 協(xié)議
- 目前還沒評(píng)論,等你發(fā)揮!