domingo, 1 de diciembre de 2013

Lectura: Phishing (28/Octubre/2013)

Phishing        

Una de las nuevas tendencias de ataque por las que se han inclinado los desarrolladores de malware, muchas veces solos y otras trabajando en conjunto con organizaciones delictivas, es el phishing, el cual se define como la acción de hacerse pasar por una organización a través del correo electrónico o de sitios web falsos, teniendo como principal objetivo obtener información privada, incluyendo credenciales de inicio de sesión y detalles de tarjetas de crédito. El phishing hace uso de la ingeniería social como una técnica que le facilita engañar fácilmente a las víctimas y en los últimos años ha provocado grandes pérdidas financieras, daños a las reputación de personas y organizaciones asi como afecciones a los clientes de las organizaciones que se ven afectadas por ataques de este tipo.
Entre las formas más comunes de ataque por phishing tenemos el envió de correos electrónicos a víctimas potenciales, en los que se alerta a la víctima sobre la cancelación de sus cuentas de banco debido a una supuesta anomalía y dentro del mismo mensaje se ofrece una práctica solución en la que solo se deberá llenar un formulario (mediante el cual se pretende robar la información confidencial de la víctima) y un link que re-direcciona a la víctima hacia el formulario mencionado, el cual comúnmente se encuentra alojado en un sitio web que pereciera ser oficial. Este tipo de correos electrónicos y sitios web falsos parecen tener mucha  seriedad y usan formatos, logotipos e imágenes que parecieran ser, por ejemplo, de la organización bancaria de confianza de la víctima para asi ganar rápidamente la confianza del usuario, es aquí donde nos encontramos con la aplicación de la ingeniería social.

Sin lugar a dudas puede ser una tarea muy difícil el diferenciar entre un correo electrónico o sitio web que parece ser de total confianza pero es phishing y uno oficial, pero esta tarea no es imposible, para ello deberemos seguir unos simples consejos que nos ayudaran a reconocer el ataque por phishing, estos son: jamás entregar datos personales por correo electrónico, si se duda de la veracidad del correo electrónico no se debe por ningún motivo hacer clic en los enlaces que este contenga, si se decidiese entrar al supuesto sitio web, se deberá escribir la dirección url en la barra del navegador si es una web segura aparecerá al inicio de la dirección https:// además de un pequeño candado cerrado, lo cual nos indica que los datos que insertemos en el sitio son cifrados hasta con 256 bits. Otras acciones que se pueden realizar fuera del entorno de nuestra pc, es llamar o ir al banco del que supuestamente proviene el correo electrónico. Si sospechamos que hemos sido víctimas del phishing debemos cambiar inmediatamente nuestras contraseñas e informar a nuestra entidad bancaria del suceso. Este tipo de acciones en conjunto con tener un antivirus actualizado que cuente con un módulo anti-phishing nos permitirá salvaguardar la confidencialidad, integridad y disponibilidad de nuestra información.

Lectura: Propiedades de la Criptografía (4/Noviembre/2013)

Propiedades de la Criptografía  
  
La búsqueda de seguridad en el intercambio de información ha sido un punto importante desde la antigüedad, y desde épocas muy antiguas se ha buscado la manera de que esta información no sea conocida por quien no debería de saberla. Es así que se han desarrollado diversas maneras de mantener a salvo esta información, en conjunto las llamamos criptografía, palabra que proviene del griego cripto que significa oculto y grafos que significa escritura, la RAE define criptología como “el arte de escribir con clave secreta o de un modo enigmático”. La criptografía en la actualidad más que un arte ha pasado a ser una técnica o más bien un conjunto de técnicas, entre las que destacan las Matemáticas Discretas, la Teoría de Números y la Teoría de la Información, que buscan la protección de la información, es decir mantener la información oculta de observadores no autorizados.
Existen diversas formas con las que la criptografía se encarga de ocultar la información, las cuales cumplen con ciertas propiedades que en conjunto forman la seguridad de la información. Dentro de estas propiedades primeramente tenemos la confidencialidad, la cual básicamente se refiere a que solo los usuarios autorizados tienen acceso a la información que les corresponde, la integridad de la información, la cual garantiza que la información no será modificada, ni intencionalmente  (por algún atacante), ni por causa de un accidente. Por otro lado tenemos los tipos de autenticación con los que se debe de cumplir, estos son: autenticación de usuario, la cual corresponde al proceso en el que se verifica que un usuario que pretende hacer uso de un sistema, realmente sea quien dice ser, autenticación de remitente, la cual permite a un usuario saber que un mensaje recibido realmente proviene de remitente y no de un atacante, además de la autenticación del destinatario, proceso que garantiza la identidad del usuario destinatario. Otro tipo de autenticación es el de actualidad o no replay, el cual nos garantiza que los mensajes enviados sean actuales y no solo un mensaje antiguo reenviado, esto se consigue, primeramente dejando una etiqueta de tiempo (timestamp) en cada mensaje enviado y después verificando esta etiqueta al ser recibido. Por ultimo tenemos el no repudio de origen que nos garantiza que un remitente no pueda negar el envió de un mensaje y el no repudio de destino que garantiza que un destinatario no pueda negar haber recibido un mensaje cuando este fue recibido.
Es bien sabido que no existe ningún sistema que no tenga ninguna vulnerabilidad, sin embargo la aplicación del conjunto de estas propiedades dentro de la criptografía, nos permitirá como desarrolladores garantizar a los usuarios de nuestros sistemas la seguridad de su información, minimizando la posibilidad de ser víctimas de un atacante o una organización criminal.  

