zoukankan      html  css  js  c++  java
  • 大型网站技术架构,8网站的安全架构之信息加密技术及密钥安全管理

    敏感数据,应该加密处理,信息加密技术可分为三类:单向散列加密、对称加密、非对称加密

    8.2.1 单向散列加密

    是值通过对不同输入长度的信息进行散列计算,得到固定长度的输出,不能对固定长度的输出进行计算从而获取输入信息,即不能根据输出逆向获得输入信息。

     利用单向散列加密的这个特性,可以进行密码加密保存,即用户注册时输入的密码不直接保存到数据库,而是对密码进行单向散列加密,将密文存入数据库,用户登录时,进行密码验证,同样计算得到输入密码的密文,并和数据库中的密文比较,如果一致,则密码验证成功,具体过程如下。

     由于数据库存入的时密文,即使数据库拖库,也不会泄露用户的密码信息。

    但是由于人们设置密码具有一定的模式,因此通过彩虹表(人们常用密码和对应的密文关系表)等手段可以进行猜测式破解。

    为了加强单向散列计算的安全性,还会给散列算法加点盐(salt),salt相当于加密的密钥,增加破解的难度。

    常用的单向散列算法有MD5、SHA等。单向散列算法还有一个特点就是输入的任何微小变化都会导致输出的完全不同,这个特性有时也会被用来生成信息摘要、计算具有高离散程度的随机数等用途。

    8.2.2 对称加密

    指加密解密使用的密钥式同一个密钥(或者可以互相推算),如下图所示。

     对称加密常用在信息需要安全交换或存储的场合,如Cookie加密、通信加密等。

    对称加密的优点是:算法简单,加解密效率高,系统开销小,适合对大量数据加密。

    缺点是加解密使用同一密钥,远程通信的情况下如何安全的交换密钥是个难题,如果密钥丢失,那么所有的加密信息也就没有密码可言了。

    常用的对称加密算法有DES算法、RC算法等。对称加密是一种传统加密手段,也是最常用的加密手段,适用于绝大多数需要加密的场合。

    8.2.3 非对称加密

    加解密使用的密钥不是同一个密钥,其中一个对外界公开被称作公钥,另一个只有所有者知道,被称作私钥。

    用公钥加密的信息必须用私钥才能解开,反之,用私钥加密的信息只有用公钥才能解开,如下图所示。理论上,不可能通过公钥计算获得私钥。

     非对称加密技术通常用在信息安全传输、数字签名等场合。

    信息发送者A通过公开渠道获得信息接收者B的公钥,对提交的信息进行加密,然后通过非安全传输通道将密文信息发送给B,B得到密文信息后,用自己的私钥对信息进行解密,获得原始的明文信息。即使密文信息在传输过程中遭到窃取,窃取者没有解密密钥也无法还原明文。

    数字签名过程则相反,签名者用自己的私钥对信息进行加密,然后发送给对方,接收方用签名者的公钥对信息进行解密,获得原始密文信息,由于私钥只有签名者拥有,因此该信息是不可抵赖的,具有签名的性质。

    在实际应用中,常常会混合使用对称加密和非对称加密。先使用非对称加密技术对对称密钥进行安全传输,然后使用对称加密技术进行信息加解密与交换。而有时,对同一个数据两次使用非对称加密,可同时实现信息安全传输与数字签名的目的。

    非对称加密的常用算法有RSA算法等。HTTPS传输中浏览器使用的数字证书实质上是经过权威机构认证的非对称加密的公钥

    8.2.4 密钥安全管理

    签名的几种加密技术,能够达到安全保密效果的一个重要前提是密钥的安全。

    信息的安全是靠密钥保证的。存储密钥本身需要保证安全性。

    实践中,改善密钥安全性的手段有两种。

    一种是把密钥和算法放在一个独立的服务器上,甚至做成一个专用的硬件设施,对外提供加密解密服务,应用系统通过调用这个服务,实现数据的加解密。

    优点是泄密概率降低

    缺点是成本高,有可能成为应用的瓶颈,每次加密、解密都要进行以此远程服务调用,系统性能开销较大。

    另一种方案是将加解密算法放在应用系统中,密钥放在独立服务器中,为了提高密钥的安全性,实际存储时,密钥被切分成数片,加密后分别保存在不同存储介质中,兼顾密钥安全性的同时又改善了性能,如图所示。

    应用程序调用密钥安全管理系统提供的加解密服务接口对信息进行加解密,该接口实现了常用的加密解密算法并可根据需求任意扩展。

    加解密服务接口通过密钥服务器的密钥服务取得 加解密密钥,并缓存在本地(定时更新)。

    而密钥服务器中的密钥则来自多个密钥存储服务器,一个密钥分片后存储在多个存储服务器中,每个服务器都有专人负责管理。

    密钥申请者、密钥管理者、安全审核人员通过密钥管理控制台管理更新密钥,每个人各司其职,没有人能查看完整的密钥信息。

    作者: 元宝爸爸

    出处:https://www.cnblogs.com/wozixiaoyao/p/11965398.html

    版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

    觉得文章不错,点个关注呗!

  • 相关阅读:
    [笔记]: 树链剖分 2017-06-05 16:57 35人阅读 评论(0) 收藏
    [笔记]: 最小生成树Kruska 2017-06-05 16:52 34人阅读 评论(0) 收藏
    [笔记]: 并查集 2017-06-05 16:49 58人阅读 评论(0) 收藏
    [bzoj2144]: 跳跳棋 2017-06-02 15:53 42人阅读 评论(0) 收藏
    [noip2013] 货车运输(最大生成树+并查集+LCA) 2017-06-02 15:18 56人阅读 评论(0) 收藏
    [练习] LCA练习1(最基础) 2017-06-02 11:54 39人阅读 评论(0) 收藏
    [笔记]: RMQ算法(区间查询) 2017-06-01 18:06 44人阅读 评论(0) 收藏
    [笔记]: LCA最近公共祖先 2017-06-01 11:38 38人阅读 评论(0) 收藏
    [hdu&poj&洛谷] 经典线段树练习题 2017-06-01 08:10 56人阅读 评论(0) 收藏
    保留X位小数(Double) swift
  • 原文地址:https://www.cnblogs.com/xinrong2019/p/11621008.html
Copyright © 2011-2022 走看看