国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

聊聊二維碼登錄

Tikitoo / 2076人閱讀

摘要:場景主要的場景有如下幾個掃二維碼登錄版系統(tǒng)比如微信版,在手機(jī)端微信登錄的前提下,掃二維碼確認(rèn),自動登錄網(wǎng)頁版。小結(jié)二維碼掃描登錄是個挺潮流的功能,這要求既有系統(tǒng)增加改造,也要求針對這種形式的登錄帶來潛在的攻擊進(jìn)行安全防范。

本文主要來研究一下二維碼登錄的相關(guān)場景和原理。

場景

主要的場景有如下幾個:

app掃二維碼登錄pc版系統(tǒng)

比如微信web版,在手機(jī)端微信登錄的前提下,掃二維碼確認(rèn),自動登錄網(wǎng)頁版。這里的app可以分為兩大類,一個是自有的app,一個是第三方的app。

自己的app自有認(rèn)證體系,在登錄前提下完成pc端的掃描登錄。
第三方app掃描登錄場景,比如使用手機(jī)端的微信APP掃描登錄PC端系統(tǒng),這種情況下,一般是利用微信的oauth體系,服務(wù)端完成自有賬戶體系與微信賬號的綁定,然后實(shí)現(xiàn)PC端的自動登錄

app掃二維碼作為雙因素驗(yàn)證

比如微信公眾號平臺,在賬戶密碼登錄PC端的情況下,再使用手機(jī)端微信登錄的前提下,掃描二維碼再次確認(rèn),登錄網(wǎng)頁版

Secure QR Login (SQRL)

完全使用二維碼登錄,替代用戶密碼。這個有SQRL協(xié)議及相關(guān)實(shí)現(xiàn)。

步驟

以下所有的都基于這個前提,就是手機(jī)app已經(jīng)登錄,自帶有登錄的憑證,然后要掃描登錄pc端的系統(tǒng)

打開pc端顯示登錄二維碼(pc端未登錄的前提下)

這個時候請求服務(wù)端生成一個登陸二維碼
服務(wù)端生成二維碼,該二維碼包含了這個pc端的唯一標(biāo)識,比如sessionId,或者是新生成一個uuid跟這個sessionId關(guān)聯(lián)

pc端同時開啟輪詢(有長連接等其他實(shí)現(xiàn),這里以輪詢方式介紹)

獲取二維碼之后,pc端開啟定時輪詢,輪詢二維碼的狀態(tài),主要有如下狀態(tài):NEW,SCANED,CONFIRMED,REFUSED,EXPIRED

手機(jī)端掃描二維碼

手機(jī)端已經(jīng)登錄的情況下,掃描網(wǎng)頁二維碼,二維碼狀態(tài)變?yōu)橐褣呙瑁缓笫謾C(jī)端跳轉(zhuǎn)到確認(rèn)頁面

手機(jī)端確認(rèn)

手機(jī)端掃描二維碼之后,點(diǎn)擊確認(rèn),二維碼狀態(tài)變?yōu)榇_認(rèn)

pc端跳轉(zhuǎn)成功/二維碼過期/拒絕

二維碼狀態(tài)變?yōu)榇_認(rèn)之后,跳轉(zhuǎn)自動登錄,完成PC端登錄態(tài)建立
如果app端拒絕這次請求,則二維碼狀態(tài)變?yōu)楸痪芙^,不再輪詢
如果二維碼狀態(tài)在一定時間沒有變化,則顯示二維碼過期,不再輪詢
PC客戶端

請求登錄二維碼

輪詢二維碼狀態(tài)

跳到到登陸后的頁面

手機(jī)客戶端

掃描登錄二維碼

確認(rèn)登錄

服務(wù)端

生成登錄二維碼,綁定二維碼與pc客戶端

處理二維碼輪詢

處理手機(jī)端掃描二維碼

處理手機(jī)端確認(rèn)二維碼登錄

處理pc端自動登錄

實(shí)現(xiàn) PC端如何自動登錄
這個問題相當(dāng)于同一個帳號多設(shè)備同時登錄的問題

在二維碼被具有登錄態(tài)的app端掃描確認(rèn)之后,PC端如何完成自動登錄。有如下幾個方案:

session拷貝

其實(shí)就是在原來基于賬號密碼的登錄鑒權(quán)邏輯基礎(chǔ)上,新增支持無需賬號密碼的登錄。也就相當(dāng)于繞過了基于用戶名密碼,內(nèi)部重新設(shè)置了一個登錄態(tài)
如果是基于session的鑒權(quán),相當(dāng)于基于原有的一個已經(jīng)鑒權(quán)的session,拷貝信息到另外一個新的session中,在server端關(guān)聯(lián)

復(fù)用已有token

如果是基于token的鑒權(quán),一種方案就是復(fù)用token,讓pc端也復(fù)用手機(jī)app端的token,這樣的好處是原來基于token的鑒權(quán)邏輯都不用改

仿照oauth授權(quán)頒發(fā)新token

整個過程其實(shí)有點(diǎn)像oauth,pc端是client,server端是資源和認(rèn)證中心,手機(jī)端是具有登錄態(tài)的用戶。手機(jī)端掃描二維碼,然后用戶確認(rèn)授權(quán),server端給pc端頒發(fā)token,然后pc端就可以訪問server端的資源了。這種就在原來的認(rèn)證基礎(chǔ)上支持另外一類oauth的token校驗(yàn),貌似有點(diǎn)復(fù)雜
另外一個變形是新頒發(fā)token,但跟app端的token有個關(guān)聯(lián)映射,最終鑒權(quán)的時候還去找原來授權(quán)的token去鑒權(quán),這樣的好處是原來的token失效,經(jīng)過它授權(quán)的token也失效
二維碼過期

