zoukankan      html  css  js  c++  java
  • 网络安全与密码学

    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)))),即可保证传输安全性,又可保证不可抵赖性。

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

  • 相关阅读:
    Oracle(创建序列)
    BoostrapValidator使用方法
    SpringBoot(八)----SpringBoot配置日志文件
    SpringBoot(七)-----查看配置报告
    eclipse导入新项目后,运行时找不到主类解决办法(转载)
    严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'、strcmp):This function or variable may be unsafe. 最全解决办法
    Spring Boot(六)----application.properties文件加载顺序
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    异常处理(一):Non-parseable POM C:Usersadmin.m2 epositoryorgspringframework问题解决方案
    Spring Boot(五)----profile文件路径设置
  • 原文地址:https://www.cnblogs.com/Ccluck-tian/p/11904845.html
Copyright © 2011-2022 走看看