La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Implementación de seguridad en las aplicaciones con Microsoft.NET Framework NombrePuestoCompañía.

Presentaciones similares


Presentación del tema: "Implementación de seguridad en las aplicaciones con Microsoft.NET Framework NombrePuestoCompañía."— Transcripción de la presentación:

1 Implementación de seguridad en las aplicaciones con Microsoft.NET Framework NombrePuestoCompañía

2 Contenido Características de seguridad de.NET Framework Seguridad del acceso a código Seguridad basada en funciones Criptografía Seguridad de las aplicaciones Web de ASP.NET Seguridad de los servicios Web de ASP.NET

3 Requisitos previos para la sesión Experiencia en desarrollo con Microsoft Visual Basic®, Microsoft Visual C++® o C# Experiencia en la creación de aplicaciones Web o para Microsoft Windows® mediante.NET Framework Nivel 200

4 Orden del día Características de seguridad de.NET Framework Seguridad del acceso a código Seguridad basada en funciones Criptografía Seguridad de las aplicaciones Web de ASP.NET Seguridad de los servicios Web de ASP.NET

5 Seguridad de la ejecución controlada de.NET Características de seguridad de.NET Framework Ayuda a desarrollar aplicaciones seguras Incluye varios componentes, por ejemplo: Comprobador de tipos Administrador de excepciones Motor de seguridad Complementa la seguridad de Windows

6 Un sistema con comprobación de tipos El código con comprobación de tipos: Impide la saturación de los búferes Limita el acceso a las ubicaciones de memoria autorizadas Permite que varios ensamblados se ejecuten en el mismo proceso Los dominios de aplicación proporcionan: Mayor rendimiento Aumento de la seguridad del código

7 Protección frente al desbordamiento de búferes La comprobación de tipos impide que se sobrescriba arbitrariamente la memoria Los objetos System.String de.NET son inalterables La clase System.Text.StringBuilder de.NET comprueba los límites de los búferes void CopyString (string src) { cadenaDest = origen; }

8 Captura de errores aritméticos La captura de errores aritméticos se consigue mediante: La palabra clave checked Configuración del proyecto byte b=0; while (true) { Console.WriteLine (b); checked { b++; } }

9 Demostración 1 Seguridad de los tipos Investigación de la seguridad de los tipos de.NET Uso de la palabra clave checked

10 Ensamblados con nombres seguros Los nombres seguros son Identificadores únicos (que contienen una clave pública) Se utilizan para firmar digitalmente los ensamblados Ensamblados con nombres seguros Impiden la modificación Confirman la identidad del publicador Confirman la identidad del publicador del ensamblado Permite la coexistencia de componentes que se denominan igual pero pertenecen a versiones diferentes sn –k MiClaveCompleta.snk

11 Almacenamiento aislado Proporciona un sistema de archivos virtual Permite el uso de cuotas Implementa el aislamiento del sistema de archivos en función de: La identidad de la aplicación La identidad del usuario IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForAssembly();

12 Orden del día Características de seguridad de.NET Framework Seguridad del acceso a código Seguridad basada en funciones Criptografía Seguridad de las aplicaciones Web de ASP.NET Seguridad de los servicios Web de ASP.NET

13 Seguridad basada en evidencias Evidencia Se valora cuando se carga un ensamblado Se usa para determinar los permisos del ensamblado Puede incluir la siguiente información del ensamblado: Información del nombre seguro Dirección URL Zona Firma Authenticode

14 Directivas de seguridad Entidad de seguridad Descripción Directiva La configuran los administradores Se aplica en tiempo de ejecución Simplifica la administración Contiene permisos Contiene grupos de código Grupo de código Asocia componentes similares Se basa en evidencias Se vincula a conjuntos de permisos Conjunto de permisos Es un conjunto de los permisos concedidos

15 Flujo de la comprobación de la seguridad Pila de llamadas Sistema de seguridad Su ensamblado Un ensamblado Ensamblado de.NET Framework Llamada a ReadFile Conceder: Execute 1.Un ensamblado solicita acceso a un método de su ensamblado 2.Su ensamblado pasa la solicitud a un ensamblado de.NET Framework 3.El sistema de seguridad garantiza que todas las funciones de la pila que realizan llamadas tengan los permisos requeridos 4.El sistema de seguridad concede acceso o emite una excepción Conceder: ReadFile Solicitud de permiso Excepción de seguridad Acceso denegado ¿Se concede acceso?

