OAM密码加密传输

OAM密码加密传输方案

简述

OAM在很多IT治理和SOA架构中被广泛应用,但是对安全要求比较高应用,OAM为非开源软件,密码加密传输问题会成为很多OAM软件实施人员的难点,本文为大家提供一点思路。采用Oracle Access Manager 作为认证组件,但是基于Http/Https传输过程过程密码都是可以通过BurpSuite抓取。本文用于记录对密码加密传输及服务端解密的过程。

实现思路

Oracle Access Manager 采用有自己的认证Server 端口,提供灵活的基于schema配置方式,登录工程和认证模块都可以自定义。下面是OAM认证原理图:
OAM密码加密传输

登录模块和认证模块都是自定义的。但是OAM提供认证地址和登录工程不支持密码加密传输。本次采用加密传输、OAM服务端收到密码然后解密传递给schema。思路如下图:
OAM密码加密传输
登录工程采取自定义工程,在登录页面采用js版aes加密工具加密,服务端采用java版aes加密。

算法设计说明

加密解密算法采用AES128算法,CBC 模式,PKCS7Padding 填充模式
CBC模式需要添加一个参数iv,要实现在java端用PKCS7Padding填充,需要用到bouncycastle组件来实现。
参考
http://www.cnblogs.com/OneFri/p/5924605.html

实施步骤

创建插件工程,在认证插件中获取密码,对其解密。
参考
http://www.ateam-oracle.com/oam-11g-custom-authentication-plugins-collecting-additional-credentials/
以上是自己在项目中实践应用,如果需要进一步了解详细,可私信联系。