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能用自己的私钥进行解密。但是它们都不知道中间人已经完全掌握了它们的密码本。

  • 相关阅读:
    文件和数组的排序
    批量删除文档中的注释和空行
    strcat()的编写
    OpenGL鼠标旋转图像
    c++对文件操作的支持(二)
    汉字的16进制存储
    启动程序的c++方法
    HDU 2199 Can you solve this equation? 二分
    HDU 2899 Strange fuction 二分
    HDU 1233 还是畅通工程 最小生成树
  • 原文地址:https://www.cnblogs.com/hellohell/p/9092277.html
Copyright © 2011-2022 走看看