国产91无码网站在线观看-国产91无套粉嫩白浆在线-国产91香蕉视频-国产91香蕉在线精品-国产91小视-国产91小视频

行業(yè)新聞

您當(dāng)前的位置:首頁 > 新聞資訊 > 行業(yè)新聞

如何安全有效的加密傳輸和存儲用戶密碼

發(fā)布源:深圳維創(chuàng)信息技術(shù)發(fā)布時間:2020-09-16 瀏覽次數(shù):

加密傳輸加密主要有兩種方式:對稱加密和非對稱加密。

對稱加密對稱加密算法在加密和解密時使用的是同一個秘鑰。

對稱加密的模式是:- 甲方選擇某一種加密規(guī)則,對信息進(jìn)行加密- 乙方使用同一種規(guī)則,對信息進(jìn)行解密客戶端和服務(wù)端進(jìn)行通信,采用對稱加密,如果只使用一個秘鑰,很容易破解;如果每次用不同的秘鑰,海量秘鑰的管理和傳輸成本又會比較高。

非對稱加密非對稱加密算法需要兩個密鑰來進(jìn)行加密和解密,這兩個秘鑰是公開密鑰(pubpc key,簡稱公鑰)和私有密鑰(private key,簡稱私鑰)。

非對稱加密的模式則是:- 乙方生成兩把密鑰(公鑰和私鑰)。

公鑰是公開的,任何人都可以獲得,私鑰則是保密的- 甲方獲取乙方的公鑰,然后用它對信息加密- 乙方得到加密后的信息,用私鑰解密。

即使黑客拿到了公鑰,沒有私鑰也是沒有辦法解密,不考慮彩虹表的情況,完全可以長期使用一對秘鑰。

RSA算法最經(jīng)典的非對稱加密算法是RSA算法。

RSA公鑰加密算法是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。

公鑰私鑰成對出現(xiàn),用其中一個加密只能用另一個解密,通常用公鑰加密私鑰解密。

為什么RSA能夠做到非對稱加密呢?互質(zhì)關(guān)系:如果兩個正整數(shù),除了1以外,沒有其他公因子,我們就稱這兩個數(shù)是互質(zhì)關(guān)系簡單來說,RSA利用的原理是,如果兩個互質(zhì)關(guān)系的正整數(shù)的乘積足夠大,是極難進(jìn)行因式分解的(目前被破解的最長RSA密鑰是768個二進(jìn)制位,而正常使用的至少是1024位的密鑰)。

通過一定的運算,把某計算結(jié)果和乘積作為公鑰,另一個計算結(jié)果和乘積作為私鑰,即可以實現(xiàn),利用公鑰進(jìn)行加密,并利用私鑰進(jìn)行解密。

具體的數(shù)學(xué)公式推導(dǎo)和證明可以參考RSA算法原理。

github的登錄方式傳輸層面的加密解密原理講的差不多了,我們來看看github是如何傳輸賬號密碼的。

抓包看一下登錄請求的request,赫然發(fā)現(xiàn),密碼是通過明文傳輸?shù)摹敲矗@種傳輸方式安全嘛?還可以,因為使用了https,但還不夠安全。

