API y OAuth
En primer lugar, como otros han dicho, no debe estar usando la contraseña de un usuario para acceder a la API, que debería estar recibiendo un OAuth token. Esto le permitirá actuar en nombre de ese usuario sin necesidad de su contraseña. Este es un enfoque común utilizado por muchas API.
Key Exchange
Si necesita resolver el problema más general de intercambio de información a través de conexiones inseguras, hay varios protocolos de intercambio de claves como han mencionado en otras respuestas.
En general, los algoritmos de intercambio de claves son seguros para los intrusos, pero como no autentican la identidad de los usuarios, son vulnerables a los ataques de intermediarios.
Desde la página de Wikipedia sobre Diffie Hellman:
En la descripción original, el intercambio Diffie-Hellman por sí sola no proporciona autenticación de las partes que se comunican y por lo tanto vulnerable a un hombre -in- el ataque medio. Una persona en el medio puede establecer dos distintivos intercambios de claves Diffie-Hellman, uno con Alice y el otro con Bob, enmascarando efectivamente a Alicia con Bob, y viceversa, permitiendo al atacante descifrar (y leer o almacenar) luego vuelva a cifrar los mensajes pasados entre ellos. Por lo general, se necesita un método para autenticar a las partes que se comunican entre sí para evitar este tipo de ataque. Las variantes de Diffie-Hellman, como STS, pueden ser utilizadas en su lugar para evitar este tipo de ataques.
Incluso STS es inseguro en algunos casos donde un atacante puede insertar su propia identidad (clave de firma) en lugar del remitente o el receptor.
identidad y autenticación
Este es exactamente el SSL problema está diseñado para resolver, mediante el establecimiento de una jerarquía de autoridades de la firma 'de confianza' que tienen en teoría verificado que posee un nombre de dominio, etc, alguien conectarse a un sitio web puede verificar que efectivamente se están comunicando con el servidor de ese dominio, y no con un hombre en el medio que se ha colocado en el medio.
Puede crear un certificado autofirmado que proporcionará la configuración necesaria para encriptar la conexión, pero no lo protegerá de los ataques intermedios por la misma razón que no lo hará el intercambio de clave Diffie-Hellman no autenticado.
Puede obtener certificados SSL gratuitos válidos durante 1 año desde https://www.startssl.com/ - Los uso para mis sitios personales. No son tan 'confiables' sea lo que sea lo que signifique, ya que solo realizan controles automáticos a las personas que solicitan uno, pero es gratis. También hay servicios que cuestan muy poco (£ 10/año desde 123-Reg en el Reino Unido).
No puede hacerlo. SSL es costoso porque un tercero en el que todos los navegadores confían ha verificado que su servidor es el verdadero para un nombre de dominio dado. El cifrado es inútil cuando un atacante puede obligar a los usuarios a pensar que su servidor es el host de su dominio y este ataque toma una fracción de segundo para funcionar en una red wifi o ethernet (biblioteca, escuela, oficina, etc.). Consulte el catálogo posterior del podcast de seguridad ahora para conocer todos los problemas, pronto decidirá que es más fácil y más barato comprar un certificado SSL de alguien barato. –