隔了那么多天终于有时间继续把这个专题做完了,这次一定连续写完这方面的笔记。

上篇博文说明了非对称加密和对称加密各自的优缺点,那么就很自然的衍生出了一种综合的方案。

两种方案的结合--扬长避短

首先发送方如果想加密发送一个很大的数据,由于非对称加密的速度很慢,所以只能采用对称式的加密方式,加密这个很大的明文数据。这时的口令就是一个session key,这个口令是个随机数,每次通讯的时候都不一样,发送方也不关心这个口令是什么,因为他只要能安全的给接收方就可以了。

那么怎样才能确保这个session key安全的到达接收方呢?

用非对称加密的方式对session key加密,这样只有接收方用自己的私钥才能解密session key,并用session key解密那个很大的文件的密文。

其他的人不管是截取了那个数据都看不到原始的明文数据。

接收方的工作流程,这样就能很好的做到了数据的加密传输。

做到现在似乎已经无懈可击了,哈哈~~其实不然,这个方案依然有很大的安全漏洞,后面讲!

非对称加密的另一种应用--数字签名

在日常的生活中,这种签名的方案到处都在,如信用卡购物,付款的时候消费者要签名,证明这个账单或者文件被签名人认可。这里的数字签名一样的道理,但是有所不同,不同的是:购物时的签名,能通过笔迹确定这个签名是谁签的,但是在网络通信中怎么确定这个签名的主人呢?利用非对称加密就能搞定。

具体做法就是:发送方用自己的私钥加密也就是这个的签名,然后数据接收方用发送方的公钥解密还原明文。这里签名的意思就是发送者认可这个明文,然后才对这个明文签名的(加密),也就是说发送者对这个明文负法律责任。这个明文出现任何的虚假的信息,发送者都有法律责任,因为你签过名,认可了这个文件;因为只有你自己有你的私钥,这个签的人一定是你。(说什么我的私钥被盗了,不好意思,还是你的责任)

也就是说只要接收方收的的密文,用接收方的公钥能解密,就说明你签名了,文件出现任何的虚假的信息,接收方都可以追究发送方的责任。

签名认证的实验

(1)产生用于签名认证的一对钥匙

方式同加解密的钥匙对一样,不同点在于这里是用私钥加密,用公钥解密。

(2)用私钥签名(加密)

(3)用公钥验证(解密)

上面个的过程就奠定了对一个电子文件不可否认的基石,只要你对一个电子文档签了名(也就是用你的私钥对该电子文档加了密),就代表你对这个电子文档认可,你要对他的真实性负法律责任。

提示:

对数据的非对称加密和文件的签名认证其实是一回事,都是加解密的过程。不同的仅仅是加密和解密用的密钥不同,no big deal。

遗留问题:

前面说过非对称加密的速度很慢,特别是对大的文件。那么如果要签名一个很大的文件,应该怎么做?还是用一个session key结合对称加密?其实没有必要,因为我用私钥加密,我的公钥又散布给所有的人,任何人都能看到我的明文。他们只是要确定这个明文的可靠性,通过我的认证来确定这个明文的可靠性。下面将解决的办法。

