Вы находитесь на странице: 1из 9

INTROCUCCION

Dentro de este proyecto nosotros pretendemos realizar un estudio de las caractersticas propias del software aquellas que se quieren controlar y asegurar, pues al ser el software un producto inmaterial que no se fabrica, tampoco que se degrada fsicamente, sino que se desarrolla puede tener errores, incidencias pero no son similares a lo que cualquier equipo de carcter fsico. Por tanto, lo que se busca es introducirnos en una materia que muy poco se ha estudiado en el mundo laboral, la calidad del software, para esto hemos escogido el tema de la encriptacin, con esto vamos a realizar un estudio de las distintas soluciones de software de encriptacin que actualmente estn disponibles en el mercado.

Objetivos
Realizar un anlisis profundo en cuanto a los niveles de calidad aplicados a la solucin de software que hemos escogido. Comprender de mejor manera la importancia que tiene un software de calidad en el mundo empresarial.

Qu es la encriptacin?
La encriptacin es el proceso para volver ilegible informacin considerada importante. La informacin una vez encriptada slo puede leerse aplicndole una clave. Se trata de una medida de seguridad que es usada para almacenar o transferir informacin delicada que no debera ser accesible a terceros. Pueden ser contraseas, nmeros de tarjetas de crdito, conversaciones privadas, etc. Para encriptar informacin se utilizan complejas frmulas matemticas y para desencriptar, se debe usar una clave como parmetro para esas frmulas. El texto plano que est encriptado o cifrado se llama criptograma. La criptografa es la ciencia que estudia la manera de cifrar y descifrar los mensajes para que resulte imposible conocer su contenido a los que no dispongan de unas claves determinadas. En informtica la criptografa se usa en comunicaciones y en el almacenamiento de ficheros. En comunicaciones, se altera mediante una clave secreta la informacin a transmitir, que circula cifrada hasta que llega al punto de destino, donde un sistema que conoce la clave de cifrado es capaz de descifrar la informacin y volverla inteligible. La encriptacin pretende cumplir con cuatro objetivos principales que son: Confidencialidad. Es un servicio para mantener en secreto el contenido de la informacin contra aquellos que no estn autorizados para tenerlo; hay numerosos procedimientos que garantizan la confidencialidad, entre ellos la proteccin fsica y los algoritmos matemticos que hacen el mensaje no legible.

Integridad de los datos. Garantizar que los datos recibidos son idnticamente los que se enviaron sin permitir la alteracin no autorizada, para esto una entidad ha de reconocer cuando un mensaje ha sido manipulado sin autorizacin, las acciones sobre un mensaje son: insercin, borrado o sustitucin de una parte del mensaje. Autenticacin. Se refiere a la identificacin de las entidades e informacin en s. Se conoce el origen de los datos y la confiabilidad de la entidad que los transmite, por estas razones se subdivide en dos reas principales: Autenticacin del origen de datos y autenticacin de entidad, esta ltima hace posible automticamente la primera, porque si un mensaje es modificado, entonces la fuente de los datos ya no es la misma. No repudio: Es un servicio para evitar que se niegue el acceso a los recursos por parte de una entidad hacia otra que si est autorizada para accesarlos.

Primitivas de la encriptacin.
Para cumplir con los objetivos la encriptacin utiliza varias primitivas, en el siguiente grafico se indican las ms importantes.

Estas primitivas utilizan mtodos de encriptacin, funciones hash y esquemas de firmas digitales. Para evaluar estas primitivas se aplican varios criterios y se toman en cuenta varios aspectos como son: Nivel de seguridad. Es difcil cuantificar, sin embargo se toma como parmetro el nmero de operaciones requeridas para superar el objetivo pretendido. En otras palabras se limita la cantidad de trabajo necesario para encriptarlo, conocido como factor de trabajo.

Funcionalidad. Las primitivas generalmente se combinan para satisfacer los objetivos de seguridad, estas son ms efectivas y se determinan por las propiedades bsicas de su modo de funcionamiento. Mtodos de operacin. Se aplican las primitivas con diferentes inputs y de diversas formas exhibiendo mltiples caractersticas que lo hacen proveer funciones dependiendo del modo o uso de operacin. Rendimiento. Se refiere a la eficiencia de la primitiva bajo determinado modo de operacin, un ejemplo es medir el rendimiento de un algoritmo mediante el nmero de bits por segundo que se puede encriptar. Facilidad de implementacin. Es la facilidad para implementar la primitiva en la vida prctica, tiene que ver con la complejidad derivada de la construccin de hardware o desarrollo de software.

