聊聊密碼安全

密碼就是用來保障我們賬戶安全的,我設置了密碼,并且記住了密碼是什么,所以我的賬戶很安全。

那么,你的密碼是安全的嗎?

熟悉小老鼠的人都知道,他隔三差五的喜歡在他的各種圈子里喊幾句——推薦大家學習使用密碼管理器啊。反正也沒人搭理他,他就這么自說自話,自己堅持著。今天早上看到數碼荔枝的公眾號發布了一篇關于密碼管理器的文章,于是小老鼠又想起了這件事情,這次決定多絮叨絮叨.

反正也沒人看什么的,就當自己解悶兒了;那個說先碼后看的,你可以走開了,碼過就等于看過這種騙老鼠的把戲,沒什么意思。哼~傲嬌!

一、暴力破解

這是最簡單直接的方法。誒,什么方法?干什么的?你在說什么?

……如果黑客同學想要獲得你賬戶的密碼,或者其他的各種什么密碼,都可以用這個方法。道理很簡單,就不斷嘗試就可以了。

那么我舉一個簡單的例子,我行李箱上的密碼鎖是三位的數字,所以就從 000 開始嘗試,然后 001、002……直到 999。只要堅持下去,總有一個能夠打開,所以這個方法很粗暴很直接,也很有效。

唯一的問題是,我們可能沒有耐性自己去挨個嘗試,不過電腦似乎最擅長做這種重復枯燥的工作了,而且它的運算速度極快。像這種只有 1000 個可能性的事情,對它來說真的連一秒都用不了。雖然每次去驗證這個密碼是否可用,可能會花費更長一點的時間,但是 1000 這個數量實在太小了。結果就是無論你怎么設置密碼,破解不了算我輸。

那這樣的密碼就沒有什么安全可言。

了解了這個,大家只要稍微思考一下,就很容易明白:

  • 純數字的密碼不如數字和字母混合的密碼安全;
  • 位數短的密碼不如位數長的密碼安全。

那位認真聽課的同學立刻就急了——我現在的各類支付密碼都是 6 位數字,這也太不安全了!

我們上面說這些密碼很容易破解,是因為需要嘗試的次數很少,對于電腦來說實在不算多大事情。但是我們可以增加每一次嘗試的時間成本,來適當的提高這個安全性。比如我們的行李箱,如果沒有特別情況,并不會有人用專門的電子設備去對它進行破解,而手動嘗試 1000 次的時間就太長了。我們先不考慮運氣好兩三次就碰到正確密碼的特殊情況,畢竟那是特例,即便是取一個平均值,也要嘗試 500 次左右。反正都不是一個你愿意去手動操作的次數,對于想要打開密碼鎖去盜竊東西的竊賊來說,這個時間消耗也是非常不合理的,所以他在一定程度上還是保障了安全性。

而銀行的支付密碼,如果連續三次輸錯,最少也要鎖定一小時以后才能重試。當然還有更嚴格的規則,比如說需要等待 24 小時,甚至卡片被鎖定,必須持本人身份證件去銀行柜臺解鎖。就算是按照最松散的規則,一天 24 小時也只能嘗試 72 次,遇到正確密碼的概率非常低。何況銀行肯定不會讓人如此頻繁的去嘗試,以及還有消費限額等等措施進行多重保障。

但是黑客的手段僅限于此嗎?

二、拿我字典來

上面我們總結出來兩條規則,長的數字和字母混合的密碼更加安全。但是這一定不容易記憶,一個連自己都記不住的密碼是肯定安全的,不過好像沒有什么用。所以為了保證自己能夠記住,大家一般都會選用比較好記的組合或者有意義的內容。

比如,111111,123456 ……當然我這里是舉了兩個非常短的例子,方便大家看嘛。

黑客同學也這么想,我與其傻乎乎的按著順序去嘗試,就不如先試試最常見的組合,萬一你和我想一起去了,我就省了功夫了。所以他們會把這些最常見的組合整理出來,用來優先嘗試,這種就叫做字典。

