domingo, 2 de enero de 2022

Codigo de Programa en java (netbeans) calculadora por medio de que el usuarion meta un operando.

Escriba un programa que permita realizar las operaciones matemáticas básicas: suma, resta, multiplicación, división.



package calculadora;

import java.util.Scanner;
/**
 *
 * @author juan carlos guillen gomez
 */
public class calculadora {
 public static void main(String[] args) {

float suma,resta,multiplicacion,divicion;
Scanner o = new Scanner(System.in);

System.out.println("introduce una valor");
float num1 = o.nextFloat();

System.out.println("introduce el operador a utilizar = +,*,-,/");
String operador = o.next();

System.out.println("introduce el segundo valor");
float num2 = o.nextFloat();

if(operador.equals("+")){
suma = num1+num2;
System.out.println("la suma es = "+suma);

}else if(operador.equals("-")){
resta = num1-num2;
System.out.println("la resta es = "+resta);

}else if(operador.equals("*")){
multiplicacion = num1*num2;
System.out.println("la multiplicacion = "+multiplicacion);

}else if(operador.equals("/")){
divicion = num1/num2;
System.out.println("la divicion es = "+divicion);

}
}
}

jueves, 7 de octubre de 2021

6.7. Cifrado


 6.7. Cifrado


El cifrado es un método que permite aumentar la seguridad de un mensaje o de un archivo mediante la codificación del contenido, de manera que sólo pueda leerlo la persona que cuente con la clave de cifrado adecuada para descodificarlo. Por ejemplo, si realiza una compra a través de Internet, la información de la transacción (como su dirección, número de teléfono y número de tarjeta de crédito) suele cifrarse a fin de mantenerla a salvo. Use el cifrado cuando desee un alto nivel de protección de la información.

Métodos y Técnicas de Cifrado:

Cifrado de sustitución

El cifrado de sustitución consiste en reemplazar una o más entidades (generalmente letras) de un mensaje por una o más entidades diferentes.

 

Existen varios tipos de criptosistemas de sustitución:

• La sustitución monoalfabética consiste en reemplazar cada una de las letras del mensaje por otra letra del alfabeto.

• La sustitución polialfabética consiste en utilizar una serie de cifrados monoalfabéticos que son re-utilizados periódicamente.

• La sustitución homófona hace posible que cada una de las letras del mensaje del texto plano se corresponda con un posible grupo de caracteres distintos.

• La sustitución poligráfica consiste en reemplazar un grupo de caracteres en un mensaje por otro grupo de caracteres.

Cifrado César

 

Este código de cifrado es uno de los más antiguos ya que su uso se remonta a Julio César. El principio de cifrado se basa en la adición de un valor constante a todos los caracteres de un mensaje o, más precisamente, a su código ASCII.

Cifrado ROT 13

 

El caso específico del cifrado César donde la clave de cifrado es N (la 13º letra del alfabeto) se denomina ROT 13? (se eligió el número 13, la mitad de 26, para que sea posible cifrar y descifrar fácilmente mensajes textuales).

 

Cifrado de Transposición

 

El método de cifrado por transposición consiste en reordenar datos para cifrarlos a fin de hacerlos ininteligibles. Esto puede significar, por ejemplo, reordenar los datos geométricamente para hacerlos visualmente inutilizables.

 

El Cifrado Simétrico.

 

El cifrado simétrico (también conocido como cifrado de clave privada o cifrado de clave secreta) consiste en utilizar la misma clave para el cifrado y el descifrado.

El cifrado consiste en aplicar una operación (un algoritmo) a los datos que se desea cifrar utilizando la clave privada para hacerlos ininteligibles. El algoritmo más simple (como un OR exclusivo) puede lograr que un sistema prácticamente a prueba de falsificaciones (asumiendo que la seguridad absoluta no existe).

 

El Cifrado Asimétrico.

 

El cifrado asimétrico (también conocido como cifrado con clave pública). En un criptosistema asimétrico (o criptosistema de clave pública), las claves se dan en pares:

• Una clave pública para el cifrado.

• Una clave secreta para el descifrado.

 

En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria que sólo ellos conocen (ésta es la clave privada). A partir de esta clave, automáticamente se deduce un algoritmo (la clave pública). Los usuarios intercambian esta clave pública mediante un canal no seguro.

Autenticación

 

En términos de seguridad de redes de datos, se puede considerar uno de los tres pasos fundamentales (AAA). Cada uno de ellos es, de forma ordenada:

 

