外贸网站推广公司,行业门户网站制作,网站开发的现状研究,企业推广类网站转载自#xff1a;http://www.cnblogs.com/piyeyong/archive/2010/06/10/1744692.html 要想实现在不安全的网络上的安全通信#xff0c;需要考虑3个方面的问题#xff1a;保密(Privacy)#xff0c;认证(Authentication)#xff0c;完整性(Integrity)。 1.保密(Privacy) 数… 转载自http://www.cnblogs.com/piyeyong/archive/2010/06/10/1744692.html 要想实现在不安全的网络上的安全通信需要考虑3个方面的问题保密(Privacy)认证(Authentication)完整性(Integrity)。 1.保密(Privacy) 数据在网络传输的过程中需要经过多个中间节点进行转发因此数据很容易就被截获为了保证数据的保密性就需要对数据进行加密传输使用密文进行传输。 如上图所示明文数据(plaintext)经过加密算法(Encryption Algorithm)得到密文(ciphertext)在网络中传输到达目的地后再经过解密算法(Decryption Algorithm)还原成原文。 在网络中传输的是密文即使被第三方截获也不能解析其含义。注意这里的加密和解密算法是公开的如对称算法DES3DES非对称算法RSA 等任何人都可以得到但是每种算法都需要有一个KEY作为输入对称算法与非对称算法的区别就在于加密的KEY和解密的KEY是否一样一致的是对称算 法。 由于非对称机密在效率上比对称加密慢100倍以上并不适合对大数据量的原文使用非对称加密在实际的加密传输过程中会随即生成一个对称密钥 (session key)使用该对称算法对原文进行加密同时使用非对称算法将session key进行加密一起传输给对方接收者使用private key将session key还原后再用对称算法对数据进行解密。 2.认证(Authentication) 数据的接收方在收到数据后为了验证数据确实是从发送着发送的而不是第三方冒充的就需要对发送方进行认证。认证需要使用一个凭据即数字证书 (Certificate)相当于个人的护照。Certificate由专门的证书管理机构发放就是我们常说的CA(Certificate Authority)。Certificate含有发放者(Issued by)使用者(Subject)公钥私钥等信息并且是被CA使用自己的证书签名的。我们验证身份的时候实际是相信发放证书的CA就好比我们查看 护照的时候是相信发放证书的国家一样。这里需要详细说明一下签名。 如上图所示使用Private key对明文进行加密计算得到数字签名改签名只能使用Private key对应的Public key才能解密重新得到原文。Public key是公开的所有人都可以得到并且知道该Public key是属于谁的.如果A要发送数据给BA就用自己的Private key计算签名发给BB再使用A的Public key进行验证如果能计算出原文则证明该数据确实是A发送的。而第三方C如果想假冒A给B发送数据由于没法得到A的private key就没法对数据进行签名如果使用任意key签名B在收到数据后使用A的public key解密时就会发现数据无法还原从而发现数据是假冒的。实际的应用场景是这样的 A首先对要发送的数据计算Hash只对该Hash进行签名这样会大大提高效率然后将原文和签名一起发送(为了保证原文的Privacy需要 使用B的public key进行加密只有拥有private key的B本人才能进行解密)B在收到后使用同样的Hash算法对原文计算Hash(如果原文加密要先进行解密哦)同时对数字签名使用A的 public key解密比较两者是否一致不一致就说明数据不是由A发送过来的。 由于只有A本人采用与自己的Private key所以数字签名还具有不可抵赖性。 3.完整性(Integrity) 即使数据被加密传输第三方无法知道传输的内容但是当第三方还是可以进行破坏活动例如将数据截取一半再发给接收者接收者进行解密后并不知道 数据已经被截断。为了保证传送的数据完整性需要对接收到的数据进行完整性校验可以使用hash算法对原文计算hash接收者验证hash即可过 程参照上一小节数字签名部分。 转载于:https://www.cnblogs.com/langqi250/archive/2012/09/26/2704376.html