Control de acceso en la web

Enigma Me gustó leer Python and cryptography with pycrypto] porque es una mínima guía sobre criptografía en Python que incluye, el uso de funciones hash, el uso de algoritmos de cifrado, y el uso de algoritmos de clave pública.

Para los que no somos criptógrafos (la mayoría no lo somos) tener una chuleta que nos de las pistas mínimas para cifrar y descifrar algún documento o la información que sea necesaria es fenomenal para no tener que navegar por la documentación. Si, además, viene con código de ejemplo, mejor todavía.

En este caso, ambas cosas están disponibles, los conceptos mínimos y los míni-ejemplos con código en Python.

Correo más seguro con StartTLS

StartTLS Everywhere logo En Email encryption is here! Use STARTTLS everywhere! nos hablan de la inciativa de la Electronic Frontier Foundation sobre el uso de STARTTLS everywhere!. Se trata de un mecanismo de cifrado basado en la infraestructura (esto es, las máquinas se conectan entre sí utilizando protocolos cifrados) y que, por lo tanto, es sencillo de utilizar por parte de los usuarios. No es tampoco perfecto, puesto que no se trata de un sistema de cifrado entre receptor y emisor, pero es un compromiso suficientemente bueno, dada la dificultad de otros métodos (¿alguien ha probado a enviar correo cifrado alguan vez?).

Generación de números aleatorios y velocidad

Dados Ya hacía tiempo que no hablábamos de aleatoriedad. En esta ocasión es Efficiently Generating a Number in a Range hablan de la eficiencia (que no podemos despreciar) a la hora de generar números aleatorios.

Se hace un análisis de los factores principales de coste,

But, perhaps surprisingly, the performance of your randomized algorithm may hinge not on the generation scheme you chose, but on other factors. In this post (inspired by and building on an excellent recent paper by Daniel Lemire), we’ll explore a common source of overhead in random number generation that frequently outweighs PRNG engine performance.

Aunque sabemos que la generación es costosa, no siempre es el principal motivo:

If your randomized algorithm isn’t running as fast as you’d like and the bottleneck seems to be generating random numbers, somewhat counterintuitively the problem might not be with your random number generator!

Luego siguen algunos métodos y medidas que probablemente solo interesarán a las personas con inclinaciones más técnicas. Aunque, cuidado, modificar este tipo de algoritmos y obtener el resultado deseado (aleatoriedad razonable) es algo que debe hacerse sólo cuando tenemos muy claro lo que tenemos entre manos.

Consejos de seguridad en GitHub y otros alojamientos de código

Error Me gusta mucho leer buenas prácticas aplicadas a diversos cometidos: normalmente las propone gente que ha trabajado un tema, nos pueden servir de recordatorio y, a veces, aprendemos nuevas ideas o enfoques.

En este caso hablamos de 10 GitHub Security Best Practices y las prácticas son:

  • Nunca almacenar credenciales en un repositorio (como código o en configuraciones).
  • Eliminar datos delicados de nuestros ficheros y la historia del repositorio.
  • Reforzar el control de acceso.
  • Añadir un fichero SECURITY.md
  • Validar las aplicaciones de forma cuidadosa.
  • Añadir pruebas (tests) de seguridad.
  • Seleccionar la forma adecuada de alojar el código.
  • Rotar las claves SSH y los tokens de acceso.
  • Crear nuevos proyectos teniendo en cuenta la seguridad.
  • Auditar cualquier código que importemos a la plataforma.

Lo han publicado en forma de chuleta, en [PDF] Cheat Sheet: 10 GitHub Security Best Practices.