有同學表示放心吧,沒有問題的,我用的是一句英文名言,你想名言那么多,他知道我用的哪一句。

確實,這種最常見的組合覆蓋的范圍并不是很廣,但是既然大家都喜歡用比較有意義的內容作為密碼,方便自己記憶。那就用常用的英文單詞來制作一個字典,讓它們之間進行各種的排列組合,這樣雖然效率稍微低了一點兒,但是范圍要比直接暴力破解小了好多。因為是以單詞之類元素作為基本單位進行排列組合,這相當于把你心目中的長密碼又重新打回了短密碼。

三、社會工程學

某同學表示,不怕不怕,我用的生日做密碼。你想一年 365 天,再加上年份,這可能性非常多了。你說不安全?那我再在前面后面加上一些內容?;蛘吒纱嘤蒙矸葑C號,全國十幾億人口的身份證號都沒有重合,這可能性夠多了吧,也沒啥規律了吧?

黑客每次拿到的可能并不僅僅是你的賬戶,還會有一些你的個人信息,比如各種社交網站都要你填的生日。時間就那么幾種書寫格式,把這個特定的時間也放入上面的字典,那就很容易嘗試了。身份證號,前 6 位表示地區,所以數量也不多,嗯……不太多。不過,你所在的地理位置好像也不是什么秘密吧,都別說在各種網站填寫的資料,各種購物郵購的地址?,F在那么多 APP 要 GPS 權限,你在哪里?他們知道的比你還精確。所以前 6 位,需要嘗試的范圍非常小,而中間 8 位是生日,現在就剩下最后 4 位數字,不過 1 萬種可能性而已,所以你覺得呢?

這種通過各種其他渠道的信息,來縮小密碼的范圍,甚至直接獲得密碼,就算是社會工程學。不過社會工程學遠不止此,還有通過熟悉你的人去獲取你的各種信息,甚至密碼。

四、數據庫碰撞

于是你吸取了上面的教訓,使用了 16 位,數字,大小寫字母,特殊符號混合,并且沒有任何意義的隨機密碼。

很好很強,暴力破解表示消耗的時間太長,你那點信息不值這個錢。

然后某網站安全方面做的非常不到位,數據庫被黑客拿走了,你也別管數據庫是啥,反正這個網站的所有用戶賬號和密碼黑客都拿到了。

當然這不是我們的問題,我們作為用戶再努力也無法杜絕這種情況,但是下面的問題我們就要關注一下了。

黑客表示僅僅拿下這個網站并不過癮,因為他知道這個網站的用戶一般也是另外某個網站的用戶,那何不用用戶在這個網站上的賬號密碼去另外的網站嘗試一下呢?

很多同學在聽懂以后開始緊張了,因為這種事情已經發生了好多次。某一個網站密碼泄露,大家才想起自己所有網站都用的同一個密碼。完蛋了,完蛋了,黑客連自己家底兒都知道了,于是忙不迭的跑遍所有網站去修改密碼。

所以啊,不同的網站,不同的賬戶,都不要使用相同的密碼。如果一把鑰匙能打開你家所有的門,那你處處上鎖和只有一處上鎖的安全性是一樣的。

五、結合起來

上面這些方法都不是獨立的,它們還會相互結合。最簡單的,比如黑客獲得了大量的用戶密碼,他就可以做一個統計,哪些密碼用的非常多,當然是放進自己的字典里;密碼中哪些詞匯的組合用的比較多,也放到自己的字典里;大家喜歡用怎樣的規律去生成密碼,把這個規則也放到字典里……

這就是群策群力在為黑客去豐富他的破解字典,所以就別指望自己一個人能夠比群眾的智慧更強了。

六、再次驗證

所以僅靠一個密碼是不靠譜的。

而且密碼泄露的渠道多種多樣,有人在身后看了一下,你的電腦被人監視了,現在監視器這么便宜方便,網站、應用又豬隊友了……

