RAMON CEMIN IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO

Tamanho: px
Começar a partir da página:

Download "RAMON CEMIN IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO"

Transcrição

1 RAMON CEMIN IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO Joinville, Dezembro/2006

2 2 ii UNIVERSIDADE DO ESTADO DE SANTA CATARINA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO RAMON CEMIN IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO Trabalho de conclusão de curso submetido à Universidade Estadual de Santa Catarina como parte dos requisitos para a obtenção do grau de Bacharel em Ciência da Computação Orientador: Julio da Silva Dias Joinville, Dezembro/2006

3 iii IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO RAMON CEMIN Este Trabalho de Conclusão de Curso foi julgado adequado para a obtenção do título de Bacharel em Ciência da Computação Área de Concentração em Sistemas de Conhecimento e aprovada em sua forma final pelo Curso de Ciência da Computação Integral do CCT/UDESC. Banca Examinadora: Roberto Silvio Ubertino Rosso Jr., Phd. Coordenador da disciplina de TCC-II Julio da Silva Dias, Doutor Professor Orientador Charles Christian Miers, MSc. Ricardo Ferreira Martins, Doutor. Omir Alves Jr., MSc.

4 iv 4 À minha mãe Maria Anna Santana Cemin e meus irmãos pelo incentivo e apoio. E à minha noiva Aline, por acreditar em mim e estar sempre ao meu lado.

5 5 v Obrigada a todos que de alguma forma colaboraram na realização deste trabalho. Em especial, ao Professor Julio pela orientação fornecida.

6 vi 6 RESUMO Para que seja possível executar qualquer código seguramente, devem ser fornecidas provas sobre o seu comportamento, por isso mecanismos que auxiliem o usuário a controlar o software ajudarão a resolver vários problemas gerados por códigos maliciosos, principalmente com relação a segurança do host que executa algum tipo de código móvel. O model carrying code, que será estudado neste trabalho é uma técnica para a execução segura de código através de software que utiliza modelos para validar o comportamento dos programas. Esta técnica permite que as aplicações sejam executadas seguramente, ainda que se utilize uma plataforma insegura. Para o entendimento da técnica, neste trabalho serão apresentados os principais conceitos de sistemas distribuídos, segurança e de execução segura de código sendo realizada a implementação do Model carrying code para averiguar a sua eficácia mesmo utilizando outra abordagem para produção dos modelos e políticas. Palavras-chave: execução segura de código, Model carrying code, redes de Petri

7 vii 7 ABSTRACT For safe execution of any certain code, proofs should be supplied about its behavior. Mechanisms that aid the user to control the software will help to solve several problems generated by malicious codes, and will improve the safety of the host mainly regarding the mobile codes. Model carrying code, which will be studied in this work, is a technique for safe code execution through software, using models to validate the programs behavior. This technique allows software to be executed safely even in insecure platforms. For the understanding of this technique, the main concepts of Distributed Systems, Security and Secure Code Execution will be presented. After, Model carrying code was implemented to check its effectiveness using other approach to build the program s models. Keywords: secure code execution, model carrying code, Petri nets.

8 8 viii LISTA DE FIGURAS Figura 1 - Subdivisão por barramento e comutação (TANENBAUM, 2002)...20 Figura 2 - Modelo das Camadas de Hardware e Software em um Sistema Distribuído...25 Figura 3 - Tipos de ameaças à segurança de computadores (STALLINGS, 2002) Figura 4 - Os três aspectos da segurança computacional Figura 5 - Esquema básico da estrutura do PCC (RAMDOSS, 2000)...48 Figura 6 - Esquema básico do Sandbox (GONG, 1997) Figura 7 - Estrutura do MCC (SEKAR, 2003)...54 Figura 8 - Exemplo de EFSA para uma política de controle de acesso a arquivos (SEKAR, 2003). 60 Figura 9 - Exemplo de rede de Petri com 5 lugares e 3 transições...61 Figura 10 - Framework MCC simplificada...62 Figura 11 - Configuração do ambiente...66 Figura 12 - Validação aplicação alvo...67 Figura 13 - Diagrama de pacotes do protótipo...68 Figura 14 - Diagrama de classes do pacote System Vocabulary...70 Figura 15 - Diagrama de classes para os componentes de uma rede de Petri...71 Figura 16 - Diagrama de classes do pacote Exception...72 Figura 17 - Diagrama de classes do pacote Builder...73 Figura 18 - Diagrama de classes para o pacote Parser...74 Figura 19 - Diagrama de objetos representando o protótipo num determinado período do tempo 75 Figura 20 - Diagrama de seqüência para execução da rede...76 Figura 21 - Diagrama de seqüência representando o método check(mark mark) da classe Mcc(visão de uso)...77 Figura 22 - Diagrama de seqüência para o método check(mark mark) da classe Mcc(visão de implementação)...78 Figura 23 - Diagrama colaboração para a simulação do MCC...79 Figura 24 - Diagrama de estados representando o comportamento padrão das principais classes do protótipo...80 Figura 25 - Diagrama de componentes descrevendo a arquitetura de fontes da aplicação alvo 81 Figura 26 - Rede que descreve uma ordem de produção...83

9 ix 9 LISTA DE TABELAS Tabela 1 - Vantagens de sistemas distribuídos sobre sistemas centralizados (TANENBAUM, 2002)...21 Tabela 2 - Descrição dos nós da rede...83

10 x 10 LISTA DE ABREVIATURAS SIGLA AES CBC CRC DAC DRM GPL HLL HTML IPC ISO MAC MCC MIMD OS OSI PCC PC PDA RMI ROM RSA SCC SCP TAL TCPA Descrição Advanced Encryption Standard Cipher Block Chainin Cyclic Redundance Check Discretionary Access Control Digital Rights Management GNU Public License High Level Language Hyper Text Markup Language Inter-Process Comunication International Standard Organization Mandatory Access Control Model carrying code Multiple Instruction Multiple Data Operational System Open System Interconnect Proof Carrying Code Program Counter Personal Digital Assistant Remote Method Invocation Read-Only Memory Rivest Shamir Adleman Secure Cryptographic Co-processor Secure Cryptographic co-processor Type Assembly Language Trusted Computing Platform Alliance

