自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從東東的成長史看 HTTPS 和SSH的取向

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
https 和 ssh 因為不同的取向,在 RSA 的公私鑰機制的基礎(chǔ)上,發(fā)展成了不同的協(xié)議。東東也從普通的電腦用戶成長為了一名專業(yè)的程序員。

東東想要訪問 xx 網(wǎng)站,底層的網(wǎng)絡(luò)都架設(shè)好了:

鏈路層把網(wǎng)絡(luò)從物理上鏈接起來。

網(wǎng)絡(luò)層根據(jù) IP 的路由規(guī)則可以從東東的主機導(dǎo)航到 xx 服務(wù)器的主機。

傳輸層從東東的瀏覽器進程傳輸數(shù)據(jù)到服務(wù)器的 xx 服務(wù)進程。

然后應(yīng)用層就是解析 http 內(nèi)容,做不同的處理和展示了。

基于這些網(wǎng)絡(luò)的基礎(chǔ)設(shè)施,東東就可以訪問他喜歡看的 xx 網(wǎng)站了。

但是東東想在 xx 網(wǎng)站上存儲一些自己的數(shù)據(jù),那得加一個自己的標識吧,也就是用戶名,還得加個密碼來證明這是自己。

創(chuàng)建這個標識的過程就是注冊,而證明這個標識是自己的過程就是登陸。

但是過了一段時間,東東就發(fā)現(xiàn)不對勁了,隔壁的小王怎么知道自己看了 xx 網(wǎng)站呢?

他肯定半路截胡了,或者看到了我的用戶名密碼,或者看到了我訪問的內(nèi)容。

怎么辦呢?

加密!

我把內(nèi)容放到箱子里鎖起來傳過去,那邊用對應(yīng)的鑰匙就能打開。別人沒有鑰匙就看不了內(nèi)容。這種鑰匙叫對稱鑰匙。

但是怎么把鑰匙傳過去還不被別人知道呢?

東東陷入了思考。

這時候光光給他介紹了一把神奇的鎖。這把鎖開鎖和解鎖要用不同的鑰匙,叫非對稱鑰匙,說是可以解決問題。

東東想了一會,對哦,如果開鎖和解鎖用不同的鑰匙,那 xx 服務(wù)器只要把一把鑰匙給我就好了,我把內(nèi)容放進去,只有他能解鎖。

這樣就解決了對稱鑰匙傳遞的難題,之后對方拿到鑰匙就可以進行加密的通信了。

后來東東才知道這種加密技術(shù)叫做 RSA,可以生成兩把密鑰。

把一個密鑰留下,一個密鑰公開。

留下的密鑰自有自己有,叫做私鑰。

公開的密鑰所有人都可以拿到,叫做公鑰。

公鑰加密只有私鑰能解密,私鑰加密只有公鑰能解密。

因為公鑰是公開的,別人加密了只有我能解密,這種叫做加密。

私鑰是只有我一個人有,我加密了,別人都能揭秘,但都知道是我加密的,能證明我的身份,這種叫做簽名。

加密和簽名分別用來解決不同的問題。

回到東東的問題,世界上有那么多帶鎖的箱子和公鑰,我怎么知道這個箱子和公鑰就是 xx 服務(wù)器給我的呢?

要是有一個權(quán)威機構(gòu)能鑒別公鑰的真?zhèn)尉秃昧恕?/p>

這個機構(gòu)就叫做 CA,專門用于鑒別公鑰真?zhèn)蔚?,被這個機構(gòu)認證為真的公鑰就被稱作數(shù)字證書。

現(xiàn)在東東的電腦上保存了信任哪些 CA,然后訪問 xx 網(wǎng)站的時候,就會拿到它的數(shù)字證書,對比了一下,是我信任的 CA 頒發(fā)的。那就把對稱密鑰傳給他好了,之后我們用對稱密鑰來加密通信的消息。

之后,東東就能愉快的訪問 xx 網(wǎng)站,而不用擔(dān)心隔壁小王的窺探了。

理一下其中的技術(shù):

最核心的是非對稱加密用的 RSA 算法,可以生成兩把密鑰,分別作為公私鑰,用來加密和簽名,通過這種方式傳遞對稱密鑰,之后進行信息的加密傳輸。公鑰還需要鑒別下真?zhèn)?,這個是 CA 做的,那個是存在計算機里的可信任的機構(gòu),他們認證的公鑰叫做數(shù)字證書。

那這種技術(shù)是在網(wǎng)絡(luò)的哪一層呢?

進程到進程的加密傳輸,明顯是傳輸層,這種協(xié)議叫做 SSL。發(fā)布了 1.0、2.0、3.0 的版本后,發(fā)現(xiàn)了個 bug,后來修復(fù)了,感覺改動比較大,就改了個名字叫 TSL。

再上層就是 http 來訪問網(wǎng)站內(nèi)容了。

