5. Bases de dados: as questões de segurança, de criptografia e de proteção de dados - PDF
Download "5. Bases de dados: as questões de segurança, de criptografia e de proteção de dados"
Laura Delgado Sequeira
1 5. Bases de dados: as questões de segurança, de criptografia e de proteção de dados A proteção jurídica das bases de dados em Portugal é regulada pelo Decreto-Lei n.º 122/2000, de 4 de Julho, que transpõe para a ordem jurídica portuguesa a Diretiva do Parlamento Europeu e do Conselho n 96/9/CE, de 11 de Março. Foi adotado um regime de dupla proteção sobre as bases de dados, e em que se estatui que: a) As bases de dados que constituam criações intelectuais, i.e., que pela seleção ou disposição dos respetivos conteúdos, constituam criações intelectuais, são protegidas em sede de direito de autor (Cap. II). b) Quando a obtenção, verificação ou apresentação do conteúdo de uma base de dados represente um investimento substancial do ponto de vista qualitativo ou quantitativo, o seu fabricante goza do direito de autorizar ou proibir a extração
2 e ou a reutilização da totalidade ou de uma parte substancial, avaliada qualitativa ou quantitativamente, do seu conteúdo. A criação das bases de dados pressupõe, mais uma vez, que se tratem de obras ou dados autorizados pelo autor da obra ou que sejam conteúdos de livre utilização. O titular de uma base de dados criativa goza do direito exclusivo de efetuar ou autorizar: a. A reprodução permanente ou transitória, por qualquer processo ou forma, de toda ou parte da base de dados; b. A tradução, a adaptação, a transformação, ou qualquer outra modificação da base de dados; c. A distribuição do original ou de cópias da base de dados; d. Qualquer comunicação pública, exposição ou representação públicas da base de dados; e. Qualquer reprodução, distribuição, comunicação, exposição ou representação pública da base de dados derivada, sem prejuízo dos direitos de quem realiza a transformação. Exceções à proteção: a. A reprodução para fins privados de uma base de dados não eletrónica; b. As utilizações feitas com fins didáticos ou científicos, desde que se indique a fonte, na medida em que isso se justifique pelo objetivo não comercial a prosseguir; c. As utilizações para fins de segurança pública ou para efeitos de processo administrativo ou judicial; d. As restantes utilizações livres previstas no direito de autor nacional, nomeadamente as constantes no artigo 75. do Código de Direito de Autor e dos Direitos Conexos, sempre que se mostrem compatíveis. A temática da segurança é recorrente, dada a necessidade de se criarem canais cada vez mais seguros numa rede que está aberta à participação de todos. A identificação de cada um dos stakeholders na transação é o primeiro passo neste processo de credibilização do media Internet.
3 A segurança é sem dúvida um dos aspetos que mais importância tem, se não o principal, no que respeita ao comércio eletrónico. Importa ao utilizador uma vez que fornecem dados pessoais e financeiros importantes e importa também à entidade que disponibiliza o serviço uma vez que têm que garantir a credibilidade dos dados enviados assim como garantir a confidencialidade das informações dos consumidores para que estas não possam ser utilizadas de forma abusiva quer por hackers ou por empregados com más intenções. O primeiro passo para se falar de segurança, após falarmos na identificação dos stakeholders, é verificar quais os principais tipos de ameaças que podem existir a essa segurança. Uma conhecida companhia de software resumiu os principais tipos de ameaças que podem existir: Unauthorized Access (Acesso Não Autorizado), consiste em aceder ilicitamente ou abusar de um sistema informático para intercetar transmissões e roubar informação relevante. Data Alteration (Alteração de Dados), consiste em alterar os conteúdos de uma transação durante uma transmissão, tais como user names, números de cartões de crédito, quantias envolvidas, etc. Monitoring (Monitorização), consiste em espiar informações confidenciais que são trocadas durante uma transação. Spoofing, consiste num site falso passando por servidor de modo a aceder ilicitamente a dados de potenciais clientes ou simplesmente tentando sabotar o serviço prestado pelo servidor. Service Denial (Negação de Serviço), consiste na negação de acesso ao serviço, ou até ao encerramento do mesmo. Repudiation (Repudiação), ocorre quando uma das partes envolvidas na transação nega que a mesma aconteceu ou foi autorizada. SQL injection: é uma técnica usada para tirar proveito das vulnerabilidades de entrada não validadas para passar comandos SQL através de uma aplicação Web para execução num banco de dados. Invasores tiram proveito do fato de que os programadores muitas vezes compõem seus comandos SQL com os parâmetros fornecidos pelo usuário, e podem, portanto, inserir comandos SQL
4 dentro desses parâmetros. Como resultado o invasor pode executar consultas SQL arbitrárias e/ou comandos no servidor de banco de dados de back-end através da aplicação web. Entende-se por confidencialidade a necessidade de tornar impercetível o conteúdo de uma transação, tanto a informação referente ao valor e características da transação como os dados referentes aos intervenientes dessa transação. O modo mais eficaz de resolver este problema passa pela encriptação dos dados, recorrendo a diversos algoritmos de encriptação. A integridade dos dados deve ser garantida de modo a prevenir que estes sejam alterados por alguém não autorizado durante o seu percurso. O conceito de integridade dos dados não é novo, há alguns anos a generalidade dos sistemas de transmissão eram analógicos o que implicava uma maior taxa de erros durante a transmissão em relação aos sistemas digitais hoje mais utilizados. Para se detetar estes erros os protocolos de mais baixo nível começaram a implementar um sistema de deteção de erros. Este sistema passava por incluir na mensagem um número, o checksum, que era obtido a partir de umas determinadas operações aplicadas à própria mensagem. Este número era difundido juntamente com a mensagem e ao chegar ao recetor as mesmas operações eram efetuadas e o número resultante comparado com o checksum. Este tipo de deteção foi adaptado para protocolos de mais alto nível de modo a garantir a integridade das mensagens. Obviamente que a complexidade aumentou, uma vez que neste caso o elemento que poderá introduzir erro normalmente poderia alterar também o valor da verificação de modo a não ser detetado qualquer erro, o que seria muito difícil de acontecer para os erros de transmissão. Autenticação
5 Autenticação é o processo em que se verifica a identidade do utilizador. A autenticação consegue-se havendo a partilha de um segredo entre o cliente e o servidor. O processo mais utilizado para a autenticação é de longe o par username / password. Neste processo é introduzido inicialmente o username que identifica o cliente e posteriormente a password para provar, ou seja, autenticar a identidade do cliente. Mas este não é o único processo, existe hoje o conceito de assinatura digital ( Digital Signature ). Existem três tipos de assinaturas digitais, a assinatura digital de chave secreta, a assinatura digital de chave pública e a assinatura baseada em funções de sentido único. A assinatura digital de chave secreta consiste num processo de encriptação em que só o servidor e o cliente conhecem a chave utilizada. A assinatura digital de chave pública baseia-se na utilização da chave pública e privada de cada interveniente. Estas chaves serão fornecidas por uma entidade certificadora. A assinatura digital baseada em funções de sentido único, garante unicamente a autenticação, esta assinatura também utiliza as chaves públicas e privadas, processando-as através de funções de hash. A certificação é utilizada para verificar a veracidade da assinatura digital, de modo a que esta não seja forjada, ou seja, deve existir um processo que permita saber se o utilizador que envia a sua assinatura digital é realmente o seu titular. Para isto existem os certificados digitais que são emitidos por entidades certificadoras. Encriptação A encriptação funciona através da codificação do texto de uma mensagem por uma chave. A encriptação tradicional ou encriptação simétrica utiliza a mesma chave tanto para a codificação como para a descodificação. Surgiu então novo modelo de encriptação designado por sistemas de encriptação por chave pública ( Public Key Encryption Systems ) ou sistemas de encriptação
6 assimétricos ( Asymmetric Encryption Systems ). Nestes sistemas as chaves existem aos pares, em que uma delas serve para codificar a mensagem e a outra para a respetiva descodificação. Deste modo cada interveniente numa transação, normalmente o cliente e o servidor, têm cada um associados um par de chaves únicas. Uma dessas chaves é chamada de chave pública ( Public Key ), esta chave é utilizada para codificar as mensagens e é largamente distribuída. A outra chave, designada por chave privada ( Private Key ), está cuidadosamente guardada e é utilizada para desencriptar mensagens recebidas. Nestes sistemas um dos intervenientes que necessite enviar uma mensagem a outro, vai encriptar a mensagem recorrendo ao algoritmo público do destinatário. Deste modo a mensagem só pode ser unicamente descodificada através da chave privada do destinatário, ficando assim livre de interceções. Este sistema pode também ser utilizado para criar assinaturas digitais ( Digital Signatures ) seguras e livres de serem forjadas. A maior parte das implementações práticas de encriptações seguras na Internet combinam sistemas de encriptações tradicionais ou simétricos com os sistemas assimétricos. A encriptação por chave pública é utilizada para negociar a chave simétrica secreta que vai ser utilizada para encriptar os dados. Existem no mercado alguns protocolos que têm como objetivo a realização de trocas seguras de dados em redes tipicamente abertas, como a Internet. Os três mais utilizados, ou pelo menos mais conhecidos são o SSL, o S-http e o SET. O SSL é um protocolo de baixo nível, o que garante a independência relativamente a protocolos de camadas superiores, permitindo deste modo a utilização destes de forma segura. O S-HTTP é um protocolo da camada de aplicação e pretende utilizar o HTTP como base de funcionamento, tornando-o seguro.
7 Existe também o SET, que foi desenvolvido para a permitir a realização de transações envolvendo cartões de crédito. A aceitação deste protocolo está facilitada uma vez que é uma iniciativa de dois gigantes do mundo dos cartões de crédito e também por duas empresas de grande prestígio a nível de software.