WAP建站相关安全知识
字体: 小 中 大 | 打印 发表于: 2007-12-13 13:09 作者: jokin 来源: 飞酷经典资源网
无论是因特网还是无线网络,安全总是一个十分重要的问题。可以说:没有安全,也就没有网络世界的繁荣。在本章中首先介绍有关安全的一些基本概念,包括密钥学、数字证书、数字签名、安全认证等等。然后再了解有关WAP安全的专题,包括服务器认证、WTSL、客户端认证等等。
数字证书
数字证书是一些用来标识和唯一确定在网络(例如:因特网)上的人和资源的电子文件。数字证书同样能够保证两个组织间的安全和可信任的信息交流。
打个比方,当某个人在其他国家旅行的时候,他的护照为他提供了一个身份证明,使得他可以在每个国家之间往来。数字证书提供了一个类似的身份证明。它是通过一个可信的第三方组织来发放的。该组织被称为Certification Authority(CA)。和护照发放处的角色一样,CA的角色就是验证持有者的身份并且“签字”,以防止身份被伪造或者篡改。一旦CA在证明上签字,持有者就可以向其他人、其他站点和其他网络上的资源出示他的证明,并建立加密的和可靠的信息交流。一个认证包括了持有者和CA发放的各种信息,例如:
- 持有者的名字以及其他可以唯一确定持有者身份的信息,例如:使用该认证的WAP服务器的URL,个人的E-Mail地址。
> >
- 持有者的公开密钥。公开密钥可以用来加密送往持有者的敏感信息。
> >
- 发放CA认证的组织名称。
> >
- 一个序列号。
> >
- 证书的有效期,也就是起止日期。
> >
在创建这个证书的时候,这些信息都被CA以数字化的方式写在证书里。CA的签名就好像是信封封口处的一个防伪章。
数字证书是基于公共密钥密码系统的。公共密钥是成对地加密和解密密钥。这对密钥一个被称作公开密钥,另一个被称作私有密钥。在密码系统中,公开钥匙是指一个数值。加密算法将利用这个数值来改变原始的信息内容,使得这些内容无法被其他没有持有相应私有密钥的人所识别。
公开密钥可以自由地分发,并且不影响私有密钥的安全。但是持有者必须保护好私有密钥。既然这对密钥是成对工作的,那么只有相互持有对方公共密钥的人之间才能相互进行信息交流。
简而言之:一个数字认证安全地绑定了用户的身份和公开密钥,并且通过了第三方的CA认证。
密钥学简介
在公开密码系统发明之前,来维护一个庞大的密钥管理系统几乎是不可能的。因为在采用对称加密密码系统的情况下,随着用户数目的增加,密码的需求量也随之增大。例如:对100个用户,可能需要维护5000个密钥;但是对200个用户,
可能需要维护20000 个密码。如果只使用对称密码系统,那么密钥的维护即使是在小范围内都没有办法实现。
公开密钥密码系统的发明对一个大规模网络的密钥管理起了极大的推动作用。虽然公开密钥密码系统有那么多优点,但是它并没有提供一个非常完美的密钥管理解决办法。而且公开密钥密码系统的工作效率没有对称密钥密码系统好。另外公开密码的使用也带来了一系列的问题。例如:
“如何使用密钥只做一次加密文件,并将文件发送给不同的人?”
“用户如果丢失了私有密钥,如何打开他经过加密的文件?”
“怎么知道Alice的公开密钥是Alice的,而不是其他人的?”
“怎么知道公开密钥还值得信赖?”
现在一般都采取对称密码和公开密钥混合系统来解决这个问题。也就是使用公开密钥密码系统来传送密码,使用对称密钥密码系统来实现对话。例如:假设Alice和Peter相互要进行通话,他们是按照以下步骤进行的。
- Alice想和Peter通话,并向Peter提出对话请求。
- Peter响应请求,并给Alice发送CA证书(CA证书是经过第三方认证和签名,并且无法伪造或篡改)。这个证书中包括了Peter的身份信息和Peter的公开密钥。
- Alice验证CA证书,并产生一个会话密钥。将这个会话密钥,使用Peter的公开密钥加密,送往Peter
- Peter接收到信息,并使用私有密钥恢复出会话密钥。
- 双方通过这个会话密钥会话。
- 会话结束,会话密钥也就废弃。
数字签名
为了更好地理解密码是如何在电子通讯中应用的,下面以一个发送电子支票的简单过程来讲解。
4.3.1 安全的电子版本
最简单的电子支票就是一个使用字处理器生成的文本文件,包含有你的银行应该给某个人付给指定的金额。但是通过电子网络来发送你的支票将遇到几个安全问题:
- 文件的保密性棗防止任何人截取和阅读文件;
- 文件的确认性棗以防别人创建一个类似的文件;
- 文件的可靠性棗防止你否认你创建了这个文件,银行需要担保;
- 文件的完整性棗既然某个人可以改变文件,你和银行都希望保持文件的完整性。
为了解决上面的问题,需要执行下面一系列的步骤来实现以上的目的:
4.3.2 电子签名
电子签名的过程是从创建一个数学上的总体检测(叫做哈希编码)开始的。这个哈希编码类似于文件的指纹。它唯一确定了文件特征。即使文件中有一个位有所不同,哈希编码也会大不相同。第二步就是创建签名,也就是使用用户的私有密钥来给这个哈希编码加密。那么如何被称作签名呢?当银行接收到用户的支票时,就可以使用用户的公开密钥来检查、解开哈希编码,然后使用同样的算法生成所收到支票的哈希编码。比较这两个哈希编码,如果相同就说明的确是该用户的支票。这是因为只有该用户拥有这个私有密钥能产生这样的签名。
4.3.3 保密与加密
一旦数字支票经过了数字签名,那么下一步就是对支票使用私有密钥进行加密。这一步一般是指使用对称密钥对文件进行加密。经过加密的信息在网络上传输时,即使被截获,没有密钥也是无法阅读所传输的文件。那么接下来就是如何向银行秘密地传送用户的对称密钥。 4.3.4 公开密钥的密钥传送系统 公开密钥密码系统常用来解决密钥的发送问题。为了做到这一点,用户必须使用银行的公开密钥给对称密钥进行加密。既然只有银行拥有相应的私有密钥。那么只有银行能知道用户发送的对称密钥。 为什么要混合使用公开密钥系统和对称密钥系统呢?最简单的原因就是公开密钥系统相对来说很慢,只适合小信息量的传递。而对称密码系统相对来说要快得多,适合于大信息量的传送。 4.3.5 整个过程 整个过程如图4-1与图4-2所示。 接受图 安全信任 任何一个安全系统都建立在信任的基础之上的。在系统的用户之间,这种信任可能表现为不同的形式。总的来说,不同形式的信任能解决不同的问题,减少某种情况下的冒险。采取哪一种形式的信任大多取决于合作方式。 4.4.1 第三方信任 第三方信任是指使从来没有建立过联系的双方建立一个相互之间的完全信任(如图4-3所示)。在这种情况下,双方都完全相互信任,因为他们有共同的第三方,并且第三方声明这两个人都值得信任。 4.4.2 认证机构 认证机构(Certification Authority,CA)是一个可以被信任的实体,它的中心责任是保证用户是可信任的。从某种意义上来说,CA就是政府护照发放机构的一个别名。护照是一个由权威机构发放的公民安全文件,保证公民和他所声明的身份一致。其他国家相信这个政府护照发放机构,同样会相信公民的护照棗这是一个典型的第三方信任。 4.4.3 电子证书
一个网络用户的证书和一个电子护照等价。因此,一个电子证书包含了可以用来检验和识别用户的安全信息,例如:一个证书包含了用户的名字。一个非常关键的信息就是用户的公开密钥。这个公开密钥是用来给证书的所有者加密数据或者是验证用户的电子签名。 4.4.4 交叉认证
交叉认证是指在两个CA认证机构之间交换钥匙信息的过程,这样使得双方可以有效地验证对方钥匙的可靠性(图4-4)。实质上,交叉CA认证是第三方认证的一个简单意义上的拓展。在某个CA域内的网络用户将完全信任由自己CA通过交叉认证的其他CA域内的用户。 4.4.5 直接信任 直接信任是指双方之间直接建立信任关系(图4-5)。与第三方认证所不同的是允许双方直接建立信任而无须第三方的参与。直接信任的基础是在交换安全信息之前的个人关系的基础上建立的。在网络安全中,直接信任是指在两个独立CA域中的个人通过交换钥匙信息来建立他们的通信。因为这些CA域的代表之间还没有建立信任关系(通过交叉认证),因此用户必须通过个人关系来信任对方。 服务器认证 一个WAP服务器的WTLS认证是一个认证证书。它授权给确认的站点可以访问移动设备内的微型浏览器。当微型浏览器的用户想发送一个加密信息给WAP服务器时,微型浏览器将操作服务器的数字证书。这个证书包含了WAP服务器的公共密钥,微型浏览器将用来授权给确认的WAP服务器,并且使用无线传输加密协议(Wireless Transport Layer Security,WTLS)加密。 CA认证
CA认证是一个通过了CA认证的证书。CA认证就好像其他的电子认证一样,除了他们是自签名。CA认证是被用来决定是否信任由CA所签发的证书。 无线传输安全协议
无线传输安全协议(Wireless Transport Layer Security,WTLS)技术是一种安全协议。它是被用来保证无线网络的安全通信和传输。WTLS将主要被用在微型浏览器和WAP服务器之间,并且将成为电子商务的主角。 服务器将用私有密钥解密信息,恢复会话密钥。在这个时刻Alice可以被保证两个事情: WTLS的“握手”——校验需要建立WTLS会话的双方——完成以后,一个秘密的通讯“管道”就已经建了。Alice的微型浏览器和WAP服务器之间在知道对方的身份和防伪的状态下,就可以使用会话密钥相互发送加密的信息。 服务器认证过程
为了说明WAP服务器的认证过程。下面将以Entrust公司的WAP服务器认证过程为例子。具体的情况请查看该公司的站点。 4.8.1 验证用户的权限 因为用户的组织名字将出现在用户收到的证书当中。在发放证书之前必须保证用户有权利使用那个名字。这是为了防止未经授权地在WAP服务器中使用用户所在组织的名字。 图 4-6 填写D-U-N-S数字 注意:在线的认证将会连接到Dun & Bradstreet站点,来确认用户所填的内容是否属实。 表 4-1 提交文件 配置Nokia WAP Server
4.9.1 Nokia WAP server v1.0从本地安装Entrust.net WAP Root 证书
本节描述了如何配置Nokia WAP Server v1.0,使得移动用户得到和安装本地的Entrust.net WAP root 证书。为了安全起见,root认证被选作为可靠的使用方式。 1. 建立一个流量映射
至此,已经建立了一个新的映射。任何到WAP服务器的http://myhost/请求都将被引导到FileServlet。 2. 配置FileServlet 3. 加入一个Entrust.net root证书文件到用户的WML页面中。
增加一个WML页面,使得终端用户可以选择操作Entrust.net WAP Root证书文件。 <card id="CaRoot" title="Entrust.net Root"> 现在这台Nokia WAP 服务器就已经配置了证书,终端用户可以下载Entrust.net WAP Root证书。 4.9.2 Nokia WAP server v1.0从Entrust Web server安装Entrust.net WAP Root证书
本节描述了如何配置Nokia WAP server v1.0使得终端用户可以从Entrust Web站点下载并安装Entrust.net WAP Root 证书。 1. 创建一个流量映射
HTTP流量映射是Nokia Web Server默认的映射。这个映射创建的过程在这里是一个参考。如果映射在用户的Nokia WAP Server并不存在,执行以下过程。否则跳到下一个步骤。
图4-1 发送过程
此主题相关图片如下:
此主题相关图片如下:
在网络环境下,用户需要了解有两种最主要形式的信任:第三方信任和直接信任。本节将主要介绍这些概念并提供一些附加的信息,让用户来理解在给定的环境下,应该采取何种信任方式。
第三方信任是一个大型网络基于公共密钥密码系统产品的基础。公共密钥密码系统需要操作用户的公共密钥。在一个大型网络中,寄希望于每个用户之间都已经建立了联系是不现实也是无法实现的。另外,这就意味着用户的公共密钥必须广为人知,并且持有该公共密钥的用户必须由第三方来保证其可信,防止冒充。事实上,用户完全信任由第三方发放的公共密钥,因为他们的组织以一种安全的方式拥有和运作着第三方证书代理。
一般来说,第三方证书代理就是指认证机构(Certification Authority,CA)。
此主题相关图片如下:
类似于一个护照,一个网络用户的“电子身份证”是通过CA来发放的。这就表明用户是值得CA信任的。因此通过第三方信任,任何信任CA的人应该同样信任这个用户。
护照发放机构和CA都是政治和社会的混合体。在护照发放局的例子当中,政府要决定哪些公民是被认为是自己的公民并可以获得一个护照。同样的,CA也是一个组织,它决定了在网络这个政治实体中,哪些人是这个组织值得信任的,并可以给他们发放一个电子证书。
从实际的角度来看,一个护照发放部门可以被看作是一个授权安全文件的创造者。护照机构有一系列的设备将公民的各种信息(例如:姓名、相片、生日……)和护照捆绑在一起。这样使得护照很难被更改。然后,当某个人检查这个护照的时候,就可以假设这个护照的信息是真实的。当护照机构使用物理设备来创建安全文件的时候,CA使用计算机平台和算法来创建和验证一个网络用户的电子身份。特别地,CA创建电子“证书”,其权威性和可靠性都是使用CA的私有密钥的电子签名来保证的。用户可以使用CA的公开密钥来验证CA电子签名的可靠性。
护照机构必须保证其物理设备创造的护照的权威性。同样CA的私有密钥的电子签名必须小心保护,这样才能保证其领域内的个体的高度可信。
在讨论证书之前,这儿有一个附加的网络安全信任概念,有点类同于护照发放机构。一个国家的护照发放机构没有权利发放其他国家的护照,而且一个国家只有一个护照发放机构。类似的,网络安全信任概念也具有信任域和唯一性,这个概念就是CA域(CA domain)。CA域是指拥有该CA发放的证书的用户的团体。
考虑到信任的各个方面,有两个关键的问题与证书有关。第一个就是证书如何来保证证书内信息的安全。就是如何使别人相信证书内的姓名和公开密钥的确是证书的所有者。的确,如果没有这个保障,那么公开密钥系统早就完全瘫痪了。因为没有人能够保证他的数据或者签名一定是他真正指定的人才能打开。
为了在用户的公共密钥和用户的信息之间建立信任关系。CA采用了对这些信息使用私有密钥进行数字签名的方式来保证。CA的数字签名提供三种重要的安全方式来保证证书的可靠性。首先,一个有效的数字签名就保证了其可信任性。第二,既然CA是唯一持有这个私有密钥的实体,任何人可以校验CA在证书上的签名,保证只有CA能够生成这样的签名。第三,既然只有CA是唯一持有这个私有密钥的实体,CA无法抵赖它所签过名的证书。
既然证书是包含了CA的电子签名,那么第二个和信任相关的问题是关系到CA自己是否是值得信任的。如果我们把这个问题和护照发放机构联系起来,那么正确的解释就是如何衡量一个护照发放机构的可靠性。例如,一个公民进入一个国家A,他持有一个有效的B国护照,海关必须保证B国的护照发放机构是否值得信任。为了做出这个决定,A国海关官员将要检查现在的可信任国家的列表,就好像决定高级别的政治组织是否在所控制的边界内。
这个可信任的国家集合,在网络安全中被称作交叉认证域(Cross-certified CA domains)。
从技术角度来说,交叉认证包括在两个CA域之间创建交叉证书。当CA域X和CA域Y交叉校验的时候,CA域X实际上创建和签名一个包含了CA域Y的公开密钥的证书(反之也这样)。接下来,在任一域内的用户都假设这两个CA之间相互信任,因而在一个域内的用户可以通过扩展的第三方信任来信任另一个域内的用户。
关于交叉认证,在安全地交换钥匙信息(在它们之间这是不冒风险的)方面还有更多的技术细节。既然交叉认证是拓展的第三方认证,那么在任何一个CA域内都将能和其他安全模式打交道。回到先前的护照的比喻,在没有考察对方的护照创造和发放的过程之前,是不可能申明对对方机构的信任。例如在建立信任之前,每个国家将会想知道对方国家是如何验证公民的身份并发放护照的。
在CA交叉认证的时候也有类似的情况。例如在交叉认证之前,两个CA都想知道对方的安全模式,包括知道对方人员的操作高级安全功能所能得到的信息。双方还要签订有关的法律文件。这个文件是一个安全手段,并签名保证这个手段将实施
此主题相关图片如下:
没有个人信任,交换钥匙信息是没有意义的。因为钥匙信息本身就不可以信赖。当直接信任应用于信息安全通信的时候,它的唯一责任就是双方都能保证他们能接受对方的信任条件。
当直接信任的时候,个人之间钥匙的交换是以个人关系之间强大的机制来保证安全通信的。
此主题相关图片如下:
既然WAP服务器是唯一拥有这个私有密钥,因此只有这个服务器能够解密这些信息。即使信息通过因特网传播,它仍然是可信的,而且无法伪造的。
在护照的那个例子中,护照发放局将要验证有效性和你的权利,并且决定是否允许你进入。同样的CA认证是用来授权和验证WAP服务器的认证。当一个WAP服务器的CA认证出现在微型浏览器前面,微型浏览器将使用CA认证来决定是否信任这个WAP服务器的认证。如果服务器的认证是有效的,那么WTLS对话将被执行。如果是无效的,那么这个服务器的认证被拒绝,并且不执行WTLS会话。
WTLS协议使用数字证书在两个实体之间创建一个安全的秘密的通信“管道”,典型的例子是一个移动电话和一个WAP服务器之间的通信。通过WTLS连接来进行传输的数据,是不可能在不知道的情况下被篡改或者伪造。
一个WAP服务器认证是如何应用在WTLS传输中的呢?
假设Alice想使用她的移动电话连接到一个安全的WAP站点买点东西。
Dun & Bradstreet (D-U-N-S) 数字是一个最简单的办法来证明用户有权利在证书中使用这个组织的名字。在美国本土或其他地方,大多数组织都有D-U-N-S数字。用户可以在www.dnb.com查询他的D-U-N-S数字。如果用户没有D-U-N-S数字,可以免费在线索取一个。请按照图4-6填写D-U-N-S数字:
此主题相关图片如下:
然后,用户用传真将他的权利认证交给Entrust.net。表4-1列出了需要提交给Entrust.net的文件。
此主题相关图片如下:
注意:本文假设移动终端已经配置好,并且可以访问Nokia WAP server。
配置Nokia WAP server有三个主要的步骤:
注意:为了编辑映射,从“Servlet Mapping”窗口选择一个项目,并选择“Edit”按钮。当“New Mapping”对话框出现的时候,就可以编辑映射了。
在流量映射正确建立的情况下,必须在FileServlet中指定证书的文件类型。文件类型(MIME)必须正确配置,使得WAP服务器可以正确地将文件发送给移动设备终端。MIME文件类型就意味着文件中有root证书的内容。
以下的WML卡片例子包括了链接到Entrust.net WAP Root证书。
这个例子假设:
<do type="prev" label="back">
<prev/>
</do>
<p>Import Entrust.net root certificate:<br/>
<small>(requires Nokia 7110/7190)</small><br/>
<small>-<a href="http://myhost/EntrustRoot.cer">CA Root</a></small><br/>
</p>
<p align="right">
<small>? 2000 Entrust Technologies</small>
</p>
</card>
推荐在本地安装Entrust.net WAP Root证书以避免一些安全隐患。
注意:本文假设移动终端已经配置好,并且可以访问Nokia WAP server。
配置Nokia服务器有两个主要步骤:









