« first day (1261 days earlier)      last day (1851 days later) » 

12:06 AM
saludos bro
¿En qué momento defines el controlador?
 
12:25 AM
@fredyfx Creo que es porque puso name y date como atributo name en vez de id.
 
@ArtEze hey! ArtEze!
gusto de verte bro
¿Cómo has estado?
 
@fredyfx Bien, últimamente estuve aprendiendo PHP.
 
@ArtEze cheeere
 
@fredyfx Está bueno, me metí en el tema de la encriptación, pero no sé si se puede hacer un append a algo encriptado sin desencriptarlo.
 
@ArtEze te refieres a por ejemplo: hacer un md5 de otro md5?
 
12:35 AM
@fredyfx No, por ejemplo yo encripto "hola" y sale una serie binaria, luego quiero agregar "mundo" a la encriptación, pero sin desencriptar "hola", para que al desencriptar el archivo completo quede "hola mundo"... Pero me parece que no se puede, habría que hacer todo en archivos separados.
 
@ArtEze no, no se puede
a menos que desencriptes primero y vuelvas a encriptar todo
 
@fredyfx ok, ya me imaginaba, entonces es mejor generar archivos por separado, tener algún contador que indique el nombre del último archivo.
hola se guardaría en 0.txt, mundo en 1.txt
 
puedes generar archivos, cadenas
 
12:51 AM
@fredyfx Cierto.
 
1:02 AM
nos vemos hermanos
que tengan una bonita noche y un excelente fin de semana :D
 
@fredyfx Adiós.
 
 
6 hours later…
7:38 AM
Buenos días a todos por aqui
 
 
7 hours later…
3:07 PM
@MauricioContreras Buenos días.
 
3:28 PM
hola buenas
 
@CharlyUtrilla Hola.
 
que tal por aqui?
yo estoy currando con un problemilla
manejas php?
 
@CharlyUtrilla Sé algo pero poco.
 
estoy con el pasword_hash y estoy liado
 
@CharlyUtrilla ¿Cuál es el problema?
 
3:36 PM
se encriptar, pero leer y desencriptar na
 
@CharlyUtrilla No es necesario desencriptar.
 
es que el metodo para comparar el hash y la contraseña introducida no me sale bien
 
@CharlyUtrilla Hacés el hash de la contraseña ingresada y lo comparás con el hash guardado.
 
ok voy a probar a ver
gracias y adios
 
:)
@CharlyUtrilla Hay que generar el hash, luego enviar el hash por POST, leer el hash desde PHP y compararlo.
Ah, no... Eso puede ser peligroso.
Pero para probar no está mal.
 
3:53 PM
Normalmente se envía por POST hacia el backend el password sin encriptar, hablamos de que el sistema debe usar https, por lo cual la conexión se asume segura. En el backend se encripta el hash, usando el mismo procedimiento que se usó al almacenar en la DB, y es eso lo que se compara en la DB
 
@MauricioContreras ¿Conocés Fiddler 4? Todo lo que recibo por HTTPS el programa lo puede ver... Yo mandaría la contraseña encriptada por las dudas.
@MauricioContreras Si me vuelvo paranoico, analizaría la contraseña por fuerza bruta en el lado del servidor.
 
Bueno, en un mundo ideal sería imposible descifrar la contraseña. Pero, si no se dispone de HTTPS, se debe implementar algún medio de encriptado previo en front, aunque eso no tiene mucho sentido, ya que todo lo que se hace del lado navegador puede ser visualizado usando la consola. Por lo tanto el método de cifrado también se verá
Es por eso que ahora normalmente se usan sistemas de autenticación como OAuth, o cualquier sistema de verificación de 3 pasos
 
4:19 PM
@MauricioContreras Si se va a usar fuerza bruta, el servidor tiene que ser más potente que el cliente... De ese modo se podría poner un tiempo de expiración a la contraseña encriptada y enviada.
 
@ArtEze Creo que para eso existen los tokens y cookies. Realmente el tema de contraseñas es bastante amplio.
@ArtEze una de las cosas que se hace es usar un baneo de tiempo, para evitar los ataques de fuerza bruta. En la actualidad cualquiera puede alquilar un servicio de fuerza de cómputo (AWS por ejemplo) y tener un potencial mayor que cualquier servidor medianamente grande. No se trata de la fuerza del ataque, sino de la eficacia del mismo
 
@MauricioContreras Bien, pero lo que digo es, en vez de enviar múltiples peticiones al servidor, el hombre del medio tiene que adivinar un número aleatorio que envió el cliente antes de que el servidor empiece a prohibir los intentos.
 
@ArtEze en cuanto a Fiddler, por supuesto que espía todo, pero un buen sistema en el backend debe tener la capacidad de detectar eso (tal vez no se podrá detectar todo, pero si minimizar) y descartar la solicitud si se detecta una intercepción de los datos)
@ArtEze Eso es precisamente lo que se hace con un sistema de verificación de 3 pasos
 
4:37 PM
@MauricioContreras Aah, genial, pensé que esas cosas no se hacían... También se puede detectar la intercepción investigando en el navegador del interceptor.
 
El mundo de la seguridad se ha movido a ese sistema ya que propone un paso adicional que se supone inalcanzable para el atacante. Google por ejemplo envía un mensaje al teléfono móvil para pedir la autorización de autenticación de cuenta desde un dispositivo desconocido o sospechoso
 