11 11 SUMÁRIO RESUMO...6 ABSTRACT...7 LISTA DE FIGURAS...8 LISTA DE TABELAS...9 LISTA DE ABREVIATURAS...10 SUMÁRIO INTRODUÇÃO Objetivos Objetivo Geral Objetivos Específicos Estrutura do Trabalho SISTEMAS DISTRIBUÍDOS E SEGURANÇA Caracterização de Sistemas Distribuídos Desafios e Benefícios Modelos de Sistema Modelo Arquitetural Modelo Fundamental Questões de Segurança em Sistemas Distribuídos Código Móvel EXECUÇÃO SEGURA DE CÓDIGO EM SISTEMAS DISTRIBUÍDOS Definição de Execução Segura de Código Plataformas Computacionais Confiáveis TCPA Tipos e Técnicas de Execução Segura de Código Proof Carrying Code Typed Assembly Language (TAL) Model-Carrying Code (MCC) SandBox ESTUDO DO MODEL CARRYING CODE Descrição do método Políticas de segurança Extração de modelos Análise Estática Monitoramento da Execução Verificação Execução PROTÓTIPO Metodologias utilizadas Objetivos Projeto Definição do escopo e requisitos do protótipo Modelagem Estrutural Diagrama de pacotes Diagrama de classes Diagrama de objetos...73

12 5.6. Modelagem comportamental Diagrama de seqüência Diagrama de colaboração Diagrama de estados Modelagem da arquitetura Diagrama de componentes Caso de teste Análise dos resultados CONCLUSÕES REFERÊNCIAS...89 ANEXOS...96 ANEXO A Rede do Caso de Teste...97 ANEXO B Código Fonte do Caso de Teste...98 ANEXO C Plano de TCC

13 13 1. INTRODUÇÃO O desenvolvimento de sistemas distribuídos ainda não se tornou algo trivial, pois ainda existem vários desafios de implementação que não foram totalmente resolvidos. Mesmo existindo diversas dificuldades no desenvolvimento de sistemas distribuídos existem diversas vantagens que o tornam extremamente útil, como: fator econômico, velocidade, distribuição, crescimento incremental, confiança e compartilhamento de recursos (TANENBAUM, 2002). Para a concepção de um sistema distribuído existem diversos modelos arquiteturais (formas de se dispor e coordenar os relacionamentos das partes que compõem um sistema distribuído) que podem ajudar a minimizar as dificuldades citadas anteriormente. Dentre estes, existem os modelos cliente-servidor e o código móvel, que é uma variação do modelo cliente-servidor (COULOURIS, 2001). Qualquer código móvel é definido como um tipo de conteúdo executável que possa ser transmitido através de uma rede (PIESSENS, 1998) e pelas suas qualidades, esta tecnologia tornou-se parte da Internet, através de páginas equipadas com JavaScript, Applets Java ou ActiveX. Apesar das suas diversas aplicações vários autores ((SEKAR, (2003); (COULOURIS, 2001)) acreditam que o risco de danos ao computador que irá executar este tipo de código é muito alto por não existir nenhuma prova do comportamento do programa (código não-confiável), como: se o programa irá realmente respeitar as políticas de segurança do computador que irá executá-lo (SEKAR, 2003). Apesar deste não ser um problema exclusivo das tecnologias móveis, uma atenção maior deve ser dada, pois a maioria dos códigos móveis que são executados não existe a menor garantia de qualquer tipo de segurança, sendo que na maioria dos casos não é possível saber nem quem desenvolveu determinado código. O usuário deveria ter o direito de saber como se comportarão seus programas, isto é, deve haver a execução segura de programas. Existem diversas tecnologias disponíveis para lidar com o problema da execução segura de código não-confiável (SEKAR, 2003), como: Assinatura de Código, Inspeção de Conteúdo, SandBox, Proof-Carrying Code (PCC), Model carrying code (MCC). Na Assinatura de Código onde é possível provar a origem do código, o produtor do código o assina e o consumidor pode verificar a identidade do produtor. Nenhuma prova sobre o comportamento do programa e suas funcionalidades são fornecidas, sendo que o código

14 14 pode ser malicioso e causar efeitos indesejados no computador do usuário. A assinatura de código necessita da cooperação do produtor e do consumidor e não resolve o problema da execução segura, uma vez que a confiança no autor não implica diretamente na confiança na execução do código. Uma forma de garantir seria validar a execução do código que pode ser realizada através de modelos (MCC), validação do compilador (NECULA, 1998) ou então através de mecanismos que garantem a confiabilidade da plataforma computacional, como o TCPA (SAFFORD, 2002) e o NCipher (NSS GROUP, 2001). A Inspeção de Conteúdo lida com a análise estática do código no sistema hospedeiro. Normalmente o código é analisado no formato binário, o que faz com seja extremamente dificultoso analisar o comportamento dos programas antes de executá-los. O SandBox tenta assegurar a execução segura de um código através da restrição de recursos por meio de um ambiente de execução fabricado especialmente para um determinado código (SEKAR, 2003). Proof-Carrying Code é uma estrutura para verificação automatizada das propriedades de um programa através da sua representação em linguagem de máquina ou código fonte, onde o produtor do código deve provar certos aspectos do programa. Esta prova é enviada juntamente com o programa para que o usuário consiga verificar certos aspectos concernentes à segurança, mas não é possível provar o comportamento da aplicação (SEKAR, 2003). Model carrying code se fundamenta na idéia de que o aplicativo deva vir equipado com um modelo correspondendo ao seu comportamento. Este modelo ajuda a preencher o espaço entre políticas de segurança de alto nível e código em baixo nível (SEKAR, 2003). Este trabalho visa o estudo da técnica de execução segura de código Model carrying code (SEKAR, 2003) juntamente com os conceitos de execução segura de código em sistemas distribuídos e maneiras de se implementar o seu modelo conceitual, visto que esta é uma área nova e de pesquisas incipientes, por isso deve ser feito um estudo das possibilidades de implementação dos modelos (NECULA, 1997). O paradigma de execução segura de código, que será estudado, tem como principal objetivo fornecer a execução segura de código em plataformas computacionais não-seguras ambas distribuídas ou standalone (sem tornar a execução uma caixa preta para o usuário) através de modelos. Depois de ser estudada, esta técnica terá seu modelo conceitual implementado com uma abordagem distinta da original sobre uma implementação de um processo de fabricação

15 15 em um cadeia de suprimentos (FISCHER, 2005). Esta abordagem será escolhida com base no problema a ser resolvido Objetivos Objetivo Geral Implementar a técnica de execução segura de código MCC, utilizando uma abordagem diferenciada do autor na construção do modelo conceitual que irá descrever o modelo da aplicação e as políticas de segurança de um host (este trabalho não assume nenhuma premissa de controle de acesso mandatório) Objetivos Específicos 1) Pesquisar os conceitos de Sistemas Distribuídos com enfoque para a segurança. 2) Pesquisar os conceitos para a Execução Segura de Código; 3) Pesquisar os conceitos de Model carrying code (MCC); 4) Estudar as possíveis formas de construção dos modelos conceituais da metodologia que será estudada; 5) Analisar qual forma de construção do modelo conceitual se encaixa melhor no contexto da aplicação alvo; 6) Desenvolvimento de uma implementação para o modelo conceitual escolhido depois da análise; 7) Implementar uma aplicação utilizando o paradigma escolhido depois de ser feita a análise; 8) Avaliar a solução implementada Estrutura do Trabalho Este trabalho está estruturado em cinco capítulos. O primeiro apresentará uma introdução do que será realizado no trabalho e do tema abordado, juntamente com os objetivos deste trabalho.

