人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng) > 硬件軟件教程 > 詳細(xì)頁面

SSL / TLS相互認(rèn)證(1)-SSL / TLS的工作原理

SSL / TLS相互認(rèn)證(1)-SSL / TLS的工作原理

更新時(shí)間:2023-06-22 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

根據(jù)運(yùn)行的環(huán)境,操作系統(tǒng)可以分為桌面操作系統(tǒng),手機(jī)操作系統(tǒng),服務(wù)器操作系統(tǒng),嵌入式操作系統(tǒng)等。

ssl認(rèn)證_saa認(rèn)證與vde認(rèn)證有什么區(qū)別_ssl證書 https ssl

本文的一部分:

什么是SSL,什么是TLS?官方說法是SSL是安全套接字層(secure sockets layer),TLS是SSL的后繼者,稱為傳輸層安全性(transport layer security). 說穿了,就是在明文的上層和TCP層之間增加一層加密,以保證上層信息傳輸?shù)陌踩? 例如,HTTP協(xié)議以純文本格式傳輸,并且在添加SSL層之后,有一個(gè)優(yōu)雅的名稱HTTPS. 其唯一目的是確保用于上層通信安全性的一組機(jī)制. 它的發(fā)展又經(jīng)歷了以下時(shí)期. 像手機(jī)軟件的升級(jí)一樣,每次更新都會(huì)添加或刪除功能,例如引入新的加密算法和修改握手方法.

SSL1.0: 已廢除

SSL2.0: RFC6176已被取消

SSL3.0: RFC6101,基本上已取消

TLS1.0: RFC2246,其中大多數(shù)當(dāng)前使用此方法

TLS1.1: RF346

TLS1.2: RFC5246,未廣泛使用

TLS1.3: IETF正在醞釀中

接下來,我們將介紹TLS1.x如何確保通信安全.

如何確保安全?您是說安全性是安全的,如何實(shí)現(xiàn)?絕對(duì)安全嗎?

哈,有人民,有江湖,有江湖,沒有絕對(duì)的安全. 但是SSL / TLS確實(shí)可以在很大程度上保證信息安全. 以下是基于圖1中的SSL / TLS工作流的實(shí)現(xiàn)過程的概述.

SSL workflow

圖1 SSL / TLS工作流程

CA: 證書頒發(fā)機(jī)構(gòu). 它類似于國家出入境管理部門,后者向他人發(fā)行護(hù)照. 它也類似于國家工商行政管理總局,后者向公司頒發(fā)營業(yè)執(zhí)照.

它具有兩個(gè)主要屬性:

1)CA本身是受信任的// //國際認(rèn)可的

2)向受信任的申請(qǐng)人頒發(fā)證書//與護(hù)照一樣,要確定您的合法身份,您不能是分子或叛亂分子. 當(dāng)然,您需要受到保護(hù),同時(shí)ssl認(rèn)證,CA可以隨時(shí)吊銷您的證書.

證書是什么樣的?實(shí)際上,您的計(jì)算機(jī)中有一堆CA證書. 你可以看看嗎:

360瀏覽器: 選項(xiàng)/設(shè)置->高級(jí)設(shè)置->隱私和安全性->管理HTTPS / SSL證書->證書頒發(fā)機(jī)構(gòu)

Firefox瀏覽器: 首選項(xiàng)->高級(jí)->證書->查看證書->證書頒發(fā)機(jī)構(gòu)

chrome瀏覽器: 設(shè)置->高級(jí)->管理證書->授權(quán)中心

ssl認(rèn)證_ssl證書 https ssl_saa認(rèn)證與vde認(rèn)證有什么區(qū)別

ubuntu: / etc / ssl / certs

這些是CA證書!

CA的證書ca.crt與SSL服務(wù)器的證書server.crt之間有什么關(guān)系?

1)SSL Server自己生成一個(gè)私鑰/公鑰對(duì). server.key / server.pub //私鑰加密,公鑰解密!

2)server.pub生成請(qǐng)求文件server.req. 請(qǐng)求文件包含一些服務(wù)器信息,例如域名/申請(qǐng)人/公共密鑰等.

