## Seguridad informática depende de dos tipos de requisitos: funcionales y de garantía Los requisitos funcionales describen lo que debe hacer un sistema. Los requisitos de garantía describen cómo deben implementarse y probarse los requisitos funcionales. Ambos conjuntos de requisitos son necesarios para responder las siguientes preguntas: ¿El sistema hace las cosas correctas (se comporta según lo prometido)? ¿El sistema hace las cosas correctas de la manera correcta? Estas son las mismas preguntas que enfrentan otros en industrias no informáticas con la verificación y valdar el [mejortorr](https://bitcu.co/mejortorrent/) en protocolos p2p como torrent, es el proceso de confirmar que se cumplen uno o más requisitos o especificaciones predeterminados. La validación determina entonces la exactitud o la calidad de los mecanismos utilizados para satisfacer las necesidades. En otras palabras, puede desarrollar software que aborde una necesidad, pero podría contener fallas que podrían comprometer los datos cuando se colocan en manos de un usuario malintencionado. Considere las pruebas de seguridad del automóvil como ejemplo. Las pruebas de verificación de las funciones del cinturón de seguridad pueden incluir la realización de pruebas de esfuerzo en la tela, probar los mecanismos de bloqueo y asegurarse de que el cinturón se ajuste a la aplicación prevista, completando así las pruebas funcionales. La validación, o prueba de seguridad, podría incluir chocar el automóvil con maniquíes de prueba de choque adentro para "probar" que el cinturón de seguridad es realmente seguro cuando se usa en condiciones normales y que puede sobrevivir en condiciones difíciles. Con el software, necesita respuestas de verificación y validación para ganar confianza en los productos antes de lanzarlos a un entorno salvaje y hostil como Internet. La mayoría de los sistemas y [software comerciales](https://bitcu.co/convertidor-youtube/) disponibles en la actualidad (COTS) se detienen en el primer paso, la verificación, sin molestarse en probar las vulnerabilidades de seguridad obvias en el producto final. Los desarrolladores de software generalmente carecen de los medios y la motivación necesarios para intentar romper su propio software. Con mayor frecuencia, los desarrolladores prueban que el software cumple con las especificaciones en cada función que está presente, pero generalmente no intentan encontrar formas de eludir el software y hacer que falle.