ABAP安全存储:如何存储密码?

问题描述 投票:4回答:2

永远不需要在ABAP系统中存储密码..现在是时候学习新的东西......

我需要存储一个密码,我在ABAP系统上使用它来连接到另一个系统,所以我不能存储(单向)哈希。

我遇到了一些功能模块,如FIEB_PASSWORD_ENCRYPT(使用硬编码密钥)或存储密码的base64编码版本的一些建议(gosh!)=>两者都只会阻止任何人“快速读取”密码,如果它打开屏幕,不阻止任何人偷走它。

我也遇到过SECSTORESAP Help Link),它显然只能由SAP组件使用,而不能通过自定义应用程序使用。

基本上,我的需要是

  • 以加密形式将密码存储在某个DB表中
  • 不可能(至少很难)通过该表上的普通选择来获得pw
  • 以清晰的形式从DB表中获取,以便能够将其传递给“其他系统”
  • 我不想重新发明轮子,特别是在安全区域。

我想,那里必须有一些东西可以用于那个目的......

更新为什么我需要:

  • 我正在访问HTTPS系统(目标类型G),并且在目标中配置了所有连接参数。
  • 不幸的是,PW需要作为形式参数在体内传输

免责声明:我目前正在讨论是否可以将其转换为基本身份验证,这既不是更多也不是更安全(标题与正文)。但是使用基本身份验证,我可以使用目标配置,而后者又使用SECSTORE。这个讨论是一个很长的故事,因为涉及到许多方,并且对系统的访问是多层次的......

security sap abap password-encryption
2个回答
2
投票

您可以使用SSF_KRN_ENVELOPE函数进行加密,使用SSF_KRN_DEVELOPE进行解密。它使用RSA标准,因此结果可能很大。我更喜欢在https://github.com/Sumu-Ning/AES上使用ABAP AES类

这些函数使用系统证书,AES库需要IV和密钥,因此如果用户有调试或开发人员授权,他就可以获得它。

正确的方法是使用标准的沟通方式。例如,在SOA管理器中使用带有基本身份验证和保存密码的SOAP客户端。在SM59配置中,也可以使用基本认证和http和https协议。


0
投票

我在这里发布的选项是没有加密的选项,但似乎“非常安全(tm)”。随意评论

  • 将密码作为纯文本存储在数据库表中
  • 将该表设置为“N:不允许显示/修改”
  • 创建一个程序,用于将PW写入该表
  • 没有程序会输出PW。

这意味着,在高效的ABAP环境中,只有至少具有以下权限之一的人才能访问PW(如果我错了,请更正我)

  • 调试生产权限(基本上没有人)
  • 直接DB访问(基本上没有人)
© www.soinside.com 2019 - 2024. All rights reserved.