Hace 7 años | Por ccguy a arstechnica.com
Publicado hace 7 años por ccguy a arstechnica.com

El sistema de control de versiones utilizado por WebKit se corrompió completamente después de que alguien subiese dos PDFs distintos con el mismo SHA1. El problema viene de que el software que gestión de versiones, Apache Subversion (SVN), utiliza SHA1 para hacer seguimiento y combinación de ficheros duplicados. WebKit es el motor de navegadores web utilizando entre otros por Safari.

Comentarios

D

SVN? SVN???

Jokessoℝ

Corrutos que son unos corrutos

f

Pues es una gran putada muy grande y mucha gente puede tener vulnerabilidades por esto.

D

#10 Porque limita mucho el trabajo en grupo. No es un sistema distribuido. Y es posible convertir un repositorio svn a git desde hace mucho, conservando todo el historial y demás.

s

#11 Git usa sha1. Git tiene el mismo problema, está afectado.
De todos modos al no ser centralizado como subversión siempre quedará alguna copia sin actualizar.

B

La culpa fué del Shá Shá Shá....

D

#5 Preveo una oleada de caos y destrucción que va a durar meses. La gente es muy puta cuando ve la más mínima ocasión de tocar los cojones porque sí.

tsumy

#12 El que mi equipo sea un repositorio en si mismo, para mi si que es suficiente para utilizar git hoy por ejemplo.

ED209

#25 Mas no temáis, si presto otras meneatrices se lanzaren a desfacer los entuertos.

Mister_Lala

Jajajajajajajajajajajajajajajajajajajaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajaaaaaaaaaaaaaaaa

D

#16 Ya sólo te falta colar un paquete de instalación coherente en el repositorio oficial de Debian y lo tienes. Chupado, vamos. roll

Pensad un poquito antes de poneros paranoicos viendo vulnerabilidades hasta donde no la hay. Los ”hashes” utilizados simplemente como ”checksum” siguen siendo seguros.

D

#0 Corrumpió?

D

Mi profesor la semana pasada nos decía en clase que la posibilidad de una colisión era tan minúscula que por eso esa seguro lol
Que se prepare el lunes ajjaja

ccguy

#2 Arreglado, gracias.

Jfreek

Que curioso, hace dos días, Google, que desarrolla Blink, competencia de Webkit, informa de que han han conseguido romper SHA1 y hoy aparece esto. tinfoil

D

#17
No, porque los paquetes vienen firmados con PGP.

Los hashes de checksum no son seguros para comprobar archivos modificados en tu sistema de archivos. Pueden modificar un archivo de manera que obtenga el mismo checksum que el que venga en el paquete Debian. Piensa un poquito antes de responder.

D

#42 Eso es lo que se conoce popularmente como no saber trabajar con un sistema de control de versiones, o trabajar con git como si fuese subversion. Hay que aprender a usar branches y merges, eso es todo.

tsumy

#10 Pues entre otras cosas por sha1

Pepitorl

#42 crea ramas por feature o bug, luego merge a develop, y el día de release de develop a master. Te aseguro que te ahorras un montón de problemas

g

¿alguien puede explicar el problema en mundano? Porque he entendido bien poco de todo este asunto desde que salió ayer.

daphoene

#79 Es correcto, pero creo que te has pasado de complejo. Para un profano es mejor algún ejemplo más sencillo ( lo intento, que no es fácil ):

Imaginemos que todas las tarjetas de crédito, al pasarlas por un lector de pago del berska ( o como coños se escriba ) aplican un método matemático al número de la tarjeta y lo envían al banco.

Si dos tarjetas distintas, al pasarla por el método matemático, dan el mismo número, tenemos un problema, y estamos pagando con la pasta de otro. ( En este caso, el banco, y el otro, tienen un problema ).

Esto se aplica en este caso al código que envían los programadores a 'la central' de su programa, donde el código de todos se mezcla para dar el resultado final. El problema aquí es que dos 'códigos' distintos dan el mismo resultado, haciendo que 'la central' se vuelva loca.

