小米憋了這麼久的指紋為什麼只支持小米支付?

支付寶微信統統用不了? 那不是只有解鎖用了? 為啥華為和魅族能做到,小米後出這麼久都做不到?


小米線上指紋支付的底層是我寫的,我來簡單說說吧。

首先,扯什麼Android 6.0的可以休息了,Android 6.0提供的是指紋的框架和指紋的API,跟支付沒有什麼關係。Android 5.0上面也可以支持指紋,指紋廠商都會提供Android 5.0上面的框架,包括完整的Framework、HAL和Driver(包括REE和TEE側)的實現。還是那句話,支付就是支付,和指紋沒有關係。最多支付需要用到指紋的結果。

說重點,支付寶和微信支付都有自己的解決方案,但是眾所周知,支付的本質就是簽名,需要手機內置私鑰,支付伺服器放置與之對應的公鑰。小米和支付寶、微信最大的分歧就在這裡,小米不願意自己的手機里內置其他公司的密鑰,希望用自己的密鑰,然後支付寶和微信只需要來調用獲得結果就可以了,而支付寶和微信則希望完全用自己的密鑰和邏輯。所以一直沒有談妥。

歡迎技術討論。


Android 的指紋識別功能明顯是實現倒逼標準,各方面的技術準備和產品需求在先,各個廠商各自實現之後,Android 才慢吞吞地把這個東西標準化,造成現在API 不通用、APP 開發者需要單獨適配的情況。

希望小米這個東西是向標準靠攏,起碼是兼容 Android 6.0 的 Fingerprintmanager: http://developer.android.com/reference/android/hardware/fingerprint/FingerprintManager.html


當年淘寶要是讓用戶通過百度搜到相關產品就不會是今天的局面了。野心大。。。。。。。畢竟有用戶基礎


這個不是硬體問題,以後MIUI系統和第三方支付app升級後都會支持。小米的手機銷量很大(紅米Note3到千萬不是問題),活躍度很高,所以小米的工程師比較謹慎,和小米合作的廠家也很謹慎。支付的安全性很重要,Android系統的開放性,在Android上做支付要比封閉的iOS(越獄就不支持指紋支付)要難很多。別急,該有的都會有的,到時候升級MIUI即可。


現在華為也不姿辭微信了哦


因為小米要做自己的支付底層平台,而不是直接去接支付寶或微信的SDK。


之前 Android 手機上的指紋支付功能由錢包應用方提供各自的解決方案,廠商去適配。各個解決方案互不兼容。手機的指紋一旦支持了某個錢包,就無法再給其它錢包用。
小米這次打造的是基於指紋的身份認證平台,將指紋支付功能平台化,可以面向所有錢包開放。首先支持的是小米錢包。


先佔坑,等有時間回答。

利益相關:微信指紋支付以及指紋相關標準主要開發以及制定者之一。


//更新

突然想起很久以前我們微信對外合作公眾號就已經發了指紋相關的文章,而且作為主推技術在去年的2015微信公開課pro版上發布(對,就是你們覺得不知道是幹啥的SOTER),如果有興趣的同學,請關注微信公眾號wecooper了解下簡要技術細節和應用場景(就在公眾號自定義菜單里)。明天我再細講。

不知道放公眾號是不是違反知乎平台規定。。
很糾結,但是還是放出來吧。

http://mp.weixin.qq.com/s/4BQulfFgVvanPSGOS92yiw


不想關注的可以看這篇文章,雖然是針對第三方應用接入合作,但是裡邊有詳細介紹一些技術細節。


ios指紋支付:蘋果把關。
蘋果老大:支付寶兄,來100塊!
支付寶:OK,沒問題。

安卓指紋支付:支付寶等自己把關。
小米:支付寶兄,來100塊!
支付寶:請提供用戶名密碼
小米:用戶不給,寶兄你能給我嗎?
支付寶:給你你幹壞事咋辦?
小米:寶兄說的對!


