Ibm mobilefirst RSA加密技术在Worklight移动应用中的实现

Ibm mobilefirst RSA加密技术在Worklight移动应用中的实现,ibm-mobilefirst,rsa,public-key-encryption,encryption-asymmetric,mobilefirst-adapters,Ibm Mobilefirst,Rsa,Public Key Encryption,Encryption Asymmetric,Mobilefirst Adapters,我们正在使用MobileFirst V7.1开发一个银行移动应用程序。由于它是一个银行移动应用程序,安全性更为重要,因此从移动客户端到移动第一服务器的敏感数据传输更为安全。因此,数据应该从移动客户端/应用程序端加密并发送到MobileFirst服务器,在服务器端,我们必须解密数据并调用后端Web服务。根据客户要求,加密逻辑需要执行以下步骤: 步骤1:生成对称密钥 将生成一个32位随机密钥 步骤2:使用此密钥加密数据,使用AES等对称算法。 敏感数据使用上述生成的密钥使用AES算法进行加密 步骤3

我们正在使用MobileFirst V7.1开发一个银行移动应用程序。由于它是一个银行移动应用程序,安全性更为重要,因此从移动客户端到移动第一服务器的敏感数据传输更为安全。因此,数据应该从移动客户端/应用程序端加密并发送到MobileFirst服务器,在服务器端,我们必须解密数据并调用后端Web服务。根据客户要求,加密逻辑需要执行以下步骤:

步骤1:生成对称密钥 将生成一个32位随机密钥

步骤2:使用此密钥加密数据,使用AES等对称算法。 敏感数据使用上述生成的密钥使用AES算法进行加密

步骤3:使用非对称算法(如RSA)用公钥加密对称密钥。 密钥(步骤1中生成的32位随机密钥用于步骤2中敏感数据的加密)使用非对称算法RSA公钥进行加密

步骤4:将加密对称密钥与加密数据捆绑在一起 将加密的敏感数据和加密的随机密钥捆绑到一个对象中,并将其发送到服务器。在worklight server端,从步骤4到步骤1的执行顺序相反,以解密并获取原始数据

问题是我能够在应用程序端实现从step1到stpe4的加密逻辑,但是当我在MobileFirst HTTP适配器端使用相同的RSA alogorithm java脚本库来解密数据时,我会收到许多错误,指出“窗口”未定义,“导航器”未定义。RSA javascript库由navigator、window组成,在mobilefirst适配器javascript文件中,这些navigator或window不可用,因此我遇到了此错误,无法继续。请任何人帮助我解决这个问题,或者帮助我在我的MobileFirst应用程序中实现上述步骤1到步骤4中提到的加密逻辑


谢谢你

检查此旧的响应表单stackoverflow:

我没有发现加密适配器请求/响应负载(适配器调用中发送和接收的数据)的问题。

尽管如此,如果您加密此所使用的整个请求(或响应),将混淆适配器客户机/服务器内部通信协议

如果您希望在传输层(如HTTP/HTTPS)上提供额外的保护,可能还需要一个额外的层。我会检查在您的情况下,IBM DataPower是否不会满足您的搜索要求:

应用层:

您还可以在单个适配器端点中的适配器调用中使用适配器mashup技术,以防止不需要的眼睛尝试按其名称对该调用进行反向工程,并且第一个适配器可以在服务器端解密负载,并在内部(服务器端内部)发送到所需的适配器


我希望这会有所帮助,

请检查此旧的响应表单stackoverflow:

我没有发现加密适配器请求/响应负载(适配器调用中发送和接收的数据)的问题。

尽管如此,如果您加密此所使用的整个请求(或响应),将混淆适配器客户机/服务器内部通信协议

如果您希望在传输层(如HTTP/HTTPS)上提供额外的保护,可能还需要一个额外的层。我会检查在您的情况下,IBM DataPower是否不会满足您的搜索要求:

应用层:

您还可以在单个适配器端点中的适配器调用中使用适配器mashup技术,以防止不需要的眼睛尝试按其名称对该调用进行反向工程,并且第一个适配器可以在服务器端解密负载,并在内部(服务器端内部)发送到所需的适配器


我希望这有帮助,

您必须编写自己的加密或解密代码,我认为您正在使用第三方库进行基于浏览器的加密/解密。由于worklight Adpeter无法识别窗口/导航器

您必须编写自己的加密或解密代码,我认为您正在使用第三方库进行基于浏览器的加密/解密。由于worklight Adpeter无法识别窗口/导航器

你为什么不使用HTTPS/TLS,它会比上面考虑不周的机制安全得多?嗨,铱星,谢谢你的回复。我们还在应用程序中使用证书固定。但客户端希望这种加密技术也能与证书固定一起实现。这是根据客户的要求。感谢1如果您使用https和证书固定,您不需要这些。如果你比他们更专业,客户怎么想都无关紧要。2如果客户想要,为什么不让他们使用OpenPGP呢。对于客户端加密,使用为android或BouncyCastle编译的gpg;对于服务器端加密,使用gpg或任何js实现。据我所知,在服务器上会出现错误,因为您试图在服务器环境中使用为浏览器编写的库。您应该修复它或找到另一个库。为什么不使用HTTPS/TLS,它将比上面考虑不周的机制安全得多?Hi Iridium,谢谢您的回复。我们还在应用程序中使用证书固定。但客户端希望这种加密技术也能与证书固定一起实现。这是根据客户的要求。感谢1如果您使用https和证书固定,您不需要这些。如果你比他们更专业,客户怎么想都无关紧要。2如果客户想要,为什么不让他们使用OpenPGP呢。对于客户端加密,使用为android或BouncyCastle编译的gpg;对于服务器端加密,使用gpg或任何js实现。据我所知,在服务器上会出现错误,因为您试图在服务器环境中使用为浏览器编写的库。你知道吗