所以這種安全的通信是 SSL + HTTP 或者叫 TLS + HTTP,合起來叫做 https。

CA 認證的證書也就可以叫做 https 數(shù)字證書、ssl 數(shù)字證書、tls 數(shù)字證書等等。

后來東東做了程序員,不只是通過網(wǎng)頁瀏覽 xx 網(wǎng)站的網(wǎng)頁,更要鏈接到服務(wù)器上去執(zhí)行一些腳本,專業(yè)了不少。

和訪問 xx 網(wǎng)站一樣,同樣要登陸,那還可以用 https 么?

不行,不是每個網(wǎng)站都找 CA 認證一遍的,不然內(nèi)部那么多服務(wù)器,都認證一邊才能訪問么?

所以簡化一下,xx 服務(wù)器把公鑰直接給我,讓我自己選擇是否信任:

這樣我只要信任了公鑰就可以證明是 xx 服務(wù)器,然后把用戶名密碼傳過去,那邊驗證下,就可以登陸服務(wù)器了。這叫做 ssh 協(xié)議。

看起來和 https 沒多大差別,只不過公鑰不需要 CA 認證了。

這還不夠,每次還要輸入用戶名密碼多麻煩,怎么能不輸入密碼就能證明我的身份呢?

東東想起來 RSA 的私鑰可以用來簽名,那我把公鑰給 xx 服務(wù)器,通過私鑰加密一段隨機的內(nèi)容,他能解開不就是證明了我是我么?

所以東東改進了下 ssh 協(xié)議,不是信任了服務(wù)器的公鑰就傳用戶名和密碼過去了, 而是服務(wù)器返回一段隨機數(shù),我這邊用我的私鑰加密下這段隨機數(shù)(也就是簽個名),那邊能解開就證明了我是我。

私鑰簽名能達到證明身份的目的,那還用啥用戶名密碼呢,而且還更安全。

就這樣,東東就可以免密登陸 xx 服務(wù)器執(zhí)行各種命令了。

只是剛開始的時候需要在本地生成公私鑰,把公鑰告訴 xx 網(wǎng)站就行了。

回想一路以來用到的 htts 和 ssh,雖然都是基于公私密鑰,但確實是有一些區(qū)別的:

  • https 的取向是面向普通用戶的,他們是通過用戶名和密碼認證身份的,只需要瀏覽器上同意下數(shù)字證書,就可以拿到對稱密鑰,然后加密通信的數(shù)據(jù),對于普通用戶來說,只不過在瀏覽器地址欄多了個小鑰匙的圖標,其他的感覺不到。
  • ssh 的取向是針對專業(yè)用戶的,他們既可以通過用戶名和密碼認證身份,還可以通過一套公私鑰來認證身份,而且服務(wù)器比較多,不需要 CA 認證,打在控制臺自己看一下就行。通過私鑰簽名取代了用戶名密碼,還能夠免密登陸。

其實區(qū)別就兩個,一個是公鑰是否 CA 認證,一個是認證身份使用用戶名密碼還是公私鑰。

當(dāng)然,他們用于的目的也不同,一個是網(wǎng)頁的安全瀏覽的,一個是遠程執(zhí)行命令的。

https 和 ssh 因為不同的取向,在 RSA 的公私鑰機制的基礎(chǔ)上,發(fā)展成了不同的協(xié)議。東東也從普通的電腦用戶成長為了一名專業(yè)的程序員。

 

責(zé)任編輯:姜華 來源: 神光的編程秘籍
相關(guān)推薦

2018-05-20 15:18:19

2009-10-23 16:58:12

紅旗Linux版本

2019-03-27 18:32:13

網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全技能大賽

2015-03-20 10:25:03

蘋果中國

2016-10-25 21:31:16

錢穎一馬化騰創(chuàng)業(yè)經(jīng)

2012-03-27 14:43:35

Android

2018-03-28 17:18:26

大數(shù)據(jù)

2018-03-25 09:18:02

IT

2010-05-29 14:24:13

2021-04-30 07:34:42

bug復(fù)現(xiàn)日志

2020-11-21 19:04:33

技術(shù)開發(fā)指標

2011-12-05 09:46:38

操作系統(tǒng)發(fā)展史

2024-09-23 19:47:27

數(shù)據(jù)技術(shù)數(shù)據(jù)飛輪數(shù)據(jù)驅(qū)動

2017-09-07 13:07:00

華為任正非手機

2020-08-12 09:32:31

小米MIUI

2009-02-24 09:58:45

程序員成長開竅

2012-03-16 16:43:51

大數(shù)據(jù)業(yè)務(wù)分析IBM論壇2012

2015-04-16 14:24:56

Hadoop云計算HDFS

2021-09-11 19:46:14

配置
點贊
收藏

51CTO技術(shù)棧公眾號