@MauricioContreras La verdad que sí, se avanzó mucho.
 
Los ataques man-in-the-middle se realizan sobre comunicaciones cifradas, es decir HTTPS, si tu conexión no es cifrada, no se llama man-in-the-middle, es simplemente un sniffing
 
@MauricioContreras No sabía eso.
 
Es por ello que el tema de los Certificados y su configuración e implementación es tan importante. Ya que es la primera barrera de protección contra ataques. Si tus certificados se ven comprometidos, es mejor renovarlos y dar de baja los que sufrieron filtración.
 
4:45 PM
@MauricioContreras Más trabajo para el usuario pero es más seguro.
 
@ArtEze El usuario es el peor agente de seguridad que puedes tener. He visto contraseñas tan absurdas que es impensable que esa persona sea un Homo Sapiens. Desde hace un tiempo para acá mis claves personales contienen 63 caracteres totalmente aleatorios. El tema, aún se complica para mi, dado que mi memoria biológica no me permite recordar exactamente todos los caracteres y el orden de los mismos, entonces el desafío es almacenarlos en un lugar seguro.
 
@MauricioContreras Se podría hacer un generador aleatorio en el que la contraseña sea pronunciable y no ambigüo, es decir, que siempre use una i latina en vez de una y griega, que no genere partes repetidas como mimimi.
 
5:02 PM
@ArtEze He encontrado que cuando se usa como contraseña una frase (en cualquier idioma), la misma tiene una fortaleza extraordinariamente grande, incluso más que una clave totalmente aleatoria. Sin embargo aún no me he atrevido a probarlo con mis claves personales.
 
@MauricioContreras El mio dice 1 minuto jajaj
@MauricioContreras Mi primera contraseña dice 54 milisegundos.
 
@ArtEze Tal vez un atacante no se espera una frase en el campo password, y al ser tan poco frecuente hasta la descarte. Puede ser extraño en un principio encontrar un campo password así: "El Tiempo no tolera que le den palmadas", la cual es una frase del libro de Lewis Carol "Alicia en el país de las Maravillas"
Si la introduces en la página que te sugerí verás que un ataque de fuerza bruta a esa frase tardará Eones.
 
@MauricioContreras Yo antes de calcular el tiempo le aplicaría una compresión, no es lo mismo poner aaaa que mano.
 
@ArtEze Mis contraseñas antiguas (que yo creía fuertes) tardan 4 semanas según esa página
 
@MauricioContreras impresionante
 
5:18 PM
@ArtEze Igual, según mi punto de vista, no tengo información apetecible para un ataque, en lo personal mis datos no son más relevantes que una cucaracha en un basurero. Si alguien captura alguna de mis contraseñas, lo único que puede hacer es Spam desde mi cuenta, dudo mucho que saque beneficio de ello. No soy de subir cosas a Face(robo)book o sitios sociales. De hecho, no uso Twitter.
 
@MauricioContreras Yo volví a usar Facebook por tercera vez, el Twitter me lo suspendieron pero lo puedo usar para ver publicaciones, no para comentar.
 
 
2 hours later…
7:14 PM
Acabo de recibir tres votos nada más publicar una respuesta. Es la primera vez que me pasa. Y en sábado!
 
@abulafia Mios no fueron.
 
7:32 PM
@abulafia No domino Python así que no puedo opinar en cuanto a la calidad de la respuesta, pero se ve bien estructurada. Solo por eso tienes mi +1 XD
@abulafia De hecho, tu respuesta me enseñó algo de Python, y déjame decirte que soy muy exigente con los tutoriales que consigo colgados o los libros sobre lenguajes en general. Tu explicación es el tipo de explicaciones que realmente invitan a profundizar en el tema. Mis felicitaciones.
 
8:25 PM
@MauricioContreras Muchas gracias! Me alegro de haber llegado a alguien :-)
Estaba mirando la web esa de las contraseñas. No sé yo si será muy fiable que en nanosegundos (mientras tecleas) te diga que tu contraseña puede tardar años en ser crakeada. Me pregunto qué parámetros medirá
Por ejemplo, acabo de probar "Ornitorrinco" y me dice que tres mil años, cuando está claro que un ataque de diccionario la rompería en milisegundos
Muy relevante, por cierto, esta tira clásica de XKCD:
 
8:43 PM
@MauricioContreras Por si te interesa he añadido otro apartado a la respuesta explicando como se podría implementar este caso sin yield y comparando ambas alternativas
 
@abulafia Claro, le echaré un ojo. En cuanto a la web de passwords, creo que la intención es alertarte de la posibilidad de que tu password sea hackeable. En mi equipo, "Ornitorrinco" me arroja 300 años para descifrarla. No creo que use un algoritmo, solo creo que calcula ciertas probabilidades dado el tamaño del string y tal vez algun tipo de diferencia con los tipos de símbolos. Es mas a modo ilustrativo
 
9:31 PM
@MauricioContreras Algo más que tipos de caracteres y longitudes. Probé con palabras inglesas muy largas y me decía "Instantáneo", o sea que compara con algún diccionario. Pero no tiene uno en español :-)
 
Anonymous
10:00 PM
@NicolasOñate Borracho :D
 
11:47 PM
Me acaban de aceptar una respuesta de julio
 
@abulafia Gente ocupada.
 

« first day (1261 days earlier)      last day (1851 days later) »