Baixe o app para aproveitar ainda mais
Prévia do material em texto
Luciano Rossi BANCO DE DADOS EM AMBIENTES DE ALTA ESCALABILIDADE E-book 4 Neste E-Book: INTRODUÇÃO ����������������������������������������������������������� 3 GERENCIAMENTO DE SERVIDORES �����������������4 Segurança da informação ��������������������������������������������������������4 Computação em grid e cluster �����������������������������������������������16 Redes de computadores ���������������������������������������������������������19 CONSIDERAÇÕES FINAIS �����������������������������������34 REFERÊNCIAS BIBLIOGRÁFICAS & CONSULTADAS �������������������������������������������������������36 2 INTRODUÇÃO Neste módulo, dedicaremos nossa atenção às ques- tões de segurança em sistemas de banco de dados, bem como à análise dos aspectos da infraestrutura que suporta esse tipo de sistema� Ao fim, teremos construído um conhecimento consi- derável acerca das diferentes organizações possíveis para os servidores que estudaremos neste módulo, mas também acerca dos tipos de redes utilizadas para a interconexão entre os servidores� 3 GERENCIAMENTO DE SERVIDORES Garantir que as informações, armazenadas no banco de dados, sejam consistentes não é suficiente para que o proprietário dos dados possa usufruir com segurança os serviços oferecidos por um sistema gerenciador� Por vezes, os dados armazenados repre- sentam ou descrevem as características estratégicas de uma organização e/ou são sensíveis, do ponto de vista ético ou de privacidade, aos indivíduos descritos por esses dados� Sendo assim, iniciaremos este estudo analisando as características de segurança da informação, as quais são fundamentais para que não haja nenhum prejuízo ocasionado por vazamentos de dados ou acessos não autorizados� Segurança da informação A International Standards Organization (ISO) é uma organização internacional que tem por objetivo pa- dronizar as normas técnicas em diferentes áreas� A International Electrotechnical Commission (IEC) também é uma organização internacional voltada para a padronização de tecnologias elétricas, eletrô- nicas e outras relacionadas� Ambas as organizações são responsáveis pela publicação do ISO/IEC 27000, padrão que descreve diretrizes para a implemen- 4 tação de um Sistema de Gestão de Segurança da Informação (SGSI)� A implementação dos padrões, definidos pela série ISO/IEC 27000, visa à proteção de toda informação escrita, falada e eletrônica, garantindo com isso a confiabilidade, integridade e disponibilidade da infor- mação� Nesse sentido, a informação é um ativo orga- nizacional que tem seu valor percebido pelo usuário� Segunda a norma ISO/IEC 13335-1:2004, os ativos organizacionais podem ser informação eletrônica, documento físico (papel), software, hardware, insta- lações, pessoas, imagem e/ou reputação da organi- zação e serviços� Nesse contexto, podemos definir a importância da segurança da informação a partir de seu objetivo, que é proteger a informação de modo a garantir a perpe- tuação dos negócios, reduzindo os danos e aumen- tando o retorno do investimento e as oportunidades� Os atributos que são pertinentes à informação segu- ra podem ser descritos pela sigla CIA, que significa Confidentiality, Integrity and Avaliability. Confidencialidade A confidencialidade é o atributo da informação que deve estar acessível somente a pessoas autoriza- das� Assim, a informação deve ser protegida de acor- do com a sigilosidade de seu conteúdo, limitando o acesso às pessoas que são as destinatárias do conteúdo em questão� 5 Para que a informação apresente o atributo da confi- dencialidade, é preciso adotar medidas que garantam o acesso à informação apenas em locais previamen- te definidos como necessários. É preciso, ainda, que a informação não fique disponível para quem não precisa dela; para isso, pode-se usar algum mecanis- mo de gestão de acesso lógico e a separação entre os diferentes contextos do sistema� Integridade A integridade da informação é um atributo essencial no âmbito da segurança da informação, pois des- creve a manutenção das características originais da informação, ou seja, a informação íntegra é aquela que não sofre alterações, salvo quando autorizada e realizada de maneira controlada� A manutenção da integridade dos dados passa por medidas que definem as regras monitoradas para a alteração de dados, a padronização de valores para os atributos no banco de dados, a manutenção de um registro de operações realizadas sobre o banco de dados e outros mecanismos de controle e rastre- abilidade das operações� Disponibilidade O atributo da disponibilidade refere-se à possibilidade de acesso à informação por indivíduos autorizados, sempre que necessário� Podemos destacar algumas características associadas à disponibilidade dos dados, como pontualidade, continuidade e robustez� Tais características descrevem a disponibilidade no 6 momento certo, a persistência do serviço mesmo em caso de falhas e a capacidade operacional do sistema, respectivamente� Uma forma importante para se garantir a segurança da informação é por meio da implantação de con- trole de acesso� Esse controle é obtido a partir da elaboração de uma política de segurança, em que se define quem são os usuários autorizados a acessar as informações. Além disso, a política de segurança estabelece quais informações podem ser acessa- das e que tipo de operação o usuário pode realizar sobre aquela informação� Assim, o mecanismo de segurança é responsável por garantir que a política de segurança seja considerada� No nível do Sistema Gerenciador de Banco de Dados (SGBD), há dois mecanismos fundamentais: Discretinary Access Control (DAC) e Mandatory Access Control (MAC). O DAC baseia-se na concessão e revogação de privi- légios, permitindo o acesso e a execução de opera- ções sobre objetos de dados� Os objetos de dados podem representar desde uma tabela até uma visão dos dados� Nesse tipo de mecanismo, o criador do objeto tem automaticamente todos os privilégios, e o SGBD é responsável por monitorar a concessão e a revoga- ção dos privilégios, além de controlar a execução de requisições dos usuários autorizados apenas� 7 As atribuições de privilégios são feitas a partir do ad- ministrador do sistema para os usuários� As atribui- ções de privilégios podem ser: (i) no nível da conta, ou seja, os privilégios se associam ao tipo de conta que o usuário possui; ou (ii) no nível da relação, ou seja, os privilégios são concedidos devido a relações ou visões específicas. O mecanismo MAC baseia-se em políticas globais do sistema e, com isso, os usuários não podem alterá- -las� Nesse mecanismo, os objetos estão associados a determinadas classes de segurança, e os usuários são associados a um passe, que determina quais classes podem ser acessadas� Observe, no entanto, que esse tipo de mecanismo não é considerado pela maioria dos SGBD comer- ciais, sendo implantado somente em casos particu- lares que demandam segurança multinível, como as organizações governamentais e militares� O mecanismo MAC prevê que cada objeto no banco de dados receba uma classificação (label), a qual descreva o grau de importância do objeto. Os usuá- rios, por sua vez, também são classificados segundo o nível de confiabilidade que apresenta perante o sistema� No contexto militar, por exemplo, os níveis de segu- rança de um objeto (label) podem ser estabelecidos como: altamente confidencial (TS: Top Secret), se- creto (S: Secret), confidencial (C: Confidential) e não classificado (U: Unclassified). 8 O modelo Bell LaPadula é muito considerado para os mecanismos MAC, pois, nele, existem quatro ele- mentos básicos: ● Objetos: representam as relações, visões, li- nhas ou colunas no banco de dados. ● Sujeitos : representam os usuários e programas� ● Classes de segurança: representam os níveis de segurança descritos anteriormente� ● Liberações� Observe que as classes de segurança se associam aos objetos, ao passoque as liberações se associam ao sujeito� Nesse modelo, salientamos duas restrições referen- tes às operações� A primeira prevê que um sujeito pode apenas ler as informações de um objeto se o seu nível de liberação for maior ou igual à classe de segurança do objeto� A segunda restrição determina que um sujeito pode apenas gravar as informações em um objeto que tenha a classe de segurança maior ou igual ao nível de liberação do sujeito� Esta última restrição visa a impedir que as informações, em um objeto com nível de segurança superior, sejam movidas para objetos com nível de segurança inferior. Sob o ponto de vista do mecanismo MAC, os objetos podem apresentar níveis de granularidade distintos. 9 Dito de outra forma, os objetos podem ser tanto uma relação quanto uma linha ou coluna. Assim, em uma relação, podemos ter diferentes classes de segurança, uma por linha, por exemplo. Uma relação multinível pode ser lida distintamente, a depender do usuário� Analise a seguinte relação, descrita na Tabela 1: ID Nome Cor Classe 101 Caneta Azul S 102 Lápis Preto C Tabela 1: Exemplo de relação multinível. Fonte: Elaboração própria� Imagine uma operação de leitura sobre a relação da Tabela 1. Um usuário com nível de liberação TS pode visualizar ambas as linhas, ao passo que um usuário com nível de liberação C pode visualizar somente a segunda linha, e um usuário com nível de liberação U não visualiza nenhuma linha. As relações multiníveis podem apresentar al- guns problemas de inserção� Por exemplo, supo- nha que um usuário nível de liberação C deseje inserir o seguinte registro na relação da Tabela 1: <101,Papel,Vermelho,C>. Nesse caso, se o SGBD permitir a inserção, isso vio- laria a restrição de chave, visto que já existe uma chave 101 na relação. Porém, se o SGBD não permitir a inserção, o usuário pode concluir que existe um objeto na relação, com a mesma chave, cuja classe de segurança é maior que C, sendo que essa con- 10 clusão é indesejável no contexto da segurança da informação� A resolução do problema é considerar, portanto, o nível da classe de segurança do objeto como parte da chave, o que resultaria na relação descrita pela Tabela 2: ID Nome Cor Classe 101 Caneta Azul S 101 Papel Vermelho C 102 Lápis Preto C Tabela 2: Exemplo de relação multinível com a classe com- pondo a chave. Fonte: Elaboração própria� A existência de objetos que resultem em visualiza- ções diferentes para diferentes usuários é denomi- nada poli-instanciação� Por exemplo, para a relação na Tabela 2, um usuário com nível de liberação C visualizaria os registros: <101,Papel,Vermelho,C> e <102,Lápis,Preto,C>, enquanto outro usuário, com nível de liberação S ou TS, visualizaria os registros: <101,Caneta,Azul,S>, <101,Papel,Vermelho,C> e <102,Lápis,Preto,C>. Outra questão importante para a manutenção da segurança em bancos de dados é a autenticação� Quando o acesso ao banco de dados é feito a partir de uma localização segura, validar a autenticidade do usuário é simples e, normalmente, os mecanis- mos que implementam senhas são suficientemente adequados� 11 Contudo, o acesso realizado pela internet, ou seja, a partir de uma rede externa, é mais difícil de autenti- car� Por exemplo, em uma transação de compras via cartão de crédito, como autenticar que o usuário é de fato o proprietário do cartão? Ou ainda: como o usu- ário pode estar seguro de que a interface de inserção do número do cartão é, realmente, da empresa que oferece o produto? A solução para a autenticação em redes externas passa pela criptografia� A criptografia é uma técnica que desconfigura os dados para que tanto a sua transmissão quanto o seu armazenamento sejam seguros� Assim, criptografar dados consiste de um algoritmo que recebe como entrada um conjunto de dados que será criptografado e uma chave de criptografia. A saída do algoritmo é um conjunto ilegível de dados, ou seja, que não representa a informação original� O dado criptografado não pode ser interpretado sem ser descriptografado� O algoritmo que realiza a des- criptografia recebe o conjunto de dados criptografa- do com uma chave de descriptografia, a saída é o conjunto de dados original� Na criptografia simétrica, ambas as chaves de cripto- grafar e descriptografar são iguais e conhecidas por todos os usuários autorizados no banco de dados� Assim, o emissor e o receptor da mensagem devem conhecer a chave para que o algoritmo possa realizar o processo� Uma chave é uma cadeia de bits que define como o algoritmo precisa proceder para criptografar os 12 dados� Existem alguns problemas de segurança com a criptografia simétrica, por exemplo, gestão, arma- zenamento seguro e quantidade de chaves. A criptografia assimétrica considera dois tipos de chaves. Também chamada de criptografia de chave pública, a criptografia assimétrica utiliza uma chave pública, ou seja, conhecida por todos e utilizada para realizar a criptografia dos dados. A chave privada, por sua vez, é conhecida somente pelo destinatário da mensagem e utilizada com o intuito de descrip- tografar o conteúdo recebido� Na prática, quando o usuário A deseja enviar uma mensagem para o usuário B, o usuário A utiliza a chave pública de B para criptografar os dados, que é conhecida por todos, e o usuário B utiliza sua cha- ve privada para realizar o processo reverso� Essa abordagem promove um maior grau de segurança, quando comparada com a criptografia simétrica. Voltando às questões anteriores, a respeito da auten- ticidade de usuários em compras on-line, perceba que o fornecedor do produto pode distribuir sua chave pública e, com isso, o comprador pode ter seu pedido criptografado, garantindo que somente o vendedor possa acessar os dados da transação� A garantia de que, de fato, o usuário está se comuni- cando com o servidor do fornecedor do produto pode ser obtida a partir do protocolo Secure Sockets Layer (SSL). Nesse caso, o fornecedor solicita a um certifi- cador que publique um certificado. Esse certificado 13 é criptografado com a chave privada do certificador e contém a chave pública do fornecedor. Assim, o cliente pode descriptografar o certificado, por meio da chave pública do certificador; assim, obtém-se a chave pública do fornecedor com garantia de autenticidade� Nesse ponto, o navegador do cliente gera uma chave de sessão temporária, a qual é criptografada com a chave pública do fornecedor e enviada. A partir daí, todas as mensagens trocadas pelo fornecedor e cliente são criptografadas utilizando a chave de sessão� Note que o procedimento descrito só é possível de- vido a uma propriedade basilar dos algoritmos de criptografia, propriedade essa que diz que as chaves podem ter suas funções trocadas: d e c r y p t ( d , ( e n c r y p t ( e , I ) ) ) = I = d e c r y p t ( e , ( e n c r y p t ( d , I ) ) ) onde e é a chave de criptografia, d é a chave de descriptografia e I é o dado. A autenticação de um usuário pode ser feita de ma- neira similar� O fornecedor pode considerar a utiliza- ção da senha do usuário para a autenticação. Esse procedimento ocorre após o protocolo SSL estabele- cer uma sessão segura entre o fornecedor e o cliente� Além disso, o cliente pode utilizar sua chave privada para criptografar seu pedido; em seguida, criptografa novamente utilizando a chave pública do fornecedor. 14 No lado do fornecedor, o processo é feito inversa- mente, dado que o fornecedor descriptografa o pe- dido, utilizando sua chave privada e a chave pública do cliente� Quando a autenticação do emissor da mensagem é o objetivo mais importante, pode-se considerar o uso de uma assinatura digital para verificar tanto a integridade da mensagem, ou seja, se ela não foi alterada durante o processo, quanto a identidade do emissor� A assinatura digital é a aplicação de um esquema hashing para obter uma versão compacta da men- sagem� Com isso, a versão da mensagem original é criptografada por meiodo uso da chave privada do emissor, e o resultado é anexado à mensagem original� O conteúdo criptografado associado à mensagem original é a assinatura do emissor� O receptor da men- sagem realiza o mesmo procedimento, ou seja, cria uma versão da mensagem recebida, do mesmo modo que o emissor fez, e descriptografa a assinatura� Se ambos os conteúdos forem iguais, isso indica que a mensagem está íntegra e, como foi possível realizar a descriptografia com a chave pública do emissor, está autenticada a origem da mensagem� 15 Computação em grid e cluster Os avanços tecnológicos observados no desenvol- vimento de computadores ocorrem com uma veloci- dade impressionante� Os computadores oferecidos no mercado apresentam muita evolução de um ano para outro, comparados com as versões anteriores� Ainda assim, existem áreas, como a meteorologia, cuja demanda por recursos computacionais supera a oferta atual e, em muitos contextos, a aquisição de supercomputadores é uma alternativa inviável� Outra alternativa mais viável e comumente conside- rada é a soma de recursos de diferentes computa- dores, o que pode resultar em um ganho importante de poder de processamento� Nesse sentido, os pa- radigmas de cluster e grid de computadores podem ser considerados para usufruir o máximo do poder computacional� Um ambiente de alto desempenho pode ser obtido tanto pela utilização de grid quanto pela de cluster de computadores, levando em conta os processa- dores mais velozes, a otimização de algoritmos e a utilização de computação paralela e distribuída. Ademais, garantir a baixa latência da comunicação e a alta taxa de transmissão de dados completa esse cenário de alto desempenho. Define-se um cluster de computadores como um con- junto de computadores interligados em uma rede LAN de alto desempenho. Os computadores coope- 16 ram entre si para atingir um determinado objetivo e se comunicam para coordenar suas ações� Por sua vez, um grid computacional caracteriza-se pelo compartilhamento de recursos, disponibilizando- -os como serviços, em um ambiente geograficamente distribuído. Os recursos que compõem o grid são in- terligados a partir de redes WAN de alto desempenho. Na Tabela 3, encontramos as principais diferenças entre as configurações de grid e de cluster: Configuração Cluster Grid Domínio Único Múltiplo Nós Milhares Milhões Segurança Desnecessária Necessária Custo Alto Alto Granularidade Grande Muito grande Sistema Operacional Homogêneo Heterogêneo Tabela 3: Diferenças entre as configurações de cluster e grid� Fonte: Adaptada de Colvero, Dantas e Cunha (2005). A regulação em um ambiente de cluster é feita por uma única entidade, ao passo que, em um ambien- te de computação em grid, há múltiplas entidades reguladoras� Outra diferença é a escala do ambiente� À medida que a computação em cluster pode contar com milhares de nós interconectados, na computação em grid o número pode chegar aos milhões de nós. Um ambiente de cluster é restrito, na maioria das vezes, a uma rede privada� Dessa forma, as ques- tões de segurança não são importantes, visto que o ambiente é controlado� Por outro lado, dada a distri- 17 buição geográfica dos recursos na computação em grid, as questões de segurança são fundamentais� Com relação ao custo, em ambos os paradigmas é alto; porém, como na computação em grid o custo é compartilhado por múltiplas entidades regulado- ras, acaba por ser menos impactante que em um ambiente de cluster� A granularidade é também grande em ambos os paradigmas, com uma tendência de ser maior em ambientes de grid. Por fim, a computação em cluster conta com um único sistema operacional, enquan- to que na computação em grid é possível ter vários sistemas diferentes� As diferenças entre clusters e grids podem ser evi- denciadas, também, por meio das demandas para suas respectivas constituições� Em um ambiente de cluster deve haver, para o nível do usuário, um conjunto de políticas para a utilização do ambiente, gerenciadores de recursos e alguma interface com o usuário� No nível de administração, o ambiente deve contar com a gerência de hardware e software. Em ambien- tes de grid, além das demandas apresentadas para os ambientes de cluster, deve haver gerenciadores de recursos globais e locais, monitoração, autentica- ção e certificação. Essas demandas adicionais são resultado da necessidade de segurança� 18 Redes de computadores Anteriormente, pudemos verificar que o ambiente de alto desempenho computacional é promovido pelos paradigmas cluster e grid, sendo dependentes do meio de transmissão de dados� Assim, vamos elencar aqui os principais tipos e as principais características das redes de computadores� A internet revolucionou a sociedade contemporânea de diferentes maneiras� Tem suas origens a partir de demandas militares e, posteriormente, por meio do avanço das pesquisas acadêmicas� A rede precursora da internet era denominada ARPANET, e surgiu do trabalho de estudantes universitários. Em especial no ambiente acadêmico, muitas redes de computadores existiam para a comunicação entre os departamentos dos campi� Cada rede contava com um protocolo de comunicação particular e, assim, a comunicação entre as redes era um problema� Nesse sentido, o protocolo TCP/IP possibilitou a co- nexão de novas redes à ARPANET e, devido ao cres- cimento da escala da rede, o Domain Name System surgiu com vistas a solucionar a dificuldade de se localizar os host’s na rede� Uma característica da ARPANET era a dificuldade de acesso, o que motivou a criação da National Science Foundation (NSFNET) que, em 1983, se conectou à ARPANET� 19 Um computador conecta-se à internet se executa a pilha de protocolos TCP/IP, se possui um endereço IP e se é capaz de enviar pacotes a qualquer máqui- na na rede. Originalmente, a internet tinha quatro aplicações: I. Correio eletrônico� II. Newsgroups. III. Logon remoto (SSH)� IV. Transferência de arquivos (FTP)� A popularização da internet surge com o crescente número de redes de computadores conectadas a ela� Entre as suas principais aplicações, destacamos o compartilhamento de recursos e informações, a redução das distâncias geográficas, o acesso a infor- mações remotas, o comércio eletrônico, entre outras� As redes de computadores podem ser classificadas segundo duas dimensões no âmbito do hardware: a tecnologia de transmissão e a escala� Com relação à tecnologia de transmissão, podemos ter links de difusão ou ponto a ponto� Quanto à escala, podemos destacar as redes locais (LAN), as redes metropoli- tanas (MAN), as redes de longa distância (WAN) e as redes sem fio. As redes do tipo Local Area Network (LAN) são priva- das de curta extensão e de simples gerenciamento, devido ao seu tamanho. As LAN são muito utiliza- das para possibilitar a comunicação entre diferentes 20 computadores pessoais, bem como para o compar- tilhamento de recursos. As LAN sem fio são muito populares, e a comuni- cação entre os computadores e a internet é feita a partir de um roteador� O padrão considerado para as LAN sem fio é chamado IEEE 802.11, mais conhecido como Wi-Fi. As LAN com fios podem utilizar diferen- tes tecnologias, hoje em dia é comum a utilização de fibra óptica. Na Figura 1, temos exemplos de LAN sem fio (a) e cabeada (b)� O padrão mais considerado para LAN cabeadas é o IEEE 802.3, também conhecido como Ethernet. Cada host se conecta a um dispositivo de rede chamado switch, por meio de suas várias portas� O papel do switch é distribuir os pacotes de dados aos computadores, utilizando um endereço no pacote para identificar o destinatário. Ponto de acesso à rede cabeada Switch Ethernet portas host’s host’s restante da rede (a) (b) Caixa de junção Figura 1: LAN sem fio e cabeada� Fonte: Adaptada de Wetherall e Tanenbaum (2011). 21 As redes do tipo Metropolitan Area Network (MAN) podem abranger uma cidade. Um exemplo de MAN é a rede de televisãoa cabo que tem sua origem nos sistemas de antenas comunitárias� Esses sistemas eram utilizados em locais com fraca recepção de sinais� Assim, uma antena era instalada em um ponto alto e distribuía o sinal para os assinantes. Com a popularização da internet, as operadoras passaram a distribuir os serviços de internet, o que transformou a rede de distribuição de sinais de TV em uma MAN. A Figura 2 apresenta um exemplo de MAN. Note que uma central de distribuição a cabo recebe os sinais de TV e internet e os distribui aos assinantes� Outro tipo de MAN, o resultado de pesquisas recentes de acesso à internet de alta velocidade sem fio, é padronizado como IEEE 802.16, também conhecido como WiMAX. Caixa de junção internet antena Central Figura 2: MAN baseada na TV a cabo. Fonte: Adaptada de Wetherall e Tanenbaum (2011). 22 As redes do tipo Wide Area Network (WAN) são uti- lizadas para conectar grandes áreas geográficas, como um país ou continente inteiro. Pense em uma empresa que tenha filiais em diferentes cidades. A WAN conecta as filiais que possuem diversos host’s conectados a um roteador� Uma sub-rede conecta os roteadores, transportando dados de um roteador a outro, por meio das linhas de transmissão. No caso de WAN conectada por fios, as linhas de transmissão podem ser fios de cobre ou fibra óptica. Essas linhas de transmissão são, no geral, alugadas de empresas de telecomunicações� Os roteadores conectam três ou mais linhas de transmissão, sendo os responsáveis por direcionar as entradas recebidas para uma interface de saída específica, que conduzirá ao host de destino� A comunicação em uma rede de computadores torna- -se possível dado o uso de protocolos. Os protocolos de redes apresentam uma hierarquia em camadas, sendo que cada camada tem uma função específica. Todas as camadas utilizam um mecanismo de ende- reçamento para a identificação dos transmissores e dos receptores dos dados� O projeto de protocolos em camadas deve conside- rar a definição do número de canais lógicos e suas prioridades� O protocolo deve, ainda, prever um con- trole de erros que permita ao receptor informar ao transmissor quais mensagens foram recebidas de maneira correta e quais não foram� 23 Outra questão de projeto relacionada às camadas de um protocolo é o controle de fluxo. Quando trans- missores e receptores operam em velocidades dife- rentes, deve haver algum mecanismo que equalize o fluxo de dados. As camadas inferiores podem oferecer dois tipos de serviços às camadas superiores� Os serviços orien- tados às conexões têm similaridade com o sistema telefônico. Quando há pretensão de conversar com outra pessoa via telefone, primeiro é preciso estabe- lecer uma conexão� Desse modo, os serviços orientados a conexões ne- cessitam que uma conexão seja estabelecida entre emissor e receptor, ou seja, é como se houvesse um canal direto entre eles, por onde os dados trafegam de um lado para outro� Quando o serviço é finalizado a conexão é liberada. Os serviços sem conexão são similares ao siste- ma postal� Cada mensagem carrega o endereço do destino e, com isso, os pacotes de dados podem ser roteados pela rede, independentemente uns dos outros, até o destino final. Um serviço é definido por um conjunto de primitivas ou operações� As primitivas podem ser utilizadas para a interação entre os componentes em um am- biente cliente-servidor� Por exemplo, a aplicação das primitivas de serviço em um protocolo simples, que considera a implementação de um serviço com o uso de datagramas confirmados. 24 Observe, na Figura 3, a dinâmica para o estabeleci- mento de conexão entre cliente e servidor� Máquina Cliente Processo Cliente KernelSistema Operacional Pilha de protocolos Drives (1) Solicitação de conexão Chamadas do sistema Máquina servidora (2) Resposta de aceitação (3) Solicitação de dados (4) Réplica (5) Desconexão (6) Desconexão Processo do sistema Kernel Pilha de protocolos Drives Figura 3: Interação cliente- servidor� Fonte: adaptado de Wetherall e Tanenbaum (2011). Inicialmente, o servidor executa a primitiva LISTEN, a fim de informar que está pronto para aceitar co- nexões� Em seguida, o cliente executa a primitiva CONNECT para efetivar a conexão com o servidor� Geralmente, o sistema operacional envia um pacote solicitando a conexão (1)� Ao receber o pacote, o servidor realiza a conexão por meio da primitiva de serviço ACCEPT, que envia ao cliente uma confirmação (2). Em seguida, o servidor executa a primitiva RECEIVE, que prepara o servidor para aceitar a solicitação do cliente� Neste ponto o servidor fica bloqueado. O cliente transmite a solicitação por meio da primitiva SEND (3), que ao chegar ao servidor desbloqueia o processo para atender a solicitação� Quando a soli- citação é finalizada, o servidor utiliza a mesma pri- mitiva SEND para responder ao cliente (4)� 25 Caso não haja mais solicitações do cliente, usa-se a primitiva DISCONNECT para encerrar a conexão (5)� Ao receber a solicitação de encerramento da cone- xão, o servidor emite um DISCONNECT e confirma que a conexão será liberada (6)� Na Tabela 4, pode-se verificar a descrição das pri- mitivas de serviços utilizadas para a conexão do exemplo: Primitiva Significado LISTEN Bloco que espera por uma conexão de entrada. CONNECT Estabelecer uma conexão com um par que está à espera� ACCEPT Aceitar uma conexão de entrada de um par� RECEIVE Bloco que espera por uma mensagem de entrada. SEND Enviar uma mensagem ao par� DISCONNECT Encerrar uma conexão� Tabela 4: Primitivas de serviço� Fonte: Adaptada de Wetherall e Tanenbaum (2011). Proposto pela ISO, o modelo de referência Open Systems Interconnection (OSI) descreve um proto- colo em camadas e é uma iniciativa rumo à padro- nização internacional dos protocolos em camadas� Apesar de os protocolos baseados no modelo OSI serem pouco utilizados atualmente, o modelo é im- portante por conta das características descritas por suas camadas� O modelo OSI compõe-se de sete camadas para as quais existem objetivos específicos. Na Figura 4, temos uma ilustração que descreve essas camadas do modelo OSI� As representações centrais, para as quais observamos apenas três camadas, referem-se ao protocolo para a sub-rede interna� 26 Aplicação Apresentação Sessão Transporte Rede Enlace de dados Física Rede Enlace de dados Física Rede Enlace de dados Física Rede Enlace de dados Física Aplicação Apresentação Sessão Transporte Meio Físico Figura 4: Modelo OSI. Fonte: Adaptada de Wetherall e Tanenbaum (2011)� A camada da aplicação disponibiliza uma série de protocolos importantes para o usuário� Dentre esses protocolos, podemos destacar o Hipertext Transfer Protocol (HTTP), que é a base para a comunicação de dados na World Wide Web, utilizado para sistemas que consideram hipertexto; o File Transfer Protocol (FTP), um protocolo para a transferência de arquivos; o Simple Mail Transfer Protocol (SMTP), protocolo padrão de envio de mensagens de correio eletrônico; e o Secure Shell (SSH), protocolo para serviços de rede seguras em um ambiente inseguro� 27 A camada de apresentação é responsável pela for- matação dos dados que serão apresentados ao usu- ário na camada da aplicação, ou seja, essa camada é responsável por converter os dados até que eles tenham um formato adequado tanto na apresentação quanto no envio pela rede� Dentre as responsabilida- des da camada de apresentação, estão a conversão de caracteres de código, a conversão de dados, a compactação de dados e a criptografia dos dados. A camada de sessão é responsável pelo estabeleci- mento de uma sessão (conexão) entre os processos em computadores diferentes� A camada de sessão gerencia todo o ciclo de vida da sessão, desde o seu estabelecimento até o seu encerramento� As operações necessárias para que os processos se comuniquem são todos de responsabilidade dessa camada, como a realização das tarefasde segurança, o reconhecimento de nomes, registros em log, etc� A camada de transporte recebe os dados da camada superior e os divide em unidade menores; em segui- da, envia essas unidades para a camada de rede� Além disso, a camada de transporte deve assegurar que todas as partes da informação cheguem ao des- tino corretamente� A camada de transporte também é responsável por absorver qualquer tipo de mudança de hardware que possa ocorrer, não permitindo que essas mudanças afetem as outras camadas� 28 Quando uma conexão é estabelecida, a camada de transporte precisa definir o tipo de serviço que será ofertado à camada de sessão� Esses serviços podem ser um canal ponto a ponto, que mantém a ordem das partes enviadas, mensagens isoladas, que não garantem nenhum tipo de ordem no envio, e a difusão de mensagens enviadas para múltiplos destinos� A camada de rede é responsável pelas operações que resultam na sub-rede, pois ela determina a for- ma pela qual os pacotes de dados são roteados da origem até o destino� As rotas definidas para os pacotes podem ser está- ticas ou dinâmicas: as estáticas são predefinidas; as dinâmicas podem apresentar variações durante o trajeto em função da carga atual da rede� Além disso, a camada de rede gerencia o endereça- mento que pode ser observado entre as redes co- nectadas, as diferentes definições para o tamanho dos pacotes de dados e diferença entre protocolos� A camada de enlace de dados cuida para que um canal de transmissão de dados seja livre de erros de transmissão não detectáveis pela camada de rede� Determina, ainda, que o transmissor particione o pa- cote de dados em quadros de dados, visando a poder ser transmitidos sequencialmente com confirmação de recebimento� A camada de enlace de dados re- gula o tráfego na rede, equalizando a diferença de velocidade entre emissor e receptor� 29 Finalmente, a camada física é responsável pela trans- missão de bits brutos por um canal de comunicação� Entre as questões que a camada física tem de lidar, destacamos a voltagem utilizada para a represen- tação de um bit, o tempo de duração de um bit e o gerenciamento de possíveis transmissões bilaterais, ou seja, transmissões realizadas em dois sentidos simultaneamente. A camada física cuida também das interfaces mecânicas, elétricas e de sincronização. O modelo TCP/IP tem sua relevância definida de ma- neira oposta àquela apresentada pelo protocolo OSI� O modelo TCP/IP é pouco utilizado, contrastando com a importância do modelo OSI. Por outro lado, os protocolos baseados no modelo TCP/IP são bas- tante utilizados, o que não se observa nos protocolos baseados no modelo OSI� O modelo de referência TCP/IP tem sua origem as- sociada aos primórdios da internet, mais especifica- mente à ARPANET� Tal qual estudamos, a ARPANET é a rede ancestral da internet, que se desenvolveu a partir da integração entre redes, principalmente, acadêmicas� À medida que a escala da ARPANET crescia, au- mentavam os problemas de padronização entre as diferentes redes� Assim, devido à necessidade de integração e padronização, criou-se o que hoje co- nhecemos por “modelo de referência TCP/IP”. A Figura 5 traz um comparativo entre as camadas dos modelos OSI e TCP/IP: 30 Aplicação AplicaçãoApresentação Sessão Transporte Transporte Inter-redesRede Enlace de dados Física Host/ rede Modelo OSI Modelo TCP/ IP Figura 5: Comparação entre os modelos OSI e TCP/IP� Fonte: Adaptada de Wetherall e Tanenbaum (2011). O modelo TCP/IP apresenta quatro camadas apenas, sendo que a camada da aplicação substitui as cama- das da aplicação, apresentação e sessão do modelo OSI, e a camada host/rede do modelo TCP/IP subs- titui as camadas de enlace e física do modelo OSI. 31 A camada inter-redes é responsável pela integração de redes sem conexões, possibilitando com isso que os hosts insiram seus pacotes de dados em qualquer rede e assegurando que esses pacotes trafegarão independentemente até o destino� Tal qual ocorre no sistema de correios, os pacotes são endereçados e inseridos na rede independente e simultaneamente. Isso é possível por causa de um endereço IP atribuído a todo host na rede� Ademais, a camada inter-redes é responsável por rotear os pacotes na rede e evitar o congestionamento� A camada de transporte é responsável tanto por es- tabelecer quanto por manter a conversação entre as entidades pares dos hosts de origem e destino� Essa camada implementa dois protocolos: o Transmission Control Protocol (TCP) e o User Datagram Protocol (UDP)� O TCP é orientado para conexões confiáveis e é res- ponsável por fragmentar o fluxo de bytes e enviá-los para a camada inter-redes; ainda, cuida do controle de fluxo de dados. Por sua vez, o UDP é um protocolo sem conexão e não confiável, por isso é utilizado quando a entrega de um determinado pacote de da- dos deve ser realizada imediatamente, mesmo que em detrimento da precisão� A camada da aplicação, assim como no modelo OSI, disponibiliza todos os protocolos de nível mais alto, relevantes para o usuário, como o TELNET (terminal virtual), o FTP (transferência de arquivos) e o SMTP (correio eletrônico)� Note que o TCP/IP não tem as 32 camadas de sessão e de apresentação, por serem raramente utilizadas na maior parte das aplicações� Finalmente, a camada host/rede apresenta-se como um grande vácuo� O modelo de referência TCP/IP não especifica o que ocorre nesta camada. A única especificação feita pelo modelo é que o host deve se conectar à rede por meio de algum protocolo, de modo que o host possa enviar pacotes IP pela rede� O protocolo referido não é, portanto, especificado e pode variar em função do host ou da rede� Na lite- ratura, raramente há algum tipo de descrição mais detalhada a respeito da camada host/rede� 33 CONSIDERAÇÕES FINAIS Ao longo deste módulo, tivemos a oportunidade de explorar conceitos que permeiam os sistemas para- lelos e distribuídos em um contexto de alto desem- penho e disponibilidade, os quais estão associados aos sistemas de banco de dados� O objetivo aqui foi conhecer as características e os serviços ofertados por Sistema Gerenciador de Banco de Dados (SGBD), evidenciando com isso as suas mais notáveis características. Buscamos identificar os principais meios de arma- zenamento de dados, destacando tanto as carac- terísticas físicas quanto os tipos de organização e manipulação dos dados� Além disso, diferenciamos os tipos de sistema pos- síveis e, logo em seguida, identificamos as particu- laridades dos sistemas cliente-servidor no domínio dos bancos de dados. Ao final do módulo, explora- mos as organizações mais relevantes no tocante aos componentes computacionais, na forma de redes, destacando as características. Em outras palavras, estudamos as características pertinentes à segurança de aplicações, com foco no vazamento de senhas, autenticação, autorização e auditoria em banco de dados� Com isso, compreendemos os tipos de organização de servidores que consideram os conceitos de com- 34 putação em grid e cluster, ao diferenciar as peculia- ridades de cada paradigma� Nesse sentido, abordamos as organizações de con- juntos de componentes computacionais na forma de redes de interconexão aplicados a sistemas pa- ralelos, salientando as características de cada tipo de rede� Sendo assim, identificamos os diferentes tipos de redes de computadores, no contexto dos bancos de dados distribuídos, avaliando as vantagens e desvan- tagens de cada tipo� 35 Referências Bibliográficas & Consultadas BARRETO, J. S. ; ZANIN, A. ; MORAIS, I . S. ; VETTORAZZO, A. S. Fundamentos de segurança da informação. Porto Alegre: SAGAH, 2018 [Biblioteca Virtual]� COLVERO, T. A.; DANTAS, M. A. R.; CUNHA, D. P. Ambientes de clusters e grids computacionais: características, facilidades e desafios. SULCOMP Congresso Sul Brasileiro de Computação, v. 1, n. 1, 2005. Disponível em: http://periodicos.unesc.net/ sulcomp/article/view/798/750�Acesso em: 20 nov� 2020� ELMASRI, R.; NAVATHE, S. B. Sistema de banco de dados. 6. ed. São Paulo: Pearson Addison-Wesley, 2011 [Biblioteca Virtual]. HEUSER, C� A� Projeto de banco de dados� 6� ed� Porto Alegre: Bookman, 2009. [Biblioteca Virtual]. MANNINO, M. V. Projeto, desenvolvimento de apli- cações e administração de banco de dados� 3� ed� Porto Alegre: AMGH, 2014 [Biblioteca Virtual]. MEDEIROS, L. F. Banco de dados: princípios e prática� Curitiba: InterSaberes, 2013 [Biblioteca Virtual]. http://periodicos.unesc.net/sulcomp/article/view/798/750 http://periodicos.unesc.net/sulcomp/article/view/798/750 MOLINARO, L. F. R. Gestão de tecnologia da infor- mação: governança de TI: arquitetura e alinhamento entre sistemas de informação e o negócio. Rio de Janeiro: LTC, 2011 [Minha Biblioteca]. MORI JUNIOR, F. S. ; MACHADO, E. S. ; Autenticação Integrada Baseada em Serviço de Diretório LDAP. São Paulo: IME/USP, 2006. Disponível em: https://bcc.ime.usp.br/tccs/2006/er- ich/html/index.html. Acesso em: 18 nov. 2020. OIKAWA, M. K. Sistemas de Banco de Dados – Notas de Aula. Universidade Federal do ABC - UFABC, 2012. RAMARKRISHNAN, R. Sistemas de gerenciamento de banco de dados. 3. ed. Porto Alegre: AMGH, 2001 [Biblioteca Virtual]. SILBERSCHATZ, A.; SUNDARSHAN, S.; KORTH, H. F. Sistema de Banco de Dados. Elsevier Brasil, 2016. VIDAL, A. G. R. Sistemas Computacionais – Notas de Aula. São Paulo: FEA/USP, 2013. WANDERLEY, A. R. M. C. Gerenciamento de ser- vidores. São Paulo: Érica, 2019 [Biblioteca Virtual]. https://bcc.ime.usp.br/tccs/2006/erich/html/index.html https://bcc.ime.usp.br/tccs/2006/erich/html/index.html INTRODUÇÃO GERENCIAMENTO DE SERVIDORES Segurança da informação Computação em grid e cluster Redes de computadores CONSIDERAÇÕES FINAIS Referências Bibliográficas & Consultadas
Compartilhar