cc/ #24, ah y cc también a Góngora: #25, sean los hados propicios tal que aquestos ditirambos iluminen la savia de su mente y compartamos su grandeza entrambos.

Observer

#29 "Hasta ahora, si a un archivo (un conjunto de datos) le aplicabas este algoritmo devolvía un resultado único."
Los hash nunca son únicos. Cualquier hash del tamaño que sea tiene repeticiones cuando la cantidad de bits sobre los que aplicas la operación es mayor a la del hash.
Si la distribución es perfecta, para un hash de 160bits tendrías 2 repeticiones al aplicarlo sobre 161 bits y crecería de forma exponencial por cada bit que aumentes.

"Ahora han encontrado que pueden conseguir dos archivos con el mismo resultado."
Lo que han encontrado es una forma para generar es colisiones de forma simple y en un tiempo aceptable.

animalDeBellota

#46 si trabajas con gente así... Lo mejor es cambiar de trabajo

daphoene

#103 Yo suelo despreciar las modas, soy un punk anti-hype, pero git lo considero un avance razonable. Algunos apartados puede costar entenderlos en profundidad, pero el uso 'corriente' en realidad te hace la vida más fácil.

El aspecto que mencionas no tiene tanto que ver con Git o SVN como con la metodología de trabajo. Los conflictos siempre van a existir. Lo ideal es que cada grupo de gente tocando un bloque común de código tenga su propia rama de integración, y que el orden en que se mezclan esas ramas de integración con la principal sea algo pactado, si no es cierto que "tonto el último".

D

#20 Por supuesto en #27 donde digo SHA1 aplica para MD5, que me he confundido con el tema del meneo.

Si el ”hash” MD5 lleva roto desde hace más de diez años y sigue usándose para ”checksums” es por algo, listillo. Para usar como identificador no sirve, pero para muchas otras cosas sí.

ED209

#50 yo entiendo en esos enlaces que sí, git usa SHA1, pero de ahí a hacer una catástrofe como lo que han hecho con SVN va un trecho.
Y entiendo que tu crees que no hay tal trecho.

D

#39 Me parece que no entendiste lo que, con toda razón, ha dicho #13

x

#85 El problema son los certificados SSL que hay firmados con algoritmos como Sha1. Eso significa que tu puedes pensar que visitas google.es pero en realidad estas viendo una página controlada por externos.

Dentro de poco tanto Chrome como firefox van a dejar de aceptar los certificados sha1 como seguros así que esta via de ataque debería quedar limitada.

daphoene

#39 Es un repositorio inseguro y atrevido, un repositorio audaz que no le teme a nada, y camina sin mirar atrás, pero un repositorio al fin y al cabo, pardiez...

cc/ #12

x

Una pregunta muy chorras: ¿comparando el hash SHA1 Y el MD5 no se detectaría la colisión en uno de los dos? Difícilmente el hash de un fichero va a dar colisión por 2 métodos diferentes.

JanSmite

#52 Va, no te quejes: sin esos programadores de pacotilla que hacen mierdas de webs no podrías venir a trolear…

x

#45 bueno, si trabajas con gente que es mi agil y que piensa que el scm es como el undo es lo que termina pasando

Aokromes

Me pregunto si google habra publicado la vulnerabilidad a posta para que la peña se pase a blink.

j

#34 Los PDFs que han generado tienen exactamente el mismo tamaño

arllutoquintumi

Me sorprende que nadie haya comentado que los repositorios de Wordpress están en Subversion.

D

#103 Lo bueno de git con relación a svn con las ramas es que en git las ramas te las haces tu mismo, en un segundo y sin necesidad de que nadie se entere, con subversion una rama te la tiene que hacer el administrador, se entera todo el mundo y es la hostia. En cuanto al uso de la red subversion es una castaña, lento e ineficiente.

Cuando trabajas en una rama una buena costumbre es ir haciendo rebase de cuando en cuando si ves que hay muchos commits en la rama principal, de esta manera los commits en tu rama están siempre por encima de los de la rama principal y cuando toca hacer el merge es un momento.

