免费智能真题库 > 历年试卷 > 软件评测师 > 2015年下半年 软件评测师 下午试卷 案例
  第5题      
  知识点:   安全性   安全性测试   加密   AE   AES   PKI   RSA   电子商务   访问控制   管理功能   检验   密码算法   密钥管理   认证   认证机制   授权管理   注册

 
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某互联网企业开发了一个大型电子商务平台,平台主要功能是支持注册卖家与买家的在线交易。在线交易的安全性是保证平台上正常运行的重要因素,安全中心是平台上提供安全保护措施的核心系统,该系统的主要功能包括:
(1)密钥管理功能,包括公钥加密体系中的公钥及私钥生成与管理,会话密的协商、生成、更新及分发等。
(2)基础加解密服务,包括基于RSA、ECC及AES 等多密码算法的期本加解密服务。
(3)认证服务,提供基于PKI及用户名/口令的认证机制。
(4)授权服务,为应用提供资源及功能的授权管理访问控制服务。
现企业测试部门拟对产台的密钥管理加密服务系统进行安全性测试,以检验平台的安全性
 
问题:5.1   (4分)给出安全中心需应对的常见安全攻击手段并简要说明。
 
问题:5.2   针对安全中心的安全性测试,可采用哪些基本的安全性测试方法?
 
问题:5.3   (5分)请分别说明针对密钥管理功能进行功能测试和性能测试各自应包含的基本测试点。
 