16 16 O segundo irá caracterizar e descrever os conceitos de sistemas distribuídos e segurança. Este capítulo é necessário para o entendimento da complexidade do desenvolvimento de códigos seguros e que forneçam garantias da sua execução. O terceiro capítulo irá descrever algumas definições e técnicas sobre execução segura de código. Neste capitulo serão apresentadas algumas técnicas para facilitar o entendimento do MCC no próximo capítulo. O quarto será um estudo sobre o método de execução segura Model carrying code (MCC). Neste capítulo será explicado o funcionamento do MCC para facilitar o entendimento do protótipo (próximo capítulo). O quinto descreverá o problema a ser resolvido, as metodologias utilizadas e a descrição da solução. Este capítulo é uma explicação solução apresentada para o desenvolvimento para a nova abordagem do MCC.

17 17 2. SISTEMAS DISTRIBUÍDOS E SEGURANÇA Durante as três últimas décadas, a tecnologia computacional evoluiu de dispositivos centralizados monolíticos executando aplicações estáticas para dispositivos interligados realizando complexos tipos de computação paralela e distribuída (RAMBOSS, 1998). Pode-se dizer que a computação distribuída sofreu um maior avanço tecnológico na década de 80, quando ocorreram grandes avanços em duas tecnologias. O primeiro avanço foi o desenvolvimento de poderosos microprocessadores, a um custo mais baixo e com poder de processamento muito maior que vários mainframes; o segundo foi o desenvolvimento de redes de alta velocidade que permitiu que milhares de máquinas trocassem informações rapidamente, facilitando aglutinar várias máquinas em uma rede para estas trocarem informações para realizar algum tipo de processamento (TANENBAUM, 2002). Com advento de sistemas distribuídos foi possível conseguir feitos que seriam impraticáveis com sistemas centralizados ou mainframes, como o compartilhamento de recursos (COULOURIS, 2001). Apesar do progresso, a abordagem no desenvolvimento do software distribuído tornou-se totalmente diferente em relação aos sistemas centralizados (TANENBAUM, 2002) trazendo vários novos desafios, como: heterogeneidade dos componentes, abertura, escalabilidade, tratamento de falhas, concorrência, transparência e segurança (que será o objeto de estudo deste trabalho) (COULOURIS, 2001). Sobre segurança ainda existem várias questões que ainda não foram resolvidas, como a segurança em códigos móveis (COULOURIS, 2001). Código móvel é definido como qualquer conteúdo executável que possa ser transmitido por uma rede (PIESSENS, 2003), mas como garantir que este software não estará burlando as políticas de segurança da máquina que o executa, ou até mesmo garantir que estes tipos de softwares gerem os resultados esperados? Este capítulo irá apresentar a fundamentação teórica sobre sistemas distribuídos e as suas questões de segurança, onde seus principais conceitos serão estudados, incluindo: caracterização de sistemas distribuídos e as dificuldades em se desenvolver sistemas distribuídos devido a questões da falta de segurança.

18 Caracterização de Sistemas Distribuídos Segundo (COULOURIS, 2001), um sistema distribuído pode ser definido como um conjunto de computadores que coordenam suas ações e se comunicam apenas por troca de mensagens. Através desta definição podem-se enumerar três características inerentes a qualquer sistema distribuído: concorrência dos componentes, inexistência de relógio global e independência de falhas dos componentes (COULOURIS, 2001): Concorrência: Define-se concorrência como a capacidade de usuários e/ou máquinas em uma rede conseguirem realizar seu trabalho utilizando recursos compartilhados com justiça. Por exemplo, em uma empresa grande poderia existir apenas uma impressora controlada por um único servidor de impressão e mesmo assim este deveria conseguir atender a todos os funcionários com um máximo de justiça, isto é, todos deveriam ser atendidos mesmo com um grande número de usuários; Inexistência de Relógio Global: É conseqüência direta da definição de que só existe comunicação através da troca de mensagens. Mais precisamente se refere a impossibilidade de sincronizar com precisão o clock do processador das máquinas em uma rede; Independência em caso de falhas: É uma questão de responsabilidade dos projetistas. Define-se como a capacidade de um sistema distribuído continuar realizando o seu trabalho mesmo que ocorra qualquer tipo de falha em suas máquinas. Estas falhas podem ser de qualquer tipo: hardware, software ou até mesmo rede. De acordo com a taxonomia de Flynn, que é uma classificação para sistemas concorrentes (FLYNN, 1972), todos os sistemas distribuídos são do tipo MIMD (Multiple Instruction Multiple Data Stream Várias Instruções (processadores) e Vários Fluxos de Dados). A classificação MIMD é descrita como: um grupo de computadores independentes, cada um com o seu registrador para contagem de instruções (PC Program Counter), processo e dados. Tanebaum (2002) ainda subdividiu a classe MIMD em: multicomputadores e multiprocessadores. A principal diferença entre multicomputadores e multiprocessadores é o

