Foros del Web » Programando para Internet » PHP »

5CR protección paranoica para variables en la URL y contraseñas

Estas en el tema de 5CR protección paranoica para variables en la URL y contraseñas en el foro de PHP en Foros del Web. MUCHACHOS QUIEN HALLA DESCARGADO 5CR PUES DESCARGO ALGO MALO!!!!! UN DESCUIDO LE PASA A CUALQUIERA!!! YA PUEDEN DESCARGAR LA VERSION QUE ES QUE YA MONTE ...
  #1 (permalink)  
Antiguo 09/05/2005, 23:34
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
De acuerdo 5CR protección paranoica para variables en la URL y contraseñas

MUCHACHOS QUIEN HALLA DESCARGADO 5CR PUES DESCARGO ALGO MALO!!!!!
UN DESCUIDO LE PASA A CUALQUIERA!!! YA PUEDEN DESCARGAR LA VERSION QUE ES QUE YA MONTE LA QUE ES!!!!

5CR - ENCRIPTACION AL ROJO VIVO SOLO PARA PARANOICOS

Aquí les dejo mi primer script en PHP para encriptar tanto contraseñas como para encriptar variables que serán pasadas por una URL

Al encriptar contraseñas solo será de ida; No hay opción de desencriptarlas y la encriptación varia dependiendo de la llave que le des.
Ejemplo:
Código PHP:
<?php
include("5CR"); $llave "14lo8sWw+23¡ds"//llave que utilizaremos para encriptar
$pass "Los Pollitos"//contraseña a encriptar

$encript = new E5CR($llave); //definimos un nuevo elemento y pasamos la llave
$encript->encriptar($pass,0); //OJO cero(0) es para encriptar contraseñas
?>
Al encriptar las variables que serán pasadas pos la URL, se podrán desencriptar para su lectura pero solo con su respectiva llave.
Encriptación URL:
Código PHP:
<?php
include("5CR.php"); $llave "h3·94hHa9'2"//la llave utilizada
$variables "loguin=JALF&pass=2Rt378&tipo=Admin&fecha=12/2/2005"//conjunto de variables a pasar

$encript = new E5CR($llave); //definimos un nuevo elemento y pasamos la llave
$encript->encriptar($variables,1); //OJO uno(1) es para encriptar variables para URL
echo '<a href="archivo.php?val='.$variables.'">LINK</a>'//val es una variable cualquiera 
?>
Desencriptación URL:

Código PHP:
<?php
include("5CR.php");
$llave "h3·94hHa9'2"//la misma llave utilizada en el ejemplo anterior
$datos $_GET['val']; //pasamos el paquete a una variable en nuestro caso es val $encript = new E5CR($llave); //definimos un nuevo elemento y pasamos la llave
$encript->desencriptar($datos,4); //pasamos los datos a desencriptar y definimos el total //de variables incluidas en el paquete
//Impresión de los datos desencriptados
echo $datos['loguin']."<BR>";
echo 
$datos['pass']."<BR>";
echo 
$datos['tipo']."<BR>";
echo 
$datos['fecha']."<BR>";
?>
NOTA: Los niveles de encriptación son paranoicos, exajerados o por lo menos eso es lo que creo yo con los cientos de pruebas que le he realizado, de todas maneras aquí les dejo mi corre por si algo [email protected]

Entra y descargalo aquí

Última edición por JALF; 11/05/2005 a las 18:34 Razón: CORRECCION DE UN ERROR GARRAFAL!!!!
  #2 (permalink)  
Antiguo 10/05/2005, 04:21
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
Gracias Jalf por compartir este codigo. Me parece genial tu generosidad.

Ahora a mi me gustaría preguntar a ti o al resto como me las puedo apañar para encriptar los datos que un usuario introduzca en un formulario. Creo que tendría que ser JavaScript, pero las funciones que tu has enviado me resultan demasiado complicadas como para intentar alguna traduccion a JavaScript. (Debería haberme cogido alguna asignatura de seguridad).

Si alguien se ha tenido que enfrentar alguna vez a esto sería genial que compartiera con nosotros sus ideas, sería muy interesante creo yo.

Gracias Jalf y gracias a todos los que participais en el foro.
  #3 (permalink)  
Antiguo 10/05/2005, 04:43
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
vale, creo que al ver funciones de encriptacion he alucinado y he preguntado una chorrada.

Para enviar datos seguros al servidor se usa SSL (https) y supongo que no hay mas remedio, porque un codigo javascript un usuario espabilao se lo puede saltar.

Perdon por la pregunta, era una chorrada.
  #4 (permalink)  
