You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cuando nos descargamos un archivo de Internet, generalmente un programa, suele venir acompañado de unas cosas raras llamadas MD5, SHA1, SHA512, etc. Estos son nombres de algoritmos usados para elaborar algo conocido como suma de comprobación.
La suma de comprobación es un conjunto de bytes, que se suele expresar como cadena de texto. Es el resultado de una operación matemática muy complicada. En teoría, cada contenido es único, debe tener su propia suma, y no debe haber otra suma igual a la suya en el mundo.
En la práctica, ya se han detectado colisiones con MD5, por lo que se recomiendan otros algoritmos más robustos, como SHA256 o SHA512.
Lo que se pide
La tienda debe poder calcular la suma de comprobación de un complemento después de descargárselo. Si coincide con la suma que hay asociada a ese complemento en la base de datos, todo está bien. De lo contrario, significa que:
El complemento no se ha descargado bien, o
El desarrollador lo ha alterado sin actualizarlo en la tienda. Y quien dice el desarrollador, puede decir un atacante malintencionado.
En estos casos, no se debe bloquear la instalación, sino avisar al usuario y preguntarle. Existen complementos, como Braille Extender y Windows App Essentials en su versión de desarrollo, que cambian con rapidez, por lo que bloquear su instalación sería un error.
Esta incidencia está pensada para resolverse a medio-largo plazo, e implementarse por fases.
Primera fase
En el servidor de advancedAddonFiles todavía no se ha implementado la gestión de sumas de comprobación. Sin embargo, ya se pueden ir haciendo cosas en la tienda. Para comenzar, se puede calcular la suma de un complemento justo después de descargarlo, ya sea independientemente o como actualización, e imprimirla en el log de NVDA. Aunque todavía no es necesario, usaremos SHA512 en vez de SHA256, y así nos ahorramos tarea el día que SHA256 deje de ser seguro.
Algunas herramientas útiles
Para calcular la suma de comprobación desde Python, puedes usar la función hashlib.sha512. Hashlib forma parte de la biblioteca estándar de Python, y viene incorporada dentro de NVDA.
En la consola Git Bash, tienes comandos para calcular sumas de comprobación: md5sum, sha256sum, sha512sum, etc. Cuando ejecutes sha512sum complemento.nvda-addon, te saldrá por consola el resultado. Lo ideal es que trabajes con un mismo archivo desde consola y desde Python, y que la cadena que obtengas como resultado sea siempre la misma.
Recuerda que el archivo no tiene por qué estar almacenado en el disco duro necesariamente, puedes leer sus bytes en memoria y hacer el cálculo a partir de ese contenido.
The text was updated successfully, but these errors were encountered:
Introducción teórica
Cuando nos descargamos un archivo de Internet, generalmente un programa, suele venir acompañado de unas cosas raras llamadas MD5, SHA1, SHA512, etc. Estos son nombres de algoritmos usados para elaborar algo conocido como suma de comprobación.
La suma de comprobación es un conjunto de bytes, que se suele expresar como cadena de texto. Es el resultado de una operación matemática muy complicada. En teoría, cada contenido es único, debe tener su propia suma, y no debe haber otra suma igual a la suya en el mundo.
En la práctica, ya se han detectado colisiones con MD5, por lo que se recomiendan otros algoritmos más robustos, como SHA256 o SHA512.
Lo que se pide
La tienda debe poder calcular la suma de comprobación de un complemento después de descargárselo. Si coincide con la suma que hay asociada a ese complemento en la base de datos, todo está bien. De lo contrario, significa que:
En estos casos, no se debe bloquear la instalación, sino avisar al usuario y preguntarle. Existen complementos, como Braille Extender y Windows App Essentials en su versión de desarrollo, que cambian con rapidez, por lo que bloquear su instalación sería un error.
Esta incidencia está pensada para resolverse a medio-largo plazo, e implementarse por fases.
Primera fase
En el servidor de advancedAddonFiles todavía no se ha implementado la gestión de sumas de comprobación. Sin embargo, ya se pueden ir haciendo cosas en la tienda. Para comenzar, se puede calcular la suma de un complemento justo después de descargarlo, ya sea independientemente o como actualización, e imprimirla en el log de NVDA. Aunque todavía no es necesario, usaremos SHA512 en vez de SHA256, y así nos ahorramos tarea el día que SHA256 deje de ser seguro.
Algunas herramientas útiles
Para calcular la suma de comprobación desde Python, puedes usar la función
hashlib.sha512
. Hashlib forma parte de la biblioteca estándar de Python, y viene incorporada dentro de NVDA.En la consola Git Bash, tienes comandos para calcular sumas de comprobación: md5sum, sha256sum, sha512sum, etc. Cuando ejecutes
sha512sum complemento.nvda-addon
, te saldrá por consola el resultado. Lo ideal es que trabajes con un mismo archivo desde consola y desde Python, y que la cadena que obtengas como resultado sea siempre la misma.Recuerda que el archivo no tiene por qué estar almacenado en el disco duro necesariamente, puedes leer sus bytes en memoria y hacer el cálculo a partir de ese contenido.
The text was updated successfully, but these errors were encountered: