1 segurança na.net framework vitor santos.net group microsoft corporation
TRANSCRIPT
![Page 1: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/1.jpg)
1
Segurança na .NETSegurança na .NETFrameworkFramework
Vitor SantosVitor Santos
.NET Group.NET Group
Microsoft CorporationMicrosoft Corporation
![Page 2: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/2.jpg)
2
AgendaAgenda
Web Services e Smart DevicesWeb Services e Smart DevicesA Plataforma .NETA Plataforma .NETA segurança na .NETA segurança na .NETSumárioSumário
Console.WriteLine( “Duracao: {0}m”,40 + ( -15 + new Random(). Next(15)) )
![Page 3: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/3.jpg)
3
AgendaAgenda
Web ServicesWeb Services e Smart Devicese Smart DevicesA Plataforma .NETA Plataforma .NETSegurança na .NETSegurança na .NETSumárioSumário
![Page 4: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/4.jpg)
4
Empresa AEmpresa A
A empresa “Virtual” A empresa “Virtual”
Escrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores
Empregados no ExteriorEmpregados no Exterior
Empresa BEmpresa B
ClientesClientesParceirosParceiros
Fornecedores Fornecedores
Escrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores
Empregados no ExteriorEmpregados no Exterior
Exigencia de negócio = Estar tudo ligadoExigencia de negócio = Estar tudo ligado
![Page 5: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/5.jpg)
5
Empresa AEmpresa A
Escrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores
Empregados no Empregados no ExteriorExterior
Exigencia de negócio = tudo ligadoExigencia de negócio = tudo ligado
Empresa BEmpresa BEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores
ClientesClientesParceirosParceiros
FornecedoresFornecedores
Empregados no Empregados no ExteriorExterior
Empresa FEmpresa FEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores
ClientesClientesParceirosParceiros
FornecedoresFornecedores
Empregados no Empregados no ExteriorExterior
Empresa EEmpresa EEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores
ClientesClientesParceirosParceiros
FornecedoresFornecedores
Empregados no Empregados no ExteriorExterior
Company CCompany CEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores
ClientesClientesParceirosParceiros
FornecedoresFornecedores
Empregados no Empregados no ExteriorExterior
Empresa DEmpresa DEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores
ClientesClientesParceirosParceiros
FornecedoresFornecedores
Empregados no Empregados no ExteriorExterior
![Page 6: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/6.jpg)
6
A IntegraçãoA Integração Problema clássicoProblema clássico
Costuma ficar para o fimCostuma ficar para o fim Demasiado difícil, cara, lenta e frágilDemasiado difícil, cara, lenta e frágil Ilhas de tecnologia no mar da Ilhas de tecnologia no mar da
conectividadeconectividade As soluções estão a evoluir para As soluções estão a evoluir para
constelaçõesconstelações ExemplosExemplos
Dentro das empresasDentro das empresas Entre empresasEntre empresas O indivíduo e diferentes tecnologiasO indivíduo e diferentes tecnologias
![Page 7: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/7.jpg)
7
Web ServicesWeb Services ConceptualmenteConceptualmente““Pequenos componentes de Pequenos componentes de
funcionalidade funcionalidade disponibilizadas para poderem disponibilizadas para poderem ser consumidos como serviços ser consumidos como serviços através de uma rede”através de uma rede”
TecnicamenteTecnicamente““Conjunto de operações Conjunto de operações
acessíveis através deacessíveis através de mensagensmensagens “ “standard” sobre standard” sobre uma redeuma rede
![Page 8: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/8.jpg)
8
DemoDemo
![Page 9: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/9.jpg)
9
Novos dispositivosNovos dispositivos Uma plataforma de Uma plataforma de
desenvolvimento tem de desenvolvimento tem de integrar os novos dispositivos integrar os novos dispositivos de forma transparente; de forma transparente;
ConectividadeConectividade Baixo custo, a Internet a Baixo custo, a Internet a
universalizar-seuniversalizar-se Wireless, acesso a banda largaWireless, acesso a banda larga Proliferação de equipamentosProliferação de equipamentos Equipamentos ligados à Internet Equipamentos ligados à Internet
- PDAs, Telefones celulares etc.- PDAs, Telefones celulares etc.
Standards para a Internet Standards para a Internet Integração assente em XMLIntegração assente em XML
![Page 10: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/10.jpg)
10
DemoDemoVídeo Web ServicesVídeo Web Services
![Page 11: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/11.jpg)
11
AgendaAgenda
Web Services e Smart DevicesWeb Services e Smart DevicesA plataforma .NETA plataforma .NETA segurança na .NETA segurança na .NETSumárioSumário
![Page 12: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/12.jpg)
12
O que é o .NET?O que é o .NET? Uma plataforma de desenvolvimento: Uma plataforma de desenvolvimento:
interfaces, componentes e ferramentas para interfaces, componentes e ferramentas para desenvolver software.desenvolver software.
A maior alteração dentro da Microsoft desde A maior alteração dentro da Microsoft desde que o Windows substituíu o DOSque 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 remotingModelo de objectos, metadados, protocolos remoting Bibliotecas de classes,Bibliotecas de classes, ……
![Page 13: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/13.jpg)
13
A plataforma .NETA plataforma .NET
![Page 14: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/14.jpg)
18
O software tem de permitir:O software tem de permitir:
O Software será a base dos O Software será a base dos novos modelos de negócionovos modelos de negócio
Experiências de utilização de software Experiências de utilização de software consistentes entre os diversos consistentes entre os diversos dispositivos;dispositivos;
Produção de software como um Produção de software como um serviço;serviço;
Modelo de programação consistente.Modelo de programação consistente.
![Page 15: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/15.jpg)
19
A .NET Framework é o modelo de A .NET Framework é o modelo de programação que serve de base programação que serve de base para a visão .NETpara a visão .NET
.NET: Princípios.NET: Princípios Visão Microsoft para a computaçãoVisão Microsoft para a computação
Tornar a computação distribuida na Internet Tornar a computação distribuida na Internet comumcomum
Explorar o poder de processamento e largura de Explorar o poder de processamento e largura de banda cada vez mais baratosbanda cada vez mais baratos
Integração natural entre múltiplas aplicações e Integração natural entre múltiplas aplicações e dispositivosdispositivos
Disponibilizar software como um serviçoDisponibilizar software como um serviço Experiência de utilização nova e mais ricaExperiência de utilização nova e mais rica
![Page 16: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/16.jpg)
20
Objectivos no desenho Objectivos no desenho da .NET Frameworkda .NET Framework
Simplificar o desenvolvimento de Simplificar o desenvolvimento de aplicaçõesaplicações
Fornecer um ambiente de execução Fornecer um ambiente de execução seguro e robustoseguro e robusto
Suporte para múltiplas linguagens Suporte para múltiplas linguagens de programaçãode programação
Simplificar a distribuição e Simplificar a distribuição e manutenção de aplicaçõesmanutenção de aplicações
![Page 17: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/17.jpg)
21
Common Language RuntimeCommon Language Runtime
Base Class LibraryBase Class Library
ADO.NET and XMLADO.NET and XML
ASP.NETASP.NETWeb Forms Web ServicesWeb Forms Web Services
Mobile DevicesMobile Devices
WindowsWindowsFormsForms
Common Language Common Language Runtime (CLR) Runtime (CLR) Suporte múltiplas Suporte múltiplas
linguagenslinguagens Sistema único de tiposSistema único de tipos Deployment simplificadoDeployment simplificado Code Access SecurityCode Access Security
Bibliotecas base ricasBibliotecas base ricas Modelo de programação Modelo de programação
poderoso e consistentepoderoso e consistente Focus no código e Focus no código e
funcionalidadefuncionalidade Integração com as tools de Integração com as tools de
desenvolvimentodesenvolvimento Suporte de funcionalidade Suporte de funcionalidade
design-timedesign-time Suporte para DebuggingSuporte para Debugging
.NET Framework.NET Framework
![Page 18: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/18.jpg)
22
CompiladorCompilador AssemblyAssemblyAssemblyAssembly
Common Language RuntimeCommon Language RuntimeDesenvolvimentoDesenvolvimento
C#C#J#J#VBVB
CobolCobol……
CILCILMetadataMetadata
ResourcesResources
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ódigoCódigo
![Page 19: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/19.jpg)
23
CompiladorCompilador AssemblyAssemblyAssemblyAssembly
DesenvolvimentoDesenvolvimento
C#C#J#J#VBVB
CobolCobol……
CILCILMetadataMetadata
ResourcesResources
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ódigoCódigo
AssemblyAssemblyAssemblyAssembly
DesenvolvimentoDesenvolvimento
ApplicationApplicationDirectoryDirectory
ApplicationApplicationDirectoryDirectory
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
Common Language RuntimeCommon Language RuntimeDistribuiçãoDistribuição
SetupSetupCopyCopy
BrowserBrowser
Download Download CacheCache
Download Download CacheCache
InstallInstall
![Page 20: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/20.jpg)
24Debug EngineDebug Engine
IL to NativeIL to NativeCompilerCompiler
ApplicationApplicationDirectoryDirectory
ApplicationApplicationDirectoryDirectory
SetupSetupCopyCopy
BrowserBrowser
Download Download CacheCache
Download Download CacheCache
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
AssemblyAssemblyon Target on Target MachineMachine
AssemblyAssemblyon Target on Target MachineMachine
Common Language RuntimeCommon Language Runtime
AssemblyAssemblyAssemblyAssembly
DesenvolvimentoDesenvolvimento DistribuiçãoDistribuição
InstallInstall
ExecuçãoExecução
AssemblyAssemblyLoaderLoaderSecuritySecurityClass Class
LoaderLoader
Native .exe Native .exe + GC table + GC table Native .exe Native .exe + GC table + GC table
Code Code ManagerManager
Garbage CollectionGarbage Collection
Exception ManagerException Manager
Thread SupportThread Support
COM InteropCOM Interop
Policy<?xml version="1.0" encoding="utf-8" ?><configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"
![Page 21: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/21.jpg)
25
DemoDemoCommon Language RuntimeCommon Language Runtime
![Page 22: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/22.jpg)
26
.NET Compact Framework.NET Compact Framework
.NET Framework para dispositivos .NET Framework para dispositivos embebidosembebidos
![Page 23: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/23.jpg)
27
As ferramentas de As ferramentas de desenvolvimentodesenvolvimento
Cobol Cobol
RPGRPG
MS-BASIC MS-BASIC Turbo Pascal Turbo Pascal QuickBasicQuickBasic
Visual Basic Visual Basic PowerBuildePowerBuilde
r r DelphiDelphi
GUIGUI
O PCO PC
A WebA Web
O O “sistema“sistema
””
XML Web XML Web ServicesServicesHTML,HTML,
scriptingscripting
![Page 24: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/24.jpg)
28
Como saber mais sobre Como saber mais sobre a .NET Framework?a .NET Framework?
.NET Framework SDK (essencial!).NET Framework SDK (essencial!) CLR, compiladores de linha de comando, CLR, compiladores de linha de comando,
debuggers, class libraries, documentação, …debuggers, class libraries, documentação, … Download grátisDownload grátis Size: ~100 MBSize: ~100 MB
Visual Studio .NET (opcional)Visual Studio .NET (opcional) IDE (Ambiente de Desenvolvimento IDE (Ambiente de Desenvolvimento
Integrado) Integrado) Size: ~1.5 GBSize: ~1.5 GB
![Page 25: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/25.jpg)
29
AgendaAgenda
Web Services e Smart DevicesWeb Services e Smart DevicesA plataforma .NETA plataforma .NETA segurança na .NETA segurança na .NETSumárioSumário
![Page 26: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/26.jpg)
30
SegurançaSegurança
““Code Access” e “Evidence Code Access” e “Evidence Based”Based”
Segurança “Role Based”Segurança “Role Based” Boas práticasBoas práticas
![Page 27: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/27.jpg)
31
RecursosRecursos
Controlo Identidade UtilizadorControlo Identidade Utilizador
Code Access SecurityCode Access SecurityVisão GeralVisão Geral
CódigoCódigo
Controlo Identidade CódigoControlo Identidade Código
![Page 28: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/28.jpg)
32
Code Access SecurityCode Access SecurityVisão GeralVisão Geral
O código também ter identidadeO código também ter identidade De acordo com as provas de identidade De acordo com as provas de identidade
são atribuídas permissõessão atribuídas permissões Só código com “confiança” suficiente Só código com “confiança” suficiente
pode aceder a recursos protegidos do pode aceder a recursos protegidos do sistemasistema O código precisa de ter as permissões O código precisa de ter as permissões
necessárias para aceder aos recursosnecessárias para aceder aos recursos Os recursos validam a sua lógica usando Os recursos validam a sua lógica usando
permissõespermissões
![Page 29: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/29.jpg)
33
Segurança em .NETSegurança em .NETPrincipais conceitosPrincipais conceitos Provas (Evidence) Provas (Evidence)
Dados sobre o código Dados sobre o código site, url, zona, app directory, strong name, site, url, zona, app directory, strong name,
publisher, hashpublisher, hash
Política (Policy)Política (Policy) Determinam o que o código pode fazerDeterminam o que o código pode fazer Concedem permissões às assembliesConcedem permissões às assemblies
Permissões (Permissions)Permissões (Permissions) Autorizações específicasAutorizações específicas Definem o nível de acesso a um recursoDefinem o nível de acesso a um recurso
![Page 30: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/30.jpg)
34
Provas (Evidence) Provas (Evidence)
7 Tipos7 Tipos
Dados sobre o local de onde o código é Dados sobre o local de onde o código é carregado:carregado:
site, url, zona, app directorysite, url, zona, app directory Dados sobre quem escreveu o código: Dados sobre quem escreveu o código:
strong name, publisherstrong name, publisher Dados sobre todo o assembly: Dados sobre todo o assembly:
hashhash
![Page 31: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/31.jpg)
35
CompiladorCompilador AssemblyAssemblyAssemblyAssembly
DesenvolvimentoDesenvolvimento
C#C#J#J#VBVB
CobolCobol……
CILCILMetadataMetadata
ResourcesResources
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ódigoCódigo
AssemblyAssemblyAssemblyAssembly
DesenvolvimentoDesenvolvimento
ApplicationApplicationDirectoryDirectory
ApplicationApplicationDirectoryDirectory
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
Evidence Based SecurityEvidence Based SecurityDistribuiçãoDistribuição
SetupSetupCopyCopy
BrowserBrowser
Download Download CacheCache
Download Download CacheCache
InstallInstall
![Page 32: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/32.jpg)
36Debug EngineDebug Engine
CompiladorCompiladorIL para NativoIL para Nativo
DirectoriaDirectoriaaplicaçãoaplicaçãoDirectoriaDirectoriaaplicaçãoaplicação
SetupSetupCopyCopy
BrowserBrowser
Download Download CacheCache
Download Download CacheCache
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
AssemblyAssemblyna máquina na máquina
destinodestino
AssemblyAssemblyna máquina na máquina
destinodestino
Evidence Based SecurityEvidence Based Security
AssemblyAssemblyAssemblyAssembly
DesenvolvimentoDesenvolvimento DistribuiçãoDistribuição
InstallInstall
ExecuçãoExecução
AssemblyAssemblyLoaderLoaderSecuritySecurityClass Class
LoaderLoader
Native .exe Native .exe + GC table + GC table Native .exe Native .exe + GC table + GC table
Code Code ManagerManager
Garbage CollectionGarbage Collection
Exception ManagerException Manager
Thread SupportThread Support
COM InteropCOM Interop
Policy<?xml version="1.0" encoding="utf-8" ?><configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"
Provas<?xml version="1.0" encoding="utf-8" ?><configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"
![Page 33: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/33.jpg)
37
As permissões são o resultado da intersecçãoAs permissões são o resultado da intersecção Todas as policies concordam antes de conceder um Todas as policies concordam antes de conceder um
privilégioprivilégio
useruser
appd
omai
n
appd
omai
n
machine
machine
ente
rpri
se
ente
rpri
seSó a Só a
intersecção intersecção é que é é que é
concedidaconcedida
Evidence Based SecurityEvidence Based SecurityPermissões concedidasPermissões concedidas
![Page 34: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/34.jpg)
38
Atribuição de PermissõesAtribuição de Permissões
![Page 35: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/35.jpg)
39
Evidence Based SecurityEvidence Based SecurityCode Groups (determinam a policy)Code Groups (determinam a policy)
Um Code Group tem 2 atributosUm Code Group tem 2 atributos Condição “Membership”Condição “Membership” Um PermissionSet associadoUm PermissionSet associado
![Page 36: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/36.jpg)
40
Code GroupsCode Groups
A Hierarchy
As provas da Assembly são comparadasAs provas da Assembly são comparadas com cada condição do Code Groupcom cada condição do Code Group
Se a condição se verificar, o Se a condição se verificar, o PermissionSet é adicionado à lista PermissionSet é adicionado à lista actual, e são verificados outros actual, e são verificados outros Code Code Groups abaixo deste nó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 desteCodeGroups abaixo deste
![Page 37: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/37.jpg)
41
Built-in Code Groups Built-in Code Groups
![Page 38: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/38.jpg)
42
Code Access SecurityCode Access SecurityPermissõesPermissões
Permissões são definidas para controlar o Permissões são definidas para controlar o acesso granular aos recursos do sistemaacesso granular aos recursos do sistema Tipicamente, os construtores das permissões Tipicamente, os construtores das permissões
definem o nível de permissãodefinem o nível de permissão
Podem ser imperativas ou declarativasPodem ser imperativas ou declarativasFileIOPermission fp = new FileIOPermission(
FileIOPermissionAccess.AllAccess,@”C:\myapp” );
[ FileIOPermission(SecurityAction.Demand, Write=@”C:\temp”) ]
![Page 39: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/39.jpg)
43
Code Access SecurityCode Access SecurityPermissõesPermissões FileIOFileIO FileDialogFileDialog IsolatedStorage IsolatedStorage EnvironmentEnvironment RegistryRegistry UI UI PrintingPrinting Reflection Reflection SecuritySecurity
SocketSocket WebWeb DNSDNS OleDbOleDb SQLClientSQLClient MessageQueueMessageQueue EventLogEventLog DirectoryServicesDirectoryServices … … extensível extensível
Execution, Assertion, Skip Verification, Execution, Assertion, Skip Verification, Unmanaged code, Control evidence, Control Unmanaged code, Control evidence, Control policy, Control principal, Control threadspolicy, Control principal, Control threads
![Page 40: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/40.jpg)
44
ChamaChama
.NET FRAMEWORK.NET FRAMEWORKpublic FileStream (string name) {public FileStream (string name) { FileIOPermission fp = new FileIOPermission(name)FileIOPermission fp = new FileIOPermission(name) fp.Demand()fp.Demand() . . . .. . . .}}
Code Access SecurityCode Access SecurityPermissõesPermissões
MYCOMPONENT (LOCALMACHINE)MYCOMPONENT (LOCALMACHINE). . . .. . . .Stream fileStream = FileStream.Open(“cod_mb.xml”);Stream fileStream = FileStream.Open(“cod_mb.xml”);. . . .. . . .
Tem permissão?Tem permissão?
As permissões são garantidas pelo As permissões são garantidas pelo Security Manager do Common Security Manager do Common Language RuntimeLanguage Runtime
![Page 41: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/41.jpg)
45
Code Access Security Code Access Security Excepções de segurançaExcepções de segurança
Sempre que o código tentar efectuar Sempre que o código tentar efectuar alguma operação para a qual não alguma operação para a qual não tenha privilégios é gerada uma tenha privilégios é gerada uma excepção do tipo SecurityExceptionexcepção do tipo SecurityException
ChamaChama
.NET FRAMEWORK.NET FRAMEWORKpublic FileStream (string name) {public FileStream (string name) { FileIOPermission fp = new FileIOPermission(name)FileIOPermission fp = new FileIOPermission(name) fp.Demand()fp.Demand() . . . .. . . .}}
MYCOMPONENT (LOCALMACHINE)MYCOMPONENT (LOCALMACHINE). . . .. . . .Stream fileStream = FileStream.Open(“cod_mb.xml”);Stream fileStream = FileStream.Open(“cod_mb.xml”);. . . .. . . .
Tem permissão?Tem permissão?
ExcepçãoExcepção
![Page 42: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/42.jpg)
46
Code Access Security – stack walkCode Access Security – stack walk
NOTMYAPP (outra app)NOTMYAPP (outra app). . . .. . . .myComponent.ReadSetting(key);myComponent.ReadSetting(key);. . .. . .
MYCOMPONENT (com privilégios)MYCOMPONENT (com privilégios). . . .. . . .Stream fileStream = FileStream.Open(“cod_mb.xml”);Stream fileStream = FileStream.Open(“cod_mb.xml”);. . . .. . . .
ChamaChama
Tem permissão?Tem permissão?
Tem permissão?Tem permissão?
ExcepçãoExcepção
ChamaChama
FRAMEWORKFRAMEWORKpublic FileStream (string name) {public FileStream (string name) { FileIOPermission fp = new FileIOPermission(name)FileIOPermission fp = new FileIOPermission(name) fp.Demand()fp.Demand() . . . .. . . .}}
![Page 43: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/43.jpg)
47
Os administradores podem ajustar as Os administradores podem ajustar as políticas actuais, assim como criar políticas actuais, assim como criar novas utilizando novos code groupsnovas utilizando novos code groups .NET Framework Configuration Tool .NET Framework Configuration Tool
(MMC)(MMC) Caspol.exe (linha de comando)Caspol.exe (linha de comando)
As políticas podem ser definidas ao As políticas podem ser definidas ao nível da aplicação, utilizador, máquina nível da aplicação, utilizador, máquina e empresa.e empresa.
Evidence Based SecurityEvidence Based SecurityAlterar as políticas defaultAlterar as políticas default
![Page 44: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/44.jpg)
48
SegurançaSegurança
““Code Access” e “Evidence Based”Code Access” e “Evidence Based”
Segurança “Role Based”Segurança “Role Based” Boas práticasBoas práticas
![Page 45: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/45.jpg)
49
Role-Based Security Role-Based Security Principais conceitosPrincipais conceitos Centrada na identidade do utilizador e Centrada na identidade do utilizador e
funções (“roles”)funções (“roles”) Fornece um modelo de programação Fornece um modelo de programação
unificado para todos os tipos de unificado para todos os tipos de autenticaçãoautenticação Basic, Digest, Kerberos, Microsoft Basic, Digest, Kerberos, Microsoft
Passport, Forms/Custom, Certificados Passport, Forms/Custom, Certificados ClienteCliente
![Page 46: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/46.jpg)
50
Role-Based Security Role-Based Security IdentidadeIdentidade IIdentity – interface que define a IIdentity – interface que define a
identidade. Esta interface é genérica, e identidade. Esta interface é genérica, e pode ser utilizada / extendidapode ser utilizada / extendida
A autenticação é responsabilidade de A autenticação é responsabilidade de quem implementa esta interfacequem implementa esta interface
Implementações existentes na .NET Implementações existentes na .NET FrameworkFramework GenericIdentity – implementação genéricaGenericIdentity – implementação genérica WindowsIdentity – implementação que WindowsIdentity – implementação que
integra com a segurança do Windowsintegra com a segurança do Windows
![Page 47: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/47.jpg)
51
Role-Based Security Role-Based Security Funções (Roles)Funções (Roles) IPrincipal – interface que associa IPrincipal – interface que associa
funções (“roles”) à identidade. Esta funções (“roles”) à identidade. Esta interface é genérica, e pode ser interface é genérica, e pode ser utilizada / extendidautilizada / extendida
Implementações existentes na .NET Implementações existentes na .NET FrameworkFramework GenericPrincipal – implementação GenericPrincipal – implementação
genéricagenérica WindowsPrincipal – implementação que WindowsPrincipal – implementação que
integra com a segurança do Windowsintegra com a segurança do Windows
![Page 48: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/48.jpg)
52
SegurançaSegurança
““Code Access” e “Evidence Based”Code Access” e “Evidence Based” Segurança “Role Based”Segurança “Role Based”
Boas práticasBoas práticas
![Page 49: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/49.jpg)
53
Boas PrácticasBoas PrácticasSegurança na .NET FrameworkSegurança na .NET Framework
Não ignorar a Não ignorar a segurança!!!!segurança!!!! Não correr tudo como Administrator / Não correr tudo como Administrator /
FullTrust “porque senão não funciona”!!!FullTrust “porque senão não funciona”!!! Provavelmente existe uma razão de Provavelmente existe uma razão de
segurança para esse comportamento !!!segurança para esse comportamento !!!
Pensar na segurança desde o inícioPensar na segurança desde o início
![Page 50: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/50.jpg)
54
AgendaAgenda
Web Services e Smart DevicesWeb Services e Smart DevicesA plataforma .NETA plataforma .NETSegurança na .NETSegurança na .NETSumárioSumário
![Page 51: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/51.jpg)
55
.NET em suma.NET em suma A plataforma de desenvolvimento de A plataforma de desenvolvimento de
software da Microsoft para a próxima software da Microsoft para a próxima décadadécada
Baseada em standards, para múltiplas Baseada em standards, para múltiplas linguagens e múlplipos dispositivoslinguagens e múlplipos dispositivos
Baseada na ideia dos Web ServicesBaseada na ideia dos Web Services
![Page 52: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/52.jpg)
56
Segurança .NET em sumaSegurança .NET em suma
O código também tem identidadeO código também tem identidade Os níveis de acesso do código são Os níveis de acesso do código são
concedidos mediante provasconcedidos mediante provas As políticas determinam que privilégios As políticas determinam que privilégios
atribuir de acordo com as provas atribuir de acordo com as provas apresentadasapresentadas
Particularmente útil para código móvelParticularmente útil para código móvel Existem mecanismos para implementar Existem mecanismos para implementar
segurança de acordo com a “função” segurança de acordo com a “função” do utilizador.do utilizador.
Nós só vimos a ponta do iceberg ! Nós só vimos a ponta do iceberg !
![Page 53: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/53.jpg)
57
Para mais informação…Para mais informação… Site MSDN PortugalSite MSDN Portugal
http://http://www.microsoft.comwww.microsoft.com//portugalportugal//msdnmsdn
Site MSDN InternacionalSite MSDN Internacional http://msdn.microsoft.com/http://msdn.microsoft.com/ http://msdn.microsoft.com/net/http://msdn.microsoft.com/net/
NewsgroupsNewsgroups newsnews://://msnews.microsoft.commsnews.microsoft.com//
microsoft.public.pt.dotnetmicrosoft.public.pt.dotnet
.NET Security.NET Security http://http://msdn.microsoft.commsdn.microsoft.com//netnet//securitysecurity
LivroLivro .NET Framework Security, ISBN:0-672-32184-x.NET Framework Security, ISBN:0-672-32184-x
![Page 54: 1 Segurança na.NET Framework Vitor Santos.NET Group Microsoft Corporation](https://reader038.vdocuments.net/reader038/viewer/2022103016/552fc0fa497959413d8b8ee5/html5/thumbnails/54.jpg)
58
Tomar café !!! Tomar café !!!