Estoy en las etapas de diseño de un protocolo tcp/ip personalizado para la comunicación móvil cliente-servidor. Cuando no se requiere (los datos no son sensibles), me gustaría evitar el uso de SSL por razones generales (tanto en latencia de handshake como en ciclos de conservación).Transmisión de contraseña segura a través de tcp/ip no encriptado
Mi pregunta es, ¿cuál es la mejor manera de prácticas de transmisión de información de autenticación a través de una conexión no encriptada?
Actualmente, me gusta SRP o J-PAKE (generan tokens de sesión seguros, son compatibles con hash/salt, y permiten patear en TLS cuando sea necesario), que creo que ambos están implementados en OpenSSL. Sin embargo, soy un poco cauteloso ya que no veo mucha gente que use estos algoritmos para este propósito. También agradecería sugerencias sobre cualquier material que discuta este tema en general, ya que tuve problemas para encontrarlo.
Editar
Quizás la pregunta debería haber sido: ¿hay mejores métodos de enseñanza para las contraseñas sin cifrar seguras a través de TCP/IP? Si no, ¿cuáles son las razones para seleccionar un método en particular sobre otros? (La respuesta de Rooks está más cerca del espíritu de esta pregunta hasta ahora, incluso si viola la carta).
Edición, parte deux
estoy interesado principalmente en el caso de la autenticación de cliente-servidor, donde existe la expectativa de que ambas partes tienen un secreto compartido (contraseña) a priori.
+1 un intercambio de claves Dh resuelve su problema. Sin embargo, los intercambios de claves DH no protegen contra los ataques MITM activos, solo pasivos. – rook
D-H parece inferior a SRP o J-PAKE para este propósito, ya que los dos últimos verifican la contraseña como un subproducto, pero el primero requiere trabajo adicional para cifrar/descifrar la contraseña después de establecer una clave. ¿Me estoy perdiendo algo de sutileza aquí? – academicRobot