A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation.

Apresentações semelhantes


Apresentação em tema: "1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation."— Transcrição da apresentação:

1

2 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation

3 2 Agenda Web Services e Smart Devices Web Services e Smart Devices A Plataforma.NET A Plataforma.NET A segurança na.NET A segurança na.NET Sumário Sumário Console.WriteLine( Duracao: {0}m, 40 + ( new Random(). Next(15)) )

4 3 Agenda Web Services e Smart Devices Web Services e Smart Devices A Plataforma.NET A Plataforma.NET Segurança na.NET Segurança na.NET Sumário Sumário

5 4 Empresa A A empresa Virtual Escrit.Remoto/Consumidores Empregados no Exterior Empresa B ClientesParceirosFornecedores Escrit.Remoto/Consumidores Empregados no Exterior Exigencia de negócio = Estar tudo ligado

6 5 Empresa A Escrit.Remoto/Consumidores Empregados no Exterior Exigencia de negócio = tudo ligado Empresa B Escrit.Remoto/Consumidores ClientesParceirosFornecedores Empregados no Exterior Empresa F Escrit.Remoto/Consumidores ClientesParceirosFornecedores Empregados no Exterior Empresa E Escrit.Remoto/Consumidores ClientesParceirosFornecedores Empregados no Exterior Company C Escrit.Remoto/Consumidores ClientesParceirosFornecedores Empregados no Exterior Empresa D Escrit.Remoto/Consumidores ClientesParceirosFornecedores Empregados no Exterior

7 6 A Integração Problema clássico Problema clássico Costuma ficar para o fim Costuma ficar para o fim Demasiado difícil, cara, lenta e frágil Demasiado difícil, cara, lenta e frágil Ilhas de tecnologia no mar da conectividade Ilhas de tecnologia no mar da conectividade As soluções estão a evoluir para constelações As soluções estão a evoluir para constelações Exemplos Exemplos Dentro das empresas Dentro das empresas Entre empresas Entre empresas O indivíduo e diferentes tecnologias O indivíduo e diferentes tecnologias

8 7 Web Services Conceptualmente Conceptualmente Pequenos componentes de funcionalidade disponibilizadas para poderem ser consumidos como serviços através de uma rede Pequenos componentes de funcionalidade disponibilizadas para poderem ser consumidos como serviços através de uma rede Tecnicamente Tecnicamente Conjunto de operações acessíveis através de mensagens standard sobre uma rede

9 8 Demo

10 9 Novos dispositivos Uma plataforma de desenvolvimento tem de integrar os novos dispositivos de forma transparente; Uma plataforma de desenvolvimento tem de integrar os novos dispositivos de forma transparente; Conectividade Conectividade Baixo custo, a Internet a universalizar-se Baixo custo, a Internet a universalizar-se Wireless, acesso a banda larga Wireless, acesso a banda larga Proliferação de equipamentos Proliferação de equipamentos Equipamentos ligados à Internet - PDAs, Telefones celulares etc. Equipamentos ligados à Internet - PDAs, Telefones celulares etc. Standards para a Internet Standards para a Internet Integração assente em XML Integração assente em XML

11 10 Demo Vídeo Web Services

12 11 Agenda Web Services e Smart Devices Web Services e Smart Devices A plataforma.NET A plataforma.NET A segurança na.NET A segurança na.NET Sumário Sumário

13 12 O que é o.NET? Uma plataforma de desenvolvimento: interfaces, componentes e ferramentas para desenvolver software. Uma plataforma de desenvolvimento: interfaces, componentes e ferramentas para desenvolver software. A maior alteração dentro da Microsoft desde que o Windows substituíu o DOS A maior alteração dentro da Microsoft desde que o Windows substituíu o DOS As alterações incluem: As alterações incluem: Formato do código, compiladores, Formato do código, compiladores, Modelos de carregamento e execução do código, Modelos de carregamento e execução do código, Modelo de segurança, Modelo de segurança, Modelo de objectos, metadados, protocolos remoting Modelo de objectos, metadados, protocolos remoting Bibliotecas de classes, Bibliotecas de classes, …

