
虞衛東
這是一本專業的HTTPS書籍,全面講解了HTTPS領域的相關知識,內容包括密碼學、OpenSSL命令行、證書、TLS協議、HTTPS網站性能優化、HTTPS網站優秀實踐、大型網站HTTPS架構設計等。
一本比較全面的https書。第一次接觸https,這本書寫的全且詳細,但是整本書下來也只能記住和理解百分之十的內容。。還有不少知識點沒有理解,比如握手協議中的多個子協議,wireshark抓取網頁中分析詳細ttl ssl過程等。之後遇到不會的再來翻閱吧。
就前端的視角可以深度看下前面三章的內容 可以很好的理解https的協議 加密算法和如何解決http的問題 後面的可看可不看
泛泛而談,講講概念,講講工具的使用,浮於表面,既有時效性,又容易過時。知其然而不知其所以然,價值不大。
對https的講解非常全面細緻,推薦!
HTTTPS個人總結: (1) 非對稱加密兩把祕鑰,一個公鑰一個私鑰,公鑰隨便下發給客戶端,公鑰沒辦法反推私鑰 加密是有數據公式的,公私鑰互推用的是超大數的因式分解,目前的數學難題 (2) 對稱加密 兩邊交換祕鑰,用同一個祕鑰加解密,算法是矩陣運算和矩陣逆運算 通過主密鑰生成密鑰流,對密文做分塊,每一塊使用一個祕鑰,並且跟前一塊的加密結果做運算 (3) 簽名 MAC算法,類似於md5用的是哈希算法,並不需要從簽名反推加密數據,兩邊用同一個祕鑰相同算法運算,確保消息沒被篡改 (4) 證書鏈 非對稱加密結果,用公鑰加密需要用私鑰解密,根證書以及二級證書的私鑰不泄露就行 (5) TLS協議 先經過三次握手,然後TLS握手通過非對稱算法交換對稱密鑰,兩邊通過對稱密鑰通信 對稱加密的內容可以是任何應用層協議的內容,可以加密HTTP協議也可以加密各種私有協議
引入愛麗絲,鮑勃,馬洛裏解釋HTTPs,他們是被廣泛地代入密碼學和物理學領域的通用角色。 1. 初步交流 如果愛麗絲想要給鮑勃發送一段信息,她會把信息綁在信鴿的腿上然後送往鮑勃那裏。鮑勃收到了信息,也閱讀了信息,非常完美。 「但如果馬洛裏攔截了愛麗絲的鴿子並且篡改了信息呢?鮑勃就沒有辦法去知道愛麗絲髮出的信息在傳遞過程中遭到了修改。」 這就是HTTP如何運作的。 2. 隱蔽的密碼 那麼如果愛麗絲和鮑勃都非常的機智。他們一致認同使用一種隱蔽的密碼來書寫他們的信息。他們會將信息中的每個字母按照字母表中的順序前移三位。比如,D→A,E→B,F→C。如此一來,原文爲 “secret message” 的信息就變成了 “pbzobq jbppxdb” 。 那現在如果馬洛裏再截獲了信鴿,她既不能做出有意義的修改同時也不會知道信息的內容,因爲她不知道隱蔽的密碼到底是什麼。然而鮑勃卻可以很容易反轉密碼,依靠 A → D, B → E, C → F 之類的規則破譯信息的內容。加密後的信息 “pbzobq jbppxdb” 會被破解還原爲 “secret message” 。 這就是「對稱密匙加密」,因爲如果你知道如何加密一段信息那麼你同樣可以解密這段信息。 3. 如何決定密鑰? 如果除了發信者和收信者之外沒有人知道使用的是什麼密匙,對稱密匙加密是非常安全的。在凱撒加密中,密匙就是每個字母變到加密字母需要移動多少位的偏移量。我之前的距離中,使用的偏移量是 3 ,但是也可以用 4 或者 12 。 問題是如果愛麗絲和鮑勃在開始用信鴿傳信之前沒有碰過頭,他們沒有一個安全的方式來確立密匙。如果他們自己來在信中傳遞密匙,馬洛裏就會截獲信息並發現密匙。這就使得馬洛裏可以在愛麗絲和鮑勃開始加密他們的信息之前或之後,閱讀到他們信息的內容並按照她的意願來篡改信息。 這是一箇中間人攻擊「Man-in-the-Middle Attack」的典型例子,避免這個問題的唯一方法就是收發信的兩方一起修改他們的編碼系統。 4. 通過信鴿傳遞盒子 所以愛麗絲和鮑勃就想出了一個更好的系統。當鮑勃想要給愛麗絲髮送信息時,他會按照如下的步驟來進行: 「鮑勃向愛麗絲送一隻沒有攜帶任何信息的鴿子。 愛麗絲給鮑勃送回鴿子,並且這隻鴿子帶有一個有開着的鎖的盒子,愛麗絲保管着鎖的鑰匙。 鮑勃把信放進盒子中,把鎖鎖上然後把盒子送給愛麗絲。 愛麗絲收到盒子,用鑰匙打開然後閱讀信息。」 這樣馬洛裏就不能通過截獲鴿子來篡改信息了,因爲她沒有打開盒子的鑰匙。當愛麗絲要給鮑勃發送消息的時候同樣按照上述的流程。 愛麗絲和鮑勃所使用的流程通常被稱爲「非對稱密鑰加密」。之所以稱之爲非對稱,是因爲即使是你把信息編碼(鎖上盒子)也不能破譯信息(打開鎖住的盒子)。 在術語中,盒子被稱爲公匙「Public Key」而用來打開盒子的鑰匙被稱爲私匙「Secret Key」。 5. 如何信任盒子 但是會發現還是存在問題。當鮑勃收到盒子時他如何能確定這個盒子來自愛麗絲而不是馬洛裏截獲了鴿子然後換了一個她有鑰匙能打開的盒子呢? 愛麗絲決定簽名標記一下盒子,這樣鮑勃收到盒子的時候就可以檢查簽名來確定是愛麗絲送出的盒子了。 那麼鮑勃如何打一開始就能識別出愛麗絲的簽名呢?這是個好問題。愛麗絲和鮑勃也確實有這個問題,所以他們決定讓泰德代替愛麗絲來標記這個盒子。 那麼誰是泰德呢?泰德很有名的,是一個值得信任的傢伙。他會給任何人簽名並且所有人都信任他只會給合法的人簽名標記盒子。 如果泰德可以確認索要簽名的人是愛麗絲,他就會在愛麗絲的盒子上簽名。因此馬洛裏就不可能搞到一個有着泰德代表愛麗絲簽了名的盒子,因爲鮑勃知道泰德只會給他確認過的人簽名,從而識破馬洛裏的詭計。 泰德的角色在術語中被稱爲認證機構「CA 機構」。而你閱讀此文時所用的瀏覽器打包存有許多認證機構的簽名。 所以當你首次接入一個網站的時候你可以信任來自這個站點的盒子因爲你信任泰德而泰德會告訴你盒子是合法的。
沒全看完就上戰場了!今天已經完美部署https,並運用HSTS進行軟跳轉. 總結一下: 1. 作者樂此不彼的介紹Certbot-auto,經本人測試和網蒐證實Certbot-auto已死,大家不要浪費時間。只能用Certbot手動申請!作者沒有寫,但也很簡單,不過要裝snap,不同系列安裝方法不一樣! 2. HSTS:只要在ngnix加一段頭部代碼就行!效果非常順滑! 3.“密碼學”是一門大學科!以前一直用MD5,看完才知道是MD5是不安全的! 感謝作者介紹的let’s sencrypt .
整體來說是見過的講的最好的一本書,作者應該是做網站出身的,我本人是做嵌入式的,不熟悉php ,我們用C+mbedtls,不過算法都是相通的。裏邊的基礎知識對我幫助很大,受益匪淺,裏邊的命令我都照着做了一遍,挺好。
內容翔實、通俗易懂,但有幾處說法不一,總體來說,本書適合對計算機網絡有初步瞭解的讀者閱讀,可作爲深入理解https協議的進階讀物。
很多地方細節表述不清楚,很多地方又過於囉嗦