网络安全
- 机密性:为了保证发送的内容不被别人了解.
- 完整性:为了保证内容不被篡改
- 端点鉴别:为了保证不会收到冒名顶替者的报文
- 运行安全性:为了识别一个组织或机构所收发的报文内容的合法性
报文完整性和数字签名
密码散列函数
- 密码散列函数要求具有下列附加的性质:找到任意两个不同的报文x和y使得H(x) = H(y),在计算上是不可能的。这种性质就意味着入侵者在计算上不可能用其他报文替换由散列函数保护的报文。这就是说,如果(m, H(m))是报文和由发送方生成的报文散列的话,则入侵者不可能伪造另一个报文y的内容,使得该报文具有与原报文相同的散列值
报文鉴别码
- 为了鉴别报文完整性,除了使用密码散列函数外,发送方和接收方需要共享秘密s。这个共享的秘密只不过是一个比特串,它被称为鉴别密钥。使用这个共享秘密,报文完整性能够执行如下:
- 发送方生成报文m,用s级联m以生成m + s,并计算散列H(m + s)。H(m + s)被称为报文鉴别码(Message Authentication Code, MAC)。
然后发送方将MAC附加到报文m上,生成扩展报文(m, H(m + s)),并将报文发送给接受方。接收方接收到一个扩展报文(m, h),由于知道s,计算出报文鉴别码H(m + s)。如果H(m + s) = h,接受方得到结论:一切正常。
- 发送方生成报文m,用s级联m以生成m + s,并计算散列H(m + s)。H(m + s)被称为报文鉴别码(Message Authentication Code, MAC)。
数字签名
使用数字签名的发送方的步骤:发送方让他的初始长报文通过一个散列函数。然后他用自己的私钥对得到的散列进行数字签名。明文形式的初始报文连同已经数字签名的报文摘要一道被发送给接收方。
接收方的步骤:接收方先把发送方的公钥应用于报文获得一个散列结果。然后再把该散列函数应用于明文报文以得到第二个散列结果。若果这两个散列匹配,则接收方可以确信报文的完整性及其发送方。
将公钥于特定实体绑定通常是由认证中心(Certification Authority, CA)完成的,CA的职责就是使识别和发行证书合法化。CA具有下列作用:
CA认证一个实体的真实身份。
一旦CA验证了某个实体的身份,这个CA会生成一个将其身份和实体的公钥绑定起来的证书。这个证书包含这个公钥和公钥所有者全局唯一的身份标识信息。由CA对这个证书进行数字签名
使TCP连接安全:SSL
TCP的强化版本安全套接字层(Secure Socket Layer, SSL)用安全性服务加强TCP,该安全性服务包括机密性、数据完整性和端点鉴别。SSL版本3的一个稍加修改的版本被称为运输层安全性。
SSL具有三个阶段:握手、密钥导出和数据传输