Autenticación En la seguridad de ordenador, la autenticación es el proceso de intento de verificar la identidad digital del remitente de una comunicación como una petición para conectarse. El remitente siendo autenticado puede ser una persona que usa un ordenador, un ordenador por si mismo o un programa del ordenador. En un web de confianza, "autenticacion" es un modo de asegurar que los usuarios son quien ellos dicen que ellos son - que el usuario que intenta realizar funciones en un sistema es de hecho el usuario que tiene la autorización para hacer así.

 Mecanismo general de autenticación

 

La mayor parte de los sistemas informáticos y redes mantienen de uno u otro modo una relación de identidades personales (usuarios) asociadas normalmente con un perfil de seguridad, roles y permisos. La autenticación de usuarios permite a estos sistemas asumir con una seguridad razonable que quien se esta conectando es quien dice ser para que luego las acciones que se ejecuten en el sistema puedan ser referidas luego a esa identidad y aplicar los mecanismos de autorización y/o auditoria oportunos.

 

El primer elemento necesario (y suficiente estrictamente hablando) por tanto para la autenticación es la existencia de identidades biunívocamente identificadas con un identificador único (valga la redundancia). Los identificadores de usuarios pueden tener muchas formas siendo la mas común una sucesión de caracteres conocida comúnmente como login .

El proceso general de autenticación consta de los siguientes pasos:

 

El usuario solicita acceso a un sistema.

El sistema solicita al usuario que se autentique.

El usuario aporta las credenciales que le identifican y permiten verificar la autenticidad de la identificación.

El sistema valida según sus reglas si las credenciales aportadas son suficientes para dar acceso al usuario o no.

 


6.6. Validación y amenazas al sistema

 

 6.6. Validación y amenazas al sistema

 

La validación.

Identificar cada usuario que esta trabajando en el sistema (usando los recursos).

Uso de contraseñas.

Vulnerabilidad de contraseñas.

           * Que sean complejas y difíciles de adivinar.

           *Cambiarlas de vez en cuando.

           * Peligro de perdida del secreto.

La contraseña debe guardare cifrada.

Protección por Contraseña

Las clases de elementos de autentificación para establecer la identidad de una persona son:

Algo sobre la persona:

Ej.: huellas digitales, registro de la voz, fotografía, firma, etc.

Algo poseído por la persona:

Ej.: insignias especiales, tarjetas de identificación, llaves, etc.

Algo conocido por la persona:

Ej.: contraseñas, combinaciones de cerraduras, etc.

 

El esquema mas común de autentificación es la protección por contraseña:

El usuario elige una palabra clave , la memoriza, la teclea para ser admitido en el sistema computarizado:

La clave no debe desplegarse en pantalla ni aparecer impresa.

La protección por contraseñas tiene ciertas desventajas si no se utilizan criterios adecuados para:

Elegir las contraseñas.

Comunicarlas fehacientemente en caso de que sea necesario.

Destruir las contraseñas luego de que han sido comunicadas.

Modificarlas luego de algún tiempo.

Los usuarios tienden a elegir contraseñas fáciles de recordar:

Nombre de un amigo, pariente, perro, gato, etc.

Numero de documento, domicilio, patente del auto, etc.

Estos datos podrían ser conocidos por quien intente una violación a la seguridad mediante intentos repetidos, por lo tanto debe limitarse la cantidad de intentos fallidos de acierto para el ingreso de la contraseña.

La contraseña no debe ser muy corta para no facilitar la probabilidad de acierto.

Tampoco debe ser muy larga para que no se dificulte su memorización, ya que los usuarios la anotarían por miedo a no recordarla y ello incrementaría los riesgos de que trascienda.

 

Contraseñas de un solo uso

 Al final de cada sesión, se le pide al usuario que cambie la contraseña.

 Si alguien “roba una contraseña”, el verdadero usuario se dará cuenta cuando vaya a identificarse de nuevo, pues el impostor habrá cambiado la contraseña, con lo que el fallo de seguridad queda detectado.

Verificación de Amenazas

Es una técnica según la cual los usuarios no pueden tener acceso directo a un recurso :

Solo lo tienen las rutinas del S. O. llamadas programas de vigilancia.

 

El usuario solicita el acceso al S. O.

El S. O. niega o permite el acceso.

El acceso lo hace un programa de vigilancia que luego pasa los resultados al programa del usuario.

Permite:

           *Detectar los intentos de penetración en el momento en que se producen.

           *Advertir en consecuencia.

Dentro de las amenazas que existen podemos mencionar las siguientes:

*Interrupción: Un elemento del sistema es destruido o se hace inservible. Es una amenaza a la disponibilidad. Ejemplos son la destrucción de algún elemento hardware y la des activación del sistema de gestión de ficheros.

