Keycloak暴力檢測(cè)和OTP驗(yàn)證

我最近一直在研究如何給Keycloak的登錄頁(yè)面加上驗(yàn)證碼功能拂封,Keycloak的7.0.x目前是沒(méi)有登錄驗(yàn)證碼的。不過(guò)可惜的是贴见,到目前為止我也沒(méi)成功實(shí)現(xiàn)驗(yàn)證碼功能烘苹。但我在這個(gè)過(guò)程中發(fā)現(xiàn)了另外兩個(gè)Keycloak自帶的能替代驗(yàn)證碼的功能。

暴力檢測(cè)(Brute Force Detection)

首先我們需要明確片部,驗(yàn)證碼(CAPTCHA)到底有什么作用镣衡。我從百度百科搜索到的定義如下:

驗(yàn)證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自動(dòng)區(qū)分計(jì)算機(jī)和人類(lèi)的圖靈測(cè)試)的縮寫(xiě)霜定,是一種區(qū)分用戶(hù)是計(jì)算機(jī)還是人的公共全自動(dòng)程序±扰福可以防止:惡意破解密碼望浩、刷票、論壇灌水惰说,有效防止某個(gè)黑客對(duì)某一個(gè)特定注冊(cè)用戶(hù)用特定程序暴力破解方式進(jìn)行不斷的登陸嘗試磨德,實(shí)際上用驗(yàn)證碼是現(xiàn)在很多網(wǎng)站通行的方式,我們利用比較簡(jiǎn)易的方式實(shí)現(xiàn)了這個(gè)功能吆视。這個(gè)問(wèn)題可以由計(jì)算機(jī)生成并評(píng)判典挑,但是必須只有人類(lèi)才能解答。由于計(jì)算機(jī)無(wú)法解答CAPTCHA的問(wèn)題啦吧,所以回答出問(wèn)題的用戶(hù)就可以被認(rèn)為是人類(lèi)您觉。

那么我們現(xiàn)在知道了,驗(yàn)證碼的一個(gè)重要功能是防止暴力破解密碼授滓。如果只說(shuō)防止暴力破解這個(gè)功能琳水,Keycloak其實(shí)內(nèi)置了相似的功能。這就是暴力檢測(cè)般堆。

配置

配置暴力檢測(cè)只需要在realm->安全防護(hù)->強(qiáng)力檢測(cè)中開(kāi)啟此功能在孝。


image.png

開(kāi)啟暴力檢測(cè)功能后。如遇到暴力檢測(cè)淮摔,可以臨時(shí)鎖定賬號(hào)私沮,或永久鎖定賬號(hào)(需開(kāi)啟Permanent Lockout)。
臨時(shí)鎖定賬號(hào)后噩咪,過(guò)一段時(shí)候后顾彰,該賬號(hào)會(huì)自動(dòng)解鎖。永久鎖定的賬號(hào)胃碾,需要登錄keycloak管理控制臺(tái)手動(dòng)解鎖。

其他的一些配置我們可以看給出的字段筋搏。例如仆百,最大登錄失敗次數(shù)指的是,密碼輸錯(cuò)3次后鎖定賬戶(hù)奔脐。

OTP驗(yàn)證

什么是OTP

如果你玩過(guò)一款叫做《夢(mèng)幻西游》的游戲俄周,那你大概知道將軍令這個(gè)東西。這個(gè)東西是一個(gè)安全防護(hù)實(shí)體工具髓迎。目的是為了保護(hù)玩家賬號(hào)安全峦朗。具體使用上就是會(huì)給你一個(gè)電子表一樣的東西,上面有個(gè)按鈕排龄,每次一按就出現(xiàn)一組數(shù)字波势。


將軍令

在輸入賬號(hào)密碼的時(shí)候需要額外輸入將軍令上顯示的數(shù)字,然后才能登陸。
這種每次登陸都需要輸入尺铣,每次的密碼都不一樣的登錄方式就是OTP(One Time Password拴曲,也就是一次性口令)

一次性密碼(One Time Password,簡(jiǎn)稱(chēng)OTP)凛忿,又稱(chēng)“一次性口令”澈灼,是指只能使用一次的密碼。一次性密碼是根據(jù)專(zhuān)門(mén)算法店溢、每隔60秒生成一個(gè)不可預(yù)測(cè)的隨機(jī)數(shù)字組合叁熔,iKEY一次性密碼已在金融、電信床牧、網(wǎng)游等領(lǐng)域被廣泛應(yīng)用荣回,有效地保護(hù)了用戶(hù)的安全。

OTP的大致原理是以時(shí)間差做為服務(wù)器與密碼產(chǎn)生器的同步條件叠赦。在需要登錄的時(shí)候驹马,就利用密碼產(chǎn)生器產(chǎn)生動(dòng)態(tài)密碼。生成的密碼在輸入之后即作廢除秀。

以前的手機(jī)普及力度不夠糯累,所以需要單獨(dú)購(gòu)買(mǎi)硬件載體來(lái)顯示密碼。現(xiàn)在手機(jī)幾乎人手一部册踩,因此現(xiàn)在使用手機(jī)App作為OTP密碼的載體泳姐。我們下面看看Keycloak中是如何使用OTP來(lái)驗(yàn)證登錄的。

如何使用FreeOTP

image.png

開(kāi)啟OTP需要在Keycloak的驗(yàn)證中在瀏覽器登陸流中把OTP Form設(shè)置為REQUIRED暂吉。
image.png

然后我們從手機(jī)上下載一個(gè)FreeOTP App胖秒,打開(kāi)App之后掃描上面的二維碼或者輸入App上顯示的六位數(shù)字就可以登陸了。
你也可以在驗(yàn)證菜單的OTP策略中設(shè)置OTP的一些參數(shù)
image.png

參考文章

iOS Developer的全棧之路 - Keycloak(9) - 簡(jiǎn)書(shū)
OTP原理及實(shí)現(xiàn) - OSCHINA
一次性密碼 - 百度百科

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慕的,一起剝皮案震驚了整個(gè)濱河市阎肝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肮街,老刑警劉巖风题,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嫉父,居然都是意外死亡沛硅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)绕辖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)摇肌,“玉大人,你說(shuō)我怎么就攤上這事仪际∥。” “怎么了昵骤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)吩抓。 經(jīng)常有香客問(wèn)我涉茧,道長(zhǎng),這世上最難降的妖魔是什么疹娶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任伴栓,我火速辦了婚禮,結(jié)果婚禮上雨饺,老公的妹妹穿的比我還像新娘钳垮。我一直安慰自己,他們只是感情好额港,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布饺窿。 她就那樣靜靜地躺著,像睡著了一般移斩。 火紅的嫁衣襯著肌膚如雪肚医。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天向瓷,我揣著相機(jī)與錄音肠套,去河邊找鬼。 笑死猖任,一個(gè)胖子當(dāng)著我的面吹牛你稚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播朱躺,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼刁赖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了长搀?” 一聲冷哼從身側(cè)響起宇弛,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎源请,沒(méi)想到半個(gè)月后涯肩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巢钓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疗垛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片症汹。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贷腕,靈堂內(nèi)的尸體忽然破棺而出背镇,到底是詐尸還是另有隱情咬展,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布瞒斩,位于F島的核電站破婆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏胸囱。R本人自食惡果不足惜祷舀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烹笔。 院中可真熱鬧裳扯,春花似錦、人聲如沸谤职。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)允蜈。三九已至冤吨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饶套,已是汗流浹背漩蟆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凤跑,地道東北人爆安。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像仔引,于是被迫代替她去往敵國(guó)和親扔仓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359