<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    捕風(fēng)之巢

    統(tǒng)計(jì)

    留言簿(3)

    java友情鏈接

    閱讀排行榜

    評(píng)論排行榜

    openssl簡(jiǎn)介(四)--協(xié)議

    ?

    一.???? 協(xié)議

    SSL(SecureSocketLayer) netscape 公司提出的主要用于 web 的安全通信標(biāo)準(zhǔn) , 分為 2.0 版和 3.0 .TLS (TransportLayerSecurity) IETF TLS 工作組在 SSL3.0 基礎(chǔ)之上提出的安全通信標(biāo)準(zhǔn) , 目前版本是 1.0, RFC2246.SSL/TLS 提供的安全機(jī)制可以保證應(yīng)用層數(shù)據(jù)在互聯(lián)網(wǎng)絡(luò)傳輸不被監(jiān)聽(tīng) , 偽造和竄改 .

    一般情況下的網(wǎng)絡(luò)協(xié)議應(yīng)用中,數(shù)據(jù)在機(jī)器中經(jīng)過(guò)簡(jiǎn)單的由上到下的幾次包裝,就進(jìn)入網(wǎng)絡(luò),如果這些包被截獲的話,那么可以很容易的根據(jù)網(wǎng)絡(luò)協(xié)議得到里面的數(shù)據(jù) . 由網(wǎng)絡(luò)監(jiān)聽(tīng)工具可以很容易的做到這一點(diǎn)。

    SSL
    就是為了加密這些數(shù)據(jù)而產(chǎn)生的協(xié)議,可以這么理解,它是位與應(yīng)用層和 TCP/IP 之間的一層,數(shù)據(jù)經(jīng)過(guò)它流出的時(shí)候被加密,再往 TCP/IP 送,而數(shù)據(jù)從 TCP/IP 流入之后先進(jìn)入它這一層被解密,同時(shí)它也能夠驗(yàn)證網(wǎng)絡(luò)連接倆端的身份。


    它的主要功能就是倆個(gè):
    一:加密解密在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包 , 同時(shí)保護(hù)這些數(shù)據(jù)不被修改 , 和偽造。
    二:驗(yàn)證網(wǎng)絡(luò)對(duì)話中雙方的身份

    SSL
    協(xié)議包含倆個(gè)子協(xié)議,一個(gè)是包協(xié)議,一個(gè)是握手協(xié)議。包協(xié)議是說(shuō)明 SSL 的數(shù)據(jù)包應(yīng)該如何封裝的。握手協(xié)議則是說(shuō)明通信雙方如何協(xié)商共同決定使用什么算法以及算法使用的 key 。很明顯包協(xié)議位于握手協(xié)議更下一層。我們暫時(shí)對(duì)包協(xié)議的內(nèi)容沒(méi)有興趣。

    SSL
    握手過(guò)程說(shuō)簡(jiǎn)單點(diǎn)就是:通信雙方通過(guò)不對(duì)稱(chēng)加密算法來(lái)協(xié)商好一個(gè)對(duì)稱(chēng)加密算法以及使用的 key, 然后用這個(gè)算法加密以后所有的數(shù)據(jù)完成應(yīng)用層協(xié)議的數(shù)據(jù)交換。


    握手一般都是由 client 發(fā)起的, SSL 也不例外。

    1client
    送給 server 它自己本身使用的 ssl version(ssl 一共有三個(gè) version), 加密算法的一些配置,和一些隨機(jī)產(chǎn)生的數(shù)據(jù),以及其他在 SSL 協(xié)議中需要用到的信息。

    2server
    送給 client 它自己的 SSL version, 加密算法的配置,隨機(jī)產(chǎn)生的數(shù)據(jù),還會(huì)用自己的私有密鑰加密 SERVER-HELLO 息。 Server 還同時(shí)把自己的證書(shū)文件給送過(guò)去。同時(shí)有個(gè)可選的項(xiàng)目,就是 server 可以要求需要客戶的 certificate

    3client
    就用 server 送過(guò)來(lái)的 certificate 來(lái)驗(yàn)證 server 的身份。如果 server 身份驗(yàn)證沒(méi)通過(guò),本次通信結(jié)束。通過(guò)證書(shū)驗(yàn)證 之后,得到 server 的公共密鑰,解開(kāi) server 送來(lái)的被其用私有密鑰加密過(guò)的 SERVER-HELLO 信息,看看對(duì)頭與否。如果不對(duì),說(shuō)明對(duì)方只有 server 的公共密鑰而沒(méi)有私有密鑰,必是假的。通信告吹。

    4client
    使用到目前為止所有產(chǎn)生了的隨機(jī)數(shù)據(jù) (sharedsecret),client 產(chǎn)生本次握手中的 premastersecret( 這個(gè)步 驟是有可能有 server 的參與的,由他們使用的加密算法決定 ), 并且把這個(gè)用 server 的公共密鑰加密,送回給 server. 如果 server 要求需 要驗(yàn)證 client, 那么 client 也需要自己把自己的證書(shū)送過(guò)去,同時(shí)送一些自己簽過(guò)名的數(shù)據(jù)過(guò)去。

    SSL
    協(xié)議有倆種技術(shù)來(lái)產(chǎn)生 sharedsecret( 真不好意思,又是一個(gè)很難意譯的詞組 ),
    一種是 RSA, 一種是 EDH.

    RSA
    就是我們上一章說(shuō)過(guò)的一種不對(duì)稱(chēng)加密算法。首先 server 把自己的 RSA 公共密鑰送給 client,client 于是用這個(gè) key 加密一個(gè)隨機(jī)產(chǎn)生的值 ( 這個(gè)隨機(jī)產(chǎn)生的值就是 sharedsecret) ,再把結(jié)果送給 server.

    EDH
    也是一種不對(duì)稱(chēng)加密算法,但它與 RSA 不同的是,它好象沒(méi)有自己固定的公共密鑰和私有密鑰,都是在程序跑起來(lái)的時(shí)候產(chǎn)生的,用完就 K 掉。其他的步驟倆者就差不多了。

    RSA,DSA,DH
    三種不對(duì)稱(chēng)加密算法的區(qū)別也就在這里。 RSA 的密鑰固定,后倆個(gè)需要一個(gè)參數(shù)來(lái)臨時(shí)生成 key.DH 甚至要求雙方使用同樣的參數(shù),這個(gè)參數(shù)要事先指定。如果 SSL 庫(kù)沒(méi)有 load 進(jìn)這個(gè)參數(shù), DH 算法就沒(méi)辦法用。 DSA 沒(méi)研究過(guò)。

    5Server
    驗(yàn)證完 client 的身份之后,然后用自己的私有密鑰解密得到 premastersecret 然后雙方利用這個(gè) premastersecret 來(lái)共同協(xié)商,得到 mastersecret.

    6
    雙方用 master 一起產(chǎn)生真正的 sessionkey, 著就是他們?cè)谑O碌倪^(guò)程中的對(duì)稱(chēng)加密的 key 了。這個(gè) key 還可以用來(lái)驗(yàn)證數(shù)據(jù)完整性。雙方再交換結(jié)束信息。握手結(jié)束。

    接下來(lái)雙方就可以用協(xié)商好的算法和 key 來(lái)用對(duì)稱(chēng)加密算法繼續(xù)下面的過(guò)程了。

    很簡(jiǎn)單吧?其實(shí)要復(fù)雜一些的,我簡(jiǎn)化了很多來(lái)說(shuō)。

    不過(guò)還是有個(gè)問(wèn)題,喜歡搗蛋的人雖然看不懂他們?cè)诮涣餍┦裁矗鄹目偪梢园桑?/span>
    記得我們?cè)诩用芩惴ɡ锩娼榻B過(guò)的哈希算法嗎?就是為了對(duì)付這種搗蛋者的。在每次送信息的時(shí)候,附帶把整條信息的哈希值也送過(guò)去,接收方收到信息的時(shí)候,也 把收到的內(nèi)容哈希一把,然后和對(duì)方送來(lái)的哈希值對(duì)比一下,看看是否正確。搗蛋者如果亂改通信內(nèi)容,哈希出來(lái)的值是不同的,那么就很容易被發(fā)現(xiàn)了。


    但這樣子,搗蛋者至少可以學(xué)舌。他可以把之前監(jiān)聽(tīng)到的內(nèi)容重復(fù)發(fā)給某一方,而這些內(nèi)容肯定是正確的 , 無(wú)法驗(yàn)證出有問(wèn)題的。哎, SSL 是怎么對(duì)付這種人的我還沒(méi)看出來(lái)。有篇文章說(shuō):多放點(diǎn)隨機(jī)數(shù)在信息里可以對(duì)付,我也沒(méi)去研究這句話是什么意思。

    posted on 2006-10-17 15:22 捕風(fēng) 閱讀(394) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): java安全

    主站蜘蛛池模板: 亚洲国产人成中文幕一级二级| 免费电影在线观看网站| 亚洲国产精华液2020| 麻豆精品国产免费观看| 一区二区三区四区免费视频| 亚洲国产精品人久久电影 | 亚洲国产乱码最新视频| 免费一级一片一毛片| 国产精品成人免费一区二区| 久久久久久曰本AV免费免费| 久久久久亚洲国产AV麻豆| 精品日韩亚洲AV无码| 亚洲av无码精品网站| 免费精品国产自产拍在| 四虎精品免费永久免费视频| 无码专区—VA亚洲V天堂| 亚洲视频在线一区二区| **一级毛片免费完整视| 国产成人精品免费久久久久| 搡女人免费免费视频观看| 亚洲系列国产精品制服丝袜第| 日韩在线a视频免费播放| 欧洲黑大粗无码免费| 国产卡一卡二卡三免费入口| 国产精品免费网站| 国产午夜无码片免费| fc2成年免费共享视频网站| 亚洲欧洲另类春色校园网站| 亚洲欧洲综合在线| 亚洲国产中文在线视频 | 日韩免费一区二区三区在线播放| 久久99国产乱子伦精品免费| 无码人妻AV免费一区二区三区| 小草在线看片免费人成视久网| 久久久久久一品道精品免费看 | 67pao强力打造67194在线午夜亚洲| 亚洲国产综合专区电影在线| 亚洲高清在线视频| 亚洲色图黄色小说| 色偷偷女男人的天堂亚洲网| 亚洲精品蜜夜内射|