19 19 compartilhamento de memória. Sendo que com relação aos multiprocessadores, caso qualquer processador modifique, por exemplo, o endereço x com y, qualquer outro quando acessar em seguida o endereço x, obterá y. No caso dos multicomputadores, o acesso à memória é totalmente diferente. Caso um processador modifique um endereço x da sua memória com y, esta mudança só terá efeito em seu próprio espaço de endereçamento. Tanebaum (2002) dividiu estas duas classificações em mais duas cada uma. A Figura 1 as classifica como sendo por: barramento e comutação. Por barramento significa que existe apenas um único meio pelo qual são feita às trocas de mensagens. Ex: rede par-trançado, cabo. Por comutação todas as máquinas estão interligadas, isto é, todas as máquinas têm uma ligação entre si, e não apenas um único meio compartilhado. Ex: Hypercube (hipercubo), Mesh (malha). O autor ainda cita que esta subclassificação poderia ser enumerada de um jeito um pouco menos usual, que seria: sistemas fracamente acoplados e sistemas fortemente acoplados. Usualmente a denominação de sistemas fortemente acoplados tende para ser usada para sistemas paralelos, isto é, apenas um problema sendo resolvido pelas máquinas; sistemas fracamente acoplados são normalmente utilizados para denominar sistemas distribuídos, onde vários problemas com ou sem relação, são resolvidos ao mesmo tempo, mas neste caso podem existir exceções, como em um projeto onde vários computadores espalhados pelo mundo com o objetivo de fatorar um número de 100 dígitos sendo que cada um tem a sua quantidade de divisores (TANENBAUM, 2002). Sistemas distribuídos possuem várias classificações, gerando uma grande gama de tipos e aplicações com diferentes requisitos e dificuldades, por isso é necessário explicar os seus benefícios para que fique clara a sua importância Desafios e Benefícios Historicamente pode ser dito que a computação distribuída sofreu um maior avanço tecnológico na década de 80, quando ocorreram grandes avanços em duas tecnologias. O primeiro foi o desenvolvimento de poderosos microprocessadores, a um custo mais baixo e com poder de processamento muito maior que vários mainframes e o segundo progresso foi o desenvolvimento de redes de alta velocidade que permitiu que milhares de máquinas pudessem trocar informações rapidamente, facilitando aglutinar várias máquinas em uma rede e estas trocarem informações para realizar algum tipo de processamento (TANENBAUM, 2002).

20 20 Existem diversas vantagens de sistemas distribuídos sobre sistemas centralizados ou mainframes, como: o fator econômico, a velocidade, a distribuição inerente, o crescimento incremental e a confiança, conforme a tabela 1. O fator econômico pode ser explicado pelo fato de que microprocessadores oferecem preços muito mais baixos que mainframes. Já a velocidade está relacionada com o fato de que sistemas distribuídos podem ter um poderio computacional muito maior que um mainframe. Um exemplo que pode ser utilizado para comprovar esta afirmação é a possibilidade de se construir um sistema com tantas CPU s e cada um com um poder computacional tal, que no final seria impraticável fazer uma única CPU que conseguisse o mesmo poder de processamento. Outra vantagem é o poder de distribuição que pode ser obtido com um sistema distribuído, já que é possível distribuir a aplicação geograficamente em várias máquinas. Além disso, existe ainda o crescimento incremental, que é a capacidade de se adicionar poder computacional aos poucos ao sistema, e que conseqüentemente irá aumentar o nível de confiabilidade de um sistema distribuído, já que se caso uma máquina falhe outra pode substituí-la sem maiores problemas. Agora, com relação a computadores pessoais a principal vantagem é a possibilidade de compartilhar recursos com extrema facilidade, pois seria impraticável replicar uma mesma base de dados em todos os computadores, até mesmo em uma rede pequena (TANENBAUM, 2002) (COULOURIS, 2001). MIMD Fracamente Acoplados Computadores Paralelos e Distribuídos Fortemente Acoplados Multiprocessadores Multicomputadores Barramento Comutado Barramento Comutado Figura 1 - Subdivisão por barramento e comutação (TANENBAUM, 2002).

21 21 Apesar das vantagens apresentadas, o desenvolvimento de sistemas distribuídos ainda não se tornou algo trivial. Coulouris (2001) enumera e descreve vários desafios a serem tratados no projeto e implementação de sistemas distribuídos sendo que estes desafios serão descritos com maiores detalhes a seguir: Heterogeneidade: significa que o sistema tem que ser capaz de ser executado em uma grande variedade de plataformas de hardware e software. Resumidamente significa que este terá de ser capaz de rodar em uma grande variedade de: redes, hardware de computador, sistemas operacionais e linguagens de programação. A alternativa mais utilizada para tratar a heterogeneidade é o uso de middleware, que é uma camada de software que fornece abstrações de programação e também outros itens, como: rede, hardware, sistemas operacionais e linguagens de programação. Tabela 1 - Vantagens de sistemas distribuídos sobre sistemas centralizados (TANENBAUM, 2002). Economia Microprocessadores são mais baratos que mainframes Velocidade Um sistema distribuído pode ter um desempenho muito maior que um mainframe Distribuição Algumas aplicações exigem que máquinas estejam geograficamente separadas Confiança Caso alguma máquina falhe o sistema (como um todo) continua as suas tarefa Crescimento Incremental Poder computacional pode ser adicionado aos poucos Abertura está voltada para o grau de facilidade de se adicionar novos itens ao sistema, tanto hardware como software. O uso de padrões, como CORBA fazem o sistema bastante flexível e adaptável. Escalabilidade trata da capacidade do sistema ficar estável quando o número de máquinas (nós) variar. Um sistema é escalável quando: o O número de nós varia sem afetar a estabilidade do sistema;

22 22 o O número de nós pode variar sem prejudicar o desempenho do sistema. Este item está condicionado a determinação de limiares; o Nós podem ser adicionados ou removidos sem muita necessidade de intervenção humana. Manipulação ou Tratamento de Falhas se refere à capacidade do sistema conseguir enfrentar possíveis erros gerados pelos nós e ainda permanecer estável. A manipulação de falhas ainda tem que tratar de itens como: o congestionamento da rede, o controle de latência da rede ou da conectividade entre os nós. Concorrência de recursos lida com o compartilhamento dos recursos em um sistema, sendo que este deve ser feito com justiça entre os nós. É desejado o máximo de throughput, sendo que quando for possível deve-se optar por acessos concorrentes ao recurso. Transparência de um sistema distribuído é a capacidade deste ser percebido como um todo, e não como uma coleção de nós independentes. O manual de referência da ANSA (ANSA, 1989) define oito tipos de transparência: o Transparência de Acesso: significa que a informação pode ser acessada localmente ou remotamente usando as mesmas operações; o Transparência de Localização: significa que a informação pode estar em qualquer lugar. Um usuário deve acessar as informações locais ou remotas com a mesma facilidade sem ter noção de onde realmente estas vêm; o Transparência de Migração: significa que recursos podem ser movidos dentro de um sistema distribuído sem ocorrerem perdas, isto é, caso um arquivo necessite ser movido devem ser mudadas todas as referências a este arquivo; o Transparência de Replicação: significa que deve ser possível replicar informações sem mudar os parâmetros do sistema, isto é, se existem informações replicadas que serão modificadas, então todas devem ser atualizadas com o mesmo conteúdo;

