赛迪网 > IT技术 Java > (最新更新)Java基础
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Java 安全性综述:安全性的基本要点

发布时间:2008.06.18 22:47     来源:IBM DW专区    作者:JavaWorld

在最近的几十年内,计算模型发生了巨大的变化,由于这些变化,出现了对大规模电子商务与电子交易系统应用程序安全的更大需求,这正如最近对几个受欢迎站点的大量拒绝服务 (DoS) 攻击所表明的那样。尤其是对于 Java 团体,随着 Java 作为因特网编程的 事实上的 标准平台出现,安全移动 Java 代码的能力已成为基本要求。

本文是系列文章中的第一篇,讨论计算机安全和密码学的一般概念。虽然可移动代码并不是一个革命性的概念,但是 Java 和因特网给计算机安全带来了一些不同寻常的挑战。Java 体系结构的演化及其对安全的影响、不同的安全 API 和工具软件以及 applet 安全,等等,将在随后的文章中讨论。

此安全性论文系列并不打算提供计算机安全问题的综合指南。计算机安全是一个多层面的问题,它涉及若干学科、部门和文化。技术投资后,接着就应该着手培训、严格的策略强制执行和总体安全策略的定期审查。

注:有关算法进展的详细信息,请参阅专题“ 二十一世纪的加密算法”;有关密钥长度在安全性中的重要性的讨论,请参阅专题“ 密钥的长度是否重要?”。

什么是计算机安全?

要从总体上理解什么是计算机安全,有必要考虑一下安全在日常生活中意味着什么。我们将看到,日常生活中的一般安全规则同样适用于计算机安全。

计算机安全的局限性

有没有绝对计算机安全这样的事情?一句话,没有这样的事情。术语 安全系统是一个不恰当的名称,因为它暗示了系统要么是安全的,要么是不安全的。安全实际上是一种平衡。如果提供的资源是无限的,则任何形式的安全都能遭到破坏。尽管攻击者可用来实施攻击的资源越来越多,但在现实世界中,这些资源仍然是有限的。考虑到这一点,我们应该这样来设计所有系统:让攻击者为破坏这些系统所付出的,远远大于破坏之后他们所能得到的。

端到端的安全

什么是端到端的安全?在一个多层系统中,每一层都应该有其自身的安全,并且与其他层协调一致。为汇集在一起的不同系统和中间件设计安全,是一个相当大的挑战。简单地说,系统安全的程度仅相当于最弱的一环的安全程度;除非您按端到端的观点考虑安全,否则安全随时可以遭到破坏。

简单性

一个复杂的安全设计会起作用吗?乍看起来,制止未授权用户访问系统的最佳方法也许是,设计一个非常复杂的安全方案,但事实并非如此。不仅设计复杂的安全系统的高成本使人不敢问津,而且,要是这种安全系统太复杂了,恐怕连合法用户也难以进入。另一方面,简单系统更容易理解,也更容易分析。

好的系统设计需要安全

有可能对安全进行翻新吗?答案是,这几乎是不可能的。在很多情况下,翻新安全而不必重新设计系统的实质性部分,可能是不现实的。在几乎所有的情况下,翻新的成本非常昂贵。因此,安全从来不应是事后考虑的事情 -- 从一开始它就必须是系统设计的不可分割的一部分。

计算机安全的基础知识

了解这样一些内容是有用的:计算机安全的防御对象、相应的防御机制,以及与计算机安全有关的不同术语。

威胁

威胁 -- 对计算机安全的攻击 -- 大致可以分为以下几类:

机密性攻击:利用加密算法中的弱点或以其他方式,试图窃取机密信息。

完整性攻击:出于自私或恶意而试图修改信息。应该注意的是,完整性攻击也可以是偶然的。

可用性攻击:试图中断系统的正常运行。可用性攻击又称为 拒绝服务 (DoS) 攻击,后者是最近流行的术语。

几种攻击归属于上面提到的一个或几个类别。示例包括:

暴力 攻击通常指搜索每一把钥匙,直到用正确的那一把打开门为止。尽管这似乎是一项代价昂贵的操作,但实际上,通过使用专门的工具对搜索进行仔细安排,是可能的。

特洛伊木马 攻击以敌方不易察觉的方式插入一个内线。计算机病毒就是常见的特洛伊木马攻击的例子。

转接 攻击 (person-in-the-middle attack) 在双方不知道的情况下,中途截取他们的通讯信息,而双方以为他们在正常通讯。

其他的攻击包括: 生日攻击、 字典攻击、 会合 攻击 (meet-in-the-middle attack) 等。(更全面的讨论,请参阅 参考资料中 Bruce Schneier 的 Applied Cryptography。)

防护物

