安基網 首頁 電腦 殺毒安全 查看內容

為什么密碼設置為“jK8v!ge4D”仍然不安全?

2020-6-2 12:21| 投稿: xiaotiger |來自: 互聯網


免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!

摘要: 編者按:如果你仔細留意的話,你會發現,在大多數平臺上,當你創建賬號時,平臺或系統會對你的賬號密碼設置設定一系列要求。其中,最常見的就是,密碼設置必須包括一個大小寫字母、數字和特殊符號,并且密碼不得少于8個字符。然而,這并不是安全的密碼設置方式。這篇文章,原標題是Why jK8v!ge4D isn’ ...

編者按:如果你仔細留意的話,你會發現,在大多數平臺上,當你創建賬號時,平臺或系統會對你的賬號密碼設置設定一系列要求。其中,最常見的就是,密碼設置必須包括一個大小寫字母、數字和特殊符號,并且密碼不得少于8個字符。然而,這并不是安全的密碼設置方式。這篇文章,原標題是Why jK8v!ge4D isn’t a good password,前端開發師Jacob Bergdahl在文章中分析了這種密碼設置方式的不安全性,同時又跟大家分享了一種更安全的密碼設置方式,希望對你有用。


首先,請仔細看看下面兩組密碼。你認為破解哪組密碼更簡單呢?你認為哪組密碼更方便記憶呢?

jK8v!ge4D(含大小寫字母、數字和符號)

greenelephantswithtophats(戴著禮帽的綠色大象)

對于這個兩個問題,無論從破解容易度,還是記憶方便度來說,答案都是第二組密碼。

然而,在各種互聯網的各種平臺上,我們仍然在采用看起來像第一組密碼的方式來設置密碼。大家都想當然地認為,只要密碼設置地過于復雜,不方便記憶,那這個密碼就不容易破解。

接下來,我們就詳細來聊聊這個話題。

在互聯網標準方面,實際上存在許多奇幻的事情。其中,就包括驗證。作為一名前端開發者,我的工作就包括去驗證用戶輸入在那些所謂“輸入框”中的內容。這些所謂的輸入框,包括用戶名、郵箱地址、家庭住址、電話號碼等等。

作為前端開發者,我們的工作職責就是要保證用戶在使用我們的產品過程中,不會惡意輸入或者錯誤輸入不符合既定格式要求的文本內容。

例如,郵政編碼文本框通常就只允許填入空格和數字。如果我們知道用戶來自哪個國家,我們還可以對這個文本框的格式做出更加明確的限制。電話號碼文本框通常都包括一系列數字,一個加號符號(通常都在最前面),以及一個破折號,有的情況下可能還包括圓括號。

郵箱地址的驗證就相對麻煩。然而,常規的做法是,它必須包括“@”符號,然后后面還需要包括一個小數點。在某些網站,他們會要求用戶在填寫用戶名的過程中,限制用戶填入的名字字符長度,有的還會限制其只能選用某些特定的字符。

驗證之所以存在,主要是基于以下幾個原因。

首先,安全因素。驗證可以防止用戶在文本框中輸入亂七八糟的信息,從而增加改變數據庫或者引發其它惡意行為的可能性。

其次,它可以確認某種特定的數據類型。如果某個文本框只能包含數字的話,數據庫工程師就可以以此來建立一個僅含數字的數據庫。這即意味著,如果出現了非數字字符的話,就可能會出現錯誤。

然而,驗證存在的最核心原因,實際上是幫助用戶避免錯誤。

用密碼設置規則來迫使你設置密碼

從某種程度上來講,前端開發者應該為用戶提供全方位的幫助,讓用戶設置并輸入一個從傳統意義上來講非常安全的密碼。它至少應該包含8位字符,其中還包括大小寫字母、一個數字,如果還沒有安全感的話,甚至還可以加入感嘆號等特殊符號。

基于此,“jK8v!ge4D”通常都會被視作是一個非常安全的密碼典范。毫不夸張地說,在絕大多數的互聯網平臺上,平臺都會要求你按照這種模式來設置密碼,因此,你可能就會認為,這種組合的密碼就是非常安全的密碼。