為了回答這個問題,這兩天去翻看了android M及IOS的指紋識別sample。

二者的基本流程都是,調用一個api去詢問系統「指紋有效與否」。然後由系統代理app去採集、比對指紋,並回答yes or no。(android的貌似還附贈一些對返回值的加密功能)
這樣由於app得到的信息只是api返回值,極為有限。與常規的數字密碼相比,api實在是太容易偽造了。

ios下,支付寶採取的策略是檢測到越獄就禁用。非越獄狀態下,由蘋果來保證系統的完整性和api未被篡改。
android下,這樣的玩法行不通。支付寶採取的方案是利用ARM trustzone。指紋模塊由TEE來驅動,返回結果在TEE內直接加密(簽名),支付寶端收到加密的返回值後用手機廠商分享的公鑰來驗證返回值的來源。由手機廠商使用TEE內置的固定私鑰來保證驗證結果未被篡改。

小米的方案,不是固定私鑰。依他們內部人員的博客看,似乎是允許經過簽名的app往TEE內寫入自己的私鑰。看似不錯,但細細想一下,這樣一來就變成了「誰都管誰又都不管」的狀態。對小米來說,責任由維護交易關鍵私鑰變成了僅僅為交易關鍵私鑰加密(簽名),以便能寫入TEE。也就是說,小米只打算做平台建設者而迴避直接參与交易流程。
對於支付寶來說,不單要承擔起維護私鑰的責任,而且環節多了,發生問題時的責任判定模糊了(因為小米掌握的密鑰同樣可以解開支付寶對私鑰的加密)。支付寶傾向於手機廠商為交易流程提供更簡單、直接的保證。

目標之間的矛盾也許才是小米指紋識別的支付寶支持至今仍停留在紙面的原因。可能支付寶還需要更多時間來評估這種新模式。
================================
根據有限信息的無責任猜測,了解詳情的請在評論區指出,謝謝


感謝 @Ground在評論里指出的我的錯誤,我隨口一答有些東西確實是記不太清了。再此修改一下。

這個東西不是說你出來個啥功能就能軟體上就上功能用的,是需要軟體去適配的。比如說別人頭上長犄角,然後買了頂帽子帶,你的頭上也長犄角,咋就沒帽子帶呢?不還得賣帽子的給你做一頂嘛。而且你說的,華為和魅族都做到了,其實一開始也不是立馬就適配了的,一開始華為的指紋(這裡我錯了,華為確實和支付寶等合作了發新機的時候就支持了),三星的指紋出來也沒有支付寶和微信適配對不對。蘋果的指紋剛一出來時候沒有開放指紋的許可權,指紋識別一開始能做的事情也很少,後期開放了才能用來支付。所以等APP更新,更新以後就能用上了。


先說華為和魅族的,再引申來來分析小米的。
為便於理解,文寫得比較長,,有耐心且理解能力不差的知友請看。手機碼字,且沒時間改動了,有些字詞間的錯漏請見諒。

目前華為的支持華為(榮耀)指紋支付、支付寶指紋支付、微信指紋支付、QQ指紋支付。

支付寶的指紋支付是去年mate7上市的時候就支持了,微信指紋支付是蘋果支持微信指紋支付的時候就支持了,QQ的指紋支付具體我不知道什麼時候支持的,因為我不知道QQ什麼時候出了指紋支付的,但我之前發現QQ錢包里有個指紋支付,然後就開啟了。

魅族的,我並沒用魅族。
但因為之前比較關注指紋支付這方面,魅族的支付寶指紋是大概今年年中的時候才支持。
當初魅族承諾的支持支付寶指紋支付,但遲遲沒有支持,導致煤油吐槽了很久這點。
微信的指紋支付什麼時候支持的我具體不是很清楚。
QQ的是否支持我也不是很清楚。