问题:5.4   (5分)请分别说明针对加解密服务功能进行功能测试和性能测试各自应包含的基本测试点。
 
 
 

   知识点讲解    
   · 安全性    · 安全性测试    · 加密    · AE    · AES    · PKI    · RSA    · 电子商务    · 访问控制    · 管理功能    · 检验    · 密码算法    · 密钥管理    · 认证    · 认证机制    · 授权管理    · 注册
 
       安全性
        安全性是指软件产品在指定使用环境下,获得可接受的对人类、事务、软件、财产或环境有害的风险级别的能力。
 
       安全性测试
        测试应用程序的体系结构和设计可以消除很多与设计有关的漏洞,从而提高应用程序的整体安全性。设计时修复漏洞要比在开发后期解决问题更为简单,也更经济,因为开发后期可能要进行大量的重新工程处理。开发时如果考虑一些与目标部署环境相关的设计以及该环境定义的安全策略,可确保应用程序的部署更加平稳和安全。如果应用程序已创建完毕,安全测试可修复漏洞并完善未来的设计。
        一个完整的Web安全体系测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核和日志记录等几个方面入手。
               安全体系测试
                      部署与基础结构
                      检验底层网络和主机基础结构提供给应用程序的安全设置,然后检验运行环境要求的所有限制。此外,考虑部署的拓扑结构以及中间层应用程序服务器、外围区域以及内部防火墙对设计的影响。检验下列问题,确定可能存在的部署和基础结构问题。
                      . 网络是否提供了安全的通信。
                      数据在客户端与服务器(或服务器与服务器)之间传输时最易受到攻击。网络负责数据传输的完整性和私密性。如果必须保证数据安全,可使用适当的加密算法。此外,还必须确保网络设备安全。因为这是维护网络完整性所必需的。
                      . 部署拓扑结构是否包括内部防火墙。
                      如果内部防火墙将Web服务器与应用程序服务器(或数据库服务器)分隔开来,则需要考虑下列问题,确保设计能适应这种配置。
                      ①下游服务器如何验证Web服务器的身份;
                      ②如果使用域账户和Windows身份验证,防火墙是否打开了必要的端口;
                      ③是否使用分布式事务;
                      ④如果Web服务器使用DTC(Microsoft Distributed Transaction Coordinator)的服务来启动分布式事务,内部防火墙是否为DTC通信打开了必要的端口。
                      . 部署拓扑结构中是否包括远程应用程序服务器。
                      如果部署拓扑结构包括了一个物理远程中间层,则需要考虑下列问题。
                      ①是否使用企业服务。如果是,是否已限制了DCOM端口范围,内部防火墙是否打开了这些端口。
                      ②是否使用.NET远程处理。
                      ③远程处理用在受信服务器方案中,网络是否支持IPSec策略。
                      ④ASP.NET承载远程组件是否支持身份验证和授权。
                      ⑤是否使用Web服务,如果是,中间层Web服务如何验证Web应用程序的身份。Web应用程序是否通过在Web服务代理中配置凭据来使Web服务验证Web服务器的身份,如果否,Web服务如何明确调用者。
                      . 基础结构安全性要求的限制是什么。
                      设计是否假定主机基础结构安全限制要失效。例如,安全限制可能要求根据所需的服务、协议或账户特权来对设计进行权衡。需要考虑下列问题。
                      ①是否依赖可能不可用的服务或协议。开发和测试环境中可用的服务和协议可能在生产环境中不可用。
                      ②是否依赖敏感的账户特权。设计应尽量使用特权最少的进程、服务和用户账户。
                      ③要执行的操作是否要求可能不被许可的敏感特权。例如,应用程序是否要创建线程级模拟令牌来创建资源访问的服务身份。这项操作要求“作为操作系统的一部分”特权,而该特权不应授予Web服务器进程(因为可能增加进程被利用的风险)。如果需要此功能,设计应对更高级别的特权进行划分,例如,在进程外的企业服务应用程序中。
                      . 目标环境支持怎样的信任级别。
                      运行环境的代码访问安全信任级别决定了代码可访问的资源,以及它能执行的特权操作。请检查运行环境支持的信任级别。如果允许Web应用程序以完全信任级别运行,代码将能够访问操作系统安全性许可的任何资源。
                      如果Web应用程序必须以受限信任级别运行,则代码能访问的资源类型以及能执行的特权操作都将受到一定的限制。在部分信任案例中,设计应对特权代码进行沙盒(sandboxing)处理。此外,还应使用不同的程序集来分隔特权代码。这样,可以对特权代码和应用程序的其余部分单独配置特权代码,然后授予必要的附加代码访问权限。
                      注意:如果应用程序部署在共享服务器(或应用程序将由宿主公司运行),信任级别通常是个问题。此时,需要检查安全策略,然后确定Web应用程序的信任级别。
                      输入验证
                      需要对应用程序验证输入内容的方式进行检验,因为很多Web应用程序攻击都故意使用格式错误的输入。SQL注入、跨站点脚本(XSS)、缓冲区溢出、代码注入以及无数其他拒绝服务和特权提升攻击都可利用输入验证中的漏洞。下表中重点列出了常见的输入验证漏洞。
                      
                      常见的输入验证漏洞
                      测试时应考虑下列问题,以帮助发现潜在的输入验证安全问题。
                      . 如何验证输入。
                      设计指定的输入验证方法是什么?首先,设计必须展示策略。应用程序应对收到的所有输入进行约束、拒绝和净化。约束输入是最佳的方法,因为针对已知有效类型、模式和范围对数据进行验证,要比通过查找已知坏字符来验证数据简单得多。
                      测试时应考虑下列问题,帮助识别潜在的漏洞。
                      ①是否清楚入口点。
                      确保设计标出了应用程序的入口点,以便跟踪各个输入字段的操作。可考虑Web页输入、输入到组件和Web服务,以及从数据库输入。
                      ②是否清楚信任边界。
                      如果输入是从信任边界内受信源传递的,并非总要验证输入;但如果输入是从不受信任的源传递的,必须验证输入。
                      ③是否验证Web页输入。
                      不要将最终用户看作受信任的数据源。确保对正常和隐藏的表单字段、查询字符串和cookie都进行验证。
                      ④是否对传递到组件或Web服务的参数进行验证。
                      如果不进行验证,惟一的安全条件就是数据接收自当前信任边界之内。但是,如果使用深层防御策略,则需要使用多层验证。
                      ⑤是否验证从数据库中检索的数据。
                      这种形式的输入也应验证,特别是当其他应用程序也写入该数据库时。不要对其他应用程序的数据验证程度进行假设。
                      ⑥是否将方法集中起来。
                      对于相同类型的输入字段类型,检验使用的是否是相同的验证和筛选库,确保一致地执行验证规则。
                      ⑦是否依赖客户端的验证。
                      客户端验证可用于降低到服务器的回程数量,但不能依靠它来维护安全性,因为它很容易被忽略。需要在服务器验证所有的输入。
                      . 如何处理输入。
                      检查应用程序处理输入的方式,不同类型的处理可能导致不同类型的漏洞。例如,如果在SQL查询中使用输入,应用程序可能易受SQL注入的攻击。
                      测试中考虑下列问题,帮助发现潜在的漏洞。
                      ①应用程序是否易受规范化问题的影响。
                      检查应用程序是否使用基于输入的名称来制定安全决策。例如,应用程序是否接受用户名、文件名或URL。由于名称的表示方法多种多样,以上各项都极易造成规范化错误问题。如果应用程序接受输入作为名称,则应确保对它们进行验证并在处理之前将它们转换为规范的表示法。
                      ②应用程序是否易受SQL注入攻击。
                      密切注意形成SQL数据库查询的所有输入字段。确保对这些字段的类型、格式、长度和范围进行正确的验证。此外,检查查询的生成方式。如果使用参数化的存储过程,输入参数将被当作文本,而不会当作可执行代码。这是降低风险的一种有效措施。
                      ③应用程序是否易受XSS攻击。
                      如果在HTML输出流中包括输入字段,可能受到XSS攻击。确保对输入进行验证,并对输出进行编码。密切注意系统对接受一定范围HTML字符的输入字段的处理方法。
                      身份验证
                      检查应用程序验证调用者身份的方法,在何处使用身份验证,如何确保凭据在存储中或通过网络传递的安全。身份验证中的漏洞可能导致应用程序易受哄骗攻击、词典攻击、会话劫持等。下表重点列出了常见的身份验证漏洞。
                      
                      常见的身份验证漏洞
                      测试中需要考虑下列问题,确定在应用程序进行身份验证的方法中的潜在漏洞。
                      . 是否区分公共访问和受限访问。
                      如果应用程序既有不要求身份验证的公共区域,也有要求身份验证的受限区域,检查站点设计区分二者的方法。必须为受限的页和资源使用单独的子文件夹,然后在IIS中将它们配置为要求SSL来确保安全。这种方法允许只在需要的地方使用SSL来确保敏感数据和身法验证cookie的安全性,从而避免了因在整个站点中使用SSL而造成的附加性能负担。
                      . 是否明确服务账户要求。
                      设计应明确连接不同资源(包括数据库、目录服务和其他类型的网络资源)的服务账户范围。设计中不能使用单个的、有高度特权的账户(有足够的权限连接多种不同类型的资源)。
                      ①设计是否要求特权最少的账户。
                      检查设计并准确标识各账户执行特定功能所需的特权,然后在任何情况下都使用特权最少的账户。
                      ②应用程序是否要维护服务账户凭据。
                      如果是,确保加密这些凭据,然后保存在受限的位置中。例如,保存在有受限访问控制列表(ACL)的注册表项。
                      . 如何验证调用者身份。
                      测试时考虑与调用者身份验证相关的下列事项。具体事项由设计中使用的身份验证类型决定。
                      ①是否在网络中传递明文凭据。如果使用表单或基本身份验证(或使用Web服务并在SOAP头中传递凭据),确保使用SSL来保护传输中的凭据。
                      ②是否实现自己的用户存储。如果是,检查用户凭据的存储位置和存储方式。一种常见错误是将明文或加密密码保存在用户存储中。实际上,必须保存密码的哈希值来进行身份验证。
                      如果根据SQL Server用户存储验证凭据,密切注意用户名和密码的输入。检查是否存在恶意注入的SQL字符。
                      ③是否使用表单身份验证。如果是,除使用SSL保护凭据外,还应使用SSL来保护身份验证cookie。此外,还要检查设计是否使用受限的会话生存期来抵御cookie重播攻击,并确保加密cookie。
                      . 如何验证数据库的身份。
                      如果应用程序要连接数据库,检查使用的身份验证机制、打算使用的账户(一个或多个),以及如何在数据库中授权应用程序。
                      明确下列问题有助于对数据库身份验证进行评价。
                      ①是否使用SQL身份验证。
                      在理想情况下,设计使用Windows身份验证来连接SQL Server,因为这种方法本身更加安全。如果使用SQL身份验证,检查在网络中和数据库连接字符串中确保凭据安全的方法。
                      如果网络基础结构不提供IPSec加密通道,确保在数据库中安装服务器证书来提供自动SQL凭据加密。此外,还要检验确保数据库连接字符串安全的方法,因为这些字符串中包含SQL账户的用户名和密码。
                      ②是否使用进程账户。
                      如果使用应用程序的进程账户并使用Windows身份验证连接SQL服务器,应在设计中使用特权最少的账户。本地ASP.NET账户便是为此提供的,尽管对于本地账户来说,用户需要在数据库服务器上创建一个相同的账户。
                      如果打算使用域账户,首先确保它是特权最少的账户,然后打开相关的端口来确保所有相关防火墙都支持Windows身份验证。
                      ③是否使用服务账户。
                      如果设计要求使用多个身份来支持数据库中的高粒度授权,则需要检查保存账户凭据(在理想情况下,这些凭据使用数据保护API(DPAPI)加密并保存在安全注册表项中)的方法,以及使用服务身份的方法。
                      此外,还要检查使用哪些进程通过该服务账户创建模拟的安全上下文。该操作不应由Microsoft Windows 2000中的ASP.NET应用程序进程来完成,因为它将强制提升进程账户的特权,并授予“作为操作系统的一部分”特权。这种情况必须尽量避免,它将大大增加风险。
                      ④是否考虑使用匿名Internet用户身份。
                      对于使用表单或Passport身份验证的应用程序而言,可为各个程序配置单独的匿名用户账户。然后,启用模拟并使用匿名身份来访问数据库。该方法适于对同一服务器的不同应用程序进行单独的授权和身份跟踪。
                      ⑤是否使用原始用户身份。
                      如果设计要求模拟原始调用者,必须考虑该方法是否能提供足够的伸缩性,因为连接池是无效的。另一种备选方法是,通过受信的查询参数在应用程序级流动原始调用者身份。
                      ⑥如何保存数据库连接字符串。
                      如果数据库连接字符串硬编码,或以明文形式保存在配置文件或COM+目录中,则很容易受到攻击。实际上,应加密它们,然后限制对加密数据的访问。
                      . 是否强制使用强账户管理措施。
                      如果应用程序使用Windows身份验证,Windows安全策略将强制使用强密码、受限登录和其他最佳账户管理策略。其他情况,则由应用程序层负责这些措施。测试要考虑与应用程序账户管理相关的下列问题。
                      ①应用程序是否强制使用强密码。
                      例如,ASP.NET Web页是否使用正则表达式来验证密码复杂性规则。
                      ②是否限制失败登录的次数。
                      这样做有助于对抗词典攻击。
                      ③是否在故障发生后公开过多的信息。
                      确保不显示类似“不正确的密码”这样的消息,因为它将告诉恶意用户:用户名是正确的。结果,恶意用户便可集中精力破解密码。
                      ④是否强制定期更改密码。
                      如果不强制定期更改密码,用户极有可能不更改自己的密码,结果风险更高。
                      ⑤是否能在泄露发生时迅速禁用账户。
                      如果账户泄露,是否能方便地禁用账户来防止攻击者继续使用账户。
                      ⑥应用程序是否记录登录企图。
                      记录失败的登录企图是检测攻击者试图侵入的有效方法。
                      授权
                      检查应用程序是如何向用户授权的。还要检验应用程序在数据库中是如何被授权的,以及如何控制系统级资源的访问。授权中的漏洞可能导致信息泄漏、数据篡改及特权提升。使用深层防御策略是一种重要的方法,它可应用于应用程序的授权策略中。下表重点列出了常见的授权漏洞。
                      
                      常见的授权漏洞
                      测试中需要考虑下列问题,帮助验证应用程序设计的授权策略。
                      . 如何向最终用户授权。
                      应在设计时从两种角度考虑授权。首先,考虑最终用户授权。哪些用户可访问哪些资源,并执行哪些操作。其次,如何防止恶意用户使用应用程序访问系统级资源。考虑下列问题,验证应用程序的授权策略。
                      ①是否使用深层防御策略。
                      确保设计不依赖于单个网关守卫来加强访问控制。考虑该网关守卫失败(或攻击者设法忽略它)时发生的情况。
                      ②使用了哪些网关守卫。
                      可能的选择有IISWeb权限、NTFS权限、ASP.NET文件授权(仅适用于Windows身份验证)、URL授权和用户权限请求。如果不使用某个特定类型,需要明确不使用的理由。
                      ③是否使用基于角色的方法。
                      如果是,如何维护角色列表,维护角色列表所需的管理界面安全性如何。
                      ④角色是否提供足够的特权隔离。
                      设计是否提供了适当的粒度,使不同用户角色的关联特权得到充分的隔离。避免出现仅为满足特定用户需要而授予角色较高特权的情况。
                      . 如何在数据库中授权应用程序。
                      在应用程序中连接数据库的账户必须有受限的能力,只需满足应用程序的要求即可,不要再高了。
                      应用程序是否使用存储过程来访问数据库呢?建议应用程序使用存储过程来访问数据库,因为一般用户只能授予应用程序登录访问特定存储过程的权限。可以限制登录不在数据库中直接执行创建/读取/更新/删除(CRUD)操作。
                      . 如何将访问限定于系统级资源。
                      设计应用程序时,应考虑应用程序在可访问系统级资源方面的限制。只能授予应用程序访问最低限度的资源。这是缓解风险的一种策略,可在应用程序遭受攻击时限制受损程度。考虑下列问题。
                      ①设计是否使用代码访问安全性。
                      代码访问安全性提供了一种资源约束模型,该模型可防止代码(和Web应用程序)访问特定类型的系统级资源。如果使用代码访问安全性,设计必将受到影响。明确是否在设计规划中包括代码访问安全性,然后通过对特权代码进行隔离和沙盒处理(sandboxing),并将资源访问代码置于自己独立的程序集中,从而进行相应的设计。
                      ②应用程序使用哪些身份。
                      设计必须明确应用程序使用的所有身份,包括进程身份和所有模拟身份(包括匿名Internet用户账户和服务身份)。此外,设计还要指出这些身份要访问的资源。
                      在部署时,可对系统级资源配置正确的ACL,确保应用程序的身份只能访问所需的资源。
                      配置管理
                      如果应用程序提供了可配置的管理界面,要检查确保管理界面安全的方法。此外,还要检查如何确保敏感配置数据的安全。下表显示了常见的配置管理漏洞。
                      
                      常见的配置管理漏洞
                      测试时考虑下列问题,帮助验证应用程序设计在配置管理方面的方法。
                      . 是否支持远程管理。
                      如果设计指定了远程管理,必须确保管理界面和配置存储的安全,因为这些操作本身非常敏感,而且通过管理界面访问的数据也很敏感。考虑与远程管理设计相关的下列问题。
                      ①是否使用强身份验证。
                      必须要求对所有管理界面用户进行身份验证。使用强身份验证,如Windows或客户端证书身份验证。
                      ②是否加密网络通信数据。
                      使用经过加密的信道,如IPSec或虚拟专用网络(VPN)连接提供的通道。不支持不安全通道中的远程管理。IPSec允许对可用来管理服务器的客户计算机的身份和数量进行限制。
                      . 是否保证配置存储的安全。
                      明确应用程序的配置存储,然后检查限制访问这些存储的方法,以及确保存储中数据安全的方法。
                      ①配置存储是否在Web空间中。
                      对于保存在Web空间文件中的配置数据,其安全性要低于保存在Web空间之外的数据。主机配置错误或未发现的Bug都可能导致攻击者通过HTTP检索,并下载配置文件。
                      ②配置存储中的数据是否安全。
                      确保在存储中加密关键的配置数据项(如数据库连接字符串、加密密钥和服务账户凭据)。
                      ③如何限制对配置存储的访问。
                      确保管理界面提供必要的授权,只有经过验证的管理员才可访问并操作这些数据。
                      . 是否隔离管理员特权。
                      如果管理界面支持不同的功能(如站点内容更新,服务账户重新配置和数据库连接详细信息),要确认管理界面支持基于角色的授权,从而区分内容开发人员和操作员或系统管理员。例如,不必许可更新静态Web站点的人改变客户的信用额度或重新配置数据库连接字符串。
                      敏感数据
                      检查应用程序对存储中、应用程序内存中以及网络中的敏感数据的处理方法。下表显示了与处理敏感数据相关的常见漏洞。
                      
                      敏感数据处理中的常见漏洞
                      测试中要考虑下列问题,帮助验证应用程序处理敏感数据的方法。
                      . 是否存储机密信息。
                      机密信息包括了应用程序的配置数据,如账户密码和加密密钥。如果可能,明确其他避免保存机密信息的设计方法。如果要处理机密信息,由系统平台处理它们,尽可能不在应用程序中承担这一任务。如果确实要保存机密信息,则要考虑下列问题。
                      ①是否能避免存储机密信息。
                      如果使用其他的实施技术,是否能避免存储机密信息。例如,如果只需了解用户是否知道密码,则无需存储密码。或者,仅保存单向的密码哈希值。
                      此外,如果使用Windows身份验证,可通过嵌套凭据来避免存储连接字符串。
                      ②如何存储机密信息。
                      如果使用加密,如何确保加密密钥的安全。考虑使用系统平台提供的DPAPI加密,这种加密能替用户完成密钥管理。
                      ③在何处保存机密信息。
                      检查应用程序保存加密数据的方法。要获得尽可能高的安全性,应使用Windows ACL限制对加密数据的访问。确认应用程序不以明文或源代码形式存储机密信息。
                      如果使用本地安全机构(LSA),检索机密信息的代码必须使用管理员特权才可以运行,这将增加风险。另一种不要求扩展特权的方法是使用DPAPI。
                      ④如何处理机密信息。
                      检验应用程序访问机密信息的方法,以及它们以明文形式存留在内存中的时间。机密信息通常应根据需要检索,并尽快使用,然后丢弃。
                      ⑤是否在cookie中存储机密信息。
                      如果是,应确保cookie是加密的,且不会永久保存在客户计算机中。
                      . 如何存储敏感数据。
                      如果存储了敏感的应用程序数据(如客户信用卡详细信息),检查数据保护方法。
                      ①使用怎样的加密算法。
                      应使用强加密算法来加密。例如,使用较长的密钥(如Triple DES)。
                      ②如何确保加密密钥的安全性。
                      数据的安全性与加密密钥安全性同等重要。因此,检查确保密钥安全的方法。在理想状况下,使用DPAPI加密密钥并保存在受限位置(如注册表项中)来确保安全。
                      . 是否在网络中传递敏感数据。
                      如果通过网络传递敏感数据,应确保通过应用程序加密这些数据,或通过加密的通信链接来传递它们。
                      . 是否记录敏感数据。
                      检查应用程序(或主机)是否在明文日志文件中记录用户账户密码这样的敏感数据。通常,必须避免这样做。确保应用程序不在查询字符串中传递敏感数据,因为查询字符串会被记录,并可在客户端浏览器地址栏中直接看到。
                      会话管理
                      由于Web应用程序基于无状态的HTTP协议生成,因此会话管理是应用程序级任务。检查应用程序的会话管理方法,因为它将直接影响应用程序的整体安整。下表显示了与会话管理相关的常见漏洞。
                      
                      常见的会话管理漏洞
                      测试中需要考虑下列问题,帮助验证应用程序处理敏感数据的方法。
                      . 如何交换会话标识符。
                      检查应用程序管理用户会话的会话标识符,以及这些会话标识符的交换方式。考虑下列问题。
                      ①是否通过未加密的通道传递会话标识符。
                      如果使用会话标识符(如cookie中包含的令牌)跟踪会话状态,检查是否仅通过加密的通道(如SSL)传递标识符或cookie。
                      ②是否加密会话cookie。
                      如果使用表单身份验证,确保应用程序使用“”元素中的protection="All"属性加密身份验证。建议同时使用SSL和这种方法,以便降低XSS攻击的风险,XSS攻击可设法窃取用户的身份验证cookie。
                      ③是否在查询字符串中传递会话标识符。
                      确保应用程序不在查询字符串中传递会话标识符。这些字符串可在客户端轻易修改,使用户能作为另一用户访问应用程序,访问其他用户的私有数据,并可能提升特权。
                      . 是否限制会话生存期。
                      检查应用程序认为会话标识符有效的时间。应用程序应限制这段时间的长度,以降低会话劫持和重播攻击的威胁。
                      . 如何确保会话状态存储的安全。
                      检查应用程序存储会话状态的方法。会话状态可存储在Web应用程序进程、ASP.NET会话状态服务,或SQL Server状态存储中。如果使用远程状态存储,请确保Web服务器到该远程存储的链接使用IPSec或SSL加密,以保护在网络中传输的数据。
                      加密
                      如果应用程序使用加密来提供安全性,检查加密的内容以及加密的使用方法。下表显示了与加密有关的常见漏洞。
                      
                      常见的加密漏洞
                      测试中需要考虑下列问题,帮助验证应用程序处理敏感数据的方法。
                      . 为何使用特定的算法。
                      加密只有在正确使用时才能提供真正的安全保障。不同作业使用不同的算法。算法的程度也非常重要。考虑下列问题,评价所使用的加密算法。
                      ①是否开发自己的加密技术。
                      不应开发自己的加密技术。众所周知,加密算法和例程的开发非常难,而且很难成功。自定义实施的安全保护一般很弱,基本上不如久经考验的系统平台服务提供的安全措施。
                      ②是否使用合适的密钥大小来应用正确的算法。
                      检查应用程序使用的算法及使用该算法的目的。较大的密钥可提供较高的安全性,但会影响性能。对于在数据存储中长时间保存的永久数据,较强的加密非常重要。
                      . 如何确保加密密钥的安全性。
                      加密数据的安全与密钥的安全同等重要。要破解加密数据,攻击者必须能检索出密钥和密码文本。因此,需要检查设计,确保加密密钥和加密数据的安全。考虑下列评价问题。
                      ①如何确保加密密钥的安全。
                      如果使用DPAPI,将由系统平台为用户管理密钥。其他情况下,则由应用程序负责密钥管理。检查应用程序确保加密密钥安全的方法。一种较好的方法是,使用DPAPI加密其他加密形式所需的加密密钥。然后,安全地保存加密密钥,例如,将其放在配置了受限ACL的注册表项目下。
                      ②回收密钥的频率如何。
                      不能滥用密钥。同一密钥使用的时间越长,被发现的可能性就越高。设计是否考虑了怎样回收密钥、回收的频率,以及如何将它们分发并安置在服务器中。
                      参数操作
                      检查应用程序使用参数的方法。这些参数包括了在客户端和服务器间传递的表单字段、查询字符串、cookie、HTTP头和视图状态。如果使用像查询字符串这样的参数传递敏感数据(如会话标识符),恶意客户端可轻松使用简单的参数操作逃避服务器端检查。下表显示了常见的参数操作漏洞。
                      
                      常见的参数操作漏洞
                      测试中需要考虑下列问题,以帮助确保您的设计不受参数操作攻击影响。
                      . 是否验证所有的输入参数。
                      确保应用程序验证所有的输入参数,包括正常和隐藏的表单字段、查询字符串和cookie。
                      . 是否在参数中传递敏感数据。
                      如果应用程序在参数(如查询字符串或表单字段)中传递敏感数据,应检查应用程序使用这种方法而不是更安全的方法(传递会话标识符)的原因。例如,在加密的cookie中传递会话标识符。使用这些信息将会话与在服务器状态存储中维护的用户状态相关联。考虑下列评价问题。
                      ①是否加密包含敏感数据的cookie。
                      如果应用程序使用包含敏感数据的cookie,如用户名或角色列表,确保它是经过加密的。
                      ②是否在查询字符串或表单字段中传递敏感数据。
                      不能这样做,因为就操作查询字符串或表单字段中的数据而言,没有简便的方法可用。实际操作过程中,应考虑使用加密的会话标识符,然后将敏感数据保存在服务器的会话状态存储中。
                      ③是否保护视图状态。
                      如果Web页或控件使用视图状态在HTTP请求之间维持状态,确保视图状态经过加密,并使用消息验证代码(MAC)检查其完整性。用户可在计算机级配置该设置,也可按页配置。
                      . 是否为了安全问题而使用HTTP头数据。
                      确保Web应用程序不根据HTTP头中的信息制定安全决策,因为攻击者可轻松地操作头数据。不要依赖HTTP引用站点字段的值来检查源于页的请求是否由Web应用程序生成,这将带来漏洞。这种操作本身很不安全,因为引用站点字段可在客户端轻松更改。
                      异常管理
                      检查应用程序处理错误的方法。应前后一致地使用结构化的异常处理。同样,确保应用程序不在发生异常时公开太多信息。下表显示了两大异常管理漏洞。
                      
                      常见的异常管理漏洞
                      测试时应考虑下列问题,以确保设计不易受到异常管理安全漏洞的影响。
                      . 是否使用结构化的异常处理。
                      检查应用程序如何使用结构化的异常处理。设计应强制在整个应用程序中使用一致的结构化异常处理。这将创建更强大的应用程序,使应用程序不易处在暴露安全漏洞的不一致状态下。
                      . 是否向客户端公开了太多的信息。
                      确保恶意用户无法利用错误信息中的细节信息,考虑下列问题。
                      ①是否在服务器中捕获、处理和日志记录异常。
                      确保应用程序不会将内部异常情况传播到应用程序边界以外。异常应在服务器中捕获并记录日志。如果必要,应向客户端返回常规错误信息。
                      ②是否使用集中的异常管理系统。
                      在应用程序中一致处理并日志记录异常的最佳方法是,使用正式的异常处理系统。还可将该系统与操作组监视系统性能的监控系统相结合。
                      ③是否定义了一组自定义错误信息。
                      设计必须明确,应用程序在发生严重错误时使用自定义的错误信息。确保这些消息中不包含任何可能被恶意用户利用的敏感数据。
                      审核和日志记录
                      检查应用程序的审核和日志记录方法。除了防止抵赖之外,定期分析日志文件有助于识别入侵迹象。下表显示了常见的审核和日志记录漏洞。
                      
                      常见的审核和日志记录漏洞
                      测试中需要考虑下列问题,帮助验证应用程序审核和日志记录的方法。
                      . 是否明确了要审核的关键活动。
                      设计必须定义要审核的活动。考虑下列问题:
                      ①是否审核失败的登录尝试。
                      这允许用户检测入侵和密码破解企图。
                      ②是否审核其他关键操作。
                      确保审核其他关键事件,包括数据检索、网络通信和管理功能(如启用和禁用日志记录)。
                      . 是否考虑过如何流动原始调用者身份。
                      设计必须确保跨多个应用程序层来进行审核活动。为此,原始调用者的身份必须在每个层都可用。
                      ①是否跨应用程序层进行审核。
                      检验每个层是否都按预期计划对活动进行审核。
                      ②如何同步多个日志。
                      日志文件是证明个人犯罪行为和解决抵赖问题的法律程序所必需的。通常,在访问资源的时候,如果由访问资源的同一例程生成审核,则审核最具权威性。确认应用程序设计中与日志文件同步相关的问题,然后记录某种形式的请求标识符,确保多个日志文件条目可互相关联,并能关联至同一请求。
                      ③如何流动原始调用者身份。
                      如果不在操作系统级流动原始调用者身份(例如,由于此方法伸缩性有限),应明确应用程序如何流动原始调用者身份。对于跨层审核,这是必需的(对于授权来说,可能同样必需)。
                      此外,如果多个用户映射到同一应用程序角色,应确保应用程序记录原始调用者的身份。
                      . 是否考虑过保护日志文件管理策略。
                      检查应用程序设计是否考虑到日志文件的备份、存档和分析。日志文件必须定期存档来确保不被充满;如果充满,应开始回收。而且,还要经常分析日志文件来检测入侵迹象。此外,确保执行备份的账户都是特权最少的,确保仅为备份而公开的所有附加信道安全。
               应用及传输安全
               Web应用系统的安全性从使用的角度可分为应用级的安全与传输级的安全,安全性测试也可从这两个方面入手。
               应用级的安全测试的主要目的是查找Web应用系统自身程序设计中存在的安全隐患,主要测试区域如下。
               . 注册与登录:现在的Web应用系统基本采用先注册,后登录的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否存在大小写敏感,可以试多少次的限制,是否可以不登录而直接浏览某个页面等。
               . 在线超时:Web应用系统是否有超时的限制,也就是说,用户登录后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登录才能正常使用。
               . 操作留痕:为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件,是否可追踪。
               . 备份与恢复:为了防范系统的意外崩溃造成的数据丢失,备份与恢复手段是一个Web系统的必备的功能。备份与恢复根据Web系统对安全性的要求可以采用多种手段,如数据库增量备份、数据库完全备份、系统完全备份等。出于更高的安全性要求,某些实时系统经常会采用双机热备或多机热备。除了对于这些备份与恢复方式进行验证测试以外,还要评估这种备份与恢复方式是否满足Web系统的安全性需求。
               传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器端可能存在的安全漏洞,以及服务器防范非法访问的能力。一般测试项目包括以下几个方面。
               . HTTPS和SSL测试:默认的情况下,安全HTTP(Secure HTTP)通过安全套接字SSL(Secure Socket Layer)协议在端口443上使用普通的HTTP。HTTPS使用的公共密钥的加密长度决定的HTTPS的安全级别,但从某种意义上来说,安全性的保证是以损失性能为代价的。除了还要测试加密是否正确,检查信息的完整性和确认HTTPS的安全级别外,还要注意在此安全级别下,其性能是否达到要求。
               . 服务器端的脚本漏洞检验:存在于服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。这可以通过设计一些相应的测试案例来进行验证。
               . 防火墙测试:防火墙是一种主要用于防护非法访问的路由器,在Web系统中是很常用的一种安全系统。防火墙测试是一个很大很专业的课题,但这里所涉及的只是对防火墙的功能、设置进行测试,以判断是否满足本Web系统的安全需求。
 
       加密
        如果应用程序使用加密来提供安全性,检查加密的内容以及加密的使用方法。下表显示了与加密有关的常见漏洞。
        
        常见的加密漏洞
        测试中需要考虑下列问题,帮助验证应用程序处理敏感数据的方法。
        . 为何使用特定的算法。
        加密只有在正确使用时才能提供真正的安全保障。不同作业使用不同的算法。算法的程度也非常重要。考虑下列问题,评价所使用的加密算法。
        ①是否开发自己的加密技术。
        不应开发自己的加密技术。众所周知,加密算法和例程的开发非常难,而且很难成功。自定义实施的安全保护一般很弱,基本上不如久经考验的系统平台服务提供的安全措施。
        ②是否使用合适的密钥大小来应用正确的算法。
        检查应用程序使用的算法及使用该算法的目的。较大的密钥可提供较高的安全性,但会影响性能。对于在数据存储中长时间保存的永久数据,较强的加密非常重要。
        . 如何确保加密密钥的安全性。
        加密数据的安全与密钥的安全同等重要。要破解加密数据,攻击者必须能检索出密钥和密码文本。因此,需要检查设计,确保加密密钥和加密数据的安全。考虑下列评价问题。
        ①如何确保加密密钥的安全。
        如果使用DPAPI,将由系统平台为用户管理密钥。其他情况下,则由应用程序负责密钥管理。检查应用程序确保加密密钥安全的方法。一种较好的方法是,使用DPAPI加密其他加密形式所需的加密密钥。然后,安全地保存加密密钥,例如,将其放在配置了受限ACL的注册表项目下。
        ②回收密钥的频率如何。
        不能滥用密钥。同一密钥使用的时间越长,被发现的可能性就越高。设计是否考虑了怎样回收密钥、回收的频率,以及如何将它们分发并安置在服务器中。
 
       AE
        AE是一款影视后期包装软件,全称After Effects,许多电影的制作都用到了这个软件,它是由Adobe公司开发的。AE借鉴了许多优秀软件的成功之处,将视频特效合成上升到了新的高度。关键帧、路径的引入使人们在控制高级的二维动画时游刃有余;高效的视频处理系统确保了高质量视频的输出;令人眼花缭乱的特技系统使AE能实现使用者的一切创意。
        AE同样保留有Adobe优秀的软件相互兼容性,它可以非常方便地调入Photoshop及Illustrator的层文件;Premiere的项目文件也可以近乎完美地再现于AE中,甚至还可以调入Premiere的EDL文件。AE的新版本还能将二维和三维在一个合成中灵活地混合起来。用户可以在二维、三维中或者混合起来并在层的基础上进行匹配。使用三维的层切换可以随时把一个层转化为三维;二维和三维的层都可以水平或垂直移动;三维层可以在三维空间中进行动画操作,同时保持与灯光、阴影和相机的交互影响。AE支持大部分的音频、视频、图文格式,甚至还能将记录三维通道的文件调入并进行更改。
 
       AES
        1997年美国国家标准技术研究所(NIST)发起征集AES(Advanced Encryption Standard)算法的活动,并专门成立了AES工作组,其目的是确定一个非保密的、公开的、全球免费使用的分组密码算法,用于保护下一世纪政府的敏感信息。NIST规定候选算法必须满足下面的要求:
        . 密码必须是没有密级的,绝不能像商业秘密那样来保护它;
        . 算法的全部描述必须公开披露;
        . 密码必须可以在世界范围内免费使用;
        . 密码系统支持至少128比特长的分组;
        . 密码支持的密钥长度至少为128、192和256比特。
        参与AES的候选算法中,Rijndael提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此NIST确定选择Rijndael作为AES。
 
       PKI
        PKI的基本概念
        1.PKI的总体架构
        PKI(Public Key Infrastructure,公开密钥基础设施)是以不对称密钥加密技术为基础,以数据机密性、完整性、身份认证和行为不可抵赖性为安全目的,来实施和提供安全服务的具有普适性的安全基础设施。其内容包括数字证书、不对称密钥密码技术、认证中心、证书和密钥的管理、安全代理软件、不可否认性服务、时间戳服务、相关信息标准、操作规范等。它是支持安全五要素的技术基础设施。
        一个网络的PKI包括以下几个基本构件:
        .数字证书:由认证机构经过数字签名后发给网上信息交易主体(企业或个人、设备或程序)的一段电子文档。文档中包括主体名称、证书序号、发证机构名称、证书有效期、密码算法标识、公钥和私钥信息及其他属性信息等。数字证书提供了PKI的基础。
        .认证中心:即CA,是PKI的核心。它是公正、权威、可信的第三方网上认证机构,负责数字证书的签发、撤销和生命周期的管理,还提供密钥管理和证书在线查询等服务。
        .数字证书注册审批机构:即RA,是CA的数字证书发放、管理的延伸。它负责数字证书申请者信息的录入、审核以及数字证书发放等工作。RA系统是整个CA中心得以正常运营不可缺少的一部分。
        .数字签名:利用发信者的私钥和可靠的密码算法对待发信息或其电子摘要进行加密处理,这个过程和结果就是数字签名。
        .密钥和证书管理工具:管理和审计数字证书的工具,认证中心使用它来管理一个在CA上的证书。
        .双证书体系:PKI采用双证书体系,非对称算法支持RSA和ECC算法,对称密码算法支持国家密码管理委员会指定的算法。
        从宏观来看,PKI的体系架构概括为两大部分:
        .PKI信任服务体系:是为整个业务应用系统提供基于PKI数字证书认证机制的实体身份鉴别服务,包括了认证机构、注册机构、证书库、证书撤销和交叉认证等。
        .PKI密钥管理中心:即KMC,提供密钥管理服务,向授权管理部门提供应急情况下的特殊密钥回复功能。包括密钥管理机构、密钥备份和恢复、密钥更新和密钥历史档案等。
        2.双证书、双密钥机制
        一对密钥(一张证书)的弊端:
        .如果密钥不备份,当密钥损坏时,以前加密的信息不可解密。
        .如果密钥不备份,很难实现信息审计。
        .如果密钥不备份,数字签名的不可否认性很难保证。
        两对密钥(两张证书)的优点:
        .一对密钥用于签名,一对密钥用于加密。
        .加密密钥在密钥管理中心生成及备份,签名密钥由用户自行生成并保存。
        3.数字证书的主要内容
        数字证书是公开密钥体制的一种密钥管理媒介。主要内容有:
        .主体名称:唯一标识证书所有者的标识符。
        .签证机关名称(CA):唯一标识证书签发者的标识符。
        .主体的公开密钥:证书所有者的公开密钥。
        .CA的数字签名:CA对证书的数字签名,保证证书的权威性。
        .有效期:证书在该期间内有效。
        .序列号:CA产生的唯一性数字,用户证书管理。
        .用途:主体公钥的用途。
        数字证书生命周期
        PKI/CA对数字证书的管理是按照数字证书的生命周期实施的。数字证书的生命周期包括:
        .安全需求确定:安全需求的确定必须完成的工作包括标识需要证书的应用程序、确定所需要的安全级别、标识需要证书的用户、确定如何保护私有密钥。
        .证书登记:从CA申请和接收一个证书的过程称为登记。这个过程可分为几个步骤,包括生成一个密钥对、收集登记信息、申请证书、用CA的公开密钥对申请进行加密、验证信息、创建证书、发送或邮寄证书。
        .证书分发:企业CA向用户颁发证书。
        .证书撤回:CRL(证书撤销列表)不会撤回客户端上的所有证书,仅仅撤回CRL中指定的证书。
        .证书更新:当证书达到它的截止有效日期时会自动变得无效,需要更新一个新证书。
        .证书审计:使用审计来监控与证书服务器上证书的颁发有关的活动。
        证书映射为使用者使用数字证书进行实际的应用操作提供了安全的、实际的“交接认证”工作。证书到用户账户的映射可以分为:
        .一对一映射:创建从个人证书到相应的应用里用户账户的关系。当客户数目相对很小时,使用一对一映射。
        .多对一映射:为所有证书创建从一个特定CA到一个应用的用户账户的关系。能够把多个证书映射到一个用户的账户中。
        X.509的信任模型
        X.509中信任的定义为:如果实体A认为实体B严格按A所期望的那样行动,则A信任B。
        PKI/CA的信任结构类型包括:
        .层次信任结构:所有实体都信任唯一的根CA。
        .分布式信任结构:把信任分散到两个或更多个(或许是很多个)CA上。
        .Web模型的信任结构:与严格层次结构模型相似。在该模型中,许多CA的公钥被预装在正在使用的标准浏览器上,浏览器用户最初信任这些CA并把它们作为证书检验的根。
        .以用户为中心的信任模型:每个用户都对决定依赖哪个证书和拒绝哪个证书直接完全地负责。
        .交叉认证的信任关系:交叉认证是一种把以前无关的CA连接在一起的有用机制,从而使得在它们各自主体群之间的信任关系得到有效扩展,使彼此的终端实体之间的安全通信成为可能。
        认证机构职责
        认证中心(CA)是PKI/CA提供核心服务的执行机构,广义上还应包含证书的申请注册机构(RA)。
        CA的主要职责包括:
        .数字证书管理。
        .证书和证书库。
        .密钥备份以及恢复。
        .密钥和证书的更新。
        .证书历史档案。
        .客户端软件。
        .交叉认证。
        认证中心提供的服务主要包括:
        .认证:身份识别和鉴别,确认实体即为自己所声明的实体,鉴别身份的真伪。
        .数据完整性服务:确认数据没有被修改。
        .数据保密性服务:采用“数字信封”机制。
        .不可否认性服务:从技术上保证实体对其行为的认可。
        .公证服务:即数据认证,证明数据的有效性和正确性。
        PKI/CA应用模式
        PKI/CA是S-MIS和S2-MIS的安全基础平台。
        PKI/CA的应用范围包括:
        .电子商务应用。
        .电子政务。
        .网上银行。
        .网上证券。
        .其他应用。
 
       RSA
        RSA算法是非对称算法,由Ronald Rivest、Adi Shamir、Leonard Adleman三人共同在1977年公开发表。在RSA加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。目前,SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。RSA签名验证是网络连接系统中最常见的执行操作之一。
        RSA算法基于大整数因子分解的困难性,该算法的步骤如下:
        第一步,生成两个大素数pq
        第二步,计算这两个素数的乘积n=pq
        第三步,计算小于n并且与n互素的整数的个数,即欧拉函数φ(n)=(p-1)(q-1)。
        第四步,选取一个随机数e,且满足1<e<φ(n),并且eφ(n)互素,即gcd(eφ(n))=1。
        第五步,计算d=e-1modφn)。
        第六步,保密dpq,而公开ne,即d作为私钥,而ne作为公钥。
        下面,举一个RSA加密的具体实例。设素数p=3,q=17,并令e=13,则RSA的加密操作如下:
        第一步,计算nn=pq=3×17=51,得出公钥n=51,e=13。
        第二步,计算φ(n)和dφ(n)=(p-1)(q-1)=2×16=32。因为d=e-1modφ(n),所以,其中kp-1和q-1的最大公约数。由此算出d=(2×32+1)/13=5,即解密密钥d=5。
        第三步,加密和解密处理计算。假设Bob的公开密钥是e=13、n=51,Alice需要将明文“2”发送给Bob,则Alice首先用Bob的公开密钥加密明文,即:
        C=Memodn=213mod 51=8192 mod 51=32
        然后,Bob收到Alice发来的密文C后,用自己的私钥d解密密文C,即:
        M=Cdmodn=325mod 51=1024×1024×32 mod 51=512 mod 51=2
        RSA安全性保证要做到选取的素数pq足够大,使得给定了它们的乘积n后,在事先不知道pq的情况下分解n是计算上不可行的。因此,破译RSA密码体制基本上等价于分解n。基于安全性考虑,要求n长度至少应为1024比特,然而从长期的安全性来看,n的长度至少应为2048比特,或者是616位的十进制数。
 
       电子商务
        加快发展电子商务,是企业降低成本、提高效率、拓展市场和创新经营模式的有效手段,是提升产业和资源的组织化程度、转变经济发展方式、提高经济运行质量和增强国际竞争力的重要途径,对于优化产业结构、支撑战略性新兴产业发展和形成新的经济增长点具有非常重要的作用,对于满足和提升消费需求、改善民生和带动就业具有十分重要的意义,对于经济和社会可持续发展具有愈加深远的影响。
               电子商务的概念
               对于电子商务至今尚无统一定义,根据电子商务发展历程,电子商务概念可分为原始电子商务与现代电子商务。
               (1)原始电子商务概念。使用电子信息技术工具进行商务活动。凡使用了诸如电报、电话、广播、电视、传真以及计算机、计算机网络等手段、工具和技术进行商务活动,都可以称之为电子商务。
               (2)现代电子商务概念。电子商务通常是指在网络环境下,买卖双方不需见面,实现网上(线上)交易、在线支付(或者货到付款)、智能配送以及相关综合服务的一切活动,是完全创新的或者在一定程度上模拟传统商务流程的一种以信息化手段应用为典型特征的商业运营模式。可以认为EDI(电子数据交换)是连接原始电子商务和现代电子商务的纽带。
               电子商务的功能
               电子商务本质上是依靠信息技术,将贸易(交易)中涉及的信息流、资金流、物流、服务评价管理、售后管理、客户管理等整合在网络之上的业务集合。主要功能包括:广告宣传、咨询洽谈、网上订购、网上支付、交易管理、商品推送、商户管理、账户管理、供应链管理等等。
               电子商务应该具有以下基本特征:
               (1)普遍性。电子商务作为一种新型的交易方式,将生产企业、流通企业、消费者以及金融企业和监管者集成到了数字化的网络经济中。
               (2)便利性。参与电子商务的各方不受地域、环境、交易时间的限制,能以非常简洁的方式完成传统上较为繁杂的商务活动。
               (3)整体性。电子商务能够规范事务处理的工作流程,将人工操作和电子信息处理集成为一个不可分割的整体,保证交易过程的规范和严谨。
               (4)安全性。与传统的商务活动不同,电子商务必须采取诸如加密、身份认证、防入侵、数字签名、防病毒等技术手段确保交易活动的安全性。
               (5)协调性。商务活动本身是一种磋商、协调的过程,客户与企业之间、企业与企业之间、客户与金融服务部门之间、企业与金融服务部门之间、企业与配送部门之间等需要有序地协作,共同配合来完成交易。
               电子商务系统的结构和要点
               电子商务不仅包括信息技术,还包括交易规则、法律法规和各种技术规范、电子商务系统的结构如下图所示。
               
               电子商务系统的结构
               电子商务的基础设施包括4个,即网络基础设施、多媒体内容和网络出版的基础设施、报文和信息传播的基础设施、商业服务的基础设施。此外,技术标准,政策、法律等是电子商务系统的重要保障。
               (1)网络基础设施。网络基础设施主要是信息传输平台,这个信息传输平台主要运行TCP/IP网络协议,承载在电信通信网、有线电视网、专线网络之上,接入方式除了传统计算机有线网络之外,无线网络(4G或WiFi)也是非常便利和普及的接入技术。
               (2)多媒体内容和网络出版的基础设施。多媒体内容和网络出版的基础设施主要负责管理电子商务活动涉及的各种信息,包括文字、语音、图像、视频等,采用的信息技术主要包括:
               .数据库及数据库管理系统,负责多媒体信息的存储和管理。
               . Web服务器系统,负责信息的发布和展示,提供客户与电子商务系统交互的接口。
               .搜索工具,便于客户快速准确地找到有关信息。
               .内容和出版管理工具,负责网页内容的编辑和组织。
               (3)报文和信息传播的基础设施。报文和信息传播的基础设施负责提供传播信息的工具和方式,包括电子邮件系统、在线交流系统、基于HTTP或HTTPS的信息传输系统、流媒体播放系统等。
               (4)商业服务的基础设施。商业服务的基础设施负责提供实现标准的网上商务活动的服务,包括:价格目录、电子支付网关、安全认证等。
               (5)技术标准。技术标准是信息发布和传递的基础,是网上信息一致性的保证。包括:用户接口、传输协议、信息发布标准、安全协议等技术标准。
               (6)政策和法律。政策包括围绕电子商务的税收制度、信用管理及收费、隐私问题等由政府制定的规章或制度。
               电子商务相关法律包括消费者权益保护、隐私保护、电子商务交易真实性认定、知识产权保护等方面的立法或法规。
               电子商务作为一门综合性的新兴商务活动,涉及面相当广泛,包括信息技术、金融、法律和市场等多种领域,这就决定了与电子商务相关的标准体系十分庞杂,几乎涵盖了现代信息技术的全部标准范围及尚待进一步规范的网络环境下的交易规则。安全、认证、支付和接口等标准是有待制定和完善的内容。
               电子商务的类型
               按照依托网络类型来划分,电子商务分为EDI(电子数据交换)商务、Internet(互联网)商务、Intranet(企业内部网)商务和Extranet(企业外部网)商务。
               按照交易的内容,电子商务可以分为直接电子商务和间接电子商务。直接电子商务向客户提供无形商品和各种服务,如电子书、软件、在线读物、视频、证券、期货、旅游产品等等,这些产品和服务可以直接通过网络向客户交付。间接电子商务包括向客户提供实体商品(有形商品)及有关服务,由于要求在广泛地域和严格时限内送达,一般会将商品和服务交由现代物流配送公司和专业服务机构去完成配送工作。
               按照交易对象,电子商务模式包括:企业与企业之间的电子商务(B2B)、商业企业与消费者之间的电子商务(B2C)、消费者与消费者之间的电子商务(C2C),电子商务与线下实体店有机结合向消费者提供商品和服务,称为020模式。
               (1)B2B模式即Business To Business,就是企业和企业之间通过互联网进行产品、服务及信息的交换,其发展经过了电子数据交换(EDI)、基本的电子商务(Basic e-commerce)、电子交易集市和协同商务等4个阶段。阿里巴巴(alibaba.com)是典型的B2B电子商务企业。
               (2)B2C模式即Business To Consumer,就是企业和消费者个人之间的电子商务,一般以零售业为主,企业向消费者提供网上购物环境,消费者通过Internet访问相关网站进行咨询、购买活动。京东、当当、苏宁等是典型的B2C电子商务企业。
               (3)C2C模式即Consumer To Consumer,就是消费者和消费者之间通过电子商务交易平台进行交易的一种商务模式,由于是个人与个人的交易,大众化成了C2C的最大特点。诚信在这种模式中对买卖行为影响巨大,并具有很高的商业价值,而假货问题是监管的重点。淘宝、易趣等是典型的C2C电子商务交易平台,电子交易平台不仅提供交易的网络环境,还扮演着管理者的角色。
               (4)020模式即Online To Offline,含义是线上购买线下的商品和服务,实体店提货或者享受服务。020平台在网上把线下实体店的团购、优惠的信息推送给互联网用户,从而将这些用户转换为实体店的线下客户。借助020,能够迅速地促进门店销售,特别适合餐饮、院线、会所等服务连锁企业,并且通过网络能够迅速掌控消费者的最新反馈,进行个性化服务和获取高粘度重复消费。
               电子商务对国民经济和社会发展的意义和作用
               (1)推动国民经济增长方式转变。电子商务是国民经济和社会信息化的重要组成部分,已经成为推动国民经济发展的新动力。发展电子商务是以信息化带动工业化、促进我国产业结构调整、推动经济增长方式由粗放型向集约型转变、提高国民经济运行质量和效率、走新型工业化道路的重大举措,对实现全面建设小康社会的宏伟目标具有十分重要的意义。
               (2)迎接经济全球化的机遇和挑战。加快电子商务发展是应对经济全球化带来的机遇和挑战、也是把握发展主动权、提高国际竞争力的必然选择,有利于提高我国在全球范围内配置资源的能力,提升我国经济的国际地位。
               (3)促进社会主义市场经济体制走向完善。电子商务发展将有力地促进商品和各种生产生活要素的流动,削弱妨碍公平竞争的制约因素,降低交易成本,推动全国统一市场的形成与完善,更好地实现市场对资源的基础性配置作用。
               我国电子商务现状和特点
               近些年,我国电子商务保持了持续快速发展的良好态势,电子商务不断普及和深化电子商务在我国工业、农业、商贸流通、交通运输、金融、旅游和城乡消费等各个领域的应用不断得到拓展,应用水平不断提高,正在形成与实体经济深度融合的发展态势。跨境电子商务活动日益频繁,移动电子商务成为发展亮点。大型企业网上采购和销售的比重逐年上升,部分企业的电子商务正在向与研发设计、生产制造和经营管理等业务集成协同的方向发展。电子商务在中小企业中的应用普及率迅速提高,网络交易额迅速增长占社会消费品零售总额比重逐年上升,成为拉动需求、优化消费结构的重要途径。
               电子商务支撑水平快速提高,电子商务平台服务、信用服务、电子支付、现代物流和电子认证等支撑体系加快完善。围绕电子商务信息、交易和技术等的服务企业不断涌现。电子商务信息和交易平台正在向专业化和集成化的方向发展。社会信用环境不断改善,为电子商务的诚信交易创造了有利的条件。网上支付、移动支付、电话支付等新兴支付服务发展迅猛。现代物流业快速发展,对电子商务的支撑能力不断增强,特别是网络零售带动了快递服务的迅速发展,2015年全年,全国快递服务企业业务量累计完成206.7亿件,同比增长48%,业务收入累计完成2769.6亿元,同比增长35.4%。通信运营商、软硬件及服务提供商等纷纷涉足电子商务,为用户提供相关服务。随着电子商务规模的不断扩大,各地政府大力推进电商发展,电子商务对于快递等上下游行业都有很强的带动作用,由此衍生出来的就业市场大幅增加。随之而来的客服、配送、技术等岗位供不应求。根据《国务院关于促进快递业发展的若干意见》,到2020年,我国快递市场规模稳居世界首位,快递年业务量达到500亿件,年业务收入达到8000亿元,年均新增就业岗位约20万个,全年支撑网络零售交易额突破10万亿元,日均服务用户2.7亿人次以上,有效降低商品流通成本。
               电子商务发展环境不断改善。网络用户规模快速增长,2015年互联网普及率达50.3%,网民规模达到6.88亿(数据来源:中国互联网络信息中心),移动电话用户总数达13.06亿户,移动电话用户普及率达95.5部/百人,其中,4G移动电话用户总数达38622.5万户,在移动电话用户中的渗透率达到29.6%(工业和信息化部,2015年通信运营业统计公报。网络服务能力不断提升,资费水平不断降低。全社会电子商务应用意识不断增强,应用技能得到有效提高。电子商务国际交流与合作日益广泛。相关部门协同推进电子商务发展的工作机制初步建立,围绕促进发展电子认证、网络购物、网上交易和支付服务等主题,出台了一系列政策、规章和标准规范,为构建适合国情和发展规律的电子商务制度环境进行了积极探索。
               总体而言,中国经济发展“电商化”趋势日益明显,电商交易规模和创新应用再创历史新高,网络交易量直线上升,电子商务的大发展大繁荣,对于中国经济无疑是一个新的增长点。同时,电子商务已经深刻影响传统IT市场和传统产业,业务模式和商业模式的变革正在对零售、教育、医疗、汽车、农业、化工、环保、能源等行业产生深刻影响,对传统行业的升级换代起到重要作用。
               加快电子商务发展的指导思想和基本原则
               (1)加快电子商务发展的指导思想。
               按照科学发展观的要求,紧紧围绕转变经济增长方式、提高综合竞争力的中心任务,实行体制创新,着力营造电子商务发展的良好环境,积极推进企业信息化建设,推广电子商务应用,加速国民经济和社会信息化进程,实施跨越式发展战略,走中国特色的电子商务发展道路。
               (2)加快电子商务发展的基本原则。
               .企业主体,政府推动。充分发挥企业在电子商务发展中的主体作用,坚持市场导向,运用市场机制优化资源配置。处理好政府与市场的关系,创建更加有利于电子商务发展的制度环境,综合运用政策、服务、资金等多种手段推进电子商务发展。
               .统筹兼顾,虚实结合。坚持网络经济与实体经济紧密结合发展的主流方向,全面拓展电子商务在各领域的应用,提高电子商务及相关服务水平,努力营造全方位的电子商务发展环境,推动区域间电子商务协调发展。
               .着力创新,注重实效。推动电子商务应用、服务、技术和集成创新,着重提高电子商务创新发展能力。立足需求导向,坚持务实创新,选准切入点,注重应用性和实效性,避免盲目跟风和炒作。
               .规范发展,保障安全。正确处理电子商务发展与规范的关系,在发展中求规范,以规范促发展。以网络运行环境安全可靠为基础,促进网络交易主体与客体的真实有效、交易过程的可鉴证,加强对失信行为的惩戒力度,形成电子商务可信环境。
               建立和完善电子商务发展的支撑保障体系
               (1)法律法规体系。认真贯彻实施《中华人民共和国电子签名法》,抓紧研究电子交易、信用管理、安全认证、在线支付、税收、市场准入、隐私权保护和信息资源管理等方面的法律法规问题,尽快提出制定相关法律法规的意见;积极研究第三方支付服务的相关法规;根据电子商务健康有序发展的要求,抓紧研究并及时修订相关法律法规;加快制订在网上开展相关业务的管理办法;推动网络仲裁、网络公证等法律服务与保障体系建设;打击电子商务领域的非法经营以及危害国家安全、损害人民群众切身利益的违法犯罪活动,保障电子商务的正常秩序。
               (2)标准规范体系。建立并完善电子商务国家标准规范体系。提高标准化意识,充分调动各方面积极性,抓紧完善电子商务的国家标准体系;鼓励以企业为主体,联合高校和科研机构研究制定电子商务关键技术标准和规范,参与国际标准的制订和修正,积极推进电子商务标准化进程。
               (3)安全认证体系。建立健全安全认证体系。按照有关法律规定,制定电子商务安全认证管理办法,进一步规范密钥、证书、认证机构的管理,注重责任体系建设,发展和采用自主知识产权的加密与认证技术;整合现有资源,完善安全认证基础设施,建立布局合理的安全认证体系,实现行业、地方等安全认证机构的交叉认证,为社会提供可靠的电子商务安全认证服务。
               (4)信用体系。加快信用体系建设。加强政府监管、行业自律以及部门间的协调与联合,鼓励企业积极参与,按照完善法规、特许经营、商业运作、专业服务的方向,建立科学、合理、权威、公正的信用服务机构;建立健全相关部门信用信息资源的共享机制,建设在线信用信息服务平合,实现信用数据的动态采集、处理、交换;严格信用监督和失信惩戒机制,逐步形成既符合我国国情又与国际接轨的信用服务体系。
               (5)在线支付体系。推进在线支付体系建设。加强制定在线支付业务规范和相关技术标准:引导商业银行、中国银联等机构建设安全、快捷、方便的在线支付平台,大力推广使用银行卡、网上银行等在线支付工具,进一步完善在线资金清算体系,推动在线支付业务规范化、标准化并与国际接轨。
               (6)现代物流体系。大力发展现代物流体系。充分利用铁道、交通、民航、邮政、仓储和商业网点等现有物流资源,完善物流基础设施建设:广泛采用先进的物流技术与装备,优化业务流程,提升物流业信息化水平,提高现代物流基础设施与装备的使用效率和经济效益;发挥电子商务与现代物流的整合优势,大力发展第三方物流,有效支撑电子商务的广泛应用。
               (7)技术装备体系。发展电子商务相关技术装备和软件。积极引进、消化和吸收国外先进适用的电子商务应用技术,鼓励技术创新,加快具有自主知识产权的电子商务硬件和软件产业化进程,提高电子商务平台软件、应用软件和终端设备等关键产品的自主开发能力和装备能力。
               (8)服务体系。推动电子商务服务体系建设。充分利用现有资源,发挥中介机构的作用,加强网络化、系统化、社会化的服务体系建设,开展电子商务工程技术研究、成果转化、咨询服务和工程监理等服务工作。
               (9)运行监控体系。研究风险防范措施,加强业务监督和风险控制;逐步建立和完善电子商务统计和评价体系,推动电子商务服务业健康发展。
               发展电子商务重点任务
               (1)提高大型企业电子商务水平。发挥大型企业电子商务主力军的作用,进一步促进企业电子商务应用系统的规模发展和品牌建设,提高网络集中采购水平和透明化程度,提升企业营销能力。深化大型工业企业电子商务应用,促进实体购销渠道和网络购销渠道互动发展,提高供应链和商务协同水平。推动大型商贸流通企业通过电子商务提高流通效率,扩展流通渠道和市场空间。鼓励有条件的大型企业电子商务平台向行业电子商务平台转化。
               (2)推动中小企业普及电子商务。鼓励中小企业应用第三方电子商务平台,开展在线销售、采购等活动,提高生产经营和流通效率。引导中小企业积极融入龙头企业的电子商务购销体系,发挥中小企业在产业链中的专业化生产、协作配套作用。鼓励有条件的中小企业自主发展电子商务,创新经营模式,扩展发展空间,提高市场反应能力。鼓励面向产业集群和区域特色产业的第三方电子商务平台发展,帮助中小企业通过电子商务提高竞争力。稳健推进各类专业市场发展电子商务,促进网上市场与实体市场的互动发展,为中小企业应用电子商务提供良好条件。
               (3)促进重点行业电子商务发展。积极发展农业电子商务,促进农资和农产品流通体系的发展,拓宽农民致富渠道。着力推进工业电子商务,促进工业从生产型制造向服务型制造转变。深化商贸流通领域电子商务应用,促进传统商贸流通业转型升级。鼓励综合性和行业性信息服务平台深挖掘产业信息资源,拓展服务功能,创新服务产品,提高信息服务水平。促进大宗商品,电子交易平台规范发展,创新商业模式,形成与实体交易互动发展的服务形式。推动交通运输、铁路、邮政、文化、旅游、教育、医疗和金融等行业应用电子商务,促进服务方式转变。
               (4)推动网络零售规模化发展。鼓励生产、流通和服务企业发展网络零售,积极开发适宜的商品和服务。培育一批信誉好、运作规范的网络零售骨干企业。发展交易安全、服务完善、管理规范和竞争有序的网络零售商城。整合社区商业服务资源,发展社区电子商务。促进网络购物群体快速成长。拓展网络零售商品和服务种类,拓宽网络零售渠道,满足不同层次消费需求。发展个人间的电子商务,为开展二手物品交易、获取日常生活服务等提供便利。
               (5)提高政府采购电子商务水平。积极推进政府采购信息化建设,加快建设全国统一的电子化政府采购管理交易平台,探索利用政府采购交易平台实现政府采购管理和操作执行各个环节的协调联动,通过实现政府采购业务交易信息共享和全流程电子化操作,进一步规范政府采购行为,提高政府采购资金的使用效率。
               (6)促进跨境电子商务协同发展。鼓励有条件的大型企业“走出去”,面向金球资源市场,积极开展跨境电子商务,参与全球市场竞争,促进产品、服务质量提升和品牌建设,更紧密地融入全球产业体系,鼓励国内企业加强区域间电子商务合作,推动区域经济合作向纵深方向发展。鼓励商贸服务企业通过电子商务拓展进出口代理业务,创新服务功能,帮助中小企业提高国际竞争能力。
               (7)持续推进移动电子商务发展。鼓励各类主体加强合作,拓展基于新一代移动通信、物联网等新技术的移动电子商务应用。推动移动电子商务应用从生活服务和公共服务领域向工农业生产和生产性服务业领域延伸,积极推动电子商务在“三农”等重点领域的示范和推广。加强移动电子商务技术与装备的研发力度,完善移动电子商务技术体系。加快制定和完善移动电子商务相关技术标准和业务规范。
               (8)促进电子商务支撑体系协调发展。探索建立网上网下交易活动的合同履约信用记录,促进在线信用服务的发展。加快建设适应电子商务发展需要的社会化物流体系,优化物流公共配送中心、中转分拣场站、社区集散网点等物流设施的规划布局,积极探索区域性、行业性物流信息平台的发展模式。鼓励支付机构创新支付服务,丰富支付产品,推动移动支付、电话支付、预付卡支付等新兴电子支付健康有序发展,满足电子商务活动中多元化、个性化的支付需求。推动完善电子支付业务规则、技术标准,引导和督促支付机构规范运营。鼓励发展国际结算服务,提高对跨境电子商务发展的支撑能力。鼓励电子商务企业与相关支撑企业加强合作,促进物流、支付、信用、融资、保险、检测和认证等服务协同发展。
               (9)提高电子商务的安全保障和技术支撑能力。认真贯彻《电子签名法》,进一步发展可靠的电子签名与认证服务体系,提高认证服务质量,创新服务模式,推动可靠电子签名、电子认证和电子合同在电子商务中的实际应用,在统一的证书策略体系框架下推进电子签名认证证书的互认互操作,发挥电子签名的保障作用,提高电子交易的安全性和效率。鼓励软硬件及系统集成企业通过云服务等模式,为电子商务用户提供硬件、软件、应用安全服务。鼓励通信运营商加强宽带信息基础设施建设,提高新一代通信网络的覆盖范围和服务水平,为电子商务用户提供接入、服务托管及商务应用解决方案等服务。发挥国家科技计划的引领和支撑作用,加大对电子商务基础性研究、关键共性技术研究的支持力度,积极开展成果转化、咨询培训等工作。
 
       访问控制
        网络设备的访问可以分为带外(out-of-band)访问和带内(in-band)访问。带外(out-of-band)访问不依赖其他网络,而带内(in-band)访问则要求提供网络支持。网络设备的访问方法主要有控制端口(Console Port)、辅助端口(AUX Port)、VTY、HTTP、TFTP、SNMP。Console、AUX和VTY称为line。每种访问方法都有不同的特征。Console Port属于默认设置访问,要求物理上访问网络设备。AUX Port提供带外访问,可通过终端服务器或调制解调器Modem连接到网络设备,管理员可远程访问。VTY提供终端模式通过网络访问网络设备,通常协议是Telnet或SSH2。VTY的数量一般设置为5个,编号是从0到4。网络设备也支持使用HTTP协议进行Web访问。网络设备使用TFTP(Trivial File Transfer Protocol)上传配置文件。SNMP提供读或读写访问几乎所有的网络设备。
               CON端口访问
               为了进一步严格控制CON端口的访问,限制特定的主机才能访问路由器,可做如下配置,其指定X.Y.Z.1可以访问路由器:
               
               VTY访问控制
               为保护VTY的访问安全,网络设备配置可以指定固定的IP地址才能访问,并且增加时间约束。例如,X.Y.Z.12、X.Y.Z.5可以通过VTY访问路由器,则可以配置如下:
               
               超时限制配置如下:
               
               HTTP访问控制
               限制指定IP地址可以访问网络设备。例如,只允许X.Y.Z.15路由器,则可配置如下:
               
               除此之外,强化HTTP认证配置信息如下:
               
               其中,type可以设为enable、local、tacacs或aaa。
               SNMP访问控制
               为避免攻击者利用Read-only SNMP或Read/Write SNMP对网络设备进行危害操作,网络设备提供了SNMP访问安全控制措施,具体如下:
               一是SNMP访问认证。当通过SNMP访问网络设备时,网络设备要求访问者提供社区字符串(community strings)认证,类似口令密码。如下所示,路由器设置SNMP访问社区字符串。
               (1)设置只读SNMP访问模式的社区字符串。
               
               (2)设置读/写SNMP访问模式的社区字符串。
               
               二是限制SNMP访问的IP地址。如下所示,只有X.Y.Z.8和X.Y.Z.7的IP地址对路由器进行SNMP只读访问。
               
               三是关闭SNMP访问。如下所示,网络设备配置no snmp-server community命令关闭SNMP访问。
               
               设置管理专网
               远程访问路由器一般是通过路由器自身提供的网络服务来实现的,例如Telnet、SNMP、Web服务或拨号服务。虽然远程访问路由器有利于网络管理,但是在远程访问的过程中,远程通信时的信息是明文,因而,攻击者能够监听到远程访问路由器的信息,如路由器的口令。为增强远程访问的安全性,应建立一个专用的网络用于管理设备,如下图所示。
               
               建立专用的网络用于管理路由器示意图
               同时,网络设备配置支持SSH访问,并且指定管理机器的IP地址才可以访问网络设备,从而降低网络设备的管理风险,具体方法如下:
               (1)将管理主机和路由器之间的全部通信进行加密,使用SSH替换Telnet。
               (2)在路由器设置包过滤规则,只允许管理主机远程访问路由器。例如以下路由器配置可以做到:只允许IP地址是X.Y.Z.6的主机有权访问路由器的Telnet服务。
               
               特权分级
               针对交换机、路由器潜在的操作安全风险,交换机、路由器提供权限分级机制,每种权限级别对应不同的操作能力。在Cisco网络设备中,将权限分为0~15共16个等级,0为最低等级,15为最高等级。等级越高,操作权限就越多,具体配置如下:
               
 
       管理功能
        网桥的另一项重要功能是对扩展网络的状态进行监督,其目的就是为了更好地调整拓扑逻辑结构。有些网桥还可对转发和丢失的帧进行统计,以便进行系统维护。网桥管理还可以间接地监视和修改转发地址数据库,允许网络管理模块确定网络用户站点的位置,以此来管理更大的扩展网络。另外,通过调控生成树演绎参数能不定期地协调网络拓扑结构的演绎过程。
 
       检验
        检验(检查)包括测量、检查和测试等活动,目的是确定项目成果是否与要求相一致。检验可以在任何管理层次中开展,例如,一个单项活动的结果和整个项目的最后成果都可以检验。检验有各种名称,如复查、产品复查、审查及评审等。
        检查表(核对表)是常用的检验技术,检查表通常是由详细的条目组成的,用于检查和核对一系列必须采取的步骤是否已经实施的结构化工具,其具体内容因应用的不同而不同。检查表是一种有条理的工具,可简单可烦琐,语言表达形式可以是命令式,也可以是询问式。
        例如,下表是一个确认测试工具属性的检查表例子。
        
        一个确认测试工具属性的检查表例子
 
       密码算法
        密码技术用来进行鉴别和保密,选择一个强壮的加密算法是至关重要的。密码算法一般分为传统密码算法(又称为对称密码算法)和公开密钥密码算法(又称为非对称密码算法)两类,对称密钥密码技术要求加密解密双方拥有相同的密钥。而非对称密钥密码技术是加密解密双方拥有不相同的密钥。
        对称密钥密码体制从加密模式上可分为序列密码和分组密码两大类(这两种体制之间还有许多中间类型)。
        序列密码是军事和外交场合中主要使用的一种密码技术。其主要原理是:通过有限状态机产生性能优良的伪随机序列,使用该序列将信息流逐比特加密从而得到密文序列。可以看出,序列密码算法的安全强度由它产生的伪随机序列的好坏而决定。分组密码的工作方式是将明文分成固定长度的组(如64比特一组),对每一组明文用同一个密钥和同一种算法来加密,输出的密文也是固定长度的。在序列密码体制中,密文不仅与最初给定的密码算法和密钥有关,同时也是被处理的数据段在明文中所处的位置的函数;而在分组密码体制中,经过加密所得到的密文仅与给定的密码算法和密钥有关,而与被处理的明数据段在整个明文中所处的位置无关。
        不同于传统的对称密钥密码体制,非对称密码算法要求密钥成对出现,一个为加密密钥(可以公开),另一个为解密密钥(用户要保护好),并且不可能从其中一个推导出另一个。公共密钥与专用密钥是有紧密关系的,用公共密钥加密的信息只能用专用密钥解密,反之亦然。另外,公钥加密也用来对专用密钥进行加密。
        公钥算法不需要联机密钥服务器,只在通信双方之间传送专用密钥,而用专用密钥来对实际传输的数据加密解密。密钥分配协议简单,所以极大简化了密钥管理,但公共密钥方案较保密密钥方案处理速度慢,因此,通常把公共密钥与专用密钥技术结合起来实现最佳性能。
 
       密钥管理
        密钥是有生命周期的,它包括密钥和证书的有效时间,以及已撤销密钥和证书的维护时间等。密钥既然要求保密,这就涉及密钥的管理问题,任何保密也只是相对的,是有时效的。密钥管理主要是指密钥对的安全管理,包括密钥产生、密钥备份、密钥恢复和密钥更新等。
        (1)密钥产生。密钥对的产生是证书申请过程中重要的一步,其中产生的私钥由用户保留,公钥和其他信息则交于CA(Certificate Authority)中心进行签名,从而产生证书。根据证书类型和应用的不同,密钥对的产生也有不同的形式和方法。对普通证书和测试证书,一般由浏览器或固定的终端应用来产生,这样产生的密钥强度较小,不适合应用于比较重要的安全网络交易。而对于比较重要的证书,如商家证书和服务器证书等,密钥对一般由专用应用程序或CA中心直接产生,这样产生的密钥强度大,适合于重要的应用场合。
        另外,根据密钥的应用不同,也可能会有不同的产生方式。例如,签名密钥可能在客户端或RA(Register Authority)中心产生,而加密密钥则需要在CA中心直接产生。
        (2)密钥备份和恢复。在一个PKI(Public Key Infrastructure,公开密钥体系)系统中,维护密钥对的备份至关重要,如果没有这种措施,当密钥丢失后,将意味着加密数据的完全丢失,对于一些重要数据,这将是灾难性的。所以,密钥的备份和恢复也是PKI密钥管理中的重要一环。换句话说,即使密钥丢失,使用PKI的企业和组织必须仍能够得到确认,受密钥加密保护的重要信息也必须能够恢复。当然,不能让一个独立的个人完全控制最重要的主密钥,否则可能引起严重后果。
        企业级的PKI产品至少应该支持用于加密的安全密钥的存储、备份和恢复。密钥一般用口令进行保护,而口令丢失则是管理员最常见的安全疏漏之一。所以,PKI产品应该能够备份密钥,即使口令丢失,它也能够让用户在一定条件下恢复该密钥,并设置新的口令。
        (3)密钥更新。如果用户可以一次又一次地使用同样密钥与别人交换信息,那么密钥也同其他任何密码一样存在着一定的安全性问题,虽然说用户的私钥是不对外公开的,但是也很难保证私钥长期的保密性,很难保证不被泄露。如果某人偶然地知道了用户的密钥,那么用户曾经和另一个人交换的每一条消息都不再是保密的了。另外,使用一个特定密钥加密的信息越多,提供给窃听者的材料也就越多,从某种意义上来讲也就越不安全了。
        每一个由CA颁发的证书都会有有效期,密钥对生命周期的长短由签发证书的CA中心来确定,各CA系统的证书有效期限有所不同,一般为2~3年。当用户的私钥被泄露或证书的有效期快到时,用户应该更新私钥。这时用户可以废除证书,产生新的密钥对,申请新的证书。
        (4)多密钥的管理。假设在某机构中有100个人,如果他们任意两人之间可以进行秘密对话,那么总共需要多少密钥呢?每个人需要知道多少密钥呢?也许很容易得出答案,如果任何两个人之间要不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数是1000、10 000或更多,这种办法显然就过于愚蠢了,管理密钥将是一件非常困难的事情。为此需要研究并开发用于创建和分发密钥的加密安全的方法。
        Kerberos提供了一种解决这个问题的较好方案,它是由MIT发明的,使保密密钥的管理和分发变得十分容易,但这种方法本身还存在一定的缺点。为能在因特网上提供一个实用的解决方案,Kerberos建立了一个安全的、可信任的密钥分发中心(Key Distribution Center,KDC),每个用户只要知道一个和KDC进行会话的密钥就可以了,而不需要知道成百上千个不同的密钥。
 
       认证
        认证又分为实体认证和消息认证两种。实体认证是识别通信对方的身份,防止假冒,可以使用数字签名的方法。消息认证是验证消息在传送或存储过程中有没有被篡改,通常使用报文摘要的方法。
               基于共享密钥的认证
               如果通信双方有一个共享的密钥,则可以确认对方的真实身份。这种算法依赖于一个双方都信赖的密钥分发中心(Key Distribution Center,KDC),如下图所示,其中的A和B分别代表发送者和接收者,KAKB分别表示A、B与KDC之间的共享密钥。
               
               基于共享密钥的认证协议
               认证过程如下:A向KDC发出消息{A,KA(B,KS)},说明自己要与B通信,并指定了与B会话的密钥KS。注意,这个消息中的一部分(B,KS)是用KA加密的,所以第三者不能了解消息的内容。KDC知道了A的意图后就构造了一个消息{KB(A,KS)}发给B。B用KB解密后就得到了A和KS,然后就可以与A用KS会话了。
               然而,主动攻击者对这种认证方式可能进行重放攻击。例如A代表雇主,B代表银行。第三者C为A工作,通过银行转账取得报酬。如果C为A工作了一次,得到了一次报酬,并偷听和复制了A和B之间就转账问题交换的报文,那么贪婪的C就可以按照原来的次序向银行重发报文2,冒充A与B之间的会话,以便得到第二次、第三次……报酬。在重放攻击中攻击者不需要知道会话密钥KS,只要能猜测密文的内容对自己有利或是无利就可以达到攻击的目的。
               基于公钥的认证
               这种认证协议如下图所示。A向B发出EB(A,RA),该报文用B的公钥加密。B返回EARARBKS),用A的公钥加密。这两个报文中分别有A和B指定的随机数RARB,因此能排除重放的可能性。通信双方都用对方的公钥加密,用各自的私钥解密,所以应答比较简单。其中的KS是B指定的会话键。这个协议的缺陷是假定双方都知道对方的公钥。
               
               基于公钥的认证协议
 
       认证机制
        为防止网络设备滥用,网络设备对用户身份进行认证。用户需要提供正确口令才能使用网络设备资源。目前,市场上的网络设备提供Console口令、AUX口令、VTY口令、user口令、privilege-level口令等多种形式的口令认证。以路由器为例,Console口令的使用过程如下:
        
        网络设备对于Console、AUX和VTY口令的口令认证配置文件如下:
        
        为了便于网络安全管理,交换机、路由器等网络设备支持TACACS+(Terminal Access Controller Access Control System)认证、RADIUS(Remote Authentication Dial In User Service)认证。TACACS+认证的过程如下图所示。
        
        TACACS+认证示意图
        假定服务器的密钥是MyTACACSkey,配置网络设备使用TACACS+服务器的步骤如下:
        (1)使用aaa new-model命令启用AAA;
        (2)使用tacacs-server host命令指定网络设备能用的TACACS+服务器;
        (3)使用tacacs-server key命令告知网络设备TACACS+服务器的密钥;
        (4)定义默认的AAA认证方法,并将本地认证作为备份;
        (5)配置使用AAA认证方法。
        现以路由器通过AUX、VTY使用TACACS+进行认证为例,其中,TACACS+服务器的IP地址为X.Y.Z.10,服务器的密钥是MyTACACSkey。其配置过程如下所示:
        
        TACACS+要求用户提供用户名和口令进行认证,认证通过后再进行授权操作和审计。相比于TACACS+,RADIUS的认证过程简单,如下图所示。
        
        RADIUS认证示意图
        配置网络设备使用RADIUS认证的步骤如下:
        (1)使用aaa new-model命令启用AAA;
        (2)使用radius-server host命令指定网络设备能用的RADIUS服务器;
        (3)使用radius-server key命令告知网络设备RADIUS服务器的密钥;
        (4)定义默认的AAA认证方法,并将本地认证作为备份;
        (5)配置使用AAA认证方法。
        现以路由器通过VTY使用RADIUS进行认证为例,其中,RADIUS服务器的IP地址为X.Y.Z.5,服务器的密钥是MyRADIUSkey,其配置过程如下所示:
        
 
       授权管理
        
        细粒度的权限控制
        系统将权限分为操作权限和资源权限两种。操作权限如对表单数据的增加、删除、修改、查询、审核等,资源权限包括被管设备或资源分组、监控视图分组、报表分组等。通过操作权限和资源权限的有机组合及授权,可以实现对用户权限的细颗粒度的控制,如上图和下图所示。
        
        对资产资源(操作对象)的操作授权管理
 
       注册
        移动IP通信的第二个阶段是注册。当移动主机已经移动到外地网络并且已经发现了外地代理后,就必须注册。关于注册涉及以下3点:
        (1)移动主机必须向外地代理注册。
        (2)如果截止期到了,移动主机必须重新注册。
        (3)如果移动主机离开某个外地网络,则必须注销。
        具体步骤是:移动主机把注册请求发送给外地代理,并把归属地址和归属地代理地址发送给外地代理。外地代理收到这些信息后,把这些信息转发给移动主机的归属地代理以认证上述信息,如果认证通过,那么移动主机就在外地代理这里注册成功。同时,移动主机的归属地代理也知道了外地代理的地址(转交地址)。
   题号导航      2015年下半年 软件评测师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第5题    在手机中做本题