網際網路的安全是如何保證的:TLS、SSL 和 CA | Linux 中國

2021-02-13 Linux中國

每天你都會重複這件事很多次,訪問網站,網站需要你用你的用戶名或者電子郵件地址和你的密碼來進行登錄。銀行網站、社交網站、電子郵件服務、電子商務網站和新聞網站。這裡只在使用了這種機制的網站中列舉了其中一小部分。

每次你登錄進一個這種類型的網站時,你實際上是在說:「是的,我信任這個網站,所以我願意把我的個人信息共享給它。」這些數據可能包含你的姓名、性別、實際地址、電子郵箱地址,有時候甚至會包括你的信用卡信息。

但是你怎麼知道你可以信任這個網站?換個方式問,為了讓你可以信任它,網站應該如何保護你的交易?

本文旨在闡述使網站變得安全的機制。我會首先論述 web 協議 http 和 https,以及傳輸層安全Transport Layer Security(TLS)的概念,後者是網際網路協議Internet Protocol(IP)層中的加密協議之一。然後,我會解釋證書頒發機構certificate authority和自籤名證書,以及它們如何幫助保護一個網站。最後,我會介紹一些開源的工具,你可以使用它們來創建和管理你的證書。

通過 https 保護路由

了解一個受保護的網站的最簡單的方式就是在交互中觀察它,幸運的是,在今天的網際網路上,發現一個安全的網站遠遠比找到一個不安全的網站要簡單。但是,因為你已經在 Opensource.com 這個網站上了,我會使用它來作為案例,無論你使用的是哪個瀏覽器,你應該在你的地址欄旁邊看到一個像鎖一樣的圖標。點擊這個鎖圖標,你應該會看見一些和下面這個類似的東西。

Certificate information

默認情況下,如果一個網站使用的是 http 協議,那麼它是不安全的。為通過網站主機的路由添加一個配置過的證書,可以把這個網站從一個不安全的 http 網站變為一個安全的 https 網站。那個鎖圖標通常表示這個網站是受 https 保護的。

點擊證書來查看網站的 CA,根據你的瀏覽器,你可能需要下載證書來查看它。

Certificate information

在這裡,你可以了解有關 Opensource.com 證書的信息。例如,你可以看到 CA 是 DigiCert,並以 Opensource.com 的名稱提供給 Red Hat。

這個證書信息可以讓終端用戶檢查該網站是否可以安全訪問。

警告:如果你沒有在網站上看到證書標誌,或者如果你看見的標誌顯示這個網站不安全——請不要登錄或者做任何需要你個人數據的操作。這種情況非常危險!

如果你看到的是警告標誌,對於大多數面向公眾開放的網站來說,這很少見,它通常意味著該證書已經過期或者是該證書是自籤名的,而非通過一個受信任的第三方來頒發。在我們進入這些主題之前,我想解釋一下 TLS 和 SSL。

帶有 TLS 和 SSL 的網際網路協議

TLS 是舊版安全套接字層協議Secure Socket Layer(SSL)的最新版本。理解這一點的最好方法就是仔細理解網際網路協議的不同協議層。

IP layers

我們知道當今的網際網路是由 6 個層面組成的:物理層、數據鏈路層、網絡層、傳輸層、安全層、應用層。物理層是基礎,這一層是最接近實際的硬體設備的。應用層是最抽象的一層,是最接近終端用戶的一層。安全層可以被認為是應用層的一部分,TLS 和 SSL,是被設計用來在一個計算機網絡中提供通信安全的加密協議,它們位於安全層中。

這個過程可以確保終端用戶使用網絡服務時,通信的安全性和保密性。

證書頒發機構和自籤名證書

證書頒發機構Certificate authority(CA)是受信任的組織,它可以頒發數字證書。

TLS 和 SSL 可以使連接更安全,但是這個加密機制需要一種方式來驗證它;這就是 SSL/TLS 證書。TLS 使用了一種叫做非對稱加密的加密機制,這個機制有一對稱為私鑰和公鑰的安全密鑰。(這是一個非常複雜的主題,超出了本文的討論範圍,但是如果你想去了解這方面的東西,你可以閱讀「密碼學和公鑰密碼基礎體系簡介」)你要知道的基礎內容是,證書頒發機構們,比如 GlobalSign、DigiCert 和 GoDaddy,它們是受人們信任的可以頒發證書的供應商,它們頒發的證書可以用於驗證網站使用的 TLS/SSL 證書。網站使用的證書是導入到主機伺服器裡的,用於保護網站。