Antiguo 10/05/2005, 12:36
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
JAJAJAJA fresco cualquiera se equivoca pero voy a seguir tu consejillo!!!!

Trataré de traducir esto a JavaScript de pronto a alguien le ha de servir!!!

Saludos!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #5 (permalink)  
Antiguo 10/05/2005, 13:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Así es .. para eso ya está la "capa de seguridad" SSL (Secure Socket Layer) .. que además es transparente entre cliente-servidor (pues es el módulo SSL del servidor HTTP el que entre el navegador y el servidor HTTP hacen todo el paso de variables en la conexión segura de forma encriptada: 128 bits si mal no recuerdo ..)

Por lo demás .. pasar un dato por el URL .. por mi parte no me agrada nada .. para eso podemos usar sesiones (www.php.net/session) .. Tambien se basan en "algo" de encriptación .. pues ahí tenemos lo que denominan "SID" que es un identificador único y blablabla .. Pero en ningún caso pasa el dato por el URL (de nigún modo).

También hay que tener cuidado sobre los datos que se propagan por el URL .. por qué no es "ilimitado" .. así que suma unas cuantas varaibles por el URL encriptadas van a sumar un total de N bytes que tal vez superen el tope del método "GET" (255 caracteres creo?)

Un saludo,
  #6 (permalink)  
Antiguo 10/05/2005, 13:43
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Ahora, tambien se debe tener cuidado con los register_globals, para que funcione bien o no
  #7 (permalink)  
Antiguo 10/05/2005, 14:24
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Cita:
Iniciado por lado2mx
Ahora, tambien se debe tener cuidado con los register_globals, para que funcione bien o no
hola me explicas esa parte no el entiendo muy bien!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #8 (permalink)  
Antiguo 10/05/2005, 14:29
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Bueno perdon si me referi a algo que no debi en las URL pero el caso es que sirve para quienes acostumbran a pasar qualquier dato por la URL sea lo que sea!!!! :-p
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #9 (permalink)  
Antiguo 10/05/2005, 14:37
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta

de casualidad para tuilizar SSL hay que tener algo en especial en el servidor o como se utiliza esto?????

PD: el post anterior está mal ubicado se me fue el dedo y repondi donde no era!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #10 (permalink)  
Antiguo 10/05/2005, 15:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por JALF
de casualidad para tuilizar SSL hay que tener algo en especial en el servidor o como se utiliza esto?????

PD: el post anterior está mal ubicado se me fue el dedo y repondi donde no era!!!
Si, .. SSL se instala en tu servidor HTTP (Apache por ejemplo con su "mod_ssl") .. Eso de por sí "encripta" la comunicación entre cliente-servidor (si tu navegador soporta la el nivel de encriptación que uses: 128 bits es lo común, hoy por hoy todo navegador la acepta así).