然而,這種組合的密碼并不安全。它反而是非常愚笨的密碼設置方式,是一個極容易被破解的密碼。

首先,這種密碼設置方式,會增加用戶記憶密碼的復雜程度。他們很有可能無法記住自己設置的密碼,從而“另辟蹊徑”,在筆記本或者其它地方把這個密碼記錄并保存下來,而這種方式也很容易被他人“破解”。

其次,由于大多數密碼都采取這樣的密碼設置組合,就復雜性而言,已經是其心目中的復雜密碼了。因此,為了避免不必要的麻煩,他們可能會在各種平臺和設備上都采用相同的密碼。

當你在某個網站上創建賬號時,后臺的一些“神奇魔法”,會將你設置的密碼轉變成一串散列(散列也 經常被錯誤地視作為加密技術)。通過這么一個步驟,你設置的密碼,可能在數據庫中就會顯示成這樣:k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX。

即便數據庫被黑客入侵,黑客拿到這些散列也無法提取有用的信息。如果密碼設置非常大眾化,并且相關算法也非常簡單的話,那仍然有可能根據這個散列來破解原密碼。不過,只要密碼設置妥當、散列生成過程也正常的話,它大體上仍然是非常安全的。

但問題在于,不是所有的平臺或者設備都會為用戶的密碼生成散列。如果你把相同的密碼用于多個平臺和設備的話,也許你使用的某個平臺其后臺編碼非常簡單,而你的密碼也是直接一字不差地以原密碼文本形式存在于其數據庫中。如果他們的數據庫遭到攻擊,那你可能會暴露所有平臺和設備上相同的密碼。這么說來就相當可怕了,而實際上,真實情況比我們想象的還要可怕。

因此,我個人建議,對于不同的平臺,還是要設置不同的密碼。然而,值得注意的是,如今大多數用戶在各個平臺上都有大量的賬戶。如果設置不同的密碼,怎么才能記住所有的密碼呢?一些超級用戶可能會使用密碼工具,來幫助其生成并管理密碼,但一般用戶基本上都沒有這么做。

實際上,其實還有更好的密碼設置方法。


破解密碼需要多久?

我們先看看“gtypohgt”這個密碼。它由八個隨意的字母符號組成,全部都是小寫字母。對于這種密碼,要破解它只需要幾分鐘的時間。

如果把其中某幾個字符換成數字,比如“g9ypo3gt”,那破解時間至少就需要一個小時了。如果再把其中的小寫字母換成大寫字母,比如“g9YPo3gT”,那可能需要幾天才能破解成功。另外,如果你再往里面添加一個特殊字符,比如“g9Y!o3gT”,那可能破解這個密碼都需要一個月的時間。

“g9Y!o3gT”這個密碼設置組合,就是我們通常所認為的安全密碼。這樣的密碼設置,很難被他人猜到,也完全不屬于常規設置密碼。要破解這樣的密碼,的確需要一定的時間。但問題在于,這樣的密碼設置,會直接增加用戶的記憶難度。

然后,我們再看另一組密碼“greenelephantswithtophats(戴著禮帽的綠色大象)”。這組密碼包括24個小寫字母,沒有數字、隨機字母和特殊字符。雖然你會認為這樣的密碼設置非常簡單,但要想破解這樣的密碼,可能需要至少上百萬年時間。

所以,只要你在密碼組合中增加一個字符,破解這個密碼的難度實際上是在呈幾何數增長。前述24個字符的密碼,并不像一般的“666888”“elephant(大象)”等常用的密碼,而且也很難讓人猜測。

這才是安全的密碼

因此,我建議,設置密碼,最好就讓這個密碼變成一個故事。比如,在設置Facebook賬號的密碼時,你可以使用“afaceforabookbutapizzaforahorse(書有一張臉,但馬有一個披薩)”。總之,最好通過視覺呈現的方式來設置你的密碼。

我們的記憶強項,反而就是在這些特殊內容的記憶方面。突然之間,你的密碼就非常強大了,而且不僅記憶方便,而且還可以避免過于重復。此外,即便是跟你關系密切的人,恐怕也很難去猜測這些密碼。