所以通過了密碼驗證,并不等于這就是用戶本人。那就再證明一下你是你吧。

方法也很簡單,再通過其他渠道和你進行一下確認就好了。這就是雙重驗證,也叫雙因素驗證,反正就是通過兩種方式去驗證這個用戶確實是用戶本人。那可以認為是兩重密碼,但是這第 2 層密碼一般都是動態的,實時的,有實效性的。

最常見的方法就是短信驗證碼,這個大家都理解。不過他也有很多缺點,一方面是成本高;另一方面短信可能有延遲,而驗證碼又具有時效性,結果收到驗證碼的時候已經不能用了;然后我們大概都接到過偽基地站發送的各種短信,雖然現在已經比較少了,但是短信驗證碼還是有被偽造的可能性。

然后還有各種 App 的驗證。但注意我說的不是掃碼登錄那一類,那種只是一種授權(最后會講)。我們說的是那種,你使用賬號和密碼進行登錄之后,還要在 App 上,進行相應的確認才能進入賬戶的,我覺得大家應該多少都有些了解,尤其是玩國內各種游戲的朋友。

還有實體的驗證設備,前幾年銀行喜歡用這種東西,有的是類似優盤必須插在電腦上,有的是使用隨機數,必須把這份隨機數填寫到網站里才能夠正常登錄。

這些都增加了安全性,就是不太方便。

七、通用的驗證

所以有人想出了比較方便的方法,也是使用隨機數,而且是使用一個公開的計算方法去計算出這串隨機數,但是這個算法是不可逆的。而要生成這個隨機數,需要有兩個變量,一個是時間,一個是你和網站確定的一個暗號。

在你登錄的時候,用當前的時間和這個暗號去共同生成一個隨機數,網站進行驗證就知道是不是你了。因為算法是不可逆的, 別人即便知道了這個隨機數,也無法推測出你們之間這個暗號是什么。所以雖然有著公開的計算方法,他依然無法計算出下一次的隨機數應該是什么。

是的,那種實體的隨機數口令設備也是一樣的原理。

既然這個算法是公開的,也就意味著我只需要一個支持這個算法的軟件,然后把和各種網站約定的暗號都放在里面,就可以用一個軟件去搞定各個網站的二次驗證,這很方便。

國外很多網站的二次驗證都是這么搞的,只是在國內沒有流行。于是我們習慣了他們各自為政的驗證方式,為了登錄某個賬戶,而在手機上還要額外的安裝一個 App。

八、解決方法呢

我們知道了,我們應該使用一個長長的密碼。一般來說,我們認為 16 位的密碼就比較安全了,以當前計算機的計算能力,這個強度的密碼要計算挺長時間,當然未來隨著科技的發展,這個時間也會被不斷縮短。不過各個網站對密碼的長度總是有一定限制的,現在 16 位長度算是比較通用,絕大部分都可以接受。

只有數字的密碼強度肯定是比較低的,因為每一位的可能性只有 10 個。所以我們還要加入字母,字母再區分大小寫。這時候純暴力解決起來就比較困難了,但是我們又想到了字典的問題。于是再加入隨機的特殊符號,因為特殊符號不太容易有什么意義,被猜出來的可能性就更小一些。

然后它們應該是隨機組合的,而自己不同網站不同賬戶之間的密碼,最好是完全不一樣的。

我沒有神仙的記憶力,我做不到??!

其實我們只需要一個密碼管理器就好了,這就相當于一個保險柜,我把我所有的密碼認認真真的寫在紙上,放進保險柜里,然后鎖好?,F在我就只需要記住一個密碼,就是保險柜的密碼,我只要能打開保險柜,我就可以找到我所有賬戶的密碼。我只要保障我保險柜的安全,那我所有的密碼都是安全的。