16 Tipos de comprobaciones de seguridad Comprobaciones de seguridad imperativas Crear objetos Permission Llamar a métodos Permission Comprobaciones de seguridad declarativas Usar atributos Permission Se aplica a métodos o clases Se omiten las comprobaciones de seguridad Se utiliza el método Assert Se impide el recorrido de la pila

17 Solicitudes de permiso Los desarrolladores las usan para definir los permisos requeridos Se implementan mediante atributos Impiden que un ensamblado se cargue cuando los permisos mínimos no están disponibles //Sólo me ejecutaré si puedo llamar a código no controlado [assembly:SecurityPermission (SecurityAction.RequestMinimum, UnmanagedCode=true)]

18 Demostración 2 Seguridad del acceso a código Uso de la herramienta Configuración de.NET Framework Realización de comprobaciones de seguridad Solicitud de permisos

19 Aplicaciones de confianza parcial Antes de.NET Framework 1.1, todas las aplicaciones Web se ejecutaban con confianza total.NET 1.1 proporciona niveles de confianza parcial: TotalAltaMediaBajaMínima

20 Cajón de arena (sandboxing) de código privilegiado Aplicación Web con confianza parcial Ensamblado contenedor Recurso protegido Código de cajón de arena (sandboxing) Permisos exigidos e impuestos Se agrega el atributo AllowPartiallyTrustedCallers El ensamblado se instala en la caché global de ensamblados Acceso a los recursos

21 Orden del día Características de seguridad de.NET Framework Seguridad del acceso a código Seguridad basada en funciones Criptografía Seguridad de las aplicaciones Web de ASP.NET Seguridad de los servicios Web de ASP.NET

22 Autenticación y autorización La autenticación pregunta: ¿Quién es usted?¿Tengo la certeza de que usted es quien dice ser? La autorización pregunta: ¿Se le permite … ?

23 Identidades y principales Una identidad contiene información sobre un usuario, como su nombre de inicio de sesión Un principal contiene información de la función sobre un usuario o equipo.NET Framework proporciona: WindowsIdentity y WindowsPrincipal Los objetos WindowsIdentity y WindowsPrincipal GenericIdentity y GenericPrincipal Los objetos GenericIdentity y GenericPrincipal

24 Creación de identidades y principales de Windows Use los objetos WindowsIdentity y WindowsPrincipal para: Validación única Validación repetida WindowsIdentity miIdent = WindowsIdentity.GetCurrent(); WindowsPrincipal miPrin = new WindowsPrincipal(miIdent); AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); WindowsPrincipal miPrin = System.Threading.Thread.CurrentPrincipal;

25 Creación de identidades y principales genéricos Cree un objeto GenericIdentity y un objeto GenericPrincipal Adjunte el objeto GenericPrincipal al subproceso actual GenericIdentity miIdent = new GenericIdentity("User1"); string[] funciones = {"Administrador", "Cajero"}; GenericPrincipal miPrin = new GenericPrincipal(miIdent, funciones); System.Threading.Thread.CurrentPrincipal = miPrin;