Protocolos criptogrficos.
Un protocolo de seguridad es un protocolo abstracto o concreto que realiza funciones relacionadas con la seguridad, aplicando mtodos criptogrficos, adems describe la forma en que un algoritmo debe usarse. Un protocolo lo suficientemente detallado incluye detalles acerca de las estructuras de datos y representaciones, punto en el cual puede usarse para implementar versiones interoperables mltiples de un programa. Los protocolos criptogrficos se usan ampliamente para transporte de datos seguros a nivel de aplicacin. Un protocolo criptogrfico comnmente incorpora por lo menos uno de los siguientes aspectos: 1. 2. 3. 4. 5. Establecimiento de claves Autenticacin de entidades Cifrado simtrico y autenticacin de mensajes Transporte de datos en forma segura a nivel de aplicacin Mtodos de no repudio

Por ejemplo, Transport Layer Security (TLS) es un protocolo criptogrfico usado en conexiones web (HTTP) seguras. Posee un mecanismo de autenticacin de entidades basado en el sistema X.509, una fase de configuracin de claves, en la cual se decide una clave de cifrado simtrico mediante el uso de criptografa de clave pblica, y una funcin de transporte de datos de nivel de aplicacin. Estos tres aspectos tienen interconexiones importantes. El TLS estndar no provee apoyo para no repudio.

Hay otros tipos de protocolos criptogrficos tambin e incluso el trmino mismo tiene varias interpretaciones distintas. Los protocolos criptogrficos de aplicacin usan a menudo uno o ms mtodos de acuerdo de claves, a los cuales a veces se los llama "protocolos criptogrficos". De hecho, el TLS emplea el intercambio de claves de Diffie-Hellman, el cual si bien no forma parte del TLS, puede ser visto como un protocolo criptogrfico por s mismo para otras aplicaciones. Los protocolos criptogrficos pueden ser verificados formalmente en un nivel abstracto algunas veces.

Anlisis de seguridad.
El objetivo de un sistema criptogrfico es dotar de seguridad. Por tanto para calibrar la calidad de un sistema criptogrfico es necesario evaluar la seguridad que aporta dicho sistema. Hacer pblico o no. Para poder evaluar mejor la seguridad de un sistema criptogrfico, adems de las verificaciones internas de seguridad que la organizacin haga, se puede considerar hacer pblico a todo el mundo los entresijos del sistema. Sin embargo, al hacer pblica esa informacin se facilita el que alguien pueda descubrir alguna debilidad y la aproveche o incluso la haga pblica para que otros la puedan utilizar. Cuanta ms informacin se publique ms fcil ser encontrar debilidades tanto para buenos objetivos (mejorar el producto) como para malos (realizar ataques). En resumen cuanta ms informacin se publique ms personas podrn evaluar la seguridad y se podrn corregir las debilidades que se encuentren, pero tambin aumenta la exposicin a ataques. En funcin de las decisiones que se tomen se establecer una poltica de revelacin. Se considera que la seguridad de un sistema criptogrfico debe descansar sobre el tamao de las claves utilizadas y no sobre el secreto del algoritmo. Esta consideracin se formaliza en el llamado principio de Kerckhoffs. Esto no quiere decir que cuando usemos criptografa tengamos que revelar los algoritmos, lo que quiere decir es que el algoritmo tiene que ser seguro aunque ste sea difundido. Evidentemente si un sistema criptogrfico es seguro aun revelando su algoritmo, entonces ser an ms seguro si no lo revelamos. A la poltica de revelacin de no publicar ninguna informacin para que ningn atacante encuentre debilidades se le llama de no revelacin y sigue una estrategia de seguridad por oscuridad. A la poltica de revelar toda la informacin se le llama revelacin total. Entre ambos tipos de poltica de revelacin hay estrategias intermedias llamadas de revelacin parcial. Grado de seguridad. Cuando se evala la seguridad de un sistema criptogrfico se puede calibrar la seguridad que aporta en funcin de si ste es seguro de forma incondicional o si es seguro slo si se cumplen ciertas condiciones. Seguridad incondicional. Se dice que un sistema criptogrfico tiene una seguridad incondicional (en ingls unconditional security) sobre cierta tarea si un atacante no puede resolver la tarea aunque tenga infinito poder computacional. En funcin de la tarea sobre la que se dice que el sistema criptogrfico es incondicionalmente seguro, podemos hablar por ejemplo de: 1. 2. 3. 4. Criptosistemas incondicionalmente seguros (cifrado). Autenticacin incondicionalmente segura (autenticacin). Distribucin de claves incondicionalmente segura. Firma digital incondicionalmente segura (firma digital).