Un buen workflow implica además que nunca estás escribiendo directamente en master ni haciendo los merges directamente a la rama de producción. Yo la verdad que siempre he trabajado en equipos grandes y dispersos y los problemas que han surgido siempre se han podido resolver con bastante facilidad. Cuando trabajaba con subversion perdí varios repositorios por unos backups que no se hacían y el admin no se había dado cuenta, el disco se jodió y perdimos un montón de cosas, eso con git es imposible.

Lo otro es la comodidad de irte de camping o pasarme una semana navegando y trabajando sin conexión de ningun tipo y con mis commits hechos, eso no tiene precio.

D

#3 ¡SVN es corrupción!

D

#33 Oigate dios, gongorilla.

D

#91 y el dia de release, cuando tu y tus 50 compañeros hagais todos el merge a release, o el dia anterior cuando todos hagais el merge a develop, te encontraras con que es un "marica el ultimo" porque todo el mundo tendra colisiones co otros 6 o 7. De los 60 ficheros que has cambiado en tu rama, 43 coinciden con los que han cambiado otros miembros, asi que tendras que hacer 43 merges si eres el ultimo en mergear. A quien madruga dios le ayuda.

Sigue siendo lo mismo, no saber trabajar en equipo y planificar mal los releases, proyectos con más desarrolladores y con más lineas de código cambiadas al día funcionan a la perfección con Git.

D

#42 Como se dice en todas partes: un gestor de versiones no sustituye a la comunicación entre programadores.

Observer

#69 Con mariposas, como los programadores de verdad.
A menos que utilices Emacs, entonces: C-x M-c M-butterfly

https://www.xkcd.com/378/

puffyist

#92 Disculpa, te entendí mal.

Yo creo que la mayor complicación a la hora de mantener los navegadores más que de esas web HTML 3.0 que mencionas viene de la enorme maraña de código ineficiente e inaccesible en la que se ha convertido el 99% de la web, siendo un buen ejemplo el framework jQuery. Yo suelo navegar sin Javascript porque el navegador se ralentiza y a veces incluso se cuelga.

La antítesis de esta librería es la recientemente publicada elementalsjs.com que, sin pretender cambiar el comportamiento de Javascript, aporta una serie de funciones para trabajar de forma más limpia.

Hoy día la web no suele cumplir ninguna recomendación de accesibilidad de la WCAG, y las personas con discapacidad cada vez encuentran más difícil encontrar información.

Zade

#91 La integración continua no es tener un jenkins detrás. Integración continua es básicamente una filosofía de trabajo cuya base radica en la "recomendación" de que el trabajo de todos se integre lo antes posible, por ejemplo a diario. Esa "integración" debe resultar en que todo debe compilar y funcionar en otra maquina que no sea la local, de ahí que sea buena practica apoyarse en servidores que verifiquen esa integración, que se hagan tests y demás.

https://www.martinfowler.com/articles/continuousIntegration.html

Se puede utilizar GIT o SVN y no integrar el trabajo de todos de forma continua y es un caos. La gracia es que GIT simplifica enormemente esa forma de colaborar en equipo pudiendo trabajar en una rama aislada sin que nadie te pise tu trabajo y luego mergear fácilmente a la rama de integración. Esto en SVN pues es basicamente un dolor de huevos.

D

#127 El resumen estaba hecho ya: "Qué PATÉTICO, PENOSO y LAMENTABLE eres..."

j

#20 "Pueden modificar un archivo de manera que obtenga el mismo checksum que el que venga en el paquete Debian".

¿Es computacionalmente viable hacer una ataque de preimagen al MD5?

Peka

#19 una huelga en el sector ahora y el primer día jodemodes el repositorio.

animalDeBellota

#42 el clásico workflow"a martillazos". Que cosas.

x

