數字證書認證這點事, SSL/TLS,OpenSSL

1.概念web

數字證書算法

   HTTPS請求時,Server發給瀏覽器的認證數據,用私鑰簽名,而且告訴瀏覽器公鑰,利用公鑰解密簽名,確認Server身份。瀏覽器

   證書還會指明相應的CA,CA能確認證書是否真的是CA頒發的。安全

    能夠用PEM、等編碼服務器

SSL/TLSsocket

   SSL是上世紀由Netscape設計的web安全協議,並得到了普遍應用,SSLv2.0, v3.0,目前主要是v3工具

   TLS是ITEF將SSL協議標準化了,TLSv1.0,v1.1,v1.2。web安全

   其實TLSv1.0跟SSLv3.0差別很小,幾乎同樣。編碼

openSSL: 一個開源的實現了SSL/TLS協議的庫,包括3部份內容。加密

   a. SSL_xxx帶頭的API,支持SSL/TLS協議

       其中SSL* 這個結構最重要,調用openSSL API都會拿這個handle

       最後相似socket同樣提供 SSL_read(SSL* buf,bufsize), SSL_write(SSL* buf,bufsize)

   b. X509_xxx, AES_xxx, RSA_xxx MD5_xxx等API, 支持業界通用的證書認證、加解密等功能。

   c. 提供一些二進制工具,用來生成證書、簽名、加解密等功能。

2.數字證書認證流程

2.1跟服務器TCP鏈接

2.2服務器傳送證書給瀏覽器

    a. signedCertificate

        版本、序列號(CA據次肯定證書)、簽名的算法

        頒發者(CA)的可識別名稱: countryName, stateName, localityName,

                                          OrganizationUnit, OrganizationName, commonName(有效的 DNS 名稱)

        有效期、

        證書名稱: OrganizationUnit, OrganizationName, commonName

        證書的算法及公鑰

        擴展

    b. algorithmId: 證書的簽名算法

    c. encryptedData: 證書籤名值,CA對證書籤名後的值,結合CA的私鑰,使用algorithmID對應的算法生成。

2.3瀏覽器如何驗證

    瀏覽器根據證書的CA的公鑰,對證書籤名部分解密,解密成功則證書是CA頒發的。

3.使用代理時,如何處理證書認證

代理能夠有不少種,http代理,socket代理等。

socket的代理,能夠代理就不須要處理證書了,僅僅做爲一個bridge。

4.補充

openSSH: 是 SSH (Secure SHell) 協議的免費開源實現。SSH協議族能夠用來進行遠程控制,用來加密遠程控件和文件傳輸過程當中的數據。

FreeBSD: 是一種自由類Unix操做系統

相關文章
相關標籤/搜索