May 27, 2016

OAuth 1.0a for ETrade API using Haskell

Lately, I have been interested in creating a market quotes receiver which later on, using a DB and ML algorithms, will analyze the market movements and provide suggestions for better investments. But initially, I had to connect to an API provided, for which I found ETrade, which is an Online Broker stablished in the USA which has a REST API to request quotes, account data or even place orders to the Stock Exchange.

I have been long time fan of Haskell, but I had never engaged with a long term project to learn more about the language, the platform and all its possibilities, although I have a book pending to continue writing about Haskell FRP for Game development, this project seems like a good time/learn investment for long term goals: apply category theory, learn to trade stocks, explore Machine Learning algorithms and many more.

For all that, I started doing authentication to the platform, considering that I had to email ETrade customer service to request a Auth public/private key, then later with those in file, I created this script which will perform all necessary steps to retrieve a access token, which would allow me to query everything within the Sandbox: so here is the code:

March 22, 2016

Confidencialidad

Bajo este rubro, la idea es mantener los mensajes e información secretos, confidenciales. Por ejemplo, utilizando los personajes de la comunicación, hacer que Ana o Juan se comuniquen sin que Eva o María descifren la información que comparten.

Para conseguir confidencialidad, la mayoría de los sistemas utilizan algún tipo de cifrado de tal manera que, si el texto es entremezclado, se aplica una función inversa que recupere el mensaje como originalmente fue creado.

March 17, 2016

Autorización

El video anterior se hablaba de los métodos para descubrir con quién se estaba comunicando, ahora bien, el objetivo primordial de la autorización es determinar que las actividades que cierta entidad reconocida son legítimas, en otras palabras, que las acciones a ejecutar en un sistema son validas para los permisos que se tengan como usuario del sistema.

Un ejemplo sencillo como el siguiente: se tiene a un usuario autentificado en el sistema (Ana), una vez se tiene una sesión válida, ella quiere ejecutar un archivo en una sección solo “autorizada” para administradores, entonces el Sistema Operativo lleva a cabo una verificación por medio de la “Lista de Control de Acceso”, en la cual se comparan los permisos de Ana para comprobar si forma parte del grupo “administradores” y así permitirle ejecutar dicho programa.

March 10, 2016

Autenticación

En futuras entradas, vamos a utilizar a los siguientes personajes para explicar como se establece comunicación entre partes:

Ana & Juan - Chicos buenos
Eva - Chismosa pasiva
María - Chismosa activa
Tomas - Ana & Juan confían en él

Autenticación

Nos permite verificar la identidad de una persona ante un sistema computacional. Para esto es necesario asegurar que la comunicación entre Ana & Juan es verificada sin que terceras partes (Eva o María) sustituyan la identidad de alguno. Básicamente podemos clasificar a las formas genéricas en tres:

- Algo que “Sabes” (por ejemplo, contraseñas).
- Algo que “Tienes” (por ejemplo, token).
- Algo que “Eres” (por ejemplo, biométricos).

March 7, 2016

Objetivos de Seguridad

La seguridad se debe tratar desde una perspectiva holística, en otras palabras, es necesario cumplir varios requisitos antes de considerar un entorno de Tecnologías de la Información “seguro”.

Muchísimos detalles pueden resultar en imprevistos inesperados que afecten la continuidad de un servicio, en su mayoría relacionados con tecnología. De forma genérica, es posible clasificar en tres: entorno físico, tecnología, políticas y procedimientos. Es típico contar con estos elementos si lo que se busca como prioridad seguridad de un sistema.