Participación: Criptografía simétrica y asimétrica (7/Noviembre/2013)

Criptografía: simétrica y asimétrica

En la actualidad el intercambio de información ha crecido de una manera exponencial, para darnos cuenta de ello basta con identificar las unidades de medida con las que hoy cuantificamos la información que se genera en nuestro planeta (orden de los Zettabytes [ZB] = 1 billón de Gigabytes [GB]), lo cual podemos traducir en millones de transacciones bancarias, mensajes instantáneos o correos electrónicos en los cuales los usuarios comparten información confidencial, que por supuesto no desean que sea conocida por alguien más. Como sabemos la criptografía es un conjunto de técnicas que nos permiten garantizar autenticidad, integridad, confidencialidad y el no repudio de toda esta información cuando es compartida.
Para poder garantizar las propiedades antes mencionadas la criptografía se apoya principalmente en la encriptación, lo cual significa que un mensaje se transforma con una clave secreta, resultando un criptograma, el cual es una representación del mensaje que solo y únicamente puede ser regresado a su forma original (mensaje) por quienes conozcan la clave secreta, para asi poder ser interpretado. La encriptación se divide principalmente en dos métodos, estos son, la criptografía simétrica y la criptografía asimétrica.
Primeramente tenemos la criptografía simétrica o de clave secreta, la cual funciona con los elementos: mensaje en claro, clave secreta (clave privada), canal de transmisión y criptograma. El mensaje en claro será encriptado (generando un criptograma) y desencriptado (devolviendo el mensaje en claro) con la misma clave secreta, la cual debe de ser intercambiada por un canal seguro, permitiendo que ambos extremos tengan la misma clave y siempre se complete el proceso. Un algoritmo fiable de clave secreta, debe de cumplir con un par de requisitos básicos, estos son: conocido el criptograma, no se pueden conocer ni el mensaje en claro, ni la clave secreta, además conocidos el mensaje en claro y el criptograma, debe resultar más caro descifrar la clave secreta que el valor de la información que se obtendrá. Por otro lado la criptografía asimétrica o de clave pública funciona con los elementos mensaje en claro, clave privada, clave pública, criptograma y su funcionamiento se basa en el uso de las dos claves que tienen como propiedad fundamental poder desencriptar el criptograma que la otra clave ha encriptado para asi poder regresar al mensaje en claro. Este tipo de claves tienen características matemáticas especiales lo cual permite que una vez creadas una clave esta intrínsecamente ligada a la otra. La clave privada comúnmente es usada por un propietario que jamás deberá de revelarla y la clave pública es difundida para que esté disponible del mayor número de personas posibles. Además de los requerimientos básicos con los que cumple un algoritmo de clave secreto, los algoritmos de clave pública cumplen con: conocida la clave pública y el mensaje en claro, es imposible generar un criptograma correcto para clave privada y un mensaje encriptado por una clave privada solo se puede descifrar por una clave pública y viceversa.
Es importante mencionar que ninguno de los dos métodos es mejor que el otro, cada uno se aplica a diferentes soluciones, pese a esto el algoritmo RSA (clave pública) es el más utilizado en el mundo su seguridad está basada en el problema de factorizar números enteros de gran longitud. Como desarrolladores es importante aplicar cualquiera de estos métodos y sus respectivos algoritmos, con la finalidad de garantizar a nuestros usuarios la seguridad de su información impidiendo que esta sea conocida, modificada o robada por terceros.