Es habitual que los sistemas incondicionalmente seguros tengan inconvenientes importantes como por ejemplo en la longitud de las claves. Para certificar una seguridad incondicional los criptlogos se suelen basar en la teora de la informacin y, por tanto, en la teora de la probabilidad. Limitaciones. El que un sistema tenga seguridad incondicional no quiere decir que su seguridad sea inviolable. Veamos dos consideraciones:

1. Los sistemas son incondicionalmente seguros desde un punto de vista probabilstico: El oponente siempre tiene una probabilidad mayor que cero de romper la seguridad. Sin embargo, esta probabilidad puede ser muy muy pequea. Esto es lo que sucede con los sistemas incondicionalmente seguros. En la mayora de los estudios sobre la seguridad de un sistema se hace la suposicin de que los atacantes tienen slo un intento para atacar la seguridad del sistema. El xito o el fracaso estn determinados por el xito o fracaso de ese intento. Esta suposicin es vlida, por ejemplo, en ciertos problemas de comunicacin segura donde el enemigo no tiene oportunidad de verificar si el mensaje estimado es correcto o no. Sin embargo hay otros tipos de problemas donde esta suposicin no tiene sentido. Por ejemplo, en un sistema de autenticacin con usuario y contrasea para entrar en una cuenta restringida, el atacante puede realizar varios intentos. Adems, en algunos casos, los intentos fallidos anteriores dan informacin para hacer una estimacin mejor para los intentos siguientes. 2. Cuando decimos que un sistema criptogrfico es incondicionalmente seguro, nos estamos refiriendo a nivel terico. Sin embargo cuando es implementado en la prctica puede no mantenerse esa seguridad. Hay muchos tipos de ataques que slo se aplican cuando los sistemas estn implementados en un sistema concreto. Ejemplos: Explotacin de canales ocultos. Los canales ocultos son canales de comunicacin no intencionados y de difcil deteccin, que permiten la transferencia de informacin de forma que viola la poltica de seguridad del sistema. En un computador real los procesos al ejecutarse producen una serie de efectos y fenmenos que pueden ser medidos y explotados para revelar informacin relevante que puede ser utilizada para romper el sistema (Ej. pistas sobre la clave). Este problema es inherente y no puede ser evitado mediante tcnicas criptogrficas. Son ejemplos tpicos de este tipo de canales los canales ocultos generados por anlisis de temporizaciones, por anlisis de consumos de energa o por anlisis de consumos de radiaciones electromagnticas o por anlisis de consumo de espacio de almacenamiento. Malos diseos o implementaciones del software o el hardware pueden hacer que la solucin prctica sea insegura. Ejemplos de ataques que se aprovechan de debilidades producidas por un mal diseo o implementacin: desbordamiento de buffer, Inyeccin SQL, Cross Site Scripting, ataques basados en deficiencias del hardware. Seguridad condicional. Se dice que un sistema criptogrfico tiene una seguridad condicional (en ingls conditional security) sobre cierta tarea si un atacante puede tericamente resolver la tarea, pero no es computacionalmente factible para l (debido a sus recursos, capacidades y acceso a informacin). Hay un tipo especial de seguridad condicional llamada seguridad demostrable (en ingls provable security). La idea es mostrar que romper un sistema criptogrfico es computacionalmente equivalente a resolver un problema matemtico considerado como difcil. Esto es, que se cumplen las dos siguientes sentencias: 1. Si el problema difcil puede ser resuelto, entonces el sistema criptogrfico puede ser roto. 2. Si el sistema criptogrfico puede ser roto, entonces el problema difcil puede ser resuelto. La seguridad demostrable es difcil de lograr para sistemas criptogrficos complejos. Se ha desarrollado una metodologa (modelo de orculo aleatorio) para disear sistemas que no tienen realmente una seguridad demostrable, pero que dan unas buenas sensaciones respecto a su seguridad. La idea bsica es disear un sistema ideal que usa una o varias funciones aleatorias tambin conocidas como orculos aleatorios y probar la seguridad de este sistema matemtico. A