然而,如果你只是要測試一下正在開發中的網站或服務,CA 證書可能對你而言太昂貴或者是太複雜了。你必須有一個用於生產目的的受信任的證書,但是開發者和網站管理員需要有一種更簡單的方式來測試網站,然後他們才能將其部署到生產環境中;這就是自籤名證書的來源。

自籤名證書是一種 TLS/SSL 證書,是由創建它的人而非受信任的 CA 機構頒發的。用電腦生成一個自籤名證書很簡單,它可以讓你在無需購買昂貴的 CA 頒發的證書的情況下測試一個安全網站。雖然自籤名證書肯定不能拿到生產環境中去使用,但對於開發和測試階段來說,這是一種簡單靈活的方法。

生成證書的開源工具

有幾種開源工具可以用來管理 TLS/SSL 證書。其中最著名的就是 openssl,這個工具包含在很多 Linux 發行版中和 MacOS 中。當然,你也可以使用其他開源工具。

工具名描述許可證OpenSSL實現 TLS 和加密庫的最著名的開源工具Apache License 2.0EasyRSA用於構建 PKI CA 的命令行實用工具GPL v2CFSSL來自 cloudflare 的 PKI/TLS 瑞士軍刀BSD 2-Clause Simplified LicenseLemur來自網飛Netflix的 TLS 創建工具Apache License 2.0

如果你的目的是擴展和對用戶友好,網飛的 Lemur 是一個很有趣的選擇。你在網飛的技術博客上可以查看更多有關它的信息。

如何創建一個 Openssl 證書

你可以靠自己來創建證書,下面這個案例就是使用 Openssl 生成一個自籤名證書。

1、使用 openssl 命令行生成一個私鑰:

openssl genrsa -out example.key 2048

2、使用在第一步中生成的私鑰來創建一個證書籤名請求certificate signing request(CSR):

openssl req -new -key example.key -out example.csr -subj "/C=US/ST=TX/L=Dallas/O=Red Hat/OU=IT/CN=test.example.com"

3、使用你的 CSR 和私鑰創建一個證書:

openssl x509 -req -days 366 -in example.csr -signkey example.key -out example.crt

你有什麼問題?發在評論裡讓我們知道。

via: https://opensource.com/article/19/11/internet-security-tls-ssl-certificate-authority