3)服務(wù)器將請(qǐng)求文件server.req提交給CA. CA驗(yàn)證正確之后,它將使用ca.key和請(qǐng)求文件來生成server.crt

4)由于ca.key和ca.crt是一對(duì),因此ca.crt可以解密server.crt.

在實(shí)際應(yīng)用中: 如果SSL客戶端要驗(yàn)證SSL服務(wù)器,則SSL服務(wù)器必須將其證書server.crt傳遞給客戶端. 然后,客戶端使用ca.crt來驗(yàn)證server.crt的合法性. 如果這是網(wǎng)絡(luò)釣魚網(wǎng)站,則CA將不會(huì)向他頒發(fā)有效的server.crt證書,因此客戶端將使用ca.crt進(jìn)行驗(yàn)證,并且它將失敗. 例如,如果瀏覽器是客戶端,則您想訪問合法的淘寶網(wǎng)站,但如果您不小心訪問了該瀏覽器,則瀏覽器將檢查此假淘寶網(wǎng)絡(luò)釣魚網(wǎng)站的非法性,并提醒用戶不要繼續(xù)訪問!這樣,可以確保客戶端的所有https訪問都是安全的.

什么是SSL / TLS單向認(rèn)證和雙向認(rèn)證?

單向身份驗(yàn)證意味著只有一個(gè)對(duì)象可以驗(yàn)證對(duì)等證書的有效性.

通常使用客戶端來驗(yàn)證服務(wù)器的合法性. 然后客戶端需要一個(gè)ca.crt,服務(wù)器需要server.crt,server.key

雙向認(rèn)證是指相互驗(yàn)證. 服務(wù)器需要驗(yàn)證每個(gè)客戶端,客戶端也需要驗(yàn)證服務(wù)器.

服務(wù)器需要server.key,server.crt,ca.crt

客戶端需要client.key,client.crt,ca.crt

證書工作流

圖2證書詳細(xì)工作流程

1)申請(qǐng)認(rèn)證: 服務(wù)器需要生成公鑰和私鑰對(duì)pub_svr和pri_svr,并同時(shí)根據(jù)pub_svr生成請(qǐng)求文件csr并將其提交給CA. csr包含公鑰,組織信息,個(gè)人信息(域名)和其他信息. (圖1中的server.req是csr請(qǐng)求文件)

2)審核信息: CA通過各種方式(例如,組織是否存在,企業(yè)是否合法以及它是否擁有域)來驗(yàn)證申請(qǐng)人提供的信息的真實(shí)性,例如和離線名稱.

3)頒發(fā)證書: 如果信息得到批準(zhǔn),則CA將向申請(qǐng)人頒發(fā)認(rèn)證文件證書.

證書包含以下信息: 申請(qǐng)人的公鑰,申請(qǐng)人的組織信息和個(gè)人信息,發(fā)行機(jī)構(gòu)CA的信息,有效時(shí)間,證書序列號(hào)等信息,還包含簽名.

簽名生成算法: 首先,使用哈希函數(shù)來計(jì)算公共明文信息的信息摘要,然后使用CA的私鑰對(duì)信息摘要進(jìn)行加密,并且密文是簽名. (server.crt在圖1中生成)

4)返回證書: 如果客戶端請(qǐng)求驗(yàn)證服務(wù)器,則服務(wù)器需要返回證書文件. (在圖1中,握手返回到server.crt)

saa認(rèn)證與vde認(rèn)證有什么區(qū)別_ssl證書 https ssl_ssl認(rèn)證

5)客戶端驗(yàn)證證書: 客戶端讀取證書中的相關(guān)明文信息,使用相同的哈希函數(shù)計(jì)算消息摘要,然后使用CA的相應(yīng)公鑰對(duì)簽名的數(shù)據(jù)進(jìn)行解密,并對(duì)證書進(jìn)行比較消息摘要,如果相同ssl認(rèn)證,則可以確的有效性,即公鑰合法. 然后,客戶端將驗(yàn)證與證書有關(guān)的域名信息,是否取消了有效時(shí)間等.

