輸入驗證碼保護賬號安全的原理是什麼?

每次網頁登陸某賬號總提示『為了你的賬號安全,請輸入驗證碼』。我想知道,驗證碼是如何保護賬號安全的?

求專業人士以非專業的通俗易懂的語言解釋。3q


一是保護你的密碼不被暴力破解。更近一步,也許你的密碼在其他地方被泄露了,但是攻擊者不可能每個網站手工試下來,多數使用工具來「撞庫」,也可防止一部分賬號泄露。

二是防止網站被機器人惡意註冊登陸等。

總的來說,是用來鑒別人還是機器的方法,防止賬號被機器或者工具惡意操作。


正好我畢業論文就是做這個。。。

驗證碼是一種「逆圖靈測試」,也就說,是區分計算機和人的,它的目的就是防止計算機冒充人執行一些操作。

驗證碼的起因就是有個網站搞了個在線投票,評比哪個學校更好。MIT和哪個學校(忘記了)的學生,寫了個腳本,自動跟那刷票,結果當然這兩個學校的票數遙遙領先。。如果有驗證碼的話,就非常難自動地刷了。人的視覺(圖像由神經元處理,首先看到的是整體,再局部細化,一個非常複雜的過程)和計算機看待圖片(像素為單位,RGB值,本質就是處理一個個矩陣)是不一樣的。驗證碼設計的目的就是,適合人類看,讓人看的舒服,好辨認,而讓計算機死活無法自動識別。


密碼學學得不好,舉個簡單例子。比如這個賬號的密碼規則是6位數字,那麼一共有1000000種密碼結構,其他人只需要不停地試錯就可以進入你的賬號。增加驗證碼後,由於每次驗證碼都不同,其他人無法自動識別驗證碼(方法還是有的,只是變複雜而已)或是增加了試錯的時間,這樣就有效抵禦了這種攻擊。

期待更專業的回答。


驗證碼,只能增加破解賬號的成本和防治機器人註冊登錄。但是並不是所謂的二次驗證方式。想要賬號真正安全,還是要盡量打開二次驗證機制,或者使用時下最流行的生物識別技術。例如洋蔥令牌。


推薦閱讀:

信用卡管理 Apps 通過郵件讀取賬單,為什麼會有這麼過分的設計?
二維碼的每塊區域代表什麼信息?
為什麼滲透測試中經常利用power shell入侵但是它還是默認開著?
搞滲透是否需要掌握至少一門伺服器腳本語言 還需要什麼基礎呢? 豐富的網路知識?
根據mysql報錯進行回顯注入的原理是什麼?

TAG:網路安全 | 驗證碼 | 信息安全 | 動態驗證碼 | IT行業 |