欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 宝鼎售后问题提交 | 后台管理


新闻资讯

MENU

软件开发知识
原文出处: 袁鸣凯

一、加密掩护我们的web service传输

在上一天的教程中,我们讲了一个简朴的基于” security-constraint”的以指定用户名和暗码来掩护一个Web Service以及如何用https对这个web service的通讯进程举办掩护。固然它用https来举办掩护了,可是我们抛开https,这个web service之间传输的用户名,暗码,数据都是明文的。

在我之间教程中曾经提到过,有一种黑客东西叫作sniffer,可能利用MIM-ATTACK(中间件拦截)的方法,也是可以把客户端的流拦截住而且发往黑客主机的,这样我们的用户名和暗码就可以被黑客所获取了。

因此,本日我们要报告的就是如安在web service传输时,使得这个用户名和暗码以及相关数据也能被加密。

二、根基观念

我们先来看根基观念,这个根基观念将涉及到PKI的相关规模,请仔细看完这一章,要否则后头你将云里雾里然后我劝你从新来过,我将参照麻省理工大学的教程-RSA公司出书的“计较机加密与解密道理”,昆山软件开发,用最实际的例子和最简化的语言把PKI中最重要的几个观念给各人说清楚。

这次应该是我们第三次要求生成证书请求,证书,签名了,挺折腾的!!!

不折腾你们不可,我要把各人折腾的蛋疼,这次折腾事后就彻底大白了。

被折腾着,疾苦着并最后快在世,好了我空话又多了,下面开始。

2.1 加密解密的根基观念

我们的加密解密分两种:

  • 对称加密(Symmetric Cipher)
  • 非对称加密(Asymmetric Cipher)
  • 2.1.1 对称加密

    即回收一个暗码(密钥)来对一串String举办解密,同样这个暗码(密钥)也能对被加密的密文举办解密,至始至终只有一个暗码(密钥),因此它叫做对称加密。

    解开信封时你就要  <a href=劳务调派打点系统 输入暗码(口令)" src="/uploads/allimg/c180220/151ZG3000X60-1Tb.jpg" />

    2.1.2 非对称加密

    这个是最重要的观念之一

    我们知道,对称加密只有一把密钥(你可以把这个密钥当作一个暗码)。而非对称加密呢?它有2把密钥,

    1. 一把我们称为私钥即privatekey,一把私钥可以对应着无数把公钥,公钥是可以“散播”的。
    2. 一把我们称为公钥即publickey,一堆公钥只能对应着仅有的一把私钥,私钥是绝对不行以“散播”的。

    这两把密钥在发生时是被一起发生的,相当于同年同月生一样,即生成私钥时也陪伴着生成了公钥。

    下面公式来了:

    公钥加密,私钥解密

    各人试想一下哈,我有两把钥匙,一把是用来专门锁门的(加密),一把是专门用来开门的(解密)。那么我用来锁门的那把key掉了,被其它人捡到了,要没干系?大不了别人可以锁我家的门。

    可是,假如我用来开门的这么key掉了?怎么办?被人捡到了人家就可以开我家的门进我家了。

    因此,公钥永远被用来加密,可以有多把被多人持有,而私钥永远用来解密且只能主人本身拥有。

    公钥加密,私钥解密!老老记着,这是永远的公式,也是真理!

    解开信封时你就要  <a href=劳务调派打点系统 输入暗码(口令)" src="/uploads/allimg/c180220/151ZG300315P-2N41.jpg" />

    2.1.3 数字签名

    看了上面的“真理”即“公钥加密,私钥解密”后有人说了,我偏不信邪我就是要把它们倒过来,好好好!我们一起来看倒过来是什么样的,即成了“私钥加密,公钥解密”了。但话不能这样说,真理是不容否认的,但倒过来不是也行?

    行,行是行,不外这句话就不能这样说了。

    我们知道,公钥是可以多把的,私钥只有一把,因此:

    1)  假如我们先把我们的明文用MD5可能SHA1这样的杂凑算法做一个杂凑,获得一堆杂凑值我们称它为报文。

    2)  然后呢我们拿着我们的私钥来对着这个获得的杂凑码不管它是MD5照旧SHA1,做一个加密运算,就获得了一个“摘要”即Digest。

    3)  然后我们把这个摘要和我们的明文一起发送给吸收方。

    4)  吸收方首先用与发送方一样的杂凑函数与吸收到的原始明文中计较出这个杂凑计较,获得杂凑值即报文。

    5)  接着再用发送方的公用密钥来对这个报文附加的数字签名举办解密,这样,在吸收方手上就会有两样对象了。

    l   吸收方用发送方的公钥与所谓的原始明文运算获得的杂凑值可能称为报文也可称为摘要即digest。

    l   吸收方收到的由发送方发过来的摘要

    6)  将这两要对象,就是两个摘要,它凡是是如下的名目:

    ‎0a f5 b0 3f 38 6b 97 9c 08 62 9b 8b df d7 a0 c6 fe 00 12 08

    从吸收方发送来的摘要是出自某某某之手!为什么?把这两个摘要一较量,完全一致我们就可以说:

    举例来说:

    因为我们的公钥和密钥在发生时是一对的,Andy保存了私钥,他把公钥给了Forest。

    If

    Forest用这把公钥和明文获得的摘要假如==Andy用私钥和明文做了杂凑后发来的摘要

    Then

    这条动静必然是Andy发过来的。

    除非Andy把他的私钥交给了其它人并授权其它人署理他来做这个“私钥签证”

    所以,我们获得另一条公式:

    私钥签名,公钥认证

    这也是一条真理,不能违背,这条真理也被称为“数字签名”,这边的“认证”也可以称为“被信任”。

    解开信封时你就要  <a href=劳务调派打点系统 输入暗码(口令)" src="/uploads/allimg/c180220/151ZG30061E0-3D24.jpg" />

    2.1.4 口令掩护

    我们的private key,public key假如一旦真的呈现了private key被丢失的环境下怎么办?

    没干系,劳务派遣管理系统,我们在private key上加一道锁:

    解开信封时你就要  <a href=劳务调派打点系统 输入暗码(口令)" src="/uploads/allimg/c180220/151ZG300OQ0-4P94.jpg" />

    这下成了最右边谁人带锁的信封了,是不是,这个带锁的信封就是我们的钥匙袋。

    你要拿到我的私钥就必需要先打开这个钥匙带,打开这个钥匙带你就必需再需要一把钥匙。

    一般这把钥匙就是一个暗码,我们称之为“口令”。