linux&win雙系統(tǒng)下時(shí)間顯示不正常的問題:加上本人有總結(jié)的習(xí)慣(逃~ 好了,廢話不多說,直接上解決辦法,后面我會(huì)介紹雙系統(tǒng)時(shí)間顯示不正常的具體原因?,F(xiàn)象: 1.可能出現(xiàn)linux和windows系統(tǒng)時(shí)間相差8個(gè)小時(shí)。
2.可能出現(xiàn)linux和windows系統(tǒng)時(shí)間差得天南海北。
在最新版本中,在文件中你是找不到utc選項(xiàng)的。
linux系統(tǒng)時(shí)間計(jì)算標(biāo)準(zhǔn):utc(世界協(xié)調(diào)時(shí)間)。 兩個(gè)系統(tǒng)在調(diào)整時(shí)間的時(shí)候,由于計(jì)算標(biāo)準(zhǔn)不同,且都會(huì)將時(shí)間信息寫入主板,所以您啟動(dòng)另一個(gè)系統(tǒng)的時(shí)候,自然就會(huì)出現(xiàn)“錯(cuò)誤”的時(shí)間信息。
至于兩個(gè)系統(tǒng)的時(shí)間為什么會(huì)差八個(gè)小時(shí),這個(gè)百度吧(逃~~)結(jié)語(yǔ): 感謝您的閱讀,歡迎指正博客中存在的問題,也可以跟我聯(lián)系,一起進(jìn)步,一起交流!
以人民的名義宣誓:數(shù)據(jù)中心的sla由我們來守護(hù)!:近日,在由中數(shù)盟舉辦的第七屆中國(guó)數(shù)據(jù)中心產(chǎn)業(yè)發(fā)展大會(huì)(以下簡(jiǎn)稱“dcic大會(huì)”)上,憑借著專業(yè)級(jí)的運(yùn)維水平和服務(wù)品質(zhì),互聯(lián)港灣三度蟬聯(lián)“2016-2017年度數(shù)據(jù)中心優(yōu)秀運(yùn)營(yíng)服務(wù)單位”。?
互聯(lián)港灣2016-2017優(yōu)秀運(yùn)營(yíng)服務(wù)單位 idc市場(chǎng)持續(xù)增長(zhǎng)隨著我國(guó)信息產(chǎn)業(yè)的結(jié)構(gòu)性調(diào)整,以云計(jì)算、數(shù)據(jù)中心為代表的新一代互聯(lián)網(wǎng)基礎(chǔ)設(shè)施不斷實(shí)現(xiàn)突破性的發(fā)展。
本次dcic大會(huì)重點(diǎn)探討了地方政府政策及數(shù)據(jù)中心產(chǎn)業(yè)發(fā)展等多個(gè)行業(yè)焦點(diǎn)問題,解讀和規(guī)劃了數(shù)據(jù)中心產(chǎn)業(yè)未來的發(fā)展藍(lán)圖,并展示了最新的市場(chǎng)調(diào)研數(shù)據(jù):? 華北、華東以及華南依次為現(xiàn)有數(shù)據(jù)中心占比最多的區(qū)域,西南和西北地區(qū)建設(shè)的數(shù)據(jù)中心以大型為主
歷經(jīng)多年的積累,互聯(lián)港灣率先布局dci領(lǐng)域,搭建了自主運(yùn)營(yíng)的sdn平臺(tái),實(shí)現(xiàn)北京、上海、廣州三地之間sdn骨干互聯(lián),為最終用戶提供按需配置、敏捷響應(yīng)的數(shù)據(jù)中心虛擬專線自助服務(wù),用戶可從帶寬、時(shí)間、公有云位置
在日新月異的技術(shù)變革中,互聯(lián)港灣將繼續(xù)以用戶需求為第一生產(chǎn)力,聚焦垂直領(lǐng)域,通過云計(jì)算+網(wǎng)絡(luò)的一站式混合云服務(wù)體系,為用戶創(chuàng)造最大化價(jià)值。
turla利用水坑攻擊植入后門:這次行動(dòng)由活躍了十多年間諜組織turla發(fā)起,其主要目標(biāo)包括政府和軍事組織,之前曾報(bào)道過該小組的多個(gè)活動(dòng),包括mosquito和lightneuron。
目標(biāo)網(wǎng)站turla至少破壞了四個(gè)armenian網(wǎng)站,其中包括兩個(gè)政府網(wǎng)站。因此,目標(biāo)可能包括政府官員和政客。
從2019年11月開始發(fā)現(xiàn)該網(wǎng)站不再傳播惡意腳本,turla組織似乎是暫停了他們的活動(dòng)。
skipper在2019年8月前,受害人將收到一個(gè)rar-sfx,其中包含一個(gè)合法的adobe flash v14安裝程序和另一個(gè)rar-sfx。后者包含后門的各種組件。
最新版本是由telsy在2019年5月記錄。skipper通訊模塊使用的遠(yuǎn)程javascript和惡意文件服務(wù)器為c&c服務(wù)器,skategirlchina 206:15363。?
為保護(hù)人體內(nèi)微生物多樣性,科學(xué)家要建“諾亞方舟”:無論我們體內(nèi)還是體外都棲息著大量的微生物,這些微生物在保障人體健康中扮演著重要的角色,比如設(shè)置我們的免疫系統(tǒng),為我們的細(xì)胞提供營(yíng)養(yǎng)以及防止有害病毒、細(xì)菌的定植,據(jù)悉它可能和我們的肥胖癥、哮喘等疾病息息相關(guān)
同時(shí),研究者還做了一個(gè)實(shí)驗(yàn),他們發(fā)現(xiàn)如果讓生活在城市的兒童居住在像委內(nèi)瑞拉這樣的原始雨林中,孩子們體內(nèi)的微生物多樣性將會(huì)擴(kuò)大。?
為此,美國(guó)羅格斯大學(xué)新不倫瑞克分校研究者決定開始這次諾亞方舟微生物庫(kù)的計(jì)劃,他們表示,這個(gè)微生物庫(kù)可以確保人類長(zhǎng)期身體健康。
羅格斯大學(xué)新不倫瑞克分校生物化學(xué)、微生物學(xué)和人類學(xué)系教授瑪麗亞·格洛麗婭·多明格斯·貝羅(maria gloria dominguez-bello)也表示:“我們正在面臨著一場(chǎng)日益嚴(yán)重的全球健康危機(jī),這要求我們?cè)谌祟愇⑸锶喝匀淮嬖诘那闆r下
屆時(shí),這個(gè)全球微生物庫(kù)將會(huì)存儲(chǔ)在一個(gè)“安全、政治中立和穩(wěn)定的地方”。
江西政府機(jī)關(guān)oa:隆安縣政府政務(wù)OA系統(tǒng)中移動(dòng)端系統(tǒng)生物認(rèn)證技術(shù)詳解業(yè)的發(fā)展,政府信息化國(guó)產(chǎn)化替換已經(jīng)成為當(dāng)務(wù)之急。本文將探討政府信息化國(guó)產(chǎn)化替換的意義、挑戰(zhàn)以及推動(dòng)因素,并提出相應(yīng)的解決方案,以加速數(shù)字化轉(zhuǎn)型。一、政府信息化國(guó)產(chǎn)化替換的意義提升信息安全:政府信息化國(guó)產(chǎn)化替換可以減少對(duì)外部技術(shù)和產(chǎn)品的依賴,降低信息泄露和網(wǎng)絡(luò)攻擊的風(fēng)險(xiǎn),保障國(guó)家和公民的信息安全。降低成本:通過國(guó)產(chǎn)化替換,政府可以減少對(duì)進(jìn)口技術(shù)和產(chǎn)品的采購(gòu)成本,提高財(cái)政效益,為公共服務(wù)的提升提供更多資源。推動(dòng)本土科技產(chǎn)業(yè)發(fā)展:政府信息化國(guó)產(chǎn)化替換將促進(jìn)本土科技企業(yè)的創(chuàng)新和發(fā)展,提高其核心競(jìng)爭(zhēng)力,推動(dòng)整個(gè)國(guó)家科技產(chǎn)業(yè)的進(jìn)步。二、政府信息化國(guó)產(chǎn)化替換的挑戰(zhàn)技術(shù)壁壘:政府信息化領(lǐng)域的技術(shù)要求較高,本土科技企業(yè)在關(guān)鍵技術(shù)方面可能存在短板,需要加大研發(fā)投入和人才培養(yǎng)。資金壓力:政府信息化國(guó)產(chǎn)化替換需要大相信大家對(duì)于生物認(rèn)證應(yīng)該不會(huì)陌生,使用指紋登陸或者 faceid 支付等的需求場(chǎng)景如今已經(jīng)很普遍,所以基本上只要涉及移動(dòng)端開發(fā),不管是 android 、ios 或者是 rn 、flutter 都多多少少會(huì)接觸到這一業(yè)務(wù)場(chǎng)景。
當(dāng)然,不同之處可能在于大家對(duì)于平臺(tái)能力或者接口能力的熟悉程度,所以本篇主要介紹 android 和 ios 上使用系統(tǒng)的生物認(rèn)證需要注意什么,具體流程是什么,給需要或者即將需要的大家出一份匯總的資料。
??注意:本篇更傾向于調(diào)研資料的角度,適合需要接入或者在接入過程中出現(xiàn)疑問的方向,而不是 api 使用教程,另外篇幅較長(zhǎng)警告~
首先,先簡(jiǎn)單說一個(gè)大家都知道的概念,那就是不管是 android 或者 ios ,不管是指紋還是 faceid ,只要使用的是系統(tǒng)提供的 api ,作為開發(fā)者是拿不到任何用戶的生物特征數(shù)據(jù),所以簡(jiǎn)單來說你只能調(diào)用系統(tǒng) api ,然后得到成功或者失敗的結(jié)果。
一、android
android 上的生物認(rèn)證發(fā)展史可以說是十分崎嶇,目前簡(jiǎn)單來說經(jīng)歷了兩個(gè)階段:
fingerprintmanager (api 23)
biometricprompt(api 28)
所以如下圖所示,你會(huì)看到其實(shí)底層有兩套 service 在支持生物認(rèn)證的 api 能力,但是值得注意的是, fingerprintmanager 在 api28(android p)被添加了 @deprecated 標(biāo)記 ,包括 androidx 里的兼容包 fingerprintmanagercompat 也是被標(biāo)注了 @deprecated ,因?yàn)楣俜教峁└倒鲜?,更開箱即用的 androidx.biometrics.biometricprompt。
1.1、使用 biometricprompt
簡(jiǎn)單介紹下接入 biometricprompt ,首先第一步是添加權(quán)限
代碼語(yǔ)言:javascript
復(fù)制
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.biometric">
<uses-permission android:name="android.permission.use_biometric" />
<uses-permission android:name="android.permission.use_fingerprint" />
</manifest>
接著調(diào)用 biometricprompt 構(gòu)建系統(tǒng)彈出框信息,具體內(nèi)容對(duì)應(yīng)可見下圖:
[圖片上傳失敗...(image-a9ca67-1648602602525)]
最用設(shè)置 authenticationcallback 和調(diào)用 authenticate ,然后等待授權(quán)結(jié)果進(jìn)入到成功的回調(diào):
代碼語(yǔ)言:javascript
復(fù)制
biometricprompt = new biometricprompt(activity, uithreadexecutor, authenticationcallback);
biometricprompt.authenticate(promptinfo);
當(dāng)然上述代碼還少了很多細(xì)節(jié):
比如需要是 fragmentactivity ;
檢測(cè)設(shè)備是否支持生物認(rèn)證(還有不支持的現(xiàn)在?);
判斷支持哪種生物認(rèn)證,當(dāng)然默認(rèn) biometricprompt 會(huì)幫你處理,如果有多種會(huì)彈出選擇;
而認(rèn)證不成功的時(shí)候可以在 onauthenticationerror 里獲取到對(duì)應(yīng)的錯(cuò)誤碼:
onauthenticationerror
type
biometric_error_lockout
操作被取消,因?yàn)?api 由于嘗試次數(shù)過多而被鎖定(一般就是在一次 authenticate 里例如多次指紋沒通過,鎖定了, 但是過一會(huì)還可以調(diào)用)
biometric_error_lockout_permanent
由于 biometric_error_lockout 發(fā)生太多次,操作被取消,這個(gè)就是真的 lock 了。
biometric_error_no_space
剩余存儲(chǔ)空間不足
biometric_error_timeout
超時(shí)
biometric_error_unable_to_process
傳感器異?;蛘邿o法處理當(dāng)前信息
biometric_error_user_canceled
用戶取消了操作
biometric_error_no_biometric
用戶沒有在設(shè)備中注冊(cè)任何生物特征
biometric_error_canceled
由于生物傳感器不可用,操作被取消
biometric_error_hw_not_present
設(shè)備沒有生物識(shí)別傳感器
biometric_error_hw_unavailable
設(shè)備硬件不可用
biometric_error_vendor
如果存在不屬于上述之外的情況,other
1.2、biometricprompt 自定義
簡(jiǎn)單接入完 biometricprompt 之后, 你可能會(huì)有個(gè)疑問: biometricprompt 是很方便,但是 ui 有點(diǎn)丑了,可以自定義嗎?
抱歉,不可以 ,是的,biometricprompt不能自定義 ui,甚至你想改個(gè)顏色都“費(fèi)勁”, 如果你去看 biometric 的源碼,就會(huì)發(fā)現(xiàn)官方并沒有讓你自定義的打算,除非你 cv 這些代碼自己構(gòu)建一套,至于為什么會(huì)有這樣的設(shè)計(jì),我個(gè)人猜測(cè)其中一條就是屏下指紋。
在官方的 《migrating from fingerprintmanager to biometricprompt》里也說了:丟棄指紋的布局文件,因?yàn)槟銓⒉辉傩枰鼈?,androidx 生物識(shí)別庫(kù)帶有標(biāo)準(zhǔn)化的 ui。
什么是標(biāo)準(zhǔn)化的 ui ?如下所示是使用 biometricprompt 的三臺(tái)手機(jī),可以看到:
第一和第二臺(tái)除了位置有些許不同,其他基本一致;
第三胎手機(jī)是屏下指紋,可以看到整個(gè)指紋輸入的 ui 效果完全是廠家自己的另外一種風(fēng)格;
所以使用 biometricprompt 你將不需要關(guān)注 ui 問題,因?yàn)槟銢]得選,甚至你也不需要關(guān)注手機(jī)上的生物認(rèn)證類型的安全度問題,因?yàn)椴还苁? cdd 還是 ui ,oem 廠商的都會(huì)直接實(shí)現(xiàn)好,例如三星的 ui 是如下圖所示:
android 兼容性定義文檔 (android cdd)_里描述了生物認(rèn)證傳感器安全度的強(qiáng)弱,而在 framework 層面 biometricfragment 和 fingerprintdialogfragment 都是 @hide ,甚至你單純?nèi)シ?androidx.biometric:biometric.aar 的庫(kù),你都看不到 biometricfragment 的布局,只能看到 fingerprintdialogfragment 的 layout。
那就沒辦法自定義 ui 了嗎?還是有的,有兩個(gè)選擇:
繼續(xù)使用 fingerprintmanager ,雖然標(biāo)注了棄用,但是目前還是可以用,在 android 11 上也可以正常執(zhí)行對(duì)應(yīng)邏輯,下圖是同一臺(tái)手機(jī)在 android 11 上使用 fingerprintmanager 和 biometricprompt 的對(duì)比:
使用騰訊的 soter ,這個(gè)我們后面講;
1.3、login + biometricprompt
介紹完調(diào)用和 ui ,那就再結(jié)合 login 場(chǎng)景聊聊 biometricprompt ,官方針對(duì) login 場(chǎng)景提供了一個(gè) demo ,這里主要介紹整個(gè)業(yè)務(wù)流程,具體代碼可以看官方的 biometricloginkotlin ,前面說過生物認(rèn)證只提供認(rèn)證結(jié)果,那么結(jié)合 login 業(yè)務(wù),在官方的例子中 biometricprompt 主要是用于做認(rèn)證和加密的作用:
如上圖所示,場(chǎng)景是在登陸之后,我們獲取到了用戶的 token 信息,這個(gè) token 信息可能是服務(wù)器基于用戶密碼合并后的內(nèi)容,所以它包含了一些敏感隱私,為了安全期間我們不能直接存儲(chǔ),而是利用 biometricprompt 去實(shí)現(xiàn)加密后存儲(chǔ):
首先通過 keystore,主要是得到一個(gè)包含密碼的 secretkey ,當(dāng)然這里有一個(gè)關(guān)鍵操作,那就是 setuserauthenticationrequired(true),后面我們?cè)俳忉專?然后利用 secretkey 創(chuàng)建 clipher , clipher 就是 java 里常用于加解密的對(duì)象;
利用 biometricprompt.cryptoobject(cipher) 去調(diào)用生物認(rèn)證授權(quán);
授權(quán)成功后會(huì)得到一個(gè) authenticationresult ,result 里面包含存在密鑰信息的 cryptoobject?.cipher 和 cipher.iv 加密偏移向量;
利用授權(quán)成功后的 cryptoobject?.cipher 對(duì) token 進(jìn)行加密,然后和 cipher.iv 一起保存到 shareperferences ,就完成了基于 biometricprompt 的加密保存;
是不是覺得有點(diǎn)懵? 簡(jiǎn)單說就是:我們通過一個(gè)只有用戶通過身份驗(yàn)證時(shí)才授權(quán)使用的密鑰來加密 token ,這樣不管這個(gè) token 是否泄漏,對(duì)于我們來說都是安全的。
然后在 keystore 邏輯里這里有個(gè) setuserauthenticationrequired(true) 操作,這個(gè)操作的意思就是:是否僅在用戶通過身份驗(yàn)證時(shí)才授權(quán)使用此密鑰,也就是當(dāng)設(shè)置為 true 時(shí):
用戶必須通過使用其鎖屏憑據(jù)的子集(例如密碼/pin/圖案或生物識(shí)別)向此 android 設(shè)備進(jìn)行身份驗(yàn)證,才能夠而授權(quán)使用密鑰。
也就是只有設(shè)置了安全鎖屏?xí)r才能生成密鑰,而一旦安全鎖屏被禁用(重新配置為無、不驗(yàn)證用戶身份的模式、被強(qiáng)制重置)時(shí),密鑰將不可逆轉(zhuǎn)地失效。
另外可以設(shè)置了 setuserauthenticationvaliditydurationseconds 來要求密鑰必須至少有一個(gè)生物特征才可用,而一但它設(shè)置為 true,如果用戶注冊(cè)了新的生物特征,它也將不可逆轉(zhuǎn)地失效。
所以可以看到,這個(gè)流程下密鑰會(huì)和系統(tǒng)安全綁定到一起,從而不害怕 token 等信息的泄漏,也因?yàn)槭跈?quán)成功后的 cryptoobject 和 keystore 集成到一起,可以更有效地抵御例如 root 的攻擊。
而反之獲取的流程也是類似,如下圖所示:
在 shareperferences 里獲取加密后的 token 和 iv 信息;
同樣是利用 secretkey 創(chuàng)建 clipher ,不過這次要帶上保存的 iv 信息;
利用 biometricprompt.cryptoobject(cipher) 去調(diào)用生物認(rèn)證授權(quán);
通過授權(quán)成功后的 cryptoobject?.cipher 對(duì) token 進(jìn)行加密,得到原始的 token 信息;
所以可以看到,基本思路就是利用 biometricprompt 認(rèn)證后得到 cryptoobject?.cipher 去加解密,通過系統(tǒng)的安全等級(jí)要保護(hù)我們的隱私信息。
最后補(bǔ)充一個(gè)知識(shí)點(diǎn),雖然一般我們不關(guān)心,但是在 biometricprompt 里有 auth-per-use 和 time-bound 這兩個(gè)概念:
auth-per-use 密鑰要求每次使用密鑰時(shí),都必須進(jìn)行認(rèn)證 ,前面我們通過 biometricprompt.cryptoobject(cipher) 去調(diào)用授權(quán)方法就是這類實(shí)現(xiàn);
time-bound 密鑰是一種在一定的時(shí)間段內(nèi)有效的密鑰,可以通過 setuserauthenticationvaliditydurationseconds 設(shè)置有效時(shí)長(zhǎng),如果你設(shè)置為很短,例如 5 秒,那行為上和 auth-per-use 基本類似;
更多資料可以參考官方的 biometric-authentication-on-android
1.4、tencent soter
前面說到 android 上還有 soter ,騰訊在微信指紋支付全流程之上,將它的流程抽象為一套完備的生物識(shí)別標(biāo)準(zhǔn):soter。
soter 會(huì)與手機(jī)廠商合作,在系統(tǒng)原有的接口能力之上提供安全加固,通過業(yè)務(wù)無關(guān)的安全域(tee,即獨(dú)立于手機(jī)操作系統(tǒng)的安全區(qū)域,root或越獄無法訪問到)應(yīng)用程序(ta)降低開發(fā)難度和適配成本,做到即使外部環(huán)境不可信,依然可以安全授權(quán)。
tee(trusted execution environment)是獨(dú)立于手機(jī)操作系統(tǒng)的一塊獨(dú)立運(yùn)行的安全區(qū)域,soter標(biāo)準(zhǔn)中,所有的密鑰生成、數(shù)據(jù)簽名處理、指紋驗(yàn)證、敏感數(shù)據(jù)傳輸?shù)让舾胁僮骶?tee 中進(jìn)行,并且 soter使用的設(shè)備根密鑰由廠商在產(chǎn)線上燒入,從根本上解決了根密鑰不可信的問題,并以此根密鑰為信任鏈根,派生密鑰,從而完成,與微信合作的所有手機(jī)廠商將均帶有硬件tee,并且通過騰訊安全平臺(tái)和微信支付安全團(tuán)隊(duì)驗(yàn)收,符合soter標(biāo)準(zhǔn)。
簡(jiǎn)而言之,這是一個(gè)支持直通廠商,并且具備后臺(tái)服務(wù)對(duì)接校驗(yàn)的第三方庫(kù),目前最近 5 個(gè)月都還有在更新,那它有什么問題呢?
那就是必須是與微信合作的所有手機(jī)廠商和機(jī)型才能正常使用 ,而且經(jīng)常在一些廠商系統(tǒng)上出現(xiàn)奇奇怪怪的問題,比如:
miui13 綁定服務(wù)異常;
鴻蒙系統(tǒng)api層面報(bào)錯(cuò);
莫名其妙地出現(xiàn)崩潰;
但是它可以實(shí)現(xiàn)基本類似于微信支付的能力,所以如何取舍就看你的業(yè)務(wù)需求了。
支持機(jī)型可查閱 :#有多少設(shè)備已經(jīng)支持tencent-soter
ios
相對(duì)來說 ios 上的生物認(rèn)證就舒適不少,相比較 android 上需要區(qū)分系統(tǒng)版本和廠商的 fingerprint 、face 和 iris ,ios 上的 face id 和 touch id 就十分統(tǒng)一和簡(jiǎn)潔。
簡(jiǎn)單介紹下 ios 上使用生物認(rèn)證,首先需要在 info.plist 文件添加描述信息:
代碼語(yǔ)言:javascript
復(fù)制
<key>nsfaceidusagedescription</key>
<string>why is my app authenticating using face id?</string>
然后導(dǎo)入頭文件 #import <localauthentication/localauthentication.h> ,最后創(chuàng)建 lacontext 去執(zhí)行授權(quán)操作,這里也簡(jiǎn)單展示對(duì)應(yīng)的錯(cuò)誤碼:
error code
type
laerrorsystemcancel
系統(tǒng)取消了授權(quán),比如有其他app切換
laerrorusercancel
用戶取消驗(yàn)證
laerrorauthenticationfailed
授權(quán)失敗
laerrorpasscodenotset
系統(tǒng)未設(shè)置密碼
laerrorbiometrynotavailable
id不可用,例如未打開
laerrorbiometrynotenrolled
id不可用,用戶未錄入
laerroruserfallback
用戶選擇輸入密碼
而同樣關(guān)于自定義 ui 問題上,想必大家都知道了,ios 生物認(rèn)證沒有自定義 ui 的說法,也不支持自定義 ui ,系統(tǒng)怎么樣就怎么樣,你可以做的只有類似配置‘是否允許使用密碼授權(quán)’這樣的行為 。
在這一點(diǎn)上相信 android 開發(fā)都十分羨慕 ios ,有問題也是系統(tǒng)問題,無法修復(fù)。
同樣,簡(jiǎn)單說說在 ios 上使用生物識(shí)別的 login 場(chǎng)景流程:
獲取到 token 信息后,驗(yàn)證用戶的 touchid/faceid ;
驗(yàn)證通過后,將 token 等信息保存到 keychain (keychain 只是一個(gè)數(shù)據(jù)存儲(chǔ),用于存儲(chǔ)一些敏感數(shù)據(jù)如密碼、證書等);
保存成功后,下次再次登錄時(shí)通過驗(yàn)證 touchid/faceid 獲取對(duì)應(yīng)信息;
這里主要有兩個(gè)關(guān)鍵點(diǎn):
訪問級(jí)別 : 例如是否需要每次都進(jìn)行身份驗(yàn)證時(shí)才可以訪問項(xiàng)目;
身份驗(yàn)證級(jí)別: 也就是什么場(chǎng)景下可以訪問到存儲(chǔ)的信息;
舉個(gè)例子,訪問 keychain 首先是需要?jiǎng)?chuàng)建 accesscontrol ,一般可以通過 secaccesscontrolcreatewithflags 來創(chuàng)建 accesscontrol ,這里有個(gè)關(guān)鍵參數(shù)用于指定訪問級(jí)別:
ksecattraccessibleafterfirstunlock 開機(jī)之后密鑰不可用,需要等用戶輸入開機(jī)密碼
ksecattraccessibleafterfirstunlockthisdeviceonly: 開機(jī)之后密鑰不可用,需要等用戶輸入開機(jī)密碼,但是僅限于當(dāng)前設(shè)備
ksecattraccessiblewhenunlocked: 解鎖過的設(shè)備密鑰會(huì)保持可用狀態(tài)
ksecattraccessiblewhenunlockedthisdeviceonly: 解鎖過的設(shè)備密鑰會(huì)保持可用狀態(tài),僅當(dāng)前設(shè)備
ksecattraccessiblewhenpasscodesetthisdeviceonly: 解鎖過的設(shè)備密鑰會(huì)保持可用狀態(tài),只有用戶設(shè)置密碼后密鑰才可用
ksecattraccessiblealways: 始終可用,已經(jīng) deprecated
ksecattraccessiblealwaysthisdeviceonly: 密鑰始終可用,但無法遷移到其他設(shè)備,已經(jīng) deprecated
類似場(chǎng)景下一般使用 ksecattraccessiblewhenpasscodesetthisdeviceonly ,另外還有 secaccesscontrolcreateflags標(biāo)志,它主要是用于指定希望用戶在訪問鑰匙串時(shí)的約束,一般類似場(chǎng)景會(huì)使用 userpresence :
devicepasscode: 限制使用密碼訪問
biometryany: 使用任何已注冊(cè) touch 或 face id 訪問
biometrycurrentset: 限制使用當(dāng)前注冊(cè) touch 或 face id 訪問
userpresence: 限制使用生物特征或密碼訪問
watch: 使用手表訪問
創(chuàng)建完成 accesscontrol 之后,通過設(shè)置 ksecattraccesscontrol 后正常把信息存儲(chǔ)到 keychain 就可以了,在存儲(chǔ) keychain 時(shí)也有可選的 ksecclass ,一般選用 ksecclassgenericpassword:
ksecclassgenericpassword: 通用密碼
ksecclassinternetpassword: internet 密碼
ksecclasscertificate:證書
ksecclasskey:加密密鑰
ksecclassidentity: 身份認(rèn)證
當(dāng)然,此時(shí)你是否發(fā)現(xiàn),在談及 accesscontrol 和 keychain 時(shí)沒有說明 lacontext ?
其實(shí)在創(chuàng)建 accesscontrol 時(shí)是有對(duì)應(yīng) ksecuseauthenticationcontext 參數(shù)用于設(shè)置 lacontext 到 keychain 認(rèn)證,但是也可以不設(shè)置,具體為:
如果未指定,并且該項(xiàng)目需要 authentication 認(rèn)證,那就會(huì)自動(dòng)創(chuàng)建一個(gè)新的 lacontext ,使用一次后丟棄;
如果是使用先前已通過身份驗(yàn)證的 lacontext ,則操作直接成功而不要求用戶進(jìn)行身份驗(yàn)證;
如果是使用先前未經(jīng)過身份驗(yàn)證的 lacontext ,則系統(tǒng)會(huì)嘗試在該 lacontext 上進(jìn)行身份驗(yàn)證,如果成功就可以在后續(xù)的鑰匙串操作中重用。
更多可見官方的: accessing_keychain_items_with_face_id_or_touch_id
可以看到, ios 上都只需要簡(jiǎn)單地配置就行了,因?yàn)橄到y(tǒng)層面也不會(huì)給你多余的能力。
三、最后
雖然本篇從頭到位并沒有教你如何使用 android 或者 ios 的生物認(rèn)證,但是作為匯總資料,本篇基本覆蓋了 android 或者 ios 生物認(rèn)證相關(guān)的基本概念和問題,相信本篇將會(huì)特別適合正在調(diào)研生物認(rèn)證相關(guān)開發(fā)的小伙伴。
最后,還是慣例,如果對(duì)于這方便你有什么問題或者建議,歡迎留言評(píng)論交流。
基于騰訊云的業(yè)務(wù)全球化部署:泰國(guó)、俄羅斯,并在美國(guó)西部和中國(guó)香港構(gòu)建了region內(nèi)雙可用區(qū)能力,新拓7個(gè)區(qū)域,9個(gè)可用區(qū)。
舉例個(gè)例子,假如業(yè)務(wù)部署在北京、北美和歐洲,業(yè)務(wù)系統(tǒng)要求這幾個(gè)數(shù)據(jù)中心之間能夠安全穩(wěn)定的同步傳輸數(shù)據(jù)。走公網(wǎng)無法避免網(wǎng)絡(luò)波動(dòng)的問題。
第一個(gè)業(yè)務(wù)需求是:業(yè)務(wù)要服務(wù)全球用戶,業(yè)務(wù)系統(tǒng)全球部署。 這款app用戶數(shù)最多的地區(qū)是在印度,所以核心業(yè)務(wù)部署在印度。
同時(shí)為了覆蓋全球用戶,在中國(guó)香港、德國(guó)、硅谷、新加坡都有部署了業(yè)務(wù)系統(tǒng),通過騰訊云內(nèi)網(wǎng)實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)的交互,并實(shí)現(xiàn)數(shù)據(jù)的異地災(zāi)備。
騰訊云海外cdn已經(jīng)覆蓋了全球50多個(gè)國(guó)家和地區(qū),帶寬儲(chǔ)備超過20t,通過自研的調(diào)度系統(tǒng),給用戶提供極致穩(wěn)定的內(nèi)容加速體驗(yàn)。
移動(dòng)互聯(lián)網(wǎng)何時(shí)普照無線城市:事實(shí)上,相較在這個(gè)城市究竟有多少商鋪可以連入wi-fi,地鐵、街頭、醫(yī)院,甚至火車上什么時(shí)候能普及wi-fi 才是普通大眾更關(guān)注的實(shí)際上網(wǎng)難題。
無線城市期待新機(jī)制 11月27日,《it時(shí)報(bào)》記者采訪多位深圳市民,在被問及是否用地鐵wi-fi上網(wǎng)時(shí),均表示很少。
借助民資的力量是許多城市政府建設(shè)公共wi-fi的基本思路,上海最早的無線城市嘉定,曾是最早引入民營(yíng)公司建設(shè)公共wi-fi的城區(qū),后來因缺乏可持續(xù)的盈利模式陷入僵局,但隨著移動(dòng)互聯(lián)網(wǎng)的興起,“無線嘉定”第二輪建設(shè)已在醞釀中
在這一輪的招投標(biāo)中,中國(guó)移動(dòng)、中國(guó)電信等電信運(yùn)營(yíng)商,將與來自市場(chǎng)的民營(yíng)通信企業(yè)同臺(tái)競(jìng)爭(zhēng)。 “現(xiàn)在政府建設(shè)無線城市,其實(shí)是兩難的。
運(yùn)營(yíng)商實(shí)力雄厚,而且身為國(guó)企,有時(shí)候會(huì)付出得更多一些,以i-shanghai為例,不少后期維護(hù)的成本都是運(yùn)營(yíng)商自己承擔(dān)的,政府相對(duì)省心;民營(yíng)企業(yè)機(jī)制靈活,商業(yè)模式多,對(duì)于提倡創(chuàng)新的政府來說,是很好的宣傳點(diǎn)
明年成都將基本建成政務(wù)云、社會(huì)云、企業(yè)云:昨日,記者從市經(jīng)信委獲悉,按照《成都市云計(jì)算應(yīng)用與產(chǎn)業(yè)發(fā)展“十二五”規(guī)劃綱要》《成都市云計(jì)算鼓勵(lì)項(xiàng)目投資指南》和《關(guān)于加快發(fā)展先進(jìn)制造業(yè)實(shí)現(xiàn)工業(yè)率先倍增若干政策的意見》,進(jìn)一步加大對(duì)云計(jì)算產(chǎn)業(yè)的政策扶持和資金支持力度
按“十二五”規(guī)劃綱要,我市將在2015年,基本建設(shè)完成政務(wù)云、社會(huì)云、企業(yè)云和高性能計(jì)算云平臺(tái),云服務(wù)覆蓋全市主要產(chǎn)業(yè)功能區(qū),50%的規(guī)模以上企業(yè)實(shí)現(xiàn)云計(jì)算模式下的it資源管理。
、用戶數(shù)突破400萬,電子政務(wù)云服務(wù)覆蓋到市級(jí)各主要部門,中國(guó)移動(dòng)(四川成都)數(shù)據(jù)中心基地、中國(guó)聯(lián)通四川天府新區(qū)idc中心和成都云計(jì)算中心基地啟動(dòng)建設(shè),基礎(chǔ)支撐平臺(tái)建設(shè)成效明顯。
目前,成都正組織企業(yè)開展云計(jì)算試點(diǎn)示范,加大產(chǎn)業(yè)發(fā)展促進(jìn)力度,以購(gòu)買服務(wù)、財(cái)政補(bǔ)貼、研發(fā)支持等方式引導(dǎo)企業(yè)投資建設(shè)云計(jì)算平臺(tái)、加強(qiáng)產(chǎn)品研發(fā)和服務(wù)模式創(chuàng)新,中國(guó)電信、三零衛(wèi)士通、國(guó)信安、歐冠等企業(yè)的20個(gè)項(xiàng)目獲得市級(jí)產(chǎn)業(yè)資金支持
云計(jì)算產(chǎn)業(yè)要全產(chǎn)業(yè)鏈發(fā)展市經(jīng)信委相關(guān)負(fù)責(zé)人介紹,成都市云計(jì)算產(chǎn)業(yè)的重點(diǎn)發(fā)展方向和招商領(lǐng)域是:以“1 n”模式打造云計(jì)算基礎(chǔ)支撐平臺(tái),構(gòu)建各類軟件服務(wù)(saas)和數(shù)據(jù)服務(wù)(daas)子集,形成完整的云服務(wù)核心技術(shù)體系
openstack柏林峰會(huì),騰訊云tstack擁抱開源:柏林時(shí)間2018年11月13日至15日,全球開源領(lǐng)域最具影響力的openstack summit峰會(huì)在德國(guó)柏林citycube會(huì)議中心舉行。
▲騰訊云tstack團(tuán)隊(duì)與intel團(tuán)隊(duì)深入探討中行業(yè)大咖介紹黑客松在中國(guó)舉辦的經(jīng)驗(yàn)會(huì)議第二日下午,柏林時(shí)間14:30-15:00,騰訊云tstack資深架構(gòu)師賀阮博士與intel和華為的行業(yè)同仁一起就議題
在中國(guó),國(guó)家標(biāo)準(zhǔn)化委員會(huì)和工信部共同領(lǐng)導(dǎo)下的全國(guó)信標(biāo)委云計(jì)算標(biāo)準(zhǔn)工作組,致力于我國(guó)云計(jì)算的軟件技術(shù)、產(chǎn)品、服務(wù)和系統(tǒng)設(shè)備等領(lǐng)域國(guó)家標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn)的制定修訂工作。
賀阮博士說道:“中國(guó)的云計(jì)算產(chǎn)業(yè)不斷擴(kuò)大和增長(zhǎng),越來越多的政府和金融企業(yè)選擇了擁抱云。開源云與私有云領(lǐng)域增速迅猛,openstack作為開源云事實(shí)標(biāo)準(zhǔn),以成熟的架構(gòu),在國(guó)內(nèi)已成為主流之選。”?
騰訊云tstack黑石一體機(jī)柜的首發(fā)在柏林峰會(huì)獲得成功只是其中一隅。柏林之行,openstack不斷拓展延伸,支撐更多新技術(shù);騰訊云tstack也堅(jiān)持擁抱開源,持續(xù)回饋社區(qū)。
轉(zhuǎn)載請(qǐng)注明出處,本站網(wǎng)址:
http://www.opentechcloud.com/news_1936.html