无码av免费在线-无码av女优-无码av啪啪一区二区三区-无码AV喷白浆在线播放欣赏网-无码av片免费播放-无码av片在线观看

行業(yè)新聞

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

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

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

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

對稱加密對稱加密算法在加密和解密時(shí)使用的是同一個(gè)秘鑰。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    - 身份認(rèn)證。

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

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

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

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

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

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

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

    如果證書沒有問題,那么就生成一個(gè)隨機(jī)值。

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

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

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

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

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

    中間人攻擊(MITM)上面的過程,看起來似乎無懈可擊?并不是,因?yàn)椤叭恕辈攀前踩到y(tǒng)中最脆弱的環(huán)節(jié)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    由于鹽在密碼校驗(yàn)的時(shí)候還要用到,因此通常鹽和密碼的哈希值是存儲(chǔ)在一起的。

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

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

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

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

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

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

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


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

    粵ICP備2021016007號(hào)

    主站蜘蛛池模板: 在线观看国产网站a片 | 99久久精品无码一区二区毛色欲 | 国产一区二区日韩精品欧美 | 久久九九久精品国产综合一千收藏 | 亚洲av无码一区二区三区东京热 | 91极品哺乳期女神挤奶在线 | 亚洲国产精品国语在线 | 午夜精品一区二区三区在线观看 | 国产日产欧产美韩系列 | 无码粉嫩虎白一线天在线观看 | 自拍另类 | 国产一级αv片免费观看 | 韩国二区亚洲av无码一区二区三区人 | 99精品久久毛片A片 99精品免费久久久久久久久日本 | aⅴ一级视频在线观看 | 久久亚洲国产成人精品性色 | 国产精品一区二区高清在线播放 | av无码免费看 | 久久久久亚洲av成人网电影 | 国产成人高清一区二区三区视频 | 国产亚洲精品久久久久的角色 | 99久久精品免费观看国产 | 国产午夜三级一区二区三 | 男女高潮又爽又黄又无遮挡 | 亚洲欧美精品中文字幕在线观看 | 91精品久久国产青草 | 国精产品一二二区传媒公司 | 久久久国产打桩机 | 在线免费观看一区 | 精品无码不卡中文字幕 | 精品伊人久久大线蕉色首页 | 亚洲天堂在线免费观看视频 | 欧美精品黑人粗大视频 | 国产亚洲精品精华液好用吗 | 国产欧美曰韩一区二区三区 | 国产日产美产精品在线一区二区三区 | 国产va免费高清在线观看 | 久久亚洲精品中文字幕无码 | 久久国产欧美日韩精品图片 | 欧美伊香蕉久久综合类网站 | 国产三级久久久久精品三级 |