iOS 逆向工程 app安全 网络安全

双手奉上网络安全的密码安全

2021-07-05  本文已影响0人  顶峰相见8号

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)


图片.png

存在问题:在传输过程开始时必须知道本次通信的秘钥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)))),即可保证传输安全性,又可保证不可抵赖性。

④有一个很重要的概念:私钥加密的数据公钥解密,公钥加密的数据私钥解密。

上一篇下一篇

猜你喜欢

热点阅读