Pero .. el SSL no es "suficiente" .. al SSL se le asocia un "certificado" que autentifica que te estás conectando "seguramente" al domino que dices ser y quien eres. Ese Certificado SSL lo puedes generar tu mismo (con el soft adecuado) .. pero para que a su vez sea "válido" y autentificado por algún organismo oficial .. para eso tienes que comprar dicho certificado a una empresa que lo ofrezca certificada como por ejemplo: VeriSign (http://www.verisign.com/) .. Esto normalmente en un servicio de hosting común te lo gestiona tu servicio de hosting .. tu compras el certificado y ellos te lo asocian a tu domino.tal además de preparar tu sitio para que puedas trabajar con el.

Cara a "PHP" y tus aplicaciones es completamente trasnparente usar SSL o no .. los datos los recibes como siempre y los trabajas como siempre .. Sólo tendrás que ubicar tus scripts/páginas "seguras" bajo cierto servidor virutal o directorio en sí de tu sitio que será al que aplicas SSL (podría ser todo el sitio .. pero no necesáriamente).

Si quieres "investigar" SSL en tu casa con tu PC como servidor .. puedes crear certificados "no autentificados" sin problemas ..

Un saludo,
  #11 (permalink)  
Antiguo 10/05/2005, 21:36
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta

Como quien dice!!!!

Es mejor utilizar mi script que ponerme a comprar cosas cuando no tengo dinero???? ¿¿verdad?? o estaré equivocado?!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #12 (permalink)  
Antiguo 11/05/2005, 02:19
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
Bueno, tienes razon, tu script esta muy bien, pero esta discusion sobre SSL surgio porque yo pensaba en cómo encriptar datos desde el cliente al servidor, y creo que hagamos lo que hagamos con php no nos vale, y si usamos JavaScript su puede vulnerar muy facilmente, por lo tanto por mi parte creo que no nos queda otra que SSL.
  #13 (permalink)  
Antiguo 11/05/2005, 15:07
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
voy a ver si puedo crear algo en JavaScript que no sea facil de desifrar!!!

Y en cuanto lo tenga vengo a repartirlo para que lo prueben!!! ¿¿OK??
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #14 (permalink)  
Antiguo 11/05/2005, 16:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por JALF
Como quien dice!!!!

Es mejor utilizar mi script que ponerme a comprar cosas cuando no tengo dinero???? ¿¿verdad?? o estaré equivocado?!!!
Pues como dice Kurlas .. el tema no va por encriptar "en el servidor" .. y luego si quieres de ahí pasar esos datos a otros scripts o sistemas ya encriptado .. Sino de que te "capturen" la conexión entre tu cliente y el servidor ..

Usando javascript .. evitaras que te "descifren" tus datos "al vuelo" .. pero con un ligero analisis de donde viene (tu página) ya se podría ir jugando con ese código para descifrar tu "algorítmo" de encriptación .. No obstante por eso se inventó "SSL" y tiene una codificación de 128 bits (o más? a la fecha). Sino, .. para que pagariamos un SSL? y nos liariamos con configuraciones de "servidores" ..seríamos todos felices usando: "5CR - ENCRIPTACION AL ROJO VIVO SOLO PARA PARANOICOS" by JALF XDDDDD o no?

Un saludo,
  #15 (permalink)  
Antiguo 11/05/2005, 16:27
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
pero.... entonces no seria lo mismo con MD5??? que me capturan los datos y luego los decifran????
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #16 (permalink)  
Antiguo 11/05/2005, 16:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por JALF
pero.... entonces no seria lo mismo con MD5??? que me capturan los datos y luego los decifran????
Claro que si .. ni SSL se salva con su codificación (no sé exactamente la que usa) ... todo es "descifrable" .. ya sea a "fuerza bruta" (vamos probando que algún día daremos con la clave ..) o más facil lo pones si se vé el código que "encriptas" (algoritmo) .. se puede hacer "ingenería inversa" más fácilmente.

De hecho ya que estás metido en temas de "criptografía" .. fijate en la historia de la misma .. Todos los códigos de encriptación tienen su vigencia hasta que llega un "figura" y los "revienta" .... Hoy estamos "felices" con SSL y sus "128 bits" .. tal vez mañana no (no estoy muy al día de esos temas).

El tema es darle un poco de "seriedad" a la seguridad .. Está bien que implementes tus métodos sin desmerecerlos, pero si vas hacer algo "parecido" y que ya sabes que no es seguro por lo menos con los "standares" de hoy en día .. mejor no hagas falsas "ilusiones" o otras personas que no conocen esos standares. No sé si se entiende lo que te propongo .. tan sólo que "avises" que todo esto es "esperimental" .. que corre bajo la responsabilidad de quien lo usa el como y donde lo use .. (por tu bien) y que "podría" tener sus debilidades como te menciono. (esto para el caso de encriptación vía Javascript para "similar" un SSL de cierta forma). No obstante . .como ejercicio de "algorítmia" y programación en general está bien todo lo que haces y se agradece que lo compartas.

(espero que no te moleste mis comentarios ... sólo son reflexiones en geral).

Un saludo,
  #17 (permalink)  
Antiguo 11/05/2005, 18:14
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Noooo fresco todo bien todo bien!!!

Solo que vi que alguien hizo una función para encriptar y pues me dije:

"por que no hago una función para encriptar y mejor??"

y pues he aqui mi resultado algo que encripta contraseñas al 99.9% imposible de desencriptar y pues la parte de las URL pos..... fue alguito que me paso por la cabeza al entrar a un correo en Hotmail y pregunté:

"¿Qué son esos numero raros en la barra de direciones?" y pues un amigo medio me explico y pues de ahi salio la ideita

pero bueno ahi está el script para quien quiera aprender o utilizarlo!!!

Logicamente no me hago responsable de nada!!! por como dijiste Cluster

Cita:
todo esto es "esperimental" ..
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #18 (permalink)  
Antiguo 12/05/2005, 13:59
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Muchachos acabe de montar otraves 5CR para que lo descarguen porque tenia unas cosillas que lo dejaban trabajando solo para PHP5 asi que ahora tambien trabaja en PHP4.1.x o superior o por lo menos eso es lo que piesno yo!!!!

por favor pruebenlo y me cuentan!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
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 19:43.