現在的密碼管理軟件很多,建議大家選擇知名的,大牌的。一方面他安全,這個安全有兩個層面,首先你的數據是被加密的和安全的,因為會有很多高手認真的盯著他們的安全性;他們也不會在暗中做什么手腳,嘿,你的密碼都放在他那兒了,當然要找一個可以信任的地方。還有大廠會持續更新,不斷修補問題,優化體驗,就可以一直安逸的使用。

推薦的有:LastPass、1Password、KeePass、Enpass、Bitwarden 等。其中 KeePass 免費,但是相對折騰;LastPass 基本免費,新手推薦;1Password 和 Enpass 是收費的;Bitwarden 是開源的,連服務器都能自己架設。

他們能做什么呢?很基礎的功能有:

  • 保存密碼
  • 自動填寫密碼
  • 生成高強度密碼
  • 生成二次驗證的隨機碼
  • 多設備數據同步(可能需要借助自己的網盤同步,不過數據是加密的

你看是不是在管理和使用密碼上的許多問題,他們都給一步到位的解決掉了。這么復雜而重要的密碼問題,我們又有什么理由不去找一個優秀的工具來協助我們管理呢?

強烈提醒:至少要牢牢的記住你的保險柜密碼,否則所在保險柜里的東西,誰也沒有辦法幫你拿出來。

九、授權登錄

本來關于密碼的問題,講到這里就該結束了。

但是最近看到一些人迷惑于一個老生常談的問題,所以也在這里講一下。

有人老覺得微博在背后做著什么,賣粉絲、賣關注、賣點贊等等的齷齪勾當,他做沒做我是不知道啦,不過講道理,他真的沒有必要去做??!只要稍微調整一下算法,在正常渠道里面多推薦幾次,想讓誰火還不是很簡單的事情么,又何必去玩那些小伎倆呢?

那怎么……

對,你改了高強度的密碼,做了二次驗證,但是還是出現了許多問題。這很可能是你允許了你和微博以外的第 3 個人去這樣做。

???!

你是不是曾經用微博登錄過許多東西?這真的太方便了,點一下授權,別說二次驗證,連賬號密碼都不用設置,就直接登錄了??萍及l展真是好啊,現在的生活都這么方便了。那你在點擊授權的時候有沒有仔細看過,你都給了他哪些權限呢?告訴你許多網站都會要求一些他原本用不上的權限。而有時候你也就是授權登錄一次以后就再沒有光顧過他們,但是你給他們的授權卻從來沒有取消,所以就……

忽然覺得微博自己也很冤枉呢!去看看你的微博授權里面,藏著多少,你就用過一次的東西吧。

有人說自己的隱私也不值什么錢,自己的微博也不在乎,隨他們去吧。你的賬戶可是經過了實名認證的,如果被他們用來發布什么違法信息,敬愛的警察叔叔肯定是會找你的。

好像,現在不怎么用微博去授權了呢,我們用的都是微信呀!啦啦啦啦,我就不講啦,想想你們每一次看都不多看一眼就點下去的授權按鈕吧。

這類狀況非常的多,還有類似的,是各種商家活動,按鈕下面都有一個非常小的復選框,同意某某協議。甚至現在連復選框都沒了,點下按鈕即表示同意某某協議……征信記錄上奇奇怪怪的記錄是怎么來的?你同意了呀!

“我的隱私沒有什么值錢的,我不在乎……”——當他們以你的名義,去做著各種下賤齷齪甚至違法,或者直接間接傷害你自己利益的事情的時候,你還能不在乎嗎?


小老鼠倒是不在乎啦,反正這么長的東西,認真讀完的也沒有幾個。我苦口婆心的去講,反反復復的去講,都沒有人在乎,那我還能怎么樣呢?畢竟那些都是大家自己的賬戶,大家自己的安全還得自己上心吧。

26 條留言

  1. 揚帆大海 2019/12/13 回復
  2. 安以林 2019/12/13 回復
  3. 冷無敵 2019/12/13 回復
  4. 浮生緣夢 2019/12/14 回復
      • 浮生緣夢 2019/12/16 回復

寫留言

两元彩票排列五走势图