日常談話中,你肯定很少會提到烏龜吧?那你是否見到過紫色的烏龜呢?肯定沒有吧。那么,不妨嘗試下,在腦海中視覺呈現一只紫色的烏龜。然后你就可以這樣設置一串密碼:“ioncesawapurpleturtleiswear(我發誓我曾經見過一只紫色烏龜)”。要破解這樣的密碼,至少需要上百萬年的時間,甚至連跟你睡在一張床上的伴侶都可能猜不到。


對于“walkingdowngrandpasroadwithlittlerufus (和魯夫斯一起在爺爺家門前走過)”這個密碼,破解可能需要上百萬年時間。即便有人知道魯夫斯是你的寵物狗,他們也很難猜到你會這樣來設置密碼。圖片來源:Jamie Street

從視覺化效果方面來講,以下這些密碼都非常容易呈現出來。

flyingcarsthatcannotflyarenotflying:如果不會飛的汽車就不是飛車。

applesmaybegreatbutpearsarelikeheaven:蘋果雖然好,但梨子卻更好。

goatswithshoesenjoytrainsonrainydays:穿鞋的山羊喜歡在雨天搭火車。

總之,其他人很難猜測這些密碼。

然而,可能有些網站會不允許用戶這樣設置密碼。根據其設定的密碼設置規則,這個密碼中沒有包含數字或大寫字母、密碼過長,或者處于其他非技術因素無法設置該密碼。

因此,你也可以通過一些小伎倆來“騙”這個系統。比如,在任何密碼字符串的最后添加“A1!”。現在,你設置的密碼既有大小寫字母,也有數字和特殊字符了。只要密碼設置沒有對字符長度有要求的,那這個密碼肯定就可以設置成功。

即便你在所有的密碼字符串后面都添加同樣的“A1!”,但前面字符串的不同,仍然會保障該密碼的安全性。無論是“ioncesawapurpleturtleiswear(我發誓我曾經見過一只紫色烏龜)”,還是“ioncesawapurpleturtleiswearA1!(我發誓我曾經見過一只紫色烏龜A1!)”,要想破解它們,都是不太可能的。因此,在密碼字符串的最后加上“A1!”,除了稍微有點不方便之外,沒有其它弊端。

實際上,前端開發者之所以制定相關密碼設置規則,其初衷也都是好的。畢竟,許多人并不重視密碼安全問題,通常都會設置“123456789”“666888”“elephant(大象)”等極其容易破解的常見密碼。

對于網站運營方而言,他們肯定不想發生任何數據泄露相關的丑聞。因此,即便可能會造成一系列麻煩,但他們只好強迫讓用戶設置一個相對安全的密碼。

當你下次設置密碼的生活,你可以嘗試用本文中提到的技巧來設置你的密碼。當然,結合此方法,你也可以用拼音的方式來設置密碼。比如“wofashiwocengjingjianguoyizhizisewugui(我發誓我曾經見過一只紫色烏龜)”。

總之,在密碼設置過程中,既要方便你自己記憶,同時要讓別人無法破解。

當然,即便你對這樣的密碼設置技巧不感興趣,那你最好千萬不要設置“123456”“qwerty(順著鍵盤按鍵隨意輸入幾位字符)”等密碼。這些密碼,極度不安全,也非常容易被破解。

所以,對于這樣的用戶而言,我們前端開發者只好強迫你設置“jK8v!ge4D”這樣的密碼。

譯者:俊一


來源:36氪



小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里 注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!

本文出自:https://www.toutiao.com/i6832635671442620942/

免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!


鮮花

握手

雷人

路過

雞蛋

相關閱讀

最新評論

 最新
返回頂部
创业如何赚钱 海南大公鸡七星彩下载安装 极速十一选五网站 云南时时彩最快开奖 海南4 1彩票规律图 山东11选5五码分布走势图 pk10全天人工计划网站 重庆福利彩票官方网站 黑龙江36选7走势图大星网 股票黑马k线图 秒速飞艇客户端平台 甘肃11选5电视走势图 鑫亿配资 云南快乐十分直三预测 湖北11选5前三直遗漏 福利p62彩票开奖结果 湖北11选5走势图一定牛牛彩