#102 #91 #99 si vives solo la cosa sale como en el papel, bien. Pero si tu feature, que desarrollas tu solito en tu rama sin que nadie te moleste, toca 32 ficheros que tambien ha tocado tu colega, que tambien ha desarrollado en su rama sin que nadie le moleste, teneis que hacer un merge de 32 ficheros como que Lobezno mola mas que Linterna Verde, y eso es igual de jodido tanto si usas git como si usas svn. Solo puede ser peor si lo haces con el vi.

Como estas en tu propia rama no te enteras de lo que pasa fuera de tu rama, y como no has terminado no puedes hacer merges continuos con la rama pricipal sin joderla (el señor Fowler no hace muchas cosa fuera de una puzarra, y esas lo aguantan todo).

A ver, si sacamos las ramas a pasear, da igual usar svn o git porque trabajas sin que lo s denas interfieran contigo. Solo notas la diferencia del tiempo del commit porque cambias el acceso a red pir el acceso a disco, pero nada mas. Y si no ysas ramas o compartes la rama, git te hace aislarte de los demas si no haces un commit+push, que es trabajar como en svn, con lo que tardas mas en integrarte con los demas (y Fowler te afeara energicamente tu discola conducta) .

Lo jodido son las colisiones y los merges, y esas te las comes igual uses lo que uses porque el problema es inherente al dsarrollo en equipo.

Miraros el video en el que Linus presenta git, sobre todo el momento en el que reconoce que dentro de una empresa, con una buena red asegurada, se puede trabajar con svn. El kernel necesita un scm distribuido porque, como son voluntarios, no se puede asegurar que todos tengan siempre red o pagar el ancho de banda que requiere que todos los voluntarios del planeta accedan al mismo servidor, pero me estrañaria que nadie de meneame tenga esos problemas, la verdad.

Pero podeis engañaros y pensar que con la metodología de moda todo ira bien... dentro de cinco años os apuntareis a la nueva moda y despreciareis lo que haceis hoy.

Nova6K0

#24 Básicamente se puede explicar así:

Imagínate que tienes varios trenes de mercancías que van por distintas vías, cada uno de estos trenes siempre sale por una vía distinta (distinto hash). ¿Qué probabilidad hay de que alguno de estos trenes salga por la misma vía que otro? (colisión de hash). Una colisión de hash se produce cuando dos entradas o dos valores aleatorios a partir de una función llamada de hash, producen la misma salida.

Por ejemplo uno de los trenes lleva madera y el otro lleva carbón (distinto mensaje o distinto contenido), eso sí pasan por el mismo punto de carga (función de hash) y siempre salen por una vía distinta a la de otros. Pero si por cualquier circunstancia salen por la misma vía habrá lo que se llama colisión de hash. Porque teniendo que una función de hash, a partir de una entrada llamémosle x, y una salida z. Tenemos que H (x) = z si llamamos a los dos trenes a y b, Y a las salidas zn (z1,z2,z3,z4...) se dará que...

Por ejemplo:

Si H (a) = z1 y H (b) = z5 -> No hay colisión:

Si H (a) = z3 y H (b) = z122 -> No hay colisión

Pero:

Si H (a) = z17 y H (b) = z17 -> ¡Se ha producido una colisión! y se da que H (a) = H (b) (¡coinciden los hash!)

Y esto anterior es muy grave, porque aunque las colisiones más tarde o más temprano se dan (aunque son miles de millones de valores no dejan de ser finitos y como encima son aleatorios es más fácil que se den). Pués hace que no te puedas fiar de la autenticidad de un contenido.

Esta busqueda anterior, por diferentes formas de encontrar una colisión, se denomina ataque de colsión de hash o ataque de colisiones. El problema es que si dentro de los muchos valores que hay vamos uno a uno desde el menor al mayor tardaríamos muchísimo en encontrar una posible colisión. Imaginemos los cien mil primeros valores, aquí no hay colisión y si vamos del 1 al 100.000 no habrá colisión, pero imaginemos que se produce una colisión entre los valores 100.001 y 4.996.678. Es más fácil encontrar estos valores si los elegimos al azar que si vamos del primero al último. Obviamente estos valores los he resumido, porque son miles de millones.