continuacin el sistema ideal es implementado en un sistema real reemplazando cada orculo aleatorio con una buena y adecuada funcin pseudoaleatoria conocida -tpicamente un cdigo de deteccin de manipulaciones como SHA-1 o MD5-. Si las funciones pseudo aleatorias utilizadas tienen buenas propiedades, entonces uno puede esperar que la seguridad probada del sistema ideal sea heredada por el sistema real. Observar que esto ya no es una prueba, sino una evidencia sobre la seguridad del sistema real. Se ha demostrado que esta evidencia no siempre es cierta y que es posible romper sistemas criptogrficos cuya seguridad se apoya en el modelo de orculo aleatorio.

Llave de encriptacin.
Llave de encriptacin. Es un elemento que por lo general se usa tanto para encriptar y desencriptar, sin embargo, hay sistemas que usan diversas llaves, garantizando con ello una mayor fiabilidad en ambos procesos. Puede ser ocultado de los intrusos, ya sea por medio de la memorizacin de la misma o por algn otro mtodo como los esquemas de reparticin de llaves, que se ver ms adelante, o simplemente si la tenemos en un lugar alejado del acceso de intrusos, como por ejemplo una tarjeta inteligente. La seguridad de las llaves se mide por el esfuerzo que se necesita para descubrirlas. Existen dos tipos principales: Llaves secretas, en las que no se publica ninguna informacin acerca de ellas. Slo la conocen las personas autorizadas que deben guardar bien el secreto. Llaves pblicas con su correspondiente privada, en la que la parte pblica puede ser conocida por cualquier persona o por quienes se desee, sin temor a que sea descubierta, pues solo podr obtener la informacin original aquel que posea la llave privada y como sta slo la conoce usted, las posibilidades de robo de la misma disminuyen grandemente. Llave secreta. La forma ms simple de descubrir una llave secreta de tamao n, es generando todas las combinaciones posibles hasta encontrar la buscada, por ejemplo, con una llave binaria de tamao 40 se pueden formar 240 lo que se denomina fuerza bruta. El problema est ahora en la seleccin del tamao correcto segn el tiempo que se desea utilizar. El 17 de julio de 1998, la EFF (Electronic Frontier Foundation) anunci la construccin de una mquina capaz de generar todos los posibles valores de una clave de 56 bits (o sea 256 nmeros) en menos de 5 das. Existen agencias como la estadounidense NSA (Agencia de Seguridad Nacional) que posee recursos suficientes para romper llaves de 56 bits en menos de un da, incluso se comenta la de equipos capaces de romperlas en 3.5h. En la siguiente tabla se realiza un estimado del tamao apropiado de las claves segn el tiempo de uso.

Para acelerar la generacin de las claves por fuerza bruta se pueden utilizar mquinas en paralelo que realizarn una parte del proceso. Una red de 400 computadoras que ejecutan 32 000

operaciones por segundo (un 486DXZ-66MHz realiza 54 millones de instrucciones por segundo) sera capaz de generar 240 llaves en un da. Aunque el nmero de computadoras parece muy grande, actualmente en el mundo existen ms de 200 millones de mquinas funcionando y, qu pasara si se utilizaran con este fin? Por supuesto, el mayor problema estara en convencer a las personas en participar en esto, pero no podra ocurrir a espaldas nuestras?, sencillamente, distribuyendo estas operaciones por medio de un virus o programas gratuitos, entre otras variantes que en apariencia no hacen ningn dao, pero que realmente ponen a correr procesos de generacin de claves. Llave pblica y privada. La dificultad radica en encontrar a partir de la llave pblica, la privada, por eso es necesario que este proceso no sea sencillo, al menos para ciertos casos. Uno de los mtodos ms usados actualmente se basa en la factorizacin de nmeros grandes. La solucin a este problema ha sido objeto de estudio durante muchos aos, por lo que se han desarrollado diversos algoritmos y mejoras a stos, lo cual hace prcticamente imposible predecir los tiempos de demora de la factorizacin a largo plazo. En 1977, Ron Rivest dijo que factorizar un nmero de 125 dgitos demorara 40 cuatrillones de aos y en 1994 fue factorizado un nmero de 129 dgitos. A continuacin se muestra una tabla del tamao recomendado para las llaves pblicas en los prximos aos, segn las predicciones de lo que se podr factorizar.

