clase xv

32
Clase XV Clase XV [nombre instructor] [nombre instructor] [fecha] [fecha]

Upload: roberto-moreno-donoro

Post on 25-Jun-2015

134 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Clase xv

Clase XVClase XV•[nombre instructor][nombre instructor]

•[fecha][fecha]

Page 2: Clase xv

AgendaAgenda Seguridad

Políticas Seguridad de código Seguridad en ASP.NET Nuevas Características de Seguridad de

ASP.NET 2.0 Membresía Modelo de Proveedores Controles de Login

Page 3: Clase xv

AgendaAgenda Seguridad

Políticas Seguridad de código Seguridad en ASP.NET Nuevas Características de Seguridad de

ASP.NET 2.0 Membresía Modelo de Proveedores Controles de Login

Page 4: Clase xv

Políticas Políticas

Descripción del uso de políticas

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 5: Clase xv

Qué es evidenciar?Qué es evidenciar?

Evidenciar consiste en la información a cerca de la entidad y origen de un assembly

La seguridad del Framework .NET es un sistema que otorga permisos basados en la fuerza de evidencia

Assembly Strong name Criptografico hashFirma Authenticode

Nombre simple de assemblyCode location (URL) Zona de origen

Formas de evidenciaFormas de evidencia

Fuerte DébilFuerza relativa

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 6: Clase xv

Qué es Políticas de Seguridad?Qué es Políticas de Seguridad? Políticas de seguridad de código de acceso

controlan los permisos del código para acceder a los recursos

La cantidad de acceso esta basado en la identidad del código y el origen

La identidad del código y el origen es establecido por la evidencia

Una política de seguridad hace juego con un tipo específico de evidencia para un conjunto de permisos Nothing Execution Internet LocalIntranet Everything FullTrust Custom-defined

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 7: Clase xv

Qué es nivel de Políticas de Qué es nivel de Políticas de seguridad?seguridad?

Políticas que pueden ser aplicadas a diferentes niveles para controlar acceso a recursos :

•Enterprise•Machine•User•Application domain

Page 8: Clase xv

Qué es una Demanda de Qué es una Demanda de Permisos?Permisos? 1. Un assembly pide acceso a un

método en un assembly

2. El assembly pasa la petición a un assembly del .NET Framework

3. El sistema de seguridad demanda permisos arriba de la pila

4. El sistema de seguridad concede el acceso o lanza una excepción

Security system

YourAssemblyYourAssembly

SomeAssemblySomeAssembly

.NET Framework Assembly

.NET Framework Assembly

Call to WriteFile

Call to WriteFile

Grant: Execute

Grant: ReadFileGrant: ReadFile

Grant: ReadFile

Permission Demand

Security exception Access denied

Security exception Access deniedGrant access?Grant access?

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 9: Clase xv

Qué es afirmación de Qué es afirmación de Permisos?Permisos? El método Assert

reduce el alcance de la demanda de permisos

Usa esto para asociar una aplicación .NET Framework con código no administrado

Cuidado: El uso de Assert puede crear una vulnerabilidad en la seguridad

Security system

Call to NUMBER_Of_PROCESSORS

SomeAssemblySomeAssemblyGrant: Execute

.NET Framework Assembly.NET Framework AssemblyGrant: read the system variable:

NUMBER_OF_PROCESSORSGrant: read the system variable:

NUMBER_OF_PROCESSORS

FinanceCalculatorFinanceCalculatorAssert: Read system variable:NUMBER_OF_PROCESSORS

Call to NUMBER_Of_PROCESSORS Permission Demand

Access grantedAccess grantedGrant access?Grant access?

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 10: Clase xv

Otros Tipos de Chequeo de Otros Tipos de Chequeo de seguridadseguridad

Para realizar esta acción: Use este método:

Prevenir y permitir al código de recibir permisos

Deny

PermitOnly

Desactivar llamadas dentro de la pila

RevertAssert

RevertDeny

RevertPermitOnly

RevertAllComparar dos permisos en la misma clase IsSubsetOf

Combinar e intersecar permisos

Unión

Intersect

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 11: Clase xv

Cómo se demanda un permiso Cómo se demanda un permiso imperativo?imperativo?

Un puesto de demanda a un requerimiento de permiso específico de un llamador

Para demandar un permiso imperativo:1. Crear una nueva instancia del objeto

permiso2. Poner las propiedades sobre el objeto

permiso3. Llamar al método de demanda de objeto

en el bloque Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 12: Clase xv

Como se “Sostiene” (Assert) un Como se “Sostiene” (Assert) un permiso imperativopermiso imperativo Para sostener un permiso imperativo:

1. Crear una instancia del objeto permission

2. Llamar al método Assert sobre éste

Page 13: Clase xv

Cómo usar Permisos Cómo usar Permisos Declarativos?Declarativos? Usar atributos para poner permisos

declarativos Assert Demand Deny Permit

Evitar añadir atributos de Demand y atributos de Assert para el mismo método

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 14: Clase xv

Qué es un Link Demand?Qué es un Link Demand?

Un link demand especifica que el conjunto de permisos que directamente llama deben tener para llamar a su código

Un link demand es chequeado durante la compilación JIT del llamador

Una excepción resulta si el llamador no tiene los suficientes permisos

Es usado especialmente un link demand que requiere permisos de identidad Permite que cree un assembly privado que

pueda ser llamado por un assembly que tenga la misma publicación

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 15: Clase xv

Qué es herencia de Demanda?Qué es herencia de Demanda?

