• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            Google賬戶兩步驗(yàn)證的工作原理

            轉(zhuǎn)載自:http://blog.seetee.me/archives/73.html

            我們往往會在不同的網(wǎng)站上使用相同的密碼,這樣一旦一個(gè)網(wǎng)站賬戶的密碼泄露,就會危及到其他使用相同密碼的賬戶的安全,這也是最近的密碼泄露事件造成如此大影響的原因。為了解決這個(gè)問題,一些網(wǎng)站在登錄時(shí)要求除了輸入賬戶密碼之外,還需要輸入另一個(gè)一次性密碼。銀行常用的動態(tài)口令卡就是這種一次性密碼的例子,在線支付網(wǎng)站的一次性短信密碼則是另一種實(shí)現(xiàn)。

            Google現(xiàn)在也推薦用戶啟用兩步驗(yàn)證(Two-step verification)功能(Youtube上的視頻介紹),并且除了以短信或者電話的方式發(fā)送一次性密碼之外,還提供了另一種基于時(shí)間的一次性密碼(Time-based One-time Password,簡稱TOTP),只需要在手機(jī)上安裝密碼生成應(yīng)用程序,就可以生成一個(gè)隨著時(shí)間變化的一次性密碼,用于帳戶驗(yàn)證,而且這個(gè)應(yīng)用程序不需要連接網(wǎng)絡(luò)即可工作。仔細(xì)看了看這個(gè)方案的實(shí)現(xiàn)原理,發(fā)現(xiàn)挺有意思的。下面簡單介紹一下。

            Google的兩步驗(yàn)證算法源自另一種名為HMAC-Based One-Time Password的算法,簡稱HOTP。HOTP的工作原理如下:

            客戶端和服務(wù)器事先協(xié)商好一個(gè)密鑰K,用于一次性密碼的生成過程,此密鑰不被任何第三方所知道。此外,客戶端和服務(wù)器各有一個(gè)計(jì)數(shù)器C,并且事先將計(jì)數(shù)值同步。

            進(jìn)行驗(yàn)證時(shí),客戶端對密鑰和計(jì)數(shù)器的組合(K,C)使用HMAC(Hash-based Message Authentication Code)算法計(jì)算一次性密碼,公式如下:

            HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))

            上面采用了HMAC-SHA-1,當(dāng)然也可以使用HMAC-MD5等。HMAC算法得出的值位數(shù)比較多,不方便用戶輸入,因此需要截?cái)啵═runcate)成為一組不太長十進(jìn)制數(shù)(例如6位)。計(jì)算完成之后客戶端計(jì)數(shù)器C計(jì)數(shù)值加1。用戶將這一組十進(jìn)制數(shù)輸入并且提交之后,服務(wù)器端同樣的計(jì)算,并且與用戶提交的數(shù)值比較,如果相同,則驗(yàn)證通過,服務(wù)器端將計(jì)數(shù)值C增加1。如果不相同,則驗(yàn)證失敗。

            這里的一個(gè)比較有趣的問題是,如果驗(yàn)證失敗或者客戶端不小心多進(jìn)行了一次生成密碼操作,那么服務(wù)器和客戶端之間的計(jì)數(shù)器C將不再同步,因此需要有一個(gè)重新同步(Resynchronization)的機(jī)制。這里不作具體介紹,詳情可以參看RFC 4226。

            介紹完了HOTP,Time-based One-time Password(TOTP)也就容易理解了。TOTP將HOTP中的計(jì)數(shù)器C用當(dāng)前時(shí)間T來替代,于是就得到了隨著時(shí)間變化的一次性密碼。非常有趣吧!

            雖然原理很簡單,但是用時(shí)間來替代計(jì)數(shù)器會有一些特殊的問題,這些問題也很有意思,我們選取幾個(gè)進(jìn)行一下探討。

            首先,時(shí)間T的值怎么選取?因?yàn)闀r(shí)間每時(shí)每刻都在變化,如果選擇一個(gè)變化太快的T(例如從某一時(shí)間點(diǎn)開始的秒數(shù)),那么用戶來不及輸入密碼。如果選擇一個(gè)變化太慢的T(例如從某一時(shí)間點(diǎn)開始的小時(shí)數(shù)),那么第三方攻擊者就有充足的時(shí)間去嘗試所有可能的一次性密碼(試想6位數(shù)字的一次性密碼僅僅有10^6種組合),降低了密碼的安全性。除此之外,變化太慢的T還會導(dǎo)致另一個(gè)問題。如果用戶需要在短時(shí)間內(nèi)兩次登錄賬戶,由于密碼是一次性的不可重用,用戶必須等到下一個(gè)一次性密碼被生成時(shí)才能登錄,這意味著最多需要等待59分59秒!這顯然不可接受。綜合以上考慮,Google選擇了30秒作為時(shí)間片,T的數(shù)值為從Unix epoch(1970年1月1日 00:00:00)來經(jīng)歷的30秒的個(gè)數(shù)。

            第二個(gè)問題是,由于網(wǎng)絡(luò)延時(shí),用戶輸入延遲等因素,可能當(dāng)服務(wù)器端接收到一次性密碼時(shí),T的數(shù)值已經(jīng)改變,這樣就會導(dǎo)致服務(wù)器計(jì)算的一次性密碼值與用戶輸入的不同,驗(yàn)證失敗。解決這個(gè)問題個(gè)一個(gè)方法是,服務(wù)器計(jì)算當(dāng)前時(shí)間片以及前面的n個(gè)時(shí)間片內(nèi)的一次性密碼值,只要其中有一個(gè)與用戶輸入的密碼相同,則驗(yàn)證通過。當(dāng)然,n不能太大,否則會降低安全性。

            事實(shí)上,這個(gè)方法還有一個(gè)另外的功能。我們知道如果客戶端和服務(wù)器的時(shí)鐘有偏差,會造成與上面類似的問題,也就是客戶端生成的密碼和服務(wù)端生成的密碼不一致。但是,如果服務(wù)器通過計(jì)算前n個(gè)時(shí)間片的密碼并且成功驗(yàn)證之后,服務(wù)器就知道了客戶端的時(shí)鐘偏差。因此,下一次驗(yàn)證時(shí),服務(wù)器就可以直接將偏差考慮在內(nèi)進(jìn)行計(jì)算,而不需要進(jìn)行n次計(jì)算。

            以上就是Google兩步驗(yàn)證的工作原理,推薦大家使用,這確實(shí)是保護(hù)帳戶安全的利器。

            參考資料

            1. TOTP: Time-based One-time Password Algorithm, RFC Draft, http://tools.ietf.org/id/draft-mraihi-totp-timebased-06.html
            2. HOTP: An HMAC-Based One-Time Password Algorithm, RFC 4226, http://tools.ietf.org/html/rfc4226
            3. Google Authenticator project, http://code.google.com/p/google-authenticator/

            posted on 2014-06-07 12:25 楊粼波 閱讀(564) 評論(0)  編輯 收藏 引用

            久久久久无码精品国产| 秋霞久久国产精品电影院| 97精品伊人久久大香线蕉| 久久久久精品国产亚洲AV无码| 久久无码中文字幕东京热| 精品熟女少妇AV免费久久| 国产亚洲婷婷香蕉久久精品| 久久影视综合亚洲| 97久久香蕉国产线看观看| 久久99精品国产麻豆蜜芽| 久久精品亚洲精品国产色婷| 色综合合久久天天给综看| 久久综合88熟人妻| 怡红院日本一道日本久久| 久久精品国产久精国产果冻传媒| 99久久99久久久精品齐齐| 亚洲精品乱码久久久久久蜜桃| 国产V综合V亚洲欧美久久| 久久精品视频一| 伊人久久一区二区三区无码| 久久99久久99小草精品免视看| 国产精品久久久久久久久软件| 久久综合久久综合九色| 久久国产精品无码HDAV| 久久久久久久波多野结衣高潮 | 国产亚洲婷婷香蕉久久精品| 狠狠精品久久久无码中文字幕 | 激情伊人五月天久久综合| 精品久久久一二三区| 亚洲国产天堂久久久久久| 久久久久黑人强伦姧人妻| 久久国产精品偷99| 久久久久国产| 久久亚洲视频| 久久久久噜噜噜亚洲熟女综合| 亚洲国产精品久久久久网站| 国产成人无码精品久久久久免费| 久久免费高清视频| 久久99亚洲综合精品首页| 久久久久久久久久久免费精品 | 久久亚洲欧美日本精品|