26 Realización de comprobaciones de seguridad Utilice los integrantes Identity y Principal en el código Por ejemplo, si utiliza la propiedad Name del objeto Identity para comprobar el nombre de inicio de inicio de sesión del usuario Por ejemplo, si utiliza el método IsInRole del objeto Principal para comprobar la pertenencia de las funciones if (String.Compare(miPrin.Identity.Name, "DOMAIN\\Fred", true)==0) { // Realizar alguna acción } if (miPrin.IsInRole("BUILTIN\\Administrators")) { // Realizar alguna acción }

27 Comprobaciones de seguridad imperativas y declarativas Utilice permisos para realizar comprobaciones de seguridad basadas en funciones Comprobaciones imperativas PrincipalPermission permPrin = new PrincipalPermission("Cajero", Administrador, true); try { permPrin.Demand(); //¿Coincide lo anterior con el principal activo? } [PrincipalPermission(SecurityAction.Demand, Role="Cajero", Authenticated=true)] Comprobaciones declarativas

28 Demostración 3 Seguridad basada en funciones Uso de seguridad basada en funciones de Windows Uso de seguridad genérica basada en funciones

29 Orden del día Características de seguridad de.NET Framework Seguridad del acceso a código Seguridad basada en funciones Criptografía Seguridad de las aplicaciones Web de ASP.NET Seguridad de los servicios Web de ASP.NET

30 Introducción general a la criptografía Término de criptografía Descripción Cifrado simétrico Cifrar y descifrar datos con una clave secreta Cifrado asimétrico Cifrar y descifrar datos con un par de claves pública y privada Hash Se asigna una cadena de datos larga a una cadena de datos corta de tamaño fijo Firma digital Se calcula el valor hash de los datos y se cifra con una clave privada.NET Framework proporciona clases que implementan estas operaciones

31 Uso de algoritmos simétricos Elija un algoritmo TripleDESCryptoServiceProviderRijndaelManaged Genere una clave secreta Use la misma clave para cifrar y descifrar datos: FileStreamMemoryStreamNetworkStream

32 Uso de algoritmos asimétricos Elija un algoritmo RSACryptoServiceProviderDSACryptoServiceProvider Genere un par de claves pública y privada Cifre o descifre los datos

33 Firma de datos y comprobación de firmas AcciónPasos Firma de los datos Calcular el valor hash de los datos Cifrar el valor hash con una clave privada Comprobación de las firmas Descifrar la firma mediante la clave pública del remitente Calcular el valor hash de los datos Comparar la firma cifrada con el valor hash

34 Demostración 4 Cifrado en.NET Framework Realización del cifrado simétrico Firma de datos

35 Orden del día Características de seguridad de.NET Framework Seguridad del acceso a código Seguridad basada en funciones Criptografía Seguridad de las aplicaciones Web de ASP.NET Seguridad de los servicios Web de ASP.NET

36 Tipos de autenticación de ASP.NET Tipo de autenticaciónVentajasDesventajas Windows Usa la infraestructura de Windows existente Controla el acceso a información confidencial No admite todos los tipos de clientes Formularios Admite todos los tipos de clientes Se basa en cookies Microsoft Passport Permite iniciar sesión una sola vez en muchos sitios Web de Internet Permite a los desarrolladores personalizar la apariencia de la página de registro Se basa en cookies Requiere el pago de una cuota

37 Configuración de la autenticación basada en formularios Configure IIS para usar la autenticación anónima Establezca la autenticación basada en formularios en Web.config Configure la autorización Cree un formulario de inicio de sesión

38 Mejoras de la autenticación basada en formularios Los desarrolladores pueden requerir cookies seguros

39 Controles de validación Validación en el cliente Proporciona información instantánea Reduce los ciclos de devolución Validación en el servidor Repite toda la validación en el cliente Valida con los datos almacenados si es necesario Mensaje de error Cliente Servidor El usuario escribe los datos ¿Son válidos? Se procesa la aplicación Web Sí No ¿Son válidos? Sí No

40 Tipos de controles de validación

41 Demostración 5 Seguridad de las aplicaciones Web de ASP.NET Configuración de la autenticación basada en formularios Uso de controles de validación

42 Orden del día Características de seguridad de.NET Framework Seguridad del acceso a código Seguridad basada en funciones Criptografía Seguridad de las aplicaciones Web de ASP.NET Seguridad de los servicios Web de ASP.NET

43 Seguridad en los mensajes Los mensajes XML portan información de seguridad Credenciales Firmas digitales Los mensajes se pueden cifrar Cliente Transporte Servicio Transporte Cualquier transporte XML La seguridad es independiente del protocolo de transporte

44 Web Service Enhancements (WSE) Incluye: Autenticación con encabezados SOAP Cifrado de mensajes Firma de mensajes Permite el enrutamiento de mensajes Admite archivos adjuntos Se implementa en el ensamblado de Microsoft.Web.Services.dll

45 Demostración 6 Web Services Enhancements (WSE) Implementación de seguridad para un servicio Web

46 Resumen de la sesión Características de seguridad de.NET Framework Seguridad del acceso a código Seguridad basada en funciones Criptografía Seguridad de las aplicaciones Web de ASP.NET Seguridad de los servicios Web de ASP.NET

47 Pasos siguientes 1. Mantenerse informado sobre la seguridad Suscribirse a boletines de seguridad: Suscribirse a boletines de seguridad: Obtener las directrices de seguridad de Microsoft más recientes: Obtener las directrices de seguridad de Microsoft más recientes: 2. Obtener aprendizaje de seguridad adicional Buscar seminarios de aprendizaje en línea y presenciales: Buscar seminarios de aprendizaje en línea y presenciales: Buscar un CTEC local que ofrezca cursos prácticos: Buscar un CTEC local que ofrezca cursos prácticos:

48 Para obtener más información Sitio de seguridad de Microsoft (todos los usuarios) Sitio de seguridad de MSDN (desarrolladores) (este sitio está en inglés) Sitio de seguridad de TechNet (profesionales de IT)

49 Preguntas y respuestas

50


Descargar ppt "Implementación de seguridad en las aplicaciones con Microsoft.NET Framework NombrePuestoCompañía."

Presentaciones similares


Anuncios Google