【问题标题】:secure connection to imap from java by storing key for password encryption通过存储用于密码加密的密钥,从 java 安全连接到 imap
【发布时间】:2020-12-31 20:22:56
【问题描述】:

有没有什么方法可以在不存储密码的情况下从 java 应用程序连接到 IMAP 服务器?虽然我探索并找不到任何方法。所以我用一个密钥加密密码,并决定将密钥分成几部分并存储在不同的地方——数据库和某个会话中。还有什么办法吗?

【问题讨论】:

    标签: java security


    【解决方案1】:

    可以使用哪些认证功能取决于服务器。客户端必须使用服务器提供的内容。

    默认情况下,每个 IMAP 服务器都支持使用用户名/密码进行普通身份验证的身份验证机制,这当然意味着您必须存储密码。

    还有其他身份验证机制,例如 Kerberos - 请参阅 RFC1731,但据我所知,大多数服务器不支持此功能。

    另一方面,有一些服务器支持通过 IMAP 进行 OAuth2 身份验证,但我不确定这是否真的是标准化的东西。据我所知,例如MicrosoftGoogle 使用它。雅虎甚至似乎需要对 IMAP 进行 oAuth,但我找不到指向雅虎的链接来描述这一点。

    【讨论】:

    • 我不想使用 Oauth2.. 有什么安全的方法来存储密钥吗?
    • @Oauth2 是不必存储密码的最佳方式。当然,您必须安全地存储令牌,但从安全角度来看,一切都比用户密码更好,因为令牌可以随时更改。
    • 感谢 robert,但对于我的应用程序,我必须处理 Oauth2 无法工作的另一台服务器。我必须保留密码,如果你能帮助我使用任何方案来安全地存储我可以用来加密密码的密钥,并且以后可以在连接到商店时用于解密,我将不胜感激。如前所述,我想过拆分密钥,但我能想到的唯一地方是数据库或会话。你能建议一些更安全的方法吗?谢谢..
    • 抱歉,我不会回答您如何安全地存储密码,因为没有另一个基于用户的密码或特殊的硬件或操作系统功能,就没有安全性。你能做的一切都是默默无闻。请在 stackoverflow 上阅读有关客户端应用程序中安全密码存储的十几个问题和答案。
    猜你喜欢
    • 1970-01-01
    • 2014-10-18
    • 2015-07-04
    • 2012-10-07
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多