Que es Seguridad informática? es 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). Para ello existen una serie de estándares, protocolos, métodos, reglas, herramientas y leyes concebidas para minimizar los posibles riesgos a la infraestructura o a la información. Que es criptografía se puede entender como el conjunto de técnicas que resuelven los siguientes problemas de seguridad de la información: la autenticidad, la integridad, la confidencialidad y el no rechazo. DIFERENCIA ENTRE CRIPTOGRAFIA SIMETRICA Y ASIMETRICA La principal diferencia entre la criptografía simétrica y asimétrica, es que en la simétrica la clave de cifrar y descifrar es la misma, mientras que en la asimétrica se tiene una clave para cifrar y otra diferente para descifrar. A la criptografía simétrica pertenecen los cifradores de bloques, los cifradores de flujo y las funciones 'hash‘. QUE SON NIVELES DE SEGURIDAD Habitualmente los usuarios finales no tienen en consideración la seguridad cuando hacen uso de un sistema, ya que, frecuentemente se ignoran los aspectos relacionados con la seguridad. De igual forma, estos aspectos a veces pueden considerarse una molestia, ya que la seguridad suele ir en el platillo opuesto de la comodidad y facilidad de uso en la balanza del diseño de un sistema. Es por esto que los usuarios a veces puedan tener una imagen negativa de la seguridad, por considerarlo algo molesto y que interrumpe su capacidad de realización de un trabajo determinado. En un entorno seguro, un usuario se encuentra con tareas que le pueden resultar incómodas (como por ejemplo, recordar contraseñas, cambiarlas periódicamente, etc.) y que pueden limitar las operaciones que puede realizar así como los recursos a los que se le permite acceder. ¿Por qué probar el software a desarrollar? Debido a que los procesos serios de desarrollo de software, en la mayoría de los casos tienden a ser caóticos, es necesario involucrar procesos de aseguramiento de la calidad, para que se puedan cumplir de manera correcta los requerimientos que el cliente necesita. Por otro lado, el costo que implica reparar un defecto que es descubierto en etapas avanzadas del desarrollo de software, tal como la implementación, es muy alto, hablando en términos del presupuesto del proyecto, como también en el cronograma. Por tal razón, se implementan las pruebas de software desde los comienzos del desarrollo. La prueba de software involucra las operaciones del sistema bajo condiciones controladas y evaluando los resultados. Las condiciones controladas pueden ser normales o anormales. La prueba puede intencionalmente esforzar al programa y producir errores en las respuestas para determinar si los sucesos ocurren cuando no tendrían que ocurrir o cuando los hechos no suceden cuando deberían suceder. ¿Qué ventajas tiene la creación de pruebas para el desarrollo de software? Principalmente, las ventajas que trae la realización de pruebas, en un desarrollo de software son las siguientes: Reducen la posibilidad de agregar defectos al software. Si hay que realizar una adición de características requeridas por el cliente y se ve que ya no funcionan bien algunas de las cosas que anteriormente servían, se puede inferir la nueva funcionalidad es la que contiene defectos, por lo que no hay necesidad realizar modificaciones a los componentes realizados anteriormente. Reducen la implementadas. posibilidad de encontrar defectos en funcionalidades ya Las pruebas son buena documentación. Es preferible ver unas pequeñas líneas de "Código de prueba", que son concisas y realmente son fáciles de entender, a revisar línea por línea de código para poder entender que hace determinado componente de software. Reducen el costo del cambio. Ya que evitan que se descubran los defectos hasta el final del desarrollo de software. Permiten realizar reimplementación. Se puede llegar a necesitar reimplementar determinada funcionalidad en un sistema, debido a fallos de seguridad, rendimiento, o simplemente por que no reunía lo que el cliente esperaba de éste, entonces dada tal situación, las pruebas que a realizar a dicha funcionalidad van a permitir que se vuelva a desarrollar de manera segura, ya que la prueba encierra el criterio de aceptación sobre la funcionalidad, permitiendo de esta forma que se vuelva a desarrollar algo acorde con la especificación. Restringe las características a implementar. Muchas veces los programadores pierden tiempo en detalles que la especificación no pedía. Con las pruebas el programador sabe que tiene que programar dicha funcionalidad y también probarla, por lo que se restringe a lo que los diseñadores de las pruebas hayan realizado. Hacen que el desarrollo sea más rápido. Ya que a medida que se agregan características al software, las funcionalidades anteriores pueden fallar, pero si se han hecho las pruebas pertinentes a las funcionalidades anteriores, se puede descartar inmediatamente que existan defectos en éstas, por lo que se puede concentrar tranquilamente en la funcionalidad nueva. ¿Quién debe realizar las pruebas? Las pruebas deben ser diseñadas y ejecutadas por personal diferente al que realizó el análisis de las reglas del negocio, también de las personas que realizaron los diseños y principalmente, deben ser diferentes a las que realizaron la labor de programación En la labor de desarrollo de software existen varios roles que cumplen los integrantes del proyecto, entre esos los siguientes: Analistas, Diseñadores y Programadores: Este grupo de personas poseen un punto de vista creativo, ya que ellos son los que a partir de una necesidad del cliente, diseñan, analizan y codifican una solución informática. Debido a esa situación ellos no alcanzan a divisar los posibles defectos que tiene el software que ellos realizaron. Probador: Ellos se enfocan en entender las reglas del negocio, requerimientos, casos de uso y todas aquellas cosas que ayuden a comprender el negocio. Este grupo de personas poseen por decirlo de alguna manera un punto de vista destructivo, ya que ellos saben que determinada parte del programa tiene que llevar a cabo ciertas funciones, y ellos en su que hacer tratan de encontrar defectos a la funcionalidad realizada por otra persona. 1. ¿Qué es la prueba del software? Son los procesos que permiten verificar y revelar la calidad de un producto software. Utilizadas para identificar posibles fallos de implementación, calidad o usabilidad de un programa. 2. ¿Cuales son los objetivos de las pruebas? 1. La prueba es el proceso de ejecución de un programa con la intención de descubrir un error. 2. Un buen caso de prueba es aquel que tiene una alta probabilidad de descubrir un error no encontrado hasta entonces. 3. Una prueba tiene éxito si descubre un error no detectado hasta entonces. No sólo se prueba el código: también documentación y ayuda. 3. ¿Qué son las herramientas para pruebas de software? Las herramientas para pruebas de software ayudan a los equipos de desarrollo de software a investigar los errores de software, verificar la funcionalidad de los sistemas y asegurarse de que el software que desarrollan es seguro y confiable. Existen herramientas especiales para cada una de las etapas de un proyecto de desarrollo de software. Algunos proveedores de este tipo de herramientas ofrecen una serie integrada que da soporte tanto a las pruebas como al desarrollo de software durante todo un proyecto, desde que se reúnen los requisitos hasta que se inicia el funcionamiento en vivo del sistema. Sin embargo, hay otros proveedores que se concentran en una parte del ciclo de desarrollo de aplicaciones.