为抵御对安全的威胁,有各种各样的保护机制。在历史上,防御机制曾经包括设置某种“围墙”或“边界”,通常称为 周边防御 (perimeter defense)。

防火墙, 周边防御的一个相当成功的示例,将内部(专用)网络与外部(公用)网络分隔开,并为公司策略提供中央控制点。然而,防火墙日益允许各种精选形式的通讯 -- 例如 HTTP -- 穿过它。

虚拟专用网络 (VPN),尽管仍然使用共享网络,但它提供的安全级别与专用网络相同,是另一个防护物示例。

密码学

密码学及其相关领域 密码分析学,自身与加密和解密信息的算法设计及分析有关。在下面的几节中,我们将讨论密码学与安全之间极其重要的关系。

机密性

机密性是保护数据免受未授权的一个或多个用户访问的方法。简单地说,就是只有预定的消息接收人才能够弄懂这一消息。

如果您正在与他人交换敏感信息,您希望绝对确保只有预定的消息接收人才可以弄懂此消息,如果落入非预定的人手中,此消息实际上将变成无用的东西。机密性是用某种形式的加密技术来实现的。

认证

认证过程确认用户的身份。用户可以是一个软件实体,也可以是一个人。 委托人是其身份已被验证的一方,与委托人相关联的是一组 凭证 。通常,认证根据一些仅用户和认证人知道的机密信息 -- 例如口令 -- 来确认身份。除了口令以外,更复杂的安全方案还将诸如智能卡或生物统计法(指纹、视网膜扫描,等等)之类的高级技术用于认证。

一旦建立了认证,在实施中对用户(或者更一般的说,委托人)的访问是 访问控制机制控制的。

Kerberos -- 基于密钥和加密 -- 展示了一种早期认证技术。这种技术使用时间戳 -- 在一个规定的时段内会话保持有效 -- 来实现这一点。为了正常工作,Kerberos 最根本的一点是,假定分布式系统中的时钟是同步的。

公用密钥基础结构 (PKI),代表一种更为普遍的认证解决方案,将在下面的几节中讨论。

Java Authentication and Authorization Service (JAAS) 框架,以基于用户的认证和访问控制功能补充 Java2 平台。JAAS 是 Java 2 Software Development Kit,v 1.3 的标准扩展。

完整性

比如说您发送一张电子支票。当银行最终收到该支票时,它需要弄清楚付款金额有没有被篡改,这就是称为 完整性的安全概念。

不可否认

在上述的电子支票示例中,如果您确实发送了该支票,就应该没有办法再否认它。 不可否认提供不可否认的行为证据,如给接收人的数据的原始证明或给发送人的数据收据。

审计和日志

保存已授予或已拒绝的资源访问的记录,可能有助于日后的审计工作。就此目的而言, 审计和 日志对于防止非法入侵或事后对非法入侵进行分析,是大有用处的。

策略和访问控制

安全策略着重控制对保护数据的访问,安全执行机制应该足够灵活以执行策略,这一点至关重要。这称为保持策略与机制相分离。尽管作出该决策的依据可能是,按照委托人身份来授权访问某一资源,但是,根据 角色来管理访问控制通常更为容易。每个 委托人被映射到唯一的一个角色,以达到控制访问的目的。通常这样来实现:用一个列表或矩阵,列举不同的用户/角色所拥有的对不同保护资源的访问权。

Java 2 Platform,Enterprise Edition (J2EE) 使用 基于角色的认证 来执行其策略。考虑到这一点,在 J2EE 中,业务逻辑的开发人员根据角色来限制对特定功能的访问。

查看原文 IBM developer Works中心>>

http://www.ibm.com/developerworks/cn/java/jw-0428-security/index.html

(责任编辑:云子)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 减低开发过程中的变动依赖项目范围管理 (06-18) · Java与.NET间进行Web Service交互的选择 (06-17)
· 评论:在Web开发领域编程语言PHP优势在哪 (06-17) · 升级PHP5的理由:PHP4和PHP5性能大对比 (06-17)
· 用Java语言编写通过代理访问的应用程序 (06-16) · 实例教程:Java Socket编程的一个秘密类 (06-16)
· 新手学堂:几个著名Java开源缓存框架介绍 (06-13) · Android支持Java语法编程未承诺遵守规范 (06-13)
· 专家预言:PHP将比Java更受开发人员欢迎 (06-13) · Eclipse工具下开发Struts解决乱码的问题 (06-12)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 移动信息化市场方兴未艾 企业呼唤标准出台
· 如何把握企业价值差异 避免CRM与SCM脱节
· 齐看四大厂商的SaaS动态 ERP案例分析
· 通方期货CRM解决方案 方正电子公文系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统