• Nenhum resultado encontrado

Tópicos adicionais

No documento Banco de Dados II (páginas 74-84)

ambiente da Internet , surgiu a linguagem XML, que tem tido uma orte ligação

com os sistemas de bancos de dados. Os tópicos de segurança e utilização de XML serão estudados nesta aula.

7.1 XML

Extensible Markup Language , ou linguagem de marcação extensível, é

uma linguagem que permite a estruturação de documentos. Linguagens muito diundidas, como HTML – Hypertext Transer Protocol –, também se enquadram

na categoria das linguagens de marcação. Porém as marcações em HTML são

rígidas, permitindo que os documentos sejam estruturados somente de acordo com as regras dessa linguagem. Já a linguagem XML permite que os documentos sejam estruturados de acordo com as necessidades do usuário (da linguagem). Nesse contexto, uma marcação reere-se a qualquer elemento de um documento que não sirva como parte de sua saída impressa (SILBERCHARTZ; KORTH; SUDARSHAN, 2006). Por exemplo, partes de um texto podem ser ormatadas de maneira dierente, isso pode ser expresso por meio de marcações.

Dois conceitos principais são usados para construir um documento XML:

elementose atributos(ELMASRI; NAVATHE, 2005). É importante observar que, em

XML, o termo atributo não é usado da mesma maneira que a terminologia habitual em bancos de dados, mas da maneira como é usado em linguagens de marcação para descrição de documentos estruturados. Os atributos ornecem inormações que descrevem os elementos. Existem basicamente dois tipos de elementos, os

simples, que contêm valores de dados, e os complexos, que são construídos hierar-

quicamente a partir de outros elementos, simples ou também complexos.

Tanto a linguagem XML quanto HTML são derivadas da linguagem SGML –

Standard Generalized Markup Language –, que é bastante complexa e contém

elementos que permitem a estruturação de documentos em diversos aspectos. XML ganha destaque por permitir que o usuário crie suas próprias marcações, também chamada de tags , de maneira que o documento que estruturado de

acordo com as regras denidas para uma aplicação, situação ou simplesmente atenda os requisitos de estruturação denidos pelo usuário.

A denição das tags, que poderão ser utilizadas para estruturar um docu-

mento XML, ca armazenada em um arquivo do tipo DTD – Document Type  Denition. A partir da estrutura pré-denida em um DTD, podem-se especicar os

elementos que estarão contidos no documento XML. Essa denição também pode ser eita utilizando-se uma API – Application Program Interace –, que permite

que aplicações possam inserir, excluir e alterar elementos contidos no docu- mento. Essa API é chamada de DOM – Document Object Model .

A partir da denição de uma estrutura para os documentos XML e da criação de tags próprias, podemos considerar que uma nova linguagem de

de metalinguagem. Essa possibilidade az com que documentos XML se tornem

poderosas erramentas de intercâmbio de dados, já que são acilmente proces- sados e transmitidos no ambiente da Internet (a transmissão é eita utilizando

o protocolo HTTP, o mesmo usado para páginas HTML). Ao denir uma estru- tura de documento que seja utilizada como ormato para intercâmbio, diversas aplicações com arquiteturas dierentes podem compartilhar dados de maneira eciente sem que seja necessário reazê-las.

Outra característica marcante da linguagem XML é que a estrutura pode ser denida em um arquivo, enquanto o conteúdo, ou seja, os dados que serão estruturados de acordo com a estrutura denida podem ser armazenados em outro arquivo. Além disso, é importante ressaltar que o conteúdo de um docu- mento XML contém, basicamente, os dados estruturados (geralmente de maneira hierárquica em orma de árvore) e, ao contrário de HTML, não contém inorma- ções sobre como os dados devem ser apresentados.

A orma de apresentação dos dados pode ser determinada de várias maneiras. Duas das mais comuns são a utilização de CSS – Cascade Stlyle  Sheet – ou Folhas de Estilo em cascata, e XSL – Extensible Stylesheet Language .

A denição da orma de apresentação independente do conteúdo e da estru- tura conere à linguagem XML uma fexibilidade muito grande, tornando os documentos acilmente personalizáveis. A Figura a seguir ilustra gracamente a relação entre conteúdo, estrutura e apresentação de um documento XML.

Figura Composição de um documento XML.

Observe que o conteúdo estruturado de acordo com regras pré-denidas dá origem ao documento XML, escrito em uma estrutura hierárquica em árvore. A partir daí já poderíamos utilizar os dados estruturados para uma quantidade muito grande de aplicações. Uma delas seria apresentar ao usuário de um sistema de inormações qualquer os dados contidos no documento. Nesse momento, entram em cena as regras de apresentação, que, aplicadas ao documento XML, azem com que ormatações sejam aplicadas às tagsdenidas quando o documento or

7.1.1 XML e bancos de dados

Embora tenha sido exposto que os elementos e atributos em um documento XML não são exatamente iguais aos atributos em bancos de dados, essa asso- ciação pode ser eita sem prejuízos quando estivermos alando de bancos de dados relacionais. Se uma determinada entidade pode ser denida a partir de

seus atributos, podemos associar a estrutura de uma tabela em um banco de dados relacionais à estrutura de um documento XML.

Algumas abordagens têm sido propostas para a organização do conteúdo de documentos XML para acilitar sua subseqüente consulta e recuperação. Segundo Elmasri e Navathe (2005), as abordagens mais comuns são as seguintes:

uso de SGBD para armazenar documentos como texto

• : documentos XML

podem ser armazenados como atributos (do tipo texto) de registros em bancos de dados relacionais;

uso de um SGBD para armazenar o conteúdo do documento XML como •

elemento de dados: essa abordagem unciona para o armazenamento

de uma coleção de documentos que seguem um esquema (estrutura) especíco XML estabelecida em um DTD. Como todos os documentos têm a mesma estrutura, é possível projetar um banco de dados relacional para armazenar os elementos de dados dentro dos documentos XML. Essa abordagem exigiria um algoritmo de mapeamento para projetar um esquema de banco de dados que seja compatível com a estrutura do documento XML e também para recriar, a partir dos dados armaze- nados, os documentos XML. Esses algoritmos podem ser implementados tanto internamente aos SGBDs quanto como um middleware separado

que não aça parte do SGBD;

projeto de um sistema especializado para armazenamento de dados XML  •

nativos: um novo tipo de sistema de banco de dados baseado no modelo

hierárquico poderia ser projetado e implementado. O sistema incluiria técnicas especializadas de indexação e de consultas e uncionaria para todos os tipos de documentos XML. Considerando que documentos XML são basicamente arquivos de texto, poderia incluir técnicas de compressão para reduzir o tamanho dos documentos para armazenamento;

criação ou publicação de documentos XML customizados a partir de •

bancos de dados relacionais preexistentes: como existem enormes quan-

tidades de dados já armazenados em bancos de dados relacionais, parte desses dados pode precisar ser ormatada como documento para troca ou exibição pela web. Essa abordagem usaria uma camada de sotware middleware separada para tratar as conversões necessárias

entre o banco de dados e os documentos XML.

7.2 Segurança em bancos de dados

Segundo Date (2004), geralmente, questões sobre segurança de dados estão associadas à integridade. No entanto são conceitos bem dierentes. Observe a dierença entre eles a seguir.

Segurança

• : signica proteger os dados contra usuários não-autorizados;

Integridade

• : signica proteger os dados de usuários autorizados.

Nesta parte da aula, o nosso interesse é puramente a segurança. A segu- rança em banco de dados é uma área bastante ampla, que, segundo Elmasri e Navathe (2005), se reere a muitas questões.

Questões legais e éticas reerentes ao direito de acesso a certas

•

inormações.

Questões políticas no nível governamental, institucional ou corporativo,

•

