Java加密与解密的艺术(第2版)
上QQ阅读APP看书,第一时间看更新

1.2 拿什么来拯救你,我的应用

“拿什么来拯救你,我的应用?”这几乎是每一位架构师和安全工作者都会关注的问题。看了上面那么多让人不寒而栗的安全问题,免不了让我们心里发怵。魔高一尺,道高一丈,我们先来看看有什么武器可以应对企业应用的安全问题。接下来会讨论安全技术目标、OSI安全体系结构与TCP/IP安全体系结构这三方面的内容。

1.2.1 安全技术目标

国际标准化组织(ISO)对“计算机安全”的定义为:“为数据处理系统建立和采取的技术和管理的安全保护,保护计算机硬件、软件数据不因偶然和恶意的原因而遭到破坏、更改和泄露。”根据美国国家信息基础设施(NII)提供的文献,安全技术目标包含保密性(Confidentiality)、完整性(Integrity)、可用性(Availability)、可靠性(Reliability)和抗否认性(Non-Repudiation)。

保密性:又称机密性。保密性确保数据仅能被合法的用户访问,即数据不能被未授权的第三方使用。

完整性:主要确保数据只能由授权方或以授权的方式进行修改,即数据在传输过程中不能被未授权方修改。

可用性:主要确保所有数据仅在适当的时候可以由授权方访问。

可靠性:主要确保系统能在规定条件下、规定时间内、完成规定功能时具有稳定的概率。

抗否认性:又称抗抵赖性,主要确保发送方与接收方在执行各自操作后,对所做的操作不可否认。

除此之外,计算机网络信息系统的其他安全技术目标还包括:

可控性:主要是对信息及信息系统实施安全监控。

可审查性:主要是通过审计、监控、抗否认性等安全机制,确保数据访问者(包括合法用户、攻击者、破坏者、抵赖者)的行为有证可查,当网络出现安全问题时,提供调查依据和手段。

认证(鉴别):主要确保数据访问者和信息服务者的身份真实有效。

访问控制:主要确保数据不被非授权方或以未授权方式使用。

安全技术目标制定的主旨在于预防安全隐患的发生。安全技术目标是构建安全体系结构的基础。

1.2.2 OSI安全体系结构

OSI参考模型是由国际标准化组织制定的开放式通信系统互联参考模型(Open System Interconnection Reference Model,OSI/RM)。OSI参考模型包括网络通信、安全服务和安全机制。网络通信共分七层,按照由下至上的次序分别由物理层(Physical Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)和应用层(Application Layer)构成。其中,数据链路层通常简称链路层。国际标准化组织于1989年在原有网络通信协议七层模型的基础上扩充了OSI参考模型,确立了信息安全体系结构,并于1995年再次在技术上进行了修正。OSI安全体系结构包括五类安全服务以及八类安全机制。

OSI参考模型结构如图1-1所示。

五类安全服务包括认证(鉴别)服务、访问控制服务、数据保密性服务、数据完整性服务和抗否认性服务。

❑ 认证(鉴别)服务:在网络交互过程中,对收发双方的身份及数据来源进行验证。

❑ 访问控制服务:防止未授权用户非法访问资源,包括用户身份认证和用户权限确认。

❑ 数据保密性服务:防止数据在传输过程中被破解、泄露。

❑ 数据完整性服务:防止数据在传输过程中被篡改。

❑ 抗否认性服务:也称为抗抵赖服务或确认服务。防止发送方与接收方双方在执行各自操作后,否认各自所做的操作。

从上述对安全服务的详细描述中我们不难看出,OSI参考模型安全服务紧扣安全技术目标。

图1-1 OSI参考模型

安全机制是对安全服务的详尽补充。安全服务和安全机制的对应关系如图1-2所示。

图1-2 OSI参考模型安全服务和安全机制的对应关系

八类安全机制包括加密机制、数字签名机制、访问控制机制、数据完整性机制、认证机制、业务流填充机制、路由控制机制和公证机制。

❑ 加密机制:加密机制对应数据保密性服务。加密是提高数据安全性最简便的方法。通过对数据进行加密,有效提高了数据的保密性,能防止数据在传输过程中被窃取。常用的加密算法有对称加密算法(如DES算法)和非对称加密算法(如RSA算法)。

❑ 数字签名机制:数字签名机制对应认证(鉴别)服务。数字签名是有效的鉴别方法,利用数字签名技术可以实施用户身份认证和消息认证,它具有解决收发双方纠纷的能力,是认证(鉴别)服务最核心的技术。在数字签名技术的基础上,为了鉴别软件的有效性,又产生了代码签名技术。常用的签名算法有RSA算法和DSA算法等。

❑ 访问控制机制:访问控制机制对应访问控制服务。通过预先设定的规则对用户所访问的数据进行限制。通常,首先是通过用户的用户名和口令进行验证,其次是通过用户角色、用户组等规则进行验证,最后用户才能访问相应的限制资源。一般的应用常使用基于用户角色的访问控制方式,如RBAC(Role Basic Access Control,基于用户角色的访问控制)。