23 23 o Transparência de Concorrência: significa que vários processos devem usar os mesmos recursos sem afetar os parâmetros de funcionamento do sistema; o Transparência de Escalabilidade: significa que um sistema distribuído deve ser escalável, isto é, os nós ou recursos podem mudar sem afetar o funcionamento do sistema; o Transparência de Performance: significa que o sistema deve funcionar da mesma forma, mesmo estando sobre alta carga ou baixa carga de processamento ou acessos aos recursos; o Transparência de Falha: significa que componentes do sistema podem falhar sem afetar o sistema. Normalmente são adotadas medidas de redundância de recursos. Segurança é um dos itens mais discutidos pelos pesquisadores da área da computação. Segundo vários autores ((SCHNEIER, 2000), (STALLINGS, 2002)) ainda não é possível ter um sistema 100% seguro. Na seção 2.4 serão discutidos itens referentes à segurança em sistemas distribuídos. Sistemas distribuídos possuem inúmeros desafios, decorrentes das suas inúmeras aplicações e também vários métodos para desenvolvê-los. Uma descrição dos métodos para o desenvolvimento será fornecida a seguir Modelos de Sistema Esta seção introduz a base de como elementos de sistemas distribuídos tanto de hardware como de software são distribuídos em uma rede (modelo arquitetural) e as principais características inerentes a qualquer modelo arquitetural (modelo fundamental). Primeiramente serão descritos os modelos arquiteturais de sistemas distribuídos e posteriormente serão descritos os modelos fundamentais, que são definidos com base nos modelos arquiteturais existentes Modelo Arquitetural O modelo arquitetural de um sistema distribuído se preocupa com a disposição das partes que o compõem e como estas se relacionarão, tanto de hardware quanto de software. O objetivo é assegurar que esta estrutura consiga satisfazer tanto os requisitos atuais e futuros do sistema. Um modelo arquitetural de um sistema distribuído primeiramente simplifica e abstrai

24 24 funções de componentes individuais para depois se preocupar como estas serão interconectadas, e então definir como ocorrerão as relações entre os componentes do sistema (COULOURIS, 2001). Inicialmente para facilitar o desenvolvimento de um sistema distribuído devem ser classificados os processos que farão parte do sistema em processo cliente, processo servidor e processo peer (neste tipo de processo não é definido quem é o servidor ou o cliente, todos tem o mesmo papel). Esta classificação facilita o desenvolvimento por permitir que sejam identificadas as responsabilidades de cada processo e assim definir qual será a quantidade de trabalho de cada item do sistema (ex: processador e armazenamento), determinando o impacto em caso falha de cada um dos processos. Normalmente, a forma como os processos estarão dispostos é influenciada por fatores como: performance, confiança, segurança e custos gerando vários tipos de modelos arquiteturais (COULOURIS, 2001). Os principais tipos de modelos arquiteturais quanto à disposição dos elementos na rede serão descritos a seguir (COULOURIS, 2001): Modelo Cliente-Servidor: É o modelo mais utilizado. Tem uma arquitetura simples onde algum processo (servidor) fornece algum tipo de serviço a outro (cliente). É comum ocorrer o caso de processos servidores se tornarem processos clientes de seus clientes e de outros processos; e vice-versa; Código Móvel: É uma variação do modelo cliente-servidor. É caracterizado pela capacidade de mobilidade dos processos. Existem várias questões de segurança que ainda estão sem uma solução trivial (FONG, 2004). A seção irá descrever as suas características e as dificuldades de tornar a sua execução segura; Serviços disponibilizados por vários servidores: Esta arquitetura é baseada no modelo cliente-servidor, a diferença é que um determinado serviço requisitado pode ser particionado entre vários nós (deve ser transparente ao processo cliente) ou então replicado entre os nós (replicação da informação); Servidores proxy e de cache: A idéia deste modelo é armazenar itens que tiveram um acesso recente (cache), para aumentar a disponibilidade e performance do serviço, reduzindo também a carga na rede e servidores web. Este serviço pode ser

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br Sistemas Distribuídos Introdução Edeyson Andrade Gomes www.edeyson.com.br SUMÁRIO Definições Características Desafios Vantagens Desvantagens 2 Definições DEFINIÇÕES Um sistema distribuído é uma coleção

Leia mais

Distributed Systems Concepts and Design

Distributed Systems Concepts and Design Distributed Systems, Cap 2, Coulouris Pag. 1 de 1 Distributed Systems Concepts and Design 2 Modelos de Sistemas Modelos de arquitetura de sistemas distribuídos, estão relacionado com o local onde estão

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Referências Caracterização de Sistemas Distribuídos Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Capítulo 9 Seções 9.1 a 9.3 Distributed Systems: concept

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Comparação SDs X Scs

Comparação SDs X Scs Prof. Alexandre Lima Sistemas Distribuídos Cap 9 1/7 Comparação SDs X Scs Distribuição inerente Economia Velocidade Confiabilidade Crescimento incremental Descrição Algumas aplicações envolvem máquinas

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

Gerência de Redes de Computadores Gerência de Redes de Computadores As redes estão ficando cada vez mais importantes para as empresas Não são mais infra-estrutura dispensável: são de missão crítica, ou

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

Leia mais

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum,

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com O que veremos hoje... Evolução Histórica Motivação Conceitos Características

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Introdução Frederico Madeira LPIC 1, LPIC 2, CCNA fred@madeira.eng.br www.madeira.eng.br Referências - Coulouris, G.;Dollimore, J.; Kindberg, T.; SISTEMAS DISTRIBUIDOS CONCEITOS E

Leia mais

Sistemas Distribuídos Aula 1 Introdução

