HTTPS 是建立在密碼學(xué)基礎(chǔ)之上的一種安全通信協(xié)議,嚴格來說是基于 HTTP 協(xié)議和 SSL/TLS 的組合。理解 HTTPS 之前有必要弄清楚一些密碼學(xué)的相關(guān)基礎(chǔ)概念,比如:明文、密文、密碼、密鑰、對稱加密、非對稱加密、信息摘要、數(shù)字簽名、數(shù)字證書。接下來我會逐個解釋這些術(shù)語,文章里面提到的『數(shù)據(jù)』、『消息』都是同一個概念,表示用戶之間通信的內(nèi)容載體,此外文章中提到了以下幾個角色:
Alice:消息發(fā)送者
Bob:消息接收者
Attacker:中間攻擊者
Trent:第三方認證機構(gòu)
密碼
密碼學(xué)中的“密碼”術(shù)語與網(wǎng)站登錄時用的密碼(password)是不一樣的概念,password 翻譯過來其實是“口令”,它是用于認證用途的一組文本字符串。
而密碼學(xué)中的密碼(cipher)是一套算法(algorithm),這套算法用于對消息進行加密和解密,從明文到密文的過程稱之為加密,密文反過來生成明文稱之為解密,加密算法與解密算法合在一起稱為密碼算法。
密鑰
密鑰(key)是在使用密碼算法過程中輸入的一段參數(shù)。同一個明文在相同的密碼算法和不同的密鑰計算下會產(chǎn)生不同的密文。很多知名的密碼算法都是公開的,密鑰才是決定密文是否安全的重要參數(shù),通常密鑰越長,破解的難度越大,比如一個8位的密鑰最多有256種情況,使用窮舉法,能非常輕易的破解。根據(jù)密鑰的使用方法,密碼可分為對稱加密和公鑰加密。