与企业级应用安全相关的技术主要有加密技术、认证、授权和通道安全等——可能还不够全面。
(1)加密技术
出于安全性原因而保护对信息的访问仍是使用加密技术的主要原因。但是,它也正越来越多地用于个人的标识、认证和不可抵赖性。随着因特网、全球贸易和其它活动的增长,这一点尤为重要。电子邮件和 Web 用户的身份非常容易隐藏或伪造,而安全认证可以向那些用户提供远程交互的可信度。
加密技术是任何安全性策略的一个重要组成部分,广泛使用的两种加密形式是传统(或对称)加密和公钥(或非对称)加密。
对称加密,也称传统加密或单钥加密,是公钥产生之前的一种加密技术。通常使用分组密码(Block Cipher)或序列密码(Stream Cipher)实现对称密码。对称加密方案中的五个基本成分是:明文、加密算法、密钥、密文和解密算法。
公钥加密或非对称加密是继加密之后的又一个加密方法,它是对安全具有革命性的意思。非对称密码学的概念是 1976 年由 Whitfield Diffie和 Martin Hellman在 New Directions in Cryptography一文中公开提出的,它是密码学中的一个惊人的成就。公钥算法依赖于一个加密密钥和一个与之相关的不同的解密密钥。公钥密码体系主要由明文、加密算法、公钥和私钥、密文和解密算法六个部分组成。
(2)认证
认证就是校验一个用户拥有使用已经被企业用户注册机构证明了的身份鉴定的权限的处理过程。用户在访问被保护的资源前必须首先通过认证。根据用户提交的凭证信息的种类的不同,主要分为以下两种认证方式。
在用户名/口令认证方式中,用户把用户标识和口令发送给服务器。服务器检查信息的正确性,如果正确就赋予用户对受限资源的访问权。安全套接层(Secure Socket Layer, SSL)协议可以为用户名/口令认证提供额外的安全。在SSL中不仅在客户端和服务器端的数据传输都被加密,SSL对整个连接会话加密。
在数字证书认证中,当一个SSL和客户端建立一个申请时,服务器端给客户端一个数字证书,在客户端确认这个数字证后,对应的SSL连接就建立了。也可以使用双通道SSL认证一种互相认证的形式。在双通道SSL认证中,在客户端和服务器端之间的连接线程建立之前,客户端和服务器端都同时必须提供给对方一个数字证书。
(3)授权
授权是决定认证的用户是否可以执行一些动作的工作,例如访问一处资源。授权包括声明性授权和程序性授权:
声明性授权可以由系统管理员执行,可以配置系统的访问权,声明可以访问系统中应用程序的主体。通过声明性授权,可以添加、更改或取消用户访问特权,而不影响底层应用程序代码。声明的安全性通过安全结构描述的方式来代表应用程序的安全需求,安全结构一般包括安全角色,访问控制和验证要求等。在J2EE平台中部署描述符充当了声明的安全性的主要工具。部署描述符是组件开发者和应用程序部署者或应用程序组装者之间的交流工具。应用程序的开发者用它来表示应用中的安全需求,应用程序部署者或应用程序组装者将安全角色与部署环境中的用户和组映射起来。在程序运行时容器从部署描述符中提取出相应的安全策略,然后容器根据安全策略执行安全验证。声明的安全性不需要开发人员编写任何安全相关的代码,一切都是通过配置部署描述符来完成的。
程序性授权使用Java应用程序代码进行授权。当授权决定需要更复杂的逻辑和决定(超出了声明性授权的能力范围)时,程序性授权是必需的。因为程序性授权被构建到应用程序代码中,所以更改程序性授权时可以重写应用程序的部分代码。可编程的安全性在声明的安全性的基础上,使安全敏感的应用可以通过调用被容器提供的API来对安全做出决断。这在声明性的安全性不足以满足企业的安全模型的情况是非常有用的。
(4)通道安全
为了保证通信通道的安全,可以用SSL和其它特殊的加密通信的办法,SSL是用于对TCP/IP数据流进行加密的协议,同时还包括了身份认证和数据完整性验证等内容。SSL的最新版本有时候被认为是TLS(Transport Layer Security)协议。SSL运行于TCP/IP之上,几乎可以被应用于任何类型的面向连接的通信。SSL安全协议主要提供三方面的服务:用户和服务器的合法性认证,加密数据以隐藏被传送的数据和保护数据的完整性。
①用户和服务器的合法性认证
认证用户和服务器的合法性,使得它们能够确信数据将被发送到正确的客户机和服务器上。客户机和服务器都是有各自的识别号,这些识别号用公开密钥进行编号,为了验证用户是否合法,SSL要求用握手交换数据进行数字认证,以此来确保用户的合法性。
②加密数据以隐藏被传送的数据
SSL协议所采用的加密技术既有对称密钥技术,也有公开密钥技术。在客户机与服务器进行数据交换之前,交换SSL初始握手信息,在SSL握手中采用了各种加密技术对其加密,以保证其机密性和数据的完整性,并且用数字证书进行鉴别。这样就可以防止非法用户进行破译。
③保护数据的完整性
SSL协议采用Hash函数和机密共享的方法来提供信息的完整性服务,建立客户机与服务器之间的安全通道,使所有经过SSL协议处理的业务在传输过程中能全部完整准确无误地到达目的地。
SSL 的另一个非常有用的场合是使用应用服务器的网络通信。使用了SSL,连接可以保证不被窃消息不被修改。当使用了客户端和服务器的身份认证,一个未授权的用户很难登录到你的应用服务,他们需要窃取一个用户端的密钥,而不是简单的口令,才能达到目的。
posted on 2005-12-28 23:25
Swift 阅读(1264)
评论(0) 编辑 收藏 所属分类:
Java安全