對稱加密和非對稱加密

要理解加密在網(wǎng)絡(luò)通信中的應(yīng)用哥艇,首先谐腰,要理解兩個(gè)概念:

  1. 對稱加密:加密和解密使用同一個(gè)密鑰,比如密鑰key腹鹉,消息發(fā)送方使用key來加密內(nèi)容藏畅,消息獲取方使用key來解密內(nèi)容。
  2. 非對稱加密:加密和解密使用不同的密鑰,一般是生成兩個(gè)密鑰愉阎,稱為公鑰和私鑰绞蹦,自己持有私鑰,將公鑰授予他人榜旦。非對稱加密沒有規(guī)定哪個(gè)密鑰是用來加密哪個(gè)密鑰是用來解密的幽七,你可以使用私鑰來加密,用公鑰來解密溅呢;也可以使用公鑰來加密澡屡,私鑰來解密。不同應(yīng)用場景下不同的使用方式咐旧。

比如我們安裝git客戶端驶鹉,我們通過:

ssh-keygen -t rsa -C "youremail@example.com"
1
來生成密鑰對,xxx.pub里面就是公鑰,另一個(gè)沒有后綴名的xxx就是私鑰铣墨。我們通常會把xxx.pub里面的內(nèi)容復(fù)制到gitlab上室埋,這樣我們提交代碼的時(shí)候,會將我們提交的代碼使用私鑰加密伊约,遠(yuǎn)程倉庫會使用公鑰解密姚淆,我們將公鑰復(fù)制到gitlab的過程就相當(dāng)于頒發(fā)公鑰的過程,只不過這個(gè)過程是由我們自己人為來完成的屡律。

接下來再說說兩種加密算法群的優(yōu)缺點(diǎn)腌逢,不具體分析哪種算法:

對稱加密:對稱加密算法的特點(diǎn)是加密速度快,適合于數(shù)據(jù)量比較大的數(shù)據(jù)的加密超埋。缺點(diǎn)顯而易見搏讶,不安全,只要有人獲取了你的密鑰纳本,就可以和你通信窍蓝。
非對稱加密:和對稱加密算法相比腋颠,非對稱加密的特點(diǎn)是安全繁成,當(dāng)然也不是絕對安全,后面會說到淑玫。在獲得了安全的代價(jià)下巾腕,它效率不高,只適合數(shù)據(jù)量較小的信息絮蒿。上面只是說了兩種算法的優(yōu)缺點(diǎn)尊搬,具體為什么效率高效率不高,和算法本身有關(guān)系土涝,如果有興趣佛寿,可以自行研究。

  1. 對稱加密為什么不安全?
    原因是密鑰有泄漏的風(fēng)險(xiǎn)冀泻。只要你的密鑰泄漏了常侣,那你的通信就等于明文了,獲取了你密鑰的人可以獲取你接收或者發(fā)送的信息弹渔,破解胳施,然后偽造一份信息,使用密鑰加密發(fā)給你肢专,你就收到了假的信息舞肆。

  2. 相比對稱加密非對稱加密為什么安全?
    非對稱加密的公鑰是公開的博杖,私鑰是自己持有的椿胯。所以這個(gè)關(guān)口就是私鑰是否泄漏,一般私鑰我們自己都會嚴(yán)密保存剃根。當(dāng)私鑰持有方給客戶端發(fā)消息時(shí)压状,客戶端使用公鑰解密獲取信息;當(dāng)客戶端給私鑰持有者發(fā)送信息時(shí)跟继,使用公鑰加密种冬,這個(gè)信息只有私鑰能解密,所以你的私鑰不泄露舔糖,就是安全的娱两。那你會問,如果惡意的人獲取了你的公鑰(畢竟公鑰是公開的)金吗,他就會截取私鑰持有者發(fā)送的信息十兢,并解密,這怎么辦摇庙?惡意的人雖然可以獲取到信息旱物,但是他不能偽造信息,因?yàn)樗麤]有私鑰卫袒,就算他篡改了信息宵呛,他也不能對消息加密,客戶端使擁有的公鑰只能對私鑰加密的內(nèi)容解密夕凝。這種辦法沒有防止消息的竊聽宝穗,但是防止了消息的篡改。

