{"id":4546,"date":"2023-11-29T17:44:59","date_gmt":"2023-11-29T20:44:59","guid":{"rendered":"https:\/\/itconnect.lat\/portal\/?p=4546"},"modified":"2025-12-09T16:59:09","modified_gmt":"2025-12-09T19:59:09","slug":"vulnerabilidades-de-billeteras-cripto-001","status":"publish","type":"post","link":"https:\/\/itconnect.lat\/portal\/vulnerabilidades-de-billeteras-cripto-001\/","title":{"rendered":"Vulnerabilidades de billeteras cripto 2023: nadie parchea un castillo de cartas"},"content":{"rendered":"<div class=\"blog-item-top-wrapper\">\n<div class=\"blog-item-title\">\n<h1 class=\"entry-title entry-title--large p-name\" data-content-field=\"title\">Descubriendo vulnerabilidades de billeteras cripto, Unciphered ha dedicado 22 meses a analizar BitcoinJS y derivados, revelando riesgos en proyectos asociados.<\/h1>\n<figure id=\"attachment_4549\" aria-describedby=\"caption-attachment-4549\" style=\"width: 400px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/itconnect.lat\/portal\/wp-content\/uploads\/2023\/11\/tinywow_Leonardo_Diffusion_XL_cripto_wallet_0_41684285-e1701288002610.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4549\" src=\"https:\/\/itconnect.lat\/portal\/wp-content\/uploads\/2023\/11\/tinywow_Leonardo_Diffusion_XL_cripto_wallet_0_41684285-e1701288002610.webp\" alt=\"Vulnerabilidades de billeteras cripto\" width=\"400\" height=\"300\" title=\"\"><\/a><figcaption id=\"caption-attachment-4549\" class=\"wp-caption-text\">Vulnerabilidades de billeteras cripto<\/figcaption><\/figure>\n<p>En el trasfondo de a\u00f1os de investigaci\u00f3n meticulosa, emerge una vulnerabilidad de magnitud cr\u00edtica que ha dado lugar a la creaci\u00f3n masiva de billeteras de criptomonedas susceptibles a riesgos.<\/p>\n<p>La vulnerabilidad tiene su origen en la funci\u00f3n SecureRandom() incrustada en la biblioteca javascript JSBN. Su impacto se agrava por debilidades inherentes en las implementaciones clave de Math.random() en los navegadores.<\/p>\n<p>Es imperativo destacar que esta vulnerabilidad persisti\u00f3 en BitcoinJS hasta marzo de 2014, lo que subraya la importancia de la temporalidad en las actualizaciones.<\/p>\n<p>Este descubrimiento plantea cuestionamientos cruciales sobre la seguridad de las billeteras cripto en general.<\/p>\n<p>A medida que la comunidad se enfrenta a la magnitud de esta amenaza, IT CONNECT LATAM se compromete a seguir monitoreando y proporcionando detalladas actualizaciones sobre este asunto de ciberseguridad cr\u00edtico para los activos cripto.<\/p>\n<p>La conciencia y la acci\u00f3n inmediata son esenciales para mitigar los riesgos potenciales derivados de esta vulnerabilidad significativa.<\/p>\n<\/div>\n<\/div>\n<div id=\"yui_3_17_2_1_1701280397285_73\" class=\"blog-item-content-wrapper\">\n<div id=\"yui_3_17_2_1_1701280397285_72\" class=\"blog-item-content e-content\">\n<div id=\"item-65526012bf8fe11a2c7747ce\" class=\"sqs-layout sqs-grid-12 columns-12\" data-layout-label=\"Post Body\" data-type=\"item\">\n<div id=\"yui_3_17_2_1_1701280397285_71\" class=\"row sqs-row\">\n<div id=\"yui_3_17_2_1_1701280397285_70\" class=\"col sqs-col-12 span-12\">\n<div id=\"block-8eda8d0cec15bf2a0011\" class=\"sqs-block html-block sqs-block-html\" data-block-type=\"2\">\n<div class=\"sqs-block-content\">\n<div class=\"sqs-html-content\">\n<h3><strong>Ampliando la Perspectiva: Rastreando la Vulnerabilidad en BitcoinJS y sus Ramificaciones en Proyectos Afines<\/strong><\/h3>\n<p>El alcance temporal de la vulnerabilidad en BitcoinJS, utilizada por varios proyectos para la generaci\u00f3n de billeteras cripto, presenta un desaf\u00edo en la determinaci\u00f3n precisa de su duraci\u00f3n.<\/p>\n<p>No obstante, nuestras observaciones se\u00f1alan la generaci\u00f3n de billeteras vulnerables desde 2011 hasta 2015.<\/p>\n<p>La confirmaci\u00f3n de su explotabilidad resalta la urgencia de abordar este problema.<\/p>\n<p>Es esencial se\u00f1alar que la complejidad para explotar estas billeteras var\u00eda, increment\u00e1ndose con el tiempo.<\/p>\n<p>En t\u00e9rminos generales, las billeteras generadas en 2014 presentan una resistencia sustancialmente mayor a los intentos de ataque en comparaci\u00f3n con las generadas en 2012.<\/p>\n<p>Esta informaci\u00f3n crucial proporciona un marco temporal para la evaluaci\u00f3n de riesgos y destaca la necesidad de medidas proactivas en la comunidad de criptomonedas.<\/p>\n<p class=\"\">La colaboraci\u00f3n con diversas entidades ha permitido una divulgaci\u00f3n coordinada, alertando a millones de usuarios sobre la cr\u00edtica vulnerabilidad detectada.<\/p>\n<p class=\"\">En el caso de posibles activos en billeteras afectadas, se aconseja la migraci\u00f3n inmediata a una nueva billetera generada con software confiable.<\/p>\n<p class=\"\">La prontitud en esta transici\u00f3n es esencial para salvaguardar los activos y mitigar cualquier riesgo asociado.<\/p>\n<p class=\"\">La transparencia y la acci\u00f3n proactiva son pilares fundamentales en nuestra misi\u00f3n de mantener la integridad y seguridad en el espacio de las criptomonedas.<\/p>\n<h3><strong>Descubrimiento y Resoluci\u00f3n de Vulnerabilidad en Billeteras Cripto<\/strong><\/h3>\n<p>En enero de 2022, Unciphered abord\u00f3 un caso donde un cliente enfrentaba dificultades para acceder a su billetera Bitcoin de Blockchain.com.<\/p>\n<p>Durante la investigaci\u00f3n, identificamos un problema potencial en las billeteras generadas por BitcoinJS (y proyectos derivados) entre 2011 y 2015.<\/p>\n<p>Este hallazgo impacta a millones de billeteras, especialmente aquellas generadas en 2011. El valor de los activos en estas billeteras es significativo.<\/p>\n<p>Aunque otros pudieron haber observado el problema, Unciphered ha liderado esfuerzos durante m\u00e1s de un a\u00f1o para abordar y solucionar esta vulnerabilidad, demostrando nuestro compromiso con la seguridad y la protecci\u00f3n de los activos cripto.<\/p>\n<h3><strong>BitcoinJS: Evoluci\u00f3n desde la Incepci\u00f3n de Bitcoin<\/strong><\/h3>\n<p>BitcoinJS (<a href=\"https:\/\/github.com\/bitcoinjs\/bitcoinjs-lib\/commit\/c0d740d2d4cd35ab18dc35e23936db42f17ad2ee\" target=\"_blank\" rel=\"noopener\">o bitcoinjs-lib<\/a>) emerge como una implementaci\u00f3n crucial en el universo de Bitcoin.<\/p>\n<p>Con el inicio de la cadena de bloques en enero de 2009, BitcoinJS sigue la estela de la innovaci\u00f3n, marcando su primera confirmaci\u00f3n poco m\u00e1s de dos a\u00f1os despu\u00e9s, en mayo de 2011.<\/p>\n<p>Este periodo encapsula el desarrollo continuo de una herramienta vital en el ecosistema de criptomonedas, subrayando su relevancia en la evoluci\u00f3n tecnol\u00f3gica desde los primeros d\u00edas de Bitcoin.<\/p>\n<p>La intersecci\u00f3n entre la historia de Bitcoin y la implementaci\u00f3n de BitcoinJS refleja el progreso intr\u00ednseco en la creaci\u00f3n y gesti\u00f3n de activos digitales.<\/p>\n<p class=\"\">Puede ver la versi\u00f3n 0.1.3 ac\u00e1: <a href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/bitcoinjs-lib\/0.1.3\/bitcoinjs-min.js\" target=\"_blank\" rel=\"noopener\">https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/bitcoinjs-lib\/0.1.3\/bitcoinjs-min.js<\/a><\/p>\n<h3><strong>Desaf\u00edos en BitcoinJS: Revelaci\u00f3n de &#8220;Ketamina&#8221; sobre Vulnerabilidades Cr\u00edticas<\/strong><\/h3>\n<p>El 6 de abril de 2018, la comunidad de Bitcoin se vio sacudida por la revelaci\u00f3n de &#8220;Ketamina&#8221;.<\/p>\n<p>A trav\u00e9s de un correo electr\u00f3nico desde <a href=\"mailto:ketamina@national.shitposting.agency\" target=\"_new\" rel=\"noopener\">ketamina@national.shitposting.agency<\/a> a la lista de desarrolladores de bitcoin, titulado &#8220;M\u00faltiples vulnerabilidades en SecureRandom(), numerosos productos de criptomonedas afectados&#8221;, el autor alert\u00f3 sobre serias fallas en la biblioteca popular BitcoinJS.<\/p>\n<p>En la comunicaci\u00f3n, &#8220;Ketamina&#8221; afirm\u00f3 que una variedad significativa de productos cripto, tanto del pasado como del presente, albergaban una clase de JavaScript llamada SecureRandom().<\/p>\n<p>Esta clase, seg\u00fan el informe, exhib\u00eda deficiencias tanto en la recolecci\u00f3n de entrop\u00eda como en el Generador de N\u00fameros Aleatorios Pseudoaleatorios (PRNG).<\/p>\n<p>La gravedad de estas debilidades permit\u00eda a terceros con complejidad media recuperar material clave, arrojando luz sobre un desaf\u00edo cr\u00edtico que requer\u00eda atenci\u00f3n inmediata por parte de la comunidad de desarrollo y usuarios de criptomonedas.<\/p>\n<h3><strong>Profundizando en las Vulnerabilidades: Desaf\u00edos en la Recopilaci\u00f3n de Entrop\u00eda en BitcoinJS<\/strong><\/h3>\n<figure id=\"attachment_4551\" aria-describedby=\"caption-attachment-4551\" style=\"width: 400px\" class=\"wp-caption alignright\"><a href=\"https:\/\/itconnect.lat\/portal\/wp-content\/uploads\/2023\/11\/tinywow_Leonardo_Diffusion_XL_cripto_wallet_3_41684504-e1701289119688.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4551\" src=\"https:\/\/itconnect.lat\/portal\/wp-content\/uploads\/2023\/11\/tinywow_Leonardo_Diffusion_XL_cripto_wallet_3_41684504-e1701289119688.webp\" alt=\"Vulnerabilidades de billeteras cripto\" width=\"400\" height=\"300\" title=\"\"><\/a><figcaption id=\"caption-attachment-4551\" class=\"wp-caption-text\">Vulnerabilidades de billeteras cripto<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">El informe de &#8220;Ketamina&#8221; se\u00f1al\u00f3 que las variantes comunes de la biblioteca intentaban recopilar entrop\u00eda del CSPRNG de window.crypto.<\/p>\n<p style=\"text-align: justify;\">Sin embargo, debido a un error de tipo en una comparaci\u00f3n, esta funci\u00f3n pasaba silenciosamente sin generar errores.<\/p>\n<p style=\"text-align: justify;\">La entrop\u00eda se recolectaba posteriormente de math.Random, un generador de n\u00fameros pseudoaleatorios lineal de 48 bits, sembrado por el tiempo en algunos navegadores, junto con la ejecuci\u00f3n de un temporizador de resoluci\u00f3n media.<\/p>\n<p style=\"text-align: justify;\">En ciertas configuraciones, este sistema pose\u00eda sustancialmente menos de 48 bits de entrop\u00eda.<\/p>\n<p style=\"text-align: justify;\">En el mismo hilo de la lista de correo, Mustafa Al-Bassam (&#8220;tflow&#8221; de LulzSec) coment\u00f3 que, en la pr\u00e1ctica, la versi\u00f3n del navegador era crucial, ya que navigator.appVersion &lt; &#8220;5&#8221; siempre devolv\u00eda verdadero para navegadores antiguos.<\/p>\n<p style=\"text-align: justify;\">El problema real resid\u00eda en que los navegadores modernos no defin\u00edan window.crypto.random, lo que podr\u00eda afectar a las billeteras Bitcoin utilizando versiones anteriores a 2013 de jsbn al no emplear un CSPRNG al ejecutarse en navegadores contempor\u00e1neos.<\/p>\n<p style=\"text-align: justify;\">Este se\u00f1alamiento subray\u00f3 la relevancia de las versiones de bibliotecas y navegadores en la seguridad de las billeteras Bitcoin.<\/p>\n<p class=\"\">Parece estar haciendo referencia al siguiente c\u00f3digo:<\/p>\n<p><span class=\"hljs-function\"><span class=\"hljs-keyword\"><span class=\"citation-0\">function<\/span><\/span> <span class=\"hljs-title\"><span class=\"citation-0\">SecureRandom<\/span><\/span><span class=\"citation-0\">(<\/span><span class=\"citation-0\">) <\/span><\/span><span class=\"citation-0\">{} <\/span><span class=\"hljs-keyword\"><span class=\"citation-0\">var<\/span><\/span><span class=\"citation-0\"> rng_state, rng_pool, rng_pptr; <\/span><span class=\"hljs-keyword\"><span class=\"citation-0\">if<\/span><\/span><span class=\"citation-0\"> (rng_pool == <\/span><span class=\"hljs-literal\"><span class=\"citation-0\">null<\/span><\/span><span class=\"citation-0\">) { rng_pool = <\/span><span class=\"hljs-keyword\"><span class=\"citation-0\">new<\/span><\/span> <span class=\"hljs-built_in\"><span class=\"citation-0\">Array<\/span><\/span><span class=\"citation-0\">(); rng_pptr = <\/span><span class=\"hljs-number\"><span class=\"citation-0\">0<\/span><\/span><span class=\"citation-0\">; <\/span><\/p>\n<p><span class=\"hljs-keyword\"><span class=\"citation-0\">var<\/span><\/span><span class=\"citation-0\"> t; <\/span><span class=\"hljs-keyword\"><span class=\"citation-0\">if<\/span><\/span><span class=\"citation-0\"> (navigator.appName == <\/span><span class=\"hljs-string\"><span class=\"citation-0\">&#8220;Netscape&#8221;<\/span><\/span><span class=\"citation-0\"> &amp;&amp; navigator.appVersion &lt; <\/span><span class=\"hljs-string\"><span class=\"citation-0\">&#8220;5&#8221;<\/span><\/span><span class=\"citation-0 citation-end-0\">)<\/span> { <span class=\"hljs-keyword\">for<\/span> (t = <span class=\"hljs-number\">0<\/span>; t &lt; <span class=\"hljs-string\">&#8220;MOZILLA&#8221;<\/span>.length; ++t) { rng_pool[rng_pptr++] = <span class=\"hljs-string\">&#8220;MOZILLA&#8221;<\/span>.charCodeAt(t) &amp; <span class=\"hljs-number\">255<\/span>; } <span class=\"hljs-built_in\">window<\/span>.crypto.random(<span class=\"hljs-number\">32<\/span>); } <span class=\"hljs-keyword\">else<\/span> { <span class=\"hljs-keyword\"><span class=\"citation-1\">while<\/span><\/span><span class=\"citation-1\"> (rng_pptr &lt; rng_psize) { t = <\/span><span class=\"hljs-built_in\"><span class=\"citation-1\">Math<\/span><\/span><span class=\"citation-1\">.floor(<\/span><span class=\"hljs-number\"><span class=\"citation-1\">65536<\/span><\/span><span class=\"citation-1\"> * <\/span><span class=\"hljs-built_in\"><span class=\"citation-1\">Math<\/span><\/span><span class=\"citation-1\">.random()); rng_pool[rng_pptr++] = t &gt;&gt;&gt; <\/span><\/p>\n<p><span class=\"hljs-number\"><span class=\"citation-1\">8<\/span><\/span><span class=\"citation-1\">; rng_pool[rng_pptr++] = t &amp; <\/span><span class=\"hljs-number\"><span class=\"citation-1\">255<\/span><\/span><span class=\"citation-1\">; } rng_pptr = <\/span><span class=\"hljs-number\"><span class=\"citation-1\">0<\/span><\/span><span class=\"citation-1 citation-end-1\">; } } rng_seed_time();<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699908175949_39412\" class=\"sqs-block image-block sqs-block-image sqs-text-ready\" data-block-type=\"5\">\n<div id=\"yui_3_17_2_1_1701280397285_69\" class=\"sqs-block-content\">\n<div id=\"yui_3_17_2_1_1701280397285_68\" class=\"image-block-outer-wrapper layout-caption-below design-layout-inline combination-animation-site-default individual-animation-site-default individual-text-animation-site-default animation-loaded\" data-test=\"image-block-inline-outer-wrapper\"><\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699908175949_39761\" class=\"sqs-block html-block sqs-block-html\" data-block-type=\"2\">\n<div class=\"sqs-block-content\">\n<div class=\"sqs-html-content\">\n<h3><strong>Ra\u00edces Vulnerabilidades de billeteras cripto : Explorando jsbn y SecureRandom en BitcoinJS<\/strong><\/h3>\n<p>Este c\u00f3digo proviene de la biblioteca jsbn, &#8220;Javascript Big Number&#8221; de Tom Wu, aclamada por su rapidez y portabilidad en matem\u00e1ticas de n\u00fameros grandes en JavaScript puro.<\/p>\n<p>Esta implementaci\u00f3n robusta habilita la criptograf\u00eda de clave p\u00fablica y diversas aplicaciones en navegadores de escritorio y m\u00f3viles, seg\u00fan la visi\u00f3n de Wu.<\/p>\n<p>La funci\u00f3n SecureRandom, ubicada en rng.js, se presenta como un recolector de entrop\u00eda rudimentario y una interfaz RNG. Su funcionamiento depende de un backend PRNG para definir prng_newstate().<\/p>\n<p>Este trasfondo t\u00e9cnico resalta la complejidad inherente en la generaci\u00f3n segura de n\u00fameros aleatorios, subrayando la necesidad de un an\u00e1lisis minucioso y una gesti\u00f3n diligente en el desarrollo de bibliotecas cripto esenciales como jsbn.<\/p>\n<h3><strong>Herencia de JSBN en BitcoinJS: Persistencia de Vulnerabilidades m\u00e1s All\u00e1 de 2014<\/strong><\/h3>\n<p>Aunque BitcoinJS ces\u00f3 su uso de JSBN en marzo de 2014, el legado persiste. El JSBN de Tom Wu, contenido en el directorio src de bitcoinjs-lib-0.1.3.tar.gz, ha encontrado vida en otros proyectos que incorporaron su c\u00f3digo y continuaron utilizando funciones vulnerables hasta 2015.<\/p>\n<p>La amplia adopci\u00f3n del c\u00f3digo temprano de BitcoinJS ha dejado una huella significativa, resultando en la presencia de billeteras vulnerables generadas en 2015.<\/p>\n<p>La divulgaci\u00f3n original resalta una lamentable realidad: el c\u00f3digo JSBN importado a BitcoinJS intenta recopilar entrop\u00eda de window.crypto.random, una propiedad que no forma parte est\u00e1ndar de la API de criptograf\u00eda web moderna o JavaScript.<\/p>\n<p>Este desafortunado detalle ampl\u00eda la ventana de vulnerabilidad y destaca la importancia de la revisi\u00f3n constante en el desarrollo de proyectos cripto para garantizar la seguridad continua de las billeteras generadas en ese periodo.<\/p>\n<h3><strong>Lecciones del Pasado: Desaf\u00edos con Math.random en Criptograf\u00eda JavaScript (2009)<\/strong><\/h3>\n<p style=\"text-align: justify;\">En el art\u00edculo de 2009, &#8220;Criptograf\u00eda sim\u00e9trica en Javascript&#8221; de Emily Stark, Michael Hamburg y Dan Boneh, se plantea la cr\u00edtica limitaci\u00f3n de Math.random como fuente \u00fanica de entrop\u00eda. La falta de confiabilidad en Math.random lleva a la b\u00fasqueda de alternativas, destacando la posibilidad de utilizar el PRNG criptogr\u00e1fico dedicado window.crypto.random, que hizo su primera aparici\u00f3n en Netscape 4.<\/p>\n<p>Sin embargo, los autores lamentan que, en ese momento, window.crypto.random no estaba implementado en ning\u00fan navegador importante. Esta limitaci\u00f3n subraya los desaf\u00edos inherentes a la obtenci\u00f3n de entrop\u00eda segura en el entorno JavaScript de la \u00e9poca y resalta la evoluci\u00f3n necesaria en las capacidades de criptograf\u00eda web para mejorar la seguridad de las aplicaciones basadas en navegador.<\/p>\n<h3><strong>Desafiando las Limitaciones: Evoluci\u00f3n de Entrop\u00eda en BitcoinJS y JSBN<\/strong><\/h3>\n<p>A pesar de la existencia de window.crypto.random en Netscape Navigator 4.x, su utilidad se ve comprometida en el contexto de la generaci\u00f3n de billeteras de criptomonedas mediante BitcoinJS.<\/p>\n<p>En las versiones tempranas de BitcoinJS, la funci\u00f3n window.crypto.random no estaba presente en los navegadores utilizados para crear billeteras cripto.<\/p>\n<p>Esta ausencia lleva a que la llamada a window.crypto.random en JSBN falle silenciosamente, lo que resulta en la posterior recopilaci\u00f3n de entrop\u00eda de Math.random().<\/p>\n<p>Aunque Math.random() nunca deber\u00eda ser empleado para generar materiales de claves criptogr\u00e1ficas, durante el periodo cr\u00edtico de 2011-2015, esta funci\u00f3n presentaba deficiencias en todos los principales navegadores.<\/p>\n<p>Este escenario subraya la complejidad de mantener la seguridad en el espacio de criptomonedas durante una fase en la que las fuentes de entrop\u00eda eran limitadas y desafiantes, resaltando la necesidad de avances continuos en las pr\u00e1cticas de seguridad cripto.<\/p>\n<h3><strong>Lecciones de la Realidad: Desaf\u00edos con Math.random() en el Motor V8 de JavaScript (2015)<\/strong><\/h3>\n<p>El 19 de noviembre de 2015, Mike Malone comparti\u00f3 su experiencia en la entrada de blog &#8220;<a href=\"https:\/\/medium.com\/\" target=\"_blank\" rel=\"noopener\">TIFU usando Math.random()<\/a>&#8220;. Detall\u00f3 problemas espec\u00edficos en la implementaci\u00f3n de Math.random() en el motor JavaScript V8, ampliamente utilizado por Chrome. En su empresa, Math.random() se utilizaba para generar identificadores de API, empleando identificadores de 22 caracteres.<\/p>\n<p>Aunque se esperar\u00eda una colisi\u00f3n de 1 entre 6 mil millones de solicitudes con esta longitud de identificador, Malone descubri\u00f3 que existir\u00eda un alarmante 50% de posibilidades de colisi\u00f3n despu\u00e9s de generar solo 30,000 identificadores.<\/p>\n<p>Este incidente resalta las limitaciones y deficiencias en la generaci\u00f3n de n\u00fameros aleatorios en el entorno JavaScript, evidenciando las repercusiones directas en la seguridad de las implementaciones criptogr\u00e1ficas y la necesidad de pr\u00e1cticas m\u00e1s seguras en el manejo de entrop\u00eda.<\/p>\n<h3><strong>Dificultades Generalizadas: Debilidades en Math.random() Reveladas por Comunidad y Mozilla (2015)<\/strong><\/h3>\n<p style=\"text-align: justify;\">La publicaci\u00f3n de Mike Malone no solo destac\u00f3 los problemas espec\u00edficos en el motor V8 de Chrome, sino que tambi\u00e9n se\u00f1al\u00f3 las preocupaciones sobre el uso de LCG (generador congruencial lineal) por parte de Mozilla en Firefox. Malone abog\u00f3 por un cambio en el algoritmo de Mozilla debido a sus propias observaciones.<\/p>\n<p style=\"text-align: justify;\">En respuesta, Jan de Mooij de Mozilla llev\u00f3 a cabo una investigaci\u00f3n detallada que culmin\u00f3 en las publicaciones del blog &#8220;<a href=\"https:\/\/jandemooij.nl\/blog\/math-random-and-32-bit-precision\/\" target=\"_blank\" rel=\"noopener\">Math.random() y precisi\u00f3n de 32 bits<\/a>&#8221; y &#8220;<a href=\"https:\/\/jandemooij.nl\/blog\/testing-math-random-crushing-the-browser\/\" target=\"_blank\" rel=\"noopener\">Pruebas de Math.random(): rompiendo el navegador<\/a>&#8220;.<\/p>\n<p style=\"text-align: justify;\">Describi\u00f3 el algoritmo utilizado por Firefox como &#8220;importado de Java hace d\u00e9cadas&#8221; y especul\u00f3 sobre su similitud con el algoritmo de Microsoft.<\/p>\n<p>Los resultados de las pruebas confirmaron la falta de robustez en los RNG utilizados por la mayor\u00eda de los navegadores para Math.random().<\/p>\n<p>De Mooij destac\u00f3 que el GameRand RNG de Safari, aunque extremadamente r\u00e1pido, era significativamente d\u00e9bil, generando solo alrededor de 4.2 mil millones de n\u00fameros diferentes, en comparaci\u00f3n con los 9007199 millones (2^53) que podr\u00eda generar un RNG ideal.<\/p>\n<p>Estos hallazgos subrayan la necesidad cr\u00edtica de mejorar la calidad de los RNG en los navegadores para garantizar la seguridad en operaciones criptogr\u00e1ficas y generaci\u00f3n de n\u00fameros aleatorios.<\/p>\n<p class=\"\">Presenta <a href=\"https:\/\/bugs.webkit.org\/show_bug.cgi?id=151641\" target=\"_blank\" rel=\"noopener\">un error contra WebKit<\/a> en el que sugiere que pasen a un &#8220;mejor RNG&#8221;.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699908175949_24269\" class=\"sqs-block image-block sqs-block-image sqs-text-ready\" data-block-type=\"5\">\n<div id=\"yui_3_17_2_1_1701280397285_88\" class=\"sqs-block-content\">\n<div id=\"yui_3_17_2_1_1701280397285_87\" class=\"image-block-outer-wrapper layout-caption-below design-layout-inline combination-animation-site-default individual-animation-site-default individual-text-animation-site-default animation-loaded\" data-test=\"image-block-inline-outer-wrapper\">\n<figure id=\"yui_3_17_2_1_1701280397285_86\" class=\" sqs-block-image-figure intrinsic \">\n<div id=\"yui_3_17_2_1_1701280397285_85\" class=\"image-block-wrapper\" data-animation-role=\"image\">\n<div id=\"yui_3_17_2_1_1701280397285_84\" class=\"sqs-image-shape-container-element has-aspect-ratio \"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png\" sizes=\"auto, 100vw\" srcset=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png?format=100w 100w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png?format=300w 300w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png?format=500w 500w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png?format=750w 750w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png?format=1000w 1000w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png?format=1500w 1500w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png?format=2500w 2500w\" alt=\"\" width=\"1008\" height=\"137\" data-stretch=\"false\" data-src=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png\" data-image=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/2f863c35-d817-40f5-bcc4-ca4771a76721\/Screenshot+from+2023-11-13+12-54-11.png\" data-image-dimensions=\"1008x137\" data-image-focal-point=\"0.5,0.5\" data-load=\"false\" data-loader=\"sqs\" data- title=\"\"><\/div>\n<\/div><figcaption class=\"image-caption-wrapper\">\n<div class=\"image-caption\">\n<p class=\"\"><em>del <\/em><a href=\"https:\/\/bugs.webkit.org\/show_bug.cgi?id=151641\" target=\"_blank\" rel=\"noopener\"><em>error 151641<\/em><\/a><em> : use un RNG mejor para Math.random()<\/em><\/p>\n<\/div>\n<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699908175949_24618\" class=\"sqs-block html-block sqs-block-html\" data-block-type=\"2\">\n<div class=\"sqs-block-content\">\n<div class=\"sqs-html-content\">\n<h3><strong>Evoluci\u00f3n hacia la Seguridad: Cambios en Algoritmos Math.random() (2016)<\/strong><\/h3>\n<p>En un esfuerzo por abordar las vulnerabilidades inherentes, los principales navegadores realizaron cambios significativos en sus algoritmos Math.random() en 2016, optando por XorShift128+.<\/p>\n<p>Esta actualizaci\u00f3n marc\u00f3 un hito crucial en la mejora de la calidad y seguridad de los n\u00fameros aleatorios generados en el entorno del navegador.<\/p>\n<p>Para un an\u00e1lisis m\u00e1s detallado de estos problemas y las soluciones adoptadas, se puede consultar la publicaci\u00f3n del blog &#8220;Aleatoriedad en el navegador web&#8221;, que ofrece un resumen comprensivo de la evoluci\u00f3n y los desaf\u00edos enfrentados en la generaci\u00f3n de n\u00fameros aleatorios en el contexto de los navegadores web.<\/p>\n<p>Debido al fallo silencioso al intentar recopilar entrop\u00eda de window.crypto.random, el c\u00f3digo BitcoinJS, importado de JSBN, se ve obligado a depender de una generaci\u00f3n m\u00e1s d\u00e9bil de n\u00fameros pseudoaleatorios.<\/p>\n<p>En rng.js de JSBN, se sugiere la recopilaci\u00f3n adicional de entrop\u00eda mediante la presi\u00f3n de teclas y clics de rat\u00f3n como medida recomendada para mejorar la seguridad en el proceso de generaci\u00f3n de n\u00fameros aleatorios.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699908175949_26117\" class=\"sqs-block image-block sqs-block-image sqs-text-ready\" data-block-type=\"5\">\n<div id=\"yui_3_17_2_1_1701280397285_97\" class=\"sqs-block-content\">\n<div id=\"yui_3_17_2_1_1701280397285_96\" class=\"image-block-outer-wrapper layout-caption-below design-layout-inline combination-animation-site-default individual-animation-site-default individual-text-animation-site-default animation-loaded\" data-test=\"image-block-inline-outer-wrapper\">\n<figure id=\"yui_3_17_2_1_1701280397285_95\" class=\" sqs-block-image-figure intrinsic \">\n<div id=\"yui_3_17_2_1_1701280397285_94\" class=\"image-block-wrapper\" data-animation-role=\"image\">\n<div id=\"yui_3_17_2_1_1701280397285_93\" class=\"sqs-image-shape-container-element has-aspect-ratio \"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png\" sizes=\"auto, 100vw\" srcset=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png?format=100w 100w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png?format=300w 300w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png?format=500w 500w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png?format=750w 750w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png?format=1000w 1000w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png?format=1500w 1500w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png?format=2500w 2500w\" alt=\"\" width=\"554\" height=\"100\" data-stretch=\"false\" data-src=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png\" data-image=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/8e9d6146-0618-42f7-b9cf-636ce9cda1ec\/Screenshot+from+2023-11-13+13-05-34.png\" data-image-dimensions=\"554x100\" data-image-focal-point=\"0.5,0.5\" data-load=\"false\" data-loader=\"sqs\" data- title=\"\"><\/div>\n<\/div>\n<\/figure>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699908175949_26467\" class=\"sqs-block html-block sqs-block-html\" data-block-type=\"2\">\n<div class=\"sqs-block-content\">\n<div class=\"sqs-html-content\">\n<p>En respuesta a las limitaciones de entrop\u00eda de Math.random(), algunos proyectos dependientes de BitcoinJS han optado por seguir el consejo de recopilar entrop\u00eda adicional mediante la interacci\u00f3n del usuario (presionar teclas y clics de rat\u00f3n).<\/p>\n<p>Esta medida, aunque mejora la situaci\u00f3n al diversificar las fuentes de entrop\u00eda, no garantiza una generaci\u00f3n de claves completamente segura.<\/p>\n<p>La cantidad de entrop\u00eda recopilada sigue siendo un factor crucial, ya que determina la fortaleza de las claves generadas.<\/p>\n<p>Dependiendo de la implementaci\u00f3n y la cantidad de entrop\u00eda disponible, la generaci\u00f3n de claves a\u00fan podr\u00eda ser susceptible a ciertos tipos de ataques.<\/p>\n<p>Este escenario destaca la importancia de la educaci\u00f3n y la implementaci\u00f3n cuidadosa de pr\u00e1cticas de seguridad en proyectos que dependen de bibliotecas cripto, especialmente cuando se trata de la generaci\u00f3n de claves criptogr\u00e1ficas.<\/p>\n<h3><strong>Notificaci\u00f3n de Vulnerabilidad: Acciones Cruciales Requeridas<\/strong><\/h3>\n<figure id=\"attachment_4553\" aria-describedby=\"caption-attachment-4553\" style=\"width: 400px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/itconnect.lat\/portal\/wp-content\/uploads\/2023\/11\/Leonardo_Diffusion_XL_cripto_wallet_2-e1701289554764.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4553\" src=\"https:\/\/itconnect.lat\/portal\/wp-content\/uploads\/2023\/11\/Leonardo_Diffusion_XL_cripto_wallet_2-e1701289554764.jpg\" alt=\"Vulnerabilidades de billeteras cripto\" width=\"400\" height=\"300\" title=\"\"><\/a><figcaption id=\"caption-attachment-4553\" class=\"wp-caption-text\">Vulnerabilidades de billeteras cripto<\/figcaption><\/figure>\n<p>Aunque la notificaci\u00f3n original de la vulnerabilidad en la lista de correo de Bitcoin-Dev no hace referencia expl\u00edcita a la biblioteca JSBN, BitcoinJS, ni a proyectos posteriores como Blockchain.info (posteriormente blockchain.com), proporciona pautas claras de acci\u00f3n.<\/p>\n<p>La recomendaci\u00f3n principal es:<\/p>\n<ul>\n<li><strong>Identificar y Mover Fondos:<\/strong>\n<ul>\n<li>Identificar y transferir todos los fondos almacenados utilizando SecureRandom().<\/li>\n<\/ul>\n<\/li>\n<li><strong>Rotar Claves:<\/strong>\n<ul>\n<li>Rotar todas las claves generadas o que hayan interactuado con cualquier software que utilice SecureRandom().<\/li>\n<\/ul>\n<\/li>\n<li><strong>Prudencia en Herramientas Criptogr\u00e1ficas:<\/strong>\n<ul>\n<li>Evitar desarrollar herramientas criptogr\u00e1ficas en lenguajes no seguros para tipos.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Precauci\u00f3n con Salida de CSPRNG y RC4:<\/strong>\n<ul>\n<li>No utilizar la salida de un CSPRNG y pasarla por RC4.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Esta notificaci\u00f3n enfatiza la gravedad de la situaci\u00f3n y la necesidad de tomar medidas inmediatas.<\/p>\n<p>La identificaci\u00f3n del c\u00f3digo d\u00e9bil lleva a la urgente recomendaci\u00f3n de mover fondos y realizar rotaciones de claves para mitigar el riesgo.<\/p>\n<p>La prudencia en el desarrollo de herramientas criptogr\u00e1ficas y el manejo cuidadoso de las salidas de CSPRNG subrayan la importancia de pr\u00e1cticas seguras en el \u00e1mbito de la criptograf\u00eda.<\/p>\n<h3>Impacto<\/h3>\n<p><strong>BitcoinJS en Yarnpkg: Imprescindible para Billeteras de Bitcoin Web<\/strong><\/p>\n<p>La descripci\u00f3n de BitcoinJS en Yarnpkg subraya su posici\u00f3n vital en el ecosistema de criptomonedas:<\/p>\n<p>&#8220;La biblioteca Bitcoin de JavaScript puro para node.js y navegadores.<\/p>\n<p>Una implementaci\u00f3n continua de la versi\u00f3n 0.1.3 original utilizada por m\u00e1s de un mill\u00f3n de usuarios de billeteras; la columna vertebral de casi todas las billeteras web de Bitcoin que se producen hoy en d\u00eda.&#8221;<\/p>\n<p>Esta afirmaci\u00f3n destaca la relevancia cr\u00edtica de BitcoinJS, siendo una implementaci\u00f3n clave que ha servido como base para una gran cantidad de billeteras web de Bitcoin utilizadas por una amplia base de usuarios.<\/p>\n<p>Su papel central en la infraestructura cripto subraya la importancia de abordar cualquier vulnerabilidad en esta biblioteca para garantizar la seguridad y confiabilidad de las operaciones en el espacio de las criptomonedas.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699908175949_37703\" class=\"sqs-block image-block sqs-block-image sqs-text-ready\" data-block-type=\"5\">\n<div id=\"yui_3_17_2_1_1701280397285_106\" class=\"sqs-block-content\">\n<div id=\"yui_3_17_2_1_1701280397285_105\" class=\"image-block-outer-wrapper layout-caption-below design-layout-inline combination-animation-site-default individual-animation-site-default individual-text-animation-site-default animation-loaded\" data-test=\"image-block-inline-outer-wrapper\">\n<figure id=\"yui_3_17_2_1_1701280397285_104\" class=\" sqs-block-image-figure intrinsic \">\n<div id=\"yui_3_17_2_1_1701280397285_103\" class=\"image-block-wrapper\" data-animation-role=\"image\">\n<div id=\"yui_3_17_2_1_1701280397285_102\" class=\"sqs-image-shape-container-element has-aspect-ratio \"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png\" sizes=\"auto, 100vw\" srcset=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png?format=100w 100w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png?format=300w 300w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png?format=500w 500w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png?format=750w 750w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png?format=1000w 1000w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png?format=1500w 1500w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png?format=2500w 2500w\" alt=\"\" width=\"1099\" height=\"228\" data-stretch=\"false\" data-src=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png\" data-image=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/4b66fdf2-591f-45ed-9ade-b7cb672ba0cf\/Screenshot+from+2023-11-13+15-33-26.png\" data-image-dimensions=\"1099x228\" data-image-focal-point=\"0.5,0.5\" data-load=\"false\" data-loader=\"sqs\" data- title=\"\"><\/div>\n<\/div><figcaption class=\"image-caption-wrapper\">\n<div class=\"image-caption\">\n<p class=\"\"><em>de bitcoinjs-lib-0.1.3\/build\/bitcoinjs-min.js<\/em><\/p>\n<\/div>\n<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699908175949_38053\" class=\"sqs-block html-block sqs-block-html\" data-block-type=\"2\">\n<div class=\"sqs-block-content\">\n<div class=\"sqs-html-content\">\n<p class=\"\">BitcoinJS fue utilizado por muchos proyectos a principios de la d\u00e9cada de 2010. A continuaci\u00f3n se muestra una lista no exhaustiva de proyectos que utilizaron BitcoinJS y su estado actual:<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699897363091_215980\" class=\"sqs-block image-block sqs-block-image sqs-text-ready\" data-block-type=\"5\">\n<div id=\"yui_3_17_2_1_1701280397285_115\" class=\"sqs-block-content\">\n<div id=\"yui_3_17_2_1_1701280397285_114\" class=\"image-block-outer-wrapper layout-caption-below design-layout-inline combination-animation-site-default individual-animation-site-default individual-text-animation-site-default animation-loaded\" data-test=\"image-block-inline-outer-wrapper\">\n<figure id=\"yui_3_17_2_1_1701280397285_113\" class=\" sqs-block-image-figure intrinsic \">\n<div id=\"yui_3_17_2_1_1701280397285_112\" class=\"image-block-wrapper\" data-animation-role=\"image\">\n<div id=\"yui_3_17_2_1_1701280397285_111\" class=\"sqs-image-shape-container-element has-aspect-ratio \"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png\" sizes=\"auto, 100vw\" srcset=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png?format=100w 100w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png?format=300w 300w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png?format=500w 500w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png?format=750w 750w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png?format=1000w 1000w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png?format=1500w 1500w, https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png?format=2500w 2500w\" alt=\"\" width=\"1976\" height=\"1372\" data-stretch=\"false\" data-src=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png\" data-image=\"https:\/\/images.squarespace-cdn.com\/content\/v1\/6156001e4a686e24886bd0b2\/9ea57f4d-fe95-4e94-8a4a-0a0604dec545\/Screenshot+2023-11-13+at+09.52.35.png\" data-image-dimensions=\"1976x1372\" data-image-focal-point=\"0.5,0.5\" data-load=\"false\" data-loader=\"sqs\" data- title=\"\"><\/div>\n<\/div><figcaption class=\"image-caption-wrapper\">\n<div class=\"image-caption\">\n<p class=\"\"><strong><em>Esta lista de proyectos se deriv\u00f3 de las notas de la versi\u00f3n de varias versiones de BitcoinJS, <\/em><\/strong><a href=\"https:\/\/www.npmjs.com\/\" target=\"_blank\" rel=\"noopener\"><strong><em>https:\/\/www.npmjs.com\/package\/bitcoinjs-lib\/v\/3.0.2<\/em><\/strong><\/a><strong><em> y <\/em><\/strong><a href=\"https:\/\/classic.yarnpkg.com\/en\/package\/@tradle\/bitcoinjs-lib\" target=\"_blank\" rel=\"noopener\"><strong><em>https:\/\/classic.yarnpkg.com\/en\/package. \/@tradle\/bitcoinjs-lib<\/em><\/strong><\/a><strong><em> .<\/em><\/strong><\/p>\n<\/div>\n<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1699897363091_216546\" class=\"sqs-block html-block sqs-block-html\" data-block-type=\"2\">\n<div class=\"sqs-block-content\">\n<div class=\"sqs-html-content\">\n<p><strong>Impacto y Desaf\u00edos en Proyectos Dependientes de BitcoinJS<\/strong><\/p>\n<p>El impacto de la vulnerabilidad en proyectos dependientes de BitcoinJS es diverso y depende de varios factores, como la duraci\u00f3n del uso del c\u00f3digo vulnerable, las mitigaciones implementadas y el tama\u00f1o de la base de usuarios en ese per\u00edodo.<\/p>\n<p>La situaci\u00f3n var\u00eda para cada proyecto, y la magnitud del riesgo se determina seg\u00fan c\u00f3mo se hayan generado las claves privadas.<\/p>\n<p>Es crucial destacar que las claves privadas de Bitcoin deben generarse con 256 bits de entrop\u00eda.<\/p>\n<p>Sin embargo, debido a la vulnerabilidad en BitcoinJS y proyectos dependientes, las claves generadas podr\u00edan haber utilizado menos entrop\u00eda de la requerida. Evaluar el impacto con precisi\u00f3n es desafiante, ya que no todas las carteras se vieron afectadas de la misma manera.<\/p>\n<p>Para que un ataque sea factible, un atacante generalmente necesitar\u00eda elementos generados a partir de Math.random() en el momento de la creaci\u00f3n de la billetera, como el GUID o IV.<\/p>\n<p>Esto reduce la cantidad de trabajo necesario, pero a\u00fan implica explotar debilidades en los RNG utilizados en los navegadores durante ese per\u00edodo.<\/p>\n<p>La capacidad de derivar el estado del RNG a partir del GUID o IV permitir\u00eda la generaci\u00f3n de todos los valores anteriores y futuros generados por el RNG, incluida la entrop\u00eda inicial crucial para la generaci\u00f3n de claves privadas.<\/p>\n<p>La complejidad y la magnitud del riesgo subrayan la importancia de la notificaci\u00f3n temprana de vulnerabilidades, la implementaci\u00f3n de mejores pr\u00e1cticas de seguridad y la evaluaci\u00f3n continua del impacto en proyectos criptogr\u00e1ficos y de carteras.<\/p>\n<h3><strong>Evoluci\u00f3n de la Seguridad: Mejoras Graduales en la Generaci\u00f3n de Claves<\/strong><\/h3>\n<p>La experiencia de Unciphered en la recuperaci\u00f3n de carteras generadas con software derivado de BitcoinJS proporciona una visi\u00f3n valiosa de la evoluci\u00f3n de la seguridad en el tiempo. En casos donde se ha tenido \u00e9xito, se ha requerido realizar 48 bits de trabajo, principalmente en billeteras generadas antes de marzo de 2012.<\/p>\n<p>La dificultad de estos ataques disminuye a medida que los proyectos incorporan fuentes adicionales de entrop\u00eda en la generaci\u00f3n de billeteras.<\/p>\n<p>Un ejemplo notable es el cambio realizado por Blockchain.info (ahora Blockchain.com) en marzo de 2012. Antes de esta fecha, se recopilaban hasta 48 bits de entrop\u00eda adicional durante la generaci\u00f3n de la billetera a partir de la entrada del usuario.<\/p>\n<p>Despu\u00e9s de marzo de 2012, la tarea de realizar el ataque se vuelve m\u00e1s desafiante, ya que se recopilan, en promedio, entre 6 y 12 bits de entrop\u00eda adicional por pulsaci\u00f3n de tecla y clic del mouse.<\/p>\n<p>La entrop\u00eda se extrae de la marca de tiempo (en milisegundos) de la entrada del usuario, con la marca de tiempo inicial agregando alrededor de 32 bits.<\/p>\n<p>La variabilidad en el tiempo entre pulsaciones de teclas determina cu\u00e1ntas posibilidades de marca de tiempo deben adivinarse para reconstruir adecuadamente el conjunto de entrop\u00eda utilizado para generar la clave privada del usuario.<\/p>\n<p>La introducci\u00f3n de la entrop\u00eda adicional a partir de movimientos del mouse, implementada por Blockchain.info en 2014, ha fortalecido a\u00fan m\u00e1s la seguridad, haciendo que el ataque sea exponencialmente m\u00e1s dif\u00edcil.<\/p>\n<p>Bitaddress.org, otro ejemplo que utiliza BitcoinJS, ha estado recopilando entrop\u00eda a partir de pulsaciones de teclas, clics y movimientos del mouse desde noviembre de 2011, demostrando la evoluci\u00f3n constante hacia pr\u00e1cticas m\u00e1s seguras en la generaci\u00f3n de billeteras Bitcoin.<\/p>\n<h3><strong>Riesgos Persistentes: Posibles Debilidades en la Generaci\u00f3n de Carteras Criptogr\u00e1ficas<\/strong><\/h3>\n<p>A pesar de las mejoras y medidas implementadas en la generaci\u00f3n de billeteras para abordar la vulnerabilidad en BitcoinJS, persisten situaciones en las que podr\u00edan generarse carteras criptogr\u00e1ficamente d\u00e9biles.<\/p>\n<p>En escenarios donde las contrase\u00f1as se copian y pegan, como el uso de generadores de contrase\u00f1as, la entrop\u00eda no se obtendr\u00eda de las pulsaciones de teclas, lo que podr\u00eda resultar en la creaci\u00f3n de una billetera criptogr\u00e1ficamente d\u00e9bil.<\/p>\n<p>Este riesgo se extiende m\u00e1s all\u00e1 de Bitcoin, ya que es probable que carteras de otras criptomonedas, como Dogecoin, tambi\u00e9n se vean afectadas por esta vulnerabilidad.<\/p>\n<p>Dogechain.info, un explorador popular de Dogecoin que ofrece servicios de generaci\u00f3n de billeteras derivados de BitcoinJS desde diciembre de 2013, podr\u00eda estar en riesgo.<\/p>\n<p>Adem\u00e1s, bifurcaciones de BitcoinJS en GitHub existen tanto para Dogecoin como para Zcash. Aunque es importante se\u00f1alar que Zcash se lanz\u00f3 por primera vez a finales de 2016.<\/p>\n<p>Bitpay, un proveedor de servicios de pago de criptomonedas fundado en 2011, incorpor\u00f3 c\u00f3digo de BitcoinJS, incluido rng.js de jsbn, en su paquete bitcore desde la versi\u00f3n 0.1.6 en febrero de 2014 hasta la versi\u00f3n 0.9.5 en febrero de 2015.<\/p>\n<p>La versi\u00f3n 0.9.4 lanzada el 12 de febrero de 2015 tambi\u00e9n podr\u00eda verse afectada, lo que destaca la necesidad de una evaluaci\u00f3n exhaustiva y actualizada de la seguridad en proyectos que han incorporado c\u00f3digo de BitcoinJS.<\/p>\n<h3><strong>Conclusi\u00f3n: Desaf\u00edos Persistentes en la Seguridad de Criptomonedas<\/strong><\/h3>\n<p>La conclusi\u00f3n resalta la realidad de los desaf\u00edos persistentes en la seguridad de criptomonedas, especialmente en el contexto de dependencia de bibliotecas de terceros.<\/p>\n<p>El caso de BitcoinJS ilustra c\u00f3mo proyectos populares pueden depender de bibliotecas que carecen de suficiente personal o est\u00e1n abandonadas, lo que puede dar lugar a vulnerabilidades significativas.<\/p>\n<p>BitcoinJS reconoce estos problemas y aconseja a los usuarios realizar auditor\u00edas exhaustivas de su c\u00f3digo y las dependencias del proyecto.<\/p>\n<p>La integridad del c\u00f3digo se vuelve esencial, especialmente cuando se protegen activos financieros, informaci\u00f3n personal identificable (PII) u otra informaci\u00f3n confidencial.<\/p>\n<p>La cadena de suministro del software, como se evidencia en el historial de problemas con SecureRandom(), Math.random() y proyectos relacionados, ha sido hist\u00f3ricamente vulnerable a riesgos.<\/p>\n<p>La analog\u00eda con el fiasco de Debian\/OpenSSL en 2008 destaca la importancia de aprender de la historia para fortalecer la seguridad en el presente.<\/p>\n<p>La publicaci\u00f3n insta a los usuarios de criptomonedas a ser proactivos en la seguridad de sus billeteras.<\/p>\n<p>La naturaleza \u00fanica de las criptomonedas, donde no se puede parchear una clave privada y mover activos sin permiso es un delito, crea desaf\u00edos adicionales.<\/p>\n<p>La \u00fanica soluci\u00f3n, en caso de descubrir que el software gener\u00f3 billeteras vulnerables, es que los usuarios muevan sus activos a nuevas billeteras.<\/p>\n<p>La conclusi\u00f3n refleja el compromiso de Unciphered en la divulgaci\u00f3n responsable y la colaboraci\u00f3n con proveedores afectados. Adem\u00e1s, se destaca que la vulnerabilidad es explotable, y se insta a los usuarios a considerar la transferencia de fondos a billeteras m\u00e1s recientes y generadas por software confiable.<\/p>\n<p>La reticencia a proporcionar detalles adicionales sobre la explotaci\u00f3n de la vulnerabilidad resalta la importancia de equilibrar la divulgaci\u00f3n de informaci\u00f3n para la conciencia p\u00fablica con la necesidad de evitar dar informaci\u00f3n adicional a posibles malos actores.<\/p>\n<h3><strong>\u00a1Importante Aviso de BitcoinJS!<\/strong><\/h3>\n<blockquote><p><strong>\u00a1NO uses Math.random, de ninguna manera, no lo hagas!<\/strong><\/p><\/blockquote>\n<p>Este enf\u00e1tico mensaje desde la p\u00e1gina actual de GitHub de BitcoinJS resalta la cr\u00edtica importancia de evitar el uso de Math.random en el contexto de la generaci\u00f3n de claves criptogr\u00e1ficas.<\/p>\n<p>Es un recordatorio directo de la vulnerabilidad asociada con esta funci\u00f3n y la necesidad de adoptar pr\u00e1cticas m\u00e1s seguras para garantizar la integridad de las billeteras criptogr\u00e1ficas.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Por Marcelo Lozano &#8211; General Publisher IT CONNECT LATAM<\/p>\n<blockquote>\n<p style=\"text-align: center;\">NO TE PIERDAS EL \u00daLTIMO CAP\u00cdTULO DE IT CONNECT SECURE STREAM<\/p>\n<\/blockquote>\n<div class=\"ast-oembed-container \" style=\"height: 100%;\"><iframe loading=\"lazy\" title=\"Ciberseguridad en Argentina\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/KJC-FiQwCqA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<p>Lea m\u00e1s sobre Ciberseguridad en;<\/p>\n<p><a href=\"https:\/\/itconnect.lat\/portal\/capa-8-001\/\">Capa 8, 20% de los incidentes en Latam, vienen de un error humano<\/a><\/p>\n<p><a href=\"https:\/\/itconnect.lat\/portal\/ssh-vulnerable-001\/\">SSH Vulnerable: Riesgo Latente en Claves (2023)<\/a><\/p>\n<p><a href=\"https:\/\/itconnect.lat\/portal\/phishing-0001\/\">Phishing y deepfakes en tiempos de IA<\/a><\/p>\n<p><a href=\"https:\/\/itconnect.lat\/portal\/mirai-001\/\">Mirai: El Resurgimiento Inquietante de este 2023<\/a><\/p>\n<p><a href=\"https:\/\/itconnect.lat\/portal\/alphv-blackcat-001\/\">ALPHV\/BlackCat: realiz\u00f3 1 denuncia en la SEC<\/a><\/p>\n<p><span style=\"color: #ffffff;\"><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><\/span><\/p>\n<p><span style=\"font-size: 8pt; color: #ffffff;\">Vulnerabilidades de billeteras cripto<\/span><\/p>\n<p><span style=\"color: #ffffff;\"><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><span style=\"font-size: 8pt;\">Vulnerabilidades de billeteras cripto,\u00a0<\/span><\/span><\/p>\n<p><span style=\"font-size: 8pt; color: #ffffff;\">Vulnerabilidades de billeteras cripto<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Descubriendo vulnerabilidades de billeteras cripto, Unciphered ha dedicado 22 meses a analizar BitcoinJS y derivados, revelando riesgos en proyectos asociados. En el trasfondo de a\u00f1os de investigaci\u00f3n meticulosa, emerge una vulnerabilidad de magnitud cr\u00edtica que ha dado lugar a la creaci\u00f3n masiva de billeteras de criptomonedas susceptibles a riesgos. La vulnerabilidad tiene su origen en [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":4550,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[58],"tags":[3735],"class_list":["post-4546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ciberseguridad","tag-vulnerabilidades-de-billeteras-cripto"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/posts\/4546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/comments?post=4546"}],"version-history":[{"count":8,"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/posts\/4546\/revisions"}],"predecessor-version":[{"id":7795,"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/posts\/4546\/revisions\/7795"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/media\/4550"}],"wp:attachment":[{"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/media?parent=4546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/categories?post=4546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itconnect.lat\/portal\/wp-json\/wp\/v2\/tags?post=4546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}