Foros del Web » Programando para Internet » PHP »

contraseñas seguras con acceso inseguro

Estas en el tema de contraseñas seguras con acceso inseguro en el foro de PHP en Foros del Web. Hola amigos del foro: Me suscribí hace poco y he estado leyendo con interés las consultas, faqs, etc., todas con respuestas muy bien planteadas que ...
  #1 (permalink)  
Antiguo 30/12/2003, 01:02
 
Fecha de Ingreso: noviembre-2003
Ubicación: San Cristóbal, Táchira
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
contraseñas seguras con acceso inseguro

Hola amigos del foro:
Me suscribí hace poco y he estado leyendo con interés las consultas, faqs, etc., todas con respuestas muy bien planteadas que me han ayudado bastante.

Mi primera consulta es, por el momento, teórica por lo que intentaré describir (brevemente) el escenario. Deseo que un grupo de usuarios accedan a la web con el fin de manejar un módulo administrativo a través del cual podrán realizar ciertos cambios y publicaciones en bases de datos y comportamiento del sitio. El caso es que no disponemos de un servidor seguro (SSL u otro) y la validación de acceso en estas condiciones es crítica.

He estado leyendo por allí algunos consejos y manuales que tratan de este tema. Con respecto a PHP conseguí uno referido a la autenticación con un método que llaman "contraseñas de un solo uso" (http://www.programacion.com/php/articulo/md5/). Lo probé tanto en el sevidor local como en el del sitio que desarrollo, aunque funciona (aparentemente) todavía no lo comprendo y soy de los que no implementan las cosas a ciegas, menos cuando se trata de seguridad.

Bueno, esto ya está largo y creo que bastante claro. A ver quién me echa una mano con una explicación o un sitio en dónde conseguir más información.

Saludos y feliz año 2004
  #2 (permalink)  
Antiguo 30/12/2003, 06:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. en principio no sé si conoces lo que hace exactamente SSL. (te lo comento por encima por si acaso).

SSL (Secure Socket Layer) .. es una "capa" de seguridad que en su base lo que hace es encritar los datos que viajan desde el CLIENTE .. al SERVIDOR. Es decir; desde el navegador (ese formulario por ejemplo ...) hasta el servidor (HTTP y de ahí pasa de forma transparente hacia el lenguaje de programación del lado del servidor que uses: PHP, Perl o lo que uses).

Si usas funciones como MD5() o tantas otras que hay para "encriptar" tus contraseñas .. Recuerda que en el momento del "login" .. ese par: usuario/contraseña que tu usuario usa en su formulario (desde el cliente) . .llega al servidor (a tu "PHP") NO encriptado y por ende puede ser capturado por el camino (ejemplo una intrante que pase por un proxy u otros dispositivos ... ).

Al recibir tu contraseña .. usas MD5() y lo encriptas para almacenarlo en tu BD o donde corresponda .. Esto es bueno si usas un servicio de hosting por ejemplo; quien vea tu tabla de "usuarios" esos passwords no los podrá desencriptar .. (pero el resto de información no la tienes encriptada .. así que .. deduce tu mismo). Lo importante es "confiar" en tu servicio de hosting y sino cambiar a otro que te inspire más confianza y tenga políticas de protección y uso de datos que alojen.

En PHP tienes funciones para encriptar y desencriptar todo dato (mcrypt() por ejemplo) .. Pero se basan en una "semilla" que ha de estar en tu código PHP (fuente) .. así que si tengo acceso a tu código (ejemplo: soy el admin de ese servicio de hosting donde tienes tus pàginas) .. podré (con más tiempo o meno) usar tu própio código para "desencriptar" tus própios datos. Por eso, insisto una vez más .. debes de confiar en tu servicio de hosting, cambiarte o bien "servir" tus própias aplicaciones desde tu própia infraestructura (tus própios servidores/instalaciones).

Vale la pena que intentes comprar/instalar SSL para tu sitio. Eso inspira confianza en los usuarios de tus sistemas ademas de aportar toda la seguridad entre cliente-servidor (lo cual no puedes cambiar .. como de proveedor de hosting).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 30/12/2003, 11:02
 
Fecha de Ingreso: noviembre-2003
Ubicación: San Cristóbal, Táchira
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Cluster, gracias por tu explicación. Sin embargo aún me queda una duda.... tenía entendido que la capa SSL lo que hace es precisamente permitir que los datos del cliente viajen en forma segura al servidor. Un ejemplo: el cliente realiza una petición, el servidor SSL inicia una sesión segura enviando una llave única que utilizará el cliente para el login, el cliente ingresa su contraseña y construye una nueva clave a partir de la concatenación u otro proceso que combina su contraseña y la llave (esto lo puede hacer un script al lado del cliente o mediante una cookie, etc.), el servidor realiza la misma combinación (clave+llave, por ejemplo) y si el resultado coincide permite el acceso.

Por supuesto la capa SSL debe tener otras restricciones (por eso se llama "segura"), pero el algoritmo que expliqué arriba (no es mío, lo he leído por allí) tiene la ventaja de validar a un cliente dentro de una sesión (por ejemplo utilizando su IP para generar la llave) y aunque no es infalible pienso que puede funcionar, te agradecería tu opinión al respecto así como una idea para implementarla (pido demasiado ¿no?)

En cuanto al servicio SSL, pues en eso tienes razón. En realidad si confío en el servicio que me prestan en este momento y si ofrecen SSL... el problema es mío y allí creo que en este foro no me pueden ayudar (jajajaj)

Saludos y gracias por tu interés
  #4 (permalink)  
Antiguo 30/12/2003, 11:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. no sé si te entendí bien lo que "entendistes" .. Peor SSL es transparente para tu programación .. de la encriptación, crear la sesión y demás se encargan el navegador (con soporte SSL .. hoy por hoy todos) y el servidor HTTP que tenga instalado su módulo SSL. Los datos que envies desde/hacia el cliente/servidor es lo de menos .. se codifica todo.

Sinceramente .. no me gusta reinventar la rueda .. El algorítmo del SSL creo que está a 128 Bits .. así que volver a implementar un algoritmo similar o de menos no es que me haga mucha ilusión.

Si deverdad estimas esos datos .. haz los posible$$$ para tener ese SSL y lo mejor .. un certificado SSL válido para que tus clientes confien en el sitio donde están poniendo esos datos.

Y si no puedes .. confia en que "por el camino" no va a pasar nada e invita a tus usuarios a que cambien las contraseñas cada cierto tiempo (por si acaso).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 30/12/2003, 12:27
 
Fecha de Ingreso: noviembre-2003
Ubicación: San Cristóbal, Táchira
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Bueno Cluster, en lo de SSL tienes toda la razón (hare lo posible $$$$ como indicas, sobre todo con lo del certificado que requiere más posibilidade$$$

Gracias nuevamente por tus comentarios y en especial por lo rápido... Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:00.