http和https常規(guī)的http請求,所有信息明文傳播,只要中間人在鏈路中的任意階段進(jìn)行劫持,就會帶來三大風(fēng)險:

    竊聽風(fēng)險(eavesdropping):第三方可以獲知通信內(nèi)容。

    篡改風(fēng)險(tampering):第三方可以修改通信內(nèi)容。

    冒充風(fēng)險(pretending):第三方可以冒充他人身份參與通信。

    怎么解決這些問題?用https。

    https 可以認(rèn)為是 http + TLS,TLS 是傳輸層加密協(xié)議,它的前身是 SSL 協(xié)議。

    SSL/TLS協(xié)議是為了解決http的三大風(fēng)險而設(shè)計的,希望達(dá)到:- 內(nèi)容加密。

    所有信息都是加密傳播,第三方無法竊聽。

    - 身份認(rèn)證。

    配備身份證書,防止身份被冒充。

    即使被 DNS 劫持到了第三方站點,也會提醒用戶有可能被劫持- 數(shù)據(jù)完整性。

    防止內(nèi)容被第三方冒充或者篡改。

    具有校驗機制,一旦被篡改,通信雙方會立刻發(fā)現(xiàn)。

    說了這么多,https到底做了什么?結(jié)合以下流程圖,講解一次https請求都發(fā)生了什么:1、客戶端發(fā)起https請求2、服務(wù)端的配置一般需要向權(quán)威機構(gòu)申請一個證書(也可以自己制作,這個會在之后的中間人攻擊中講到,區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過,才可以繼續(xù)訪問,而使用受信任的公司申請的證書則不會提示),證書會生成RSA加密使用的一對公鑰A和私鑰B。

    3、傳送證書這個證書主要內(nèi)容是公鑰A,也包含了其他信息,如證書的頒發(fā)機構(gòu),過期時間等等。

    4、客戶端解析證書由客戶端的TLS來完成的,主要是驗證公鑰A是否有效,比如頒發(fā)機構(gòu),過期時間等等,如果發(fā)現(xiàn)異常,則會彈出一個警告框,提示證書存在問題。

    如果證書沒有問題,那么就生成一個隨機值。

    之后就進(jìn)入了不對稱加密(RSA)的過程,用證書對該隨機值進(jìn)行加密,生成私鑰C。

    5、傳送加密信息這部分傳送的是用證書加密后的隨機值(即私鑰C),目的就是讓服務(wù)端得到這個私鑰,后續(xù)所有的數(shù)據(jù)都可以用私鑰C,進(jìn)行對稱加密和解密。

    6、服務(wù)端解密信息服務(wù)端用私鑰B解密后,得到了客戶端傳過來的私鑰C,到此RSA非對稱加密的過程結(jié)束了。

    7、傳輸加密后的信息服務(wù)端用私鑰C加密信息。

    8、客戶端解密信息客戶端用之前生成的私鑰C解密服務(wù)端傳過來的信息,于是獲取了解密后的內(nèi)容。

    中間人攻擊(MITM)上面的過程,看起來似乎無懈可擊?并不是,因為“人”才是安全系統(tǒng)中最脆弱的環(huán)節(jié)。

    https信息的安全,完全建立在證書可信的基礎(chǔ)上,如果中間人偽造證書怎么辦?黑客自己偽造的證書需要客戶端驗證通過,才可以繼續(xù)訪問,只要客戶端驗證通過,那么公鑰A,私鑰B和私鑰C對黑客來說都是透明的,也有沒有數(shù)據(jù)安全可言了,所以黑客只要誘導(dǎo)用戶安裝自己偽造的證書即可,例如使用各種釣魚的不可描述網(wǎng)站。

    所以即使使用https傳輸明文密碼,也不是絕對安全的。

    那怎么樣才能保證密碼安全呢?百度的登錄方式抓包看一下百度的登錄請求發(fā)現(xiàn),密碼是加密過的:怎么加密的?我們發(fā)現(xiàn),有這么一個關(guān)鍵請求:response里有pubkey,意味著,密碼使用RSA進(jìn)行加密和解密處理的,這個請求傳輸?shù)氖枪€。

    那么流程是什么樣的呢?查了一下github中,關(guān)鍵詞RSA,star數(shù)最多的JavaScript庫jsencrypt,驚喜的發(fā)現(xiàn),百度登錄的加密方式和使用的函數(shù)名都和這個庫一致,那我們是不是可以大膽假設(shè)百度整套登錄請求時的流程和這個開源庫基本一致呢,那jsencrypt的流程又是什么樣的呢,如下圖:加密存儲到這里,加密傳輸?shù)倪^程已經(jīng)完結(jié)了,現(xiàn)在服務(wù)端已經(jīng)收到了用戶真實的密碼(解密后的),那怎么存儲這個密碼呢?千萬不要用明文存儲密碼如果用明文存儲密碼(不管是存在數(shù)據(jù)庫還是日志中),一旦數(shù)據(jù)泄露,所有用戶的密碼就毫無保留地暴露在黑客的面前,開頭提到的風(fēng)險就可能發(fā)生,那我們費半天勁加密傳輸密碼也失去了意義。

    用哈希算法加密密碼單向加密算法:只能從明文生成一個對應(yīng)的哈希值,不能反過來根據(jù)哈希值得到對應(yīng)的明文。

    常用的給密碼加密的算法是幾種單向的哈希算法。

    經(jīng)常被大家用來加密的算法有MD5和SHA系列(如SHA1、SHA256、SHA384、SHA512等)。

    雖然用哈希算法能提高密碼存儲的安全性,但還是不夠安全。

    通常黑客在侵入保存密碼的數(shù)據(jù)庫之后,他會隨機猜測一個密碼,生成一個哈希值。

    如果該哈希值在數(shù)據(jù)庫中存在,那么他就猜對了一個用戶的密碼。

    如果沒有猜中也沒有關(guān)系,他可以再次隨機猜測下一個密碼進(jìn)行嘗試。

    事實上黑客為了提高破解密碼的效率,他們會事先計算大量密碼對應(yīng)的各種哈希算法的哈希值,并把密碼及對應(yīng)的哈希值存入一個表格中(這種表格通常被稱為彩虹表),在破解密碼時只需要到事先準(zhǔn)備的彩虹表里匹配即可。

    因此現(xiàn)在黑客們破解僅僅只用哈希算法加密過的密碼事實上已是不費吹灰之力。

    加“鹽”提高安全性鹽:一個隨機的字符串,往明文密碼里加鹽就是把明文密碼和一個隨機的字符串拼接在一起。

    為了應(yīng)對黑客們用彩虹表破解密碼,我們可以先往明文密碼加鹽,然后再對加鹽之后的密碼用哈希算法加密。

    由于鹽在密碼校驗的時候還要用到,因此通常鹽和密碼的哈希值是存儲在一起的。

    采用加鹽的哈希算法對密碼加密,要確保要往每個密碼里添加隨機的唯一的鹽,而不是讓所有密碼共享一樣的鹽。

    雖然加鹽的算法能有效應(yīng)對彩虹表的破解法,但它的安全級別并不高,因為計算哈希值耗時極短,黑客仍然可以用窮舉法來破解,只是增加了一些耗時。

    用BCrypt或者PBKDF2增加破解的難度為了應(yīng)對暴力破解法,我們需要非常耗時的而不是非常高效的哈希算法。

    BCrypt和PBKDF2算法應(yīng)運而生。

    這兩個算法最大的特點是我們可以通過參數(shù)設(shè)置重復(fù)計算的次數(shù),重復(fù)計算的次數(shù)越多耗時越長。

    如果計算一個哈希值需要耗時1秒甚至更多,那么黑客們采用暴利法破解密碼將幾乎不再可能。

    破解一個6位純數(shù)字密碼需要耗時11.5天,更不要說高安全級別的密碼了。


  • 上一篇:你了解企業(yè)數(shù)據(jù)中心服務(wù)器機架嗎
  • 下一篇:數(shù)據(jù)中心優(yōu)化的重要意義
  • Copyright © 2021 深圳市維創(chuàng)信息技術(shù)有限公司 版權(quán)所有

    粵ICP備2021016007號

    主站蜘蛛池模板: 日本一区二区三区黄色视频免 | 亚洲av一区二区三区四区 | 97久久国产露脸精品国产 | 亚洲成av人片一区二区小说 | 精品国产3p一区二区三区 | 日本aⅴ中文免费观看 | 国产精品五月天高清 | 不卡人人中文字幕jul975老公 | 在线精品自偷自拍无码 | 黄色三级国自三级一区二区 | 91新拍国产在线观看 | 欧美+日本+国产+在线观看 | 中文字幕无码乱线 | 精品一区二区中文在线 | 亚洲人av永久一区二区三区久久 | 人人影视软件下载 | 黄色成人在线播放 | 免费一级欧美大片久久网 | 欧美日韩福利网站 | 成人妇女免 | 人妻少妇精品久久久久中文字幕 | 国产成人亚洲精品电影 | 国产不卡视频一区二区三区 | 亚洲欧美性另类春色 | 国产精品一级在线播放 | 一区二区三区欧美 | 午夜无码中文字幕在线 | 欧美bbbwbbwbbwbbw| 一区二区三区国产 | 中文字幕三级片在线观看 | 欧美日韩一区二区三区自拍 | 日产精品久久久一区二区 | 欧美一级视频 | 人人超碰人摸人爱 | 91游游戏中心官网下载 | 无码av喷白浆在线播放 | 91精品国产91热久久久福 | 97视频免费日韩电影在线观看 | 亚洲日本人成中 | 蜜桃97迅雷下载 | 国产精品一久久香蕉国产线看 |