Generalmente es imposible que H (a) = H (b) (es decir que el hash de a coincida con el de b). Pero si se encuentra una colisión si de dará que H(a) = H(b) y aquí tendremos el problema que explicamos.

Salu2

daphoene

#117 Cada uno tiene sus ventajas, en eso estoy de acuerdo, yo no estoy diciendo git bien, svn mal, pero es cierto que git te da unas posibilidades que hacen mucho más sencillo trabajar con ramas, y eso puede ser muy ventajoso para solventar problemas que te ocurren todos los días. También es cierto que un gran poder conlleva una gran responsabilidad, y conozco gente muy osada que cree que ya lo sabe todo, y la lía con git, porque no sabe realmente lo que está haciendo, pero esa gente es peligrosa hasta con un lapicero, y el error está mucho antes del sistema de control de versiones.

Lo del merge automático es para gente que en realidad no aprecia la vida, en sí, o su propio tiempo. Lo de poner un continue al azar mola, pero ¿ y quitarlo al azar ? Son de esos errores lógicos que molan mogollón y se encuentran súper fácil, lo comento porque algún iluminado me hizo esa puñeta en el pasado...

D

#27 no te enteras de lo que te digo y la peña te vota positivo.
Esto es meneame!!!

D

#51
Dificultad ninguna. Creas tu programa y le añades lo que sea para tener el mismo hash.

a

#22 Ñe, te equivocas. En caso de que llegue un objeto con el mismo hash, git se queda con el local y rechaza el nuevo que llega.

D

#65 ¿Has usado git o mercurial?

Te cambia la manera de trabajar especialmente en proyectos grandes.

D

#94 No jodas, y un editor es un editor así que todo el mundo a usar notepad (eso sin entrar en que tendemos a usar IDEs).

Espero que no los hayas usado todos igual.

Git tiene un sistema de ramas muy superior )los merges, los rebase, la creación y borrado, las ramas locales) , squashing de commits, poder hacer commits parciales de ficheros diferenciando entre git add y git commit y haciendo stash de los cambios que querias mantener...

Esto es de cabeza.

Git es mucho más flexible y potente, lo puedes usar como subversion, pero es un desperdicio.

editado:
git commit --ammend para ir arreglando los problemas que salgan en review.

Anj

#21 Aun recuerdo cuando se publicó este pequeño experimento con MD5, hace 8 años ya...
https://rdos.wordpress.com/2009/02/23/usando-la-bola-de-crital-y-el-md5-para-predecir-los-numeros-de-la-loteria/

frg

#58 Para eso tienes que almacenar ambos, algo que parece no hace subversion.

Pepitorl

#66 si guardas la clave en SHA1 en la db y cuando recibes la request simplemente codificas el string a SHA1 ... podría ser no?

D

#16 yo he visto en mi trabajo 2 ficheros distintos con el mismo hash de md5 aunque no te lo creas. Eso sí la diferencia era un carácter (uno tenia un 0 y otro un 9 en la misma posicion) respecto uno de otro

Y esto fue por el 2007

Cc #17 #20 #21

m

#58: Yo también me planteo eso: ¿Qué pasa si se usan varios métodos diferentes como eMule?

m

#56: Haz un navegador así y "nadie" querrá usarlo.

Es muy simple, lo que tú llamas "HTML incorrecto y nada accesibles" en su día fue un estándar 100% válido. Puede parecerte muy sencillo llegar y actualizar la página web, pero... ¿Tu crees que todo el mundo tiene tanto tiempo libre como tú? Y eso si no les vuelve a dar por ahí y declaran lo actual como "deprecated", porque si, por fastidiar.

Nova6K0

#17 No lo digo por la colisión de hash, porque fue otro tema distinto. Pero si pueden pasar cosas como esta:

https://hipertextual.com/2016/02/linux-mint-hackeado

http://blog.linuxmint.com/?p=2994

Pués tampoco es tan conspiranoia que se pueda modificar un paquete en Debian, digo yo.

Salu2

JanSmite

#11 Ejem…