上面說過码秉,非對稱加密只適合信息量比較小的數(shù)據(jù)逮矛,數(shù)據(jù)量大的話效率就會很慢,那怎么辦呢转砖,一種辦法是使用效率相較非對稱比較好的hash算法须鼎,hash算法會生成長度一致的比較短小的內(nèi)容串。然后再使用私鑰加密。

我們將上面的hash算法生成的值叫做信息摘要晋控。將信息摘要加密之后得到的東西叫做數(shù)字簽名挑围。

信息 -> (HASH) ->信息摘要
信息摘要 -> (私鑰加密) ->數(shù)字簽名
一般私鑰持有者發(fā)送信息的過程就是:①將信息加工成數(shù)字簽名。②將明文和數(shù)字簽名一起發(fā)送給客戶端糖荒。③客戶端獲取到信息杉辙,將數(shù)字簽名使用公鑰解密,得到信息摘要d1捶朵。④將明文使用hash處理蜘矢,得到信息摘要d2。⑤比對d1和d2综看,這樣就會知道這個(gè)明文是不是被篡改了品腹。

上面的情況都是建立在客戶端能安全獲取到你的公鑰的情況,比如我們gitlab上手動(dòng)添加公鑰红碑。如果是通過網(wǎng)絡(luò)呢舞吭,這個(gè)公鑰能完好的送到客戶端手上嗎?如果惡意者將你的公鑰篡改成他自己的了析珊,客戶端獲取的就是惡意者的公鑰羡鸥,這樣客戶端向你發(fā)送信息就會使用惡意者的公鑰加密,惡意者可以使用它的私鑰解密獲取客戶端信息忠寻,把公鑰送到客戶端身上且要求不被篡改惧浴,就像把信息安全發(fā)送給客戶端,又需要一個(gè)私鑰公鑰對奕剃,這就沒完沒了了衷旅。此時(shí)怎么辦呢?

這種情況就需要第三方機(jī)構(gòu)來保證了纵朋。也就是再拉入一個(gè)公鑰私鑰對來解決這個(gè)問題柿顶,要想不陷入沒完沒了,那就要保證這個(gè)密鑰對是公正的操软。這個(gè)密鑰對要被有公信力的機(jī)構(gòu)擁有嘁锯,那就是CA機(jī)構(gòu)。

私鑰持有者將自己的公鑰發(fā)送給CA機(jī)構(gòu)寺鸥,CA機(jī)構(gòu)將私鑰持有者的公鑰用自己的私鑰加密形成數(shù)字簽名猪钮,連同私鑰持有者的一些信息,如果是服務(wù)器網(wǎng)站胆建,會有網(wǎng)站的網(wǎng)址等信息一起發(fā)送給客戶端,客戶端收到證書以后肘交,取得相關(guān)證書的公鑰笆载,對證書里的數(shù)字簽名進(jìn)行解密,將明文里的公鑰和解密后的公鑰進(jìn)行比對。

那有沒有更好的辦法呢凉驻,能不能充分利用對稱加密加密數(shù)據(jù)量大的特點(diǎn)呢腻要?答案是可以,上面說了涝登,對稱加密不安全是因?yàn)槊荑€泄漏雄家,如果能將這個(gè)密鑰安全送到客戶端手里,不就可以了嗎胀滚。

目標(biāo):
對稱加密的密鑰通過非對稱加密來傳輸趟济。
信息內(nèi)容的通信使用對稱加密來完成。

方法:
比如我們就假設(shè)網(wǎng)站的通信咽笼,服務(wù)器生成一個(gè)密鑰對顷编,私鑰自己持有。
下面是過程:

