Welcome

首页 / 软件开发 / 数据结构与算法 / 通向架构师的道路 第十四天 Axis2 Web Service安全之rampart

通向架构师的道路 第十四天 Axis2 Web Service安全之rampart2013-02-15 csdn lifetragedy一、加密保护我们的web service传输

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

在我之间教程中曾经提到过,有一种黑客工具叫作sniffer,或者使用MIM-ATTACK(中间件拦截)的方式,也是可以把客户端的流拦截住并且发往黑客主机的,这样我们的用户名和密码就可以被黑客所获取了。

因此,今天我们要讲述的就是如何在web service传输时,使得这个用户名和密码以及相关数据也能被加密。

二、基本概念

我们先来看基本概念,这个基本概念将涉及到PKI的相关领域,请仔细看完这一章,要不然后面你将云里雾里然后我劝你从头来过,我将参照麻省理工大学的教程-RSA公司出版的“计算机加密与解密原理”,用最实际的例子和最简化的语言把PKI中最重要的几个概念给大家说清楚。

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

不折腾你们不行,我要把大家折腾的蛋疼,这次折腾过后就彻底明白了。

被折腾着,痛苦着并最后快活着,好了我废话又多了,下面开始。

2.1 加密解密的基本概念

我们的加密解密分两种:

1) 对称加密(Symmetric Cipher)

2) 非对称加密(Asymmetric Cipher)

2.1.1 对称加密

即采用一个密码(密钥)来对一串String进行解密,同样这个密码(密钥)也能对被加密的密文进行解密,至始至终只有一个密码(密钥),因此它叫做对称加密。

2.1.2 非对称加密

这个是最重要的概念之一

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

l 一把我们称为私钥即privatekey,一把私钥可以对应着无数把公钥,公钥是可以“散播”的。

l 一把我们称为公钥即publickey,一堆公钥只能对应着仅有的一把私钥,私钥是绝对不可以“散播”的。

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

下面公式来了:

公钥加密,私钥解密

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

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

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

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