加密WebSphere Application Server系统密码

本文探讨了WebSphere Application Server中系统密码的安全性,强调了编码与加密的区别。用户密码通常存储为哈希摘要,而系统密码在某些情况下以纯文本形式发送给下游系统,这引发对加密的需求。通过实现自定义密码处理程序接口,可以加密系统密码,增加安全性。然而,真正的挑战在于控制对文件系统的访问权限。密码加密虽然增加了安全性,但并未解决所有安全问题,需要结合加强的基础架构和访问控制策略。
摘要由CSDN通过智能技术生成

在技​​术和主流媒体上,几乎每天都有关于计算机系统攻击的故事被轰炸,其中密码被盗窃,然后攻击者可以使用它们。 媒体经常指出,该密码数据可检索的一个原因是“ 加密”。 在这种情况下,这些密码是用于登录和访问系统的用户密码。 它们不是与系统进程和二进制文件关联的密码。 这种差异极为重要。

考虑到这种新闻报道,也许最常见的评论集中在希望对IBM®WebSphere®Application Server系统中的密码进行加密的客户周围。 WebSphere安全顾问,我们的技术销售人员和WebSphere安全开发设计师经常重复此评论。 我们得到的消息是: “ WebSphere在大多数情况下都满足其 默认情况下安全的 要求 ,但是我们的密码存储在经过编码而不是加密的文件系统上。” 这之后通常是“并且我们未通过安全审核,因为它们未加密”。

一些客户端坚持认为,与编码相比,对WebSphere Application Server使用的系统密码进行加密是首选。 但是,自WebSphere Application Server版本6.0.2起,系统编程接口(SPI)已可用,该系统可用于实现客户端可能想要实现的任何“隐藏”密码解决方案。 通过使用此SPI,IBM混合云服务(以前称为WebSphere的IBM软件服务)已经为多个客户端实现了这样的解决方案。 在本文中,我定义了一些基本的安全概念,然后描述了此自定义解决方案中的设计注意事项。

基础知识:编码与加密

编码和加密有什么区别? 我们使用术语编码来应用一种方案,其中某些事物被公式或算法隐藏。 考虑一个您要“隐藏”的秘密密码的示例。 例如,假设我有一个公认的错误密码: SecretMonkey 。 可逆算法可用于对该短语进行编码以隐藏其真实值。

朱利叶斯·凯撒(Julius Caesar)被认为使用了一种编码方案,该方案称为旋转密码或ROT密码 ,其中字母中的数字位置偏移了某个数字。 历史上现在将此方法称为凯撒密码。 ROT3密码将三个字符位置映射到右侧。 ROT3(对于英语字母)的映射为:
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC

我上面的ROT3密码成为:
Plain: SecretMonkey
Cipher: VhfuhwPrqnhb

当呈现此编码字符串时,专业密码分析员可能会快速猜测编码算法并使用反向算法(ROT-3)对其进行解码。 编码的强度在于算法的机密性。 请记住,攻击者擅长于逆向工程算法。 知道该算法后,数据将不受保护。

与编码相反,加密的安全性不是基于所使用的算法,而是基于难以猜测的密钥的强度。 仍然使用算法,但是这些算法(通常)是众所周知的。 加密算法与编码算法的不同之处在于,它们接受两个输入:文本和密钥。 与四位数的借记卡PIN使用10,000的可能的十分之一(10 4 )选择秘密相同,加密密钥使用的秘密密钥需要花费大量精力来进行暴力猜测。

两种类型的加密都是可能的,并且两种类型都基于复杂的数学。 第一种加密涉及单个密钥,称为共享密钥 , 秘密密钥或对称密钥加密 。

考虑两个功能:
cipherText = Encrypt(plainText, secretKey);

而且,考虑相反的情况:
plainText = Decrypt(cipherText, secretKey);

为了保护我的数据,我从大量可能的密钥集中选择了一个密钥,例如256位密钥。 该密钥是一组2 256个可能的数字,这是一个巨大的数字。 以1.15x10 77的十进制表示法:115,后跟75个数字。 可以想象,调用Decrypt函数可能需要很长时间,以遍历所有可能的密钥。

第二种加密使用两个不同的或非对称的密钥。 这种类型的加密被称为对 ublicķEY或不对称Ëncryption。 这两个键以复杂的数学关系相互关联。 无需深入研究数学,对某些文本进行加密的函数调用为:
cipherText = Encrypt(plainText, KeyA);

不对称反向是:
plainText = Decrypt(cipherText, KeyB);

两种加密方式的优势在于难以猜测该解密功能所需的密钥参数。 在这种情况下,它要么是共享的“ secretKey”(用于使用对称加密加密的数据),要么是“ KeyB”(用于非对称加密)。

密码哈希

我想在这里提供更多的理论,并介绍单向哈希函数的概念。 再说一次,我不会去研究数学,因为细节对我的论点并不重要。 单向哈希函数(再次)使用一种众所周知的算法:
digest = hash(inputString);

在这里, inputString被转换为称为摘要的输出,并且在计算上无法逆转该过程(因此, 单向术语)。 每次您提供相同的inputString时,您都会获得相同的摘要。 对于特定的哈希函数,摘要通常为恒定长度。 哈希函数具有附加属性,如果您更改输入中的任何位,则将获得完全不同的摘要输出。

琐碎的哈希函数可以产生8位摘要。 每个输入字符串产生2 8个摘要之一。 如果任何输入发生更改,那么将生成另一个摘要。 如果仍在注意,您将意识到无限数量的输入字符串会产生相同的摘要。 但是,我们知道,从摘要中不可能猜测到inputString。 当摘要的大小变得足够大(例如2 256位)时,另一个产生相同摘要的随机输入的机会将无限小。

攻击者意识到,对于一种已知的算法,可以预先生成所有可能的输入并计算自己的摘要(称为“彩虹”表)。 在实践中,实现者通过将任何输入字符串与秘密或不同的称为salt的前缀连接起来,来改变哈希函数的行为。 因此,首选用法是:
digest = has

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值