第5章应用系统安全基础,word文件太大怎么压缩变小

太大 1
第5章应用系统安全基础 5.1Web安全 5.1.1Web安全威胁 5.1.1.1概念从某种程序上说,没有Web就没有。
然而Web应用程序及Web站点往往很 容易遭受各种各样的入侵,Web数据在网络传输过程中也很容易被窃取或盗用。
因此如何能够使Web及数据传输更加安全,就显得尤为重要。
如今,Web业务平台已经在电子商务、企业信息化中得到广泛应用,很多企业都将应用架设在Web平台上,Web业务的迅速发展也引起了黑客们的强烈关注,他们将注意力从以往对传统网络服务器的攻击逐步转移到了对Web业务的攻击上。
黑客利用网站操作系统的漏洞和WEB服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。
Web威胁的目标定位有多个维度:有个人、公司、还有某种行业,都有其考虑,甚至国家、地区、性别、种族、宗教等也成为发动攻击的原因或动机。
攻击还会采用多种形态,甚至是复合形态,比如病毒、蠕虫、特洛伊、间谍软件、僵尸、网络钓鱼电子邮件、漏洞利用、下载程序、社会工程、rootkit、黑客,结果都可以导致用户信息受到危害,或者导致用户所需的服务被拒绝和劫持。
从其来源说Web威胁还可以分为内部攻击和外部攻击两类。
前者主要来自信任网络,可能是用户执行了未授权访问或是无意中定制了恶意攻击;后者主要是由于网络漏洞被利用或者用户受到恶意程序制定者的专一攻击。
5.1.1.2分类 现在的黑客日益聪明,前一段时间的“艳照门”事件和抗震救灾期间的“救灾视频”,都有黑客们的手脚在里面,他们往往用一些令人感兴趣的东西来吸引受害者,所谓愿者上钩。
殊不知,这些表面的东西往往包含着恶意软件,甚至rootkit程序。
根据赛门铁克的调查,以下这些可谓最具危险性的Web威胁。

(1)可信任站点的漏洞我们都有这样的看法,大的知名网站是相对安全的。
黑客们也知道这一点,他们会 第5章应用系统安全基础 519 想方设法修改这些网站的网页,将用户的浏览器重新导向到其精心打造的恶意站点,这个恶意站点看起来还是非常可信的。
但在用户向其中输入个人信息时,这些站点就会窃取你的信息,有的还会在你的系统上种上点东西(如间谍软件等),或者破坏你的邮件地址簿,肆意传播垃圾邮件等。

(2)浏览器和浏览器插件的漏洞前几天我们看到一些安全专家建议不要使用IE浏览器。
其实其他的浏览器也并非无懈可击,只是漏洞暂时还不太多或者说是攻击者对其关注的程度还不够高而已。
不管哪种浏览器,攻击者都可以利用其漏洞或其插件的漏洞将恶意软件下载并安装到用户计算机上,或者将用户指引到一个恶意站点。

(3)终端用户许多攻击者都是从终端用户下手的。
许多企业面临的威胁主要是由于其针对笔记本电脑、桌面系统、服务器、未受保护的移动设备的安全策略不健全造成的。
如空口令、关闭防火墙等都是具体表现。

(4)可移动的存储设备由于U盘、移动硬盘、MP3、MP4等设备的快速流行和使用,恶意软件也可以轻易地从外部的设备传输到网络系统中。
此外,插到iPod中的插件也可以成为窃取系统数据的重要媒介。

(5)网络钓鱼网络骗子伪造冒似金融网站的虚假站点欺骗消费者。
它们还能够以金融公司作为其伪装,在电子邮件中诱骗消费者输入其个人机密信息。

(6)僵尸网络攻击者通过隐藏的程序控制大量的计算机系统并执行多任务,如发送垃圾邮件和发动拒绝服务攻击等。

(7)键盘记录程序黑客在用户的系统上安装可以记录用户击键的程序,并将记录的结果秘密地通过电子邮件发送到黑客的邮箱。

(8)多重攻击黑客使出“组合拳”,即将多种战术结合在一起(如综合运用键盘记录程序、僵尸网络、钓鱼等手段)来窃取用户的敏感信息。
此外,攻击者还可以通过间谍软件窃取个人的机密信息,并能够通过垃圾邮件传播病毒、间谍软件、木马等。
以上这些威胁并不代表全部,现在的Web威胁日益体现出综合化,并向纵深发展。
以前攻击者主要利用操作系统漏洞,现在对应用软件的漏洞越来越感兴趣;以前的SQL攻击可以检测,现在却越来越难;以前黑客们控制一两台计算机,现在可以通过一个网站攻击其他网站,并感染用户,进而构建僵尸网络,借以发动分布式拒绝服务攻击(DDoS)。
因此任何企业都应当重视防范措施的多样性和多重性,不要依赖单纯的一种 520 信息安全工程师教程 技术。
5.1.2Web威胁防护技术 5.1.2.1WEB访问安全
1.Web访问控制技术访问控制是Web站点安全防范和保护的主要策略,它的主要任务是保证网络资源不 被非法访问者访问。
访问Web站点要进行用户名、用户口令的识别与验证、用户账号的缺省限制检查。
只要其中任何一关未过,该用户便不能进人某站点进行访问。
Web服务器一般提供了如下三种类型的访问控制方法。

(1)通过IP地址、子网或域名来进行控制只有当浏览器的连接请求是从某个IP地址、IP子网或域来的时候,才允许用户访问被保护的某个文档,甚至整个目录。
从其他的未被允许的IP地址、IP子网域发来的请求将被拒绝。
IP地址限制对普通的情况是安全的,但存在隐患。
攻击者可以通过伪造IP地址的方法来逃避访问控制。
另外,也不能保证从已授权的地址的主机上向用户的Web服务器请求连接的用户就是预期的用户。
远程主机也可能已被攻破,而被用来作为前端。
为了安全性考虑,IP地址限制必须与用户身份检查机制结合起来,例如,检查用户名/口令。
通过主机名/域名来限制访问的机制与IP地址限制方法存在着同样的问题,但这种方法还额外地存在着“DNS欺骗”的危险——用户的服务器被欺骗而认为一个信任主机名属于另一个IP地址。
为了减少这种危险,一些服务器可以配置成为每个客户完成额外的DNS解析。
当把到来的请求的IP地址转换成主机名之后,该服务器使用DNS来把主机名再次解析成IP地址,从而禁止该访问请求。
如果服务器运行在防火墙后面,该防火墙有防止和发现IP地址欺骗的功能,那么IP地址限制的方法会更安全。

(2)通过用户名/口令来进行访问控制用户访问认证机制通常使用用户名/口令验证方式。
只有当远程用户知道用户名和对应的口令的时候,才能被访问。
这种使用用户名/口令来限制访问的方法也存在着问题。
口令只有当选择很难猜到的口令时才有效。
很多情况下,用户习惯于选择容易被猜到的口令,例如,用户的名字、生日、办公室电话号码或他们的宠物等等。
这些口令很容易就会被猜到。
而且,WWW服务与UNIX的登录不同,不能控制连接不成功的最大次数,这就更为网络黑客猜取口令提供了可能和方便。
通过一个口令猜取程序,总有一天,会猜出对应的口令来。

(3)通过公钥加密体系PKI-智能认证卡来进行访问控制在操作系统中,可以将智能卡认证和公钥技术结合一起,以提供更强的网络认证手段或作为使用密码的一种替代方式。
它们使得身份标识信息(例如证书)可以被携带,并可以防止被篡改,以及对私钥进行隔离保护。
智能卡本身可以认为是一个具有存储和 第5章应用系统安全基础 521 处理功能的计算机。
将智能卡插入到智能卡阅读器可以使得它能够和某个在计算机上所运行的程序之间进行通信,数据通信的接口一般是USB、RS232或PCMCIA接口。
对于Windows系统的交互式登录,涉及到ActiveDirectoryKerberos协议和公钥证书。
一个使用智能卡交互式登录以某个用户将它的智能卡插入到一个智能卡阅读器中开始,智能卡向Windows2000发信号,提示用户输入自己的个人标识号(PIN.PersonalIdentificationNumber),而不是通常的用户名,登录域名和密码。
将智能卡插入智能阅读器相当在Windows中启动一个基于密码的登录过程。
用户所提供的PIN只能向智能卡,而不是向域本身进行认证。
在智能卡中保存的公钥证书用于向使用了Kerberos协议和相关Pkinit扩展域进行认证,Kerberos协议的Pkinit扩展允许用户使用一个公钥证书而不是密码来进行认证。
在用户输入他的PIN之后,Windows操作系统可以根据用户所提供的两个标识信息——他的智能卡和PIN来确定该用户是否能够通过认证。

2.单点登录(SSO,SingleSign-On)技术
(1)概述随着信息化的迅猛发展,用户每天需要登录到许多不同的信息系统,如网络、邮件、数据库、各种应用服务器等。
每个系统都要求用户遵循一定的安全策略,比如要求输入用户ID和口令。
随着用户需要登录系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。
而如果用户忘记了口令,不能执行任务,就需要请求管理员的帮助,并只能在重新获得口令之前等待,造成了系统和安全管理资源的开销,降低了生产效率。
特别是新系统的涌现,在与已有系统的集成或融合上,特别是针对相同的用户群,会带来以下的问题:①如果每个系统都开发各自的身份认证系统将造成资源的浪费,消耗开发成本,并延缓开发进度;②多个身份认证系统会增加整个系统的管理工作成本;③用户需要记忆多个账户和口令,使用极为不便,同时由于用户口令遗忘而导致的支持费用不断上涨;④无法实现统一认证和授权,多个身份认证系统使安全策略必须逐个在不同的系统内进行设置,因而造成修改策略的进度可能跟不上策略的变化;⑤无法统一分析用户的应用行为;因此,对于有多个业务系统应用需求的政府、企业或机构等,需要配置一套统一的身份认证系统,以实现集中统一的身份认证,并减少整个系统的成本。
单点登录系统的目的就是为这样的应用系统提供集中统一的身份认证,实现“一点登录、多点漫游”的目标,方便用户使用。
广义的“单点登录”包含的范围很广,用户可能访问的系统包括主机系统、Windows程序、Unix系统、Web应用等等。
在这些不同范围的应用程序对安全的实现都有不同的侧重点。
单点登录系统采用基于数字证书的加密和数字签名技术,基于统一的策略的用户身 522 信息安全工程师教程 份认证和授权控制功能,对用户实行集中统一的管理和身份认证,以区别不同的用户和
信息访问者,并作为各应用系统的统一登录入口,同时为通过身份认证的合法用户签发针对各个应用系统的登录票据,从而实现“一点登录、多点漫游”。
必要时,单点登录系统能够与统一权限管理系统实现无缝结合,签发合法用户的权限票据,从而能够使合法用户进入其权限范围内的各应用系统,并完成符合其权限的操作。

(2)单点登录需求从用户的视角看,一个理想的单点登录系统应该具备以下两个特点:①在复杂的企业应用环境中,也不会影响到诸如业务过程,响应效率,网络吞吐量等事情,并将互操作性方面的问题减至最少,任何事情都在顺利工作。
②当一个单点登录系统被加入使用,迁移应该容易。
所有的用户能够立即学会使用这个工具。
从管理员的角度看,一个理想的系统也应该具备以下两个特点:①计算和网络环境在各个方面必须能被管理,而管理应该不引起额外的工作或安全漏洞。
管理过程应该适合组织的结构和政策。
这意味着权利和控制需要有一定的层次结构。
②认证和用法的方法应能在分布式的组织环境中得到全部的贯彻而不用付出额外的努力。
所有的应用程序,无论新旧,可以不需要或只需很少的改动即可适应新的认证方式。

(3)实现难点但是在实际应用中,一些理论上不错的方案却在实际中无法实现,这里总结三个主要的方面:计算环境相关的问题;组织结构的问题和电子身份认证方法的问题。
①与计算环境相关的问题当前计算机环境的主要问题是,很少有系统在进行安全设计的时候参考了那些普遍通用的认证方法。
所以当新的系统实现了自己的认证和访问控制后,与旧有的认证和访问控制机制毫无什么互操作性可言。
在所有的安全解决方案里“信任”是主要的元素。
不幸的是,当前的计算机系统不能被信任。
它们要么有严重的安全漏洞和错误,要么不能经受恶意攻击。
在这些不可靠的部件上运行安全软件,构筑安全的平台,是一个挑战。
另外一个问题是,系统管理员往往对复杂的网络环境中所有的服务和配置缺乏足够的认识。
②与组织结构相关的问题访问授权的规则需要规定哪些资源是个体用户可以或不能访问的。
当用户转移到别的部门,那么他的访问控制的权限也应得到及时的反映。
尤其在一些基于小组进行活动的组织中,工作上的频繁变动时有发生,但是,部门中组与组间的界定,往往是模糊的。
这样当有组织结构上的模糊与计算机环境的繁复相结合时,显然系统安全主管必须应付 第5章应用系统安全基础 523 一个异常复杂的情况。
③与电子身份相关的问题登录到一个系统的基础是电子身份的认证。
基本上每种解决方案都有一些利弊存 在。
传统的方式也是运用最为广泛的是基于口令的认证。
而这种方式的弱点是被猜测和监听。
甚至有很多口令被记在笔记本上或就在计算机附近。
对于口令认证的改进是一次性口令。
顾名思义,仅使用一次性的口令,可以极大地降低监听带来的危险。
电子身份也可以基于智能卡,或加密算法如RSA。
卡和私钥将被口令加密保护。
一旦实施了安全认证,下一个挑战是使每个系统接受一样电子的身份。
为用户产生凭证并且自动地把它传递给所有需要的服务。
这是可能需要实现的最艰巨的部分。