因為之前魅族的指紋支付事件鬧得不大不小,拒網傳是因為阿里不認可魅族的指紋安全性。
但現在已經支持了,想來這個原因的可能性不大。
(註:我並不是碼農,也不是內部人員,以下部分純屬推測。)
我估計是因為在支付方案的選擇上耗費了時間吧!
因為經過我一段時間來使用支付寶和微信的指紋支付的體驗來看,支付寶的指紋支付體驗跟微信的根本無法相提並論。無論是速度,還是成功率上。

以下可能看著有些累,我盡量表達清楚。

首先,mate7上,指紋最高可以錄入6個,我6個指紋都錄入了。其中,機主指紋5個,訪客指紋1個。

通過技巧,我錄入每個指紋的時候,只錄入手指指頭皮膚的一部分區域,這樣每根手指就可以錄入幾個指紋。(我為什麼要這樣做?因為mt7錄指紋每個指紋只錄入5次就完成了。5次雖然可以錄入一根手指指頭的大部分皮膚了,但總有一小部分細節沒有錄入進去。而我這樣做的目的是為了提高識別成功率。mt7指紋的識別成功率已經很高了,但我自然是希望越高越好。使用我這種方法,就算是指尖放上去也可以識別成功,指關節處放上去也可以識別成功,甚至,因為我錄入的時候有側著指頭錄入,然後驗證指紋的時候,側著指頭放上去也可以識別成功)。
我右手食指錄入了三個機主指紋,左手食指錄入了兩個機主指紋,右手食指錄入了訪客指紋。我把他們命名為機主指紋:(右手食指1、2、3、),(左手食指4、5、),訪客指紋:(右手中指6)。

而指紋支付,默認必須要用機主指紋。
支付寶指紋支付和微信指紋支付開啟的時候都要驗證機主指紋。
我開啟驗證的時候都是右手食指驗證的,具體驗證用到的是1號還是2號和3號指紋就不得而知了。
可是,用的是同樣的手指來開啟的指紋,可支付寶指紋支付的體驗和微信指紋支付的體驗卻相差好大。
我上面已經說到了,無論是從成功率還是速度上,支付寶都差微信好多。至於QQ的,因為開啟沒多久,還沒用過,體驗如何不得而知。

具體表現在:

支付寶指紋支付驗證的時候,需要手指「按」上去等1到2秒鐘才可以識別。而且成功率頂多7成。

而微信指紋支付驗證的時候,只需要手指「摸」上去即可,0.5秒即可成功識別。成功率9成甚至9.5成。這個體驗幾乎可以說是跟MT7本身的屏幕指紋解鎖驗證一樣一樣的了。

而在我的長期多次使用下,發現:

支付寶指紋支付開啟的時候的「驗證機主指紋」這一個步驟,不僅僅是「為了驗證出你是該手機的機主指紋的主人」,也是「為了作為以後每一次支付的驗證」。
(請注意引號裡面的內容,如果你覺得這段話似乎有些矛盾,請注意看我下面寫的這兩段話。)

而微信的卻不同,微信開啟指紋支付的時候「驗證機主指紋」這一個步驟,僅僅是「為了驗證出你是該手機的機主指紋的主人」。

具體表現有何不同?

支付寶指紋驗證的時候,每一次驗證都要和開啟的時候一樣。
比如你開啟指紋支付的時候是橫著手指按上去驗證的,以後支付驗證的時候,也必須橫著手指按上去,如果你豎著或者斜著手指放上去。
或許它可以識別出:指紋呢!是和開啟指紋支付的時候是一樣的,可是開啟的時候這個指紋並不是這麼按上去的啊!
因此,失敗。
這應該是支付寶指紋支付成功率低的原因。
而微信呢?
不管你驗證的時候是橫著放手指,還是豎著放手指,或是斜著放手指,就算你喜歡倒著拿手機導致驗證的時候手指是倒著放到指紋模塊上去的。
卻依然可以識別成功,成功率高達9成甚至更高。