加密传输SSL协议4_综合方案的更多相关文章

  1. 加密传输SSL协议7_SSL协议概述

    SSL(Secure Sockets Layer) SSL的功能,可以在通信的双方中建立一个加密的通信通道 同时还可以确认通信的双方是不是就是其声称的人,防止被钓鱼. SSL在网络协议栈中的位置:可以 ...

  2. 加密传输SSL协议8_Apache服务器的安装

    学习了那么多的理论的知识,下面通过在Apache服务器中安装和使用SSL协议,实现安全传输,但是首先要安装好Apache服务器. Apache服务器的安装 Linux下所有的软件的原码的安装都是三部曲 ...

  3. 加密传输SSL协议6_验证公钥

    如上图所示,我怎么能确定我手里的公钥就是我心中的接收方的公钥呢?怎么防止被钓鱼呢? 解决的办法就是引入一个第三方,一个权威机构,一个我们都相信的机构. 验证公钥,Digital Certificate ...

  4. 加密传输SSL协议1_OpenSSL的安装

    终于在自己不断的奋斗之后,来到科大的一波考试过去了,但是为了不使自己过于放松,回顾一下之前的东西,做一下笔记.所以新开一个专题笔记: Using Apache with SSL 引入:首先我们在平时的 ...

  5. 加密传输SSL协议5_Hash Function

    怎么对一个大的文件进行签名,因为文件比较大,非对称签名很慢.那么想,我能把这个大的文件通过一种函数变换,变成一个和源文件唯一对应的的小的文件吗?答案是可以的. Hash Function 这里任何的文 ...

  6. 加密传输SSL协议2_传统加密

    原本到了睡觉的时间,但是做完了SSL的笔记还有GCC和Oracle等的好多的笔记,所以刻苦一点. The Priciple of Encryption/Decryption --conventiona ...

  7. 加密传输SSL协议3_非对称加密

    困死了,这里对非对称加密体系开个头,具体的实验明天写 非对称加密体系 为了解决对称加密中密钥的传输的问题,一些天才的数学家就提出了非对称式的加密体系,也称为公钥加密体系. 加密和解密的密钥是不同的.一 ...

  8. 学习笔记: MD5/DES/RSA三类加密,SSL协议解析

    1. 不对称可逆加密的 的2种用法 (1)保证信息不被篡改 (2) 保证信息只能被我看到 2. CA证书的基本原理 流程如下:  百度公司 向CA机构报备 持有者姓名, 有效期, 要发布的公钥 , 扩 ...

  9. HTTPS(身披SSL协议的HTTP)

    参考链接: HTTP 与 HTTPS 的区别 HTTPS科普扫盲帖 HTTPS小结 HTTP 和 HTTPS 区别 HTTP是明文传输未加密,安全性差,HTTPS(HTTP + SSL)数据传输是加密 ...

随机推荐

  1. 移动web开发前准备知识了解(html5、jquery)笔记

    1.经常使用 插件工具  chrome插件:   Mobile & Tablet Emulator(用于常见移动端适配):(重点) Mobile Emulator is an useful o ...

  2. 编写javascript的基本技巧

    第一.编写可维护的代码 什么叫着编写可维护的代码呢?就是当我的做出来的项目,拿给其它编码团队能很快的看懂 你编写的代码,你的整个项目的逻辑等等.一个项目的修改维护是要比开发一个项目的成本 是要高的.例 ...

  3. inline函数

    C语言中的inline函数并不是单纯的用函数块内容来替换,也可能存在局部变量啥的.另外,使用inline定义的函数只是建议编译器作为内联函数处理,但并不一定真会这样处理.inline一般直接在头文件中 ...

  4. IIS Could not load file or assembly 'CLDBCommon.DLL' or one of its dependencies.找不到指定的模块

    1.卸载原来的.NET4.0,从新下载.NET4.5.1完整安装程序.后问题解决附:.NET4.5.1下载地址:https://www.microsoft.com/zh-cn/download/det ...

  5. adb server didn t ack failed to start daemon

    关掉Ecilpse,打开cmd命令行 1)cd到sdk的platform-tools目录下, 2)执行  adb kill-server  ,出现  server not runing 提示 3)执行 ...

  6. c++到c#数据类型的转换

    c++与c#的类型转换 分类:cSharp | 标签: c#  system  intptr  char  uint  2012-02-29 19:54 阅读(513)评论(0)编辑删除 //c++: ...

  7. Gson解析JsonObject和JsonArray

    Gson中重要的几个核心类: Gson.JsonParser.JsonObject.JsonArray. 下面就是解析的步骤: public void parserJsonArray(String s ...

  8. Javascript 拖拽的一些高级的应用——逐行分析代码,让你轻松了解拖拽的原理

    我们看看之前的拖拽在周围有东西的时候会出现什么问题? 在高级浏览器中不会有啥问题,我们放到IE7下面测试一下,问题就出来了.如图 我们可以很清楚的看到,文字都已经被选中了.那这个用户体验很不好,用起来 ...

  9. php cli模式没有加载php.ini

    这两天在虚拟机的linux里编译安装了php,同时也把swoole的扩展也编译上了.在/etc/php.ini里加上了extension=swoole.so,但是用php -m 查看加载的模块并没有s ...

  10. PHP 数组和对象的相互转化

    对象和数组的相互转化在开发中也是很常见,一般不是多维的情况下直接(array)和(object)就可搞定了,多维的话,遍历下也就可以了: 1 <?php 2 class test 3 { 4 p ...