在互聯(lián)網(wǎng)上,沒(méi)有人知道你是一條狗。
狗也會(huì)使用鍵盤(pán)輸入你的帳號(hào)密碼,或者使用你的數(shù)字簽名。
直到你擁有一臺(tái)具有生物特征識(shí)別能力的智能手機(jī)。
具有唯一性、可用于身份識(shí)別的生物特征有指紋、聲紋、人臉、眼虹膜,目前智能手機(jī)普遍采用
指紋識(shí)別。
指紋識(shí)別
由于指紋具有唯一性,因此通過(guò)比對(duì)指紋特征即可識(shí)別真實(shí)身份。指紋識(shí)別技術(shù)最早用于識(shí)別罪犯——辦理身份證時(shí),你的指紋已經(jīng)永久存儲(chǔ)在國(guó)家安全部門(mén)的數(shù)據(jù)庫(kù)里。所以,老實(shí)點(diǎn)吧,韓國(guó)整容師也幫不了你。
指紋傳感器負(fù)責(zé)采集指紋特征,當(dāng)你啟用指紋識(shí)別能力時(shí),它會(huì)掃描并存儲(chǔ)你的一個(gè)或多個(gè)手指的指紋特征數(shù)據(jù),用于日后比對(duì)。
智能手機(jī)指紋識(shí)別主要用途是指紋解鎖,免除輸入密碼解鎖手機(jī)的煩惱。密碼太短,容易被人偷窺;密碼太長(zhǎng)更煩惱,而且容易忘記。拿起手機(jī),輕輕撫摸一下指紋傳感器,手機(jī)瞬間解鎖,是不是很爽?
密碼泄漏,換個(gè)密碼即可。但指紋終身不變,無(wú)法更換,一旦泄漏,后果嚴(yán)重。因此,指紋特征數(shù)據(jù)是機(jī)密信息,應(yīng)予特別保護(hù)。
為保護(hù)指紋特征數(shù)據(jù),指紋的采集、存儲(chǔ)和比對(duì)都必須在一個(gè)可信執(zhí)行環(huán)境(Trusted Execution Environment,簡(jiǎn)稱(chēng)TEE)內(nèi)部進(jìn)行。TEE獨(dú)立于智能手機(jī)操作系統(tǒng)之外,也與網(wǎng)絡(luò)絕緣,敏感數(shù)據(jù)只進(jìn)不出,是一只孤傲的鐵公雞。它忠于使命(手機(jī)出廠后TEE的功能規(guī)格無(wú)法變更),嚴(yán)守機(jī)密,是指紋識(shí)別的安全基石。
智能手機(jī)操作系統(tǒng)不能獲取指紋特征數(shù)據(jù),僅能請(qǐng)求TEE執(zhí)行指紋采集、存儲(chǔ)或比對(duì)等預(yù)設(shè)功能,TEE執(zhí)行請(qǐng)求后向操作系統(tǒng)返回“成功”、“失敗”或“錯(cuò)誤”等結(jié)果信息,操作系統(tǒng)根據(jù)結(jié)果信息作出反應(yīng)(例如,指紋比對(duì)成功則解鎖手機(jī),否則請(qǐng)求TEE重試),或把結(jié)果信息反饋給相關(guān)應(yīng)用軟件處理。
方便且安全,似乎很完美。
但是,指紋特征數(shù)據(jù)并非絕對(duì)可控(例如,你喝水的杯子表面有你的指紋,你工作單位或生活社區(qū)門(mén)禁系統(tǒng)服務(wù)器也可能有你的指紋),有心人獲取指紋特征后制作一個(gè)完全相同的手指模型,狗也可能冒充你;
指紋識(shí)別技術(shù)還存在一定的誤識(shí)率(低于1/10000,畢竟大于0);
TEE理論上非常安全可靠,但萬(wàn)一呢?2015年HTC One Max錯(cuò)把用戶(hù)指紋圖形文件備份到手機(jī)不安全區(qū)域,2016年
華為P系列手機(jī)TEE設(shè)計(jì)紕漏致其指紋鎖被黑客攻破……還有誰(shuí)?……
總之,指紋識(shí)別“成功”后,你不一定是你,仍可能是一條狗——盡管只有一丟丟的可能性,畢竟大于0。
為此,智能手機(jī)增設(shè)一套強(qiáng)制安全規(guī)則,必要時(shí)臨時(shí)禁用指紋識(shí)別,要求用戶(hù)輸入解鎖密碼。例如,蘋(píng)果手機(jī)的規(guī)則是,設(shè)置或新增指紋前、開(kāi)機(jī)或重啟動(dòng)后、鎖定48小時(shí)后、156小時(shí)未使用密碼解鎖且4小時(shí)未使用指紋解鎖后、連續(xù)5次指紋識(shí)別失敗或遠(yuǎn)程鎖定后,蘋(píng)果操作系統(tǒng)(iOS)就會(huì)要求你驗(yàn)證一次解鎖密碼。安卓操作系統(tǒng)(android)也有類(lèi)似安全規(guī)則,大同小異。
如果指紋識(shí)別僅用于解鎖手機(jī),以保護(hù)你的敏感數(shù)據(jù)(例如,你與隔壁老王的私密照片或聊天記錄),那么做足以上保護(hù)措施已經(jīng)非常安全了。
但是,你的中國(guó)夢(mèng)決不止于此,也不應(yīng)止于此。當(dāng)你擁有不要密碼的安全手機(jī),很快就會(huì)想要沒(méi)有密碼的安全互聯(lián)網(wǎng)。例如,指紋登錄?指紋支付?感謝你,你的貪婪和懶惰,是推動(dòng)社會(huì)進(jìn)步的動(dòng)力。
指紋支付
或許,你已經(jīng)體驗(yàn)過(guò)指紋支付,甚至相當(dāng)熟悉它了:輕輕撫摸一下指紋傳感器,瞬間支付成功,是不是很爽?與指紋解鎖過(guò)程似乎沒(méi)有區(qū)別,支持指紋解鎖的智能手機(jī),自然就能支持指紋支付,對(duì)吧?
不對(duì)。
指紋解鎖是智能手機(jī)本地確認(rèn)你的身份,指紋支付則是支付服務(wù)提供商(通過(guò)網(wǎng)絡(luò)連接智能手機(jī))遠(yuǎn)程確認(rèn)你的身份。責(zé)任主體、信任鏈條和安全風(fēng)險(xiǎn)等級(jí)全都不一樣,你說(shuō)支持就支持?你咋不上天呢?
支付服務(wù)提供商(微信支付、支付寶、Apple Pay等)首先要問(wèn),你的智能手機(jī)可以信任嗎?萬(wàn)一,智能手機(jī)操作系統(tǒng)被黑客入侵后動(dòng)了手腳,操作系統(tǒng)可能“欺上瞞下”——不向TEE發(fā)出指紋比對(duì)請(qǐng)求,而直接給支付軟件返回指紋比對(duì)結(jié)果——“成功”,意味著指紋識(shí)別系統(tǒng)已被劫持(架空),但支付軟件不知道這事,仍根據(jù)操作系統(tǒng)返回的指紋比對(duì)結(jié)果完成支付,如果導(dǎo)致財(cái)產(chǎn)損失,誰(shuí)的責(zé)任?
支付服務(wù)提供商接著要問(wèn),你的聯(lián)網(wǎng)環(huán)境安全嗎?如果不安全,網(wǎng)絡(luò)傳輸途中被黑客篡改了數(shù)據(jù),如果導(dǎo)致財(cái)產(chǎn)損失,誰(shuí)的責(zé)任?
支付服務(wù)提供商還要問(wèn)你,你的智能手機(jī)是否有他人指紋?例如,你常把手機(jī)給10歲的兒子玩游戲,為了省事,你讓兒子錄入了指紋。你與兒子的指紋都能解鎖手機(jī),但你顯然不會(huì)允許他亂動(dòng)你的微信錢(qián)包,否則他有機(jī)會(huì)讓你一夜回到解放前。
重新回答,指紋支付是不是并沒(méi)有你想象的那么簡(jiǎn)單?無(wú)知?jiǎng)t無(wú)畏,你啥都不知道,在你眼里就啥都很簡(jiǎn)單,不知道網(wǎng)絡(luò)安全專(zhuān)家為了幫你守護(hù)錢(qián)包死了多少腦細(xì)胞。
為保證指紋支付安全,還需要做這三件事:
指紋識(shí)別結(jié)果增加指紋編號(hào)(僅允許開(kāi)通指紋支付所用手指使用指紋支付);
防止偽造指紋比對(duì)結(jié)果(設(shè)備側(cè)信任);
防止虛報(bào)指紋比對(duì)結(jié)果(網(wǎng)絡(luò)側(cè)信任)。
指紋編號(hào)不難解決(需手機(jī)廠商提供支持),但如何防止偽造和虛報(bào)指紋比對(duì)結(jié)果?
答案就是:“數(shù)字簽名”機(jī)制。
數(shù)字簽名
數(shù)字簽名是只有發(fā)送者才能產(chǎn)生的、他人無(wú)法偽造的一段數(shù)字串,這段數(shù)字串同時(shí)也是對(duì)發(fā)送者所發(fā)信息真實(shí)性的可信證明。
聽(tīng)起來(lái)很玄,但如何實(shí)現(xiàn)?你得先知道“非對(duì)稱(chēng)加密”技術(shù)。
加密就是以某種規(guī)則改變?cè)囊陨擅芪?,這套規(guī)則稱(chēng)為加密算法。加密算法必須可逆,以便反向執(zhí)行以恢復(fù)原文,恢復(fù)過(guò)程就是解密。
加密算法必須公開(kāi),否則無(wú)法用于互聯(lián)網(wǎng)。但公開(kāi)算法后,豈不是任何人都可以解密了?別擔(dān)心,加密算法會(huì)引入一個(gè)加密參數(shù),只有知道加密參數(shù)的人,才能解密。加密參數(shù)和解密參數(shù)相同,這個(gè)參數(shù)就是所謂密鑰。你可以把加密算法理解為保險(xiǎn)箱,密鑰則是保險(xiǎn)箱的鑰匙。
問(wèn)題來(lái)了。如何把這把“鑰匙”安全可靠地交給對(duì)方?沒(méi)啥好辦法,只能面交,網(wǎng)絡(luò)傳遞很可能泄漏給第三方。你還必須為每個(gè)接收者設(shè)定不同的密鑰,以及密鑰泄漏后或周期性更換密鑰。很煩,也不靠譜——可能第三方已經(jīng)知道密鑰了,而你和對(duì)方都還蒙在鼓里呢。
辦法總是有的。數(shù)學(xué)家發(fā)明了一種加密算法,它使用兩個(gè)關(guān)聯(lián)密鑰,用任一密鑰加密的密文,必須用另一密鑰解密。這就好辦了:你保留其中一個(gè)密鑰(私鑰),只有天知地知你知,另一個(gè)密鑰則完全公開(kāi)(公鑰)。任何人都可以使用你的公鑰加密,但只有你能解密,因?yàn)榻饷芩杷借€只有你知道,從而輕松實(shí)現(xiàn)保密通信,媽媽再也不用擔(dān)心你的密鑰被狗叼走了。
由于加密和解密使用不同密鑰,它叫非對(duì)稱(chēng)加密算法,它是互聯(lián)網(wǎng)信息安全的核心和基石。
跑題了是不?說(shuō)好的“數(shù)字簽名”呢?你別急,再撐一桿咱就上岸了。
剛才提到,你有一個(gè)全世界所有人都沒(méi)有的東西:你的私鑰。沒(méi)錯(cuò),你就用它給自己所發(fā)信息“簽名”。但你不能曬自己的私鑰,它是見(jiàn)光死的。咋整?
根據(jù)定義,數(shù)字簽名要解決兩個(gè)問(wèn)題,一是發(fā)送者身份(未被冒充),二是信息的真實(shí)性(未被篡改)。
為此,我們先得了解一下“數(shù)字摘要”。所謂數(shù)字摘要,就是根據(jù)某種公開(kāi)算法計(jì)算出你信息全文的唯一標(biāo)識(shí)。只要信息被增加、刪除或改動(dòng)一個(gè)字節(jié),這個(gè)標(biāo)識(shí)就會(huì)改變。你可以把數(shù)字摘要理解為信息的“特征碼”。
接下來(lái),數(shù)字簽名及其驗(yàn)證方法就簡(jiǎn)單了。
數(shù)字簽名:計(jì)算擬發(fā)信息的數(shù)字摘要,并用你的私鑰加密數(shù)字摘要,然后把加密后的數(shù)字摘要與擬發(fā)信息合并發(fā)給對(duì)方。“加密后的數(shù)字摘要”就是你對(duì)擬發(fā)信息加注的“數(shù)字簽名”。
數(shù)字簽名驗(yàn)證:對(duì)方收到后,計(jì)算已收信息的數(shù)字摘要(與你的計(jì)算方法相同),并用你的公鑰解密你的數(shù)字簽名、獲得你計(jì)算出的數(shù)字摘要,然后比較這兩個(gè)數(shù)字摘要,如果完全一致則通過(guò)驗(yàn)證、確信已收信息系你發(fā)出且未被篡改,否則不予信任。
這就是基于非對(duì)稱(chēng)加密算法的“數(shù)字簽名”原理,它與“加密”是反著來(lái)的:加密是對(duì)方用你的公鑰加密,你用自己的私鑰解密;簽名則是你用自己的私鑰加密,對(duì)方用你的公鑰解密。
玄不?不過(guò)如此。
但是,還有一個(gè)關(guān)鍵問(wèn)題沒(méi)有解決:你用數(shù)字簽名證明你是你了,但你的公鑰是你自己發(fā)布的,在互聯(lián)網(wǎng)環(huán)境下,對(duì)方仍然不能確定你是誰(shuí),你仍可能是一條狗。
因?yàn)椋銈z之間,缺一個(gè)“證人”:權(quán)威的數(shù)字證書(shū)頒發(fā)中心。
你的私鑰和公鑰應(yīng)該來(lái)自某個(gè)權(quán)威的數(shù)字證書(shū)頒發(fā)中心,該中心負(fù)責(zé)審核你的真實(shí)身份,給你的公鑰和個(gè)人身份信息加注該中心的數(shù)字簽名,你就有了“數(shù)字證書(shū)”,你把這個(gè)含有你的公鑰和個(gè)人信息的數(shù)字證書(shū)發(fā)給對(duì)方,對(duì)方用該中心的公鑰驗(yàn)證你的數(shù)字證書(shū),就知道你是誰(shuí)了。反之亦然。
地球人太多太多,權(quán)威的數(shù)字證書(shū)頒發(fā)中心單槍匹馬恐怕忙不過(guò)來(lái),它就用上述方式給它信任的其它機(jī)構(gòu)頒發(fā)一個(gè)數(shù)字證書(shū),授權(quán)對(duì)方代理它對(duì)外頒發(fā)數(shù)字證書(shū)。這樣,權(quán)威的數(shù)字證書(shū)頒發(fā)中心就成了“頂級(jí)中心”,對(duì)方就是“二級(jí)中心”。以此類(lèi)推,還有“三級(jí)中心”、“四級(jí)中心”、……互聯(lián)網(wǎng)空間基于數(shù)字簽名的可信身份認(rèn)證體系就形成了。“頂級(jí)中心”就是“互聯(lián)網(wǎng)公安部”嘛,其它依次是“公安廳”、“公安局”……
好玩對(duì)吧?但請(qǐng)別忘了來(lái)時(shí)的路:引入數(shù)字簽名,解決指紋支付時(shí)“防止偽造和虛報(bào)指紋比對(duì)結(jié)果”的問(wèn)題。
現(xiàn)在,這個(gè)問(wèn)題已經(jīng)解決:借用智能手機(jī)的指紋鎖保護(hù)你的私鑰,確保只有真正通過(guò)指紋比對(duì)后才能獲取和使用你的私鑰,并繼續(xù)下一步。期間所有信息都使用你的私鑰加注數(shù)字簽名,構(gòu)建一個(gè)完整的信任鏈,能夠?qū)崟r(shí)感知來(lái)自設(shè)備或網(wǎng)絡(luò)的安全風(fēng)險(xiǎn),支付服務(wù)提供商就能放心地幫你買(mǎi)買(mǎi)買(mǎi)了。
支付服務(wù)提供商唯一能做的選擇題是:信任哪個(gè)“頂級(jí)中心”?
這是信任問(wèn)題,也是利益問(wèn)題。
頂級(jí)中心
支付寶與華為等廠商聯(lián)合建立一個(gè)名叫“互聯(lián)網(wǎng)金融身份認(rèn)證聯(lián)盟”的組織,簡(jiǎn)稱(chēng)IFAA。他們說(shuō):信任上海市數(shù)字證書(shū)認(rèn)證中心,它就是我們的“頂級(jí)中心”。
微信支付比較“強(qiáng)勢(shì)”,自定指紋支付安全標(biāo)準(zhǔn)SOTER,免費(fèi)開(kāi)放。他們說(shuō):我不跟你們玩。我把每臺(tái)智能手機(jī)都做成獨(dú)立的“頂級(jí)中心”,這個(gè)頂級(jí)中心的私鑰,微信不知道,手機(jī)廠商不知道,機(jī)主本人也不知道。它就是“天”,人類(lèi)無(wú)法掌控。
誰(shuí)更安全?
顯然微信支付的方案更安全,至少理論上如此:它的認(rèn)證體系排除了人的介入;去中心化,即使出了問(wèn)題也僅影響一臺(tái)手機(jī);SOTER設(shè)計(jì)思想和方法完全公開(kāi),并已開(kāi)放源代碼,以表明其對(duì)安全承諾的信心。
IFAA授權(quán)的上海市數(shù)字證書(shū)認(rèn)證中心畢竟由人來(lái)管理,而且它是全局保密中心,一旦出了問(wèn)題,整個(gè)信任體系就崩塌了。其次,IFAA的方案透明度極低,其接入能力也暫未向普通開(kāi)發(fā)者開(kāi)放,僅限聯(lián)盟成員接入。
不過(guò),為了確保每臺(tái)智能手機(jī)的頂級(jí)私鑰“天知地知你不知我也不知”,微信要求手機(jī)廠商在生產(chǎn)線(xiàn)上使用工具軟件自動(dòng)生成向每臺(tái)手機(jī)的TEE安全存儲(chǔ)區(qū)域?qū)懭腠敿?jí)私鑰,并把自動(dòng)生成的相應(yīng)頂級(jí)公鑰和手機(jī)設(shè)備編號(hào)上傳給微信服務(wù)器,以備日后驗(yàn)證數(shù)字簽名。
上傳到微信服務(wù)器的信息,不是手機(jī)的頂級(jí)私鑰,更不是用戶(hù)指紋,而是可以公開(kāi)的頂級(jí)公鑰,在手機(jī)廠商生產(chǎn)線(xiàn)上就完成了。手機(jī)指紋鎖僅用于保護(hù)頂級(jí)私鑰,不存在獲取并上傳用戶(hù)指紋的必要性和可能性。支付寶同樣需要手機(jī)上傳公鑰和設(shè)備編號(hào),不過(guò)不是在生產(chǎn)線(xiàn)上完成的。上傳公鑰的用途是日后驗(yàn)證來(lái)自設(shè)備側(cè)的數(shù)字簽名,與包括用戶(hù)指紋在內(nèi)的用戶(hù)個(gè)人隱私毫無(wú)關(guān)系。
華為方面為什么拒絕支持微信SOTER?本人推測(cè),華為與微信的關(guān)系不太好,或微信不愿向華為付費(fèi),或華為與支付寶的關(guān)系太好了(排他條款)。
華為方面拒絕支持微信SOTER后為什么拋出謬論“某互聯(lián)網(wǎng)廠商要求把用戶(hù)指紋上傳服務(wù)器做指紋比對(duì)”?本人推測(cè),用戶(hù)要求支持微信指紋支付的壓力山大,華為方面沒(méi)有擔(dān)當(dāng),把鍋甩給微信,簡(jiǎn)單粗暴。如果不是這個(gè)因素,那么,
事出無(wú)因,必有妖孽。