Sistemas Distribuídos Aula 1 Introdução Sistemas Distribuídos Aula 1 Introdução 35T34 3B2 Programa Introdução. Conceitos de sistemas distribuídos. Comunicação em sistemas distribuídos. Sincronização em sistemas distribuídos. Processos e processadores

Leia mais

Março/2005 Prof. João Bosco M. Sobral

Março/2005 Prof. João Bosco M. Sobral Plano de Ensino Introdução à Segurança da Informação Princípios de Criptografia Segurança de Redes Segurança de Sistemas Símbolos: S 1, S 2,..., S n Um símbolo é um sinal (algo que tem um caráter indicador)

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Introdução Aplicações em rede de computadores As redes de computadores atualmente estão em todos os lugares. Ex.: Internet, redes de telefones móveis, redes corporativas, em fábricas,

Leia mais

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Segurança Internet Fernando Albuquerque fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Tópicos Introdução Autenticação Controle da configuração Registro dos acessos Firewalls Backups

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras do livro

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Computação Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus Agenda da Apresentação Definição e surgimento de Sistemas Distribuídos Principais aspectos de Sistemas Distribuídos

Leia mais

SISTEMAS OPERACIONAIS. 01) Considere as seguintes assertivas sobre conceitos de sistemas operacionais:

SISTEMAS OPERACIONAIS. 01) Considere as seguintes assertivas sobre conceitos de sistemas operacionais: SISTEMAS OPERACIONAIS 01) Considere as seguintes assertivas sobre conceitos de sistemas operacionais: I. De forma geral, os sistemas operacionais fornecem certos conceitos e abstrações básicos, como processos,

Leia mais

Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes

Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes Arquiteturas e Modelos de sistemas Arquitetura Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes Localização dos componentes e relação entre eles Objetivo: garantir que

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Exemplos de SD Quais podem ser? Ex. de SD: Internet Internet é um conjunto de redes de computadores, de muitos tipos diferentes,

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - FUNDAMENTOS DE SISTEMAS DISTRIBUÍDOS 1. INTRODUÇÃO Nos primeiros momentos os computadores eram máquinas grandes e caras. Ao longo do tempo dois avanços tecnológicos mudaram os sistemas informatizados:

Leia mais

Conceitos de Segurança em Sistemas Distribuídos

Conceitos de Segurança em Sistemas Distribuídos Conceitos de Segurança em Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br 30 de novembro de 2011

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

CÓDIGO DA VAGA: TP08 QUESTÕES DE MÚLTIPLAS ESCOLHAS

CÓDIGO DA VAGA: TP08 QUESTÕES DE MÚLTIPLAS ESCOLHAS QUESTÕES DE MÚLTIPLAS ESCOLHAS 1) Em relação à manutenção corretiva pode- se afirmar que : a) Constitui a forma mais barata de manutenção do ponto de vista total do sistema. b) Aumenta a vida útil dos

Leia mais

Segurança da Informação Segurança de Redes Segurança de Sistemas Segurança de Aplicações

Segurança da Informação Segurança de Redes Segurança de Sistemas Segurança de Aplicações Segurança da Informação Segurança de Redes Segurança de Sistemas Segurança de Aplicações Símbolos Símbolos: S 1, S 2,..., S n Um símbolo é um sinal (algo que tem um caráter indicador) que tem uma determinada

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS 1. Histórico Primeiros computadores Computadores dos anos 50 e 60 Primeiros computadores com sistemas operacionais Surgimento das redes de computadores Nos anos 70 início das pesquisas

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

Sistemas Distribuídos Introdução a Segurança em Sistemas Distribuídos

Sistemas Distribuídos Introdução a Segurança em Sistemas Distribuídos Sistemas Distribuídos Introdução a Segurança em Sistemas Distribuídos Departamento de Informática, UFMA Graduação em Ciência da Computação Francisco José da Silva e Silva 1 Introdução Segurança em sistemas

Leia mais

Caracterização de Sistemas Distribuídos

Caracterização de Sistemas Distribuídos Aula 1 Caracterização de Sistemas Distribuídos Prof. Dr. João Bosco M. Sobral mail: bosco@inf.ufsc.br - página: http://www.inf.ufsc.br/~bosco Rodrigo Campiolo mail: rcampiol@inf.ufsc.br - página: http://ww.inf.ufsc.br/~rcampiol

Leia mais

INTRODUÇÃO A SISTEMAS DISTRIBUÍDOS

INTRODUÇÃO A SISTEMAS DISTRIBUÍDOS INTRODUÇÃO A SISTEMAS DISTRIBUÍDOS Sistemas Distribuídos Sistemas Distribuídos O que é um sistema Distribuído? SD é aquele no qual os componentes de hardware ou software se comunicam e coordenam suas ações

Leia mais

TRABALHO #1 Sistemas de Informação Distribuídos: Reflexão sobre a segurança

TRABALHO #1 Sistemas de Informação Distribuídos: Reflexão sobre a segurança DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Negócio Electrónico, 2006/2007 TRABALHO #1 Sistemas de Informação Distribuídos: Reflexão sobre a segurança

Leia mais

Introdução aos Sistemas Distribuídos

Introdução aos Sistemas Distribuídos Material baseado no livro Distributed Systems: Concepts and Design, Edition 3, Addison-Wesley 2001. Introdução aos Sistemas Distribuídos Copyright George Coulouris, Jean Dollimore, Tim Kindberg 2001 email:

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos (Re)Introdução 1 Organização Definição Características essenciais dos sistemas distribuídos Desafios principais 2 Definição Um sistema distribuído é... um conjunto de componentes

Leia mais

CONTROLE DE REDE. Prof. José Augusto Suruagy Monteiro

CONTROLE DE REDE. Prof. José Augusto Suruagy Monteiro CONTROLE DE REDE Prof. José Augusto Suruagy Monteiro 2 Capítulo 3 de William Stallings. SNMP, SNMPv2, SNMPv3, and RMON 1 and 2, 3rd. Edition. Addison-Wesley, 1999. Baseado em slides do Prof. Chu-Sing Yang

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Segurança de Sistemas

Segurança de Sistemas Segurança de Sistemas SISINFO Profs. Hederson Velasco Ramos Henrique Jesus Quintino de Oliveira quintino@umc.br Spoofing Tampering Repudiation Information Disclosure Denial of Service Elevation of Privilege

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

Gerenciamento de Redes