Lectura: Grados de seguridad informática (11/Noviembre/2013)

Grados de seguridad informática

En la actualidad el manejo de la información dentro de las organizaciones representa un punto primordial en el cual se debe de poner atención, especialmente cuando se habla de seguridad. Esto significa que las grandes cantidades de información representativa o generada por la organización o sus usuarios, deben de mantenerse a salvo debido a que el conjunto de toda esta información se traduce como el conocimiento de los procesos de la organización y en muchos casos de sus estados y movimientos financieros. Sin lugar a dudas el rol más importante cuando requerimos seguridad en la organización es la aplicación de la misma y sus diferentes grados.
En un principio es preciso entender que la seguridad comúnmente es asociada con la certeza, falta de riesgo o contingencia, sin embargo en el área de la informática debemos manejar niveles ya que la seguridad absoluta en esta área no es posible. Es asi que podemos definir la seguridad informática como el área de la informática que se enfoca en la protección de la infraestructura computacional y todo lo relacionado con esta, incluyendo la información contenida como software, bases de datos, metadatos, archivos y todo lo que la organización valore (activo) y signifique un riesgo si ésta llega a manos de otras personas. Se apoya en un conjunto de estándares, protocolos, métodos, reglas, herramientas y leyes que están encaminadas a obtener altos niveles de seguridad en los sistemas informáticos. Dentro de los grados o niveles de seguridad podemos encontrar dos divisiones estas son la seguridad externa e interna.
Cuando hablamos de seguridad externa nos referimos a las instalaciones del sistema informático y al acceso que las personas pueden tener al mismo. Podemos dividir la seguridad externa en seguridad física, refiriéndonos directamente a las instalaciones, incluyendo medidas de prevención o recuperación en caso de siniestros y el control de acceso al sistema y seguridad operacional la cual se refiere a los mecanismos de seguridad, las políticas, niveles de autorización o responsabilidad, métodos de acceso, protocolos de comunicación entre otros. Por otro lado tenemos la seguridad interna la cual se refiere a la protección de propio hardware o software, llamada propiamente seguridad lógica. Dentro de esta última tenemos niveles establecidos por el Departamento de la Defensa y  el Centro de Seguridad Nacional de Cómputo de Estados Unidos (NISC y DoD respectivamente por sus siglas en ingles) en un documento llamado “Trusted Computer System Evaluation Criteria” (Criterio de Evaluación de Confianza de Sistemas de Computo) conocido como Orange Book, estos son:
Nivel D.- Este nivel contiene sólo una división y está reservada para sistemas que han sido evaluados y no cumplen con ninguna especificación de seguridad.
Nivel C1: Protección Discrecional.- Se requiere identificación de usuarios que permite el acceso a distinta información. Cada usuario puede manejar su información privada y se hace la distinción entre los usuarios y el administrador del sistema, quien tiene control total de acceso.
Nivel C2: Protección de Acceso Controlado.- Este subnivel fue diseñado para solucionar las debilidades del C1. Cuenta con características adicionales que crean un ambiente de acceso controlado. Se debe llevar una auditoria de accesos e intentos fallidos de acceso a objetos.
Nivel B1: Seguridad Etiquetada.- Este subnivel, es el primero de los tres con que cuenta el nivel B. Soporta seguridad multinivel, como la secreta y ultra secreta. Se establece que el dueño del archivo no puede modificar los permisos de un objeto que está bajo control de acceso obligatorio.
Nivel B2: Protección Estructurada.- Requiere que se etiquete cada objeto de nivel superior por ser padre de un objeto inferior. La Protección Estructurada es la primera que empieza a referirse al problema de un objeto a un nivel más elevado de seguridad en comunicación con otro objeto a un nivel inferior.
Nivel B3: Dominios de Seguridad.- Refuerza a los dominios con la instalación de hardware: por ejemplo el hardware de administración de memoria se usa para proteger el dominio de seguridad de acceso no autorizado a la modificación de objetos de diferentes dominios de seguridad.
Nivel A: Protección Verificada.- Es el nivel más elevado, incluye un proceso de diseño, control y verificación, mediante métodos formales (matemáticos) para asegurar todos los procesos que realiza un usuario sobre el sistema.
Es importante mencionar que para que se pueda tener un nivel más elevado, se debe de contar con los niveles que le preceden. La aplicación de estos estándares dentro de las organizaciones que cuenten con sistemas informáticos nos ayudara a cumplir con la normativa internacional, lo cual se traduce directamente en brindar los más altos niveles de seguridad posibles en la actualidad a nuestras organizaciones, garantizando que se cumplen los diversos aspectos de la seguridad informática.