*Intercepción: Una parte no autorizada obtiene acceso a un elemento relacionado con la seguridad. Es una amenaza a la privacidad. Ejemplos son la copia ilícita de programas y la visualización de ficheros que han de permanecer ocultos.

*Modificación: Una parte no autorizada no sólo obtiene acceso sino que puede modificar un elemento relacionado con la seguridad. Es una amenaza a la integridad. Ejemplos son la alteración del contenido de un fichero y modificar un programa para que funcione de forma diferente.

*Fabricación: Una parte no autorizada inserta nuevos elementos en el sistema. Es una amenaza a la integridad. Ejemplos son adición de registros a un fichero y la inclusión de mensajes espúreos en una red.

*Intrusos: dentro de ellos tenemos lo que son los piratas o hackers: que son los individuos que acceden al sistema sin autorización y hacen que los sistemas presenten agujeros que es el lugar por donde consiguen colarse.

AMENAZAS DE TIPO SOFTWARE

*Bomba Lógica: Es un código incrustado en un programa que comprueba si ciertas condiciones se cumplen, en cuyo caso ejecuta alguna acción no autorizada. Un ejemplo de uso de bomba lógica es el caso de un programador que vende un programa a una empresa. Si transcurrido un cierto tiempo la empresa no ha pagado, el programador revela la existencia de la bomba lógica con el fin de obtener su dinero.

*Puerta Falsa (Trapdoor): Es un punto de entrada secreto en un programa, de forma que alguien que conozca la existencia de dicha puerta puede obtener permisos de acceso sin tener que pasar por los mecanismos normales de autentificación.

 

*Caballo de Troya (Trojan Horse): Es una rutina oculta en un programa de utilidad. Cuando el programa se ejecuta, se ejecuta la rutina y ésta realiza acciones no autorizadas. Estos programas permiten realizar de forma indirecta acciones que no puede realizar de forma directa. Por ejemplo, puede ser un editor que cuando es ejecutado modifica los permisos de los ficheros que edita de forma que éstos puedan ser accedidos por cualquier usuario.

*Virus: Es código introducido en un programa que puede infectar otros programas mediante la copia de sí mismo en dichos programas.

*Bacteria: Programa que consume recursos del sistema replicándose asimismo, pero no daña explícita mente ningún fichero. Se suele reproducir exponencial mente, por lo que puede acaparar recursos como CPU, memoria y disco.

*Gusano (Worm): Es un programa que usa las redes de computadores para pasar de unos sistemas a otros. Una vez que llega a un sistema, el gusano se puede comportar como un virus o una bacteria, puede implantar programas caballo de troya, o puede realizar acciones no autorizadas.


ATAQUES GENÉRICOS A SISTEMAS OPERATIVOS

A sincronismo:

Se tienen procesos múltiples que progresan a sincrónicamente.

Un proceso podría modificar los parámetros ya validados por otro proceso pero aún no utilizados.

Rastreo:

Un usuario revisa el sistema intentando localizar información privilegiada.

Entre líneas:

Se utiliza una línea de comunicaciones mantenida por un usuario habilitado que está inactivo.

Código clandestino:

Se modifica el S. O. bajo una presunta depuración pero se incorpora código que permite ingresos no autorizados.

Procesos sincronizados interactivos:

Se utilizan las primitivas de sincronización del sistema para compartir y pasarse información entre sí.

Disfraz:

El intruso asume la identidad de un usuario legítimo luego de haber obtenido la identificación apropiada por medios clandestinos.

Ataque “nak”:

Si el S. O. permite a un usuario:

           *Interrumpir un proceso en ejecución mediante una “tecla” de “reconocimiento negativo”.

           *Realizar otra operación.

           *Reanudar el proceso interrumpido.

Un intruso podría “encontrar” al sistema en un estado no protegido y hacerse con el control.

Engaño al operador:

Con un engaño se hace realizar al operador una acción que comprometa la seguridad del sistema.

Parámetros inesperados:

El intruso suministra valores inesperados a una llamada al núcleo.

Intenta aprovechar una debilidad de los mecanismos de verificación de la legalidad del S. O.






6.5. Protección basada en el lenguaje

 6.5. Protección basada en el lenguaje

La especificación de protección en un lenguaje de programación permite la descripción de alto nivel de políticas para la asignación y uso de recursos.

 las políticas para el uso de recursos también podrían variar, dependiendo de la aplicación, y podrían cambiar con el tiempo. Por estas razones, la protección ya no puede considerarse como un asunto que sólo concierne al diseñador de un sistema operativo; también debe estar disponible como herramienta que el diseñador de aplicaciones pueda usar para proteger los recursos de un subsistema de aplicación contra intervenciones o errores.

