您的位置:首页 > 编程语言 > Java开发

java安全学习准备知识(一)

2013-08-23 13:54 211 查看
安全的基础知识

在高度保证企业应用程序安全的过程中我们不免会考虑到如下的安全需求,然后我们针对这些安全需求提出各种安全技术:

1、 完整性验证(Integrity Verification)。也就是以防止我们需要的内容不被篡改,仍然不失其真实性。
2、 机密性保持(Confidentiality Preservation)。通俗的说就是防止内容被别人读懂。
3、 认证和访问授权(Authenticity Permission)。通俗的说就是对来访者提供的信息进行分析和判断,从而确定来访者身份。然后根据身份决定该来访者具有什么权限。
4、 不可抵赖的证据(Nonrepudiation Evidence)。据个很简单的例子,如果在网上进行相应的支付操作。如果我已经给他们钱了,但他们仍然说我没给他们怎么办?好了,这里你只要明白我们后面的介绍的技术会解决这个问题的。
5、 审计证据(Auditing Evidence)。对一些安全性十分重要的数据操作进行纪录和观察。 针对上面提到的需求列表对各个技术进行比较粗略地介绍。详细内容请从luopc@edu-edu.com.cn 获取。 加密技术
加密技术是其它安全服务技术的基础,他们的穿插使用相当广泛。所以在学习软件安全技术之前了解各种加密技术是相当重要的。

加密技术的分类
1、消息摘要
消息摘要主要用于保持数据的完整性,我们经常听到的校验和就是消息摘要的一个特例。它的算法是一个单项函数。也就是直接将输入的数据进行消息摘要提取,但绝不能从消息摘要生成原数据。消息摘要的算法分为如下几类(最常用的是MD5和SHA)。
u MD2:是一个速度很慢但相当安全的算法,它产生128位的摘要值。
u MD4:速度很快,但安全性下降。同样产生128位的摘要值。
u MD5:是MD4的一个更安全的版本,同时速度更快。也产生128位的摘要值。
u SHA:安全哈希算法,产生一个160位的摘要值。
u SHA-1:在克服SHA的一些缺陷基础上形成的哈希算法。
u SHA-256、SHA-383 和 SHA-512 提供更长的指纹,大小分别是 256 位、383 位和 512 位。
u MAC:消息认证码,使用秘密密钥和消息摘要算法来创建消息摘要。我们可能经常会疑问,我们有了消息摘要为什么还要认证码呢?听我给你举个例子,前面的提到的消息摘要,只要有明文和算法,谁都可以生成同样的消息摘要,但有时为了特殊的目的我们需要只有特定的人才能生成这个摘要。好了,那怎么办?通过在生成消息摘要的过程中加入相应的密钥,从而使生成的消息摘要在没有密钥的情况下难以生成。
2、对称密钥(私钥加密)
对称密钥应该是相当强壮的信息加密算法。这和我们生活中的钥匙极为相像。例如你家的门锁可以有好几把钥匙,并且这些钥匙都相同。在现实生活中,你可以将做好的钥匙收递手交给你的亲人,但在网络中就变了,你要通过网络来传递这把钥匙。所以对钥匙的保护又需要相应的加密技术。好了,通过这个通俗的例子,你应该知道对称密钥干什么?它的弱点在哪里?等问题的答案了吧。下面是一些最普通的对称密钥算法:

u DES:DES(数据加密标准)是由 IBM 于上世纪 70 年代发明的,美国政府将其采纳为标准,使用56位的密钥。

u 3-DES(TripleDES):该算法被用来解决使用 DES 技术的 56 位时密钥日益减弱的强度,其方法是:使用两个密钥对明文运行 DES 算法三次,从而得到 112 位有效密钥强度。TripleDES 有时称为 DESede(表示加密、解密和加密这三个阶段)。

u RC2和RC4:可以使用2048位的密钥并且提供了一个十分安全的算法。他们都来自于领先的加密安全性公司 RSA Security。

u RC5:使用了一种可配置的密钥大小。也来自领先的加密安全性公司 RSA Security。

u AES:AES(高级加密标准)取代 DES 成为美国标准。它是由 Joan Daemen 和 Vincent Rijmen 发明的,也被称为 Rinjdael 算法。它是 128 位分组密码,密钥长度为 128 位、192 位或 256 位。

u Blowfish:这种算法是由 Bruce Schneier 开发的,它是一种具有从 32 位到 448 位(都是 8 的整数倍)可变密钥长度的分组密码,被设计用于在软件中有效实现微处理器。

u PBE。PBE(基于密码的加密)可以与多种消息摘要和私钥算法结合使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: