API 和 OAuth
首先,正如其他人所说,您不应该使用用户密码来访问 API,您应该获得OAuth token。这将允许您代表该用户执行操作,而无需他们的密码。这是许多 API 使用的常用方法。
密钥交换
如果您需要解决通过不安全连接交换信息的更普遍问题,则其他答案中提到了几种密钥交换协议。
一般来说,密钥交换算法对窃听者来说是安全的,但由于它们不验证用户的身份,它们很容易受到中间人攻击。
来自Diffie Hellman的维基百科页面:
在最初的描述中,Diffie-Hellman 交换本身不提供通信方的身份验证,因此容易受到中间人攻击。中间人可以建立两个不同的 Diffie-Hellman 密钥交换,一个与 Alice,另一个与 Bob,有效地将 Alice 伪装成 Bob,反之亦然,允许攻击者解密(并读取或存储)然后重新加密他们之间传递的信息。通常需要一种对通信方进行身份验证的方法来防止这种类型的攻击。Diffie-Hellman 的变体,例如STS,可以用来避免这些类型的攻击。
在某些情况下,即使 STS 也是不安全的,因为攻击者能够插入自己的身份(签名密钥)来代替发送者或接收者。
身份和认证
这正是 SSL 旨在解决的问题,通过建立“受信任”签名权限的层次结构,理论上验证谁拥有域名等,连接到网站的人可以验证他们确实在与该域的服务器进行通信,而不是与将自己置于两者之间的中间人。
您可以创建一个自签名证书,该证书将提供必要的配置来加密连接,但不会保护您免受中间人攻击,原因与未经身份验证的 Diffie-Hellman 密钥交换不会。
您可以从https://www.startssl.com/获得有效期为 1 年的免费 SSL 证书- 我将它们用于我的个人网站。不管这意味着什么,他们并不那么“受信任”,因为他们只对申请的人进行自动检查,但它是免费的。还有一些服务费用很低(英国 123-Reg 每年 10 英镑)。