como quais tipos de inormações não devem ser tornados disponíveis publicamente.

Questões relacionadas ao sistema, como os níveis de tratamento de

•

segurança (SGBD, sistema operacional, aplicação, etc.).

Necessidades de algumas organizações em categorizar níveis de segu-

•

rança e enquadrar os dados nesses níveis.

Quando o assunto é segurança, é comum que se pense também sobre quais os tipos de ameaças queremos nos prevenir. Os objetivos principais da segu- rança em bancos de dados é eliminar ameaças que aetem a integridade, a disponibilidade e a confdencialidade dos dados. Para proteger os bancos de

dados contra os diversos tipos de ameaças, algumas medidas podem ser imple- mentadas, como: controle de acesso • controle de inerência • controle de fuxo • criptograa •

Uma das maneiras de garantir o controle de acesso é denir contas para os usuários. Geralmente o DBA – Data Base Administrator – possui uma conta de sistema, ou conta de superusuário, que habilita capacidades que não estão

disponíveis para os usuários comuns de um banco de dados. Entre essas capaci- dades estão: criação de contas, concessão de privilégios, revogação de privilé- gios e atribuição de nível de segurança.

Para melhorar o esquema de segurança, somente devem ter uma conta de acesso usuários que tenham uma necessidade legítima de acessar o banco de dados. O sistema de banco de dados também deve manter inormação de todas as operações que são aplicadas por um usuário durante cada sessão de conexão, que

consiste em uma seqüência de interações que um usuário realiza desde o momento de conexão (login) até o momento de desconexão (logo ). Essas inormações, asso-

ciando também o terminal a partir do qual os comandos oram enviados, podem ser armazenadas em um log de acesso do sistema (ELMASRI; NAVATHE, 2005).

Podemos destacar dois tipos principais de controle de acesso: o discrimina- tório e o mandatário.

Segundo Date (2004), no caso do controle de acesso discriminatório, deter-

minado usuário terá, em geral, direitos de acesso (também chamados de privilé- gios) dierentes sobre objetos dierentes. Além disso, há bem poucas limitações inerentes a respeito de quais usuários podem ter privilégios dierentes sobre dierentes objetos (por exemplo, um usuário A tem direitos sobre um objeto X, mas não sobre Y, enquanto um usuário B tem direitos sobre Y, mas não sobre X), tornando esse modelo bastante fexível.

No caso do controle mandatário, cada objeto de dados é assinalado com

certo nível de classicação e cada usuário recebe certo nível de liberação. O acesso a um determinado objeto de dados só pode ser eito por usuários com a liberação apropriada. Os esquemas mandatários tendem, assim, a ser hierár- quicos por natureza, e, desse modo, comparativamente rígidos. Outra erramenta que pode ser usada para segurança em bancos de dados é a criptograa.

7.2.1 Criptograa

A criptograa é um recurso de segurança muito útil quando os dados se encontram nas mãos de usuários ilegítimos, possivelmente por um erro no canal de comunicação entre computadores (rede) ou mesmo aproveitando de uma

vulnerabilidade em um aplicativo ou na própria transmissão de dados. Nesse caso, o uso de criptograa permite que os dados sejam protegidos, já que, mesmo de posse das inormações presentes no banco de dados, elas não estão escritas de orma inteligível.

O algoritmo de criptograa em si não necessita ser secreto, porém a chave usada para criptograar e descriptograar os dados deve ser de posse única de usuários que tenham real necessidade de acesso a esses dados. Em bancos de dados, a utilização de criptograa aumenta a segurança dos dados se eles orem armazenados e transmitidos na orma de texto cirado, pois, ao serem acessados indevidamente, transportados sicamente, ou interceptados em uma comunicação, estarão seguros.

