网络安全与密码学
1、网络安全威胁
破坏网络安全的一些理论方式:
窃听:窃听信息,在网路通信双方直接进行窃听。
插入:主动在网络连接中插入信息(可以在message中插入恶意信息)
假冒:伪造(spoof)分组中的源地址,假冒客户端或服务器。
劫持:通过移除/取代发送方发或接收方“接管”(take over)连接
拒绝服务(dos):阻止服务器为其他用户提供服务。
破坏网络安全的一些实践方式:
映射(mapping):①探路。②ping命令获取主机地址。③端口扫描(nmap www.insecure.org/nmap/)
嗅探(sniffing):在广播介质(共享的以太网或无线网络中),混杂(promiscuous)模式的网络接口卡,可以接受所有经过的分组。(wireshark就是一个分组嗅探软件)
ip欺骗(spoofing)发送分组的源ip地址可以任意改写。网络攻击中大量使用ip欺骗。(应对策略,入口过滤:路由器不转发源ip地址不属于此网络的分组)
DOS拒绝服务攻击:向接受方恶意泛洪(flood)分组,淹没(swamp)接受方(即耗尽接受方的资源)。
DDOS分布式拒绝服务攻击:入侵网络中的主机,构建僵尸网络(肉鸡),发动僵尸网络同时攻击目标服务器。
反射式DDOS攻击:控制僵尸网络,选择反射服务器,运用ip欺骗将请求发向反射服务器,反射服务器将服务响应发送给要攻击的服务器。
DOS应对策略:过滤泛洪分组,追溯攻击源,SYN cookie(测试第三次握手的确认序列号)
2、密码学(cryptography)
密码学基本概念:
明文(plaintext)--->加密算法(已知) + 秘钥KA(未知)---->密文(ciphertext)---->解密算法 + 秘钥KB ---->明文。 m = KB(KA(m))
对称秘钥加密:KA == KB。 明文m = KS(KS(m))
非对称秘钥加密(公开秘钥加密):KA+,KA-;KB+,KB-;m = KB-(KB+(m))
破解加密方法:暴力破解;统计分析(对传统加密方法很有效);
传统加密方式:
替代密码:利用一种东西替代另一种东西
凯撒密码(Casesar cipher):利用字母表中后面的第k个字母替换当前字母;如果k=3,则a->d;b->e,c->f...........x->a;y->b;z->c。
单字母替代:每一个字母都有一个固定的替代值。
多字母替代:明文不同位置的字母使用不同的单码替代密码。
换位密码:
置换法:将明文划分为固定长度(d)的分组,每个分组内的字母按置换规则(f)变换位置,秘钥(d,f)
现代加密技术:
不在针对一个个字母处理,而是针对二进制位操作
对称秘钥加密:(存在秘钥分发问题,如何让对方知道加密秘钥)
流密码:秘钥流z = z0z1z2z3....;明文流(串)x = x0x1x2x3.....;加密y = y0y1y2...... = Ez0(x0)Ez1(x1)Ez2(x2).....。解密时,使用相同的秘钥流与密文做异或运算(XOR)
分组密码:将明文划分长度为m的明文组(m = 64bit,128bit,256bit等);各明文组在长为i的秘钥组的控制下变成长为n的密文组。通常m == n。
Feistel分组密码结构(思想):DES(Date Encryption Standard)加密算法(IBM公司研制,1998年12不在成为加密标准)。分组长度64bit(左32bit,右32bit),56bit初始秘钥,16次迭代加密。
AES(Advanced Encryption Standard)加密算法(Rijndael加密算法):不属于Feistel结构,数据块长度(128/192/256bit),秘钥(128/192/256bit),10轮加密,安全性更高,如果1秒破解DES,则需要149万亿年破解AES。
非对称秘钥加密(公开秘钥加密):
RAS加密算法,前提条件:
秘钥生成:
确实有点难。。。先到这里
3、身份认证
身份认证过程中存在:假冒身份,ip欺骗,回放攻击。
提出一种机制:一次性随机数(nonce)
存在问题:在传输过程开始时必须知道本次通信的秘钥KA-B(对称秘钥)。
存在问题:中间人攻击
4、消息完整性和数字签名
message integrity:确定来自声称的发送发,传输过程中没有被篡改(内容,时间,顺序),持有期被修改,抵赖(发送方抵赖,接收方抵赖)。
密码散列函数:H(m) ,m为message。
特性:散列算法公开;H(m)足够快;对于任意长度message均生成定长的输出;不同message不能产生相同散列值,根据散列值不能倒推出message。
MD5算法:通过4个步骤,对任意长度的message输出128bit的散列值。不是足够安全,1996曾被找到两个不同的512bit块在MD5算法下产生两个相同的散列值。
SHA-1:消息长度不超过2的64次方bit,散列值固定160bit,速度慢于MD5,安全性高于MD5。
message digests(消息摘要):H(m) 可以作为m的数字指纹。
message认证:将message 和 message digests组成新的message发送。(m,H(m))。存在问题:伪造m
message认证码(MAC):m + s认证秘钥 + H数列函数 ---->(m,H(m+s))。如果s为对称秘钥,存在接受方和发送方抵赖问题。
数字签名(Digital signatures):
要求:可验证性,不可伪造性,不可抵赖性。
采用私钥加密技术,将私钥加密的密文和message一起发送给接收方。(m,KB-(m))。缺点:message过大,因此加密后的KB-(m)太大,导致速度慢
采用签名消息摘要:(m,KB-(H(m)))。解决数字签名问题。
5、秘钥分发:
在身份认证中,对称秘钥如何分发?
机制:秘钥分发中心(KDC):在网络上是一个服务器的存在,这是一个可信任机构。
在KDC上注册自己的秘钥(对称秘钥,此秘钥只有用户和KDC知道)。
机制:认证中心(CA):在网络上是一个服务器的存在,这是一个可信任机构。
在CA上注册公钥 ---->生成公钥证书
6、总结:
①如何建立安全的传输:秘钥分发中心和认证中心,有了这两个可以说在用户之间建立连接时是安全的,意味着不会和第三方(恶意中间方)建立连接。在认证中心中用到了私钥和公钥技术,但这是为了解决身份问题(在建立连接时的身份问题)
②如何在传输中保持数据安全:对称加密中随机的R1(对称秘钥)加密数据。非对称加密中使用私钥加密和公钥解密。
③如何保证传输的数据不会让对方抵赖。对明文进行hasn算法得到固定的消息摘要H(m),再对消息摘要进行私钥加密KB-(H(m)),最后得到新消息(m,KB-(H(m)))。传输过程可以为:密文 = KA+((m,KB-(H(m)))),即可保证传输安全性,又可保证不可抵赖性。
④有一个很重要的概念:私钥加密的数据公钥解密,公钥加密的数据私钥解密。