14 13 A plataforma.NET

15 14 O valor estratégico da plataforma Suporte ao desenvolvimento de novos negócios assentes na tecnologia Suporte ao desenvolvimento de novos negócios assentes na tecnologia

16 15 Novos modelos de negócio AUTENTICAÇÃO Fornecedor A ……………………………… Fornecedor B Fornecedor C Leilões

17 16 Novos modelos de negócio AUTENTICAÇÃO Fornecedor A ……………………………… Fornecedor B Fornecedor C Leilões Pagamentos Empresa A Empresa B Empresa C

18 17 Novos modelos de negócio AUTENTICAÇÃO Fornecedor A ……………………………… Fornecedor B Fornecedor C Leilões Pagamentos Empresa A Empresa B Empresa C

19 18 O software tem de permitir: O software tem de permitir: O Software será a base dos novos modelos de negócio Experiências de utilização de software consistentes entre os diversos dispositivos; Experiências de utilização de software consistentes entre os diversos dispositivos; Produção de software como um serviço; Produção de software como um serviço; Modelo de programação consistente. Modelo de programação consistente.

20 19 A.NET Framework é o modelo de programação que serve de base para a visão.NET.NET: Princípios Visão Microsoft para a computação Tornar a computação distribuida na Internet comum Tornar a computação distribuida na Internet comum Explorar o poder de processamento e largura de banda cada vez mais baratos Explorar o poder de processamento e largura de banda cada vez mais baratos Integração natural entre múltiplas aplicações e dispositivos Integração natural entre múltiplas aplicações e dispositivos Disponibilizar software como um serviço Disponibilizar software como um serviço Experiência de utilização nova e mais rica Experiência de utilização nova e mais rica

21 20 Objectivos no desenho da.NET Framework Simplificar o desenvolvimento de aplicações Simplificar o desenvolvimento de aplicações Fornecer um ambiente de execução seguro e robusto Fornecer um ambiente de execução seguro e robusto Suporte para múltiplas linguagens de programação Suporte para múltiplas linguagens de programação Simplificar a distribuição e manutenção de aplicações Simplificar a distribuição e manutenção de aplicações

22 21 Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Devices WindowsForms Common Language Runtime (CLR) Common Language Runtime (CLR) Suporte múltiplas linguagens Suporte múltiplas linguagens Sistema único de tipos Sistema único de tipos Deployment simplificado Deployment simplificado Code Access Security Code Access Security Bibliotecas base ricas Bibliotecas base ricas Modelo de programação poderoso e consistente Modelo de programação poderoso e consistente Focus no código e funcionalidade Focus no código e funcionalidade Integração com as tools de desenvolvimento Integração com as tools de desenvolvimento Suporte de funcionalidade design-time Suporte de funcionalidade design-time Suporte para Debugging Suporte para Debugging.NET Framework

23 22 Compilador Assembly Common Language Runtime Desenvolvimento C#J#VBCobol… CILMetadataResources public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } Código

24 23 Compilador AssemblyDesenvolvimentoC#J#VBCobol… CILMetadataResources public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } Código AssemblyDesenvolvimento Application Directory Global Assembly Cache (GAC) Common Language Runtime Distribuição SetupCopyBrowser Download Cache Install

25 24 Debug Engine IL to Native Compiler Application Directory SetupCopyBrowser Download Cache Global Assembly Cache (GAC) Assembly on Target Machine Common Language Runtime AssemblyDesenvolvimentoDistribuição Install Execução AssemblyLoader Security Class Loader Native.exe + GC table Code Manager Garbage Collection Exception Manager Thread Support COM Interop Policy

26 25 Demo Common Language Runtime

27 26.NET Compact Framework.NET Framework para dispositivos embebidos.NET Framework para dispositivos embebidos