Aquí es donde los lenguajes de programación entran en escena. Especificar el control de acceso deseado a un recurso compartido en un sistema es hacer una declaración acerca del recurso. Este tipo de declaración se puede integrar en un lenguaje mediante una extensión de su mecanismo de tipificación. Si se declara la protección junto con la tipificación de los datos, el diseñado de cada subsistema puede especificar sus necesidades de protección así debería darse directamente durante la redacción del programa, y en el lenguaje en el que el programa mismo se expresa.

 

Este enfoque tiene varias ventajas importantes:

Una notación declarativa es natural porque los privilegios de acceso están íntimamente relacionados con el concepto lingüístico de tipo de datos.

Las necesidades de protección se declaran sencillamente y no llamando procedimientos del SO.

Las necesidades de protección pueden expresarse independientemente de los recursos que ofrece el SO.

El diseñador no debe proporcionar mecanismos para hacer cumplir la protección.

 

Los privilegios de acceso están íntimamente relacionados con el tipo de datos que se declara. Diferencias entre las distintas formas de protección:

 

Seguridad:

La obligación de cumplimiento por núcleo ofrece un grado de seguridad que el código de seguridad ofrecido por el compilador.

 

Flexibilidad:

La flexibilidad de la implementación por núcleo es limitada. Si un lenguaje no ofrece suficiente flexibilidad, se puede extender o sustituir, perturbando menos cambios en el sistema que si tuviera que modificarse el núcleo.

 

Eficiencia:

Se logra mayor eficiencia cuando el hardware apoya la protección. La especificación de protección en un lenguaje de programación permite describir en alto nivel las políticas de asignación y uso de recursos. El programador de aplicaciones necesita un mecanismo de control de acceso seguro y dinámico para distribuir capacidades a los recursos del sistema entre los procesos de usuario. Las construcciones que permiten al programador declarar las restricciones tienen tres operaciones básicas:

 

Distribuir capacidades de manera segura y eficiente entre procesos clientes, Especificar el tipo de operaciones que un proceso podría invocar en un recurso asignado. Especificar el orden en que un proceso dado puede invocar las operaciones de un recurso.      

 




 

6.4. Implantación de matrices de acceso

 

6.4. Implantación de matrices de acceso

Los derechos de acceso definen que acceso tienen varios sujetos sobre varios objetos. Los sujetos acceden a los objetos. Los objetos son entidades que contienen información.

Los objetos pueden ser:

Concretos:

Ej.: discos, cintas, procesadores, almacenamiento, etc.

Abstractos:

Ej.: estructuras de datos, de procesos, etc.

Los objetos están protegidos contra los sujetos. Las autorizaciones a un sistema se conceden a los sujetos.

Los sujetos pueden ser varios tipos de entidades:

Ej.: usuarios, procesos, programas, otras entidades, etc.

Los derechos de acceso mas comunes son:

Acceso de lectura.

Acceso de escritura.

Acceso de ejecucion.

Una forma de implementacion es mediante una matriz de control de acceso con:

Filas para los sujetos.

Columnas para los objetos.

Celdas de la matriz para los derechos de acceso que un usuario tiene a un objeto.

Una matriz de control de acceso debe ser muy celosamente protegida por el S. O.

Dominios de protección

Un sistema de cómputos contiene muchos objetos que necesitan protección. Estos objetos pueden ser el hardware, la CPU, los segmentos de memoria, terminales, unidades de disco o impresoras; o bien ser del software, como los proceso, archivos, bases de datos o semáforos.

Cada objeto tiene un único nombre mediante el cual se la hace referencia y un conjunto de operaciones que se pueden realizar en el. READ y WRITE son operaciones adecuadas para un archivo; UP y DOWN tiene sentido en un semáforo.

Es evidente que se necesita una vía para prohibir el acceso de los procesos a los objetos a los que no tiene permitido dicho acceso. Además, este mecanismo debe posibilitar la restricción de los procesos a un subconjunto de operaciones legales en caso necesario. Por ejemplo, puede permitirse que el proceso A lea el archivo F, pero no escriba en el.

Para tener una forma de analizar los distintos mecanismos de protección, es conveniente presentar el concepto de dominio. Un dominio es un conjunto de parejas (objeto, derechos). Cada pareja determina un objeto y cierto subconjunto de las operaciones que se pueden llevar a cabo en el. Un derecho es, en este contexto, el permiso para realizar alguna de las operaciones.

