2013-02-08 57 views
6

我已经创建了一个应用程序,它用作2个不同API之间的桥梁 - WebEx & Exchange Web服务 - 和电子邮件。用户向特定电子邮件地址发送日历邀请,应用程序解析ICS并创建WebEx会议,然后连接到Exchange Web服务并将WebEx邀请信息放入原始邀请中。安全地存储需要作为纯文本使用的API凭证

这是因为WebEx没有Mac电子邮件/日历集成而创建的。

问题在于,要使用WebEx API和Exchange API,我显然需要这两种API的凭据。我使用AES 256位加密在数据库中安全地存储凭据,但为了访问API,我需要原始纯文本凭据(在API中不支持oAuth或令牌)。当然,它们通过SSL安全传输。

由于加密密钥安全存储,安全风险不在于密码被盗。我希望解决的问题是,客户担心他们的企业凭证现在以允许访问这些密钥的人(我或开发团队中的某人)的方式存储,以解密他们的信息并获得对凭证的访问权限。

该应用程序的价值很高 - 它可以节省大量时间,但是如何保护您免受这种恐惧,同时仍然允许这种方法起作用?

+0

您的服务器是否打电话回家并传递证书?如果没有,我不明白为什么客户会认为他们进入和存储在他们设备上的数据可供其他人使用。 – 2013-02-08 18:34:33

+0

凭据存储在Web应用程序使用的数据库中加密。收到电子邮件后,将处理该电子邮件,然后使用这些存储的凭据代表用户使用WebEx和Exchange API进行操作。 – 2013-02-09 03:38:10

回答

0

现实情况是,如果您的代码需要发送密码,那么如果开发者的源代码为,那么他们将访问普通测试密码的加密密码。解决这个问题的唯一方法是拒绝开发团队访问加密密码,并拒绝那些使用加密密码访问源代码的人。通过让开发团队远离生产数据库来实现这一点。

安全风险是您有权访问存储密钥的生产数据库。应该消除这种访问和他们的关切。提供可用于配置密钥的实用程序(基于桌面或基于Web的) - 无论如何,这是一个好主意,因为将来需要更改这些密码。

让客户创建数据库,然后通过连接字符串更改将应用​​程序指向数据库。客户可以使用该实用程序来设置密码。

+0

如果能够以某种方式唯一标识他们的电子邮件客户端并使用任何标识值作为关键字的一部分存在,那将是很好的... – 2013-02-11 16:34:55