(4)几种常用的单点登录模型自2000年以来,不同厂商推出的单点登录有不同的实现方法和模型结构,下面介绍几种常用的模型:①基于网关的SSO模型如图5-1所示,该模型由三部分组成:支持认证服务的客户端,认证服务器,支持认证服务的应用程序服务器。
其中认证服务器扮演经纪人的角色,所有的认证服务都由它来完成。
基本思想是:所有客户机在访问系统资源之前首先向认证服务器进行身份验证,同样为了提高系统的安全性相互认证的方式。
当用户通过身份验证后,认证服务器返回给用户一个电子身份标识,用户通过该电子身份标识去访问其他的应用服务器,从而实现单点登录。
如果电子身份非法或者过期,则应用服务器会拒绝提供服务。
图5-1基于网关的SSO模型 ②基于验证代理的SSO模型如图5-2所示,在基于代理人的解决方案中,有一个自动地为不同的应用程序认证用户身份的代理程序。
这个代理程序需要设计有不同的功能。
比如,它可以使用口令表或加密密钥来自动地将认证的负担从用户移开。
代理人也被放在服务器上面,在服务器的认证系统和客户端认证方法之间充当一个“翻译”。
524 信息安全工程师教程 图5-2基于验证代理的SSO模型
(3)基于Kerberos的SSO模型Kerberos是标准网络身份认证协议,该协议是由麻省理工学院起草,旨在给计算机网络提供“身份认证”。
它是基于信任第三方,如同一个经纪人集中地进行用户认证和发放电子身份标识。
它提供了在开放型网络中进行身份认证的方法,认证实体可以是用户或用户服务。
这种人为不依赖宿主机的操作系统或主机的IP地址,不需要保证网络上所有的物理安全性,并且假定数据包在传输中可被随机窃取篡改。
在用户初始登录成功后,其密钥和身份标识信息会长期保存在内存中,当以后要申请新的票据(新的应用服务)时,系统会自动提取之,加密后传送出去,整个过程对于用户来说完全是透明的,在不再需要用户输入任何口令的情况下实现用户身份的自动传递。
认证过程如图5-3所示。
图5-3基于Kerberos的SSO模型 第5章应用系统安全基础 525 此模型的技术原理是:采用对称密钥加密算法对信息进行加密,如果用某个用户的密钥加密某一信息,那么只有该用户才能解密。
因此,通过解密也可以证明该用户的合法性(即为密钥的拥有者)。
Kerberos协议中有三个通信参与方,需要认证身份的通信双方和一个双方都信任的第三方KDC(密钥分发中心),将发起认证服务的一方称为客户方,客户方需要访问的对象称为服务器方。
在Kerberos中客户方是通过向服务器方递交自己的“票据”(Ticket)来证明自己的身份的,该票据是由KDC专门为客户方和服务器方在某一阶段内通信而生成的。
Kerberos认证服务器KDC维护着一个数据库,包括所有用户及应用服务器的密钥。
用户的密钥是基于口令的,只存在于KDC上,用户首次注册时,系统根据用户输入的口令经过散列Hash可以生成密钥,应用服务器向KD注册时也会生成密钥,该密钥不仅存在于KDC上,还保存在该服务器所贮的主机上,这些密钥往往是机器随机生成。
用户与应用服务器之间进行通信时,二者之间还共享一个临时会话密钥,可根据需要加密数据。
该密钥在KDC认证用户时产生并分发给通信双方。
会话密钥仅在当前会话期间有效,过期需要重新申请。
5.1.2.2网页防篡改技术 现在从政府到地方,涉及到的办公领域,都有自己的网站。
虽然目前已有防火墙、入侵检测等安全防范手段,但各类Web应用系统的复杂性和多样性导致系统漏洞层出不穷、防不胜防,黑客入侵和篡改页面的事件时有发生。
针对这些情况,网页防篡改系统应运而生。
经过多年的发展,网页防篡改系统采用的技术也在不断地发展和更新,目前市场上常见的网页防篡改技术有以下三种:
1.时间轮询技术时间轮询技术(也可称为“外挂轮询技术”)。
该技术作为一种自动化的技术形式出现,从而摆脱了以人力检测恢复为主体的原始手段。
时间轮询技术是利用一个网页检测程序,以轮询方式读出要监控的网页,与真实网页相比较,来判断网页内容的完整性,对于被篡改的网页进行报警和恢复。
但是,采用时间轮询式的网页防篡改系统,对每个网页来说,轮询扫描存在着时间间隔,一般为数十分钟,在这数十分钟的间隔中,黑客可以攻击系统并使访问者访问到被篡改的网页。
此类应用在过去网页访问量较少,具体网页应用较少的情况下适用,目前网站页面通常少则上百页,检测轮巡时间更长,且占用系统资源较大,该技术逐渐被淘汰。

2.核心内嵌技术+事件触发技术所谓事件触发技术就是利用操作系统的文件系统或驱动程序接口,在网页文件的被修改时进行合法性检查,对于非法操作进行报警和恢复。
所谓核心内嵌技术即密码水印技术。
该技术将篡改检测模块内嵌在Web服务器软件里,它在每一个网页流出时都进行完整性检查,对于篡改网页进行实时访问阻断,并予以报警和恢复。
最初先将网页内容采取非对称加密存放,在外来访问请求时将经过加密 526 信息安全工程师教程 验证过的,进行解密对外发布,若未经过验证,则拒绝对外发布,调用备份网站文件进
行验证解密后对外发布。
此种技术通常要结合事件触发机制对文件的部分属性进行对比,如大小,页面生成时间等做判断,无法更准确地进行其他属性的判断。
其最大的特点就是安全性相对外挂轮巡技术安全性大大提高,但不足是加密计算会占用大量服务器资源,系统反应较慢。
核心内嵌技术避免了时间轮巡技术的轮巡间隔这个缺点。
但是由于这种技术是对每个流出网页都进行完整检查,占用巨大的系统资源,给服务器造成较大负载。
且对网页正常发布流程作了更改,整个网站需要重新架构,增加新的发布服务器替代原先的服务器。

3.文件过滤驱动技术+事件触发技术文件过滤驱动技术的最初应用于军方和保密系统,作为文件保护技术和各类审计技术,甚至被一些狡猾好事者应用于“流氓软件”,该技术可以说是让人喜忧参半。
在网页防篡改技术革新当中,该技术找到了其发展的空间。
其原理是:将篡改监测的核心程序通过微软文件底层驱动技术应用到Web服务器中,通过事件触发方式进行自动监测,对文件夹的所有文件内容,对照其底层文件属性,经过内置散列快速算法,实时进行监测,若发现属性变更,通过非协议方式,纯文件安全拷贝方式将备份路径文件夹内容拷贝到监测文件夹相应文件位置,通过底层文件驱动技术,整个文件复制过程毫秒级,使得公众无法看到被篡改页面,其运行性能和检测实时性都达到最高的水准。
页面防篡改模块采用Web服务器底层文件过滤驱动级保护技术,与操作系统紧密结合,所监测的文件类型不限,可以是一个HTML文件也可以是一段动态代码,执行准确率高。
这样做不仅完全杜绝了轮询扫描式页面防篡改软件的扫描间隔中被篡改内容被用户访问的可能,其所消耗的内存和CPU占用率也远远低于文件轮询扫描式或核心内嵌式的同类软件。
可以说是一种简单、高效、安全性又极高的一种防篡改技术。
5.1.2.3WEB内容安全当安全威胁打通了内容“经脉”,企业面临的不仅是病毒散播、恶意攻击等安全问题,而是企业内部重要信息的泄密与丢失。
内容安全的管理必须依靠三大技术支撑,即电子邮件过滤、网页过滤、反间谍软件。
内容安全管理技术能够监控和管理人们对互联网资源的访问以及相互之间的电子邮件通信,涉及范围广泛。
内容安全管理技术可以细分为电子邮件过滤、网页过滤、反间谍软件三大技术,这三大技术不仅对内容安全市场发展起到决定性推动作用,而且对于互联网的安全起到至关重要的保障作用。

1.电子邮件过滤技术对企业而言,电子邮件过滤系统作为一项满足管理需求的重要手段,已成为网络监控、管理的必选项。
电子邮件过滤能够确保企业最佳生产效率,降低网络、邮件服务器和存储环境被垃 第5章应用系统安全基础 527 圾、恶意邮件充斥的可能性,防止以财务获取为目的病毒攻击。
此外,电子邮件使用者不仅能向IT系统传播病毒、散布垃圾邮件,还能在有意识或无意识的情况下,将公司的知识产权内容以及违背隐私、贸易惯例和公司规则的信息内容通过电子邮件的形式发送给竞争对手或无意接收这些信息的人,电子邮件过滤能够使企业规避这种法律风险。
可以预见,未来电子邮件过滤技术将会融入更多综合信息安全内容。
一方面,反垃圾邮件将继续成为网络安全解决方案中的重要组成部分;另一方面,内容过滤工具会更多地被应用于过滤向外发送的沟通请求,以对政策执行、法规遵从和不良内容进行更好控制。

2.网页过滤技术从发展初期的单纯以预防员工访问与工作无关的网页地址而影响工作效率为目的,网页过滤已经发展成为了能够满足全球商业网络的复杂安全需求的综合过滤解决方案。
当前的网页过滤解决方案能够提供更成熟的架构和更细化的分类,且过滤的选项也不是简单的“同意”或“拒绝”。
随着企业架构式发展,商业网络日益复杂化,下一代网页过滤解决方案的设计,必须能够解决企业所面对的一系列网络干扰和挑战。
这些问题包括:日益增多的网络病毒、恶意代码及“惩罚性攻击”;符合用户习惯的流媒体、即时消息及端到端等协议;未经授权使用的免费或共享软件等。

3.反间谍软件目前,间谍软件已成为影响企业运营安全的巨大隐患。
无论合法还是非合法间谍软件都能隐蔽安装的可执行程序,对个人和企业进行监视,并向其控制者发送所得信息。
表面上看,间谍软件也许只表现为自动弹出广告框,但实际上它能够跟踪用户在线行为,监视用户一切点击、按键行为,通过电子邮件内容盗取、硬盘文档扫描及改变系统和登记注册设置等行为使得用户身份被破解、数据遭损坏、甚至企业机密交易信息丢失,祸害企业整个网络。
从系统管理员的角度来说,间谍软件会造成系统速度下降,增加沟通成本。
从企业角度看,间谍软件能够在轻微网络堵塞的伪装下轻易穿透企业防火墙。
一旦在企业内网中隐藏下来,间谍软件就开始为实现它的创建目的而活动起来,将所有敏感信息传回给其制造者,为系统管理带来负担。
针对反间谍软件危害性,应从三方面加以防范。
一是预防,阻止间谍软件程序进入计算机系统;二是设置障碍,在下载程序中设置障碍并防止它们向外发送信息;三是杀毒:清除系统中所有的间谍软件,不过这是一项艰巨工作。
由于很多间谍软件与免费程序捆绑在一起,这些免费程序在失去间谍软件部分后也许就无法再运行。
因此简单地卸载程序并不能解决这个问题。
要将间谍软件彻底地从系统中删除,需要对它的特质、依存的环境和应用关系有深入的了解。
528 信息安全工程师教程 5.2电子商务安全 5.2.1电子商务安全概论 5.2.1.1概念、特点电子商务的一个重要技术特征是利用IT技术来传输和处理商业信息。
因此,电子商 务安全从整体上可分为两大部分:网络安全和商务交易安全。
网络安全的内容包括:网络设备安全、网络系统安全、数据库安全等。
其特征是针 对网络本身可能存在的安全问题,实施网络安全增强方案,以保证网络自身的安全为目标。
商务交易安全则紧紧围绕传统商务在互联网络上应用时产生的各种安全问题,在网 络安全的基础上,保障以电子交易和电子支付为核心的电子商务过程的顺利进行。
即实现电子商务的保密性、完整性、可认证性、不可拒绝性、不可伪造性和不可抵赖性。
网络安全与商务交易安全实际上是密不可分的,两者相辅相成,缺一不可。
没有网络安全作为基础,商务交易安全就犹如空中楼阁,无从谈起。
没有商务交易安全保障,即使网络本身再安全,仍然无法达到电子商务所特有的安全要求。
电子商务安全是以网络安全为基础的。
但是,电子商务安全与网络安全又是有区别的。
首先,网络不可能绝对安全,在这种情况下,还需要运行安全的电子商务。
其次,即使网络绝对安全,也不能保障电子商务的安全。
电子商务安全除了基础要求之外,还有特殊要求。
电子商务安全具有如下四大特性:
(1)电子商务安全是一个系统概念电子商务安全问题不仅仅是个技术性的问题,更重要的是管理问题,而且它还与社会道德、行业管理以及人们的行为模式都紧密地联系在一起。

(2)电子商务安全是相对的安全是相对的,而不是绝对的,要想以后的网站永远不受攻击、不出安全问题是不可能的。

(3)电子商务安全是有代价的对于电子商务的具体应用,如果不直接牵涉到支付等敏感问题,对安全的要求就可以低一些;如果牵涉到支付问题,对安全的要求就要高一些,所以安全是有成本和代价的。
作为一个经营者,应该综合考虑这些因素;作为安全技术的提供者,在研发技术时也要考虑到这些因素。

(4)电子商务安全是发展的、动态的今天安全,明天就不一定安全,因为网络的攻防是此消彼长、道高一尺魔高一丈的 第5章应用系统安全基础 529 事情,尤其是安全技术,它的敏感性、竞争性以及对抗性很强,需要不断地检查、评估和调整相应的安全策略。
没有一劳永逸的安全,也没有一蹴而就的安全。
5.2.1.2安全需求 由于本身的开放性以及目前网络技术发展的局限性,使网上交易面临着种种安全性威胁,也由此提出了相应的安全控制要求。

(1)交易实体身份可认证性需求认证性(Authentication)是指网络两端的使用者在沟通之前互相确认对方的身份。
在进行网上交易时,如果不采取任何新的保护措施,容易引起假冒、诈骗等违法活动。
例如,在进行网上购物时,对于客户来说,需要确认商家的身份;同样,对于商家来说,也需要确认客户的身份。
因此,电子交易的首要安全需求就是要保证身份的可认证性。
这就意味着,在双方进行交易前,首先要能确认对方的身份,要求交易双方的身份不能被假冒或伪装。

(2)信息保密性的需求保密性(Confidentiality)是指信息在传送或存储的过程中不被他人窃取、不被泄露或披露给未经授权的人或组织,或者经过加密伪装后,使未经授权者无法了解其内容。
电子商务是建立在一个开放的网络环境下,当交易双方交换信息时,如果不采取适当的保密措施,那么其他人就有可能知道他们的通信内容;另外,存储在网络的文件信息如果不加密的话,也有可能被黑客窃取。
因此,电子商务另一个重要的安全需求就是信息的保密性。
这意味着,一定要对敏感重要的商业信息进行加密,即使别人截获或窃取了数据,也无法识别信息的真实内容,这样就可以使商业机密信息难以被泄露。

