HTTPS保護資料傳輸安全
一般來說我們透過瀏覽器連接至網站伺服器的過程中,雙方是透過HTTP(Hypertext Transfer Protocol,超文字傳輸協定)進行溝通,然而這種通訊協定並沒有加密的功能,因此可能會遭受到竊聽或篡改等攻擊。
至於HTTPS(Hypertext Transfer Protocol Secure,超文字傳輸安全協定)則是透過SSL或TLS等加密技術,確保資料傳輸的安全。在使用HTTPS的情況下,資料傳送出去之前都會經過加密處理,於是能夠抵擋中間人攻擊,即便攻擊者從中攔截資料封包,也無法判讀其中的資料,而且因為無法偽造資料封包的關係,所以也無法篡改其中資料
然而在由2009年時,Moxie Marlinspike在黑帽駭客大會發表了New Tricks For Defeating SSL In Practice演說,提出SSL剝離攻擊(SSL Strip)的手法。其中概念是由於大部分的使用者並不會手動輸入網址,而是透過網頁中的連結「網網相連」。例如使用者要登入透過HTTPS傳輸的電子郵件服務時,會先進入一般僅使用HTTP傳輸的網頁,並使用該網頁的連結連入。
於是攻擊者只要攔截HTTP網頁中的通訊資料,在網頁將使用者重新導向HTTPS網頁之前,用假冒的網站替代,並在假網站中使用HTTP傳輸,如此一來便可以竊取通訊內容。
▲一般的SSL攻擊都是針對HTTPS連線的SSL加密過程進行攻擊。(圖片來源:New Tricks For Defeating SSL In Practice,下同)
▲而SSL剝離攻擊則是對HTTP連線發動攻擊。
▲SSL剝離攻擊會將從HTTP連入HTTPS的連線,重新導向至假冒的網站。
HSTS強制使用HTTPS
為了防範SSL剝離攻擊,IETF(Internet Engineering Task Force,網際網路工程任務小組)在2012年的時候正式推出HSTS(HTTP Strict Transport Security,HTTP強制安全傳輸技術),藉由強制使用HTTPS協定的方式,強化網路連線的安全性。
Chrome、Firefox、Safari、Internet Explorer、Edge、Opera等主流瀏覽器都內建HSTS表單,記載著哪些網站支援HTTPS加密連線,並在連至這些網站時強制啟用HTTPS,如此一來便能防範SSL剝離攻擊。
舉例來說,gmail.com這個網域名稱就在表單之內,所以無論使用者輸入的網址是http://gmail.com或是https://gmail.com,瀏覽器都會自動切換為https://gmail.com,以啟用加密連線功能,以確保連到正確的網站,且雙方傳遞資料時都經加密保護。
由於HSTS表單能夠支援單獨域名(Individual Domains)、次域名(Subdomains)、頂級域名(Top-level Domain,即網址中最後部份,如.com、.org等)等不同層級的域名,如果將頂級域名納入表單之中,就能讓整個網域都強制啟用HTTPS,而不需針對單獨網站一一設定,大幅提升設定手續的效率。
Google表示旗下肩負.google、.how、.soy 等45個頂級域名的營運,將這些域名納入表單就可有效延伸HSTS的覆蓋率,並讓更多網站、服務支援HSTS,提升網路安全性。
▲HSTS能強制開啟HTTPS加密傳輸,增加使用網路的安全性。
加入電腦王Facebook粉絲團