"Git uses SHA-1 hashes internally; this is a problem because SHA-1 is no longer considered secure. Linus Torvalds has responded that the hash was mostly to guard against accidental corruption, and the security a cryptographically secure hash gives was just an accidental side effect, with the main security being signing elsewhere. Nonetheless, the publication of the first SHA-1 collision attack in 2017 prominently mentioned Git as a possible target for attacks."

https://en.wikipedia.org/wiki/Git

capitan__nemo

Y claro, estos pdf los habrá subido alguien con esa intencionalidad, si no, como es que no se habia dado esta casualidad antes.
Toca workaround primero y parcheo cuando sea.

x

#61 #67 y eso que tiene que ver? La integracion continua es lo que pasa despues del commit (o el push). Si usas git, haces 50 commits a tu repositorio local (en tu rama, en 'miBrach45' o en el que sea) y despues haces push a la rama que compartes con otro, puedes tener colisiones (50 acumuladas) independientemente de que despues tengas un jenkis tirando test (y el resto de la parafrenalia) o lo metas en un tar y lo mandes por correo a producción. Si trabajas aislado de lis demas, te pisas con ellos sin darte cuenta hasta que te mezclas. Hags lo que hagas.

#67 y #86 y el dia de release, cuando tu y tus 50 compañeros hagais todos el merge a release, o el dia anterior cuando todos hagais el merge a develop, te encontraras con que es un "marica el ultimo" porque todo el mundo tendra colisiones co otros 6 o 7. De los 60 ficheros que has cambiado en tu rama, 43 coinciden con los que han cambiado otros miembros, asi que tendras que hacer 43 merges si eres el ultimo en mergear. A quien madruga dios le ayuda.

#72 toda la razon del mundo. Cuanto mas aislado, peor, y tener tu propio repositorio te aisla mas.

m

#90: Pero yo hablo de otra cosa, páginas web con HTML 3.0 porque su autor la hizo y no tiene tiempo para actualizarlo. Muchas de ellas no cargan lento, porque están bien hechas, sólo que para un estándar "antiguo", y es que lo del "deprecated" es una falta de respeto al trabajo de la gente. Supone tirar su trabajo a la basura.

m

#95 En eso si te doy la razón, que cada vez es más difícil encontrar una página web que sea el código, algo de estilo CSS, algo de JavaScript y punto.

Parece que si una página web no ocupa 200 mb de RAM no está bien hecha.

D

#35 ¿Y eso qué tiene que ver con lo yo he dicho?

calmad vuestros corceles
roll

D

#53 Lo que he dicho es que Git usa SHA-1, respondiendo a un usuario que insinuaba lo contrario y he mostrado un escenario en el que se puede corromper un repositorio con un blob con un hash duplicado.

pero de ahí a hacer una catástrofe como lo que han hecho con SVN va un trecho

cosmonauta

#8 ¿Cual es el problema? Svn mueve proyectos muy grandes.

a

#49 Es difícil de hacer a fuerza bruta.

Hay 3 niveles de seguridad en un algoritmo hash. El más difícil es: dado un fichero con un cierto hash, crear otro que tenga el mismo hash, que es lo que se ha conseguido ahora. Pero no a fuerza bruta, sino aprovechando debilidades en el algoritmo que no son evidentes y que ha costado muchos años investigar.

(Disculpa el negativo... el cambio de iconos del interfaz me ha jugado una mala pasada)

D

#18 cvs es la luz. Nunca debimos apartarnos de OpenBSd.

D

#35 O, The news.combinator. Una web donde ha tenido una hostia guapa gracias a un fallo de cookies con Cloudfare.

Aviso, vulernabilidad gorda.

Si algún sitio web con cuenta usa cloudflare, cambiad contraseña ya.

Repo github con las vulnerabilidades (joder esto es ridículo lol lol lol).

https://github.com/pirate/sites-using-cloudflare

cosmonauta

#80 uso git, he usado cvs, svn y sourcesafe.

Un repo es un repo, nada más. No veo problema en usar un svn, ni entiendo echarse las manos a la cabeza.