Una herencia de demanda pude ser puesta en un una clase o método

A este nivel:

Una herencia de demanda requiere que su código tenga permisos

específicos para:

Class Heredar de la clase

Method Sobreescribir el método

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 16: Clase xv

Qué es la petición de permisos?Qué es la petición de permisos?

La petición de permisos de Assembly son examinados en tiempo de carga por el .NET Framework

Tipos de petición de permisos de Assembly Permisos Mínimos (RequestMinimum)

El conjunto mínimo de permisos que el código necesita para correr

Permisos Opcionales (RequestOptional) Permisos que el código puede usar pero que

puede correr efectivamente son ellos Permisos Rechazados

(RequestRefused) Permisos que el código nunca concederá,

incluso si la política de seguridad permite concederlos

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 17: Clase xv

LaboratorioLaboratorio•Seguridad de acceso del códigoSeguridad de acceso del código

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 18: Clase xv

Validando LoginsValidando Logins

if (Membership.ValidateUser (UserName.Text, Password.Text)) RedirectFromLoginPage (UserName.Text, RememberMe.Checked);

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 19: Clase xv

ProveedoresProveedores

Nuevo modelo para almacenar y manejar estados Los almacenamientos se hacen

adaptables a diferentes medios Usados por muchos servicios

ASP.NET claves Servicio de Membresía Servicio de Administración de Roles y

más Los proveedores preconstruidos

hacen que los estados de almacenamiento ASP.NET sean flexibles

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 20: Clase xv

El modelo de ProveedoresEl modelo de Proveedores

APIs de Membresia

Data de Membresía

AccessOtros

almacenamientos de datos

ControlesLoginLogin LoginStatusLoginStatus LoginViewLoginView

AccessMembershipProviderAccessMembershipProvider Otros proveedoresOtros proveedores

Proveedores de Membresía

MembershipMembership MembershipUserMembershipUser

SqlMembershipProviderSqlMembershipProvider

SQL Server

Otros controles de Login

Otros controles de Login

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 21: Clase xv

DemoDemo•Configurando un Membership Provider

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 22: Clase xv

DemoDemo•Configurando Roles Management

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 23: Clase xv

Login ControlsLogin Controls

Controles de Servidor No escritura de código, e.g. Login UI Integrado con las características de

Seguridad<asp:login /> <asp:loginname /><asp:loginstatus /><asp:loginview /><asp:passwordrecovery /><asp:createuserwizard /> <asp:changepassword /> S

egu

rida

d e

n .N

ET

Se

guri

dad

en

.NE

T

Page 24: Clase xv

<asp:CreateUserWizard /><asp:CreateUserWizard /> Control Paso a Paso para crear un

usuario : Podemos agregar pasos (e.g. address) Podemos modificar la plantilla de los

pasos existentes

Integración a características de seguridad: Integración con Membresía

(Membership) NOTA: Puede crear un acceso a BD si el

default membership es cambiado. Tips

Soporte para fácil reorganización de pasos

Hereda de Wizard

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 25: Clase xv

<asp:Login /><asp:Login />

IU Para Iniciar Sesión : Soporte para Auto Formato Tranformación a plantilla

Integración: Forms Authentication para validad

usuario Integración conMembership

Propiedades de presentación Configurable Presentación, e.g. back color, fore color Behavior, e.g. redireccionar a urls

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 26: Clase xv

<asp:LoginName /><asp:LoginName />

Presenta el nombre del usuario Actual String con Formato, e.g. ‘Welcome,

{0}!” Otras Presentaciones

User.Identity.Name<asp:LoginStatus /><asp:LoginStatus /> Presenta el Estado del Usuario

No autenticado: ‘Login’ autenticado: ‘Logout’ Basado en imagen o texto

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 27: Clase xv

<asp:LoginView /><asp:LoginView />

La presentación varía por: Anonymous Usuario Autenticados Role Membership – Segmentos de

página por rol

Plantillas y Roles <loggedintemplate /> <anonymoustemplate /> <rolegroups />

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 28: Clase xv

<asp:ChangePassword /><asp:ChangePassword />

IU Para cambiar Password: Convertir a Plantilla

Integración: Integración con Membership Modelo de presentación dual – uno para

usuarios autenticados y otro para usuarios no autenticados

Propiedades de presentación configurables Presentación, e.g. back color, fore colorS

egu

rida

d e

n .N

ET

Se

guri

dad

en

.NE

T

Page 29: Clase xv

<asp:PasswordRecovery /><asp:PasswordRecovery />

Recuperar Password Soporta autoformato Conversión a Plantilla

Integración: Usa el proveedor de Membresía por

fedecto Reglas de recuperación de Membership

Propiedades de presentación configurable Presentación, e.g. back color, fore color Configuración, e.g. redireccionar a urls

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 30: Clase xv

LaboratorioLaboratorio•Seguridad en ASP.NET 2.0Seguridad en ASP.NET 2.0

Page 31: Clase xv

RecursosRecursos

Dirección de guía de Seguridad para ASP.NET 2.0: http://msdn.microsoft.com/library/default.asp?

url=/library/en-us/dnpag2/html/PAGPractices0001.asp

Laboratorios de MSDN: http://lab.msdn.microsoft.com/

Más Recursos ASP.NET http://beta.asp.net

Recursos y Noticias: www.programar.net www.willydev.net www.developersec.net

Page 32: Clase xv

ExámenExámen

Recuperatorio de exámenesRecuperatorio de exámenes