28 27 As ferramentas de desenvolvimento Cobol RPG MS-BASIC Turbo Pascal QuickBasic Visual Basic PowerBuilder Delphi GUI O PC A Web O sistema XML Web Services HTML, scripting

29 28 Como saber mais sobre a.NET Framework?.NET Framework SDK (essencial!).NET Framework SDK (essencial!) CLR, compiladores de linha de comando, debuggers, class libraries, documentação, … CLR, compiladores de linha de comando, debuggers, class libraries, documentação, … Download grátis Download grátis Size: ~100 MB Size: ~100 MB Visual Studio.NET (opcional) Visual Studio.NET (opcional) IDE (Ambiente de Desenvolvimento Integrado) IDE (Ambiente de Desenvolvimento Integrado) Size: ~1.5 GB Size: ~1.5 GB

30 29 Agenda Web Services e Smart Devices Web Services e Smart Devices A plataforma.NET A plataforma.NET A segurança na.NET A segurança na.NET Sumário Sumário

31 30 Segurança Code Access e Evidence Based Code Access e Evidence Based Segurança Role Based Segurança Role Based Boas práticas Boas práticas

32 31 Recursos Controlo Identidade Utilizador Code Access Security Visão Geral Código Controlo Identidade Código

33 32 Code Access Security Visão Geral O código também ter identidade O código também ter identidade De acordo com as provas de identidade são atribuídas permissões De acordo com as provas de identidade são atribuídas permissões Só código com confiança suficiente pode aceder a recursos protegidos do sistema Só código com confiança suficiente pode aceder a recursos protegidos do sistema O código precisa de ter as permissões necessárias para aceder aos recursos O código precisa de ter as permissões necessárias para aceder aos recursos Os recursos validam a sua lógica usando permissões Os recursos validam a sua lógica usando permissões

34 33 Segurança em.NET Principais conceitos Provas (Evidence) Provas (Evidence) Dados sobre o código Dados sobre o código site, url, zona, app directory, strong name, publisher, hash site, url, zona, app directory, strong name, publisher, hash Política (Policy) Política (Policy) Determinam o que o código pode fazer Determinam o que o código pode fazer Concedem permissões às assemblies Concedem permissões às assemblies Permissões (Permissions) Permissões (Permissions) Autorizações específicas Autorizações específicas Definem o nível de acesso a um recurso Definem o nível de acesso a um recurso

35 34 Provas (Evidence) 7 Tipos Dados sobre o local de onde o código é carregado: Dados sobre o local de onde o código é carregado: site, url, zona, app directory Dados sobre quem escreveu o código: strong name, publisher Dados sobre quem escreveu o código: strong name, publisher Dados sobre todo o assembly: Dados sobre todo o assembly:hash

36 35 Compilador AssemblyDesenvolvimentoC#J#VBCobol… CILMetadataResources public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } Código AssemblyDesenvolvimento Application Directory Global Assembly Cache (GAC) Evidence Based Security Distribuição SetupCopyBrowser Download Cache Install

37 36 Debug Engine Compilador IL para Nativo Directoria aplicação SetupCopyBrowser Download Cache Global Assembly Cache (GAC) Assembly na máquina destino Evidence Based Security AssemblyDesenvolvimentoDistribuição Install Execução AssemblyLoader Security Class Loader Native.exe + GC table Code Manager Garbage Collection Exception Manager Thread Support COM Interop Policy

38 37 As permissões são o resultado da intersecção As permissões são o resultado da intersecção Todas as policies concordam antes de conceder um privilégio Todas as policies concordam antes de conceder um privilégio user appdomain machine enterprise Só a intersecção é que é concedida Evidence Based Security Permissões concedidas

39 38 Atribuição de Permissões

40 39 Evidence Based Security Code Groups (determinam a policy) Um Code Group tem 2 atributos Um Code Group tem 2 atributos Condição Membership Condição Membership Um PermissionSet associado Um PermissionSet associado