作者:Bryant Son 選題:lujun9972 譯者:hopefully2333 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關焦點

  • SSL_TLS 攻擊原理解析
    (至此,ssl 連接建立成功)5、ssl 連接建立完成之後信息的傳輸加密過程是這樣的:客戶端:先用對稱密鑰加密要傳輸的信息,再利用 hash 算法得出加了密的信息的 hash 值.再利用公鑰對 hash 值進行加密,之後把對稱密鑰加密了的信息和利用公鑰加密後信息的
  • 在 Ubuntu 上使用 SSL/TLS 搭建一個安全的 FTP 伺服器
    第一步:在 Ubuntu 上為 FTP 生成 SSL/TLS 證書1、我們將首先在 /etc/ssl/ 下創建一個子目錄來存儲 SSL/TLS 證書和密鑰文件,如果它不存在的話這樣做:$ sudo mkdir /etc/ssl/private2、 現在我們在一個單一文件中生成證書和密鑰,運行下面的命令:
  • CentOS7下vsftpd over SSL/TLS加密傳輸配置實踐
    之前有介紹過CentOS下搭建vsftpd伺服器,可以參考如下文章CentOS7下搭建vsftpd伺服器(本地用戶模式)下面開啟SSL/TLS用於FTP安全加密傳輸 ~]# cd /etc/pki/tls/certs/[root@VM_Server certs]# lltotal 12lrwxrwxrwx. 1 root root   49 Jan  4  2020 ca-bundle.crt -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pemlrwxrwxrwx. 1
  • 如何在 CentOS 7 中使用 SSL/TLS 加固 FTP 伺服器進行安全文件傳輸
    這使得數據和伺服器安全面臨很大威脅。在這篇文章中,我們會介紹在 CentOS/RHEL 7 以及 Fedora 中如何在 FTP 伺服器中手動啟用數據加密服務;我們會介紹使用 SSL/TLS 證書保護 VSFTPD(Very Secure FTP Daemon)服務的各個步驟。
  • Docker安全之TLS加密通訊解析與配置驗證
    圖解TLS建立過程TLS的C/S建立連接的過程圖解(完整的即雙向驗證過程)大體上是發送hello包,客戶端發送認證和請求認證,對應的回應認證,其後進行對應的協商驗證,生成信息,最後兩邊開始準備加密通信,雙方使用客戶端密鑰通過對稱加密算法對通信內容加密後進行雙向通信,隨著通訊結束,任意一方斷開ssl連接的信息即可。
  • TLS/SSL 高級進階
    不過需要注意的是,你生成的 CA 只是在你自己的電腦上使用,如果你想保證你的 CA 在其他電腦上也能使用的話(這是不可能的),那就用錢砸就 ok。具體的過程可以參考:生成自己的 CA 證書。以前,在使用 Charles 和 Fiddler 的時候,一直在想,它們是怎麼做到,將自己的證書,變成籤發機構證書。
  • 使用ssl_exporter監控K8S集群證書
    e              apk add --update ca-certificates              cp /var/run/secrets/kubernetes.io/serviceaccount/ca.crt /usr/local/share/ca-certificates/kube-ca.crt              update-ca-certificates
  • 基於SSL的Client模型
    Security,TLS)是為網絡通信提供安全及數據完整性的一種安全協議。常見的https協議就是由HTTP+SSL協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。在計算機網絡上,OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。同時,OpenSSL也是一個開放原始碼的軟體庫包。
  • CentOS7下使用TCP over TLS方式安全傳輸遠程主機系統日誌
    點擊上方"walkingcloud"關注,並選擇"星標"公眾號CentOS7下使用TCP over TLS方式安全傳輸遠程主機系統日誌
  • 【移動安全】基礎篇——APP抓包姿勢總結
    本篇為 tales 移動安全專題第四篇。1、移動應用安全基礎篇——Android、iOS 環境準備  https://www.freebuf.com/column/199666.html2、移動應用安全基礎篇——繞過 iOS 越獄檢測   https://www.freebuf.com/column/201114.htm3、移動應用安全基礎篇
  • 達索3DEXPERIENCE R2021x安裝文檔(Linux版本 1/3)
    達索官方推薦的是Red HatEnterprise Linux 7.5和SuSELinux Enterprise Server 12 SP2兩個版本(作業系統要求與r2020x相同)。Httpd服務的配置在第6步中已經安裝過httpd的rpm文件,因此可以直接進行配置和啟動等操作。
  • Python升級後ssl模塊不可用問題解決和淺析
    -ql openssl/etc/pki/CA/etc/pki/CA/certs/etc/pki/CA/crl/etc/pki/CA/newcerts/etc/pki/CA/private/etc/pki/tls/certs/Makefile/etc/pki/tls/certs/make-dummy-cert/etc/pki/tls/certs
  • SSL / TLS 協議運行機制詳解
    連結:www.ruanyifeng.com/blog/2014/02/ssl_tls.html網際網路的通信安全,建立在SSL/TLS
  • SSL/TLS協議運行機制的概述
    作者:阮一峰ruanyifeng.com/blog/2014/02/ssl_tls.html網際網路的通信安全,建立在SSL/TLS協議之上。本文簡要介紹SSL/TLS協議的運行機制。文章的重點是設計思想和運行過程,不涉及具體的實現細節。如果想了解這方面的內容,請參閱RFC文檔。
  • SSL/TLS 協議運行機制的概述
    來源:阮一峰的網絡日誌連結:www.ruanyifeng.com/blog/2014/02/ssl_tls.html
  • SSL/TLS 原理詳解
    SSL/TLS作為一種網際網路安全加密技術,原理較為複雜,枯燥而無味,我也是試圖理解之後重新整理,儘量做到層次清晰。正文開始。1.報警代碼:TLS支持幾乎所有的SSLv3.0報警代碼,而且TLS還補充定義了很多報警代碼,如解密失敗(decryption_failed)、記錄溢出(record_overflow)、未知CA(unknown_ca)、拒絕訪問(access_denied)等。
  • 加強 Nginx 的 SSL 安全
    然而,[RC4有一個不斷增加的列表來防止攻擊],(http://www.isg.rhul.ac.uk/tls/)其中的很多都將理論和現實交叉在一起。而且,這就是為什麼NSA已經破解了RC4,他們所謂的「重大的突破」。禁用RC4有幾個結果。一、使用差勁兒瀏覽器的用戶將使用3DES來代替。3-DES比RC4更安全。但是就意味著更加昂貴。你的伺服器會因為這樣的用戶開銷更大。
  • 如何在騰訊雲TKE上搭建Harbor倉庫
    Notary: 第三方內容信任伺服器,負責安全地發布和驗證內容。Web Portal: 圖形化用戶界面,可幫助用戶管理註冊表上的圖像。登錄節點配置即可#下載helm 客戶端curl -O https://storage.googleapis.com/kubernetes-helm/helm-v2.10.0-linux-amd64.tar.gztar xzvf helm-v2.10.0-linux-amd64.tar.gzsudo cp linux-amd64/helm