Как я могу отправить конфиденциальные данные через
небезопасный канал
С предварительным общим секретным ключом. Это то, что вы пытаетесь в предложенном решении, но вы не можете отправить этот ключ по небезопасному каналу. Кто-то упомянул DH, который поможет вам договориться о ключе. Но другая часть того, что делает SSL, - это обеспечение аутентификации, чтобы предотвратить атаки «человек посередине», чтобы клиент знал, что он согласовывает ключ с человеком, с которым он намеревается связаться.
Совет Криса Упчерча - действительно единственный хороший ответ для 99,99% инженеров - не делайте этого. Пусть кто-то другой сделает это и использует свое решение (как, например, парни, написавшие клиент / сервер SSL).
Я думаю, что идеальным решением здесь было бы заставить Twitter поддерживать OpenID, а затем использовать его.