上回說到 HTTP 協定是沒有加密的,所以可能在傳輸過程中被竊聽,甚至內容被竄改。為了保護使用者上網的安全,現在大多網站都會改用有加密的 HTTPS。要了解 HTTPS 我們首先要來簡單講一下加密到底是什麼?
密碼學是數學的一個分支,其中一個部份就是在研究如何確保資訊傳遞時的安全性,也就是加密方法。加密又分為「對稱加密」和「非對稱加密」。
對稱加密的意思是,傳遞資料的人和接收資料的人都知道資料加密的步驟,稱為密鑰。傳遞資料的人會用密鑰將明文資料加密成密文,然後傳送出去。如果密文被攔截了,由於攔截者不知道密鑰,所以沒辦法翻譯出明文,而接收者可以用密鑰將密文解密回明文。對稱加密的限制就是要傳輸、接收雙方要同時都知道密鑰才能運作。
非對稱加密中,每個人的密鑰則分為公鑰及私鑰,公鑰顧名思義可以讓別人知道,而私鑰則鑰保密。如果 Alice 想傳訊息給 Bob,可以先取得 Bob 公開的公鑰,用公鑰將訊息加密為密文後傳給 Bob。而非對稱加密的特性是只有私鑰能解開密文,所以因為只有 Bob 有私鑰才能解開密文。如果反過來 Bob 想要傳遞訊息給 Alice,Bob 就要先拿到 Alice 的公鑰,用來加密訊息傳出去,Alice 再用自己的私鑰來解密。
非對稱加密能能確保我們和 Server 能安全地傳遞訊息,但我們也要先確定我們傳遞訊息的對象是對的人,才不會把帳號密碼傳給壞人吧!所以說 HTTPS 連線時的第一個步驟,瀏覽器會向 Server 請求他的憑證。這個憑證會是認證機構發出的,如果是可以信任的憑證,瀏覽器網址列最前面就會出現上鎖的圖案,表示有成功建立 HTTPS 連線。想要讓我們的超陽春部落格能有 HTTPS 就是要取得數位憑證,並放在我們的 Server 上。