“strive 3/04 ~ 3/11”
Use
-
[gem] benchmark-memory
- benchmark-memory is a tool that helps you to benchmark the memory usage of different pieces of code.
Read
-
[ssl] HTTPS(SSL/TLS) 原理之深入淺出
- HTTPS 的基本運行過程:
- 利用對稱加密算法來加密網頁內容,那麼如何保證對稱加密算法的秘鑰的安全呢?
- 使用非對稱加密算法來獲得對稱加密算法的秘鑰,從而保證了對稱加密算法的秘鑰的安全,也就保證了對稱加密算法的安全
- 如何保證非對稱加密算法公鑰不被篡改?解決方法:將公鑰放在數字證書中。只要證書是可信的,公鑰就是可信的
- 公鑰加密計算量太大,如何減少耗用的時間?解決方法:每一次對話(session),客戶端和伺服器端都生成一個”對話密鑰”(session key),用它來加密信息。由於”對話密鑰”是對稱加密算法,所以運算速度非常快,而伺服器公鑰只用於加密”對話密鑰”本身,這樣就減少了加密運算的消耗時間。
- SSL/TLS協議的基本過程是這樣的
- 客戶端向伺服器端索要並驗證非對稱加密算法的公鑰(handshake)
- 雙方協商生成對稱加密算法的”對話密鑰”(handshake)
- 雙方採用對稱加密算法和它的”對話密鑰”進行加密通信
- handshake:
- 客戶端發出請求(ClientHello)
- 伺服器回應(SeverHello)
- 客戶端回應
- 伺服器的最後回應
- HTTPS 結合使用了 非對稱加密算法,對稱加密算法,hash算法,分別利用他們的優勢,避免他們的缺點。利用非對稱加密算法獲得對稱加密算法的秘鑰,保證他的安全性;然後實際的網頁內容的加密使用的是對稱加密算法,利用了對稱加密算法速度快的優勢,hash算法主要是防止篡改的發生,是一種校驗機制,最後數字證書,保證了伺服器在將非對稱加密算法的公鑰傳給瀏覽器時的安全性(不會被中間人篡改),同時也標誌了伺服器的身份
- HTTPS的本質是什麼?HTTPS的本質就是在HTTP連接發起之前,先使用SSL/TLS協議,協調客戶端和服務端,在兩端各自生產一個對稱加密算法的秘鑰 然後使用普通的HTTP協議傳輸 經過對稱加密算法加密的網頁內容。因為對稱加密算法的秘鑰是安全的,所以對稱加密算法加密的網頁內容也是安全的
- HTTPS 的基本運行過程:
Book
-
[book] Implementation Patterns
- Values
- Communication
- Simplicity
- Flexibility
- Principles
- Local Consequences
- Minimize Repetition
- Logic and Data Together
- Symmetry
- Declarative Expression
- Rate of Change
- Values