客戶端將具有內(nèi)置的受信任CA證書信息(包括公共密鑰). 如果不信任CA,則找不到相應(yīng)CA的證書,并且該證書也將被確定為非法. (在圖1中,檢查是可選的,我們可以選擇不驗(yàn)證服務(wù)器證書的有效性)

6)秘密密鑰協(xié)商: 驗(yàn)證后,服務(wù)器和客戶端將進(jìn)行秘密密鑰協(xié)商. 接下來,服務(wù)器和客戶端將使用對(duì)稱密鑰加密. (對(duì)稱的加密時(shí)間性能非常出色)(圖1中的pre-master / change_cipher_spec / encrypted_handshake_message過程)

7)數(shù)據(jù)傳輸: 服務(wù)器和客戶端使用對(duì)稱密鑰來加密和解密數(shù)據(jù).

單項(xiàng)認(rèn)證

客戶端發(fā)起一個(gè)請(qǐng)求,以明文形式發(fā)送請(qǐng)求信息,包括版本信息,密碼套件候選列表,壓縮算法候選列表,隨機(jī)數(shù),擴(kuò)展字段和其他信息. 相關(guān)信息如下:

客戶端計(jì)算所有接收到的信息的哈希值,并使用協(xié)商后的密鑰對(duì)crypted_handshake_message進(jìn)行解密,驗(yàn)證服務(wù)器發(fā)送的數(shù)據(jù)和密鑰,并在驗(yàn)證后完成握手;

開始使用協(xié)商的密鑰和算法進(jìn)行加密通信.

這里寫圖片描述

我們構(gòu)建的SSL / TLS服務(wù)器為192.168.111.100,客戶端為192.168.111.101. 客戶端需要驗(yàn)證服務(wù)器的合法性.

我們只查看TLSv1.1數(shù)據(jù)包:

第一個(gè)程序包(第25個(gè))Client Hello程序包,即SSL / TLS單向身份驗(yàn)證過程的(1)

第二個(gè)軟件包(第27號(hào))服務(wù)器Hello軟件包,包括服務(wù)器證書等. 這是SSL / TLS單向身份驗(yàn)證過程的(2)

第三包(第28號(hào))服務(wù)器證書驗(yàn)證完成,并且客戶端密鑰交換+更改密碼規(guī)范+加密握手消息同時(shí)發(fā)送. 這就是SSL / TLS單向身份驗(yàn)證過程的(4)

第四包(第29號(hào))密鑰協(xié)商,更改密碼規(guī)范+加密的hanshake消息. 即SSL / TLS單向身份驗(yàn)證過程的(5)

第五個(gè)數(shù)據(jù)包(第30個(gè))握手完成. 開始上層數(shù)據(jù)傳輸. SSL / TLS單向身份驗(yàn)證過程(7)

它與單向身份驗(yàn)證幾乎相同,除了客戶端對(duì)服務(wù)器證書進(jìn)行身份驗(yàn)證之后,客戶端會(huì)將自己的證書client.crt傳遞給服務(wù)器. 服務(wù)器通過身份驗(yàn)證后,密鑰協(xié)商開始.

實(shí)際的wireshark分析:

這里寫圖片描述

與單向身份驗(yàn)證相同:

我們構(gòu)建的SSL / TLS服務(wù)器為192.168.111.100,客戶端為192.168.111.101. 客戶端需要驗(yàn)證服務(wù)器的合法性,服務(wù)器還需要驗(yàn)證客戶端的合法性!

我們只查看TLSv1.1數(shù)據(jù)包:

ssl認(rèn)證_saa認(rèn)證與vde認(rèn)證有什么區(qū)別_ssl證書 https ssl

第一個(gè)程序包(第55號(hào))Client Hello程序包,即SSL / TLS單向身份驗(yàn)證過程的(1)

第二個(gè)軟件包(第57號(hào))服務(wù)器Hello軟件包,包括服務(wù)器證書等. 這是SSL / TLS單向身份驗(yàn)證過程的(2)