Una pregunta importante es la forma en que el sistema lleva un registro de los objetos que pertenecen a un dominio dado. Al menos una teoría, uno puede imaginar una enorme matriz, en la que los renglones son los dominio y las columnas son los objetos. Cada cuadro contiene los derechos correspondientes al objeto en ese dominio. Con esta matriz y el numero de dominio activo, el sistema puede determinar si se permite el acceso de cierta forma a un objeto dado desde un domino especifico.

Un dominio es un conjunto de parejas (objeto, derechos):

Cada pareja determina:

Un objeto.

Un subconjunto de las operaciones que se pueden llevar a cabo en el.

Un derecho es el permiso para realizar alguna de las operaciones. Es posible que un objeto se encuentre en varios dominios con “distintos” derechos en cada dominio.

Un proceso se ejecuta en alguno de los dominios de protección:

Existe una colección de objetos a los que puede tener acceso.

Cada objeto tiene cierto conjunto de derechos.

Los procesos pueden alternar entre los dominios durante la ejecución. Una llamada al S. O. provoca una alternancia de dominio. En algunos S. O. los dominios se llaman anillos .

Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz :

 

 

Los renglones son los dominios.

Las columnas son los objetos.

Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer, escribir, ejecutar.


Matriz de acceso

El modelo de protección del sistema se puede ver en forma abstracta como una matriz, la matriz de acceso.

Una matriz de acceso es una representación abstracta del concepto de dominio de protección.

Este modelo fue propuesto por Lampson [como una descripción generalizada de mecanismos de protección en sistemas operativos. Es el modelo mas utilizado, del que existen numerosas variaciones, especialmente en su implementación.

Los elementos basicos del modelo son los siguientes:

•  Sujeto: Una entidad capaz de acceder a los objetos. En general, el concepto de sujeto es equiparable con el de proceso. Cualquier usuario o aplicación consigue acceder en realidad a un objeto por medio de un proceso que representa al usuario o a la aplicación.

•  Objeto: Cualquier cosa cuyo acceso debe controlarse. Como ejemplo se incluyen los archivos, partes de archivos, programas y segmentos de memoria.

•  Derecho de acceso: la manera en que un sujeto accede a un objeto. Como ejemplo estan Leer, Escribir y Ejecutar.

El modelo considera un conjunto de recursos, denominados objetos, cuyo acceso debe ser controlado y un conjunto de sujetos que acceden a dichos objetos. Existe tambien un conjunto de permisos de acceso que especifica los diferentes permisos que los sujetos pueden tener sobre los objetos (normalmente lectura, escritura, etc., aunque pueden ser diferentes, en general, dependiendo de las operaciones que puedan realizarse con el objeto).

Se trata de especificar para cada pareja (sujeto, objeto), los permisos de acceso que el sujeto tiene sobre el objeto. Esto se representa mediante una matriz de acceso M que enfrenta todos los sujetos con todos los objetos. En cada celda M[i, j] se indican los permisos de acceso concretos que tiene el sujeto i sobre el objeto j.





 







 

 

 

 

 

 

 

6.3. Funciones del sistema de protección

 

 6.3. Funciones del sistema de protección

Dado que los sistemas de cómputo se han venido haciendo cada vez más sofisticados en sus aplicaciones, la necesidad de proteger su integridad, también ha crecido.

 Los aspectos principales de protección en un Sistema Operativo son:


* Protección de los procesos del sistema contra los procesos de usuario.

* Protección de los procesos de usuario contra los de otros procesos de usuario.

* Protección de Memoria.

* Protección de los dispositivos.

 


6.2. Clasificación aplicada a la seguridad

 6.2. Clasificación aplicada a la seguridad

 

La seguridad interna esta relacionada a los controles incorporados al hardware y al Sistema

Operativo para asegurar los recursos del sistema.

Seguridad Externa

La seguridad externa consiste en:

          Seguridad física.

          Seguridad operacional.

La seguridad física incluye:

 

          Protección contra desastres(como inundaciones, incendios, etc.).

          Protección contra intrusos.

En la seguridad física son importantes los mecanismos de detección , algunos ejemplos son:

 

          Detectores de humo.

          Sensores de calor.

          Detectores de movimiento.

La protección contra desastres puede ser costosa y frecuentemente no se analiza en detalle; depende en gran medida de las consecuencias de la perdida.

 

Seguridad Operacional

Consiste en las diferentes políticas y procedimientos implementados por la administración de la instalación computacional. La autorización determina que acceso se permite y a quien.

 

Codigo de Programa en java (netbeans) calculadora por medio de que el usuarion meta un operando.

Escriba un programa que permita realizar las operaciones matemáticas básicas: suma, resta, multiplicación, división. package calculadora; im...