Gerenciamento de Redes Gerenciamento de Redes As redes de computadores atuais são compostas por uma grande variedade de dispositivos que devem se comunicar e compartilhar recursos. Na maioria dos casos, a eficiência dos serviços

Leia mais

SISTEMAS DISTRIBUÍDOS (1. CICLO)

SISTEMAS DISTRIBUÍDOS (1. CICLO) SISTEMAS DISTRIBUÍDOS (1. CICLO) Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras

Leia mais

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa Prof. Marcelo de Sá Barbosa Introdução Visão geral das técnicas de segurança Algoritmos de criptografia Assinaturas digitais Criptografia na prática Introdução A necessidade de proteger a integridade e

Leia mais

Sistemas Distribuídos Segurança em Sistemas Distribuídos: Gerenciamento, Canais de Acesso e Controle de Acesso aos Dados I. Prof. MSc.

Sistemas Distribuídos Segurança em Sistemas Distribuídos: Gerenciamento, Canais de Acesso e Controle de Acesso aos Dados I. Prof. MSc. Sistemas Distribuídos Segurança em Sistemas Distribuídos: Gerenciamento, Canais de Acesso e Controle de Acesso aos Dados I Prof. MSc. Hugo Souza Após abordarmos a distribuição de responsabilidades providas

Leia mais

- Aula 1 - ARQUITETURA DE COMPUTADORES

- Aula 1 - ARQUITETURA DE COMPUTADORES - Aula 1 - ARQUITETURA DE COMPUTADORES Em arquitetura de computadores serão estudados aspectos da estrutura e do funcionamento dos computadores. O objetivo é apresentar de forma clara e abrangente a natureza

Leia mais

Segurança em Sistemas Informáticos

Segurança em Sistemas Informáticos Segurança em Sistemas Informáticos Politicas de Segurança Quando é que se torna necessário uma política de segurança? Quando existe um Bem com Valor Se o Bem se situa permanentemente ou temporariamente

Leia mais

2 Trabalhos Relacionados

2 Trabalhos Relacionados 2 Trabalhos Relacionados Nesse capítulo, apresentamos os trabalhos relacionados ao GridFS, entrando em mais detalhes sobre os sistemas citados durante a introdução e realizando algumas considerações sobre

Leia mais

3. ( ) Para evitar a contaminação de um arquivo por vírus, é suficiente salvá-lo com a opção de compactação.

3. ( ) Para evitar a contaminação de um arquivo por vírus, é suficiente salvá-lo com a opção de compactação. 1. Com relação a segurança da informação, assinale a opção correta. a) O princípio da privacidade diz respeito à garantia de que um agente não consiga negar falsamente um ato ou documento de sua autoria.

Leia mais

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

Leia mais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Abertos Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Caracterização de Sistemas Distribuídos Coulouris, Dollimore and Kindberg. Distributed Systems: Concepts and

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Unidade I SISTEMAS PARA INTERNET E. Prof. Emanuel Matos

Unidade I SISTEMAS PARA INTERNET E. Prof. Emanuel Matos Unidade I SISTEMAS PARA INTERNET E SOFTWARE LIVRE Prof. Emanuel Matos Sumário Unidade I Principais tecnologias da rede digital Computação cliente/servidor Comutação de pacotes TCP/IP Sistemas de informação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelos e arquitecturas 14/15 Sistemas Distribuídos 1 Modelos arquitecturais 14/15 Sistemas Distribuídos 2 Camadas de Software: o Middleware Aplicações Middleware Sistema Operativo

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus Aula 05-06: Modelos de Sistemas Distribuídos (cont.) 2 O modelo peer-to-peer Surgiu no final da década de 1970 Se tornou mundialmente

Leia mais

Os requisitos de SEGURANÇA DA INFORMAÇÃO dentro de uma organização passaram por duas mudanças importantes nas últimas décadas:

