信息安全加密技术,是为了保护信息的安全,阻止一些未授权实体的访问。举一个栗子比如用户登录系统的时候,需要保护用户密码的安全,确保其在传输过程中,不被潜在的不安全因素获取用户的密码。但对数据加密不等于绝对安全,几乎目前所有的加密体制在理论上都是可能被破解的。当然这又是另外一门学科《密码学》中的知识了。
明文传输:
假设程序C向服务端S发送用户登录请求,程序C使用了TCP协议与服务器建立了链接,并且使用明文传输用户密码,就会造成安全隐患,因为TCP数据报很容易在传输过程中被截取。通过分析数据报中的数据字段,即可获取用户的账号密码信息。比如分析两台使用Telnet协议进行通讯的主机之间传输的数据报,即可轻易获取相关信息。
Telnet客户端 返回PASSWORD关键字
明文传输密码root
所以为了确保信息的安全,我们需要对信息进行加密处理,信息加密常见的两大方式有对称密钥加密算法和非对称密钥加密算法,另外还有哈希算法,但哈希算法并不属于加密算法,而是一种校验算法。
对称加密算法(共享密钥算法):
定义:加密和解密时,使用同一个密钥的加密算法,即被称为对称加密算法。代表算法AES。
AES加密算法在加密信息与解密信息的时候,需要使用相同的密钥
比如明文“This Passwd”在使用密钥”Key”通过AES加密算法加密后
得到密文“U2FsdGVkX1/VV2aW4vCKqY1boLWTnqtYVumUovR3qzk=”。
反过来再解密“U2FsdGVkX1/VV2aW4vCKqY1boLWTnqtYVumUovR3qzk=”的时候
需要用到密钥“Key”。
假设程序C与服务器S建立链接以后,采用AES的加密算法进行通讯,程序C将密文发送给服务端S,S也使用密文回复C,这样做可以在一定程度上提升信息的安全等级,但是仍然存在一定的安全风险,比如共享密钥泄漏后,通过分析C与S之间通讯的报文,即可对程序进行攻击、渗透;密钥分配问题,假设服务端S,服务C1、C2、C3…C99,使用共享密钥的加密方式无疑增加了管理成本,和安全风险;还有对于网络中可能存在的中间人攻击、重放攻击的抵御能力较弱等等。
非对称加密算法:
假设P为明文,C为密文,E为公钥控制的加密算法,D为私钥控制的加密算法,满足以下几点,即可称为非对称加密算法:
- D(E(P))=P。
- 不能从E的加密算法,推导出D的加密算法。
- 选择明文攻击,不可以破解E。
代表算法:RSA算法
假设PK=公钥,SK=私钥,S=密文
RSA密钥对的使用逻辑
RSA算法使用两个密钥对信息进行加解密和解密,大多数情况下,遵守公钥加密,私钥解密的工作逻辑。在实现数字证书功能的时候,也可能是反过来公钥解密,私钥加密。
相对于共享密钥加密算法,非对称加密算法拥有更高的安全度,因为公钥是公开的,但是私钥只有持有者才能使用,保证了数据传输的安全性。缺点是加解密速度比较慢,对于要求高性能的场景不太适合,并且同样存在秘钥分配的问题以及上文中提到的可能存在的网络攻击风险。
哈希算法:
哈希算法是一种将任意长度的数据映射为固定长度摘要信息的算法,常被用于校验数据完整性和比较数据是否相同。目前常见的算法包括SHA-256算法。在进行网络通讯时候,可以对数据报完整性和一致性做校验。
小结
以上都是加密算法都最基础的概念,是现代互联网信息加密技术的基石。就像汽车的车架一样,车架可以锻造成不通的结构,但是其原材料肯定是不变的。在不同的部位进行科学配比,才能保证车架足够结实耐用。然而,不管是对称还是非对称加密算法,都不能保证信息的绝对安全,只有使用科学的技术手段不断提升信息安全等级。