API, и OAuth
Во-первых, как уже говорили другие, вы не должны использовать пароль пользователя для доступа к API, вы должны получать OAuth token. Это позволит вам действовать от имени этого пользователя без необходимости их пароля. Это общий подход, используемый многими API.
Key Exchange
Если вам нужно решить более общую проблему обмена информацией через незащищенное соединение, существует несколько основных протоколов обмена, как говорили другие ответы.
В целом алгоритмы обмена ключами защищены от подслушивания, но поскольку они не аутентифицируют личность пользователей, они уязвимы для атак типа «человек в середине».
На странице Википедии на Diffie Hellman:
В оригинальном описании обмена Диффи-Хеллмана сама по себе не обеспечивает проверку подлинности на взаимодействующих сторон и, таким образом, уязвимы к человек-в средняя атака. Человек посередине может установить два различных обменных ключей Диффи-Хеллмана, один с Алисой, а другой с Бобем, эффективно маскирующийся под Алисой Бобу, и наоборот, , позволяющий злоумышленнику расшифровать (и прочитать или сохранить), затем повторно зашифровать сообщения . Для аутентификации связывающих сторон друг другу обычно необходим способ предотвращения такого типа нападения . Варианты Diffie-Hellman, такие как STS, могут использоваться вместо , чтобы избежать этих типов атак.
Даже STS небезопасен в некоторых случаях, когда злоумышленник может вставить свою личность (подпись) вместо отправителя или получателя.
идентификации и аутентификации
Это именно проблема SSL предназначена для решения, устанавливая иерархию «доверенных» подписавшись властей, которые в теории проверенной, которому принадлежит доменное имя, и т.д., кто-то подключение к веб-сайту может подтвердить, что они действительно общаются с сервером этого домена, а не с человеком в середине, который встал между ними.
Вы можете создать самозаверяющий сертификат, который предоставит необходимую конфигурацию для шифрования соединения, но не будет защищать вас от человека в средних атаках по той же причине, что и обмен ключами Diffie-Hellman, не прошедший проверку подлинности.
Вы можете получить бесплатные сертификаты SSL, действительные в течение 1 года с https://www.startssl.com/. Я использую их для своих личных сайтов. Они не совсем «доверяют», что бы это ни значило, поскольку они только делают автоматические проверки людей, которые подают заявку на одно, но это бесплатно. Есть также услуги, которые стоят очень мало (£ 10/год от 123-Reg в Великобритании).
Вы не можете этого сделать. SSL дорого, потому что третья сторона, которой доверяет все браузеры, проверила, что ваш сервер является реальным для данного имени домена. Шифрование бесполезно, когда злоумышленник может заставить пользователей думать, что их сервер является хостом вашего домена, и эта атака занимает секундную долю для работы в сети Wi-Fi или сети (библиотека, школа, офис и т. Д.). Посмотрите обратно каталог подкаста безопасности теперь, чтобы узнать все проблемы, вы скоро решите, что проще и дешевле купить сертификат SSL от кого-то дешевого. – 2013-07-22 18:31:25