cosmonauta

#96 He trabajado en equipos que se preocupaban muchas más del workflow de git que de la calidad del código que escribían. La clásica discusión de merge versus rebases, o repos compartidos versus fork de repos y pull requests, en equipos de 3 personas, incluso cosas más raras.

Al final, svn o git solo son herramientas, y svn no es mala. Su concepto de servidor centralizado es el que acaban copiando el 90% de los equipos que usan git.

Un gran repo de svn, por ejemplo, el de WordPress.

D

#96 Eso me parece excusas para no intentar hacer las cosas de la mejor manera posible.

Estoy convencido de que muchos equipos usan git como usan Subversion, pero incluso en proyectos y equipos pequeños las posibilidades de git para editar commits y ramas locales sin coste, son muy útiles.

A mí no me ha pasado que el workflow de git nos haya generado más trabajo que resuelto. Al principio la transición, puede costar si no hay nadie que lo entienda. Aparte de que git no impone un workflow.

#114 eso también existe en svn, y los desarrolladores. también lo usamos para cotillear y podernos verdes.

ramsey9000

#36 no, el problema tuyo, es que el cliente es eso, el cliente y siempre va a meter baza... Porque como tu dices muchos responsables de proyectos de los clientes saben lo mismo de las tecnologías que se necesitan como una hormiga de saber como funciona un 747

Itilvte

#36 ten la chuleta a mano, por si acaso https://news.ycombinator.com/item?id=13719368

D

#32 Yo les dije a mis alumnos que la probabilidad de una colisión era minúscula, pero que MD5 y SHA-1 se consideraban inseguros y era mejor no usarlos, porque tarde o temprano se iban a encontrar colisiones. Y precisamente ayer, según me enteré de la noticia, lo mostré en clase.

g

#79 ¿Y dónde queda el exploit en todo esto? Entiendo por qué es un problema la colisión. No entiendo por qué hay semejante alarma como si fuese el problema de seguridad más grande del 2017.

D

#8 Sí, yo también aluciné.

x

#13 si no tienes una politica de backups montada en tu equipo, no lo usas solo como SCM y lo tienes detras de un firewall bien administrado, tu equipo no es un repositorio.

Otra cosa es que tu te lo creas.

x

#73 yo mas bien administraba, asi que me limitaba a ver como sufrian.

x

#115 pues a eso voy, que da igual lo que uses, los problemas serios estan ahi siempre porque si tocas lo mismo que otro hay un conflicto que ademas tienes que mirar a mano*. Uses lo que uses.

Despues puedes preferir uno u otro, o poner un ejemplo de uno mal gestionado contra uno bien llevado o salir con el tipico "es que no sabes trabajar, si haces las cosas con un poco de cuidadito con $MI_OPCION eso no pasa pero si pasa con $TU_OPCION porque asumo que vas a ir a lo loco", como hace #106.

#106 lo que dices esta muy bien, pero es hacer un monton de merges pequeñitos para evitarte un merge grande, cosas que tambien puedes hacer con svn o con cualquier otra cosa. Tu no estas defendiendo git, si no una forma de trabajar (crrecta). Donde si aciertas es en lo del camping, en poder trabajar sin conexion, que es la razon por la que Linus escribio git, porque necesitaba uno que funcionara desconectado, que es una ventaja de git sobre svn, pero cuando vuelvas del camping te espera un merge de una semana porque has dejado de trabajar "bien".

* no te puedes fiar del merge automatico porque lo que haces en un programa al principio (declarar una variable) tiene que ver con lo que haces al final (usarla). Si alguien borra la linea dende se declara, puede que el merge automatico funcione porque se han tocado lienas diferentes, pero el programa no compilara. El que diga que eso no es problema porque se detectara en la compilacion automatica que piense en poner un "continue" de forma aleatoria dentro de un if de algun bucle...

D

El MD5 en 30 segundos con un móvil no está nada mal.
Los paquetes Debian vienen con el MD5. Pocos hay con SHA256.

1 2