Os requisitos de SEGURANÇA DA INFORMAÇÃO dentro de uma organização passaram por duas mudanças importantes nas últimas décadas: $XWDUTXLD(GXFDFLRQDOGR9DOHGR6mR)UDQFLVFR± $(96) )DFXOGDGHGH&LrQFLDV6RFLDLVH$SOLFDGDVGH3HWUROLQD± )$&$3( &XUVRGH&LrQFLDVGD&RPSXWDomR 6(*85$1d$($8',725,$'(6,67(0$6 ³6HJXUDQoDGH,QIRUPDo}HV &\QDUD&DUYDOKR

Leia mais

Segurança de Sistemas

Segurança de Sistemas Segurança de Sistemas SISINFO Profs. Hederson Velasco Ramos Henrique Jesus Quintino de Oliveira quintino@umc.br Spoofing Tampering Repudiation Information Disclosure Denial of Service Elevation of Privilege

Leia mais

Curso de Sistemas de Informação 8º período Disciplina: Tópicos Especiais Professor: José Maurício S. Pinheiro V. 2009-1

Curso de Sistemas de Informação 8º período Disciplina: Tópicos Especiais Professor: José Maurício S. Pinheiro V. 2009-1 Curso de Sistemas de Informação 8º período Disciplina: Tópicos Especiais Professor: José Maurício S. Pinheiro V. 2009-1 Aula 4 Introdução aos Sistemas Biométricos 1. Identificação, Autenticação e Controle

Leia mais

Profs. Deja e Andrei

Profs. Deja e Andrei Disciplina Sistemas Distribuídos e de Tempo Real Profs. Deja e Andrei Sistemas Distribuídos 1 Conceitos e Projetos de Sistemas Distribuídos Objetivos: Apresentar uma visão geral de processamento distribuído,

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Introdução Um sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito

Leia mais

Capítulo II Modelos de Programação Distribuída (parte 2)

Capítulo II Modelos de Programação Distribuída (parte 2) Capítulo II Modelos de Programação Distribuída (parte 2) From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley From: Cardoso, Jorge, Programação de

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Criptografia. 1. Introdução. 2. Conceitos e Terminologias. 2.1. Criptografia. 2.2. Criptoanálise e Criptologia. 2.3. Cifragem, Decifragem e Algoritmo

Criptografia. 1. Introdução. 2. Conceitos e Terminologias. 2.1. Criptografia. 2.2. Criptoanálise e Criptologia. 2.3. Cifragem, Decifragem e Algoritmo 1. Introdução O envio e o recebimento de informações são uma necessidade antiga, proveniente de centenas de anos. Nos últimos tempos, o surgimento da Internet e de tantas outras tecnologias trouxe muitas

Leia mais

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados SISTEMA DE BANCO DE DADOS Banco e Modelagem de dados Sumário Conceitos/Autores chave... 3 1. Introdução... 4 2. Arquiteturas de um Sistema Gerenciador... 5 3. Componentes de um Sistema... 8 4. Vantagens

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br Sistemas Operacionais Alexandre Meslin meslin@inf.puc-rio.br Ementa Apresentação do curso Cap1 - Visão Geral Cap2 - Conceitos de Hardware e Software Cap3 - Concorrência Cap4 - Estrutura do Sistema Operacional

Leia mais

Modelos Fundamentais. Carlos Ferraz. cagf@cin.ufpe.br

Modelos Fundamentais. Carlos Ferraz. cagf@cin.ufpe.br Modelos Fundamentais Carlos Ferraz cagf@cin.ufpe.br O que vimos até agora (I) História Anos 60-70: sistemas centralizados (caros!) Anos 80: computadores pessoais (acessórios caros e pouco aproveitáveis!

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

Conceitos Sobre Segurança em Redes Sem Fio. Redes Sem Fio (Wireless) 1

Conceitos Sobre Segurança em Redes Sem Fio. Redes Sem Fio (Wireless) 1 Conceitos Sobre Segurança em Redes Sem Fio Redes Sem Fio (Wireless) 1 INTRODUÇÃO Redes Sem Fio (Wireless) 2 INTRODUÇÃO Conceitos Sobre Segurança em Redes Sem Fio Base da segurança: Confidencialidade Controle

Leia mais

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP HTTP (Hypertext Transfer Protocol ) Protocolo usado na Internet para transferir as páginas da WWW (WEB). HTTPS (HyperText Transfer

Leia mais

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Conceitos Gerais Graça Bressan Graça Bressan/LARC 2000 1 Forças de marketing que conduzem à arquitetura cliente/servidor "Cliente/Servidor é um movimento irresistível que está reformulando

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Conceitos e Arquitetura Vantagens das Arquiteturas C/S (em relação

Leia mais

1 Introdução 1.1. Segurança em Redes de Computadores

1 Introdução 1.1. Segurança em Redes de Computadores 1 Introdução 1.1. Segurança em Redes de Computadores A crescente dependência das empresas e organizações modernas a sistemas computacionais interligados em redes e a Internet tornou a proteção adequada

Leia mais

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais Prof. Dr. Ruy de Oliveira CEFET-MT O que é um Sistema Operacional? Um software que abstrai as complexidades do hardware de um usuário/programador

Leia mais

1.2 Tipos de Sistemas Operacionais

1.2 Tipos de Sistemas Operacionais 1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware. Camadas de Software - o Middleware Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas Modelos de Arquitecturas para sistemas distribuidos Interfaces e Objectos Requerimentos para Arquitecturas Distribuídas

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos 1 de 9 Sistemas Distribuídos O que é um sistema distribuído? Um conjunto de computadores autonomos a) interligados por rede b) usando um software para produzir uma facilidade de computação integrada. Qual

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Agosto/2003 Tópicos Conceitos de HW em SD Multiprocessadores e Multicomputadores Conceitos de SW

Leia mais

Criptografia e Segurança em Rede Capítulo 1. De William Stallings

Criptografia e Segurança em Rede Capítulo 1. De William Stallings Criptografia e Segurança em Rede Capítulo 1 De William Stallings Capítulo 1 Introdução A arte da guerra nos ensina a contar não com a probabilidade de o inimigo não chegar, mas com nossa própria prontidão

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Universidade Federal do Pará Campus Universitário de Marabá Curso de Bacharelado em Sistemas de Informação Sistemas Distribuídos Prof.: Warley Junior warleyjunior05@gmail.com Plano de Ensino. Turma SI

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

AULA 5. Embora o termo segurança da informação já diga muito, é interessante descrever um pouco mais sobre objetivos da segurança de informação.

AULA 5. Embora o termo segurança da informação já diga muito, é interessante descrever um pouco mais sobre objetivos da segurança de informação. AULA 5 OBJETIVOS EM SEGURANÇA DA INFORMAÇÃO Embora o termo segurança da informação já diga muito, é interessante descrever um pouco mais sobre objetivos da segurança de informação. Podemos listar como

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Carlos Ferraz cagf@cin.ufpe.br Tópicos da Aula Apresentação do curso Introdução Definição de sistemas distribuídos Exemplo Vantagens e desvantagens Convergência digital Desafios Visão

Leia mais

Sistemas Distribuídos. Introdução

Sistemas Distribuídos. Introdução Sistemas Distribuídos Introdução Definição Processos Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software distribuído. Executados

Leia mais

Conceitos de segurança da informação. Prof. Nataniel Vieira nataniel.vieira@gmail.com

Conceitos de segurança da informação. Prof. Nataniel Vieira nataniel.vieira@gmail.com Conceitos de segurança da informação Prof. Nataniel Vieira nataniel.vieira@gmail.com Introdução A infraestrutura de rede, os serviços e dados contidos nos computadores ligados a ela são bens pessoais,

Leia mais

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP HTTP (Hypertext Transfer Protocol ) Protocolo usado na Internet para transferir as páginas da WWW (WEB). HTTPS (HyperText Transfer

Leia mais

Compartilhamento de recursos de forma a racionar e otimizar o uso de equipamentos e softwares. Servidores e Workstations. Segurança é um desafio, por

Compartilhamento de recursos de forma a racionar e otimizar o uso de equipamentos e softwares. Servidores e Workstations. Segurança é um desafio, por $XWDUTXLD(GXFDFLRQDOGR9DOHGR6mR)UDQFLVFR± $(96) )DFXOGDGHGH&LrQFLDV6RFLDLVH$SOLFDGDVGH3HWUROLQD± )$&$3( &XUVRGH&LrQFLDVGD&RPSXWDomR $8',725,$'$7(&12/2*,$'$,1)250$d 2 &\QDUD&DUYDOKR F\QDUDFDUYDOKR#\DKRRFRPEU

Leia mais

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta 1 Mono e multiprogramação Introdução Classificação (Aula 2) Recap Sistemas Máquina Profa. Patrícia Gerenciador D. CostaLPRM/DI/UFES Provê Fornece Compartilhamento programador máquina justa recursos Operacionais

Leia mais