Llaves de sesin y reparticin de llaves. Una tcnica muy usada hoy da son las llaves de sesin. Esta consiste en el intercambio previo de una llave que se usar para la comunicacin de un mensaje cifrado y luego no se emplear ms. Es fcil pensar que lo que se hace es trasladar el problema, puesto que lo que se tendra es que buscar un mtodo para la seguridad del intercambio de la llave. Esto no es totalmente as. Y se dice "totalmente" porque en realidad s se traslada el problema, pero a un plano en el cual es ms factible de resolver. De manera que sta es la forma ms usual y posible para el intercambio de informacin mediante la combinacin de los dos mtodos de encriptacin. Supongamos que cada vez que nos comuniquemos con una persona se genera una llave aleatoria. Con ella encriptamos lo que queremos enviarle, mediante el uso de un algoritmo simtrico. Al final usamos la llave pblica de esa persona para encriptar la llave aleatoria generada. Para enviarle el mensaje, se lo hacemos llegar cifrado junto con la llave de sesin encriptada. Como nicamente esa persona debe conocer la llave privada necesaria para desencriptar la de sesin, slo ella podr leer el mensaje. Todo parece una buena idea y en la prctica funciona. Sin embargo, una serie de ataques pueden realizarse en esquemas como ste. Piense en alguien que oiga cuando le solicita su llave pblica a la persona que le quiere enviar el mensaje. Si el que est a la escucha se hace pasar por la persona e intercepta la llave pblica de ella y le enva la suya? En ese caso se podra hacer maravillas. Para eso existen entidades que se encargan de certificar que la llave recibida es exactamente la que Usted solicit. A stas se les denomina Autoridades de Certificacin y existen muchas que residen en la red. Una de las ms difundidas es VeriSign. Pero, qu sucede si alguien se hace pasar por la Usted