第三包(第60號(hào))服務(wù)器證書驗(yàn)證完成,并且同時(shí)發(fā)送客戶端證書client.crt,其中還包括客戶端密鑰交換+更改密碼規(guī)范+加密的握手消息. 也就是說,SSL / TLS單向身份驗(yàn)證過程(4)

第四包(第61號(hào))服務(wù)器驗(yàn)證客戶端證書的有效性. 通過密鑰協(xié)商后,更改密碼規(guī)范+加密的hanshake消息. 即SSL / TLS單向身份驗(yàn)證過程的(5)

重發(fā)數(shù)據(jù)包(第62號(hào))由于網(wǎng)絡(luò)原因,TCP重發(fā)了60號(hào)數(shù)據(jù)包.

第五個(gè)數(shù)據(jù)包(第64個(gè))握手完成. 開始上層數(shù)據(jù)傳輸. SSL / TLS單向身份驗(yàn)證過程(7)

擴(kuò)展名是什么,例如crt / key / req / csr / pem / der?

1).crt表示證書,.key表示私鑰,.req表示請(qǐng)求文件,.csr表示請(qǐng)求文件,.pem表示pem格式,.der表示der格式.

您可以根據(jù)需要命名文件擴(kuò)展名. 命名不同的擴(kuò)展名只是為了了解需求. 但是,文件中的信息已格式化. 與exe和PE格式一樣,證書有兩種格式.

pem格式和der格式. 所有證書,私鑰等可以是pem或der格式,具體取決于應(yīng)用程序的需求.

pem和der格式可以相互轉(zhuǎn)換:

    openssl x509 -in ca.crt -outform DER -out ca.der  //pem -> der
    openssl x509 -inform der -in ca.der -out ca.pem    // der -> pem

pem格式:經(jīng)過加密的文本文件,一般有下面幾種開頭結(jié)尾: 

    -----BEGIN RSA PRIVATE KEY-----
    -----END RSA PRIVATE KEY-----
    or:
   -----BEGIN CERTIFICATE REQUEST-----
   -----END CERTIFICATE REQUEST-----
    or:
   ----BEGIN CERTIFICATE-----
  -----END CERTIFICATE-----

der格式: 加密的二進(jìn)制文件.

2)證書包含申請(qǐng)人的公鑰,申請(qǐng)人的組織信息和個(gè)人信息,發(fā)證機(jī)關(guān)的CA信息,有效期,證書序列號(hào)和其他純文本信息,還包含簽名. 例如,查看百度證書的詳細(xì)信息.

a)首先下載百度證書

要訪問Firefox瀏覽器,請(qǐng)單擊左上角的綠色小鎖,單擊向右箭頭,單擊更多信息,單擊以查看證書,單擊詳細(xì)信息,然后單擊導(dǎo)出. 您可以導(dǎo)出百度的證書baiducom.crt

b)查看證書詳細(xì)信息的命令

openssl x509 -noout -text -in baiducom.crt

baiducert

在詳細(xì)信息中,存在一個(gè)字段: X509v3基本約束: CA: FALSE

ssl認(rèn)證_ssl證書 https ssl_saa認(rèn)證與vde認(rèn)證有什么區(qū)別

此字段指示證書是CA證書還是常規(guī)的非CA證書. 有關(guān)詳細(xì)說明,請(qǐng)參閱RFC5280#section-4.2.1.9,并且RFC5280還詳細(xì)介紹了證書的工作方法.

3)私鑰加密,公鑰解密!

SSL / TLS是一個(gè)工作原理,openssl和mbedtls是SSL / TLS的特定實(shí)現(xiàn),非常類似于TCP / IP協(xié)議和套接字之間的關(guān)系.

我們使用makefile.sh腳本在本地創(chuàng)建一個(gè)CA(ca.crt + ca.key),并使用該CA分別向服務(wù)器和客戶端頒發(fā)證書.

makefile.sh

