在互联网诞生的早期,接入互联网的主机数量不多,应用也很少。因此早期设计的协议都没有考虑到数据安全,数据在网络上都是明文传输的,非常不安全。由于互联网的迅速发展,接入互联网的主机越来越多。网络安全问题也层出不穷。
借此,ISO(国际标准组织)定义了x.800安全框架,框架基本结构如下:
安全攻击:
被动攻击:窃听数据
主动攻击:伪装、修改消息、删除消息、重播消息
安全服务机制:
认证:验证消息的发送方是不是发送方自己声称的那个人
访问控制:只允许用户访问授权给用户资源
数据保密性:
连接保密:数据流保密(tcp连接)
无连接保密:数据包加密(udp)
选择域保密:对数据流或者数据包中的部分数据进行加密
流量保密:对向互联网上发送的真实数据的流量大小进行加密
数据完整性:保证数据从消息发送方到达消息接收方时没有经过非授权更改
不可否认性:一旦通讯发生,通讯双方都不能否认
由于加密算法大多数都是公开的,纯粹用算法对数据进行加密是不安全的。因此现在的加密算法在加密的数据的时候都会同时输入一段密钥,以保证数据的安全性。
数据加密流程:
数据解密流程:
实现上述安全服务机制是需要算法参与的,算法的类型主要有以下几种:
对称加密:
特性:加密解密使用同一个密钥。
优势:加密速度快
劣势:当一个用户需要跟众多用户进行安全通讯时需要维护众多密钥。
公钥加密(非对称加密):
特性: 加密解密使用一对密钥(公钥、私钥)
用公钥加密的数据只能用与之配对的私钥解密
用私钥加密的加密的数据只能用与之配对的公钥解密
常见算法:rsa、dsa
优势:只需要维护一对密钥就可以跟众多用户进行安全通讯。
劣势:加密速度慢
单向加密:
特性:只加密,不解密。提取数据特征码
定长数据:不管输入的数据有多大,输出的特征码的长度都输固定的
蝴蝶效应:输入数据的微小改变会引起输出的特征码的巨大变化
md5(128bit)、sha1(160bit)、sha192、sha256、sha384、sha512
现在互联网上常见的安全通讯模型:
未完待续。。。。。
本文出自 “木屋科技” 博客,请务必保留此出处http://starli.blog.51cto.com/8813574/1671408
原文地址:http://starli.blog.51cto.com/8813574/1671408