Existem diversas técnicas de criptografa, algumas delas são baseadas em substi- tuição, outras em permutação de caracteres em um texto puro. Outros ainda utilizam essas duas técnicas combinadas, como o DES – Data Encryption Standard –, que oi desenvolvido pela IBM e adotado como padrão ederal dos Estados Unidos em 1977 (DATE, 2004). Para usar o DES, o texto comum é dividido em blocos de 64 bits e cada bloco é criptograado com o uso de uma chave de 64 bits.

Na medida em que computadores se tornaram mais rápidos e precisos, as chaves de 64 bits usadas no DES oram se tornando relativamente pequenas, já

que ataques de orça bruta (testar todas as combinações possíveis) se tornaram viáveis em algumas situações. Assim outros padrões ganharam orça, como o AES – Advanced Encryption Standard –, que utiliza chaves de 128, 192 e 256 bits, muito mais seguras.

Existe ainda o modelo de criptograa de chave pública. Os algoritmos de

chave pública são baseados em operações matemáticas, em vez de operações sobre bits. Além disso, dierem da então criptograa tradicional por utilizarem

duas chaves ao invés de uma só. As duas chaves são chamadas de pública e privada. A privada é sempre mantida em segredo (ELMASRI; NAVATHE, 2005).

Como sugerido no nome desse modelo, a chave pública é tornada pública para outros usarem, ao passo que a privada é conhecida apenas por seu proprie- tário. Um algoritmo de criptograa de chave pública genérica se baseia em uma chave para cirar e outra chave dierente, porém relacionada, para decirar, de acordo com os seguintes passos:

cada usuário gera seu par de chaves para cirar e decirar os dados;

cada usuário coloca uma das duas chaves em um registro público ou em

•

outro arquivo acessível (essa é a chave pública). A outra chave que a acompanha é mantida secreta;

se um remetente deseja enviar uma mensagem privada para um desti-

•

natário, o remetente cira a mensagem utilizando a chave pública do destinatário;

quando o destinatário receber a mensagem, decira a mensagem utili-

•

zando a chave privada do destinatário. Nenhum outro receptor pode decirar a mensagem, já que somente o destinatário conhece a sua própria chave privada.

Portanto os conceitos de segurança em bancos de dados são muito impor- tantes, já que aspectos como a condencialidade são requisitos para um banco de dados conável. Considerando que existem muitos sistemas baseados na

web, aspectos de segurança cam ainda mais em evidência e devem poder ser

aplicados às novas tecnologias, como XML.

Nesta aula, apresentamos os conceitos undamentais da linguagem XML e

algumas das possibilidades de utilizá-la como uma erramenta para a área de bancos de dados. Essa tecnologia pode ser usada tanto como ormato para inter- câmbio na troca de inormações, quanto ormato para armazenamento ou ainda como padrão para apresentação dos dados ao usuário. Outro tópico abordado oi a segurança em bancos de dados, que muitas vezes não é percebida pelo

usuário. Apresentamos os métodos baseados em controle de acesso e também conceitos de criptografa.

1. Sobre XML, assinale a alternativa incorreta.

a) Pelo ato da transerência de dados em XML ser eita utilizando o mesmo protocolo que HTML, o protocolo HTTP, é muito diícil para os sistemas de bancos de dados decodicar as inormações.

b) XML, assim como HTML, é uma linguagem de marcação.

c) As marcações de um documento XML podem ser denidas em um docu- mento chamado DTD e podem também refetir o domínio da aplicação em questão.

d) A ormatação dos dados contidos em um arquivo XML pode ser denida em outro arquivo, por exemplo, do tipo CSS.

2. A segurança em bancos de dados é um dos aspectos mais importantes. Sobre segurança, assinale a alternativa correta.

a) A segurança em um banco de dados é implementada diretamente e somente na aplicação que interage como banco de dados.

b) A única orma de implementar segurança em um banco de dados é por meio do controle de acesso eetuado no SGBD.

c) A criptograa de chave pública é uma maneira de proteger os dados mesmo que eles caiam nas mãos de pessoas não autorizadas.

d) Segurança em bancos de dados é um sonho impossível, já que os dados sempre são armazenados na sua orma denitiva e qualquer um que os acessar pode decirá-los sem problema algum.