以上應該是支付寶指紋成功率僅有七成左右的原因。
但是為什麼識別速度這麼慢的?

通過微信指紋支付的長期使用,我感覺它跟MT7在屏幕指紋解鎖識別的種種相似性。

我覺得應該是支付寶和微信用的是不同的識別方案。
支付寶用的自己解決方案,微信直接引用了MT7的系統的解決方案。

或者說微信在華為的指紋方面擁有更高的許可權,華為和微信官方合作得更好。這也可以解釋為什麼微信剛推出指紋支付的第一時間第一個版本就已經支持了MT7的指紋支付,而且華為第一時間在官方論壇花粉俱樂部發出置頂帖告訴大家:mate7支持微信指紋支付了。

以上扯了這麼多,回到小米指紋支付這事兒上。

首先,我覺得小米以後肯定會支持支付寶指紋支付和微信指紋支付的。

至於為什麼現在沒有支持,我覺得有以下原因

一、正在考慮用哪一種方案來支持支付寶指紋支付和微信指紋支付。
類似我上面所說的支付寶那種?還是類似我上面所說的微信那種?或是其它方案,比如說回答列表中某答主所說那樣小米要做支付底層平台?

二、小米的指紋識別上得太倉促。支付寶和微信與小米官方之間還沒做好關於支付寶指紋支付和微信指紋支付的支持。
或許現在已經在做了呢!

三、如上面所說的魅族的原因一般,小米的指紋安全得不到阿里和騰訊微信的認可。
我個人覺得這個可能性最小,畢竟小米的指紋都晚出那麼久了,技術安全性方面應該是沒什麼問題了。


說什麼怪安卓系統的可以歇歇了。mate7剛上市的時候還是安卓4.4,為啥也支持支付寶指紋支付?而且現在mate7連微信指紋支付和手機QQ的指紋支付都支持了。

說真的,或許小米真的想做自己的一套指紋支付平台。然而呢?用戶只考慮的是能不能用,而不是為什麼不能用?你自己做沒關係啊,關鍵你動作快些啊!小米的第一個指紋手機都出來那麼久了,還不支持。中國人平均換手機的周期也就一年左右而已啊!


雷總想搞支付平台,所以就先委屈一下miui用戶吧
個人猜測是和支付寶、微信就指紋支付的方案上有分歧
別的廠商都不會想去自己搞一套方案出來,基本都是直接用支付寶、微信的方案
小米想做互聯網公司,不能老靠手機賺錢啊,況且目前手機不怎麼賺錢
所以小米自己搞一套支付方案
等他們談吧,談好了自然就有了


這個問題簡單點說就是華為在麒麟soc裡面內置了完整的trust zone,指紋可以通過硬體保證安全性。

小米等高通吧,硬體不能和cpu一起的系統在安卓下面玩不轉


難道不是為了把支付流引到自己的平台里?


小米不想主動適配支付寶和微信,小米想讓支付寶和微信主動適配小米。


S5:三星憋了這麼久指紋解鎖,為什麼弄了個滑動式指紋解鎖?


雷總的手機只是個平台,他的目標是做個生態系統出來。

當然不能把支付讓給別人了。


最新的miui團隊消息,九月底支持支付寶和微信的指紋支付。
這個會促進米5和紅米機型的銷量么?銷售熱點期好像已經過去了。


雷總零利潤的手機不是白拿的,估計自己做支付殺入金融市場


推薦閱讀:

華為 EMUI 使用體驗如何?
如何評價 Smartisan M1 / M1L 及 Smartisan OS 3.1?
魅族的哪些東西支撐了60億美元估值?
為什麼現在很多人都說諾基亞很耐摔?
為什麼有些人現在仍不願意買國產手機?

TAG:小米科技 | Android手機 | 指紋 | 小米手機 | 小米支付MiPay |