(3)信息完整性的需求完整性(Integrity)是指保护数据不被未经授权者修改、建立、嵌入、删除、重复传送或者由于其他原因使原始数据被更改。
因此,保证信息的完整性也是电子商务活动中的一个重要的安全需求。
这意味着,交易各方能够验证收到的信息是否完整,即信息是否被人篡改过,或者在数据传输过程中是否出现信息丢失、信息重复等差错。

(4)交易信息的不可抵赖性需求不可抵赖性又叫不可否认性(Non-repudiation),是指信息的发送方不能否认已经发送的信息,接收方不能否认已经收到的信息,只是一种法律有效性要求。
在无纸化的电子交易中,不可能再通过传统的手写签名和印章来预防抵赖行为的发生。
因此,必须采用新的技术,防止电子商务中的抵赖行为。
因此,保证交易过程中的不可抵赖性也是电子商务安全需求中的一个重要方面。
这意味着,在电子交易通信过程的各个环节中都必须是不可否认的,即交易一旦达成,发送方不能否认它发送的信息,接收方则不能否认它所收到的信息。
530 信息安全工程师教程
(5)商务服务的有效性需求商务服务的有效性或可用性,是保证授权用户在正常访问信息和资源时不被拒绝,即保证为用户提供稳定的服务。
保证电子形式的贸易信息的有效性是展开电子商务的前提。
电子商务作为贸易的一种形式,其信息的有效性将直接关系到个人、企业或国家的经济利益和声誉。
因此,要对网络故障、操作错误、应用程序错误、硬件故障、系统软件错误及病毒所产生的潜在威胁加以控制和预防,以保证不受到“延迟”服务的威胁或“拒绝服务”的威胁。

(6)访问控制性需求访问控制性(essControl)是指在网络上限制和控制通信链路对主机系统和应用的访问。
用于保护计算机系统的资源(信息、计算和通信资源)不被未经授权的人或未授权的方式接入、使用、修改、破坏、发出指令或植入程序等。
简而言之,电子商务要安全地展开,以上几个最基本的安全要素必须实现。
也就是说,数据和信息的隐私必须受到保护,交易者身份必须得到认证,并且具有可认证性,未被授权的进入应该进行控制和拒绝。
5.2.2电子商务的安全认证体系 随着计算机技术的发展和社会的进步,通过网络进行的电子商务活动在当今社会越来越频繁,身份认证是一个不得不解决的重要问题,它将直接关系到电子商务活动能否高效而有序地进行。
现认证技术提供了关于某个人或某个事物身份的保证,这意味着当某人(或某事)声称具有一个特别的身份(如某个特定的用户名称)时,认证技术将提供某种方法来证实这一声明是正确的。
一般方法是输入个人信息,经特定的公式和算法运算所得的结果与从数据库中存取的信息经公式和算法运算所得结果进行比较,得出结论。

1.身份认证技术身份认证过程指的是当用户试图访问资源的时候,系统确定用户的身份是否真实的过程。
认证对所有需要安全的服务来说是至关重要的,因为认证是访问控制执行的前提,是判断用户是否有权访问信息的先决条件,同时也为日后追究责任提供不可抵赖的证据。
通常可以根据以下5种信息进行认证:①用户所知道的。
如密码认证过程PAP(PasswordAuthenticationProcedure)。
当用户和服务器建立连接后,服务器根据用户输入的ID和密码决定是满足用户请求,还是中断请求,或是再提供一次机会给用户重新输入。
②用户所拥有的。
常见的有基于智能卡的认证系统,智能卡即是用户所拥有的标志。
用该身份卡系统可以判断用户的ID。
从而知道用户是否合法。
③用户本身的特征。
这个指的是用户的一些生物学上的属性,如指纹,虹膜特征等。
因为模仿这些特征比较难,并且不能转让,所以根据这些信息,就可以识别用户。
第5章应用系统安全基础 531 ④根据特定地点(或特定时间)。
Bellcore的S/KEY一次一密系统所用到的认证方法可以作为一个例子。
用户登录的时候,用自己的密码s和一个难计算的单项哈希函数f,计算出p0fN(s)作为第一次的密钥,以后第i次的密钥为pifNi(s)。
这个密钥跟特定时间有关,及跟用户的认证次数i有关系。
⑤通过信任的第三方。
典型的为Kerberos认证。
在Kerberos认证中,信任的第三方包括认证服务器AS和票据分发服务器TGS,每一个用户与AS共享一个用户密钥。
由AS对用户进行认证并颁发访问TGS票据。
用户拿到票据后就可以到服务器进行认证。
认证在一个安全系统中起着至关重要的作用,认证技术决定了系统的安全程度。
如何评价某一认证技术,可以遵循以下几个标准:
(1)可行性从用户的观点看,认证方法应该提高用户访问应用的效率,减少多余的交互认证过程,提供一次性认证。
另外所有用户可访问的资源应该提供友好的界面给用户访问。

(2)认证强度认证强度取决于采用的算法的复杂度以及密钥的长度,采用越复杂的算法,越长的密钥,将能提高系统的认证强度,提高系统的安全性。

(3)认证粒度身份认证只决定是否允许用户进入服务应用。
之后如何控制用户访问的内容,以及控制的粒度也是认证系统的重要标志。
有些认证系统仅限于判断用户是否具有合法身份,有些则按权限等级划分成几个密级,严格控制用户按照自己所属的密级访问。

(4)认证数据正确消息的接收者能够验证消息的合法性、真实性和完整性,而消息的发送者对所发的消息不可抵赖。
除了合法的消息发送者外,任何其他人不能伪造合法的消息。
当通信双方(或多方)发生争执时,有公正权威的第三方解决纠纷。

(5)不同协议间的适应性认证系统应该对所有协议的应用进行有效的身份识别,除了HTTP,安全Email访问也是企业内部所要求的一个安全控制,其中包括认证SMTP、POP或者IMAP。
这些也应该包含在认证系统中。

2.数字证书技术电子商务涉及加解密,而加解密必然用到密钥。
从密钥管理工作来说,怎样将用户的密钥安全地分发到用户端?系统可以处理多少密钥?用户是否需要了解密钥管理?密钥丢失后怎么办?密钥失效后怎么办等问题很自然就被提出来了。
密钥的管理对策是采用数字证书。
所谓数字证书就是在互联网通信中标志通信各方身份信息的一系列数据,提供了一种在上验证用户身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。
它是由一个由权威机构——CA机构,又称为证书授权(CertificateAuthority)中心发行的,人们可以在网上用它来识别彼此的身份。
532 信息安全工程师教程 CA机构,又称为证书授权(CertificateAuthority)中心,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。
CA机构的数字签名使得攻击者不能伪造和篡改证书。
它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。
每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。
当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。
通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。
数字证书与传输密钥和签名密钥对的产生相对应。
对每一个公钥做一张数字证书,私钥用最安全的方式交给用户或用户自己生产密钥对。
数字证书的内容包括用户的公钥、用户姓名、发证机构的数字签名及用户的其他一些身份认证的有用信息。
公钥的拥有者是身份的象征。
对方可以据此验证身份。
对于密钥的丢失情况、则采用恢复密钥、密切托管等方法。
另外对于证书的有效期在政策上加以规定、已过期的证书应重新签发,对于私钥丢失或被非法使用应废止。
在公开密钥密码体制中,常用的一种是RSA体制。
其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。
即使已知明文、密文和加密密钥(公开密钥),想要推导出解密密钥(私密密钥),在计算上是不可能的。
按现在的计算机技术水平,要破解目前采用的1024位RSA密钥,需要上千年的计算时间。
公开密钥技术解决了密钥发布的管理问题,商户可以公开其公开密钥,而保留其私有密钥。
购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送给商户,然后由商户用自己的私有密钥进行解密。
5.2.3电子商务的安全服务协议 迄今为止,国内外已经出现了多种电子支付协议,目前有两种安全在线支付协议被广泛采用,分别为安全电子交易协议(SecureElectronicTransaction,SET)和安全套接层协议(SecureSocketLayer,SSL),二者均是成熟和实用的安全协议。
5.2.3.1SET协议 在开放的网络上如何保证交易安全、可靠地进行,成为影响电子商务能否普及的最重要的因素之
一。
SET正是在这种背景下应运而生的,它针对开放网络上安全、有效的银行卡交易,为上卡支付交易提供高层的安全和反欺诈保证。

1.SET协议简介在上开发对所有公众开放的电子商务系统,从技术角度讲,关键的技术问 第5章应用系统安全基础 533 题有两个:一是信息传递的准确性;二是信息传递的安全可靠性。
前者是各种数据交换协议已经解决了的问题,后者则是目前学术界、工商界和消费者最为关注的问题。
为此,西方学者和企业界在这方面投入了大量的人力和物力。
VISA和MasterCard以及其他一些业界的主流厂商通过多年的研究,于1996年提出了SET(安全电子交易)协议,并在1997年5月正式发布了SET1.0标准。
这个标准自推出之后,得到了IBM、Netscape、Microsoft、Oracle等众多厂商的支持。
SET协议是应用层的协议,是一种基于消息流的协议,它是面向B2C(BusinesstoConsumer,企业对消费者)模式的,完全针对信用卡来制定,涵盖了信用卡在电子商务交易中的交易协议信息保密、资料完整等各个方面。
在SET协议中主要定义了以下内容:加密算法的应用;证书消息和对象格式;购买消息和对象格式;请款消息和对象格式;参与者之间的消息协议。
SET协议确保了网上交易所要求的保密性、数据的完整性、交易的不可否认性和交易的身份认证。
SET协议主要使用的技术包括:对称密钥加密、公钥加密、Hash算法、数字签名、数字信封以及数字证书等技术。
SET通过使用公钥和对称密钥方式加密,以保证数据的保密性;通过使用数字签名、Hash算法和数字证书实现交易各方的身份认证、数据的完整性和交易的不可否认性。

2.SET协议的功能和实现的目标SET协议是一个基于可信的第三方认证中心的方案,其主要的实现目标是:保证电子商务参与者信息的相互隔离。
持卡人的资料加密或打包后到达银行,商 家看不到持卡人的账户和密码信息,银行看不到持卡人的购物信息。
保证信息在上安全传输,防止数据被黑客或被内部人员窃取。
解决多方认证问题,不仅要对消费者的信用卡认证,而且要对在线商店的信誉程 度认证,同时还有消费者、在线商店与银行间的认证,保证付款的安全。
保证网上交易的实时性,使所有的支付过程都是在线的。
提供一个开放式的标准、规范协议和消息格式,促使不同厂家开发的软件具有兼 容性和互操作功能,并且可运行在不同的硬件和操作系统平台上。

3.SET交易的参与方介绍SET改变了支付系统中各个参与者之间交互的方式。
在面对面的零售交易或邮购交易中,电子处理过程始于商家或付款银行;而在SET交易中,电子支付始于持卡人。
SET交易的参与方包括持卡人、发卡机构、商家、收单银行、支付网关和数字证书认证中心CA。
534 信息安全工程师教程
(1)持卡人在电子商务环境中,消费者和团体购买者通过计算机与商家交流,持卡人通过由发卡机构颁发的付款卡(如信用卡、借记卡)进行结算。
在持卡人和商家的会话中,SET可以保证持卡人的个人账号信息不被泄漏。

(2)发卡机构它是一个金融机构,为每一个建立了账户的顾客颁发付款卡,发卡机构根据不同品牌卡的规定和政策,保证对每一笔认证交易的付款。

(3)商家它提供商品或服务,接受卡支付的商家必须和银行有关系。

(4)收单银行在线交易的商家在银行开立账号并且处理支付卡的认证和支付。

(5)支付网关支付网关是由银行操作的将上的传输数据转换为金融机构内部数据的设备,或由指派的第三方处理商家支付信息和顾客的支付指令。

(6)数字证书认证中心(CertificateAuthority,CA)它的主要上作是负责SET交易数字证书的发放、更新、废除、建立证书黑名单等各种证书管理。

4.SET规范和采用的外部标准
(1)SET技术规范SET协议分为三个部分:商业描述(TheBusinessDescription)。
提供处理的总述。
程序员指导(TheProgrammer’sGuide)。
介绍数据区、消息以及处理流程,分为 系统设计考虑、证书管理、支付系统。
正式的协议定义(TheFormalProtocolDefinition)。
提供SET消息和数据区最严 格的定义,协议定义采用ASN.1语法进行。

(2)SET扩展规范在SET原来的规范中没有提供其他的商业功能,这些商业功能是通过SET扩展来提供,截至2000年3月,已经公布了以下批准的扩展:CVV2/CVC2扩展(TheCVV2/CVC2extension)。
允许购买请求信息携带附加的 卡验证数据。
通用密码产生器扩展(TheGenericCryptogramextensions)。
允许信息从一个硬件 标记(hardwaretoken)得到,并包含在持卡人产生的支付指令中。
日本支付选项扩展(TheJapanesePaymentOptionextension)。
允许持卡人和商家 交互特殊信息,这些信息和日本国内特定交易相关的支付选项有关。
商家开始非SET交易的授权扩展(TheMerchantInitiatedAuthorizationextension)。
第5章应用系统安全基础 535 允许一个商家使用SET消息来为特定订购进行授权和请款,这些订购是由持卡人采用非SET的传输方式完成的。
在线个人识别号扩展(TheOnlinePINextensions)。
允许个人标识码PIN和相关信息包含在持卡人产生的支付指令中。
通用IC卡扩展(TheCommonChipextension)。
在购买请求消息中,为传输IC卡中的数据提供一种方式。