①瀏覽器向服務(wù)器請求內(nèi)容剑刑。
②服務(wù)器將公鑰upub傳給CA機(jī)構(gòu)媳纬,CA機(jī)構(gòu)使用自己的私鑰cpri加密服務(wù)器公鑰upub生成數(shù)字簽名d1,連同服務(wù)器的網(wǎng)址還有不加密的upub等信息生成證書傳給瀏覽器施掏。
③瀏覽器收到證書以后钮惠,會查看是不是受信任的證書(瀏覽器安全選項(xiàng)可以查看)。如果不是七芭,會跳出警告萌腿,經(jīng)常看小黃頁的你一定懂抖苦。如果是受信任的證書毁菱,會比對當(dāng)前的網(wǎng)址和證書上的服務(wù)器網(wǎng)址是不是一致,不一致也會警告锌历。
④如果沒有問題贮庞,瀏覽器就會通過CA機(jī)構(gòu)獲取此證書的公鑰cpub,并將數(shù)字簽名d1解密究西,解密之后得到服務(wù)器公鑰upub1窗慎,當(dāng)然用不用信息摘要看情況。將upub1和證書上的明文公鑰進(jìn)行比對卤材,一致就說明證書是對的遮斥,獲得的upub1就是服務(wù)器的公鑰upub。
⑤取得服務(wù)器公鑰upub之后扇丛,就要進(jìn)行通信了术吗,通信使用對稱加密算法,瀏覽器首先要生成密鑰R帆精,這個(gè)R將來就是服務(wù)器瀏覽器雙方對稱加密通信的密鑰较屿。
⑥R生成以后隧魄,使用服務(wù)器公鑰upub對其進(jìn)行加密,發(fā)送給服務(wù)器隘蝎。
⑦服務(wù)器獲取到瀏覽器的信息购啄,使用自己的私鑰對其進(jìn)行解密獲取到R。
⑧服務(wù)器將瀏覽器請求的內(nèi)容使用R進(jìn)行對稱加密嘱么,發(fā)送給瀏覽器狮含。
⑨瀏覽器獲取到服務(wù)器發(fā)送的內(nèi)容,使用R解密曼振。几迄。
以上就是https的大致流程。

原文:https://blog.csdn.net/a_842297171/article/details/80887303

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拴测,一起剝皮案震驚了整個(gè)濱河市乓旗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌集索,老刑警劉巖屿愚,帶你破解...
    沈念sama閱讀 210,835評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異务荆,居然都是意外死亡妆距,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評論 2 383
  • 文/潘曉璐 我一進(jìn)店門函匕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娱据,“玉大人,你說我怎么就攤上這事盅惜≈惺#” “怎么了?”我有些...
    開封第一講書人閱讀 156,481評論 0 345
  • 文/不壞的土叔 我叫張陵抒寂,是天一觀的道長结啼。 經(jīng)常有香客問我,道長屈芜,這世上最難降的妖魔是什么郊愧? 我笑而不...
    開封第一講書人閱讀 56,303評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮井佑,結(jié)果婚禮上属铁,老公的妹妹穿的比我還像新娘。我一直安慰自己躬翁,他們只是感情好焦蘑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著姆另,像睡著了一般喇肋。 火紅的嫁衣襯著肌膚如雪坟乾。 梳的紋絲不亂的頭發(fā)上迹辐,一...
    開封第一講書人閱讀 49,729評論 1 289
  • 那天蝶防,我揣著相機(jī)與錄音,去河邊找鬼明吩。 笑死间学,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的印荔。 我是一名探鬼主播低葫,決...
    沈念sama閱讀 38,877評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼仍律!你這毒婦竟也來了嘿悬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,633評論 0 266
  • 序言:老撾萬榮一對情侶失蹤水泉,失蹤者是張志新(化名)和其女友劉穎善涨,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體草则,經(jīng)...
    沈念sama閱讀 44,088評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钢拧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炕横。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片源内。...
    茶點(diǎn)故事閱讀 38,563評論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖份殿,靈堂內(nèi)的尸體忽然破棺而出膜钓,到底是詐尸還是另有隱情,我是刑警寧澤卿嘲,帶...
    沈念sama閱讀 34,251評論 4 328
  • 正文 年R本政府宣布颂斜,位于F島的核電站,受9級特大地震影響腔寡,放射性物質(zhì)發(fā)生泄漏焚鲜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評論 3 312
  • 文/蒙蒙 一放前、第九天 我趴在偏房一處隱蔽的房頂上張望忿磅。 院中可真熱鬧,春花似錦凭语、人聲如沸葱她。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吨些。三九已至搓谆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豪墅,已是汗流浹背泉手。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留偶器,地道東北人斩萌。 一個(gè)月前我還...
    沈念sama閱讀 46,240評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像屏轰,于是被迫代替她去往敵國和親颊郎。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評論 2 348

推薦閱讀更多精彩內(nèi)容