Dudas con sockets y SSL/TLS
[email protected] (Micro Mega Dust)
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <[email protected]> |
Hola lista, Estoy escribiendo una librerÃa que encapsula el uso de sockets y su capa criptográfica, y he visto que la función *stream_socket_enable_crypto* [1] admite una serie de métodos para la aplicación de dicha capa. El problema es que no llego a estar seguro de qué propósito en concreto tiene uno de estos métodos: *SSLv23*, ni la poca información que he encontrado me parece del todo satisfactoria [2]. Mis preguntas: 1) Por lo que he podido deducir, SSLv23 es lo mismo que SSL3 capaz de degradarse a SSL2 si el host remoto no puede funcionar con SSL3. Es asÃ? 2) Tengo pensado que mi librerÃa ya sea capaz de intentar primero TLS luego SSL3 y por último SSL2. ¿Es por tanto innecesario permitir la opción SSLv23 junto a las otras tres anteriormente mencionadas? SerÃa redundante. 3) Es el transporte "ssl://" algo asà como SSL1? O, como me imagino, se trata de SSLv23? De lo contrario, por qué no existe este transporte? Pregunta adicional: 5) Considero que, en la practica, hay dos formas de crear una conexión segura. UNA) usando la función *stream_socket_client* [3] especificando uno de los transportes adecuados (ssl://, sslv2://, sslv3:// o tls://). DOS) Usando esta misma función con el transporte tcp://, y acto seguido usar la función *stream_socket_enable_crypto* para habilitar el cifrado sobre el socket ya abierto. Es esta una afirmación correcta? No tengo casi ni idea de como funciona este tema, por lo que cualquier matización, recomendación o información extra es bienvenida. Gracias. [1] <http://php.net/manual/en/function.stream-socket-enable-crypto.php> [2] <http://archives.postgresql.org/pgsql-general/2009-11/msg00365.php> [3] <http://php.net/manual/en/function.stream-socket-client.php>