puede apelar a una que le certifique la dudosa? No obstante, siempre puede existir la falsedad. Ante tal caso no tenemos otra solucin que un poco ms de confianza. Claves de usuario de NT. El usuario promedio no se enfrenta con adversarios que posean suficientes recursos para aplicar un ataque por fuerza bruta en un corto perodo, pero aun as, son muchas las claves que diariamente son descubiertas y el principal problema radica en las elecciones poco afortunadas que se hacen de stas. Para mal de todos, existen personas, incluso administradores, que prefieren escribir claves cortas, esencialmente nombres de personas, ciudades, libros, personajes de obras literarias, cine, televisin, fechas importantes, nmero de carn de identidad, etc., todo lo cual facilita el descubrimiento de las claves o el llamado ataque por diccionario. Ataque por diccionario. Consiste en la creacin de diccionarios con todos los datos antes mencionados, as como la combinacin de los mismos con maysculas, minsculas, nmeros u otras variantes, luego probar con cada palabra de los diccionarios para dar con las claves. Es ms, si realizramos pruebas con diccionarios muy pobres que incluyeran los nombres de los usuarios que deseamos atacar en combinaciones de iniciales maysculas, minsculas, etc. y algunos de sus datos, seria asombrosa la cantidad de claves que obtendramos. En caso de conocer a la persona se torna mucho ms sencillo, pues se puede trabajar en la creacin de diccionarios que incluyeran vocablos asociados a sus gustos, afinidades, costumbres, etc. Se han hecho pblicos en Internet diversos programas para romper las claves de NT por medio de este ataque. A dicha forma de intromisin se le han aplicado diversas variantes, como es la creacin de diccionarios con palabras que se puedan pronunciar en diferentes idiomas y su concatenacin. La mejor solucin para estos problemas es generar secuencias aleatorias, pero el usuario promedio no est preparado para el empleo de estas herramientas a la vez que se podra caer en el problema de cmo almacenar las claves?, ya que sera muy complejo memorizar una secuencia aleatoria. Este comentario lleva implcito precisamente la intencin de alertar a los usuarios y convencerlos de la necesidad de usar claves mucho ms complejas que no puedan ser atacadas por un oponente con recursos limitados. Es conveniente usar llaves en NT donde se incluyan espacios en blanco y caracteres especiales como (i @ # $ % ~ & * ( ) _ > | \ = - [{< >) y modificarlas con frecuencia (como mximo mantener un mes la clave, no repetirla nunca o al menos no con demasiada frecuencia). Almacenar las claves. Las claves deben ser memorizadas, nunca escritas, por eso es conveniente buscar una combinacin que le recuerde algo y que a su vez no viole lo antes mencionado. Por ejemplo, en NT pudiramos utilizar: La clave Pelvmten, se deriva de elegir letras iniciales del siguiente fragmento de poema: Puedo escribir los versos ms tristes esta noche, coma, un espacio en blanco y un mueco sonriente. No resulta difcil de memorizar y no se obtienen buenos resultados en el ataque por diccionario. Aunque esta clave adolece de un problema: que todos ustedes a partir de este momento la conocen. Es cierto que muchas veces poseemos una lista muy grande de claves que debemos memorizar y se necesita guardarlas en alguna parte para no olvidarlas, entonces sera conveniente almacenarlas enmascaradas con un buen algoritmo de encriptacin. De esta manera la clave a recordar sera una, pero debe ser lo ms segura posible, pues si se descubre se conoceran las restantes claves. Ocurre tambin que muchos de los programas que chequean usuarios y trabajan con claves necesitan almacenar informacin de stas que posteriormente permita comprobarlas o recuperarlas. Almacenadas por los programas. Primero, el lugar donde est almacenada la clave debe estar protegido, su acceso debe ser limitado. NUNCA debe almacenarse en claro, siempre enmascarada. Si deseamos almacenarla para luego comprobarla, no recuperarla, se pudiera enmascarar por medio de un algoritmo de codificacin con una llamada clave maestra, por supuesto, aqu se correra el riesgo

del almacenamiento de esta clave maestra, por eso, es muy conveniente usar con estos fines las funciones hash. Funciones hash. Funcin computacionalmente eficiente que opera sobre elementos X de tamao arbitrario y devuelve elementos Y de tamao fijo (H(X)=Y). Sus principales propiedades son: Es fcil de computar Y a partir de X. Es muy complejo, computacionalmente casi imposible, de encontrar X conociendo Y. Es muy difcil encontrar dos entradas diferentes queden la misma solucin. A la llave K le aplicamos H (K)=Y y el valor Y es el que almacenamos.

Estas propiedades de las funciones son las que han difundido su uso en la criptografa y la seguridad. Se utilizan en firmas digitales, integridad de datos, proteccin antivirus, almacenamiento y transmisin de claves, etc. El mayor problema lo enfrentamos cuando necesitamos almacenar las claves para recuperarlas, pues por medio de las funciones hash no podemos hacer la recuperacin. En estos casos es necesario extremar la seguridad del lugar donde estn almacenadas y enmascararlas con una llave maestra que podemos guardar o conocer de forma ms segura. Esta variante necesita ms conocimiento de lo que se quiere en especial. No son pocos los programas qu han sido atacados por la manera tan sencilla en que se almacenan las claves, incluso para comprobaciones y no recuperaciones.

Conclusiones
La calidad de los sistemas de seguridad como es el software de encriptacin es un punto crtico para una empresa ya que proveer un buen logueo y acceso a los datos restringido puede ser la diferencia entre el xito o fracaso de la organizacin.

Bibliografa.
http://www.ecured.cu/index.php/Llave_de_encriptaci%C3%B3n http://www.tesis.ufm.edu.gt/pdf/3305.pdf http://www.forem.es/espanol/VERDE/pdf/proyectos/MEMORIA%20T%C3%89CNICA_PDA.pdf http://es.wikipedia.org/wiki/Criptograf%C3%ADa#Terminolog.C3.ADa http://secomdata.com/qu%C3%A9-es-la-encriptaci%C3%B3n/ http://www.asturestic.net/asturestic/contenidos/fichas-divulgativas/encriptacion-de-archivos/ http://es.wikipedia.org/wiki/Calidad_de_software