# * Redistributions in binary form must reproduce the above copyright
#   notice, this list of conditions and the following disclaimer in the
#   documentation and/or other materials provided with the distribution.
# * Neither the name of the axTLS project nor the names of its
#   contributors may be used to endorse or promote products derived
#   from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# Generate the certificates and keys for testing.
#
PROJECT_NAME="TLS Project"
# Generate the openssl configuration files.
cat > ca_cert.conf << EOF  
[ req ]
distinguished_name     = req_distinguished_name
prompt                 = no
[ req_distinguished_name ]
 O                      = $PROJECT_NAME Dodgy Certificate Authority
EOF
cat > server_cert.conf << EOF  
[ req ]
distinguished_name     = req_distinguished_name
prompt                 = no
[ req_distinguished_name ]
 O                      = $PROJECT_NAME
 CN                     = 192.168.111.100
EOF
cat > client_cert.conf << EOF  
[ req ]
distinguished_name     = req_distinguished_name
prompt                 = no
[ req_distinguished_name ]
 O                      = $PROJECT_NAME Device Certificate
 CN                     = 192.168.111.101
EOF
mkdir ca
mkdir server
mkdir client
mkdir certDER
# private key generation
openssl genrsa -out ca.key 1024
openssl genrsa -out server.key 1024
openssl genrsa -out client.key 1024
# cert requests
openssl req -out ca.req -key ca.key -new \
            -config ./ca_cert.conf
openssl req -out server.req -key server.key -new \
            -config ./server_cert.conf 
openssl req -out client.req -key client.key -new \
            -config ./client_cert.conf 
# generate the actual certs.
openssl x509 -req -in ca.req -out ca.crt \
            -sha1 -days 5000 -signkey ca.key
openssl x509 -req -in server.req -out server.crt \
            -sha1 -CAcreateserial -days 5000 \
            -CA ca.crt -CAkey ca.key
openssl x509 -req -in client.req -out client.crt \
            -sha1 -CAcreateserial -days 5000 \
            -CA ca.crt -CAkey ca.key
openssl x509 -in ca.crt -outform DER -out ca.der
openssl x509 -in server.crt -outform DER -out server.der
openssl x509 -in client.crt -outform DER -out client.der
mv ca.crt ca.key ca/
mv server.crt server.key server/
mv client.crt client.key client/
mv ca.der server.der client.der certDER/
rm *.conf
rm *.req
rm *.srl 

將以上代碼另存為makefile.sh

進(jìn)行以下修改,并執(zhí)行終端.

-將CN域中的IP地址更改為主機(jī)/設(shè)備的IP地址

-[可選]將加密數(shù)字1024更改為所需的加密數(shù)字

您將看到:

ssldir

ca目錄: 保存ca的私鑰ca.key和證書ca.crt

certder目錄: 將證書另存為二進(jìn)制文件,例如client.der server.der

客戶端目錄: client.crt client.key

服務(wù)器目錄: server.crt server.key

$./makefile.sh

刪除腳本rmfile.sh:

rm ca/ -rf
rm certDER/ -rf
rm client/ -rf
rm server/ -rf

將上述代碼另存為rmfile.sh并在終端中執(zhí)行,這將刪除生成的目錄和文件:

$./rmfile.sh

我們可以在本地使用CA證書來驗(yàn)證自己頒發(fā)的服務(wù)器證書server.crt和客戶端證書client.crt.

$openssl verify -CAfile ca/ca.crt server/server.crt

$openssl verify -CAfile ca/ca.crt client/client.crt


本文來自本站,轉(zhuǎn)載請(qǐng)注明本文網(wǎng)址:
http://www.pc-fly.com/a/jisuanjixue/article-257141-1.html



溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 沈阳市| 夏津县| 阳西县| 玉溪市| 荥阳市| 敦化市| 隆回县| 措勤县| 岚皋县| 米易县| 嘉禾县| 新沂市| 周宁县| 香港| 阳春市| 昔阳县| 贵南县| 衡山县| 兴和县| 奇台县| 曲阜市| 晋州市| 高安市| 荔浦县| 庄河市| 定兴县| 大渡口区| 黑河市| 温州市| 衢州市| 容城县| 曲靖市| 盈江县| 富顺县| 依安县| 望都县| 凤庆县| 衡水市| 靖远县| 龙州县| 丽水市|