El término "patrón de diseño de seguridad" generalmente significa una práctica de diseño que cuando se aplica correctamente garantiza que una propiedad de seguridad se cumple. Por ejemplo, la marca registrada :
Una marca registrada en seguridad informática es un contrato entre el código que verifica las propiedades de seguridad de un objeto y el código que requiere que un objeto tenga ciertas propiedades de seguridad. Como tal, es útil para garantizar un flujo de información seguro. En los lenguajes orientados a objetos, las marcas registradas son análogas a la firma de datos, pero a menudo se pueden implementar sin criptografía.
Por lo tanto, un desarrollador puede registrar un objeto como marca registrada y utilizar la ocultación de información para asegurarse de que otros módulos no puedan falsificar la marca registrada. Entonces, un cliente puede estar seguro de que la presencia de la marca registrada (a veces tan simple como instanceof
) implica que la propiedad se mantiene en tiempo de ejecución.
Por ejemplo, la salida de un desinfectante HTML y una plantilla HTML que desinfecta todas las entradas puede tener una marca registrada como HTML seguro conocido. El código descendente podría verificar la marca registrada para distinguir entre el contenido que aún debe ser tratado con sospecha de aquel que se originó dentro del sistema o que se ha filtrado al ingresar al dominio de seguridad.
Por el contrario, una directriz de codificación podría ser
Cuando necesite verificar que se respeta una propiedad de seguridad, como la buena formación o la procedencia, use una de las bibliotecas de validación escritas por nuestros ingenieros de seguridad o verifique que la entrada tenga una marca registrada para saber que la propiedad era revisado en sentido ascendente.
El patrón explica cómo diseñar un objeto o módulo con ciertas propiedades de seguridad, y las pautas apuntan a los clientes que requieren esa propiedad en formas de mantenerlo en su código.
Los patrones explican la relación entre las invariantes y las decisiones de diseño / API, mientras que las pautas establecen qué prácticas usar & cuando para que los desarrolladores puedan coordinar efectivamente su trabajo.
Cuando se trabaja en un lenguaje orientado a objetos con poca ocultación de información, la marca registrada de objetos es más difícil, por lo que una guía de codificación podría ser
No falsifique marcas registradas o el equipo del núcleo seguro lo perseguirá.
que no aboga por el uso de un patrón de diseño seguro, pero cuando se sigue mejora la seguridad del sistema al evitar abusos de las características del lenguaje que violan los contratos de seguridad.