3. A separação entre estrutura, conteúdo e ormatação é uma caracterís- tica marcante da linguagem XML. Como isso poderia se traduzir em uma vantagem no contexto de bancos de dados?

4. Foi comentado anteriormente que existem diversas técnicas de segurança para a área de bancos de dados. Essas técnicas devem ser utilizadas sepa- radamente, ou podemos implementar um “pacote” de segurança contendo diversas técnicas?

Considerando os objetivos da aula, que estão relacionados aos temas XML e segurança em banco de dados, vamos comentar as questões propostas nas atividades para vericar se você os atingiu.

Na atividade um, a alternativa (a) está incorreta, já que o ato de dados em XML serem transmitidos utilizando o protocolo HTTP representa uma das vantagens desse padrão, pois uma série de problemas de transmissão de dados já está resolvida. Aliás, essa é uma das razões de XML estar se tornando um padrão cada vez mais em uso. A alternativa (b) é correta, pois como já oi exposto, a linguagem XML é uma linguagem de marcação, assim como HTML, e a construção dos documentos é baseada na utilização de tags. A alternativa (c) expressa corretamente uma possibilidade de separação da

defnição da estrutura do documento e do preenchimento do seu conteúdo. A alternativa (d) apresenta outra característica da linguagem XML, que é a possibilidade de defnir a ormatação de cada tipo de marcação em um arquivo separado.

Na atividade dois, a alternativa (a) é incorreta, pois a implementação

da segurança em bancos de dados pode ser eita em diversos níveis, de aplicação, SGBD, etc., e não somente nas aplicações. A alternativa (b) é

incorreta, pois o controle de acesso é uma das ormas de garantir a segu- rança dos dados, porém não é a única. A alternativa (c) é a resposta correta,

já que dados criptograados com a tecnologia de chaves públicas somente podem ser decirados com a utilização de uma chave provada, que somente um proprietário possui. Dessa maneira, outras pessoas não podem acessar indevidamente os dados. A segurança da inormação é um aspecto chave na sociedade atual. Muitos esorços têm sido realizados nesse sentido, porém, ainda existem muitas vulnerabilidades a serem solucionadas. Entretanto há ambientes seguros para a troca de inormações, por isso não podemos consi- derar a segurança um sonho, já que em muitos sistemas a diculdade em burlar os mecanismos de segurança seria muito grande. Diante do exposto, a alternativa (d) é alsa.

A atividade três chamou você para refetir sobre uma das principais caracte-

rísticas da linguagem XML, que é a separação entre conteúdo, estrutura e apresen- tação. No contexto de bancos de dados, podemos utilizar essas características de diversas ormas dierentes. Uma delas seria a possibilidade de armazenar grandes quantidades de documentos XML sem a necessidade de armazenar, em conjunto, os aspectos de ormatação de cada um, já que um único esquema de ormatação pode ser denido em separado e aplicado a todos os documentos armazenados. Outra possibilidade seria personalizar a apresentação dos dados para dierentes categorias de usuários, ou ainda, validar, baseando-se em uma estrutura pré-denida, os dados contidos em um documento antes de armaze- ná-los no banco de dados.

Na atividade quatro, você armou que a segurança de um sistema de

banco de dados tem vários níveis, por exemplo, os usuários, a aplicação, o SGBD e os próprios dados. Algumas técnicas de segurança, como o controle de acesso, atuam em apenas uma dessas camadas, sozinha não é o suciente para garantir a segurança das inormações. A junção de técnicas soa como uma solução mais completa e ecaz, já que, se uma barreira or vencida, ainda restarão outros mecanismos para impedir que os dados sejam prejudicados ou acessados indevidamente. Por exemplo, eetuar o controle de acesso com senhas criptograadas ou, ainda, criptograar as denições de permissão para

No documento Banco de Dados II (páginas 74-84)

Documentos relacionados