❑ 数据完整性机制:数据完整性机制对应数据完整性服务。数据完整性的作用是为了避免数据在传输过程中受到干扰,同时防止数据在传输过程中被篡改,以提高数据传输完整性。通常可以使用单向加密算法对数据加密,生成唯一验证码,用以校验数据完整性。常用的加密算法有MD5算法和SHA算法等。

❑ 认证机制:认证机制对应认证(鉴别)服务。认证的目的在于验证接收方所接收到的数据是否来源于所期望的发送方,通常可使用数字签名来进行认证。常用算法有RSA算法和DSA算法等。

❑ 业务流填充机制:又称传输流填充机制。业务流填充机制对应数据保密性服务。业务流填充机制通过在数据传输过程中传送随机数的方式,混淆真实的数据,加大数据破解的难度,提高数据的保密性。

❑ 路由控制机制:路由控制机制对应访问控制服务。路由控制机制为数据发送方选择安全网络通信路径,避免发送方使用不安全路径发送数据,提高数据的安全性。

❑ 公证机制:公证机制对应抗否认性服务。公证机制的作用在于解决收发双方的纠纷问题,确保两方利益不受损害。类似于现实生活中,合同双方签署合同的同时,需要将合同的第三份交由第三方公证机构进行公证。

安全机制对安全服务做了详尽的补充,针对各种服务选择相应的安全机制可以有效地提高应用安全性。随着技术的不断发展,各项安全机制相关的技术不断提高,尤其是结合加密理论之后,应用的安全性得到了显著提高。本书的后续章节将以加密理论及其相应实现为基础,逐步阐述如何通过加密技术确保企业应用的安全。

1.2.3 TCP/IP安全体系结构

OSI参考模型为解决网络问题提供了行之有效的方法,但是卫星和无线网络的出现,使得现有的协议在与卫星和无线网络互联时出现了问题,由此产生了TCP/IP参考模型。TCP/IP从字面上看是两个Internet上的网络协议(TCP是传输控制协议,IP是网际协议),但实际上TCP/IP是一组网络协议,通常包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP、TFTP等协议。TCP/IP参考模型由下至上分为网络接口层、网络层、传输层和应用层。

OSI参考模型和TCP/IP参考模型的对比如图1-3所示。

图1-3 OSI参考模型和TCP/IP参考模型对比

OSI参考模型中的物理层和链路层对应TCP/IP参考模型中的网络接口层,网络层和传输层分别对应TCP/IP参考模型中的网络层和传输层,会话层、表示层和应用层对应TCP/IP参考模型中的应用层。

对应TCP/IP参考模型,TCP/IP安全体系结构如图1-4所示。

TCP/IP安全体系结构包括网络接口层安全、网络层安全、传输层安全和应用层安全。

图1-4 TCP/IP安全体系结构

❑ 网络接口层安全:通常指的是链路层的安全,可以通过加密方式确保数据不被窃听,通常依靠物理层加密实现。一般在通信的链路两端架设加密机,对传输的电器符号进行位流加密。

❑ 网络层安全:网络层的功能是负责数据包的路由选择,网络层安全就是要确保数据包能顺利到达指定的目的地。一般通过路由器硬件提高相应的安全性。

❑ 传输层安全:传输层的功能是解决端到端的数据传输问题。传输层提供TCP与UDP两种服务,其中TCP是可靠的、面向连接的服务;UDP是无链接的数据包服务。确保传输层安全有相应的协议,如SSL(Security Socket Layer,安全套接层协议)和TLS(Transport Layer Security,传输层安全协议)。SSL是网景(Netscape)公司设计的主要用于Web的安全传输协议,由IETF(The Internet Engineering Task Force,互联网工程任务组,详见http://www.ietf.org/)将其标准化,进而产生了TLS,TLS是SSL的继任者。SSL 3.0与TLS 1.0差别不大,两种规范大致相同。SSL/TLS协议依赖于加密算法,使用SSL/TLS协议可使通信过程极难被窃听,保证了通信过程有较高的安全性。因此,SSL/TLS协议成为网络上最常用的安全保密通信协议,众多电子邮件、网银、电子商务、网上传真都通过SSL/TLS协议确保数据传输安全。随着卫星和无线网络的发展,WAP安全逐渐得到重视。受限于手机及手持设备的处理和存储能力,WAP论坛(http://www.wapforum.org/)在TLS的基础上进行了简化,制定了WTLS协议(Wireless Transport Layer Security,无线传输层安全)。

❑ 应用层安全:应用层是与应用结合最紧密的一层,负责与应用交互,以实现不同系统的应用之间的相互通信,完成各种业务处理、提供相应服务。为确保应用层的安全,可在应用层建立相应的安全机制,HTTPS协议的应用就是其中的一种。HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)协议是Web上最为常用的安全访问协议,简单地说就是HTTP安全版,从HTTPS全称不难看出它是基于SSL/TLS的HTTP协议,或者说是HTTPS=SSL/TLS+HTTP。同时,得益于SSL/TLS的高度安全性,HTTPS广泛应用于互联网上的敏感数据交互,例如B2C、网上银行、企业应用之间的数据传递等。本书将在后续章节讲解如何通过HTTPS确保企业应用的安全。

TCP/IP安全体系中,网络接口层安全、网络层安全部分主要通过相应的硬件设施来完成,传输层安全和应用层安全通过HTTPS协议以软件方式完成。