論前端資訊加密必須性(要不要加密、如何加密)

來源:互聯網
上載者:User
一、序言

  最近,關注了一下關於web端登入、傳輸資料加密的情景。發現了一些有意思的事情。某互連網金融公司程式員做登入驗證,先來一發md5加密,然後就自豪的說我的登入是加密的,外人無法破解,絕對保障使用者的資訊安全。事後博主發現,my gold,全站http協議,僅僅登入使用了md5加密。   ps: 偷偷笑...

  接下來,博主分享一些自己知道的東西,瞭解也不深,大家看看,瞭解一下就好。

  大致列了一個目錄,道友們根據自己情況來看哈。有些知識還是需要鋪墊一下的。

 

二、 目錄  

  1. http 與 https

  2. 加密資訊分類(博主自己分的)

  3. web端加密的問題和作用

  4. 如何安全的加密(相對的提高安全性)

 

三、http 與 https

  1. 首先,我們先來對這2種傳輸協議做個簡單瞭解。

    http: 超文字傳輸通訊協定 (HTTP),用於Web瀏覽器和網站伺服器之間傳遞資訊。明文方式發送內容,不提供任何方式的資料加密,入侵者可以抓包直接擷取傳輸的報文,進而擷取使用者資料。
    https: 安全通訊端層超文字傳輸通訊協定 (HTTP),它在HTTP的基礎上加入了SSL協議,SSL依靠認證來驗證伺服器的身份,並為瀏覽器和伺服器之間的通訊加密。
      分為兩種:一種是建立一個資訊安全通道,來保證資料轉送的安全;另一種就是確認網站的真實性。

  2. 然後,我們來比較一下這2種協議

    a、https協議需要到ca申請認證,一般免費認證較少,因而需要一定費用。 而http不要錢
    b、http是超文字傳輸通訊協定 (HTTP),資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
    c、http和https使用的是完全不同的串連方式,用的連接埠也不一樣,前者是80,後者是443。
    d、http的串連很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路通訊協定,比http協議安全。

  3. 在這簡單介紹一下https的一個步驟

    a、客戶使用https的URL訪問Web伺服器,要求與Web伺服器建立SSL串連。
    b、Web伺服器收到用戶端請求後,會將網站的認證資訊(認證中包含公開金鑰)傳送一份給用戶端。
    c、用戶端的瀏覽器與Web伺服器開始協商SSL串連的安全等級,也就是資訊加密的等級。
    d、用戶端的瀏覽器根據雙方同意的安全等級,建立工作階段金鑰,然後利用網站的公開金鑰將工作階段金鑰加密,並傳送給網站。
    e、Web伺服器利用自己的私密金鑰解密出工作階段金鑰。
    f、Web伺服器利用工作階段金鑰加密與用戶端之間的通訊。

 

  看到這,相信大家應該對這2種協議已經有個比較清晰的印象了。有人就說了,這https這麼牛逼,似乎這個加密問題已經解決了。但是遠沒那麼簡單,https雖然安全,但是它對於駭客攻擊、伺服器劫持啥的,還是形同虛設,沒多大用處。而且這些提供認證的機構、組織啦,說白了還是人,人家有你的認證,這些人可以拿著你的認證光明正大的解密。

ps: 好了,閑話說到這,這塊就是讓大家瞭解一下我們平時用的傳輸協議。

 

四、 加密資訊分類

  通常在web端的資料轉送中,大部分資料是明文,不需要加密的。博主認為需要加密的資料分2種

    1. 使用者的登入資訊。 (帳號、密碼。。。)

    2. 使用者的私密資訊。(姓名、銀行卡號、家庭住址。。。)

  針對這2種資料,我們對加密的要求也是有所區別的,後者重要性稍弱了前者

 

五、 web端加密的問題和作用

  現在我們知道,http協議是明文傳輸,只要別人一抓包就可以擷取到傳輸的報文,很多人會問,是不是http傳輸時前端都不需要進行資料加密了呢? 這個觀點是大大錯誤了,我們通過下邊幾點來分析一下,即便不安全也要加密的必要性

  1. 前端對使用者密碼進行雜湊值加密,比如說 md5 ,然後別人抓包,可以類比登陸了。但是他僅僅是能登陸,他並不知道你的源密碼是啥,他截獲的是md5加密過的密文,這樣就大大降低了社會學攻擊。(解釋一些,社會學攻擊。大家習慣性將各個平台帳號設定為一個或者幾個密碼,方便記憶,人家拿了你一個,就去試別的,Duang!爆炸了!)

  2. 前端加密也有一定安全性。我們簡單的加密,會被抓包,那我們可以將加密變得複雜一些。使這個直接抓包無法登陸,或者不容易登陸。

 

六、 如何安全的加密

  繼續上面的話題,我們怎麼加密,讓資料轉送更安全,下面舉幾個例子

  1.  使用 https。 你甚至可以用https登陸,完事再重新導向到http的頁面,保證你頁面載入的流暢性

  2.  就用 http。將  密碼+時間戳記  加密後傳輸,服務端解密,並按照時間戳記3s有效方式允許登陸.這樣也能加強安全性   ps:3s 是我 yy 的哈

  3. 仿照 qq 網頁版登入的模式

    

function getEncryption(password, uin, vcode, isMd5) {    var str1 = hexchar2bin(isMd5 ? password : md5(password));    var str2 = md5(str1 + uin);    var str3 = md5(str2 + vcode.toUpperCase());    return str3}

     仿照qq登入的模式。我們可以在開啟登入介面的時候,同時傳輸一個圖形驗證碼,驗證碼在後台有唯一性、時效性、一次性 的儲存。這樣登入時將帳號、密碼、驗證碼、加密方式一同使用某無法復原加密方式加密,一般就用md5吧,這樣服務端用相同的方式加密,比對加密後的密文判斷登入。這樣即便知道你的加密代碼,也不容易攻破。

  4. 還有一種就是現在最簡單的,直接手機號+驗證碼登入,安全有效、簡單。當然資訊同樣需要加密。

 

七、 小結

  以上就是所有內容了,介紹的比較淺,適合大家瞭解。正兒八經的web 安全學,東西太多,也待完善。如果文中有錯誤,還望指出!

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.