zoukankan      html  css  js  c++  java
  • 9.2 数据安全加密(第三部分)

    其实数字时间戳这个概念和我们日常生活中所见到的邮戳它的概念差不多.我们知道邮戳它的作用,我们讲那个知识产权的时候,也会提到这一点.就是有一些凭据可以根据邮戳的日期来进行判断的.你比如说你要申请一个专利,申请一个专利呢有可能多个人同时申请这个专利,那么就要以谁先申请这个时间为一个依据.如果说两封邮件同时收到了那么我们就要看哪一封信件哪一封邮件它先寄出,以寄出时间为准.而寄出时间呢,我们可以以邮戳为凭据.那么数字时间戳也是这么一个概念.

    在一个电子商务的一个交易过程当中,交易时间是一个非常重要的一项信息.所以呢我们就提出了要提出这个数字时间戳这个概念.数字时间戳实际上它也是数字签名的一种变种应用.它和数字签名有一点不同,就是数字签名没有强调把时间信息加入,数字时间戳主要就是强调了把这个时间加入.而且这个时间加入并不是用户自己加入的时间,因为用户如果自己加入时间,时间是可以调整的,可以改变的.自己想设成哪一天,那就可以设成哪一天.所以为了避免这种情况呢,就提出了一个数字时间戳服务,它是网上电子商务安全服务项目之一.

    就是架设一台这个DTS的一个服务器.它就专门管这个数字时间戳.它给你来盖这个时间戳.那具体是怎样的一个流程呢?就是首先用户把原文产生信息摘要,产生信息摘要之后呢就把摘要送到DTS服务器.注意不能够把原文送过去,原文送过去可能是一个很大的文件.但是摘要我们清楚,摘要我们是一个不管你文件多长,摘要长度总是固定长度,对于MD5码呢它的摘要长度是128位.而对于SHA这种算法呢它的摘要长度是160位.那么把摘要送到了DTS服务器之后,DTS就把收到的摘要和现在的一个时间信息进行合并,合并之后呢进行数字签名.就是用服务器它的私钥对这个信息进行加密,产生了数字签名.然后把这个数字签名呢送到用户手上.这样子就完成了一个数字时间戳.

    一个时间戳应该是要包含三个方面的:

    第一个是需要加时间戳的文件的信息摘要.

    第二个部分呢就是收到文件的日期和时间.DTS收到文件的日期和时间.

    第三呢就是DTS的数字签名.

    那么这个就是数字时间戳技术.


    SSL的安全协议呢最初是由网景公司提出来的.最初是由网景公司提出并且开发设计的.这个SSL呢它的全称是Secure Sockets Layer,就是安全套接层协议.HTTPS就是用到了这个SSL安全协议的.所有的银行现在都是用的这个都加了安全层协议,就是这个安全套接层协议.所以它们访问网址呢不是我们通常的HTTP,而是HTTPS.这证明它用到了这个SSL的技术.

    SSL安全协议主要提供哪一些服务呢?

    (1)用户和服务器的合法性认证.它是用于认证用户以及服务器的合法性,使得它们能够确信数据能够被发送到正确的客户机和服务器上面.客户机和服务器都有各自的这个识别号,而这些识别号是由公开密钥进行编号,为了验证用户是否合法,我们的安全套接层协议会要求握手交换数据的时候进行数字认证,这样子就可以确保用户的合法性.其中就有一些数据它是进行加密传输的,认证信息是有数字认证的.这样子安全度可以提高.

    (2)传输的数据是加了密的.不像我们刚才提到了HTTPS,HTTPS和HTTP它的一个区别呢就是HTTP它的数据是以明文方式进行传输.而HTTPS是加了密的,这是第二方面的.

    (3)保护数据的完整性.安全套接层协议这个SSL协议它是采用的哈希函数和机密共享的方法来提供数据的完整性服务.它建立的是客户机与服务器之间的安全通道,通过这个安全通道的建立呢使得所有的经过安全套接层协议处理的业务在传输过程中呢都能够完整地、准确无误地送到目的地.

    这是SSL它提供的这个服务.


    SSL的实现过程:

    数据安全以及加密这一部分的内容全部讲完了.讲完以后呢我们来讲一个综合性的例题.软考真题而且是下午题.

    其实身份认证呢就是用的数字签名的技术.

    它是双重的,一方面以明文的方式发送认证数据.一方面以加密方式发送这个认证数据.

    图1是认证过程,图2就是一个发送消息的一个完整过程.


    发送者和接收者用的同样的密钥,对消息进行加密.加密然后传输,这里采用的是对称密钥加密.d和e采用的密钥应该是相同的,是他们共享的密钥.

    第二步为了实现身份认证,它们用的摘要算法也是一样的.并且呢使用公钥密码体系把生成的消息摘要加密以后发送给B.再看一下信息,A与B使用的摘要是相同的.首先生成摘要,然后就利用公钥体系对生成的摘要加密发送给B.

    a和b使用的信息摘要算法是相同的.所以从消息得到消息的摘要就是一个求摘要的过程.所以c和f它们应该是相同的一个过程.然后得到的信息摘要就用公钥体系进行加密传送.然后b再进行解密.所以说这一条线底下这一块要用到的是非对称的一种加密方式.而上面这一块呢用到的是对称的加密方式.

    接下来再看第三点.第三点和第四点能够给我们什么样的信息?b收到信息摘要之后,就用非对称密钥体系进行解密,实际上就是指的这一个过程,加密后的信息摘要已经收到了,收到之后解密.解密呢就应该形成明文的信息摘要.

    收到加密后的信息之后,用对称密钥体系进行解密,得到明文的消息.

    当时考到这一个题目的时候,历年都没出现过与数据安全加密相关的下午试题.虽然考的是新题,但是考的知识点是我们必须掌握的知识点.题目已经告诉我们大量的信息.把整个的过程分析的非常详细了.

    掌握最基础的一部分知识已经可以解题了.就是信息摘要、对称加密、非对称加密、数字签名这些概念,它概念一个大概的实现流程.这个流程我们清楚了呢,那么解题也就容易了.

    我从两方面,从消息方面我解密消息,产生了一个信息摘要.又从加密的信息摘要,把这个加密的信息摘要进行解密,得到了一个信息摘要.我们再把这两个信息摘要呢进行对比,对比是否匹配,如果匹配呢就说明整个的这个流程没有问题,也能够确认这个消息是从发送者A发送过来的.为什么呢?因为这一步它用到了数字签名.用到了数字签名,这个非对称加密就是用到了数字签名的技术.等于是从两条独立的通道把信息发送过来了.发送过来把两方的信息一核对,只要是匹配,我们就可以认可这个信息是正确的.


    图1是一个认证的过程.把认证数据加密以后发送给接收者B.B呢对这个认证数据进行解密,然后和明文的认证数据进行对比,看是否相匹配.这也就是一个数字签名的过程.而数字签名的过程,B需要了解是否是A的,那么呢就是用A的私钥进行加密,把这个加密数据呢发送到B,发送到B之后呢用A的公钥进行解密.因为在非对称的一种密钥体系当中,私钥加的密码那么公钥就可以解.一旦接收者B能够用A的公钥解开这个密码,解开这个认证数据,然后和自己明文接收到的认证数据一核对无误,那么我们就可以确认这个信息肯定是A发过来的.因为只有是A的私钥加的密,而A的公钥才可以解密.而A的私钥呢又只有发送者A才有,所以说呢我们的A选项应该是填A的私钥.而B选项填A的公钥.这是最简单的一步.


    刚才第一问的答案同样适用于这里的a、b.然后c和f是同样的,都是产生信息摘要的,那么呢就是信息摘要算法.c和f都是信息摘要算法.

    d和e它所处的位置,这一块它是进行对称密钥加密的.既然是对称密钥加密,那么d和e就是使用的同样的密钥.加密、解密同样的密钥,而在对称的加密体系当中,是不存在公钥和私钥的说法的.所以呢我们就不能够选任何的公钥私钥,信息摘要算法肯定也是错的.那么就只能够选这个会话密钥.

    第三问,这个就结合我们的这个整个的对称密钥、非对称密钥体系,也就是信息摘要、数字签名,各种方式它的一个优点特色了.首先我们用对称密钥加密,用对称密钥加密消息是因为消息的量是比较大的,而对称密钥加密它的加密效率相当的高.对称加密的效率会比非对称的要高很多.所以大量的信息我们就用这个对称的密钥体系进行加密.

    而对于身份的认证,我们没必要把所有的信息作为认证信息.而只需要产生一定的特征数据,从信息当中产生一定的特征数据来验证身份这是比较合适的.这能够极大程度地降低认证数据的大小而且这个认证数据又具有消息的特征.这就是为什么我们要用到消息摘要的一个原因.因为非对称的一个加密解密的一个过程,是一个很复杂的过程,效率很低.如果你大量的数据用来加密解密那么会很耗时间.然后数字签名技术当中又要用到这一个非对称的一种形式.所以我们就要产生这个信息摘要.而用到这个非对称加密呢是因为我们要对它进行身份认证.要进行身份认证的话呢用非对称的密钥体系是最简单最容易的.因为它的加密密钥和解密密钥不同,这样子我们可以很方便地把公钥把它放出去,然后用私钥加密信息,然后发送给接收者.发送给接收者之后呢他可以用明文的那种公钥来进行解密以判断你的信息是否是发送者A发出的,达到一个认证的一个过程.

    这个理由就是上面所说的那些.


    第四问,关于信息摘要的一些说法.

    A选项.我们的信息摘要可以说是这个信息它的一个缩影.信息的一个缩影.然后信息摘要呢它的一个最主要的一个应用就是验证信息的完整性(它是否被篡改过).如果说很多个信息它都能够产生同样的摘要,那么我们的信息摘要就失去了它的含义.我把一个真正的正确信息改掉之后产生的摘要和它的相同,然后这样子我们就会误认为这个信息没被篡改过.那么信息摘要也就失去了它的作用.所以这个显然是不对的.

    B选项.正确.

    C选项.错误.

    信息摘要是从信息当中提取特征点.得到一个很小的固定长度的一个数据.你比如说我一个1MB的文件,它得到的信息摘要仅仅只有128位(这是用MD5码生成).那么这个生成呢抽取信息点来进行生成,这个时间是非常短的.因为它不要做很复杂的一些变换处理.而且是把大的信息丢掉很多,只抽取一些点来得到这个特征信息.所以说它消耗的时间是比较短的.这个B应该是正确的.

    D选项.错误.

    E选项.因为产生摘要的时候是丢掉了很多信息,所以无法还原.1MB的信息可能产生摘要也就是128位.如果用SHA的算法呢它产生的摘要长度就是160位.这样它都远远地少于这个1MB.所以说它这个数据是无法还原的.是有损的.所以说问题四它的答案呢就是B和E.


    整个的安全算法,也就是数据安全与加密这一部分也就讲完了.下一部分我们要学习的内容是网络安全.

  • 相关阅读:
    javascript验证QQ号、邮箱和手机号码
    js 引擎 和 html 渲染引擎
    ASP.NET MVC 4 简介
    SqlDateTime overflow / SqlDateTime 溢出
    ASP.NET MVC ViewBag/ViewData/TempData区别
    C#内存分配
    Repeater数据绑定和操作
    Uploadify导致Chrome频繁崩溃Crash
    巧用Ajax的beforeSend 提高用户体验
    ASP.NET MVC
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/7379958.html
Copyright © 2011-2022 走看看