Professional Documents
Culture Documents
Esta definición implica que hay tres factores claves en la seguridad computacional o
informática en torno a los cuales se han desarrollado todo un conjunto de definiciones y
recomendaciones (FIPS 199), que deben aplicarse en la etapa de definición de
requerimientos del sistema
• Autenticidad: garantizando que la información sea genuina y que esta pueda ser
verificada y de confianza; así como la confianza en la validez de la transmisión de
un mensaje o la fuente del mismo. Esto significa verificar que los usuarios son
quienes dicen ser y que cada entrada que llega al sistema proviene de una fuente
confiable.
• Rendición de cuentas: la meta de seguridad genera el requisito de que las acciones
de una entidad se rastreen exclusivamente a esa entidad. Esto apoya el no rechazo, la
disuasión, el aislamiento de fallas, la detección y prevención de intrusiones, y la
recuperación después de la acción y la acción legal. Debido a que los sistemas
verdaderamente seguros todavía no son un objetivo alcanzable, debemos ser capaces
de rastrear una violación de seguridad a una parte responsable. Los sistemas deben
mantener registros de sus actividades para permitir análisis forenses posteriores para
rastrear infracciones de seguridad o para ayudar en disputas de transacción.
Según FIPS PUP 199, los costos de los ataques pueden ser de tres niveles:
1.2.1 Confiabilidad
El término “confiabilidad” fue propuesto por Laprie (1995) para cubrir los atributos
relacionados con sistemas de disponibilidad, fiabilidad, protección y seguridad. Dichas
propiedades están vinculadas, así que tiene sentido disponer de un solo término para tratarlas
a todas.
3. Protección: cuán probable es que el sistema causará daños a las personas o su ambiente,
ello implica el preveer que el sistema falle de manera inmediata. Dentro de sus
dimensiones están:
• Disponibilidad: habilidad de entregar el servicio solamente a usuarios
autorizados, previstos en las especificaciones, cumple el mismo rol que la
disponibilidad como atributo de confiabilidad.
• Confidencialidad: habilidad de negar el servicio a usuarios no autorizados.
8. Tolerancia para el error: propiedad parte de la usabilidad y refleja el diseño del sistema
para evitar y tolerar los errores de entrada de usuario. Cuando ocurren errores de usuario,
el sistema debe detectar dichos errores y corregirlos automáticamente o solicitar al
usuario que reintroduzca sus datos.
En el caso del software los fallos o averías tienen un origen interno, aunque su manifestación
es externa, dentro de los tipos de fallos tenemos
La presencia de estos fallos degrada la confiabilidad del sistema, por lo que deben
desarrollarse acciones para evitarlos, estas acciones pueden ser:
La tolerancia en los sistemas solo es posible por la redundancia, que implica el uso
de componentes destinados a la detección y recuperación de las fallas, aunque la
complejidad del sistema aumenta. En este caso se puede considerar:
o Redundancia estática: N versiones
o Redundancia dinámica: con un manejo dinámico de los fallos por parte del
programador, generando también N versiones
En el caso del desarrollo de software, son buenas prácticas para garantizar la confiabilidad:
1. No todo el código de programa se ejecuta siempre, por lo que una falla en el desarrollo
(ejemplo: equivocarse al inicializar una variable) tal vez nunca se ejecute debido a la
forma en que se usa el programa.
2. Los errores son transitorios (ejemplo: una variable puede tener un valor incorrecto
causado por la ejecución de un código defectuoso, pero antes de que se acceda a ésta y
se origine una caída del sistema, es factible procesar alguna otra entrada del sistema que
restablezca el estado a un valor válido).
3. El sistema puede incluir mecanismos de detección de fallas y de protección, que aseguran
que el comportamiento erróneo se descubra y corrija antes de que resulten afectados los
servicios del sistema.
Problemas con la fiabilidad no influyen como con la confiabilidad, los usuarios aprender a
eludir los problemas que estos defectos pueden generar.
1.1.3 Seguridad
Es la propiedad del sistema de operar normal o anormalmente, sin peligro de causar daño
humano o causar daño al entorno del sistema. La mayoría de sistemas o dispositivos con
fallas críticas, sustentan su seguridad en el software a partir del cual implementan sistemas
de control.
o Activo: algo que tiene valor y requiere ser protegido, puede ser también software y
datos
o Exposición: posible pérdida o daño
o Vulnerabilidad: debilidad que se puede usar para causar pérdida o daño
o Ataque: aprovechamiento de una vulnerabilidad, suele ser externo y deliberado
o Amenaza: circunstancia que puede causar pérdida o daño
o Control: medida de protección para reducir la vulnerabilidad
En el proceso de diseño del software, los requerimientos de seguridad son de tipo exclusivo
(situaciones indeseables), muy rara vez implican requerimientos de servicios, estos se
convierten entonces en requerimientos de seguridad funcionales.
1.1.4 Protección
Es el atributo del sistema que refleja su capacidad de protegerse de ataques externos sean
accidentales o provocados. Este atributo es fundamental en sistemas abiertos, lo más común,
conectados a Internet, estos sistemas aumentan la funcionalidad, pero pueden ser atacados
con intenciones hostiles, esta es la razón de versiones y parches. Un ejemplo de estos ataques
son los virus, el uso no autorizado de servicios y la modificación no autorizada del sistema
o sus datos. La protección es importante para todos los sistemas críticos. Sin un nivel
razonable de protección, la disponibilidad, fiabilidad y seguridad del sistema pueden
fracasar.
Un punto crucial aquí lo juega el sistema operativo, si este se vulneró, entonces todos los
métodos para asegurar la disponibilidad, fiabilidad y seguridad pueden fallar y el sistema de
software puede entonces corromperse y comportarse de forma impredecible. El S asegura
entonces condiciones iniciales
En segunda instancia están los errores en el diseño e implementación los que pueden
provocar agujeros de protección. Ejemplo de ello, es cuando el sistema no responde a
entradas inesperadas o si los límites de un vector no se verifican, entonces los atacantes
pueden explotar estas debilidades para tener acceso al sistema. Los incidentes de protección
más importantes tales como el gusano de Internet original (Spafford, 1989) y el gusano Code
Red (Berghel, 2001) se aprovecharon de que los programas en C no incluyen verificación de
los límites de los vectores. Los gusanos sobrescribieron parte de la memoria con código que
permitió el acceso no autorizado al sistema.
El control de hardware de los sistemas críticos para la protección es más fácil de implementar
y analizar que el control del software. A pesar de ello, ahora se construyen sistemas de tal
complejidad que no pueden controlarse tan sólo con el hardware. El control del software es
esencial debido a la necesidad de manejar gran cantidad de sensores y actuadores con leyes
de control complejas. Por ejemplo, una aeronave militar avanzada, aerodinámicamente
inestable, requiere ajuste continuo, controlado por software, de sus superficies de vuelo para
garantizar que no se desplome. El software crítico para la protección se divide en dos clases:
Existen tres tipos de daños que pueden ser causados por ataques externos:
Evitar la vulnerabilidad
Detección y neutralización de ataques
Limitación de exposición
Estos enfoques nos dicen que la protección está más en el uso de los sistemas que en sus
características técnicas
1.2 CRIPTOGRAFÍA
La palabra Criptografía proviene del griego "kryptos" que significa oculto, y "graphia", que
significa escritura, y su definición según el diccionario es "Arte de escribir con clave secreta
o de un modo enigmático". La Criptografía es el conjunto de técnicas (Teoría de la
Información, Algorítmica y Teoría de números o Matemática Discreta) para la protección o
el ocultamiento de la información frente a observadores no autorizados.
El criptoanálisis es el conjunto de técnicas usadas para romper los códigos que encriptan la
información, finalmente, la criptología, agrupa tanto la criptografía como el criptoanálisis.
a) Criptosistema simétricos o de clave privada: son aquellos que emplean la misma clave
k tanto para cifrar como para descifrar, entonces emisor y receptor deben conocer la
clave k, lo que genera el problema adicional de transmitir la clave de forma segura.
Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS
b) Criptosistema asimétricos o de llave pública, emplean una doble clave (kp, kP). Kp es
la clave privada y kP la clave pública. Una de ellas se usa para la transformación de
cifrado y la otra para la transformación de descifrado. A veces son intercambiables y se
debe cumplir que el conocimiento de la clave pública kP no permita calcular la clave
privada kp. En estos sistemas se pueden establecer comunicaciones seguras por canales
inseguros. Este tipo de sistemas se dividen en dos ramas:
Cifrado de clave pública: un mensaje cifrado con la clave pública de un destinatario
no puede ser descifrado por nadie (ni siquiera el que lo cifró), excepto el poseedor
de la clave privada correspondiente, se utilizan para confidencialidad.
Firmas digitales: el mensaje se firma con la clave privada del remitente y puede ser
verificado por cualquier persona que tenga acceso a la clave pública del remitente,
se utilizan para la autenticidad.
Hay dos métodos de alterar las representaciones de los mensajes para hacerlos ininteligibles
a intrusos:
Usando códigos: consiste en sustituir unidades textuales semánticas más o menos largas
o complejas, habitualmente palabras o frases, para ocultar el mensaje; por ejemplo, "cielo
azul" podría significar «atacar al amanecer». En la segunda guerra mundial se usaron
códigos en lengua navaja para identificar mensajes militares. Por ejemplo, chai-da-gahy-
nail-tsaidi (asesino de tortugas) quería decir “armas antitanque”. Esta técnica requiere
recopilar la información secreta en un diccionario o libro de códigos (codebook).
Por cifrado: es una transformación carácter por carácter o bit por bit, sin importar la
estructura lingüística del mensaje. Para descifrar se utiliza otro algoritmo que permite
obtener la cadena original. Estos sistemas están controlados por claves que son entradas
a los algoritmos usados. Si la clave de cifrado es igual que la de descifrado se dice que
es un cifrado simétrico. Si son distintas se dice que es un cifrado asimétrico. Es necesario
considerar el Principio de Kerckhoffs, llamado de seguridad por oscuridad, que define
que la seguridad de un sistema de cifrado debe estar en el secreto de las claves y no en
1.2.2 Evolución
La criptografía surge en el antiguo Egipto, romanos y griegos para las órdenes militares.
Los espartanos utilizaron (400 A.C.) la Escitala, que usa transposición (alterar el orden)
se escribia en una tela sobre una vara, el mensaje sólo podía leerse si se enrollaba la tela
sobre un bastón del mismo grosor.
Julio César se basó en la sustitución de cada letra por la situada tres puestos después en
el alfabeto latino (cifrado César).
En la Edad Media por usos papales surgen los sistemas por sustitución polialfabética,
que emplea varios abecedarios, saltando de uno a otro cada tres o cuatro palabras. El
emisor y el destinatario han de ponerse de acuerdo para fijar la posición relativa de dos
círculos concéntricos, que determinará la correspondencia de los signos.
Un siglo después, aparecen las claves, formada por una palabra o una frase, debe
transcribirse letra a letra sobre el texto original. Cada letra del texto se cambia por la
correspondiente en el alfabeto que comienza en la letra clave, Cifrado Vigenère (Blaise
de Vigenère, S. XVI). Débil por razones estadísticas.
En el siglo XX apareces teletipos con rotores móviles que giraban con cada tecla
generando un código polialfabético complejo (traductores mecánicos, Rueda de
Jefferson)
La primera patente data de 1919, y es obra del holandés Alexander Koch, que comparte
honores con el alemán Arthur Scherbius, el inventor de Enigma una máquina
criptográfica a rotor que los nazis creyeron inviolable (“hackeada” por Turing)
Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS
Figura 1.6.- Rueda de Jefferson y Enigma
o DES (IBM)
o sistemas de cifrado asimétrico o de clave pública (como RSA)
o sistemas de cifrado simétricos o de clave privada
o la firma digital como aplicación del cifrado asimétrico
Son sistemas de cifrado, definidos formalmente como una quíntupla (X, Y, K, E, D), donde:
X conjunto de todos los mensajes sin cifrar (texto plano o plaintext) que pueden ser
enviados.
Y conjunto de todos los posibles mensajes cifrados, o criptogramas.
K conjunto de claves que se pueden emplear en el criptosistema.
E conjunto de transformaciones de cifrado o familia de funciones que se aplica a cada
elemento de M para obtener un elemento de C. Existe una transformación diferente Ek
para cada valor posible de la clave k.
D conjunto de transformaciones de descifrado, análogo a E.
1. Un algoritmo de encriptación fuerte, de tal forma que, si una persona externa que conoce
e algoritmo y accede a un texto cifrado, no podrá desencriptarlo sin la clave o descubrir
la clave aun cuando posea varios textos encriptados y los textos planos originales.
2. El remitente y el receptor deberán obtener copias de la clave secreta de una manera
segura y deben mantener la llave segura.
1.3.1 Ataques
Un ataque es exitoso si genera una ruptura en el algoritmo, Bruce Schneier define el ataque:
"Romper un cifrado simplemente significa encontrar una debilidad en el cifrado que puede
ser explotada con una complejidad inferior a la de la fuerza bruta. No importa que la fuerza
bruta pudiera requerir 2128cifrados; un ataque que requiera 2110 cifrados se consideraría
una ruptura... puesto de una manera simple, una ruptura puede ser tan sólo una debilidad
certificacional: una evidencia de que el código no es tan bueno como se publicita" (Schneier,
2000).
Ataque con sólo texto cifrado disponible: sólo se tiene acceso a una colección de
textos cifrados o codificados.
Ataque con texto plano o claro conocido: el atacante tiene un conjunto de textos
cifrados de los que conoce el correspondiente texto claro o descifrado.
Ataque con texto claro escogido (ataque con texto cifrado elegido): el atacante puede
obtener los textos cifrados correspondientes a un conjunto arbitrario de textos claros
de su elección.
Ataque adaptativo de texto claro escogido: como el anterior, pero el atacante puede
elegir textos claros subsiguientes basándose en la información obtenida de los
descifrados anteriormente.
Ataque de clave relacionada: como un ataque de texto claro escogido, pero el atacante
puede obtener texto cifrado utilizando dos claves diferentes. Las claves son
desconocidas, pero la relación entre ambas es conocida; por ejemplo, dos claves que
difieren en un bit.
Cifrado Atbash
Cifrado de Polybios.
Cifrado de Alberti
Cifrado por desplazamiento
Cifrado de Vigenère
Cifrado de Vernam
Cifrado One-Time Pad