网络安全(密码与HTTPS)
1、密码基础
注意:密钥和加密解密函数不是一个概念,密钥一般是保密的,但是加解密函数是公开的,加解密过程是加解密函数应用密钥来进行的,有点像函数和自变量才能生成因变量。
对称密钥密码:
两个参与者共享一个密钥。一方用密钥加密后,另一方必须用相同的密钥进行解密。
共享的密钥一定只有参与者才知道。
非对称密钥密码(公钥密码):
公钥密码是一对相关的密钥,一个用于加密(公钥),一个用于解密(私钥)。
这对密钥只属于一个参与方,但是参与方会把公钥(用来加密的密钥)公开出去,其他参与者可以用这个公钥进行加密,然后只有自己(拥有私钥)才能用私钥进行解密。
另一特性:可以用私钥和加密算法一起加密,然后这些密文只能用公钥进行解密。(相当于上面反过来)。
这个有什么用呢?(因为公钥是公开的,根本起不到加密效果)
用处:可以用来识别密文的加密方是私钥持有者。主要用于认证和秘密的分发对称密钥。而消息的保密则依赖于对称密钥。
认证码:
包含在被传输的消息中,可用于同时验证消息的真实性和数据完整性。
运用一个密码散列函数生成一个消息摘要(固定位数),添加到消息后方。
(具体有点像checksum和CRC)
接收方计算明文部分的摘要,并与解密后的摘要进行对比。因为攻击者没有私钥,他在破坏明文部分的同时就破坏了由该部分得出的消息摘要,那么就会和传送过来的摘要不一致。
还有其他方式:MAC,HMAC(不赘述,原理都差不多)
2、密钥预分发
公钥预分发:
PKI,大概就是用于证明公钥和身份之间的绑定关系。
对称密钥预分发:
KDC(Key Distributioin Center)密钥分发中心。
3、认证协议
对称密钥认证协议:
Kerberos是一个基于Needham-Schroeder协议的认证系统。
把KDC分成两个部分(功能)。
一个AS认证服务器,一个TGS票据授予服务器。
Diffie-Hellman密钥协商:
用于建立会话密钥。(数学中的模运算,有兴趣可以看一下)
4、HTTPS
TLS:Transport Layer Security
一对TLS参与者在运行过程中协商要使用的密码算法: