SSL概览之一
Secure Sockets Layer (SSL)协议是网络上应用最广泛的一种密码技术. 在网络上SSL通过一系列的加密处理, 提供安全的通信机制.
为什么使用SSL?
在网络上传输敏感信息由于以下三个原因会存在一定的风险:
You cannot always be sure that the entity with whom you are communicating is really who you think it is.Network data can be intercepted, so it is possible that it can be read by an unauthorized third party, sometimes known as an attacker.If an attacker can intercept the data, the attacker may be able to modify the data before sending it on to the receiver.
SSL会克服这些问题. 对于第一个问题, SSL可以让通信的两个实体确认彼此的身份,这个过程叫做身份验证(authentication). 一旦实体通过身份验证, SSL就可以在两个实体建立一个经过加密的连接来保证信息的安全传输. 加密两个实体之间的通信保证了私密性(privacy), 这样就解决了第二个问题.SSL中用的加密算法包括一个安全的哈希函数, 类似于校验码. 这个哈希函数函数保证了数据在传输中没有被修改. 所以它解决了数据完整性问题( data integrity)
SSL提供了身份验证, 私密性, 数据完整性. 但它不提供"不可抵赖性"服务(non-repudiation services). "不可抵赖性"是说一个实体发出消息后否认它发送过.当签名的数字等价物,或者说数字签名和这段消息有关联的时候, 后来的通信是可以来证明的. 所以SSL本身不提供"不可抵赖性".
SSL是如何工作的?
SSL成功的原因之一是因为它利用了一些不同的加密流程.SSL利用了公钥方法来保证身份验证, 密钥(对称)和数字签名来保证私密性和数据完整性. 在你理解SSL之前, 理解以下加密流程会很有帮助.
加密流程
加密的首要目的是保证未经授权的第三方访问和偷听两个实体间的私密通信.加密是利用复杂的算法来把原文(original message)或明文(cleartext)转化成编码消息, 这个消息叫做密文(ciphertext)在网络上传输的用来加密和解密的算法分为两类: 密钥加密和公钥加密.
密钥和公钥加密都依赖双方共同商定的加密密钥和密钥对. 一个钥匙(key)就是一个二进制字符串, 供加密和解密数据时密算法使用.一个加密的钥匙就像一把锁的钥匙, 一把钥匙只能开一把锁.
在两个是实体间安全的传输一个钥匙不成问题. 当向接受者确保公钥的可靠性时,一个公钥证书可以让某一方安全地传输这个公钥.