41 40 Code Groups A Hierarchy As provas da Assembly são comparadas As provas da Assembly são comparadas com cada condição do Code Group com cada condição do Code Group Se a condição se verificar, o Se a condição se verificar, o PermissionSet é adicionado à lista actual, e são verificados outros Code Groups abaixo deste nó PermissionSet é adicionado à lista actual, e são verificados outros Code Groups abaixo deste nó Se não se verificar, não Se não se verificar, não são verificados os são verificados os CodeGroups abaixo deste CodeGroups abaixo deste

42 41 Built-in Code Groups

43 42 Code Access Security Permissões Permissões são definidas para controlar o acesso granular aos recursos do sistema Permissões são definidas para controlar o acesso granular aos recursos do sistema Tipicamente, os construtores das permissões definem o nível de permissão Tipicamente, os construtores das permissões definem o nível de permissão Podem ser imperativas ou declarativas Podem ser imperativas ou declarativas FileIOPermission fp = new FileIOPermission( ); [ FileIOPermission( SecurityAction.Demand, ]

44 43 Code Access Security Permissões FileIO FileIO FileDialog FileDialog IsolatedStorage IsolatedStorage Environment Environment Registry Registry UI UI Printing Printing Reflection Reflection Security Security Socket Socket Web Web DNS DNS OleDb OleDb SQLClient SQLClient MessageQueue MessageQueue EventLog EventLog DirectoryServices DirectoryServices … extensível … extensível Execution, Assertion, Skip Verification, Unmanaged code, Control evidence, Control policy, Control principal, Control threads

45 44Chama.NET FRAMEWORK public FileStream (string name) { FileIOPermission fp = new FileIOPermission(name) FileIOPermission fp = new FileIOPermission(name) fp.Demand() fp.Demand() } Code Access Security Permissões MYCOMPONENT (LOCALMACHINE).... Stream fileStream = FileStream.Open(cod_mb.xml);.... Tem permissão? As permissões são garantidas pelo Security Manager do Common Language Runtime As permissões são garantidas pelo Security Manager do Common Language Runtime

46 45 Code Access Security Excepções de segurança Sempre que o código tentar efectuar alguma operação para a qual não tenha privilégios é gerada uma excepção do tipo SecurityException Sempre que o código tentar efectuar alguma operação para a qual não tenha privilégios é gerada uma excepção do tipo SecurityExceptionChama.NET FRAMEWORK public FileStream (string name) { FileIOPermission fp = new FileIOPermission(name) FileIOPermission fp = new FileIOPermission(name) fp.Demand() fp.Demand() } MYCOMPONENT (LOCALMACHINE).... Stream fileStream = FileStream.Open(cod_mb.xml);.... Tem permissão? Excepção

47 46 Code Access Security – stack walk NOTMYAPP (outra app).... myComponent.ReadSetting(key);... MYCOMPONENT (com privilégios).... Stream fileStream = FileStream.Open(cod_mb.xml);.... Chama Tem permissão? Excepção ChamaFRAMEWORK public FileStream (string name) { FileIOPermission fp = new FileIOPermission(name) FileIOPermission fp = new FileIOPermission(name) fp.Demand() fp.Demand() }

48 47 Os administradores podem ajustar as políticas actuais, assim como criar novas utilizando novos code groups Os administradores podem ajustar as políticas actuais, assim como criar novas utilizando novos code groups.NET Framework Configuration Tool (MMC).NET Framework Configuration Tool (MMC) Caspol.exe (linha de comando) Caspol.exe (linha de comando) As políticas podem ser definidas ao nível da aplicação, utilizador, máquina e empresa. As políticas podem ser definidas ao nível da aplicação, utilizador, máquina e empresa. Evidence Based Security Alterar as políticas default

49 48 Segurança Code Access e Evidence Based Code Access e Evidence Based Segurança Role Based Segurança Role Based Boas práticas Boas práticas

50 49 Role-Based Security Principais conceitos Centrada na identidade do utilizador e funções (roles) Centrada na identidade do utilizador e funções (roles) Fornece um modelo de programação unificado para todos os tipos de autenticação Fornece um modelo de programação unificado para todos os tipos de autenticação Basic, Digest, Kerberos, Microsoft Passport, Forms/Custom, Certificados Cliente Basic, Digest, Kerberos, Microsoft Passport, Forms/Custom, Certificados Cliente

51 50 Role-Based Security Identidade IIdentity – interface que define a identidade. Esta interface é genérica, e pode ser utilizada / extendida IIdentity – interface que define a identidade. Esta interface é genérica, e pode ser utilizada / extendida A autenticação é responsabilidade de quem implementa esta interface A autenticação é responsabilidade de quem implementa esta interface Implementações existentes na.NET Framework Implementações existentes na.NET Framework GenericIdentity – implementação genérica GenericIdentity – implementação genérica WindowsIdentity – implementação que integra com a segurança do Windows WindowsIdentity – implementação que integra com a segurança do Windows

52 51 Role-Based Security Funções (Roles) IPrincipal – interface que associa funções (roles) à identidade. Esta interface é genérica, e pode ser utilizada / extendida IPrincipal – interface que associa funções (roles) à identidade. Esta interface é genérica, e pode ser utilizada / extendida Implementações existentes na.NET Framework Implementações existentes na.NET Framework GenericPrincipal – implementação genérica GenericPrincipal – implementação genérica WindowsPrincipal – implementação que integra com a segurança do Windows WindowsPrincipal – implementação que integra com a segurança do Windows

53 52 Segurança Code Access e Evidence Based Code Access e Evidence Based Segurança Role Based Segurança Role Based Boas práticas Boas práticas

54 53 Boas Prácticas Segurança na.NET Framework Não ignorar a segurança!!!! Não correr tudo como Administrator / FullTrust porque senão não funciona!!! Provavelmente existe uma razão de segurança para esse comportamento !!! Pensar na segurança desde o início

55 54 Agenda Web Services e Smart Devices Web Services e Smart Devices A plataforma.NET A plataforma.NET Segurança na.NET Segurança na.NET Sumário Sumário

56 55.NET em suma A plataforma de desenvolvimento de software da Microsoft para a próxima década A plataforma de desenvolvimento de software da Microsoft para a próxima década Baseada em standards, para múltiplas linguagens e múlplipos dispositivos Baseada em standards, para múltiplas linguagens e múlplipos dispositivos Baseada na ideia dos Web Services Baseada na ideia dos Web Services

57 56 Segurança.NET em suma O código também tem identidade O código também tem identidade Os níveis de acesso do código são concedidos mediante provas Os níveis de acesso do código são concedidos mediante provas As políticas determinam que privilégios atribuir de acordo com as provas apresentadas As políticas determinam que privilégios atribuir de acordo com as provas apresentadas Particularmente útil para código móvel Particularmente útil para código móvel Existem mecanismos para implementar segurança de acordo com a função do utilizador. Existem mecanismos para implementar segurança de acordo com a função do utilizador. Nós só vimos a ponta do iceberg ! Nós só vimos a ponta do iceberg !

58 57 Para mais informação… Site MSDN Portugal Site MSDN Portugal Site MSDN Internacional Site MSDN Internacional Newsgroups Newsgroups news://msnews.microsoft.com/microsoft.public.pt. dotnet news://msnews.microsoft.com/microsoft.public.pt. dotnet news://msnews.microsoft.com/microsoft.public.pt. dotnet news://msnews.microsoft.com/microsoft.public.pt. dotnet.NET Security.NET Security Livro Livro.NET Framework Security, ISBN: x.NET Framework Security, ISBN: x

59 58 Tomar café !!!


Carregar ppt "1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation."

Apresentações semelhantes


Anúncios Google