什么是openssl

openssl是web安全通信的基石历谍,沒有openssl,可以說我們的信息都是在裸奔。要想了解openssl爆班,有幾個(gè)前置的概念需要先熟悉一下:

SSL

SSL的全名叫做secure socket layer(安全套接字層),最開始是由一家叫網(wǎng)景的互聯(lián)網(wǎng)公司開發(fā)出來辱姨,主要是防止信息在互聯(lián)網(wǎng)上傳輸?shù)臅r(shí)候不被竊聽或者篡改柿菩,后來網(wǎng)景公司提交SSL給ISOC組織做標(biāo)準(zhǔn)化,改名為TLS雨涛。

有些同學(xué)可能會好奇枢舶,說好好的數(shù)據(jù)怎么就被竊聽以及修改呢?這個(gè)其實(shí)是很容易的替久,如果你上網(wǎng)連得的是wifi凉泄,那么你的數(shù)據(jù)一定會經(jīng)過wifi路由器,通過對路由器做些手腳就可以拿到這些數(shù)據(jù)侣肄。

非對稱加密

在數(shù)學(xué)上有這樣一個(gè)現(xiàn)象:給兩個(gè)質(zhì)數(shù)旧困,很容易算出他們的乘積,但是給你一個(gè)很大的數(shù)稼锅,你很難分解出兩個(gè)質(zhì)數(shù)吼具,讓他們的乘積正好等于這個(gè)很大的數(shù)。

非對稱加密就是基于以上的現(xiàn)象產(chǎn)生的矩距,用一個(gè)密鑰對數(shù)據(jù)進(jìn)行加密拗盒,然后可以使用另外一個(gè)不同的密鑰對數(shù)據(jù)進(jìn)行解密,這兩個(gè)密鑰就是:公鑰和私鑰锥债。

公鑰和私鑰是可以相互推導(dǎo)的陡蝇,根據(jù)私鑰痊臭,你可以很容易的算出公鑰,但是根據(jù)公鑰登夫,你卻很難很難算出私鑰广匙,在互聯(lián)網(wǎng)上,私鑰一般由服務(wù)器掌握恼策,公鑰則由客戶端使用鸦致。根據(jù)公鑰,理論上需要花費(fèi)地球上所有的計(jì)算機(jī)計(jì)算數(shù)萬年才能算出私鑰涣楷,所以認(rèn)為是非常安全的分唾。

數(shù)字簽名

將報(bào)文使用一定的HASH算法算出一個(gè)固定位數(shù)的摘要信息,然后用私鑰將摘要加密狮斗,連同原來的報(bào)文一起绽乔,發(fā)送給接收者,接受者通過公鑰將摘要解出來碳褒,也通過HASH算法算出報(bào)文摘要折砸,如果兩個(gè)摘要一致,說明數(shù)據(jù)未被篡改沙峻,數(shù)據(jù)是完整的鞍爱。
因?yàn)榻邮照呤鞘褂霉€解出的數(shù)據(jù),如果數(shù)據(jù)完整专酗,證明發(fā)送數(shù)據(jù)的人持有私鑰睹逃,就能證明發(fā)送者的身份,因此數(shù)字簽名具有證明發(fā)送者身份和防篡改的功能祷肯。

數(shù)字證書

由CA頒發(fā)給網(wǎng)站的身份證書沉填,里面包含了該網(wǎng)站的公鑰,有效時(shí)間佑笋,網(wǎng)站的地址翼闹,CA的數(shù)字簽名等。

所謂的CA數(shù)字簽名蒋纬,實(shí)際上就是使用了CA的私鑰將網(wǎng)站的公鑰等信息進(jìn)行了簽名猎荠,當(dāng)客戶端請求服務(wù)器的時(shí)候,網(wǎng)站會把證書發(fā)給客戶端蜀备,客戶端首先可以通過CA的數(shù)字簽名校驗(yàn)CA的身份关摇,也能證明證書的真實(shí)完整性(之前說了,數(shù)字簽名擁有證明身份和防篡改的功能)碾阁。

客戶端有沒有可能到一個(gè)假冒的CA去校驗(yàn)數(shù)字證書呢输虱?不太可能,因?yàn)镃A的地址是內(nèi)嵌在瀏覽器中的脂凶,很難被篡改宪睹。

SSL如何保護(hù)數(shù)據(jù)

SSL保護(hù)數(shù)據(jù)的原理可以分為三部分
1)認(rèn)證用戶和服務(wù)器愁茁,確保數(shù)據(jù)發(fā)送到正確的客戶端和服務(wù)器;
2)加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊韧げ 鹅很;
3)維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變罪帖。

認(rèn)證用戶和服務(wù)器

現(xiàn)在來思考這樣的一個(gè)問題道宅,當(dāng)我們訪問百度的時(shí)候,我們怎么知道自己訪問的是真百度還是假百度胸蛛?是不是有可能有人劫持了我們訪問百度的請求,然后路由給了一臺他偽造的服務(wù)器樱报?

為了確定我們訪問的服務(wù)器沒有被偽造葬项,在SSL的通信流程中做了這樣一個(gè)規(guī)定:一旦我們向服務(wù)器發(fā)送了請求后,服務(wù)器必須返回它的數(shù)字證書迹蛤,當(dāng)我們拿到數(shù)字證書之后民珍,我們可以根據(jù)里面的ca數(shù)字簽名,校驗(yàn)證書的合法性(不是被偽造的)盗飒。

