zoukankan      html  css  js  c++  java
  • 关于web安全

         互联网刚诞生的时候没有安全的概念,伴随着Hacker的但是,互联网变得越来越不安全,Hacker分为白帽子和黑帽子,非Web服务器越来越少的暴露在互联网上,现在的互联网安全主要指的是Web安全。

         既然要讲Web安全,首先介绍什么是安全,安全的本质是什么?引用《白帽子讲安全》里对安全的定义:安全问题的本质就是信任问题。举例来说,自行车的车锁,我们认为是安全的,因为我们认为自行车锁的制造商是不会背着我们留有钥匙,如果这个信任都没有的话,那么这个自行车就是不安全的。

          安全的三要素,机密性、完整性和可用性。

              机密性指的是要求保护数据内容不能泄露,加密是实现机密性要求的常见方法。

              完整性指的是保护数据内容是完整的、没有被篡改的,实现完整性的常见方法是数字签名。

              可用性要求保护资源是随需而得,黑帽子通常通过DDos攻击抢占服务器的资源,导致正常用户不能正常访问。

    加密算法

          常见加密算法有对称加密和非对称加密

                  对称加密指的是加密和解密用的同一个密钥 DES(Data Encryption Standard,数据加密标准)和AES

                  非对称加密的加密过程和解密过程用的是不同密钥    RSA

         AES(Advanced Encryption Standard,高级加密标准),AES三个基本概念:密钥、填充、模式,根据密钥长度,AES又可以细分为AES128、AES192、AES256

              加密流程    明文分解为大小为128bit小块(明文小块大小小于128bit时,需要对这个明文小块进行填充操作)-》明文小块放入AES加密器各自生成密文块

                        

                          

           RSA算法  基于大数分解难的情况而使得该算法异常安全 

                     两个充分大的质数p和q,并计算 n=pq。接下来计算m=(p-1)(q-1),最后找出两个数e和d,使得 (e*d) mod m =1,e和n就是公钥,而d和n就是私钥。

                     任何知道公钥的人都可以利用公式 c = a^e mod n把原始数据加密成一个密文,私钥的持有者可以通过公式 c^d mod n 计算原始数据a,我们也可以发现加密和解密的算法是不一样的,这也是”非对称“的由来。

            

           融合对称加密算法和非对称加密算法

              通过对对称加密算法和非对称加密算法的介绍,我们知道如果A、B两个人想要建立会话,为了保证会话的机密性,我们需要对数据进行加密,这个密码本只有A、B两个人知道,而如何保证这个密码本在传输的过程中不被第三者窃取呢?我们可以通过非对称加密对密码本进行加密,即A首先呼叫B,并索要B的公钥,然后用B的公钥对密码本进行加密并将密文发送给B,B收到A的消息之后,用自己的私钥进行解密。这个过程看起来已经很完美了,但是有一个让人意想不到的漏洞--中间人攻击。中间人在网络中发现A索要B的公钥这条消息,当B将自己的公钥发送给A时,中间人截取B的公钥,并将自己的公钥发送给A。接下来,A将自己的密码本通过中间人的公钥继续加密发送给B,中间人截取A发出来的这条消息,用自己的私钥进行解密,然后用B的公钥进行加密,重新发送给B。B收到消息后并不会发现什么异常,因为B能用自己的私钥进行解密。但是它们都不知道中间人已经完全掌握了它们的密码本。

  • 相关阅读:
    字符编码相关
    函数之形参与实参
    文件操作模式
    函数对象,名称空间,作用域,和闭包
    吴裕雄天生自然SPRINGBOOT开发实战处理'spring.datasource.url' is not specified and no embedded datasource could be autoconfigured
    吴裕雄天生自然SPRINGBOOT开发实战处理XXXX that could not be found.
    吴裕雄天生自然SPRINGBOOT开发实战SpringBoot HTML表单登录
    吴裕雄天生自然SPRINGBOOT开发实战SpringBoot REST示例
    吴裕雄天生自然SpringBoot开发实战学习笔记处理 Could not write metadata for '/Servers'.metadata\.plugins\org.eclipse.core.resources\.projects\Servers\.markers.snap (系统找不到指定的路径。)
    吴裕雄天生自然SPRINGBOOT开发实战SpringBoot Tomcat部署
  • 原文地址:https://www.cnblogs.com/hellohell/p/9092277.html
Copyright © 2011-2022 走看看