Participación: Criptografía con y sin certificado (14/Noviembre/2013)

Criptografía: con y sin certificado

En los años el aumento del uso de las tecnologías de la información ha generado nuevas formas de intrusión por parte de hacker u organizaciones criminales los cuales buscan obtener la mayor información posible que les permita en el corto plazo tener grandes ganancias monetarias, e por esto que se han desarrollado nuevas medidas de protección. Dentro de la criptografía tenemos la búsqueda de entidades serias y formales que autorizan las certificaciones de las identidades de los usuarios o las claves privadas basadas en identidad, de esta manera el intercambio de información es más confiable, pero analicemos más a fondo estas técnicas.
En el año 2003 se introdujo la criptografía basada en certificados o CBC en la cual el usuario es el que genera su clave privada y pública, siendo esta última enviada a manera de petición a una entidad llamada Autoridad de Certificación (CA por sus siglas en ingles) para que esta genere los certificados de identidad del usuario y de su clave pública, mediante el cifrado basado en identidad, el cual tiene funcionalidad de un cifrado PKI (Infraestructura de Clave Pública), el cual es un término robusto que envuelve el uso de hardware, software, políticas y estándares para administrar los certificados que permitirán autenticar usuarios de una manera más segura que los clásicos usuarios-contraseña, encriptar información sensible y firmar digitalmente documentos de una mantera eficiente. Por otro lado, en el mismo 2003 se crea la criptografía sin certificados CLC (por su acrónimo en inglés), en la cual el usuario realiza todas sus operaciones a partir de su clave privada generada con un valor aleatorio secreto y una clave parcial generada por una entidad parcialmente confiable llamada KGC (Centro de Generación de Claves), la cual genera la clave a partir de la cadena de identidad y la clave privada maestra del usuario usando criptografía basada en identidad, lo cual le asegura al usuario que el KGC no tenga la clave privada completa y por lo tanto no pueda cifrar ni mucho menos firmar por el usuario. Finalmente la clave pública del usuario se calcula por él mismos a partir de parámetros públicos del KGC y el valor aleatorio secreto que seleccionó, lo cual le evita el uso de un certificado adicional para publicar su clave pública.

Sin lugar a dudas el uso de la criptografía con o sin certificados, nos permite garantizar en cierta manera la autenticidad e integridad de los datos, asi como el no repudio en el origen, ya que el emisor no podrá argumenta que él no fue quien envió un mensaje. Por otro lado en el caso de la criptografía con certificados, el destinatario al recibir el mensaje y mediante la clave pública podrá conocer más detalles de la identidad del emisor del mensaje. Todos estos aspectos en conjunto nos brindan técnicas que como desarrolladores de software debemos de tomar en cuenta durante un proyecto. 

Lectura: Teoría de la información (18/Noviembre/2013)

Teoría de la Información

La informática ha tenido una gran evaluación en pocos años, una prueba de ello es la formulación de diversas teorías que sustentan esta rama de la ingeniería. Una de estas teorías es la de la información, la cual tiene sus inicios con el desarrollo del código Morse, desarrollado por Samuel Morse, basado en tres posibilidades de combinación, el punto (resultante de una descarga eléctrica), el trazo, que era resultado de una corriente eléctrica aplicada continuamente por un intervalo de tiempo y la ausencia de corriente, que daba como resultado espacios en blanco entre dos señales gráficas. Mediante el análisis de estas combinaciones, Morse conceptualiza una de las bases de la teoría: la relación entre la recurrencia y el tamaño de los caracteres, esto es Morse verificó que la letra de mayor frecuencia del alfabeto inglés es la letra e y de esa forma la señalizó apenas con un punto (.). Las letras menos frecuentes eran señalizadas por combinaciones mayores, por ejemplo: una letra menos usual como la letra v en la lengua inglesa fue caracterizada por la señal (...-). Así, cuanto más recurrente fuese un símbolo necesario para la comunicación, menor era la señal y, por lo tanto, cuanto menos recurrente, mayor. Años más tarde Claude Shannon pensó en la relación entre probabilidad de información. La cantidad de información no es dada por la cantidad de símbolos o secuencias, sino por la ocurrencia de tales símbolos o secuencias en el universo.
Una definición que nos ayuda a comprender la teoría de la información es la siguiente, es la teoría relacionada con las leyes matemáticas que rige la transmisión y el procesamiento de la información y que se ocupa de la medición de la información y de la representación de la misma (como, por ejemplo, su codificación) y de la capacidad de los sistemas de comunicación para transmitir y procesar información. Dentro de esta teoría, la información es tratada como magnitud física y para caracterizar la información de una secuencia de símbolos se utiliza la entropía, la cual se define como el valor media de la información y tiene como características ser un numero escalar, representa la incertidumbre sobre un valor que puede tomar una variable aleatoria, es considerada como una medida de dispersión. Se parte de la idea de que los canales no son ideales, aunque muchas veces se idealicen las no idealidades, para estudiar distintos métodos para enviar información o la cantidad de información útil que se puede enviar a través de un canal.