(3)SET采用的外部标准SET的设计是基于各种工业、和国际组织的标准,这些标准定义在ISO、IEFT、PKCS、ASN.1中,如下阐述SET支持的这些标准、算法、证书支持。
ASN.1。
ASN.1(AbstractSyntaxNotation)是SET用于定义消息的符号。
DER。
DER(DistinguishedEncodingRules)以明确清楚的形式,实现支付消息和证书中的协议数据的编码。
DES。
DES(DataEncryptionStandard)数据加密标准用于对称数据加密,DES密钥采用一个加密形式来分发,该加密形式是一个采用公钥加密的数字信封。
HMAC。
HMAC是指密钥Hash机制(Keyed-hashingmechanism),用于共享密钥的功能。
HTTP。
HTTP是WorldWideWeb的传输协议,在RFC1945中定义。
MIME。
MIME用于支付消息的封装编码,使浏览器支持和识别支付消息,也能够支持电子邮件方式的商务。
PKCS。
PKCS用于定义密码消息语法(PKCS#7)和证书请求语法(PKCS#10)。
SHA-
1。
单向杂凑函数,SET的所有数字签名都采用SHA-
1。
TCP/IP。
TCP/IP是支持通信的协议集。
X.509。
公开证书的编码标准,SET支持的证书格式定义在ISO标准X.509版本3中。

5.SET的加密技术和认证技术SET协议是一种电子支付系统的安全协议,因此它涉及加密、认证等多种技术。

(1)加密技术加密技术是SET协议中的核心技术,在SET中使用的主要包括对称加密、非对称加密、数字签名、消息摘要、数字信封、双重签名等。
通过这些加密技术的使用,为电子交易的过程提供了身份的认证、交易信息的完整性、信息的机密性和交易的不可否认性。

(2)认证技术网上交易的买卖双方在进行每一笔交易时,为了保证交易的可靠性,买方和卖方都要鉴别对方的身份。
交易双方可以通过,在一些网站上获取对方的公开密钥,这种办法虽然有效可行,但这种方式获取的公开密钥不可靠,必须要对这些密钥进行验证。
536 信息安全工程师教程 例如,甲方不能简单地在上向乙方询问他的公开密钥,因为在网络上可能存在居心叵测的第三者,他很有可能截获甲方请求,并发送他自己的公开密钥,借以阅读甲方传送给乙方的所有消息,并有可能假借乙方的名义欺骗、攻击甲方。
因此,需要一个可靠的第三方来验证公钥确实属于乙方,这样的第三方就被称为认证机构(简称CA)。
通过认证机构来认证交易双方身份的合法性,是保证电子支付系统安全的重要措施。
CA的主要功能有:接收注册请求处理、批准/拒绝请求、发行证书。
处理流程中,可能采取一个服务器设备来提供CA功能,或使用多个服务器来发行和处理请求。
认证技术具体涉及以下一些内容:①证书信息在做交易时,买方在向卖方发送购物信息的同时,还应向对方提交一个由CA签发的包含个人身份的证书,以使对方相信自己的合法身份。
顾客向CA申请证书时,可提交自己的驾驶执照、身份证或护照,经认证机构验证后,向顾客颁发证书,证书包含了顾客的名字和他的公钥,以此作为网上证明顾客合法身份的依据。
在SET中,最主要的证书是持卡人证书和商家证书。
持卡人证书实际上是支付卡的一种电子化的表示,它是由金融机构以数字化形式签发的,因此不能随意改变。
持卡人证书并不包括账号和终止日期信息这样的敏感信息,而是用单向Hash算法,根据账号、截止日期生成的一个代码。
如果知道账号、截止日期和密码值,即可导出这个代码。
商家证书与持卡人证书的内容基本一样,其作用表示在商家这里都可以用哪些品牌的卡来结算。
它也是由金融机构签发的,不能被第三方改变。
在SET环境中,与一个银行打交道,一个商家至少应有一对证书。
一个商家也可以有多对证书,表示它与多个银行有合作关系,可以接受多种付款方法。
除了持卡人证书和商家证书以外,还有支付网关证书、银行证书和发卡机构证书等。
持卡人证书持卡人证书表明持卡人拥有的支付卡是合法的,它是由权威的金融机构数字签署的,不能由其他非法第三方产生。
持卡人证书不包括账号和过期日期,代替账户信息的是仅仅由持卡人软件知道和使用单向Hash算法产生的一个秘密值。
如果知道账号和过期日期以及该Hash值(数字指纹),可以验证对应的证书。
但是不能从证书中直接得到这些敏感信息。
在SET协议中,持卡人向支付网关提供用于验证的账户信息和该Hash值。
只有当持卡人的发卡金融机构验证用户后,才向持卡人发布一个证书。
交易过程中,持卡人证书和加密的支付指示发向商家,商家收到持卡人证书,能够最低限度验证该持卡人的证书是由一个权威金融机构发行的,并且是可靠有效的。
商家证书商家证书与持卡人证书基本一样,也是由商家的权威的金融机构数字签署的,商家证书不能由其他第三方非法发行,它表示商家能够接收该支付卡的消费。
这些证书由收单行金融机构认证,说明商家与收单行达成协议。
在SET协议中,对应于每个支付卡品 第5章应用系统安全基础 537 牌,一个商家都拥有一个证书。
一个商家至少拥有一个证书,也可以有多个证书。
支付网关证书支付网关证书由收单行或收单行的处理系统拥有,持卡人从支付网关证书得到公钥 来加密保护持卡人的账户信息,保证只有收单行才能看到持卡人的账户信息。
支付网关证书由支付卡品牌的收单行发行。
收单行证书一个收单银行必须拥有证书,才能使一个CA接收和处理商家从公共和专用网络发出的证书请求。
发卡行证书一个发卡银行必须拥有证书,CA才能接收和处理来自持卡人的证书请求(通过公共或专用网络),那些选择支付卡品牌来代理处理证书请求的发卡行不需要证书。
②证书的发行SET证书通过一个信任层次来验证,每个证书连接一个实体的数字签名的签名证书,沿着信任树到一个众所周知的信任机构,用户可以保证该证书是有效的。
例如,一个持卡人证书连接一个发卡行的证书(或代表发卡行的品牌),发卡行证书通过品牌证书连接一个根证书。
所有SET软件知道根证书的公用签名密钥,可用于验证每个证书。
根密钥(Rootkey)由根CA自己签名来发布,该根密钥证书由软件开发商插入他们的软件中。
软件通过向CA发出一个初始化请求(包括根证书的Hash值),可以确定一个密钥的有效性。
如果软件没有一个有效的根证书,CA将在响应中发出一个根密钥。
当根证书产生后,一个替代密钥也产生了,替代密钥将被安全保存直到需要使用,替代密钥的Hash值和自签名的根证书是同时发行的。
软件将通过包括一个替代根密钥的自签名证书和下一个替代根密钥的Hash值的消息来指明替代者。
软件通过计算它的Hash值与包括在根证书中的替代密钥的Hash值相比较,来确认替代根证书的有效性。
③认证信息和验证结构在应用认证技术时,要涉及到认证信息和验证结构。
认证信息在SET中,交易双方的身份必须要验证,CA是提供身份验证的第三方机构,由一个或多个用户信任的组织实体组成。
例如,持卡人要向商家发送购物信息时,可以从公开媒体上获取商家的公开密钥,但持卡人无法确定这是否真是商家的公开密钥以及它的信誉度是多少。
于是持卡人需要向CA请求对商家进行认证。
CA通过对商家发送给持卡人的证书进行调查、验证和鉴别后,将权威机构发送的包含商家公钥的证书传给持卡人。
同样,商家也可对持卡人进行验证。
证书一般包含拥有者的标识名称和公钥,并且由CA进行过数字签名。
在实际运作中,CA可由大家都信任的一方担当。
例如,在客户、商家、银行三角关系中,客户使用的是由某个银行发的卡,而商家又与此银行有业务关系(有账号)。
在此情况下,客户和商家都信任该银行,可由该银行担当CA角色。
538 信息安全工程师教程 又例如,对商家自己发行的购物卡,则可由商家自己担当CA角色。
证书的树形验证结构在通信时,交易双方可以通过出示由某个CA签发的证书来证明自己的身份。
如果 对签发证书的CA本身不信任,则可验证CA的身份,依次类推,一直到公认的权威CA处,就可确信证书的有效性。
SET证书正是通过信任层次来逐级验证的,其结构如图5-4所示。
沿着信任树一直到一个公认的信任组织,就可确认该证书是有效的,每一个证书与一个数字化签发证书的实体的签名证书相关联。
例如,C的证书是由名称为B的CA签发的,而B的证书又是由名称为A的CA签发的,A是权威的机构,通常称为根(Root)CA。
验证到了RootCA处,就可确信C的证书是合法的。
在网上购物过程中,持卡人的证书与发卡机构的证书关联,而发卡机构的证书通过不同品牌卡的证书连接到RootCA,而RootCA的公共签名密钥对所有的SET软件都是已知的,因而可以校验每一个证书。
根证书机构 分支证书机构 持卡人证书机构 商家证书机构 支付证书机构 持卡人 商家 支付网关 图5-4证书管理方案的体系框架
6.SET证书管理及处理流程
(1)SET协议分析①SET协议安全性分析为了满足在和其他网络上信用卡安全支付的要求,SET协议主要是通过使用密码技术和数字证书方式来保证信息的机密性和安全性,它实现了电子交易的机密性、数据完整性、身份的合法性和不可否认性。
机密性(Confidentislity)SET支付环境中信息的机密性是通过使用混合加密算法(即公钥加密算法和对称加密算法相结合)来加密支付信息而获得的。
一般的做法是,用公钥加密算法来加密包含一个短密钥的真实信息,该短密钥是通过公钥——私钥密钥对秘密发布的。
SET中采用的公钥加密算法是RSA的公钥密码体制,私钥加密算法采用的是DES数据加密标准, 第5章应用系统安全基础 539 消息首先以56位DES密钥加密,然后装入使用1024位RSA公钥加密的数字信封在通信双方传输。
56位DES密钥是使用消息接收者的公钥加密后附在加密的消息中的。
消息接收者很容易用自己的私钥解密来提取出加密的DES密钥,然后使用DES密钥完成消息块的解密过程。
这种混合加密技术在SET中被形象地称为数字信封(DigitalEnvelope),RSA加密相当于用信封密封。
数据完整性(DataIntegrity)SET协议使用数字签名来保证数据的完整性。
SET使用安全Hash算法(SecureHashAlgorithrn,SHA-1)的RSA数字签名,SHA-1对于任意长度的消息都生成一个160位的消息摘要。
如果消息中有一位发生变化,那么消息摘要中会大约有10位数据发生变化,两个不同消息的摘要完全相同的概率是l0%~48%。
Hash函数的单向性也使得从消息摘要得出消息原文在计算上是不可行的,消息摘要的这些特征事实上可以消除修改消息一消息摘要对而不被发现的可能性。
SET协议中还使用双重签名来保证信息的完整性。
双重签名的目的是连接两个不同接收方的两条信息,如发送给商家的订购信息OI和发送给银行的支付信息PI。
其中,商家不可以知道客户的信息卡信息,银行不需要知道客户的订购信息细节。
用户用一个签名操作来数字签名两个信息,实现一个双重签名。
一个双重签名是通过计算两个消息摘要产生的,并将两个摘要连接在一起形成一个总摘要,用户的私有签名密钥加密摘要。
每个消息的接收者取出自己能够看到的消息,重新生成消息摘要来验证消息。
身份验证(VerificationofIdentity)SET使用基于X.509的PKI,通过数字证书和RSA来达到对持卡人账户、商家、支付网关以及银行的认证。
SET是一个基于可信的第三方认证中心的方案,CA在SET中扮演了很重要的角色,证书是核心。
SET标准提供了通过认证中心对证书加以认证的简单方法来确保进行电子交易的各方能够互相信任。
在SET协议中,有持卡人证书、特约商店证书、支付网关证书、收单银行证书和发单银行证书。
在SET中,每个用户(A)至少要有两对密钥:一对签名密钥Spv(A)、Spb(A)和一对加密密钥Epv(A)、Epb(A),每对密钥都有相应的数字证书CertS(A)和CertE(A)。
签名密钥由用户自己保管,加密密钥对要由CA进行托管。
不可否认性(Non-repudiationofDisputedcharges)SET协议中数字证书的发布过程也包含了商家和客户在交易中存在的信息。
因此,如果客户用SET发出了一个商品的订单,在收到货物后,他不能否认发出这个订单,同样,商家以后也不能否认收到过这个订单。
②SET协议性能分析可以看出,SET使用了各种密码技术,构建了完善的认证体系,定义了完备的电子交易流程。
它较好地解决了电子交易各方之间的、复杂的信任关系和安全连接,确保了电子交易所要求的保密性、数据完整性、身份认证性和不可否认性等安全需求。
540 信息安全工程师教程 SET是专为网上卡支付而建立的协议,为电子支付提供了足够的安全性,它具有许多优点: SET对商家提供了保护自己的手段,使商家免受欺诈的困扰,并使商家的运营成本降低; 对消费者而言,SET保证了商家的合法性,并且用户的信用卡号不会被窃取,SET替消费者保护了更多的秘密使其在线购物更加轻松放心; SET帮助银行和发卡机构将业务扩展到这个广阔的空间中,使得信用卡网上支付具有更低的欺诈概率,因此比其他支付方式具有更大的竞争力; SET对于参与交易的各方定义了互操作接口,一个系统可以由不同厂商的产品构筑。
与此同时,SET协议庞大而又复杂,在一个典型的SET交易过程中,需验证数字证书9次,验证数字签名6次,传送证书7次,进行5次签名,4次对称加密和4次非对称加密。
SET涉及的实体较多,客户、商家和银行都需要改造系统才能实现互操作,使用相当麻烦。
由于SET要求在银行网络、商家服务器、顾客PC上安装相应软件,并向各方发放证书,其使用费用非常昂贵。
另外SET交易模式只能用于B2C(BusinesstoConsumer,企业与消费者之间的电子商务)模式,不能用于B2B(BusinesstoBusiness,企业间的电子商务)模式,而且它在B2C模式中也十分受限,只能应用于一些受约束的卡支付业务。
因此,虽然SET在电子支付中得到了广泛的应用,受到电子商务推动者的高度重视,但它也有下面一些局限: SET报文消息太复杂。
SET定义了支付过程的报文消息及数据,由于其规范的目标是全球使用,考虑的因素很多主要是美国的支付方式,而对其他国家来讲报文消息显得过于复杂,造成SET应用软件设计复杂,价格高,影响了SET的普及。
SET涉及的实体较多。
要实现SET支付,客户、商家、支付网关必须同时支持SET,因而各方建设和协调的困难造成互操作性差。
SET没有解决交易中证据的生成和保留。
SET协议仅解决了支付信息的认证。
交易后,顾客(商家)处理争议时,缺乏有效说明来划分责任,无法满足电子商务协议的公平性原则。
SET协议中没有对交易过程作状态描述,这可能使顾客或商家对交易的状态难以把握。

(2)SET协议的证书管理①证书管理结构SET的证书管理结构包括9个部分,是根据进行CA验证和SET证书管理的需要来定义的层次结构。
第5章应用系统安全基础 541 RCA(RootCertificateAuthority,根CA)采用非常严格的物理方式来控制,保持其非在线状态,RCA极少被访问来发行新的品牌CA和一个新的根证书RC。
BCA(BrandCA,品牌CA)可以允许一定程度的自治,BCA操作采用严格的物理方式控制,BCA向其层次下的实体发放证书。
GCA(Geo-PoliticalCA,地域政策CA)GCA允许该品牌在一个地理区域或一个政策范围内,执行证书管理的职责,GCA负责为可能泄密的证书产生、保持、分发证书撤消列表CRL。
CCA(CardholderCA,持卡人CA)CCA用于为持卡人分发持卡人证书,可通过Web或E-mail方式接受证书请求,CCA与发卡行保持联系,以便验证持卡人账户。
MCA(MerchantCA,商家CA)MCA负责给商家分发证书,此前,收单行验证和批准其特约商家的证书请求。
PCA(PaymentGatewayCA,支付网关CA)PCA由一个支付卡品牌、收单行或另一个团体来操作。
Cardholder(持卡人)从CCA申请和接收证书。
Merchant(商家)从MCA申请和接收证书。
PaymentGateway(支付网关)从PCA申请和接收证书。
图5-5描述了证书管理结构。
RCA BCAGCA CCA MCA PCA Cardholder Merchant PaymentGateway 图5-5证书管理结构 542 信息安全工程师教程 ②证书管理功能CA为其证书管理层次下的实体提供三个基本服务,即证书发行、更新和撤消。
证书发行(CertificateIssuance)SET定义有三种方式:Web方式(交互式)、E-mail方式和离线(非交互式)方式。
因为交互式具有灵活方便等优点,故首选Web方式,如持卡人通过Web申请CCA,需经历三个阶段:①持卡人申请证书的请求/应答过程。
通过消息变量CardlnitReg和CardlistRes来唤醒SET应用,并分发根的签名证书,此过程中包含采用Web所需的MIME信息。
②持卡人申请登记表的请求/应答过程,通过消息变量RegFormReg和RegFormRes来传递登记表。
③证书请求和生成过程。
通过CertReg和CertRes来颁发证书。
通过三对消息的交换。
申请者可将私人信息和账号传递给CA,而CA通过确认身份,(与发卡行协作)后颁发证书。
证书更新(CertificateRenewal)出于安全考虑,密钥都有一定的使用期,因此所有的证书都需要定期更新,在每份证书中都说明了失效期,具体的更新周期,由CA制定的策略来决定。
根证书被更新后,只是失去了发证功能,但仍存在于信任链中,直到它颁发的所有证书都失效后,RCA才失效。
证书更新过程与证书颁发过程相同。
证书撤消(CertificateRevocation)证书撤消是整个证书管理机制中最有效的安全保障手段,它能够及时避免证书面临危险时对SET交易的影响,有多种原因需要对证书进行撤消,如怀疑私钥泄漏、证书标识信息被改变、以及中止使用等,它在一定程度上体现和延续了现今的信用卡管理体系,使证书达到或超过信用卡的安全程度,充分保障了网上的正常交易。
CRL(CertificateRevocationList,证书废除列表)是由X.509协议定义的一种用于公布和分发含有被废除证书的列表的机制。
每个CA(除MCA和CCA外)都维护着一个自己的CRL,用于公布被废除的由它所生成和签定的证书名单。
BCL(BrandCRLIdentifier)是指针对某个信用卡品牌的所有目前使用的CRL,是由SET协议定义的,并由BCA(BrandCertificateAuthority)来维护。
每当一份证书被废除,CA就会发布新的CRL,而相应的BCL也会被更新。
SET协议运用CRL和BCL,可以有效地避免交易过程中欺诈行为所带来的危害,它赋予了证书管理更为有力和更具效率的可操作性。
在证书废除的复杂机制中,支付网关担当着至关重要的角色。
这是因为SET交易中支付网关是传递支付信息的枢纽,它将由持卡人传来的支付自动递交给支付银行的主机,并把交易结果反馈回商家。
SET协议针对参与交易的不同对象,制定了具体的证书废除过程。
持卡人证书的废除SET1.0版本没有持卡人证书的废除功能。
证书的废除功能是通过信用卡黑名单来 第5章应用系统安全基础 543 实现。
商家证书的废除SET1.0版本也没有商家证书的废除功能。
当一个商家终止与指定的支付网关的联 系时,该支付网关就有能力拒绝所有来自此商家的支付请求。
支付网关证书的废除一旦支付网关的证书遭到恶意攻击,可能处于危险时,就必须及时废除,并重新申 请证书。
CA证书的废除对于CA来说,受到有效攻击的可能性极低,但无论如何,一旦有成功的攻击出现, CA的旧证书就必须被废除。
由于SET交易的关键是密钥的加、解密过程,而证书又是密钥的载体,因此,从某 种意义上说,证书管理也就近乎于密钥管理。
通过证书管理的填密策略和行之有效的手段,SET协议将在开放的网络上进行信用交易的幻想变了现实。
证书管理涵盖了SET交易的全过程,成了SET协议的灵魂。
证书链确认验证证书链上面描述了SET证书的层次关系,其中每一层都由其上层产生,证书就是通过这样的信任层次来验证的,每个证书对应于发行该证书的实体的签名证书,通过直到RCA的信任层次来验证证书,证书有效性的验证路径称为“签名链”。
证书链的确认要求保证:路径中每个证书到根证书是有效的,并且每个证书要正确对应发行该证书的CA,SET证书链验证方法是按照“Section12.4.3ofAmendment1toX.509”的处理要求进行的,SET对证书链的验证是对X.509标准的扩充。
因此,由证书管理的层次关系而映射形成的证书信任链决定了验证证书合法性的途径,每份证书都与其颁发者的签名证书相联系,在交易双方的通信过程中,认证系统会将对方的证书沿着信任链逐级追溯到RCA,而所有SET软件都知道RCA的公开签名密钥,从而确认该证书的合法性。
证书中的日期证书到期日期的验证是签名链验证过程的一个组成部分,对于一个最终实体证书的验证,要求所有信任链都是有效的,并且链中所有证书没有一个是超期的。
为了对证书链中所有证书进行日期验证,有以下处理要求:所有SET软件验证证书日期,都作为签名链验证处理的一部分。
SET软件提供一个机制来防止使用超期证书。
证书的使用期限应当限制在该证书的有效时间范围之内,并且在发行CA的签名证书的私用密钥使用的有效时间之内。
544 信息安全工程师教程 指纹指纹是对证书、CRL、BCL计算的Hash值,一个最终实体在发出的消息中包含指纹,作为一种识别自己所保存的证书、CRL等内容的简洁方法。
消息接收者发现消息中包含指纹,可以检查指纹,并在下行消息中(一般是响应消息中)插入发送者没有但是交易中需要的任何证书、CRL或BCL。

(3)SET处理流程SET协议的工作流程:可从一个完整的购物处理流程来看,如图5-6所示。
订单 审核 持卡人 商家 支付网关 银行 (消费者)确认 确认 认证认证 认证 审核 批准 CA认证 发卡机构 图5-6SET协议的处理流程 ①持卡人注册(CardholderRegistration)持卡人在向商家购物之前必须在CA注册,为了向CA发送SET消息,持卡人必须拥有CA的公钥,这由CA的密钥交换证书提供。
持卡人软件请求CA的密钥交换公钥证书。
CA接受初始化请求:产生响应消息及响应消息的消息摘要并用其签名私钥加密来生成数字签名;将响应消息连同密钥交换证书和签名证书发送给持卡人。
持卡人的软件收到初始化响应消息:校验两个证书(遍历信任链);验证CA签名(用CA的签名公钥解密其数字签名并将结果与新产生的响应消息 的Hash值比较);持卡人输入账号;持卡人的软件产生注册表请求信息;产生Deskeyl(随机对称密钥)来加密请求信息;用CA的密钥交换公钥加密Deskeyl和持卡人的账号得到数字信封;把(加密的注册表请求消息+数字信封)发给CA。
第5章应用系统安全基础 545 CA收到后:用其私有交换密钥解密持卡人账号及Deskeyl,然后用Deskeyl解密注册表请求;确定适当的注册表,产生注册表的消息摘要,并用其私有签名密钥生成其数字签 名;将数字签名后的注册表和CA的签名公钥证书发送给持卡人。
持卡人的软件收到注册表后:验证CA签名公钥证书;验证CA的签名,即用CA的签名公钥来解密CA的签名并将结果与新生成的注 册表的Hash值比较;产生一对公开/私有签名密钥;持卡人填写注册表;持卡人的软件产生证书请求,包括填入注册表的信息;持卡人的软件将证书请求、持卡人的签名公钥及新产生Deskey2一起组成“信息”, 然后生成证书请求的消息摘要并用持卡人的签名私钥加密来创建数字签名;持卡人的软件产生Deskey3加密“信息”;这个密钥连同持卡人账户信息一起用 CA的密钥交换公钥加密生成数字信封;持卡人软件把(加密的证书请求信息+数字信封)传送给CA。
CA收到后:用其私有交换密钥解密Deakey3,用Deskey3解密证书请求;验证持卡人签名,即用持卡人签名公钥解密持卡人签名并将结果与新产生的证书 请求的Hash值进行比较;用持卡人账户信息和注册表格上的信息校验其与证书请求信息是否一致;一旦通过校验,CA创建持卡人证书并用其私有签名密钥签署证书;CA用来自持卡人请求信息中的Deskey2加密证书,并产生证书响应消息,然后 生成响应消息摘要,并用其私有签名密钥加密来创建数字签名;CA把证书响应消息连同CA的签名公钥证书传送给持卡人。
持卡人软件收到后:使用保存的Deskey2解密证书响应消息;通过信任链校验证书;验证CA签名,即用CA的签名公钥来解密CA签名并把结果和最新产生的证书 响应的Hash值相比较;将其证书及来自证书响应的信息储存起来以备将来的应用。
②商家注册(MerchantRegistration)商家软件请求CA的密钥交换证书和注册表。
CA收到请求后: 546 信息安全工程师教程 识别商家金融机构,选择合适的注册表并数字签名;将数字签名后注册表连同密钥交换证书和签名证书发给商家。
商家软件收到后:验证CA的两个证书;验证CA的数字签名;产生各一对密钥交换密钥对和签名密钥对;商家在注册表中填写商家名称、地址及商家ID(收单行中的唯一标识);商家软件产生证书请求;商家软件将证书请求和两个公钥组成“消息”,并数字签名“消息”;产生Deskey4(随机对称密钥),用Deskey4加密签名后消息,用CA的密钥交换 公钥加密Deskey4和商家的ID形成数字信封,再将所有信息向CA发出。
CA收到后:用密钥交换私钥解开数字信封的Deskey4和商家的ID,用Deskey5解密(10)中 的加密消息得到注册表请求;根据商家的数字签名验证注册表请求,如果签名有效,消息处理继续,否则,返 回商家提示消息响应;使用商家账户信息验证注册表请求;注意:SET协议中没有定义CA和收单行如何交换信息验证注册表内的信息;如果注册表信息有效,CA产生一个证书响应,并数字签名;将(证书响应+商家的两个公钥+CA的签名公钥)发给商家。
商家收到后:验证证书;验证CA的数字签名;保存证书至安全地方。
③购买请求(PurcheseRequest)持卡人到商家的网站浏览、挑选、订购后请求支付网关的密钥交换证书;商家收到请求后,为该消息制定Numl(唯一识别号)并用商家签名私钥数字签 名,然后将(签名后Numl1+商家签名证书+支付网关的密钥交换证书)发给持卡人。
持卡人收到后:验证商家和支付网关证书,并保存证书;产生订购信息OI和支付指令PI,将Numl插入OI和PI中;生成OI和PI的双重签名,即对(OI的消息摘要+PI的消息摘要)计算Hash值,再对Hash值用持卡人的签名私钥加密;产生Deskey6(随机对称密钥); 第5章应用系统安全基础 547 用Deskey6加密PI的双重签名等得到加密的支付信息;用Deskey6加密持卡人账号;用支付网关的密钥交换公钥加密Deskey6形成支付信封; 将OI的双重签名、支付信封、加密的支付信息、PI的消息摘要、持卡人密钥交换证书一起发送给商家。
商家收到后:验证持卡人证书;验证双重签名,即用持卡人的密钥交换公钥解密OI的双重签名,计算OI的消息 摘要,再对OI的消息摘要和PI的消息摘要计算Hash值,再与解密后的比较;商家将PI送支付网关;生成购物响应消息并数字签名;将购物响应和商家密钥交换证书发送给持卡人。
持卡人收到购物响应后:验证商家证书;验证购物响应中的商家签名;持卡人保存购物响应。
④支付授权(PaymentAuthorization)商家软件产生并数字签署一个授权,其中包含授权的金额、Numl;产生Deskey7加密授权请求并用支付网关的密钥交换公钥生成网关信封;商家将(加密后的授权请求+(PI+双重签名))和(网关信封+持卡人签名证 书+(商家的密钥交换证书和签名证书))传给支付网关。
(注意:SET协议中还包括一个销售交易,允许商家在一个消息中同时进行交易授权和支付请求)。
支付网关收到授权请求后:解密网关信封的Deskey7;用Deskey7解密请求信息;验证商家证书;验证商家签名;支付网关解密PI的数字信封得到Deskey6和账户信息;用Deskey6解密得到PI;验证持卡人证书;验证PI双重签名,即用持卡人签名公钥解密双重签名,计算PI的消息摘要,与包含在PI中OI摘要一起计算Hash值,与解密后的双重签名对比;验证Numl和PI中的识别号;将授权请求通过银行网络发向发卡行;生成并数字签名授权响应消息;产生Deskey8加密授权响应;用商家的密钥交换公钥加密Deskey8得到商家信封;产生Deskey9加密请款标记,用支付网关的密钥交换公钥加密Deskey9生成网关信封; 548 信息安全工程师教程 将((加密后授权响应和商家信封)+(加密后请款标记和网关信封)+支付网关签名证书)一起发送商家。
商家收到后:验证支付网关证书;用商家的密钥交换私钥解开数字信封得到Deskey8,用Deskey8解密授权响应;验证支付网关对授权响应的数字签名;保存授权响应、加密后的扣款令牌和请款标志,用于以后扣款处理。
至此,商家 完成持卡人的购物处理。
⑤支付请款(PaymentCapture)商家产生并数字签名一个请款请求(CaptureRequest);产生Deskeyl0加密扣款诸求,用支付网关密钥交换公钥加密Deskeyl0生成支付 信封;将((加密后扣款请求和支付信封)+(加密后扣款令牌和网关信封))发向支付 网关。
支付网关收到扣款请求后:用支付网关密钥交换私钥解密支付信封得到Deskeyl0;用Deskeyl0解密扣款 请求;验证扣款请求的商家签名;用支付网关密钥交换私钥解密Deskey9,再用Deskey9解密请款标记;比较扣款请求和请款标记;将扣款请求通过银行网络发送到发卡行;生成并数字签名扣款响应消息;产生Deskeyll加密扣款响应;用商家的密钥交换公钥加密Deskeyll生成商家信封;将((加密扣款响应和商家信封)+网关的签名证书)一起传给商家。
商家收到支付网关传来的扣款响应后:用商家私钥解密Deskeyll,用Deksyll解密扣款响应;验证网关证书;验证支付网关的签名;商家保存扣款响应,用于与收单行得到的付款进行对账。
5.2.3.2SSL协议
1.SSL协议概述SSL(SecureSocketsLayer)安全套接层协议是Netscape公司于1994年推出的一种安全通信协议。
在SSL中,采用了公开密钥和私有密钥两种加密方式,它对计算机之间整个会话进行加密,从而保证了安全传输。
SSL的安全服务位于TCP和应用层之间,可为应用层(如:HTTP、FTP、SMTP)提供安全业务,服务对象主要是Web应用,即客 第5章应用系统安全基础 549 户浏览器和服务器。
它现已成为保密通信的工业标准,目前使用的版本为3.0版本。
SSL服务器认证允许用户确认服务器身份。
支持SSL协议的客户机软件能使用公钥 密码标准技术(如用RSA和DSS等)检查服务器证书、公用ID是否有效和是否由在客户信任的认证机构CA列表内的认证机构发放。
SSL客户机认证允许服务器确认用户身份。
使用应用于服务器认证同样的技术,支持SSL协议的服务器软件能检查客户证书、公用ID是否有效和是否由在服务器信任的认证机构列表内的认证机构发放。
一个加密的SSL连接要求所有在客户机与服务器之间发送的信息由发送方软件加密和由接受方软件解密,对称加密法用于数据加密(如用DES和RC4等),从而连接是保密的。
所有通过加密SSL连接发送的数据都被一种检测篡改的机制所保护,使用消息认证码(MAC)的消息完整性检查、安全散列函数(如SHA和MD5等)用于消息认证码计算,这种机制自动地决定传输中的数据是否已经被更改,从而连接是可靠的。
SSL主要工作流程包括:网络连接建立;与该连接相关的加密方式和压缩方式选择;双方的身份识别;本次传输密钥的确定;加密的数据传输;网络连接的关闭。
应用数据的传输过程为:①应用程序把应用数据提交给本地的SSL;②发送方根据需要,使用指定的压缩算法,压缩应用数据;③发送方使用散列算法对压缩后的数据进行散列,得到数据的散列值;④发送方把散列值和压缩后的应用数据一起用加密算法加密;密文通过网络传给对方;①接收方用相同的加密算法对密文解密,得到明文;②接收方用相同的散列算法对明文中的应用数据散列;③计算得到的散列值与明文中的散列值比较;如果一致,则明文有效,接收方的SSL把明文解压后得到应用数据上交给接收方的应用。
否则就丢弃数据,并向发送方发出报警信息。
严重的错误有可能引起再次的协商或连接中断。
SSL是一个两层协议,包括SSL握手层协议和SSL记录层协议。
SSL握手层有SSL握手协议(SSLHandshakeProtocol)、SSL更改密码说明协议(SSLChangeCipherSpecProtocol)、SSL报警协议(SSLAlertProtocol);SSL记录层有SSL记录协议(SSLRecordProtocol),它为更高层提供基于客户/服务器模式的安全传输服务。
SSL协议提供的服务可以归纳为如下三个方面:
(1)用户和服务器的合法性认证使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。
客户机和服务器都有各自的识别号,由公开密钥编排。
为了验证用户,SSL协议要求在握手交换数据中做数字认证,以此来确保用户的合法性。
550 信息安全工程师教程
(2)加密数据以隐藏被传送的数据SSL协议采用的加密技术既有对称密钥,也有公开密钥。
具体来说,就是客户机与服务器交换数据之前,先交换SSL初始握手信息。
在SSL握手信息中采用了各种加密技术,以保证其机密性和数据的完整性,并且经数字证书鉴别。
这样就可以防止非法用户破译。

(3)维护数据的完整性SSL协议采用Hash函数和机密共享的方法,提供完整信息性的服务,来建立客户机与服务器之间的安全通道,使所有经过SSL协议处理的业务在传输过程中都能完整、准确无误地到达目的地。

2.SSL握手和记录协议
(1)SSL握手协议SSL握手协议被封装在记录协议中,该协议允许服务器与客户机在应用程序传输和接收数据之前互相认证、协商加密算法和密钥。
在初次建立SSL连接时服务器与客户机交换一系列消息。
这些消息交换能够实现如下操作:①客户机认证服务器;②允许客户机与服务器选择双方都支持的密码算法;③可选择的服务器认证客户;④使用公钥加密技术生成共享密钥;⑤建立加密SSL连接。
SSL握手协议报文头包括三个字段:①类型(1字节):该字段指明使用的SSL握手协议报文类型。
SSL握手协议报文包括10种类型。
报文类型见图5-
7。
②长度(3字节):以字节为单位的报文长度。
③内容(≥1字节):使用的报文的有关参数。
报文类型 hello_requestclient_helloserver_hellocertificateserver_key_exchangecertificate_requestserver_donecertificate_verifyclient_key_exchangefinished 参数空版本、随机数、会话ID、密文族、压缩方法版本、随机数、会话ID、密文族、压缩方法X.509v3证书链参数、签名类型、授权空签名参数、签名Hash值 图5-7SSL握手协议报文 第5章应用系统安全基础 551 当一SSL客户和服务器首次开始通信时,它们就协议版本、加密算法的选择、是否验证对方及公钥加密技术的应用进行协商以产生共享的秘密,这一处理是由握手协议完成的,握手过程如图5-8所示。
注:带*的传输是可选的,或者与站点相关的,并不总是发送的报文。
图5-8握手协议的过程 建立安全能力客户机向服务器发送client_hello报文,服务器向客户机回应server_hello报文,建立如下的安全属性:协议版本、会话ID、密文族、压缩方法,同时生成并交换用于防止重放攻击的随机数。
密文族参数包括密钥交换方法(Deffie-Hellman密钥交换算法、基于RSA的密钥交换和另一种实现在Fortezzachip上的密钥交换)、加密算法(DES、RC4、RC2、3DES等)、MAC算法(MD5或SHA-1)、加密类型(流或分组)等内容。
认证服务器和密钥交换在hello报文之后,如果服务器需要被认证,服务器将发送其证书。
如果需要,服务器还要发送server_key_exchange。
然后,服务器可以向客户发送certificate_request请求证书。
服务器总是发送server_hello_done报文,指示服务器的hello阶段结束。
552 信息安全工程师教程 认证客户和密钥交换客户一旦收到服务器的server_hello_done报文,客户将检查服务器证书的合法性(如果服务器要求),如果服务器向客户请求了证书,客户必须发送客户证书,然后发送client_key_exchange报文,报文的内容依赖于client_hello与server_hello定义的密钥交换的类型。
最后,客户可能发送client_verify报文来校验客户发送的证书,这个报文只能在具有签名作用的客户证书之后发送。
结束客户发送change_cipher_spec报文并将挂起的CipherSpec复制到当前的CipherSpec。
这个报文使用的是改变密码格式协议。
然后,客户在新的算法、对称密钥和MAC秘密之下立即发送finished报文。
finished报文验证密钥交换和鉴别过程是成功的。
服务器对这两个报文响应,发送自己的change_cipher_spec报文、finished报文。
握手结束,客户与服务器可以发送应用层数据了。
当客户从服务器端传送的证书中获得相关信息时,需要检查以下内容来完成对服务器的认证:时间是否在证书的合法期限内;签发证书的机关是否是客户端信任的;签发证书的公钥是否符合签发者的数字签名;证书中的服务器域名是否符合服务器自己真正的域名。
服务器被验证成功后,客户继续进行握手过程。
同样的,服务器从客户传送的证书中获得相关信息认证客户的身份,需要检查:用户的公钥是否符合用户的数字签名;时间是否在证书的合法期限内;签发证书的机关是否是服务器信任的;用户的证书是否被列在服务器的LDAP(LightweightDirectoryessProtocol,轻量级目录访问协议)里用户的信息中;得到验证的用户是否仍然有权限访问请求服务器资源。

(2)SSL记录协议SSL记录协议为SSL连接提供两种服务:机密性和报文完整性。
在SSL协议中,所有的传输数据都被封装在记录中。
记录是由记录头和长度不为0的记录数据组成的。
所有的SSL通信都使用SSL记录层,记录协议封装上层的握手协议、报警协议、更改密码说明协议和应用数据协议。
SSL记录协议包括了记录头和记录数据格式的规定。
SSL记录协议位于SSL协议的底层,用于定义传输数据的格式,加密/解密、压缩/解压缩、MAC计算等操作。
SSL记录协议将高层的协议数据分成较小的单元,并对它进行压缩、附加消息认证码MAC、加密、附加SSL记录头,然后通过低层的传输层协议发送,其过程如图5-9所示。
接收消息的过程正好与发送消息的过程相反,即解密、验证、解压、拼装,然后送给高层协议。
①分段:把上层传送来的数据信息块切分为小于或等于214字节的SSL明文记录。
记录中包含类型、版本号、长度和数据字段。
第5章应用系统安全基础 553 图5-9SSL记录协议发送消息的过程 ②压缩:使用当前会话状态中定义的压缩算法对被切分后的记录块进行压缩。
压缩算法将SSL明文记录转化为SSL压缩记录。
压缩是可选的,且必须是无损压缩,且对原文长度的增加不能超过1024字节。
③增加MAC:在压缩数据上计算消息认证MAC。
所有的记录均采用在当前的加密约定中定义的加密算法和报文验证MAC算法加以保护。
当握手结束后,参与双方共享一个用于加密记录和计算消息认证码MAC的公开密钥。
④加密:对压缩数据及MAC进行加密。
加密和消息认证码(MAC)函数将一SSL压缩记录加密转换为一SSL密文记录。
传输时将包含一序列号,这样即使包丢失、被改变或包被重复收到时也可以及时发现。
⑤增加SSL记录头。
SSL记录头:由5个字节组成,第一个字节说明使用SSL记录协议的高层协议类型,如:20表示更改密码说明协议、21表示报警协议、22表示握手协议、23表示应用数据协议;第二个字节表示主要版本号,如:对于SSLv3.0,值为3;第三个字节表示次要版本号,如:对于SSLv3.0,值为0;第
四、第五个字节表示明文数据(如果选用压缩则是压缩数据)的长度。
如图5-10所示。
内容类型明文(压缩可选)MAC(0,16或20位) 主要版本 次要版本 压缩长度 图5-10SSL记录协议字段 从上层传来的信息进行分组形成不超过规定长度的明文数据,填充到数据结构SSLPlaintext中,针对每一个明文数据结构,采用事先协商好(握手协议)的压缩算法进行压缩。
压缩好的数据将利用在握手协议中协商好的加密算法和MAC算法进行加密 554 信息安全工程师教程 和保护,最终形成SSLCiphertext密文数据结构进行传输。

(3)SSL协议安全性分析①安全机制分析SSL协议可以被用来建立一个在客户和服务器之间安全的TCP连接。
它可以鉴别服 务器(有选择地鉴别客户)、执行密钥交换、提供消息鉴别、提供在TCP协议之上的任意应用协议数据的完整性和机密性服务。
其安全机制包括以下几个方面。
鉴别机制SSL协议通过使用公开密钥技术和数字证书可以实现客户端和服务器端的身份鉴别。
采用SSL协议建立会话时,客户端(也是TCP的客户端)在TCP连接建立之后,发出一个client_hello发起握手,这个消息里面包含了自己可实现的算法列表和其他一些需要的消息。
SSL的服务器端会回应一个server_hello,里面确定了这次通信所需要的算法,然后发过去自己的证书(里面包含了身份和自己的公钥)。
默认情况下,客户端可以根据该证书的相关内容对其认证链路进行确认,最终实现对服务器端身份的鉴别,同样在需要时也可以采用类似的方法对客户端进行身份鉴别。
加密机制混合密码体制的使用提供了会话和数据传输的加密性保护。
在进行SSL握手过程中,双方使用非对称密码体制协商出本次将要使用的会话密钥,并选择一种对称加密算法,并应用于此后数据传输的机密性保护。
其中非对称密码体制的使用保证了会话密钥协商过程的安全,而对称加密算法的使用可以克服非对称加密的速度缺陷,提高数据交换的时效性。
另外,由于SSL使用的加密算法和会话密钥可适时变更,如果某种算法被新的网络攻击方法识破,它只要选择另外的算法就可以了。
完整性机制SSL握手协议还定义了共享的、可以用来形成消息认证码MAC(MessageAuthenticationCode)的密钥。
SSL在对所传输的数据进行分片压缩后,使用单向散列函数(如MD5、SHA-1等)产生一个MAC,加密后置于数据包的后部,并且再一次和数据一起被加密,然后加上SSL首部进行网络传输。
这样,如果数据被修改,其散列值就无法和原来的MAC相匹配,从而保证了数据的完整性。
抗重放攻击SSL使用序列号来保护通信方免受报文重放攻击。
这个序列号被加密后作为数据包的负载,在整个SSL握手中,都有一个唯一的随机数来标记这个SSL握手,这样重放便无机可乘了。
序列号还可以防止攻击者记录数据包并以不同的次序发送。
②脆弱性分析SSL协议是为解决数据传输的安全问题而设计的,实践也证明了它针对窃听和其他的被动攻击相当有效,但是由于协议本身的一些缺陷以及在使用过程中的不规范行为,SSL协议仍然存在不可忽略的安全脆弱性。
第5章应用系统安全基础 555 SSL协议自身的缺陷客户端假冒。
因为SSL协议设计初衷是对Web站点及网上交易进行安全性保护,使消费者明白正在和谁进行交易要比使商家知道谁正在付费更为重要,为了不致于由于安全协议的使用而导致网络性能大幅下降,SSL协议并不是默认地要求进行客户鉴别,这样做虽然有悖于安全策略,但却促进了SSL的广泛应用。
针对这个问题可在必要的时候配置SSL协议,使其选择对客户端进行认证鉴别。
SSL协议无法提供基于UDP应用的安全保护。
SSL协议需要在握手之前建立TCP连接,因此不能对UDP应用进行保护。
如果要兼顾UDP协议层之上的安全保护,可以采用IP层的安全解决方案。
SSL协议不能对抗通信流量分析。
由于SSL只对应用数据进行保护,数据包的IP头和TCP头仍然暴露在外,通过检查没有加密的IP源和目的地址以及TCP端口号或者检查通信数据量,一个通信分析者依然可以揭示哪一方在使用什么服务,有时甚至揭露商业或私人关系的秘密。
然而用户一般都对这个攻击不太在意,所以SSL的研究者们并不打算去处理此问题。
可能受到针对基于公钥加密标准(PKCS)的协议的自适应选择密文攻击(如Bleichenbacher攻击)。
由于SSL服务器用一个比特标识来回答每条消息是不是根据PKCS#1正确地加密和编码,攻击者可以发送任意数量的随机消息给SSL服务器,再达到选择密文攻击的目的。
最广泛采用的应对措施就是进行所有三项检查而不发送警示,不正确时直接丢弃。
进程中的主密钥泄漏。
除非SSL的工程实现大部分驻留在硬件中,否则主密钥将会存留在主机的主存储器中,这就意味着任何可以读取SSL进程存储空间的攻击者都能读取主密钥,因此,不可能面对掌握机器管理特权的攻击者而保护SSL连接,这个问题要依靠用户管理策略来解决。
磁盘上的临时文件可能遭受攻击。
对于使用虚拟内存的操作系统,不可避免地有些敏感数据甚至主密钥都交换到存盘上,可采取内存加锁和及时删除磁盘临时文件等措施来降低风险。
不规范应用引起的问题对证书的攻击和窃取。
类似Verisign之类的公共CA机构并不总是可靠的,系统管理员经常犯的错误是过于信任这样的公共CA机构。
因为对于用户的证书,公共CA机构可能不像对网站数字证书那样重视和关心其准确性。
由于微软公司的IIS服务器提供了“客户端证书映射”功能,用于将客户端提交证书中的名字映射到NT系统的用户账号,在这种情况下黑客就有可能获得该主机的系统管理员权限!如果黑客不能利用上面的非法的证书突破服务器,他们还可以尝试暴力攻击。
虽然暴力攻击证书比暴力攻击口令更为困难,但仍然是一种攻击方法。
要暴力攻击客户端鉴别,黑客编辑一个可能的用户名字列表,然后为每一个名字向CA机构申请证书。
每一个证书都用于尝试获取访问 556 信息安全工程师教程 权限。
用户名的选择越好,其中一个证书被认可的可能性就越高。
暴力攻击证书的方便之处在于它仅需要猜测一个有效的用户名,而不是猜测用户名和口令。
除此之外,黑客还可能窃取有效的证书及相应的私有密钥。
最简单的方法是利用特洛伊木马,这种攻击几乎可使客户端证书形同虚设。
它攻击的是证书的一个根本性弱点:私有密钥,整个安全系统的核心,经常保存在不安全的地方。
对付这种攻击的唯一有效方法或许是将证书保存到智能卡或令牌之类的设备中。
中间人攻击。
中间人(man-in–middle)攻击是指A和B通信的同时,有第三方C处于信道的中间,可以完全听到A与B通信的消息,并可拦截、替换和添加这些消息。
如果不采取有证书的密钥交换算法,A便无法验证B的公钥和身份的真实性,从而C可以轻易的冒充,用自己的密钥与双方通信,从而窃听到别人谈话的内容。
为了防止中间人攻击,对于所有站点发行的证书,客户都最好要用自己的公钥来检查证书的合法性。
当客户端收到消息后,使用服务器以前公开的公钥解密,然后比较解密后的消息与他原先发给服务器的消息,如果它们完全一致,就能判断正在通信的服务器正是客户端期望与之建立连接的服务器。
任何一个中间人不会知道服务器的私钥,也不能正确加密客户端检查的随机消息,从而达到防止中间人攻击。
当使用交互式程序在网上冲浪的用户遇到“公司使用未知的CA”的提示信息时,如果无法辨认该信息是真的还是自己遭到了中间人攻击,最好能立刻终止该连接;尽量少的信任自签发证书,因为对于一些机警的用户,他们可能会把伪造的证书变成自签发证书用来打消对方的疑虑。
即使采用了有证书的密钥交换算法,攻击者还可以从与服务器握手过程中获得一些内容,用于伪造一个与服务器非常相似的证书(如证书发行者的OU域比真证书多一个空格等),这样,当攻击者以中间人的形式与用户进行连接时,虽然客户程序能够识别并提出警告,但仍然有相当多的用户被迷惑而遭到攻击。
只要用户有一定的警惕性,是可以避免这种攻击的。
安全盲点。
系统管理员不能使用现有的安全漏洞扫描或网络入侵检测系统来审查或监控网络上的SSL交易。
网络入侵检测系统是通过监测网络传输来找寻没有经过鉴别的活动,任何符合已知的攻击模式或者未经授权的网络活动都被标记起来以供审计,其前提是IDS必须能监视所有的网络流量信息,但是SSL的加密技术却使得通过网络传输的信息无法让IDS辨认,这样,既没有网络监测系统又没有安全审查,使得最重要的服务器反而成为受到最少防护的服务器。
对此,恶意代码检测、增强的日志功能等基于主机的安全策略会成为最后防线。
IE浏览器的SSL身份鉴别缺陷。
通常情况下,用户在鉴别对方身份时根据证书链对证书逐级验证,如果存在中间CA,还应检查所有中间证书是否拥有合法的CABasicConstraints(CA基本约束,决定该证书是否可以做CA的证书),这种情况下攻击者不可能进行中间人攻击,但实际上IE5.0、5.5、6.0浏览器对是否拥有合法的CABasicConstraints并不做验证,所以攻击者只要有任何域的、合法的CA签发证书,就能生成 第5章应用系统安全基础 557 其他任何域的合法CA签发证书,从而导致中间人攻击。
对此可以给IE打补丁,也可以使用Netscape4.x或Mozilla浏览器。
对于一些非常敏感的应用,建议在进行SSL连接时手工检查证书链,如果发现有中间证书,可以认为正在遭受中间人攻击,立即采取相应保护措施。
由于美国密码出口的限制,IE、Netscape等浏览器所支持的加密强度是很弱的。
如果只采用浏览器自带的加密功能的话,理论上存在被破解的可能。
所以我们坚持这样一个观点:关键的系统、核心的技术应该拥有自主的知识产权。

3.SSL协议的功能设计SSL加密算法和会话密钥是在握手协议中协商并由Cipher-Choice指定的。
现有的SSL版本中所用到的加密算法包括:RC4、RC2、IDEA、DES和3DES,而加密算法所用的密钥由消息散列函数MD5产生。
RC4、RC2、是由RSA定义的,其中RC2适用于块加密,RC4适用于流加密。
SSL协议中对称加密用于加密应用数据,非对称加密用于验证实体和交换密钥。
非对称加密算法按用途分为密钥交换算法和数字签名算法。
SSL协议给出的序列加密算法有RC4(40位和128位密钥);给出的分组加密算法有40位密钥的RC2[RC298]。
40和56位密钥的DES[DES83],3DES[3DES79],IDEA[IDEA92]和Fortezza;另外协议指定专为出口使用的40位的DES,命名为DES40。
目前SSL协议给出的密钥交换算法有RSA[RSA78]、Diffie—Hellman[DH77]和Fortezzadms[FOR95];数字签名算法有RSA和DSA。
数字签名时,单向Hash函数(one-wayhashfunction)作为签名算法的输入;RSA签名中,一个36字节的两个Hash函数(一个是SHAHash,一个是MD5Hash)的连接被签名;DSS签名[DSS94]中,一个20字节的SHAHash被签名。
SSL协议指定的Hash算法有128位密钥的MD5和160位密钥的SHA。
5.3信息隐藏 5.3.1信息隐藏概论 5.3.1.1定义、分类、特点
1.什么是信息隐藏多媒体数据的数字化为多媒体信息的存取提供了极大的便利,同时也极大地提高了 信息表达的效率和准确性。
随着的日益普及,多媒体信息的交流已达到了前所未有的深度和广度,其发布形式也愈加丰富。
人们如今也可以通过发布自己的作品、重要信息和进行网上贸易等,但是随之而出现的问题也十分严重:如作品侵权更加容易,篡改也更加方便。
因此如何既充分利用的便利,又能有效地保护知识产权,已受到人们的高度重视。
一门新兴的交叉学科——信息隐藏(InformationHiding) 558 信息安全工程师教程 学诞生了。
如今信息隐藏学作为隐蔽通信和知识产权保护等的主要手段,正得到广泛的研究与应用。
所谓信息隐藏就是将秘密信息隐藏到一般的非秘密的数字媒体文件(如图像、声音、文档文件)中,从而不让对手发觉的一种信息保护方法。
信息隐藏是把一个有意义的信息隐藏在另一个称为载体(Cover)的信息中得到隐蔽载体(StegoCover)
S。
如图5-11所示,非法者不知道这个普通信息中是否隐藏了其他的信息,而且即使知道也难以提取或去除隐藏的信息。
所用的载体可以是文字、图像、声音及视频等。
为增加攻击的难度,也可以把加密与信息隐藏技术结合起来,即先对消息M加密得到密文消息M’,再把M’隐藏到载体C中。
这样攻击者要想获得消息,就首先要检测到消息的存在,并知道如何从隐蔽的载体S中提取M’及如何对M’解密以恢复消息
M。
图5-11信息加密与隐藏的比较 信息隐藏不同于传统的密码学技术。
密码技术主要是研究如何将机密信息进行特殊的编码,以形成不可识别的密文进行传递;而信息隐藏则主要研究如何将某一机密信息秘密隐藏于另一公开的信息中,然后通过公开信息的传输来传递机密信息。
对加密通信 第5章应用系统安全基础 559 而言,可能的监测者或非法拦截者可通过截取密文,并对其进行破译,或将密文进行破坏后再发送,从而影响机密信息的安全;但对信息隐藏而言,可能的监测者或非法拦截者则难以从公开信息中判断机密信息是否存在,难以截获机密信息,从而能保证机密信息的安全。
多媒体技术的广泛应用,为信息隐藏技术的发展提供了更加广阔的领域。
信息之所以能够隐藏在多媒体数据中是因为:①多媒体信息本身存在很大的冗余性,从信息论的角度看,未压缩的多媒体信息的编码效率是很低的,所以将某些信息嵌入到多媒体信息中进行秘密传送是完全可行的,并不会影响多媒体本身的传送和使用。
②人眼或人耳本身对某些信息都有一定的掩蔽效应,比如人眼对灰度的分辨率只有几十个灰度级;对边沿附近的信息不敏感等。
利用人的这些特点,可以很好的将信息隐藏而不被察觉。

2.信息隐藏的分类对信息隐藏技术可作如下分类:按载体类型分类:包括基于文本,图像,声音和视频的信息隐藏技术。
按密钥分类:若嵌入和提取采用相同密钥,则称其为对称隐藏算法,否则称为公钥隐藏算法。
按嵌入域分类:主要可分为空域(或时域)方法及变换域方法。
空域替换方法是用待隐藏的信息替换载体信息中的冗余部分。
一种简单的替换方法就是用隐藏信息位替换载体中的一些最不重要位(LeastSignificantBit,LSB),只有知道隐藏信息嵌入的位置才能提取信息。
比如说,若把一个灰度图像的某个像素点的灰度值由180变成182,人的肉眼是看不出来的。
这种方法较为简单,但其鲁棒性较差。
对载体的较小的扰动,如有损压缩,都有可能导致整个信息的丢失。
因此,目前的多数信息隐藏方法都采用了变换域技术,即把待隐藏的信息嵌入到载体的一个变换空间(如频域)中。
与空域方法相比,变换域方法的优点如下:在变换域中嵌入的信号能量可以分布到空域的所有像素上。
在变换域中,人的感知系统的某些掩蔽特性可以更方便地结合到编码过程中。
变换域方法可与数据压缩标准,如JPEG等兼容,常用的变换包括离散余弦变换 和小波变换,一般来说,变换域方法对诸如压缩,修剪和某些图像处理等的攻击的鲁棒性更强。
按提取的要求分类:若在提取隐藏信息时不需要利用原始载体
C,则称为盲隐藏;否则称为非盲隐藏。
显然,使用原始的载体数据更便于检测和提取信息。
但是,在数据监控和跟踪等场合,我们并不能获得原始的载体。
对于其他的一些应用,如视频水印,即使可获得原始载体,但由于数据量巨大,要使用原始载体也是不现实的。
因此目前主要采用的是盲隐藏技术。
按保护对象分类:主要可分为隐写术和水印技术等两大类。
隐写术保护的是隐秘消 560 信息安全工程师教程 息,水印技术的保护对象一般为载体。
隐写术:其目的是在不引起任何怀疑的情况下秘密传送消息,因此它的主要要求是不被检测到和大容量等。
例如在利用数字图像实现秘密消息隐藏时,就是在合成器中利用人的视觉冗余把待隐的消息加密后嵌入到数字图像中,使人无法从图像的外观上发现有什么变化。
加密操作一方面是嵌入到图像中的内容变为伪随机序列,使数字图像的各种统计值不发生明显的变化,从而增加监测的难度,当然还可以采用校验码和纠错码等方法提高抗干扰的能力,而通过公开信道接收到隐写文档的一方则用分离器把隐蔽的消息分离出来。
在这个过程中必须充分考虑到在公开信道中被检测和干扰的可能性。
相对来说隐写术已经是比较成熟的信息隐藏技术了。
数字水印:嵌在数字产品中的数字信号,可以是图像,文字,符号,数字等一切可以作为标识和标记的信息,其目的是进行版权保护、所有权证明、指纹(追踪发布多份拷贝)和完整性保护等。
因此它的要求是鲁棒性和不可感知性等,数字水印还可以根据应用领域不同而划分为许多具体的分类,例如用于版权保护的鲁棒水印,用于保护数据完整性的易损水印等,其中用于版权保护的鲁棒水印是目前研究的热点。
按照应用分类:信息隐藏有广泛的应用,主要有隐秘通信、版权保护、完整性认证、 使用控制、数据标识等等。
需要指出的是,对信息隐藏技术的不同应用,各自有着进一步不同的具体要求,并 非都满足上述要求。
信息隐藏技术包含的内容范围十分广泛,可以作如图5-12所示的分类。
信息隐藏 隐秘通道 隐写术 匿名通信 版权标识 基于语义的隐写术 基于技术的隐写术 稳健的版权标识 脆弱的数字水印 水印 指纹 不可见水印 可见水印 图5-12信息隐藏技术的分类 第5章应用系统安全基础 561
3.信息隐藏技术特点信息隐藏技术必须考虑正常的信息操作所造成的威胁,即要使机密资料对正常的数据操作技术具有免疫能力。
这种免疫力的关键是要使隐藏信息部分不易被正常的数据操作(如通常的信号变换操作或数据压缩)所破坏。
根据信息隐藏的目的和技术要求,该技术存在以下特性:
(1)透明性透明性(invisibility)也叫隐蔽性。
这是信息伪装的基本要求。
利用人类视觉系统或人类听觉系统属性,经过一系列隐藏处理,使目标数据没有明显的降质现象,而隐藏的数据却无法人为地看见或听见。

(2)鲁棒性鲁棒性(robustness)指不因图像文件的某种改动而导致隐藏信息丢失的能力。
这里所谓“改动”包括传输过程中的信道噪音、滤波操作、重采样、有损编码压缩、D/A或A/D转换等。

(3)不可检测性不可检测性(undetectability)指隐蔽载体与原始载体具有一致的特性。
如具有一致的统计噪声分布等,以便使非法拦截者无法判断是否有隐蔽信息。

(4)安全性安全性(security)指隐藏算法有较强的抗攻击能力,即它必须能够承受一定程度的人为攻击,而使隐藏信息不会被破坏。
隐藏的信息内容应是安全的,应经过某种加密后再隐藏,同时隐藏的具体位置也应是安全的,至少不会因格式变换而遭到破坏。

(5)自恢复性由于经过一些操作或变换后,可能会使原图产生较大的破坏,如果只从留下的片段数据,仍能恢复隐藏信号,而且恢复过程不需要宿主信号,这就是所谓的自恢复性。

(6)对称性通常信息的隐藏和提取过程具有对称性,包括编码、加密方式,以减少存取难度。

(7)可纠错性为了保证隐藏信息的完整性,使其在经过各种操作和变换后仍能很好的恢复,通常采取纠错编码方法。
5.3.1.2信息隐藏模型我们称待隐藏的信息为秘密信息(secretmessage),它可以是版权信息或秘密数据,也可以是一个序列号;而公开信息则称为载体信息(covermessage),如视频、音频片段。
这种信息隐藏过程一般由密钥(Key)来控制,即通过嵌入算法(Embeddingalgorithm)将秘密信息隐藏于公开信息中,而隐蔽载体(隐藏有秘密信息的公开信息)则通过信道(Communicationchannel)传递,然后检测器(Detector)利用密钥从隐蔽载体中恢复/检测出秘密信息。
562 信息安全工程师教程 图5-13信息的隐藏和提取系统模型 5.3.1.3常用算法信息隐藏及数字水印技术是近几年来国际学术界兴起的一个前沿研究领域。
虽然其 载体可以是文字、图像、语音等不同格式的文件,但是使用的方法没有本质的区别。
因此,下面将以信息隐藏技术在图像中的应用即遮掩消息选用数字图像的情况为例进行说明。
在图像中应用的信息隐藏技术基本上可以分为两大类:空域法和频域法。
空域法就是直接改变图像元素的值,一般是在图像元素的亮度和色带中加入隐藏的内容。
频域法是利用某种数学变换,将图像用频域表示,通过更改图像的某些频域系数加入待隐消息,然后再利用反变换来生成隐藏有其他信息的图像。
各种不同的数学变换都可以被使用,目前已有的方法,主要集中在小波变换,频率变换,DCT变换等等。
①空域算法:该类算法中典型的算法是将信息嵌入到随机选择的图像点中最不重要的像素位(LSB)上,这可保证嵌入的水印是不可见的。
LSB算法的主要优点是可以实现高容量和较好的不可见性,但是该算法的鲁棒性差,容易被第三方发现和得到,遭到破坏,对图像的各种操作如压缩,剪切等都会使算法的可靠性受到影响。
为了增强算法的性能,提出了各种改进的方法,如利用伪随机序列,以随机的顺序修改图像的LSB;在使用密钥的情况下,才能得到正确的嵌入序列。
另外一个常用方法是利用像素的统计特征将信息嵌入像素的亮度值中。
②Patchwork算法:该算法是随机选择N对像素点(ai,bi),然后将每个ai点的亮度值加
1,每个bi点的亮度值减
1,这样整个图像的平均亮度保持不变。
适当地调整参 第5章应用系统安全基础 563 数,Patchwork方法对JPEG压缩、FIR滤波以及图像裁剪有一定的抵抗力,但该方法嵌入的信息量有限。
为了嵌入更多的水印信息,可以将图像分块,然后对每一个图像块进行嵌入操作。
③频域算法:该类算法中,大部分算法采用了扩展频谱通信(spreadmunication)技术。
算法实现过程为:先计算图像的离散余弦变换(DCT),然后将水印叠加到DCT域中幅值最大的前k系数上(不包括直流分量),通常为图像的低频分量。
若DCT系数的前k个最大分量表示为D={di},i=
1,…,k,水印是服从高斯分布的随机实数序列W={wi},i=
1,…,k,那么水印的嵌入算法为di=di(1+awi),其中常数a为尺度因子,控制水印添加的强度。
然后用新的系数做反变换得到水印图像
I。
解码函数则分别计算原始图像I和水印图像I*的离散余弦变换,并提取嵌入的水印W*,再做相关检验以确定水印的存在与否。
该方法即使当水印图像经过一些通用的几何变形和信号处理操作而产生比较明显的变形后仍然能够提取出一个可信赖的水印拷贝。
一个简单改进是不将水印嵌入到DCT域的低频分量上,而是嵌入到中频分量上以调节水印的健壮性与不可见性之间的矛盾。
另外,还可以将数字图像的空间域数据通过离散傅里叶变换(DFT)或离散小波变换(DWT)转化为相应的频域系数;其次,根据待隐藏的信息类型,对其进行适当编码或变形;再次,根据隐藏信息量的大小和其相应的安全目标,选择某些类型的频域系数序列(如高频或中频或低频);再次,确定某种规则或算法,用待隐藏的信息的相应数据去修改前面选定的频域系数序列;最后,将数字图像的频域系数经相应的反变换转化为空间域数据。
该类算法的隐藏和提取信息操作复杂,隐藏信息量不可能很大,但抗攻击能力强,很适合于数字作品版权保护的数字水印技术中。
④压缩域算法:基于JPEG、MPEG标准的压缩域数字水印系统不仅节省了大量的完全解码和重新编码过程,而且在数字电视广播及VOD(VideoonDemand)中有很大的实用价值。
相应地,水印检测与提取也可直接在压缩域数据中进行。
下面介绍一种针对MPEG-2压缩视频数据流的数字水印方案。
虽然MPEG-2数据流语法允许把用户数据加到数据流中,但是这种方案并不适合数字水印技术,因为用户数据可以简单地从数据流中去掉,同时,在MPEG-2编码视频数据流中增加用户数据会加大位率,使之不适于固定带宽的应用,所以关键是如何把水印信号加到数据信号中,即加入到表示视频帧的数据流中。
对于输入的MPEG-2数据流而言,它可分为数据头信息、运动向量(用于运动补偿)和DCT编码信号块3部分,在方案中只有MPEG-2数据流最后一部分数据被改变,其原理是,首先对DCT编码数据块中每一输入的Huffman码进行解码和逆量化,以得到当前数据块的一个DCT系数;其次,把相应水印信号块的变换系数与之相加,从而得到水印叠加的DCT系数,再重新进行量化和Huffman编码,最后对新的Huffman码字的位数n1与原来的无水印系数的码字n0进行比较,只在n1不大于n0的时候,才能传输水印码字,否则传输原码字,这就保证了不增加视频数据流位率。
该方法有一个 564 信息安全工程师教程 问题值得考虑,即水印信号的引入是一种引起降质的误差信号,而基于运动补偿的编码
方案会将一个误差扩散和累积起来,为解决此问题,该算法采取了漂移补偿的方案来抵消因水印信号的引入所引起的视觉变形。
⑤NEC算法:该算法由NEC实验室的Cox等人提出,该算法在数字水印算法中占有重要地位,其实现方法是,首先以密钥为种子来产生伪随机序列,该序列具有高斯N(0,1)分布,密钥一般由作者的标识码和图像的哈希值组成,其次对图像做DCT变换,最后用伪随机高斯序列来调制(叠加)该图像除直流(DC)分量外的1000个最大的DCT系数。
该算法具有较强的鲁棒性、安全性、透明性等。
由于采用特殊的密钥,因此可防止IBM攻击,而且该算法还提出了增强水印鲁棒性和抗攻击算法的重要原则,即水印信号应该嵌入源数据中对人感觉最重要的部分,这种水印信号由独立同分布随机实数序列构成,且该实数序列应该具有高斯分布N(0,1)的特征。
⑥生理模型算法:人的生理模型包括人类视觉系统HVS(HumanVisualSystem)和人类听觉系统HAS。
该模型不仅被多媒体数据压缩系统利用,同样可以供数字水印系统利用。
利用视觉模型的基本思想均是利用从视觉模型导出的JND(JustNoticeableDifference)描述来确定在图像的各个部分所能容忍的数字水印信号的最大强度,从而能避免破坏视觉质量。
也就是说,利用视觉模型来确定与图像相关的调制掩模,然后再利用其来插入水印。
这一方法同时具有好的透明性和强健性。
5.3.1.4信息隐藏技术的发展
1.传统的信息隐藏技术数字化的信息隐藏技术的确是一门全新的技术,但是它的思想其实来自于古老的隐写术。
大约在公元前440年,隐写术就已经被应用了。
当时,一位剃头匠将一条机密消息写在一位奴隶的光头上,然后等到奴隶的头发长起来之后,将奴隶送到另一个部落,从而实现了这两个部落之间的秘密通信。
类似的方法,在20世纪初期仍然被德国间谍所使用。
实际上,隐写术自古以来就一直被人们广泛地使用。
隐写术的经典手法实在太多,此处仅列举一些例子:①使用不可见墨水给报纸上的某些字母作上标记来向一个间谍发送消息;②在一个录音带的某些位置上加一些不易察觉的回声等;③将消息写在木板上然后用石灰水把它刷白;④将信函隐藏在信使的鞋底里或妇女的耳饰中;⑤由信鸽携带便条传送消息;⑥通过改变字母笔画的高度或在掩蔽文体的字母上面或下面挖出非常小的小孔(或用无形的墨水印制作非常小的斑点)来隐藏正文;⑦在纸上打印各种小像素点组成的块来对诸如日期、打印机标识符、用户标识符等信息进行编码;⑧将秘密消息隐藏“在大小不超过一个句号或小墨水点的空间里”(1857年); 第5章应用系统安全基础 565 ⑨将消息隐藏在微缩胶片中(1870年);⑩把在显微镜下可见的图像隐藏在耳朵、鼻孔以及手指甲里,或者先将间谍之间要传送的消息经过若干照相缩影步骤后缩小到微粒状,然后粘在无关紧要的杂志等文字材料中的句号或逗号上(第一次世界大战期间);在印刷旅行支票时使用特殊紫外线荧光墨水;制作特殊的雕塑或绘画作品,使得从不同角度看会显出不同的印像;用藏头诗,或者歧义性的对联、文章等文学作品;在乐谱中隐藏信息(简单地将字母表中的字母映射到音符);古代,我国还有一种很有趣的信息隐藏方法,即消息的发送者和接收者各有一张完全相同的带有许多小孔的掩蔽纸张,而这些小孔的位置是被随机选择并戳穿的,发送者将掩蔽纸张放在一张纸上,将秘密消息写在小孔位置上,移去掩蔽纸张,然后根据纸张上留下的字和空格编写一段掩饰性的文章,接收者只要把掩蔽纸张覆盖在该纸张上就可立即读出秘密消息,直到16世纪早期,意大利数学家Cardan又重新发展了这种方法,该方法现在被称作卡登格子隐藏法;利用掩蔽材料的预定位置上某些误差和风格特性来隐藏消息。
比如,利用字的标准体和斜体来进行编码,从而实现信息隐藏,将版权信息和序列号隐藏在行间距和文档的其他格式特性之中;通过对文档的各行提升或降低三百分之一英寸来表示0或1等等。

2.数字信息隐藏技术的发展第一篇关于图像数字水印的文章发表于1994年,1995年以后,数字水印技术获得广泛的关注并且得到了较快的发展,仅1998年就发表了100篇左右有关数字水印技术的文章。
与此同时,也出现了一些研究隐秘术的文章。
据Anderson和Petitcolas的统计,到1999年8月止,国际上关于信息隐藏技术的文章已达400篇左右。
在过去几年中,从事信息隐藏技术的研究人员和组织不断增加,国际上已先后于1996年在英国,1998年在波兰,1999年在德国,2001在美国,2002年在荷兰召开了五次信息隐藏学术会议。
一些信息处理领域的国际会议上也都有关于信息隐藏技术的专题。
ProceedingofIEEE于1999年7月出版了关于多媒体信息隐藏的专辑。
我国也先后于1999年12月,2000年6月和2001年9月举办了三次信息隐藏技术研讨会,国家863计划智能计算机专家组会同中科院自动化所模式识别国家重点实验室和北京邮电大学信息安全中心还召开了专门的“数字水印学术研讨会”。
随着理论研究的进行,相关的软件也不断推出,并

标签: #文件 #保存文件 #文件 #电子版 #文件 #换行 #文件 #压缩文件