此時(shí)嚷量,我們只能夠證明證書確實(shí)是屬于百度的,但不代表發(fā)送給我們證書的服務(wù)器就是百度逆趣,怎么辦呢蝶溶?

在證書里面會帶有百度服務(wù)器的公鑰,在之后的通信當(dāng)中宣渗,客戶端會使用該公鑰加密數(shù)據(jù)給百度服務(wù)器抖所,百度服務(wù)器必須使用私鑰才能夠解出里面的數(shù)據(jù),假設(shè)百度服務(wù)器是假冒的痕囱,他一定沒有正確的私鑰田轧,那么之后的通信都無法進(jìn)行,所以假冒服務(wù)器是無法操作的鞍恢。

由此傻粘,SSL就解決了服務(wù)器認(rèn)證的問題。

加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊取

客戶端第一次給服務(wù)器發(fā)送請求的時(shí)候(拿到證書前的一次)帮掉,會在請求里面放一個(gè)隨機(jī)數(shù)C1弦悉,服務(wù)器在返回證書的響應(yīng)里也會帶一個(gè)隨機(jī)數(shù)F,客戶端拿到證書后蟆炊,會使用公鑰加密一個(gè)隨機(jī)數(shù)C2送給服務(wù)器警绩,這樣客戶端、服務(wù)器都擁有了三個(gè)隨機(jī)數(shù):C1盅称、F肩祥、C2后室,雙方使用這些隨機(jī)數(shù)和一個(gè)相同的算法生成一個(gè)對稱密鑰,之后所有的通信都使用這個(gè)對稱密鑰來進(jìn)行混狠。

這個(gè)密鑰會不會被泄露呢岸霹?不會,因?yàn)槊荑€是由3個(gè)隨機(jī)數(shù)產(chǎn)生的将饺,對于第一個(gè)隨機(jī)數(shù)C1贡避,他可能會被中間人監(jiān)聽到,然后第二個(gè)隨機(jī)數(shù)F予弧,也可能會被中間人監(jiān)聽到刮吧,但是第三個(gè)隨機(jī)數(shù)C2,因?yàn)槭怯霉€加密的掖蛤,除非中間人有私鑰杀捻,否則是不可能解出來的。

為什么要生成一個(gè)對稱密鑰來進(jìn)行數(shù)據(jù)通信呢蚓庭?因?yàn)榉菍ΨQ加密在解密的時(shí)候相當(dāng)耗費(fèi)性能致讥,換成對稱密鑰后,會好很多器赞。

維護(hù)數(shù)據(jù)的完整性

這個(gè)主要是針對服務(wù)器發(fā)送數(shù)字證書這一過程來說的垢袱,服務(wù)器的數(shù)字證書中含有ca數(shù)字簽名,可以很有效的保證證書的真實(shí)性和完整性(沒有被篡改)

openssl是什么

回過頭來港柜,我們來了解一下openssl请契,上面的SSL只是一個(gè)協(xié)議,openssl則是SSL的實(shí)現(xiàn)版夏醉,另外openssl還包含了公鑰私鑰的生成姚糊、摘要生成等各種工具。

openssl有什么使用場景

我們知道授舟,有些時(shí)候我們?yōu)g覽網(wǎng)站的時(shí)候會有一些廣告救恨,這些廣告什么的不一定是原網(wǎng)站掛上去的,也有可能是中間的運(yùn)營商在中間篡改了內(nèi)容導(dǎo)致的释树,可以使用https技術(shù)(一般是基于openssl)來對數(shù)據(jù)進(jìn)行加密肠槽,保證數(shù)據(jù)不被篡改。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奢啥,一起剝皮案震驚了整個(gè)濱河市秸仙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌桩盲,老刑警劉巖寂纪,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡捞蛋,警方通過查閱死者的電腦和手機(jī)孝冒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拟杉,“玉大人庄涡,你說我怎么就攤上這事“嵘瑁” “怎么了穴店?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拿穴。 經(jīng)常有香客問我泣洞,道長,這世上最難降的妖魔是什么默色? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任球凰,我火速辦了婚禮,結(jié)果婚禮上该窗,老公的妹妹穿的比我還像新娘。我一直安慰自己蚤霞,他們只是感情好酗失,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著昧绣,像睡著了一般规肴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夜畴,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天拖刃,我揣著相機(jī)與錄音,去河邊找鬼贪绘。 笑死兑牡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的税灌。 我是一名探鬼主播均函,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼菱涤!你這毒婦竟也來了苞也?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤粘秆,失蹤者是張志新(化名)和其女友劉穎如迟,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡殷勘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年此再,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劳吠。...
    茶點(diǎn)故事閱讀 40,865評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡引润,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痒玩,到底是詐尸還是另有隱情淳附,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布蠢古,位于F島的核電站奴曙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏草讶。R本人自食惡果不足惜洽糟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望堕战。 院中可真熱鬧坤溃,春花似錦、人聲如沸嘱丢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽越驻。三九已至汁政,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缀旁,已是汗流浹背记劈。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留并巍,地道東北人目木。 一個(gè)月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像懊渡,于是被迫代替她去往敵國和親嘶窄。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評論 2 361