La seguridad con la que se cuenta hoy en día al trasmitir un mensaje que será cifrado por algún algoritmo, se debe en gran parte al desarrollo de teorías como esta, que mediante un análisis profundo y la combinación con ciencias duras como lo son las matemáticas han desarrollado métodos para hacer los procesos más eficientes, adecuando las comunicaciones al uso que le damos a diario a nuestro lenguaje. Como desarrolladores de software es sumamente importante conocer a fondo este tipo de teorías, las cuales aunque en un principio son un tanto complejas para entender, con detenimiento pueden aclararnos muchas dudas sobre cómo funcionan los métodos de cifrado y descifrado de mensajes. 

Participación: Criptografía con clave aislada (21/Noviembre/2013)

Criptografía: con clave aislada

En la actualidad la mayoría de las comunicaciones que realizamos en un entorno informático cuentan con cierto grado de seguridad. Se ha puesto especial atención a los casos en los que las grandes organizaciones realizan transacciones financieras muy importantes, desarrollando sistemas criptográficos coda vez más complejos en los que se ha llegado a incorporar entidades llamadas Autoridad de Certificación (CA por sus siglas en ingles), que se encargan únicamente de verificar, certificar la identidad de los usuarios y generar claves públicas y privadas. Como bien sabemos ningún es totalmente seguro y los delincuentes y organizaciones criminales han encontrado debilidades en estos sistemas criptográficos.
Una de las principales vulnerabilidades en las cuales se apoyan estos delincuentes es la facilidad con la que se puede obtener una clave privada, directamente del usuario, haciendo uso de ingeniería social o phishing por citar algunas, lo cual deja comprometido totalmente a un sistema que se podía llamar seguro. En el año 2002, Y. Dodis, J. Katz, S. Xu, M. Yung introducen la criptografía de clave aislada. Este tipo de criptografía consiste en tener almacenadas las claves privadas o secretas de una forma posiblemente insegura, en el caso en el que la seguridad este expuesta, pero las claves que se encuentran almacenadas se actualizan cada cierto periodo, (el tiempo se divide en N periodos). La actualización de las claves se realiza mediante la interacción con un secure helper (dispositivos físicamente protegido), el cual mantiene una clave secreta maestra que mantiene fija entre periodos. Por otro lado todos los cálculos que se realicen serán hechos en el sistema inseguro. La seguridad del sistema que nos otorga la criptografía con clave aislada entonces, dependerán directamente de la frecuencia con la que se cambien las claves maestras y mientras estas no sean violadas.

Realizando un análisis profundo del tema, nos podemos percatar claramente, de que es necesario implementar dentro de un mismo sistema varios tipos de técnicas que nos brinden un mayor nivel se seguridad, como muestra de esta de esto, tenemos la combinación de la criptografía de clave aislada con la criptografía de clave pública, técnica conocida como PKIE (por sus siglas en ingles Parallel Key-Insulated Public Key Encryption), la cual es una mejora de la criptografía con clave aislada introducida por Hanaoka e Imai, en la cual se incrementan el número de dispositivos físicos generadores de claves maestras, lo cual reduce considerablemente la exposición de las claves en el caso de disminución en la frecuencia con la que se actualizan las claves, ya que se tienen varios dispositivos que se irán alternando.  De esta manera se logra garantizar la información de nuestros usuarios, lo cual como desarrolladores de software, debe de ser prioridad durante la implementación de un sistema.