一種是基于redis來做過期,一種是使用數(shù)據(jù)庫,但是設(shè)置expired time來判斷

安全問題

QRLJacking全稱Quick Response Code Login Jacking,是session劫持的一種。

原理

具體是怎么劫持的呢,假設(shè)攻擊者將web登錄二維碼偽裝為公眾號二維碼,讓用戶去掃描,用戶一不小心點(diǎn)擊確認(rèn),攻擊者的就可以登錄用戶的web系統(tǒng),或者利用那個token/session去盜取用戶的相關(guān)信息或做相關(guān)操作。

防范

二維碼超時機(jī)制

二維碼增加超時機(jī)制之后,會增加攻擊者攻擊的難度,不過攻擊者也可能利用腳本去自動刷新二維碼

確認(rèn)機(jī)制

二維碼掃描一定要有這個確認(rèn)的頁面,明確告知用戶要做的操作,假設(shè)沒有確認(rèn)這個環(huán)節(jié),那么是極其容易上當(dāng)?shù)摹A硗猓S碼掃描確認(rèn)之后,再往用戶app或手機(jī)等發(fā)送登錄提醒的通知,告知如果不是本人登錄的,則建議用戶立即修改密碼

Sound-based Authentication

確認(rèn)階段改為雙邊語音確認(rèn),而不是簡單的用戶點(diǎn)擊確認(rèn)按鈕。語音是根據(jù)用戶id、二維碼id等加密生成,在app端播放,然后pc端語音識別之后才能完成整個登錄過程。這個可以有效防止遠(yuǎn)程攻擊。同樣的思路,改語音為one time password也行,增加了確認(rèn)過程的復(fù)雜度,也就增加了攻擊的難度。

小結(jié)

二維碼掃描登錄是個挺潮流的功能,這要求既有系統(tǒng)增加改造,也要求針對這種形式的登錄帶來潛在的攻擊進(jìn)行安全防范。

doc

SQRL (Secure Quick Reliable Login)

掃碼登錄的安全性分析

模擬實(shí)現(xiàn)微信掃描二維碼登錄PC網(wǎng)站

Web應(yīng)用多賬號系統(tǒng)設(shè)計及微信掃碼登錄實(shí)現(xiàn)

即時通信系統(tǒng)中如何實(shí)現(xiàn):支持PC端和移動端同時在線(即支持同帳號多設(shè)備同時登錄)?

Quick authentication using mobile devices and QR Codes

OWASP Qrljacking

QRLJacking:如何劫持快速登陸時使用的二維碼

微信Netting-QRLJacking分析利用-掃我二維碼獲取你的賬號權(quán)限

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/11294.html

相關(guān)文章

  • Vue2 全家桶仿 微信App 項目,支持多人在線聊天和機(jī)器人聊天

    摘要:前言這個項目是利用工作之余寫的一個模仿微信的單頁面應(yīng)用,整個項目包含個頁面,涉及實(shí)時群聊,機(jī)器人聊天,同學(xué)錄,朋友圈等等,后續(xù)頁面還是開發(fā)中。 前言 這個項目是利用工作之余寫的一個模仿微信app的單頁面應(yīng)用,整個項目包含27個頁面,涉及實(shí)時群聊,機(jī)器人聊天,同學(xué)錄,朋友圈等等,后續(xù)頁面還是開發(fā)中。寫這個項目主要目的是練習(xí)和熟悉vue和vuex的配合使用,利用socket.io實(shí)現(xiàn)實(shí)時聊...

    iliyaku 評論0 收藏0
  • 【小家Spring】聊聊Spring中的數(shù)據(jù)綁定 --- DataBinder本尊(源碼分析)

    摘要:對中的數(shù)據(jù)綁定場景,小伙伴們就再熟悉不過了。比如包下大名鼎鼎的源碼分析的源碼相對來說還是頗為復(fù)雜的,它提供的能力非常強(qiáng)大,也注定了它的方法非常多屬性也非常多。并且備注入群字樣,會手動邀請入群 每篇一句 唯有熱愛和堅持,才能讓你在程序人生中屹立不倒,切忌跟風(fēng)什么語言或就學(xué)什么去~ 相關(guān)閱讀 【小家Spring】聊聊Spring中的數(shù)據(jù)綁定 --- 屬性訪問器PropertyAccesso...

    charles_paul 評論0 收藏0
  • 聊聊qrcode的detect position

    摘要:序本文主要介紹下的,也就是定位圖案,用于定位一張圖片中二維碼所處的位置。分類分為三類是和的原型,從到共種尺寸。是的改良版本,添加了對齊標(biāo)記,從到共種尺寸。這里默認(rèn)有個的概念,不同的對應(yīng)不同的尺寸大小。最高,,所以最高是的矩陣。 序 本文主要介紹下qrcode的detect position,也就是定位圖案,用于定位一張圖片中二維碼所處的位置。 qrcode分類 QRCode 分為 Mo...

    legendaryedu 評論0 收藏0

發(fā)表評論

0條評論

Tikitoo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<