Você está na página 1de 92

INSTITUTO SUPERIOR POLITÉCNICO

METROPOLITANO DE ANGOLA








SISTEMAS DISTRIBUÍDOS UTILIZANDO
MÉTODOS DE AUTENTICAÇÃO













LUANDA
2013





INSTITUTO SUPERIOR POLITÉCNICO
METROPOLITANO DE ANGOLA


ALUNO: Oliveira Paulo Bongo



SISTEMAS DISTRIBUÍDOS UTILIZANDO MÉTODOS DE
AUTENTICAÇÃO














LUANDA
2013

Monografia apresentada ao Curso de
Licenciatura em Ciências da computação
como requisito parcial para obtenção do
título de licenciado em Ciências da
Computação, sob orientação do Professor
Engenheiro Macaba Nobre B. Pedro.


SISTEMAS DISTRIBUÍDOS UTILIZANDO MÉTODOS DE
AUTENTICAÇÃO



POR: OLIVEIRA PAULO BONGO
Orientador: Professor Engenheiro Macaba Nobre B. Pedro

Monografia apresentada ao Instituto Superior Politécnico
metropolitano de Angola, como requisito parcial para obtenção
grau de licenciado em Ciências da Computação.

Aprovado por:
Dionísio Teixeira
(Presidente da banca)

Thais costa
1º Vogal, Prof. Eng. ª.

Macaba Pedro
2º Vogal, Prof. Eng. º.

Tutor
Prof. Eng.º Macaba Nobre Pedro
(Orientador)



Aprovado Aprovado com restrições Não Aprovado

Grau de aprovação:____18 valores___

LUANDA
___30______DE_______Dezembro______________________________DE 2013

x
































Bongo, Oliveira Paulo.
Sistemas Distribuídos Utilizando Métodos de Autenticação.
Estudo de métodos para segurança de um Sistema Distribuído/ Oliveira Paulo
Bongo.
Bongo.- Maianga, Luanda: 2013.
Nº de folhas, 67p de 93f.
Monografia apresentada ao Curso de Licenciatura em Ciências da computação
como requisito parcial para obtenção do título de licenciado em Ciências da
Computação –
Instituto Superior Politécnico Metropolitano-IMETRO 2013,
Orientador: Professor, Engenheiro Macaba Nobre B. Pedro

1. Sistemas Distribuídos. 2. Segurança. 3. Autenticação I. Oliveira Bongo
II. Instituto Superior Politécnico Metropolitano de Angola III. Titulo.





DEDICATÓRIA




















Dedico este trabalho em especial aos meus pais, Paulo de
Almeida e Celina Bongo, aos meus irmãos Matias Bongo
e Alice Paulo, ao meu cunhado Sílvio André, a Minha
Companheira e aos meus filhos Ricardo Bongo e Émerson
Bongo.



AGRADECIMENTOS

Primeiramente quero agradecer a Deus pai e criador do Universo, por estar sempre do
meu lado e me dar forças para enfrentar sempre os novos desafios que a vida me propõe.
Agradecimento especial aos meus pais pela força carinho e mimos que sempre me deram
e também pelo apoio moral e financeiro para poder suportar os anos universitários.
Um abraço com muito carinho e consideração para a turma que durante este longo
período me acompanhou especialmente a António Januário Manuel, António de Oliveira Jorge,
Miguel Sebastião Ferreira, Panzo Ngoto, Epifânio Manuel, Milton Francisco, Iracelma
Calambo, Teresa Solange, Maura Júlio, Edvaldo Vasco, Guti, Quim Maquenda, Vasco Fumba,
Josemar da Costa, Neide Delgado, Yubi Djavan, Aleixo Martins, Damião Sembê, Dilson Sousa,
Ludi, Josemar da Costa e Edgar Benguela.
Aos professores que serviram de mestres e exemplos de profissionais especialmente o
meu orientador Professor engenheiro Macaba Nobre B. Pedro, não vou citar mais nomes mas
sei que vos guardo bem no fundo da minha mente e coração.
Por fim não posso deixar de agradecer aos meus amigos e familiares em geral pelo
carinho que tem demostrado e também pela compreensão força e tempo que passam comigo,
só Deus sabe o que passamos todos os dias para chegar ate ao topo das dificuldades e conquistas
diárias.



EPÍGRAFE
























"O sucesso nasce do querer, da
determinação e persistência em se
chegar a um objetivo. Mesmo não
atingindo o alvo, quem busca e vence
obstáculos, no mínimo fará coisas
admiráveis."
José Alencar
i



RESUMO


Esse trabalho apresenta conceitos e fundamentos sobre segurança em sistemas distribuídos que
utilizam serviços de autenticação web. O enfoque principal é buscar uma solução para ataques
em redes e sistemas e fazer uma reflexão sobre os perigos a que uma rede está sujeita e ações
que podem ser executadas para prover segurança. O presente projeto baseia-se na pesquisa e
analise de serviços e seus métodos tais como as falhas e vulnerabilidades a que os mesmos estão
expostos, servindo de inspiração para criação de um método eficaz e de baixo custo de
implantação que diminua consideravelmente o risco de invasões contra esses ataques em
sistemas de rede evitando a perda de informações para utilizadores não desejados. Este material
traz para um administrador de redes o conhecimento de como estas tecnologias podem atuar
em diversas camadas, o administrador de rede terá uma visão mais ampla sobre as necessidades
de segurança de uma empresa, facilitando assim o planeamento e implementação de uma
política de segurança mais viável para manter o seu sistema seguro.

Palavras-Chave: Sistemas Distribuídos, Segurança, Vulnerabilidades, Invasões.



ii



ABSTRACT


This paper presents concepts and fundamentals of security using distributed web services
authentication systems. The main focus is to seek a solution to attacks on networks and systems,
and to reflect on the dangers to which a network is subject and actions that can be performed to
provide security. This project is based on research and analysis services and their methods such
as faults and vulnerabilities to which they are exposed , serving as inspiration for creating an
effective and inexpensive method of deployment that greatly decrease the risk of invasions
against these attacks on network systems avoiding the loss of information to unwanted users .
This material brings a network administrator knowledge of how these technologies can work in
several layers, the network administrator will have a broader view on the security needs of a
company, thus facilitating the planning and implementation of a security policy more feasible
to keep your system safe.
Keywords: Distributed Systems, Security Vulnerabilities, Intrusion.

iii


LISTA DE ILUSTRAÇÕES

Figura 1 - Computadores ligados em rede 11
Figura 2 – Computadores independentes. 12
Figura 3 - Sistemas interligados em rede, Computação Distribuída. 13
Figura 4- Ilustração de exemplo de ligação de computadores em rede. 19
Figura 5- Ilustração de ligação, Internet administrada separadamente. 20
Figura 6-Ilustração de exemplo sobre computação Móvel e Ubíqua. 21
Figura 7 - Principais obstáculos para implementação da segurança. 22
Figura 8 - Ilustração de mecanismo de segurança, autenticação 28
Figura 9 - Modelos de tokens SecureID 34
Figura 10 - Tela do OpenId, acesso através de contas existentes 41
Figura 11 - Tela de Autorização do Twitter 47
Figura 12 - Tela de Autorização do Yahoo! 48
Figura 13 - Tela de login do passwordbox. 49
Figura 14 - Página inicial do passwordbox. 50
Figura 15 - Página de confirmação de registro 51
Figura 16 - Página inicial do Google Chrome, 52
Figura 17 - Formulário de login e senha de usuário 57
Figura 18 - Formulário de cadastro do usuário 62
Figura 19 - Painel de administração do sistema 63
Figura 20 - Banco de dados que interage com o sistema 63
Figura 21 – Funcionamento do método de login e senha 65
Figura 22 - Funcionamento do sistema de autenticação 65
Figura 23 - Esquema de ligaçao de acesso do wamp para o passwordbox 67
iv



LISTA DE TABELAS

Tabela 1- Tabela de ilustração de credenciais em cache 36
Tabela 2 - Recursos funcionais do passwordbox 52
Tabela 3 -Código para implementação do mecanismo de login e senha. 59
Tabela 4 - Código para implementação do mecanismo de login e senha. 60
Tabela 5 - Código para implementação do mecanismo de login e senha. 61

















v



LISTA DE ABREVIATURAS E SIGLAS

CPF - Cadastro de Pessoas Físicas (Receita Federal do Brasil).
DES - Data Encryption Standart.
DNS - Domain Name System - Sistema de Nomes de Domínios.
HW - Hardware.
IE (8, 9, 10) – Internet Explorer.
IMAP - (Internet Message Access Protocol), "Protocolo de acesso a mensagem da internet.
MIT - Massachussets Institute of Technology.
OpenLDAP - Lightweight Directory Access Protocol (LDAP).
PCS - computadores pessoais ou PC (do inglês Personal Computers).
PIN – Número de identificação pessoal (Personal Identification Number).
SA - Servidor de Autenticação.
SD - Sistemas Distribuídos.
SW - Software.
TI - Tecnologia de Informação.
Web - Rede mundial de computadores, palavra inglesa, significa teia ou rede.
Www - World Wide Web, que significa rede de alcance mundial.
SHA - Secure Hash Algorithm.






SUMÁRIO

RESUMO .......................................................................................................................... i
ABSTRACT ..................................................................................................................... ii
LISTA DE ILUSTRAÇÕES ........................................................................................... iii
LISTA DE TABELAS .................................................................................................... iv
LISTA DE ABREVIATURAS E SIGLAS ...................................................................... v
CAPÍTULO I - INTRODUÇÃO ...................................................................................... 1
1. INTRODUÇÃO .................................................................................................... 1
1.1. DESCRIÇÃO DO PROBLEMA ...................................................................... 2
1.2. HIPÓTESES ..................................................................................................... 3
1.3. JUSTIFICATIVA ............................................................................................. 4
1.4. OBJECTIVOS .................................................................................................. 5
1.4.1. Objetivos Gerais ......................................................................................... 5
1.4.2. Objetivos Específicos ................................................................................. 5
1.5. METODOLOGIA ............................................................................................. 6
1.6. RESULTADOS ESPERADOS E MOTIVAÇÃO ........................................... 6
1.7. DESCRIÇÃO DOS CAPÍTULOS ................................................................... 7
CAPITULO II - SISTEMAS DISTRIBUÍDOS ............................................................... 9
2. Evolução Dos Sistemas Distribuídos .................................................................... 9
2.1. Condicionantes Da Evolução ....................................................................... 10
2.2. Sistemas Distribuídos - Definição ................................................................ 11
2.2.1. Visão Geral ........................................................................................... 12
2.2.2. Objetivos dos Sistemas Distribuídos .................................................... 13
2.2.3. Características de um sistema distribuído ............................................. 14
2.2.4. Características notáveis (continuação) .................................................. 15
2.3. Vantagens e Desvantagens ........................................................................... 17
2.3.1. Vantagens .............................................................................................. 17
2.3.2. Desvantagens ........................................................................................ 17
2.4. Exemplos De Sistemas Distribuídos ............................................................ 19
2.4.1. A Internet .............................................................................................. 19
2.4.2. A Intranet .............................................................................................. 20
2.4.3. Computação Móvel e Ubíqua ............................................................... 21
2.5. Segurança Em Sistemas Distribuídos ........................................................... 22


2.5.1. Divisão da Segurança em Sistemas Distribuídos: ................................. 24
2.5.2. Segurança em um sistema está relacionado a ........................................... 24
2.5.3. Tipos de ameaça de segurança a Serem consideradas: ............................. 25
2.6. Políticas de Segurança .................................................................................. 25
2.6.1. Classes de ameaças dos sistemas de computador ................................. 25
2.6.2. Métodos em que Ocorrem Violações de Segurança ............................. 26
2.6.3. Métodos de infiltração: ......................................................................... 27
2.7. Resumo Do Teórico ........................................................................................ 29
CAPÍTULO III – AUTENTICAÇÃO ............................................................................ 30
3. Autenticação De Utilizadores ............................................................................. 30
3.1. Autenticação Baseadas No Conhecimento (O Que Se Sabe) ....................... 30
3.1.1. Perguntas Randômicas (Random Queries) ........................................... 31
3.1.2. Análise das Soluções Baseadas no Conhecimento ............................... 31
3.1.3. Autenticação Baseadas na Propriedade (O que se tem) ........................ 32
3.1.4. Mecanismos de Autenticação Baseados em Tokens ............................. 32
3.1.4.1. SecureID ......................................................................................... 33
3.1.4.2. Sistemas de Autenticação ............................................................... 34
3.2. Protocolos De Autenticação ........................................................................... 34
3.2.1. Introdução Ao Kerberos: ...................................................................... 35
3.2.1.1. Como utilizar o Kerberos: .............................................................. 35
3.2.1.2. Para o administrador: ...................................................................... 36
3.2.1.3. Limitações do Kerberos: ................................................................ 37
3.2.2. O Protocolo Ldap .................................................................................. 37
3.2.2.1. Simplificações do Protocolo LDAP ................................................ 38
3.2.2.2. Características do LDAP ................................................................ 38
3.2.3. OpenLDAP ............................................................................................ 38
3.2.4. Resumo Teórico .................................................................................... 39
3.3. Técnicas E Servidores De Autenticação ......................................................... 40
3.3.1. O OpenID ................................................................................................. 40
3.3.1.1. Diferenças entre OpenID e os padrões atuais.................................... 42
3.3.1.2. Sites que aderiram ao OpenID ........................................................... 43
3.3.2. O CAS ....................................................................................................... 43
3.3.2.1. Fluxo de Autenticação ........................................................................... 44
3.3.3. O OAUTH ................................................................................................. 45
3.3.3.1. Terminologia ..................................................................................... 45


3.3.3.2. Benefícios .......................................................................................... 46
3.3.3.3. Experiência do Usuário ..................................................................... 47
3.4. O PasswordBox .............................................................................................. 48
3.4.1. Registro de senhas .................................................................................... 49
3.4.1.1. Funcionamento .................................................................................. 50
3.4.1.2. Benefícios: ......................................................................................... 51
3.4.2. Resumo Teórico ........................................................................................... 53
CAPÍTULO IV - PROPOSTA DE METODOLOGIA PARA AUTENTICAÇÃO....... 54
4.1. Implementação De Mecanismos De Autenticação .............................................. 54
4.1.1. Procedimentos de pesquisa............................................................................ 54
4.1.1.1. Tipo de Pesquisa ................................................................................... 54
4.1.1.2. Estrutura física ....................................................................................... 55
4.1.1.3. Tecnologias ............................................................................................ 55
4.1.1.3.1. PHP ................................................................................................. 55
4.1.1.3.2. HTML 5 e CSS3 ................................................................................. 56
4.1.1.3.3. MySQL e Wamp server .................................................................. 56
4.2. Implementação ..................................................................................................... 57
4.2.1. Testes ........................................................................................................ 64
4.2.2. Esquema Funcional .................................................................................. 64
4.3. Considerações Finais ........................................................................................... 66
4.3.1. Trabalhos Futuros .......................................................................................... 67
5. REFERÊNCIAS BIBLIOGRÁFICAS ....................................................................... 68
6. APÊNDICE ................................................................................................................ 71




1



CAPÍTULO I - INTRODUÇÃO

1. INTRODUÇÃO

A segurança da informação tornou-se um fator prioritário na tomada de decisões e nos
investimentos das empresas, tornando-se parte do negócio. Grande parte das empresas e
utilizadores de sistemas tem orçamento específico para TI (Tecnologia de Informação) e para
área de segurança. O tema escolhido para esta monografia foi, devido a importância da
segurança no cenário atual de TI. Este trabalho visa apresentar métodos e técnicas de
autenticação integradas em sistemas distribuídos, realizar um estudo e trazer informações sobre
técnicas e tecnologias atuais empregadas, visando a segurança de redes.
Diversos especialistas acreditam que, com a rápida evolução tecnológica, nenhum
ambiente é totalmente seguro, e que, para minimizar os riscos de ataques, diversas tecnologias
devem ser empregadas de acordo com a necessidade de cada empresa ou utilizador.
O objetivo deste trabalho é criar uma proposta de metodologia de autenticação para
sistemas distribuídos que possa ser desenvolvida em qualquer linguagem e facilmente adaptada
a qualquer sistema de autenticação, aumentando, assim, a segurança ao evitar acessos ilegais
por meio de roubo de senhas.





2


1.1. DESCRIÇÃO DO PROBLEMA

A falta de planeamento em segurança pode parecer uma boa situação, pois tudo funciona
adequadamente, até que surgem os problemas que podem resultar em custos elevadíssimos em
sua resolução.
Partiu-se do princípio de que não seria possível garantir a segurança de todos os
Computadores dos utilizadores, e de estes possuírem um firewall corretamente instalado e
configurado, programas antivírus e anti-spyware atualizados, e que tivessem boas noções de
segurança.
A proposta de um sistema de segurança é restringir o acesso às informações e aos
recursos, frisando que atualmente nos deparamos com diferentes situações que envolvem a falta
de segurança dos nossos dados e informações, e grande parte das instituições não concebe
princípios para manter o seu conteúdo seguro.
Com tantas pessoas acessando informações, foi necessária a implantação de técnicas
que identificassem os agentes (pessoas ou processos) que utilizavam as informações.








3


1.2. HIPÓTESES

Este trabalho parte da hipótese de que as ameaças e riscos intencionais e não-
intencionais podem representar prejuízos para a segurança de redes e sistemas da empresa
quando os mecanismos de defesa para a proteção do ambiente computacional não forem
planejados e realizados com base no conhecimento pré-existente dessas ameaças e dos riscos.
Considerando que a autenticação é uma técnica pela qual as identidades dos agentes
clientes e servidores são estabelecidas de uma maneira confiável. Usando uma analogia na vida
real, a autenticação pode ser estabelecida? Por exemplo, através da carta de condução que
contém dados pessoais, os quais podem ser explícitos (nome, endereço, etc.) e implícitos (a data
de nascimento pode ser usada para provar maioridade), tanto como restrições (como a
necessidade de óculos para dirigir). Essa identificação possui também um prazo de validade,
tendo sido fornecida por um órgão no qual pode-se supor confiável. Mas, para ser aceita como
autenticação, deve-se seguir algumas regras como não ocultar parte dos dados nela contidos
(nome ou foto) e o verificador da autenticação deve ter o conhecimento do órgão na qual o
documento foi expedido.
Na computação podemos supor que um servidor de autenticação (SA) em sistemas
distribuídos trabalha basicamente desta mesma maneira. Isso é aplicado a partir do momento
em que SA (um principal) tenta fazer uso de um determinado serviço da rede e o serviço quer
assegurar de que ele é realmente quem ele diz que é.




4


1.3. JUSTIFICATIVA

O foco das empresas e a crescente demanda por aplicações distribuídas no cenário do
mercado nacional e internacional, os desafios e a inovação que serviços web proporcionam às
empresas de software, acrescidos da vontade de conhecer a fundo uma tecnologia nova,
tomando como base uma linguagem de desenvolvimento nova, para o estudo aprofundado da
referida tecnologia nos motivou a realizar este estudo.
Depois de várias análises sobre a necessidade de se proteger os nossos dados, e sistemas,
o presente estudo traz diferentes formas e técnicas de segurança em sistemas distribuídos
centrada na problemática da segurança das comunicações e da autenticação dos sistemas de
computadores nos quais todos os sistemas distribuídos dependem dos serviços oferecidos por
uma ou mais redes de computadores.
Considerando que os dados e operações de um sistema necessitam ser protegidos de
ataques nota-se que tal como os sistemas necessitam ter mecanismos de segurança para se
proteger dados e operações, coloca-se a necessidade de aplicar tais técnicas para manter o
mesmo em perfeitas condições de segurança, com a possibilidade de estes mecanismos de
segurança fornecerem proteção, e as políticas de segurança definirem como estes mecanismos
serão usados, já que os sistemas distribuídos são suscetíveis a novos ataques e requerem
mecanismos de segurança mais sofisticados face a um sistema isolado.




5


1.4. OBJECTIVOS

1.4.1. Objetivos Gerais

 Criar uma proposta de metodologia de autenticação para sistemas distribuídos que possa
ser desenvolvida em qualquer linguagem e facilmente adaptada a qualquer sistema de
autenticação.

1.4.2. Objetivos Específicos

 O objetivo específico desta pesquisa é apresentar uma visão ampla sobre a importância
da segurança e como implantá-la, além de apresentar os diversos tipos de ameaças às
quais uma organização ou sistema de utilizadores estão expostos.
 A pesquisa também irá discriminar as diversas técnicas e tecnologias que podem ser
utilizadas em ambientes distribuídos para promover a segurança da informação em
diversas camadas de proteção.
 Esta proposta pretende impedir ataques bem-sucedidos a sistemas distribuídos que
utilizam serviços web, aumentando consideravelmente a segurança desses sistemas,
dificultando a ação em massa que pode ocorrer ao se associar ataques de diferentes
naturezas com a disseminação de programas maliciosos por meio da técnica de
autenticação.




6


1.5. METODOLOGIA

A metodologia utilizada nesta monografia foi baseada em pesquisa bibliográfica
documental tomando como base a leitura de livros reconhecidos da área de segurança em
redes e acesso a sites reconhecidos da área de segurança, que foram selecionados com base
em pesquisas realizadas através da Internet e recomendações de profissionais da área de
segurança.
Inicialmente foram selecionados vários livros e sites e foi realizada uma análise do
conteúdo pertinente ao assunto. A partir daí, foram selecionados os livros e sites com
conteúdo mais adequado para, assim, se iniciar o desenvolvimento da monografia.

1.6. RESULTADOS ESPERADOS E MOTIVAÇÃO

Com o significativo aumento das informações no mundo digital, serviços em rede (e-
mail, ERP, Internet, entre outros) e a consequente necessidade de meios mais seguros de
proteção é a motivação para implantar um sistema, em que a identificação e autenticação dos
usuários são um dos principais aspetos considerados na garantia da segurança das informações.
Este Trabalho pretende criar uma oportunidade de discussão sobre os diferentes tópicos
da segurança dos sistemas de informação, dos sistemas computacionais ou das redes de
comunicação, quer na visão da investigação científica quer na visão da aplicação das
tecnologias e das soluções de segurança que envolvem as empresas e as organizações.
A proposta de um sistema de segurança é restringir o acesso às informações e aos
recursos, somente aos principais utilizadores que estão autorizados.
7


Esperamos designar os agentes que a cessam informações e recursos mantidos em um
sistema distribuído. Portanto, um principal utilizador é uma pessoa ou um processo.
Mesmo assim, sistemas totalmente infalíveis são impossíveis, pois falhas são
inevitáveis. Mas usuários e desenvolvedores não devem se conformar com equipamentos e
serviços de baixa qualidade, desde que estejam dispostos a arcar com o custo do emprego de
técnicas de tolerância a falhas.
1.7. DESCRIÇÃO DOS CAPÍTULOS

1. O trabalho está organizado da seguinte forma:
a) O primeiro capítulo possui a Introdução do trabalho, as Hipóteses, justificativa, os Objetivos
gerais e específicos, a metodologia usada para a realização deste trabalho, um resumo dos
resultados esperados pelo projeto de pesquisa, e a descrição dos capítulos;
b) O segundo capítulo expõe uma breve história sobre os Sistemas Distribuídos, Segurança
dos SD, Fundamentos teóricos, a sua evolução, Definições, visão geral, objetivos de um
SD, e bem como as suas Características, Também as suas vantagens e desvantagens, as suas
aplicações, o seu surgimento, implicações da sua implementação, alguns exemplos
ilustrados, segurança e classes de ameaças dos sistemas de computador, os Fundamentos da
segurança, exemplos de sistemas distribuídos, os métodos em que ocorrem os ataques e as
violações e o resumo teórico do capitulo.
c) O terceiro capítulo aborda a autenticação de usuários, tal como a autenticação baseada em
conhecimentos, os mecanismos de autenticação, os sistemas de autenticação, também
focamos em alguns protocolos para autenticação com introdução ao kerberos, como utilizar
o mesmo, bem como as suas limitações, também fazemos uma breve abordagem sobre o
protocolo LDAP, as suas simplificações e características, por outro lado ainda falando do
8


mesmo protocolo analisamos o protocolo OpenLDAP e por final o resumo teórico sobre o
os aspectos citados da autenticação.

d) Ainda no terceiro capitulo abordamos Técnicas de autenticação bem como o OpenID, bem
como o fator que o deferência dos padrões atuais, e os sites que aderiram a tal mecanismo,
por outro lado temos o PassworBox uma ferramenta para gerenciamento de senhas, como é
feito o seu cadastro, desde o seu funcionamento, os seus benefícios a sua compatibilidade
em relação aos browsers, os recursos uteis e a sua segurança, e um breve resumo teórico
sobre o mesmo.
e) No quarto capitulo apresentamos uma proposta de metodologia para autenticação de
usuários para aceder um determinado sistema através de um formulário de login e senha,
nele também temos as considerações finais, e uma referência a trabalhos futuros.

f) Seguindo então com as referências bibliográficas, o apêndice e os anexos.









9


CAPITULO II - SISTEMAS DISTRIBUÍDOS

Os Sistemas Distribuídos são, desde alguns anos, o ponto de encontro de algumas
disciplinas entre as mais ativas da informática: comunicações, redes, sistemas operacionais,
linguagens, base de dados, controle de processos, modelização, tolerância a faltas, etc. Este
fenômeno acompanha o desenvolvimento do mercado da informática distribuída que atinge um
crescimento mundial considerado.
2. Evolução dos Sistemas Distribuídos
 1945 – 1955 – Início: O programador tinha que reservar hora para usar o computador.
 1955 – 1965 – Processamento Batch: Tarefas enfileiradas.
 1965 – 1980 – Time-sharing: Menor tempo de resposta.
 1980 – Sistemas Distribuídos (Rede) Rede de comunicação - Comunicação entre máquinas,
 PC e WS - Independência maior dos usuários,
 Compartilhamento de recursos.
 1990 - Aprimoramento das redes: Maior Velocidade e Confiabilidade; Mais computadores
interconectados mundialmente; Máquinas remotas eram usadas apenas em grandes
instalações.
Modelos de Aplicação Distribuída
Conceber uma aplicação distribuída consiste em imaginar e depois estruturar um
conjunto de ações ocorrendo em paralelo, em cooperação, e ou concorrência sobre
computadores geograficamente distribuídos. Esta estruturação é facilitada pela utilização de
modelos.


10


Modelo cliente-servidor
Um servidor pode ser centralizado ou composto de várias entidades equivalentes ou
ainda ser, ele mesmo, um cliente de outro servidor. É um dos primeiros modelos propostos para
os sistemas distribuídos, em particular para o compartilhamento dos recursos (servidores de
arquivos, servidores de impressora, etc.).
Um servidor pode ser centralizado ou composto de várias entidades equivalentes ou ainda ser,
ele mesmo, um cliente de outro supervisor.
2.1. Condicionantes da Evolução

 Redes de computadores.
 PCs.
 Arquitetura dos computadores.
 Usuários, programadores, gestores.









``Os sistemas distribuídos oferecem diversas vantagens tecnológicas em execução de algumas
tarefas se comparado com o sistema tradicional de processamento local como por exemplo o
custo/performance, o atendimento as necessidades de aplicações essencialmente distribuídas,
tendem a serem fortemente confiáveis além do crescimento gradual de acordo com a carga de
trabalho.``
Site de divulgação de conhecimentos das Tecnologias da Informação e afins.
11


2.2. Sistemas Distribuídos - Definição

Um sistema distribuído segundo a definição de Andrew Tanenbaum é uma "coleção de
computadores independentes que se apresenta ao utilizador como um sistema único e
consistente, outra definição, de George Coulouris, diz: "coleção de computadores autônomos
interligados através de uma rede de computadores e equipados com software que permita o
compartilhamento dos recursos do sistema: hardware, software e dados". Vejamos um exemplo
de sistema distribuído na imagem abaixo:

Figura 1 - Computadores ligados em rede



12


2.2.1. Visão Geral

Um sistema distribuído é aquele que é definido como um conjunto de unidades de
processamento independentes, que através da troca de comunicação e gerenciamento de
sincronização pode processar uma aplicação em diferentes localidades em sistemas com
características próprias diferentes, dando a impressão ao usuário que toda a aplicação é
gerenciada por um sistema único. Quando falamos em sincronização, temos o conceito de
sincronização em um sistema centralizado e no sistema distribuído. No sistema centralizado a
sincronização é feita através do compartilhamento de áreas de memória, já no sistema
distribuído ocorre a sincronização através da troca de mensagens. A aplicação no sistema
distribuído pode ser dividida em “partes” diferentes e ser processada em diversos núcleos de
processamento.

Figura 2 – Computadores independentes.
(Fonte: www.Google/imagens)


13


Analisando os textos acima referidos, falar de sistemas distribuídos requer
conhecimentos e uma perceção saudável sobre as suas definições, visto que podemos encontrar
diferentes tipos de definições, mas da mesma forma que elas convergem sempre no mesmo
ponto e interesse.
2.2.2. Objetivos dos Sistemas Distribuídos

O objetivo é criar a ilusão que as aplicações (ou as aplicações) estão sendo processadas
em um único sistema, permitindo a sensação que tudo isso ocorre sem o compartilhamento de
áreas de memória, no entanto, a sincronização é feita a partir de trocas de mensagens. Faz parte
do objetivo a situação da aplicação ser processada de modo que o ambiente que opera forneça
situações favoráveis ao compartilhamento de recursos, sabendo que diferentes recursos estarão
disponíveis em unidades de processamento diferentes.

Figura 3 - Sistemas interligados em rede, Computação Distribuída.
(Fonte: Própria)

14


2.2.3. Características de um sistema distribuído

Primeiramente é importante ter a visão de que uma aplicação pode ter diversos tipos de
complexidade possível, não apenas com relação ao custo computacional mas também sob
aspetos de gerenciamento e necessidade de recursos, ou seja, uma aplicação pode ser
sincronizada entre alguns poucos computadores em uma pequena rede (até mesmo uma rede
local) ou até mesmo aplicações que necessitem de um alto grau de sincronizações, como a
utilização global da própria internet.
 Otimização do compartilhamento de recursos: Isso significa estar apto para compartilhar
com desempenho e segurança recursos físicos ou lógicos, como por exemplo, impressoras,
scanners, dados, espaço em disco, processamento entre outros. Tudo isso é gerenciado por
um software servidor.
É dever do sistema distribuído refletir a estrutura organizacional que é pretendida a ele,
isso significa que deve estar muito claro e declarado o objetivo da aplicação e os recursos com
núcleos de processamento que serão dispostos.
a) Transparência de acesso:
Quando nós temos a possibilidade de a cessar e/ou interagir com um dado, recurso ou
até mesmo um dispositivo, nós precisamos de um meio para a cessar. A transparência nesse
especto significa que a forma pela qual eu interajo com a possibilidade de a cessar e também a
transformação desse acesso em utilização, faça parte de um único sistema.
b) Transparência de localização:
Os recursos, dados e dispositivos que serão compartilhados e a cessados, não precisam
e não devem conter nenhuma informação relevante que forneça ao usuário a localização região
que esse recurso está contido. Por exemplo, se eu quiser a cessar um arquivo, um documento
que fale sobre a utilização da água, para o usuário, não deve ser relevante o fato de esse
15


documento estar localizado em Angola ou na Nigéria, pois o importante é que o usuário tenha
acesso ao documento, sem se importar com a localização física do recurso.
c) Transparência de migração:
Com a internet, nós temos muitos recursos compartilhados, é bastante comum que pela
própria turbulência de acessos, seja necessário que esse recurso seja alocado para outro
servidor, por exemplo, mas isso não deve interferir com a maneira que os utilizadores têm
acesso aos arquivos. Os softwares gerenciadores devem ser aptos o suficiente para referenciar
corretamente os arquivos e recursos em caso de migração.
d) Transparência de replicação:
É bastante comum na internet, os recursos e dados serem tratados como objetos, isso
significa que a instanciação deles é também muito usual na própria rede. Por isso é bastante
interessante e necessário que o sistema distribuído seja capaz de gerenciar a replicação de
informações de maneira transparente ao usuário.
e) Transparência em relação à falhas:
Esse é um fator de extrema importância, uma vez que temos a possibilidade de
compartilhar recursos, não é nada agradável e necessário que os problemas também sejam
compartilhados, por isso, em caso de falhas é essencial que o sistema seja capaz o suficiente
para gerenciar sem que isso passe a espalhar para todo o sistema de compartilhamento, ou seja,
os outros usuários podem continuar utilizando a aplicação sem compartilhar com essa falha
também, sendo assim um problema considerado isolado.
2.2.4. Características notáveis (continuação)

Comunicação através de mensagens: Os componentes do sistema comunicam através
de mensagens (não existem variáveis globais partilhadas) modelos de programação:
cliente/servidor, modelo baseado em objetos.
16


Concorrência: os vários utilizadores utilizam o sistema em simultâneo (é necessário
coordenar o acesso aos recursos partilhados: hw, sw, dados).
Partilha de recursos: Impressoras, discos, ferramentas para trabalho cooperativo, bases
de dados.
 A partilha de recursos levanta questões de segurança.
 Gestores de recursos controlam o acesso a recursos partilhados.
Sistema Assíncrono
 Não existe um relógio global.
 Diferentes velocidades de processamento.
 Não existe um limite para o tempo de comunicação.
Falhas Independentes:
 Falhas na rede (perda de mensagens, duplicação, reordenação).
 Falhas em unidades de processamento.
 A falha de um componente não impede necessariamente os outros de funcionar.
Heterogeneidade:
Um sistema distribuído pode possuir:
 Diferentes tipos de rede.
 Diferentes tipos de hardware, (diferentes representações de dados, diferente código
máquina).
 Diferentes sistemas operativos, (diferentes interfaces para os protocolos de
comunicação).
17


 Diferentes linguagens de programação (diferentes representações de estruturas de dados
como arrays ou registos,).
Para tentar resolver o problema da heterogeneidade define-se uma camada de Software
intermédio: middleware.
2.3. Vantagens e Desvantagens

2.3.1. Vantagens

 Para serem consideradas, citarei primeiro as vantagens, que são compartilhamento de
recursos, ganho de desempenho, comunicação e confiabilidade.
 O compartilhamento de recursos pode ser desde recursos físicos, como impressoras, até
mesmo recursos lógicos, como arquivos e até mesmo acesso há um banco de dados
concentrados.
 A velocidade da computação pode ser incrementada de forma que existe o
processamento concorrente de tarefas, que ao invés de ser processado em um núcleo
único, ele pode ser dividido em “n” processadores para reduzir o tempo de operação e
ganho de disponibilidade.
2.3.2. Desvantagens

 Temos o caso de um sistema distribuído que envolva o critério de escalabilidade, por
exemplo, com as melhorias e avanço tecnológico com tendências de migrar recursos e
serviços para a internet, podem ocorrer situações externas que gerem um problema ou
desconforto, como por exemplo o fato da prestadora de serviços de rede / internet estar
sobrecarregada ou indisponível temporariamente.
 Problemas com os softwares gerenciadores do sistema distribuído, uma vez que é uma
tendência relativamente nova, os recursos tecnológicos de hardware, plataforma de
18


software, sistema operacional e integração com a aplicação, podem resultar em oscilações
sabendo que é uma plataforma que não é 100% consolidada e também está em constantes
melhorias e avanços.
 Dificuldades para negar o acesso indevido é um fator crítico, sabendo que uma das
características do sistema é ter múltiplas instâncias de processamento, isso significa que
uma aplicação pode ser gerenciada por diversas localidades, dando uma vazão mais
pertinente à acessos concorrentes, isso significa como se fosse uma grande balança, ao
mesmo tempo que podemos ter um grande grau de disponibilidade, podemos também ter
um grau muito grande de possibilidades de acesso, no qual o risco de acesso não autorizado
cresce proporcionalmente.











``Segundo Tanenbaum, 1995, a possibilidade de
construção de sistemas distribuídos em si não
constitui uma boa ideia. O autor afirma que, devido
a existência das tecnologias atuais, é possível ter as
soluções de sistemas distribuídos com todas as
eficiências necessárias devido ao grande poder de
processamento existente nos processadores atuais e
uso das diversas redes existentes.``

Site de divulgação de conhecimentos da Tecnologias da Informação e afins.
19


2.4. Exemplos de Sistemas Distribuídos

2.4.1. A Internet

Temos um conjunto de computadores independentes que interligam-se mutuamente com
o objetivo de compartilhar recursos, dando a impressão ao usuário que isso tudo é um único
sistema.
Os protocolos permitem que um programa em execução em qualquer lugar envie
mensagens para programas em qualquer outro lugar.
Conjunto de serviços abertos, ou seja, pode ser ampliado com a adição de novos computadores
e servidores e novos tipos de serviço.














(Fonte John Wiley & Sons, Ltd 2000)

Figura 4- Ilustração de exemplo de ligação de computadores em rede.
20


2.4.2. A Intranet

A intranet não é nada mais, nada menos do que a parte da Internet administrada
separadamente.
Também é composta por várias redes locais interligadas por backbones. Note que o seu tamanho
pode variar desde um único site a Múltiplos sites.
















(Fonte John Wiley & Sons, Ltd 2000)





Figura 5- Ilustração de ligação, Internet administrada
separadamente.
21


2.4.3. Computação Móvel e Ubíqua

 Computação Móvel
Computação Móvel é a capacidade de um dispositivo computacional e os serviços
associados ao mesmo serem móveis, permitindo este ser carregado ou transportado Mantendo-
se conectado a rede ou a Internet.
 Computação Ubíqua
Computação Ubíqua é a capacidade de estar conectado à rede e fazer uso da conexão a
todo o momento.
Exemplos: Notebook, PDA, telefones móveis, dispositivos incorporado em aparelhos
como máquinas de lavar, carros, geladeiras, etc…













(Fonte John Wiley & Sons, Ltd 2000)

Figura 6-Ilustração de exemplo sobre computação Móvel e Ubíqua.
22


2.5. Segurança Em Sistemas Distribuídos

A segurança tem seu papel preponderante para o funcionamento adequado de qualquer
ação dentro de um contexto geral ou particular, seja para uma empresa seja para uma pessoa.
Ainda mais, é de suma importância devido ao grande desenvolvimento tecnológico e de
situações de risco que o mundo real passou a estar submetido a partir das invasões e
manipulações de dados particulares de pessoas e de empresas via elementos como crackers.
São estes principalmente, que passeiam pelo mundo virtual deixando rastros
catastróficos no mundo real como transferência de valores indevida, invasão e manipulação de
informações de empresas e outros. Ao lado destes, também estão os hackers.

Figura 7 - Principais obstáculos para implementação da segurança.
(Fonte: www.Google/imagens)
Os hackers são elementos que embora aparentemente não ofereçam riscos a situação
real de uma pessoa ou de uma empresa, desenvolvem constantemente maneiras de invadir
sistemas computacionais.
A literatura atual descreve que o “hacker” faz isso apenas para se sobressair entre
membros do mesmo grupo e dos demais invasores de sistemas.
No mundo virtual, o tráfego de pacotes entrando e saindo de uma rede entre
computadores dentro de uma empresa deve ser controlada de forma segura e abrangente.
23


Dentro desse contexto, a literatura da área da Ciência da Computação tem demonstrado
que a segurança da informação deve surgir como identificador que por sua vez deve ter como
objetivo localizar os poucos pontos em que um controle seguro é realizado.
Com isso, o controle deve ser feito de maneira a filtrar a permissão do tráfego de pacotes
que por ele são autorizados à passagem de informações simultâneas com livre acesso ao
sistema. Assim, a segurança da informação propõe que toda e qualquer informação, armazenada
temporária ou permanentemente que trafegue por redes de computadores esteja protegida contra
ameaças, isto é, a informação de maneira geral deve manter a sua confidencialidade, integridade
e disponibilidade em situações diferenciadas de acesso devido aos riscos e ameaças de invasão
em relação à segurança e privacidade do sistema em geral.
Quanto a isso, a teoria mais aceita sobre esse assunto é a de que há um estágio de
consciência da capacidade de resolução de problemas que diz respeito ao tráfego de
informações e das limitações na capacidade dessas resoluções
quando o assunto é hackerismo
1
e outros tipos de invasores e as novas formas de invasões a
sistemas e redes de computadores.
Na Ciência da Computação, os riscos e as ameaças intencionais ou não intencionais na
segurança de maneira geral representam para redes e sistemas um fator de preocupação que tem
sua importância quando se trata de vulnerabilidade a que está exposta pessoas e empresas.
Portanto, há que se pensar em mecanismos de defesa de maneira clara e objetiva. Dessa forma,
os mecanismos de defesa para a proteção do ambiente computacional devem ser planejados e
realizados com base no conhecimento das ameaças e dos riscos existentes e nos que possam vir
a existir como forma de prevenção e proteção ao sistema em que se está a trabalhar.

1
Hackerismo: Corrente ou doutrina que um hacker segue- Técnicas utilizadas para práticas de crimes na
informática Pedro Ramos de Almeida Júnior.

24


Isso permite que vulnerabilidades possam ser exploradas em ataques após as
identificações preventivas terem sido aplicadas ao sistema especificado. Conhecidos os riscos
existentes e as ameaças iminentes que possam invadir o sistema, danificá-lo e comprometê-lo,
a segurança intrarrede passa a controlar e eliminar as possibilidades de violação da informação.
Entretanto, é preciso que se tenha em mente a não possibilidade de se proteger o sistema contra
riscos e ameaças (ainda) não conhecidos.
E mais ainda, demonstrar que não é possível proteger o sistema contra riscos e ameaças
que possuem características desconhecidas, também. Por outro lado, eliminar todos os riscos e
ameaças já conhecidas facilita o controlo de entrada de pacotes de informação que compromete
o sistema e sua segurança. Em termos de cifras isso significa investimentos pesados na área.
Mesmo assim, não se justifica investimentos mais altos do que o valor da própria informação.
Assim, o fundamental é que os riscos e as ameaças sejam gerenciados para que sejam
acompanhados de maneira permanente com a finalidade de que eles sejam minimizados.
E dessa forma possibilitar que riscos residuais sejam tolerados pelo utilizador ou
empresa, ou mesmo transferidos para terceiros.
O que passa a ser tido como ponto de referência para a resolução de outros problemas
relativos à segurança do sistema.
2.5.1. Divisão da Segurança em Sistemas Distribuídos:

● Comunicação entre utilizadores ou Processos em diferentes máquinas.
● Autorização de acesso a recursos Disponíveis.
2.5.2. Segurança em um sistema está relacionado a

● Confidencialidade
● Integridade
25


● Disponibilidade
● Autenticidade
● Não Repúdio
2.5.3. Tipos de ameaça de segurança a Serem consideradas:

● Intercetação
● Interrupção
● Modificação e Fabricação.
2.6. Políticas de Segurança

Descrevem precisamente quais ações as entidades de um sistema terão permissão de
executar e quais ações serão proibidas.
2.6.1. Classes de ameaças dos sistemas de computador

Para produzir um sistema que seja comprovadamente seguro contra ameaças
específicas, é necessário classificar essas ameaças e os métodos pelos quais cada uma delas
pode se concretizar, isto é, os métodos de ataque, ou o modus operandi
2
. As ameaças aos
sistemas de computador subdividem-se em quatro grandes classes:
 Leakage(vazamento): aquisição de informação por agentes não autorizados;
 Tampering (falsificação): alteração não autorizada de informação (inclusive de
programas);
 Resource stealing (roubo de recursos): uso de facilidades sem autorização;

2
Modus operandi: Modus operandi é uma expressão em latim que significa "modo de operação". Utilizada para
designar uma maneira de agir, operar ou executar uma atividade seguindo sempre os mesmos procedimentos.
Esses procedimentos são como se fossem códigos.
26


 Vandalism(vandalismo): interferência na operação apropriada de um sistema sem
ganhos para o criminoso;
2.6.2. Métodos em que Ocorrem Violações de Segurança

Os métodos pelos quais violações de segurança podem ser cometidas em sistemas
distribuídos dependem da obtenção de acesso aos canais de comunicação existentes, ou do
estabelecimento de canais que mascarem conexões aos principais, com a autoridade desejada.
Isto inclui:
 Eavesdropping: obtenção de cópias de mensagem sem autorização. Isto pode ser
feito capturando mensagens diretamente da rede, ou examinando informações que
estão inadequadamente protegidas em dispositivos de armazenamento de dados. Por
exemplo, usando a Internet um computador pode ser configurado com o endereço
de rede de outro, permitindo que este também receba as mensagens endereçadas
àquele.
 Masquerading (disfarce): envio ou recebimento de mensagens usando a identidade
de outro principal sem a sua autorização.
 Message tampering (falsificação de mensagem): captura e alteração do conteúdo
das mensagens antes de passá-las ao destinatário. Isto é difícil de fazer em meios
que se utilizam de broadcast para troca de mensagens, como é o caso das redes
Ethernet. De maneira simplificada, podemos definir broadcast como sendo a entrega
simultânea de uma mensagem para todas as estações da rede.
 Replaying: captura e armazenamento das mensagens por um certo período de
tempo, seguido do envio atrasado dessas mensagens aos seus destinatários. Este
método de ataque não pode ser evitado por simples criptografia, uma vez que pode
27


ser usado para operações do tipo vandalismo, ou roubo de recurso, mesmo quando
as mensagens não podem ser interpretadas pelo criminoso.
2.6.3. Métodos de infiltração:

Para lançar esses ataques em um sistema distribuído, o criminoso deve ter acesso ao
sistema a fim de executar o programa que implementa o ataque.
A maioria dos ataques é lançada por pessoas que são usuários legítimos do sistema, para
usuários ilegítimos, um
método simples de infiltração é a adivinhação de senhas, ou o uso de programas de quebra de
senhas para obter as chaves de acesso de usuários conhecidos. Além dessas formas diretas de
infiltração, existem diversos métodos mais sutis, que estão se tornando bem conhecidos, tais
como:
 Vírus: um programa anexado a um hospedeiro legítimo, que se instala sozinho no
ambiente alvo, sempre que o programa hospedeiro é executado. Uma vez instalado,
ele realiza suas ações criminosas sempre que lhe apraz, frequentemente usando uma
data como gatilho.
 Worm: um programa que varre um sistema, ou uma rede, replicando-se e buscando
bloquear todos os recursos disponíveis, até torná-lo inoperante. Ao contrário do
vírus, um worm normalmente não destrói dados.
 Cavalo de Tróia: um programa oferecido aos usuários de um sistema como sendo
capaz de realizar uma função útil, mas que tem uma segunda função oculta. O
exemplo mais comum é o spoof login, um programa que apresenta aos usuários um
diálogo idêntico ao diálogo normal de obtenção de login (nome do usuário) e
password (senha), mas que na realidade armazena as informações fornecidas pelos
usuários em um arquivo, com o objetivo de uso posterior ilícito.
28


O foco das abordagens anteriores, sobre ameaças e métodos de ataque, leva-nos à
conclusão de que para construir um sistema distribuído seguro, é necessário projetar seus
componentes partindo do princípio de que os agentes do sistema (pessoas e programas) não são
confiáveis, até que provem o contrário.
No entanto, é impossível produzir um sistema útil considerando que não há nenhum
componente confiável. Assim sendo, o objetivo passa a ser produzir um sistema no qual um
número mínimo de componentes seja considerado confiáveis.

Figura 8 - Ilustração de mecanismo de segurança, autenticação

(fonte: Propriá baseado em: Adriano Teixeira de Souza - Univ. Do Brasil)



29


2.7. Resumo

No decorrer deste capítulo pode ser depreendido o facto de haver necessidade de
construir sistemas distribuídos para obter maior confiabilidade, bem como maior facilidade de
crescimento incremental do sistema, considerando que muitas aplicações são inerentemente
distribuídas e desta forma a necessidade de obter uma maior robustez sobre o sistema. Por outro
lado analisou-se que os sistemas distribuídos são amplamente utilizados em diferentes soluções
e aplicações nos dias atuais.
Ao passo que a segurança dos sistemas distribuídos tem como principal objetivo
proteger as informações que nela trafegam no sentido de garantir a sua confidencialidade, a sua
integridade e a sua disponibilidade.











30


CAPÍTULO III – AUTENTICAÇÃO

3. Autenticação de Utilizadores
Autenticação Segundo o dicionário (de língua portuguesa) é o ato de estabelecer ou
confirmar algo como autêntico, isto é, que reivindica a autoria ou a veracidade de alguma coisa.
A autenticação também remete à confirmação da procedência de um objeto ou pessoa, neste
caso, frequentemente relacionada com a verificação da sua identidade.
O crescimento das redes abertas fez com que surgissem vários problemas de
segurança, que vão desde o roubo de senhas e interrupção de serviços até problemas de
personificação, onde uma pessoa faz-se passar por outra para obter acesso privilegiado.
Com isso, surgiu a necessidade de autenticação, que consiste na verificação da
identidade tanto dos utilizadores quanto dos sistemas e processos. Os mecanismos de
autenticação de utilizadores dividem-se em três categorias: baseados no conhecimento (o que
se sabe), baseados em propriedade (o que se possui) e baseados em características (o que se
é).
3.1. Autenticação baseadas no conhecimento (o que se sabe)

A autenticação pelo conhecimento é o modo mais utilizado para fornecer uma
identidade a um computador, no qual destaca-se o uso de segredos, como senhas, chaves de
criptografia, PIN (Personal Identification Number) e tudo mais que uma pessoa pode saber.



31


 Sabe: Senha (= palavra-chave = palavra passe = password), ex: Senhas Unix, PAP,
CHAP, Kerberos.
Vários métodos foram propostos para tentar tornar a autenticação baseada em senhas
mais segura, entre eles o uso de geradores randômicos de senhas, checagem pró-ativa, utilização
de senhas descartáveis (one-time passwords) e sistemas de desafio/resposta (chalenge/response
systems), modificações no processo de login e combinação com outros mecanismos de
autenticação de usuários como smartcards.
3.1.1. Perguntas Randômicas (Random Queries)

Perguntas randômicas é um método de autenticação baseado em desafio/resposta. Em
uma primeira etapa, faz-se um cadastro do usuário, no qual ele responde a um questionário com
perguntas variadas como a bebida favorita, o número da identidade, CPF, data de aniversário,
lugar de nascimento, etc.
No momento da conexão, o usuário entra com sua identificação. O sistema, então,
escolhe uma pergunta do questionário de forma aleatória e desafia o usuário. Se sua resposta
coincidir com a previamente armazenada no questionário, a conexão é permitida e lhe são
atribuídos os direitos de acesso correspondentes.
Empresas de cartão de crédito geralmente utilizam este método para autenticar seus
usuários em ligações telefônicas. A vantagem é que ele pode ser totalmente implementado
em software, não necessitando de hardware adicional.
3.1.2. Análise das Soluções Baseadas no Conhecimento

O mecanismo de autenticação mais popular e usado nos sistemas de computação é a
autenticação através de senhas. As vantagens deste tipo de autenticação são:
 Onde o usuário estiver, o segredo estará com ele;
32


 O segredo pode ser facilmente modificado, se necessário;
 O segredo é facilmente inserido através do teclado, não necessitando de
dispositivos especiais;
Entretanto, este tipo de autenticação tem algumas limitações: as senhas podem ser
adivinhadas, roubadas ou esquecidas.
3.1.3. Autenticação Baseadas na Propriedade (O que se tem)

As soluções de autenticação baseadas na propriedade caracterizam-se por um objeto
físico que o usuário possui. Este objeto pode ser um cartão inteligente (smartcard), uma chave
ou um token (dispositivo eletrônico semelhante a uma calculadora, usados para calcular senhas
descartáveis). As desvantagens deste tipo de autenticação são que os objetos físicos podem ser
perdidos, roubados ou esquecidos e o custo adicional do hardware. A vantagem baseia-se no
princípio de que a duplicação do objeto de autenticação poderá ser mais cara que o valor do que
está sendo guardado.
 Tem: Testemunhos (Tokens), ex: cartão multibanco, S/Key, SecurID, SmartCard.
É comum ver-se a combinação de autenticação por propriedade com autenticação
baseada em senhas, fornecendo dois fatores de autenticação. Sem os dois, um usuário não pode
ser autenticado na conexão a um sistema ou aplicação. Com a crescente utilização de cartões
inteligentes já é possível obter-se três fatores de autenticação, através de sua combinação com
senhas e dispositivos biométricos.
3.1.4. Mecanismos de Autenticação Baseados em Tokens

Tokens são dispositivos semelhantes a uma calculadora de mão e que não necessitam de
dispositivos de leitura/escritas adicionais. Eles fornecem autenticação híbrida, usando tanto
"algo que o usuário possui" (o próprio dispositivo), como "algo que o usuário conhece" (um
33


PIN de 4 a 8 dígitos). Sistemas de autenticação por tokens baseiam-se em um dos seguintes
esquemas: autenticação por desafio/resposta ou autenticação sincronizada no tempo.
Nos sistemas baseados em desafio/resposta, o usuário insere sua identificação no
sistema. O sistema apresenta, então, um desafio randômico como, por exemplo, na forma de
um número de sete dígitos. O usuário, por sua vez, digita seu PIN no token e informa o desafio
apresentado pelo sistema. O token, gera a resposta correspondente cifrando o desafio com a
chave do usuário, a qual ele informa ao sistema. Enquanto isso, o sistema calcula a resposta
apropriada baseado no seu arquivo de chaves de usuários. Quando o sistema recebe a resposta
do usuário, ele a compara com a resposta que acabou de calcular. Se forem idênticas, a conexão
é permitida e são atribuídos ao usuário os direitos de acesso correspondentes.
3.1.4.1. SecureI D
O secureID é um sistema de dois fatores de autenticação desenvolvido e comercializado
pela Security Dynamics, Inc. Ele é utilizado para identificar usuários de redes e sistemas e
prevenir acesso não autorizado.
Cada usuário do SecureID tem uma senha ou PIN memorizada e um token com um visor
de cristal líquido. O token mostra um novo valor pseudorrandômicos, chamado de tokencode,
em um intervalo de tempo fixo, normalmente de 60 segundos. O utilizador combina o fator
memorizado com o tokencode, pela simples concatenação ou entrando com o valor no teclado
do token, que cria a senha requerida para liberar o acesso ao recurso protegido.
Basicamente, o sistema é composto por três componentes: o token propriamente dito,
um software cliente, e um software servidor para autenticação e gerenciamento centralizado.


34








Figura 9 - Modelos de tokens SecureID (Fonte www.Google/imagens)
O token contém um microprocessador de 8 bits, um relógio, um visor de cristal líquido,
uma bateria e, em alguns modelos, um teclado. A unidade é acomodada em um compartimento
que, se aberto, apaga a memória. A figura 9 apresenta alguns modelos de tokens SecureID.
3.1.4.2. Sistemas de Autenticação

Quem está do outro lado é mesmo quem diz ser?
Sistema que permite verificar a identidade de uma entidade, constituído por:
 Entidade(s) autenticada(s)
 Autenticador(es)
 Protocolo(s) de autenticação
 Entidade(s) de suporte ao protocolo de autenticação.
3.2. Protocolos de Autenticação

Em segurança da Informação o termo protocolos AAA, é uma referência aos protocolos
relacionados com os procedimentos de autenticação, autorização e accounting. A autenticação
verifica a identidade digital do usuário de um sistema, a autorização garante que um usuário
autenticado somente tenha acesso aos recursos autorizados e, por fim, a accounting refere-se a
coleta de informações sobre o uso dos recursos de um sistema pelos seus usuários.
35


O protocolo de autenticação TESLA (em inglês: Timed Efficient Stream Loss-tolerant
Authentication) consiste em um protocolo de comunicação eficiente com baixo overhead, que
escala para um grande número de recetores, e tolera a perda de pacotes.
Existem tantos outros protocolos de autenticação como o: SAS que é o protocolo de
autenticação utilizado por todos os releases anteriores do WebSphere Application Server e é
mantido para compatibilidade reversa, mas aqui neste trabalho focamos apenas dois que são o
Kerberos e o Ldap, como veremos mais adiante.
3.2.1. Introdução Ao Kerberos:

Kerberos é um protocolo desenvolvido para fornecer poderosa autenticação em
aplicações usuário/servidor, onde ele funciona como a terceira parte neste processo, oferendo
autenticação ao usuário.
Para garantir a segurança, ele usa criptografia de chave simétrica, com o DES (Data
Encryption Standart). O Kerberos foi desenvolvido como parte do Project Athena, do
Massachussets Institute of Technology (MIT). Seu nome vem da mitologia, onde Cerberus
(Kerberus para os gregos) é um cão com três cabeças que tem por missão proteger a entrada do
inferno de Hades.
3.2.1.1. Como utilizar o Kerberos:

Para o utilizador:
Para o utilizador utilizar o Kerberos, primeiro ele deve estabelecer um Kerberos
principal. Um Kerberos principal é algo parecido com uma conta em uma máquina. O nome
do principal é do tipo your_name@YOUR.REALM.
36


A parte antes de @ é uma string
3
você escolhe (normalmente é a mesma coisa que seu
login name). A parte posterior é o nome do realm.
Associado a cada principal existe um nome, uma senha e algumas outras informações.
Estes dados são armazenados na base de dados do Kerberos. Esta base de dados é criptografada
com uma chave mestra do Kerberos, pode ser replicada para servidores escravos, e ela não pode
ser examinada por qualquer um.
Valid starting Expires Service principal
24-jul-95
12:58:02
24-jul-95
20:58:02
Krbtgt/your.realm
@your.realm
24-jul-95
13:03:33
24-jul-95
21:03:33
Host/newhost.domain
@your.realm
Tabela 1- Tabela de ilustração de credenciais em cache
(Fonte:M Wserver)
3.2.1.2. Para o administrador:

Para o administrador a coisa é um pouco mais complexa. O AS e o TGS (normalmente
o mesmo executável) devem ser configurados e iniciados. Principais devem ser registrados, e o
mais importante, o serviço deve ser disponibilizado para uso do Kerberos.
Kerberizando aplicações: Esta é a parte mais difícil do uso do Kerberos, reconstruir uma
aplicação para que ela passe a usar o Kerberos é chamado de kerberizar a aplicação. A aplicação
kerberizada deve:
 Encontrar a identidade do utilizador.
 Localizar o cache de credencial do utilizador.
 Checar para ver se existe um ticket para o serviço requisitado.

3
String é um vetor de caracteres com um delimitador que indica o final da string: \0
37


 Se não existir, usar o TGT e a chave de sessão para enviar uma requisição para obter
um.
Isto nem sempre é uma programação trivial. Entretanto existem aplicações pré-kerberizadas
como POP e R-comandos Berkeley (por exemplo rlogin).
3.2.1.3. Limitações do Kerberos:

 O Kerberos é bastante adequado para aplicações usuário/servidor e não ponto a ponto.
 Como o cacheamento das chaves, ticket e principals são feitos no diretório /tmp, é
necessário que as estações de trabalho sejam seguras.
 Apresenta problemas com multi-homed hosts, que utilizam mais de um endereço IP.
 Os relógios devem estar sincronizados (em geral a diferença não pode ultrapassar cinco
minutos) devido ao timestamp.
 É vulnerável contra senhas fracas, possibilitando que um invasor intercepte uma
mensagem e utilize um ataque dicionário para descobrir a senha do usuário.
 Existe a possibilidade de modificação, por um atacante, das aplicações kerberizadas.
3.2.2. O Protocolo Ldap

O LDAP é um protocolo especializado em organizar os recursos de rede de forma
hierárquica, através de uma árvore de diretórios, que roda sobre os protocolos TCP/IP, Diferente
do protocolo no qual foi baseado, o DAP, o qual roda sobre o modelo OSI. Para BARTH e
SIEWERT (2009) essa foi uma das principais causas da adoção em larga escala do protocolo,
visto que com essa nova plataforma foi possível reduzir consideravelmente o overhead1 de
camadas superiores do modelo OSI.

38


3.2.2.1. Simplificações do Protocolo LDAP

O LDAP possui as seguintes simplificações em relação:
 É executado diretamente sobre o TCP/IP;
 A maioria dos elementos de dados são representados como cadeias de caracteres,
 Processadas de modo mais fácil que os dados na representação estruturada Abstract.
 Codifica dados para transporte em redes usando uma versão simplificada das mesmas.
3.2.2.2. Características do LDAP

O LDAP, foi projetado para resolver problemas de distribuição de diretórios pela rede,
contando com nove aspetos que lhe Garantiram essa habilidade, sendo eles:
 Seu desenho genérico.
 Simplicidade do protocolo.
 Arquitetura distribuída.
 Segurança.
 Padrão aberto.
 Solicitação de funcionalidades e esquemas do servidor.
 Internacionalização.
 Suporte ao IPv6.
 Berkeley´s Data Base (BDB).
3.2.3. OpenLDAP

O OpenLDAP é uma implementação do LDAP desenvolvida pela Universidade de
Michigan e mantido pelo Projeto OpenLDAP, possui como principais características: suporte
ao IPv4 e IPv6, autenticação, segurança no transporte usando SSL e TSL, controle de acessos,
alta performance em múltiplas chamadas e a replicação de base.
39


O OpenLDAP tem uma licença específica chamada de The OpenLDAP Public License
(OpenLDAP Project, 2009) e é independente de plataforma, assim várias distribuições Linux
já disponibilizam a mesmo em seus repositórios. Além do Linux o OpenLDAP é também
compatível com AIX, variantes de BSD, HP-UX, Mac OS X, Solaris e Microsoft Windows
(Baseados na tecnologia NT).
3.2.4. Resumo

A autenticação de utilizadores em sistemas web é um item crítico na segurança de redes
de Computadores, pois todo sistema computacional seguro deve exigir a autenticação do
utilizador, afinal, só conhecendo o utilizador do sistema ele poderá identificar os arquivos e
recursos que esse usuário pode acessar.
Hoje em dia muitas pessoas se conectam a computadores remotos (indiretamente) para
realizar operações bancárias, fazer compras, e realizar outras operações comerciais. O que faz
com que a validação do utilizador seja um assunto realmente importante.
A maioria dos métodos de autenticação se baseia em um ou dois princípios gerais de
identificação: Alguma coisa que o utilizador sabe, alguma coisa que o usuário tem, alguma
coisa que o usuário é. A maneira mais usada de autenticação é pedir que o utilizador digite um
nome de usuário e uma senha.
Como tal o protocolo kerberos é muito utilizado em sistemas como o windows servidor,
onde funciona como a terceira parte neste processo, oferendo autenticação ao utilizador, já o
LDAP é um protocolo especializado em organizar os recursos de rede de forma hierárquica,
através de uma árvore de diretórios, que roda sobre os protocolos TCP/IP.
Sendo assim são ambos muito importantes no planeamento de sistemas que visam
proporcionar uma melhor qualidade de segurança, assim podemos referencia-los pelo simples
40


motivos de que com a utilização de tais protocolos podemos estar diante de um sistema
totalmente seguro, isto independentemente do utilizador ou administrador que gere tal sistema.
3.3. Técnicas e Servidores de Autenticação

Para este trabalho analisamos duas técnicas muito usadas hoje em dia para a
identificação de usuários em sistemas distribuídos que se comunicam através de serviços da
web, são eles: O sistema de identificação OpenID e o Gerenciador de senhas Passwordbox.
3.3.1. O OpenI D

OpenID é um sistema de identificação desenvolvido por Brad
Fitzpatrick do LiveJournal
4
. Trata-se de uma rede distribuída na qual a identidade do utilizador
é dado por uma URL ou XRI que pode ser verificada por qualquer servidor executando um
protocolo.
OpenID fornece sites e serviços com um protocolo descentralizado de autenticação de
usuários através de uma ampla variedade de provedores. Isso significa que um site integrando
OpenID pode permitir que seus usuários se autentiquem utilizando, por exemplo, suas contas
do Yahoo!, Google ou AOL. O site em questão pode não apenas evitar a criação de seu próprio
sistema de autenticação, mas também pode tirar vantagem das contas que seus usuários já
possuem, aumentando assim o registro de usuários e as taxas de autenticação. (LEBLANC,
2011)
O fator mais interessante do OpenID é o de que ele oferece um padrão que é totalmente
descentralizado dos provedores e dos consumidores. Este aspeto é o que dá a um site
consumidor simples a possibilidade de autenticação a partir de contas do Yahoo! e Google,
enquanto outro site pode querer que seus usuários se autentiquem através do Blogger ou

4
Joseph Bradley "Brad" Fitzpatrick é um americano programador . Ele é mais conhecido como o criador
do LiveJournal e é o autor de uma variedade de software projetos como o memcached e OpenID .(site:wikipedia)
41


Wordpress. Cabe ao consumidor OpenID (um site ou serviço) escolher quais métodos de
autenticação ele gostaria de oferecer aos seus usuários. (LEBLANC, 2011) Cada provedor de
OpenID possui um endereço de OpenID associado com seu sistema de autenticação para
habilitar o método de descoberta requerido para o processo de autenticação. Existem diversos
provedores de OpenID, entre os principais estão o Google, Yahoo! Flickr, Wordpress, AOL,
Blogger, MySpace, MyOpenID entre outros. (LEBLANC, 2011).
Em sites que suportam OpenID, utilizadores não necessitam de criar uma nova conta
antes de poder a aceder. Só é necessário autenticação por um site que suporta OpenID,
chamado provedor de identidade. Esse provedor pode então confirmar o dono da OpenID para
outro site que suporta OpenID.

Figura 10 - Tela do OpenId, acesso através de contas existentes
(Fonte:www.terra.com)

Segundo Leblanc (2011) o OpenID define um fluxo padronizado pelo qual um usuário
pode se autenticar em um site de terceiro de retransmissão de um provedor de OpenID como
Yahoo! ou Google. Existem três participantes no fluxo de autenticação do OpenID:
• O usuário: Usuário final que está tentando se autenticar em um site ou serviço utilizando
um dos provedores de OpenID;
42


• Partido confiável: Site consumidor de OpenID, que implementa um processo de
autenticação de um provedor de OpenID, para permitir aos usuários a autenticação com
suas contas;
• O provedor de OpenID: Site ou serviço que possui o banco de dados de membros que o
partido confiável se autenticará e através do qual o usuário irá fornecer seus dados de
acesso.
O processo de autenticação do OpenID necessita de quatro passos diferentes, iniciando
quando o usuário escolhe um provedor para se autenticar e terminando com o resultado de
sucesso/falha do provedor quando o usuário tenta se autenticar. No primeiro passo é solicitada
a autenticação do usuário, passando uma URI identificadora de OpenID. No segundo passo é
feita a descoberta do endpoint do OpenID. No terceiro passo é solicitado ao usuário que o
mesmo se autentique com sua conta. E finalmente, no quarto passo, é fornecido um estado de
sucesso/falha baseado na autenticação. (LEBLANC, 2011)
Independente das arquiteturas single sign-on, o OpenID não define um mecanismo de
autenticação. Assim a força de um login por OpenID depende de quanto o site sabe sobre as
políticas de autenticação do provedor de identidade.
Sem tal confiança, o OpenID não é recomendado para ser usado com contas sensíveis,
como de comércio eletrônico e bancos.
3.3.1.1. Diferenças entre OpenI D e os padrões atuais

Alguns sistemas de contas online atuais são semelhantes ao OpenID em alguns aspetos,
mas não permitem a transição entre um sistema de contas e outro. Por exemplo, sites de
conteúdo online como Windows Live, Google e Yahoo!, não solicitam o registro do utilizador
quando ele faz a transição de um serviço web para outro pertencente ao próprio site. Pode-se,
por exemplo, fazer um primeiro registo só para usar o e-mail e começar a usar depois o serviço
43


de relacionamentos do mesmo site sem fazer um novo registro, ou seja, usando o mesmo usado
para o e-mail. Outro ponto que difere o OpenID das contas citadas anteriormente é que o seu
registro não é gratuito, variando os valores de acordo com o tipo de conta (individual,
organizacional, etc.).
Com o OpenID, uma única ID na web pode ser usada em outros sites e não só em
serviços dentro de um mesmo site. Isso dá maior comodidade em assinar serviços da web, mais
facilidade de acesso aos sites e menos incomodo para gerir múltiplos ID's e senhas de acesso.
3.3.1.2.Sites que aderiram ao OpenI D

Pode-se verificar os sites e serviços que já aderiram ao sistema de identificação, alguns
dos sites que aderiram ao Open ID são SAPO, 4shared, Yahoo! Google, Windows
Live, CNN, Wikispaces, Technorati, WikiTravel, LiveJournal, The West, Sourceforge.net e
Postiter.
3.3.2. O CAS

Central Authentication Service (CAS) é um portal de autenticação única de código aberto,
que fornece controlo de acesso centralizado, e autenticação para recursos baseados na web
dentro de uma organização. Mularien (2010) destaca que os principais benefícios do CAS são:
• O acesso individual ou em grupo a recursos (aplicações) pode ser configurado em um
único local;
• Suporte a uma ampla variedade de locais de autenticação (para centralizar a gestão de
usuários), fornecendo um ponto único de autenticação e controle para um amplo
ambiente multi-máquina;
• O suporte amplo de autenticação é fornecido por aplicações Java baseadas ou não
baseadas na web através de bibliotecas de clientes CAS;
44


• Um único ponto de referência para credenciais de usuário (através de CAS), para que
aplicações clientes CAS não necessitam saber nada sobre as credenciais do usuário, ou
como verificar elas.
3.3.2.1. Fluxo de Autenticação

Segundo Mularien (2010), o fluxo básico de autenticação do CAS é executado através
das seguintes ações:
• Primeiramente o usuário tenta acessar um recurso protegido de uma aplicação;
• O usuário é redirecionado para o portal CAS através do mecanismo de segurança
da aplicação, para fornecer suas credenciais;
• O portal CAS é responsável pela autenticação do usuário. Se o usuário for
autenticado com sucesso no CAS, ele é redirecionado para o recurso protegido
com um ticket CAS único definido na requisição;
• O mecanismo de segurança da aplicação chama novamente o servidor CAS para
validar se o ticket é aceitável (é válido, não está expirado, etc).
O servidor CAS responde com uma afirmação indicando que a confiança foi
estabelecida. Caso o ticket seja aceitável, a confiança foi estabelecida e o usuário pode proceder
através de checagem de autorização comum. Com este fluxo é possível visualizar que existe
uma grande interação entre o servidor CAS e a aplicação segurada, com a necessidade de
bastante troca de dados antes que a confiança do usuário possa ser estabelecida. O resultado
desta complexidade é um protocolo de autenticação única que é difícil para falsificar através de
técnicas comuns (assumindo que outras precauções de segurança foram tomadas, como o uso
de Secure Sockets Layer e monitoração de rede). (MULARIEN, 2010)

45


3.3.3. O OAUTH

Open Authentication (OAuth), é um padrão aberto para autorização de aplicações para
acessar dados em nome de um usuário. Através do OAuth, é possível proteger informações
pessoais de um usuário.
O protocolo OAuth é utilizado por diversas grandes empresas famosas da Internet,
como, por exemplo, Yahoo!, Google, FourSquare e Twitter. (LEBLANC, 2011)
O protocolo OAuth foi criado originalmente por uma comunidade pequena de
desenvolvedores web de diversos websites, que queriam resolver o problema comum de
permitir a delegação de acesso a recursos protegidos.
O protocolo OAuth resultante foi estabilizado na versão 1.0 em Outubro de 2007, e
revisado em Junho de 2009 (Revisão A), conforme publicado online. (OAUTH, 2010)
O protocolo OAuth fornece um método para que clientes acessem recursos do servidor
em nome de um resource owner (dono de recursos). Também é possível fornecer um processo
para usuários finais autorizarem acesso de terceiros aos recursos de seus servidores sem
compartilhar suas credenciais (como, por exemplo, usuário/senha), usando redirecionamento
de seus agentes de usuários. (OAUTH,2010)
3.3.3.1.Terminologia

O protocolo OAuth apresenta diversos conceitos com um significado particular para seu
contexto, conforme apresentado abaixo:
Cliente: Um cliente HTTP capaz de fazer requisições OAuth autenticadas. (OAUTH,
2010)
Servidor: Um servidor HTTP capaz de aceitar requisições OAuth autenticadas.
(OAUTH, 2010)
46


Recurso protegido: Um recurso de acesso restrito que pode ser obtido de um servidor
utilizando uma requisição OAuth autenticada. (OAUTH, 2010)
Proprietário do recurso: Uma entidade capaz de acessar e controlar recursos
protegidos utilizando credenciais para se autenticar no servidor. (OAUTH, 2010)
Credenciais: Credenciais são um par composto de um identificador único e um segredo
correspondente compartilhado.
O OAuth define três classes de credenciais: cliente, temporário e token, usados,
respetivamente, para identificar e autenticar o cliente que está fazendo a requisição, a requisição
de autorização, e a concessão do acesso. (OAUTH, 2010)
3.3.3.2.Benefícios

Segundo Leblanc (2011, p. 319) o protocolo OAuth oferece algumas melhorias sobre os
modelos tradicionais de autenticação, incluindo:
• Ao invés de ter que enviar o nome de usuário e senha ao servidor com cada
requisição de autenticação, é possível trabalhar com tokens de acesso abstratos que
não compartilham nenhuma das senhas do usuário.
• Como tokens são emitidos a partir de um servidor, eles podem ser revogados a
qualquer momento, colocando mais controle nas mãos do Usuário. Diversos
provedores também implementam um mecanismo de expiração de tokens, que
requerem que uma aplicação periodicamente renove o token de acesso para
continuar executando requisições de dados dos usuários.
• Usuários podem ver os tokens que eles possuem ativos (isto é, quais aplicações
podem acessar seus dados) no site do provedor, significando que eles podem
manualmente revogar o acesso de uma aplicação. Já que a aplicação não possui as
47


credenciais de autenticação do usuário, ela não pode fazer mais requisições de dados
uma vez que o usuário revogue a autorização da aplicação.
3.3.3.3. Experiência do Usuário

Quando o OAuth é utilizado em uma aplicação, a experiência para o usuário final que
interage com a aplicação é muito menos intrusiva e complicada do que o processo necessário
para o desenvolvimento da mesma. (LEBLANC, 2011)
Implementações da tela de permissão, onde usuários permitem que uma aplicação faça
ações em seu nome, podem variar muito dependendo da plataforma onde ela é implementada,
mas o princípio básico é o mesmo. A plataforma exibe uma página contendo uma informação
básica sobre a aplicação e fornece meios para que o usuário possa permitir ou negar que a
aplicação utilize seus dados pessoais. (LEBLANC, 2011) Leblanc (2011, p. 327) destaca as
telas de autorização de algumas plataformas que utilizam o OAuth, na Figura 11 é apresentada
a tela de autorização do Twitter e na Figura 12 é apresentada a tela do Yahoo!


Figura 11 - Tela de Autorização do Twitter
(Fonte: Leblanc 2011)

48


No caso da implementação do Yahoo! o usuário primeiramente deve informar seu
usuário e senha e, posteriormente, ele será redirecionado para a tela de permissão. Nesta tela
também são exibidas as aplicações necessárias para o fornecimento de dados da aplicação que
está requisitando autorização. (LEBLANC, 2011)

Figura 12 - Tela de Autorização do Yahoo!
(Fonte: Leblanc 2011)
3.4. O PasswordBox

O PasswordBox é uma extensão ideal para uma pessoa que tem várias contas em
serviços online, mas sofre com dificuldades em lembrar de suas senhas. Basta adicioná-la e
gerenciar suas senhas de maneira eficiente. Além disso, promove o ganho de tempo, já que não
será necessário lembrá-las sempre que visitarmos os sites gerenciados.
Para começar a utilizá-lo, é necessário o registro com inserção de um e-mail válido e
uma senha. Apos este processo, existe a possibilidade de acesso ao perfil de gestão de palavras-
chave onde é possível visualizar senhas existentes.

49


O PasswordBox já vem com um vasto catálogo de categorias de senhas; logo, é possivel
classificar a nova senha como sendo a de um perfil no Facebook, conta do Paypal ou registro
no YouTube, por exemplo.

Figura 13 - Tela de login do passwordbox.
(Fonte:www.passwordBox.com)
3.4.1. Registro de senhas

Para o processo de registro de senhas, a plataforma concede a possibilidade de inscrição
inclusive via facebook, o plugin irá convidá-lo a se inscrever ou efetuar o login via Facebook.
Após o processo inicial, será necessário fornecer uma senha mestra pela qual é liberado o acesso
ao PasswordBox.
Apos o registro da senha mestra, o utilizador será redirecionado automaticamente para
uma página, onde fornecerá as informações para cada login e senha gerenciados pela
ferramenta. Esse tipo de configuração é amigável. Basta clicar no serviço exibido, para que
sejam solicitadas as informações de login. Forneça os dados e mande salvar.

50


Na próxima vez que visitar o site que foi registrado anteriormente, bastará apenas clicar
no botão de Log In.
Por padrão, o aplicativo irá tornar-se a página inicial do seu Google Chrome. É a partir
desta página que será feito a gestão de contas, bem como o registro de novos serviços, conforme
a figura 14.

Figura 14 - Página inicial do passwordbox.
(Fonte: www.passwordBox.com)

3.4.1.1. Funcionamento

O plugin funciona como uma espécie de banco de senhas e é facilmente acessível,
bastando clicar no pequeno ícone inserido na barra de ferramentas do navegador. Não mais terá
sem necessidade de abandonar o browser para relembrar a senha.


51



Figura 15 - Página de confirmação de registro
(Fonte: própria)

3.4.1.2. Benefícios:

 O passwordBox auxilia na gestão de senhas.
 Não se estabeleceu um limite de senhas a serem armazenadas.
 Permite manter os dados sempre em disposição.
 Sincronização automática ideal para utilizadores de múltiplos dispositivos, mantendo
as informações sempre atualizadas.





52


Compatibilidade Recursos Uteis Segurança
Firefox, Internet explorer. Abre websites com um
clique.
Criptografia AES de
nível militar
Aplicativos para
Smartphones, Ipads e Web
moveis.
Modelo pré definido que
permite selecionar novas
contas rapidamente.
Função de bloqueio
automático (contra roubo
de telefone ou ipad)
Sistemas operacionais Mac
e Windows.
Pagina inicial
personalizável.
Criptografia de
descodificação feita no
seu computador com
uma senha mestre que só
o utilizador conhece.
Tabela 2 - Recursos funcionais do passwordbox


Figura 16 - Página inicial do Google Chrome,
Com o Plugin do Pbox configurado.

53


3.4.2. Resumo

Vimos Quatro técnicas O PasswordBox que é uma extensão ideal para uma pessoa que
tem várias contas em serviços online, o OpenId que é ou pode ser uma rede distribuída na qual
a identidade do utilizador é dado por uma URL ou XRI que pode ser verificada por
qualquer servidor executando um protocolo, O CAS que é um portal de autenticação única de
código aberto, que fornece controlo de acesso centralizado. Fazendo uma comparação, e o
OAUTH que é Open Authentication (OAuth), é um padrão aberto para autorização de aplicações
para acessar dados em nome de um usuário. Podemos referenciar O OpenID e o OAUTH, pela
sua forma livre e simples como interagem com qualquer sistema que esteja acessando
servidores e serviços Web.










54


CAPÍTULO IV - PROPOSTA DE METODOLOGIA PARA
AUTENTICAÇÃO

4.1. Implementação de Mecanismos para Autenticação

Para a realização do estudo desta proposta neste trabalho foram adotados métodos que
envolvem desde a parte de pesquisa até os estudos tecnológicos e a utilização de uma estrutura
física para o correto funcionamento das implementações.
O objetivo deste capítulo é descrever detalhadamente cada um dos procedimentos
adotados, assim como as principais justificativas das escolhas tecnológicas deste estudo. Foi
desenvolvido inicialmente um mecanismo de autenticação simples de login e senha, no qual foi
observado que dentre os métodos estudados, este é o mais simples de desenvolver, e mais
rápido.
4.1.1. Procedimentos de pesquisa

Tratando-se dos procedimentos de pesquisa será utilizado, inicialmente, a pesquisa
bibliográfica, por ser “desenvolvida com base em material já elaborado constituído
principalmente de livros e artigos científicos.” (GIL, 2002). Posterior à etapa da pesquisa
bibliográfica, será adotada a pesquisa experimental porque, segundo Gil (2002), consiste em
determinar um objeto de estudo, selecionar as variáveis que seriam capazes de influenciá-lo,
definir as formas de controlo e de observação dos efeitos que a variável produz no objeto.
4.1.1.1. Tipo de Pesquisa

Quanto a natureza da pesquisa ela pode ser classificada como aplicada pois “é feita a
partir de objetivos que visam sua utilização prática. Valem-se essas pesquisas das contribuições
das teorias e leis já existentes.”
55


Quanto aos objetivos, esta pesquisa classifica-se como exploratória pois “têm como
objetivo proporcionar maior familiaridade com o problema, com vistas a torná-lo mais explícito
ou a constituir hipóteses.”
4.1.1.2. Estrutura física

A estrutura física utilizada para o desenvolvimento e testes das aplicações é composta
de um Notebook doméstico com sistema operacional Windows 8, os navegadores de internet
Google Chrome, Mozila firefox e o Internet Explorer, e a rede utilizada é da Net One router
3G.
A configuração de hardware do Notebook utilizado para o desenvolvimento e testes é a
seguinte:
• CPU Pentium Intel Core i5 M 480 @ 2.67 GHz;
• 4 GB de memória DDR2 667MHz;
• HD de 297 GB SATA.
4.1.1.3. Tecnologias

Para a implementação das aplicações que são objetos de estudo deste trabalho foram
utilizadas diversas tecnologias que, juntas, fornecem o correto funcionamento do protocolo
OAuth e das funcionalidades desenvolvidas em cada aplicação.
4.1.1.3.1. PHP

PHP é uma linguagem de script amplamente utilizada, especialmente adequada para o
desenvolvimento web e pode ser incorporada ao HTML. O que diferencia o PHP de linguagens
como o Javascript é que ele é executado no servidor, gerando o código HTML final que será
enviado ao cliente. O cliente receberá o resultado da execução do script, mas não saberá o
código que gerou este resultado. O PHP pode ser utilizado para, entre outras coisas, coletar
56


dados de formulários, gerar conteúdo de páginas dinamicamente, enviar e receber cookies e
manipular banco de dados. (PHP, 2011)
4.1.1.3.2. HTML 5 e CSS3

HyperText Markup Language 5 (HTML5) e Cascading Style Sheets 3 (CSS3) são dois
padrões novos propostos pela World Wide Web Consortium (W3C). Essas tecnologias são a
evolução das tecnologias utilizadas no dia-a-dia de envolvidos com a internet, e existem para
ajudar na construção de aplicações web modernas e inovadoras.
Diversas novas funcionalidades ajudam na melhora da sintaxe da linguagem, assim
como adicionam um suporte maior a animações interoperáveis (independentes de plugins de
terceiros), trazem novas funcionalidades para utilização de sockets, armazenamento offline,
melhorias de formulários e muito mais.
O CSS3 adiciona novos seletores para melhorar a estilização de componentes, como,
por exemplo, até a identificação de colunas pares e ímpares de uma tabela. A nova versão do
CSS também traz efeitos visuais sofisticados, como sombras, gradientes, cantos arredondados
e etc. Ambas as novas tecnologias ainda são trabalhos em andamento, porém cada vez mais as
ferramentas de acesso à internet (como navegadores) estão adotando e suportando essas
tecnologias.
4.1.1.3.3. MySQL e Wamp server

O software MySQL provê um servidor de banco de dados Structured Query Language
(SQL) robusto, multi-usuário, rápido e eficaz. Ele é indicado para sistemas em produção de alta
carga assim como para incorporação em massa de sistemas já implantados. Os servidores
MySQL e WAMP possuem uma licença comercial, e uma versão de código-aberto.

57


4.2. Implementação

A seguir, são apresentados os mecanismos que foram implementados.
a) Autenticação baseada no conhecimento – Login e senha, conforme Figura 17.




Figura 17 - Formulário de login e senha de usuário







58


As tabelas 3, 4 e 5, mostram os códigos utilizados para implementação deste mecanismo.
No código da pág. 61, tabela 1.1, a função addslashes remove caracteres indevidos que são
utilizados em ataques como os de SQL Injection, que permite ao atacante inserir uma série de
instruções SQL em uma consulta (query) por meio da manipulação das entradas de dados de
uma aplicação. Em seguida, tem-se uma verificação se a variável login está preenchida, se
estiver, o sistema carrega um módulo do framework codeigniter chamado form_validation
(validação de formulário), que é responsável por validar formulários, de acordo com as regras
que definimos.
Regras são definidas para não permitir que as variáveis login e senha estejam em branco
e que a senha seja criptografada utilizando o método SHA1
5
(Secure Hash Algorithm) que é
um algoritmo de hash de 160 bits de saída, considerando que podíamos também usar o md5 que
é também um algotitmo de hash de 128 bits unidirecional.
Na sequência, é verificado se o usuário existe no banco de dados e se a senha confere.
Se a senha estiver correta, a aplicação lista os privilégios deste e salva as informações em
variáveis de sessão, liberando o acesso e redirecionando para a página inicial do sistema.




5
SHA-1, é usada numa grande variedade de aplicações e protocolos de segurança,
incluindo TLS, SSL, PGP, SSH,S/MIME e IPSec. SHA-1 foi considerado o sucessor do MD5.
59






<?php
//Starts
ob_start();
session_start();

//Globais
$home="http://localhost/sistemaphp";
$title="HxTutors-Administraçao";
$startaction="";
if(isset($_GET["acao"])){
$acao=$_GET["acao"];
$startaction=1;
$msg="";
}
//Include das classes
include("classes/DB.class.php");
include("classes/Cadastro.class.php");
include("classes/Login.class.php");

//Conexao com o banco de dados
$conectar=new DB;
$conectar=$conectar->conectar();

//Exemplo de conecçao
$query=mysql_query("SELECT * FROM usuarios");
echo "<h1>".mysql_num_rows($query)."</h2>";

//Método de cadasto
if($startaction ==1){
if($acao == "cadastrar"){
$nome=$_POST["nome"];
$end=$_POST["end"];
$email=$_POST["email"];
$senha=$_POST["senha"];

if(empty($nome)||empty($end)||empty($email)||empty($senha)){
$msg="Preencha todos os campos!";
}
//Todos os campos preenchidos
else{
//E-mail válido
if(filter_var($email,FILTER_VALIDATE_EMAIL)){
//Senha inválida
if(strlen($senha)<8){
$msg="As senhas devem ter no minimo oito
caracteres!";
}

Tabela 3 -Código para implementação do mecanismo de login e senha.
60






//E-mail inválido
else{
$msg="Digite o seu e-mail correctamente!";
}
}
}
}

//Método de Login
if($startaction==1){
if($acao=="logar"){
//Dados
$email=addslashes ($_POST ["email"]);
$senha=addslashes (sha1 ($_POST ["senha"]."opb"));

if(empty($email)||empty($senha)){
$msg="Preencha todos os campos!";
}else{
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
$msg="Digite seu email corretamente!";
}else{
//Executa a busca pelo usuario
$login=new Login;
echo"<div class=\"flash\">";
$login=$login->logar($email,$senha);
echo"</div>";
}
}
}
}
//Método de logout
if($startaction==1){
if($acao == "logout"){
setcookie("logado","");
unset($_SESSION["email"],$_SESSION["senha"],$_SESSION["nivel"]);
}
}

//Método de Checar Usuario
if(isset($_SESSION["email"])&& isset($_SESSION["senha"])){
$logado=1;
$nivel=$_SESSION["nivel"];
}


//Método de Aprovar
if($startaction==1){
if($acao == "aprovar"){
if($nivel==2){
if(isset($_GET["id"])){
$id=$_GET["id"];
$query=mysql_query("UPDATE usuarios SET status='1' WHERE
ID='$id'");
}
}
}
}

Tabela 4 - Código para implementação do mecanismo de login e senha.
61








//Método de Bloquear
if($startaction==1){
if($acao == "bloquear"){
if($nivel==2){
if(isset($_GET["id"])){
$id=$_GET["id"];
$query=mysql_query("UPDATE usuarios SET status='0' WHERE ID='$id'");
}
}
}

}



//Variáveis de estilo
if(empty($msg)){
$display="display:none;";
}else{
$display="display:block;";
}
?>


Conexão com o Banco de dados
------------------------------------------------
<?php
class DB{
public function conectar(){
$host="localhost";
$user="root";
$pass="";
$dbname="sistemahx";

$conexao=mysql_connect($host,$user,$pass);
$selectdb=mysql_select_db($dbname);

return $conexao;
}
}
?>
Tabela 5 - Código para implementação do mecanismo de login e senha.
62


Na figura 18 apresentamos o formulário de cadastro, onde todo o utilizador que interagir
com o serviço pela primeira vez terá de efetuar o cadastro.







O administrador é quem governa o sistema então só ele, apenas ele terá acesso ao banco
de dados e manipular as ações do sistema, o administrador poderá aprovar ou bloquear os
utilizadores através do seu painel de administração que busca informações diretamente na base
de dados, como vemos na pág. 69 as imagens 19 e 20.


Figura 18 - Formulário de cadastro do usuário
63



Figura 19 - Painel de administração do sistema


Figura 20 - Banco de dados que interage com o sistema

64


4.2.1. Testes

Os testes utilizados na pesquisa foram todos de formas a obter resultado das inserções e
consultas feitas através do formulário, simulando assim um utilizador a efetuar o login, caso
não esteja na base de dados registrado, é pedido que se registre no sistema para posteriormente
efetuar o login e aguardar a confirmação do administrador do sistema para validar o seu
cadastro.
Por sua vez uma vez efetuado o cadastro o nosso sistema automaticamente encripta a
palavra passe como vemos a seta a indicar na página 64, desta forma a senha mantem-se em
segredo e só o proprietário da mesma poderá ou deverá ter acesso sobre determinada senha.
Foram elaborados vários testes, dentre eles para ver o funcionamento tanto com o Md5
e o Sha1, e até um teste em que não avançamos qualquer das metodologias para segurança da
senha de usuário.
4.2.2. Esquema Funcional

A figura abaixo mostra Um esquema detalhado sobre os protocolos de autenticação que
normalmente são usados por servidores web tanto como servidores locais como é o exemplo do
wamp server que usamos para o nosso projeto, onde contém o nosso banco de dados para
armazenamento dos dados.
Este é um esquema sobre o funcionamento da autenticação sobre o nosso sistema de
login e senha, de modos a mostrar a fase de encriptação da senha, usando o protocolo Sha1,
nele também podemos ver outras tecnologias que se abatem sobre eles, como é o caso do Oauth,
o Kerberos, OpenID e o password box.
65



Figura 21 – Funcionamento do método de login e senha


Figura 22 - Funcionamento do sistema de autenticação

66


4.3. Considerações Finais

Durante a investigação feita para elaboração do referido trabalho tivemos a
oportunidade de perceber que a segurança dos sistemas distribuídos tem como principal
objetivo proteger as informações que nela trafegam no sentido de garantir a sua
confidencialidade, a sua integridade e a sua disponibilidade.
A segurança de sistemas distribuídos é um quesito indispensável no projeto para a
obtenção de um serviço de qualidade já que na maioria dos casos os usuários não desejam que
suas informações pessoais sejam compartilhadas, além do fato de que o sistema deve estar
disponível sempre que os usuários desejarem.
A cada dia surgem novas formas e ferramentas de ataque, as vezes explorando até
mesmo vulnerabilidades já conhecidas. Isso faz com que seja fundamental a atualização
constante do administrador de segurança de redes.
Com efeito, cada vez mais se torna verdadeira a máxima que diz que "um sistema só é
100% seguro se ele não estiver conectado a nenhum tipo de rede", mas também não se
esquecendo que a utilizações de métodos e padrões para a segurança e autenticação de
utilizadores é e pode ser ainda mais eficaz se percebermos o que realmente afeta os nossos
sistemas para melhor implementar tais políticas.
Devemos sempre delimitar quais protocolos queremos utilizar para auxiliar na
segurança do nosso sistema, dai é que podemos escolher um dentre uma vasta lista de protocolos
de autenticação, por exemplo o protocolo kerberos é muito utilizado hoje em dia em sistemas
como o windows servidor, e não obstante a isso temos o auxilio de um outro protocolo estudado
aqui neste trabalho tratando-se do LDAP que é um protocolo especializado em organizar os
recursos de rede de forma hierárquica, através de uma árvore de diretórios, que roda sobre os
protocolos TCP/IP.
67


A isto tudo podemos associar a extensão do PasswordBox que é ideal para uma pessoa
que tem várias contas em serviços online, e o OpenId pode ser usado em uma rede distribuída
na qual a identidade do utilizador é dado por uma URL ou XRI que pode ser verificada por
qualquer servidor executando um protocolo.
4.3.1. Trabalhos Futuros

Como recomendações para trabalhos futuros, é sugerido que novas pesquisas possam
ser feitas no sentido do desenvolvimento de sistemas nativamente distribuídos, e seguros ou
seja, que todo o seu projeto fosse pensado, desde o início, para essa finalidade.
Para o efeito, esperam-se contribuições focadas de modos que seja possível interligar
um sistema de autenticação web a um servidor local que esteja em modo Offline, e tanto em
aspetos de investigação científica, experimentação e validação tecnológica bem como nas
apresentações de resultados de projetos de IeD nas áreas da segurança de sistemas
computacionais, redes de comunicação e aplicações.

Figura 23 - Esquema de ligaçao de acesso do wamp para o passwordbox
68


5. REFERÊNCIAS BIBLIOGRÁFICAS

Autenticação: http://penta.ufrgs.br/pesquisa/fiorese/autenticacaoeadcap2.htm.
Taisy Silva Weber--Um roteiro para exploração dos conceitos básicos de tolerância a falhas-
-http://www.inf.ufrgs.br/~taisy/disciplinas/textos/Dependabilidade.pdf.
Vidal Martins - GPT, Segurança em sistemas distribuídos-
http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php? Conteudo=602.
Bruce Schneier. Applied Cryptography: Protocols, Algorithms, and Source Code in C.
Wiley, 1996.
Charlie Kaufman, Radia Perlman, Mike Speciner. Network Security: Private
Communication in a Public World. Prentice-Hall, 1995.
CORDEIRO, Gilliard Santos, SILVA, Jefferson Moreira da, 2007 - MIDDLEWARE –
Sistemas Distribuídos - Trabalho conclusão de curso da UNIDERP, Campo Grande, MS.
CORREIA, Miguel Pupo; SOUSA, Paulo Jorge. Segurança no Software. Lisboa:FCA
Editora de Informática, 2010.GIL, A. C. Como elaborar projetos de pesquisa. 4. Ed. São
Paulo: Atlas, 2002.GOURLEY, David; TOTTY, Brian. HTTP The Definitive Guide.
Sebastopol: O'Reilly Media, 2002.
DEITEL, Harvey M. Java Como Programar 6ª edição – São Paulo: Editora Pearson
Education do Brasil., 2008.
Fernando da silva: http://www.dcc.fc.up.pt/~lblopes/aulas/sdm/introduction.pdf
FERREIRA, Rubem E. Linux Guia do Administrador do Sistema. São Paulo: Novatec
Editora Ltda, 2003.
GOUVEIA, B. LDAP para iniciantes. Disponível em: <http://www.ldap.org.br/>. Acesso em:
jun. 2009.
Ihor Kuz, Felix Rauch, Manuel M. T. Chakravarty, Gernot Heiser. Security in Distributed
Systems. Notes for Lectures on COMP9243. University of New South Wales Site:
www.cse.unsw.edu.au/~cs9243/lectures/.
Kerberos disponível : http://www.gta.ufrj.br/grad/99_2/marcos/kerberos.htm.
69


LEBLANC, Jonathan. Programming Social Applications. Sebastopol: O'Reilly Media,
2011.
MVC, site:
http://pt.wikipedia.org/wiki/Framework_para_aplica%C3%A7%C3%B5es_Web.
OAUTH. RFC 5849 - The OAuth 1.0 Protocol. Disponível
em:<http://tools.ietf.org/html/rfc5849>. Acesso em 08 ago. 2011.
OpenId, site: http://pt.wikipedia.org/wiki/OpenID.
OPENLDAP FOUNDATION. OpenLDAP Software 2.4 Administrator's Guide. Disponível
em: <http://www.openldap.org/doc/admin24/>. Acesso em: mai. 2009.
PC Magazine UK Guide to Clustering. Disponível por www em Site:
http://www.zdnet.co.uk/pcmag/ (outubro de 1999).
PEDRO RAMOS DE ALMEIDA JUNIOR:TÉCNICAS UTILIZADAS PARA PRÁTICA
DE CRIMES DE INFORMÁTICA: Site: http://pt.scribd.com/doc/49337092/5/Distincoes-
entre-hacker-e-cracker-hackerismo-e-crackerismo.
PINTO et al., (2005) Uma Experiência de Desenvolvimento de um Sistema Distribuído
Utilizando uma Arquitetura Multiplataforma. Trabalho conclusão de curso do Programa de
Engenharia de Sistemas e Computação – UFRJ, Rio de Janeiro.
Protocolos de autenticação, site: http://technet.microsoft.com/pt-
br/library/cc739177(v=ws.10).aspx.
SistemaDistribuído:http://www.ebah.com.br/content/ABAAABEpcAH/artigo-sistemas
distribuídos.
Stings: C Progressivo.net, site: http://www.cprogressivo.net/2013/03/O-que-sao-
STRINGS-como-declarar-inicializar-e-o-caractere-delimitador-0.html.
TANENBAUM, Andrew S. Redes de Computadores – Rio de Janeiro: Elsevier Editora
Ltda, 2003: Site: http://www.romeumenezes.com.br/livros/Livro%20-%20SO%20-
%20Sistemas%20Operacionais%20-%202Ed.pdf.
TANENBAUM, Andrew S. Sistemas Operacionais Modernos – Rio de Janeiro: Editora
Prentice-Hall do Brasil Ltda, 1995.
70


TUNG, BRYAN - "The Moron's Guide to Kerberos, Version 1.2.2" .
Universidade federal do rio grande do
sul:http://penta.ufrgs.br/pesquisa/fiorese/autenticacaoeadcap2.htm.


























71


6. APÊNDICE

Elementos envolvidos em Computação distribuída
Anti spyware- (Anti- contra, spy- Espião, ware-mercadoria).
Antivírus- Os antivírus são programas de computador concebidos para prevenir, detetar e
eliminar vírus de computador. Existe uma grande variedade de produtos com esse intuito no
mercado, sendo recomendado utilizar apenas um antivírus gratuito ou apenas um pago. A
diferença está nas camadas a mais de proteção que a versão paga oferece, além do suporte
técnico realizado pela equipe especializada.
Arrays- variável indexada ou arranjo (as duas últimas denominações são mais preferíveis),
também conhecido Como vetor (para arrays unidimensionais) ou matriz (para arrays
bidimensionais), é uma das mais simples’ estruturas de dados. Os arrays mantêm uma série de
elementos de dados, geralmente do mesmo tamanho e tipo de dados.
Autenticidade- Entende-se por autenticidade a certeza de que um objeto (em análise) provém
das fontes anunciadas e que não foi alvo de mutações ao longo de um processo. Na
telecomunicação, uma mensagem será autêntica se for, de fato, recebida na íntegra, diretamente
do emissor.
Bakups: Cópia de segurança, cópia de dados de um dispositivo de armazenamento.
C Sharp- é uma linguagem de programação orientada a objetos, fortemente tipada,
desenvolvida pela Microsoft como parte da plataforma. NET. A sua sintaxe orientada a objetos
foi baseada no C++ mas inclui muitas influências de outras linguagens de programação,
como Object Pascal e Java.
72


Crackers de Criptografia: Termo usado para designar aqueles que se dedicam à quebra de
criptografia (cracking codes). Tal procedimento pode ser executado tanto com lápis e papel bem
como com uso de computadores, tudo depende da fonte do problema a ser solucionado.
Crackers de softwares: Termo usado para designar programadores e decoders que fazem
engenharia reversa de um determinado programa, ou seja, alteram o conteúdo de um
determinado programa pra fazer funcionar de forma correta, muitos crackers alteram datas de
expiração de um determinado programa pra fazer funcionar mais de 30 dias, ou seja, modificam
o modo trial para utilizar como se fosse uma cópia legítima, ou fazem um desvio interno na
rotina de registro do programa para que ele passe a aceitar quaisquer seriais, tais sofwares
alterados são conhecidos como warez.
Cracking- O ato de quebrar a segurança de um sistema, muitas vezes exige brilhantismo para
se realizar e capacidade para explorar (exploitar) as vulnerabilidades conhecidas do sistema
alvo com criatividade. Entretanto alguns, 'erroneamente' definidos como crackers, utilizam-se
de soluções conhecidas para problemas recorrentes em sistemas vulneráveis, copiando assim
ou explorando falhas descobertas por outros sem qualquer esforço.
E-mails-Correio eletrônico (permite compor, enviar e receber mensagens)
Firewall-Significa em português- Parede de Fogo (aplica política de segurança).
Hardware- Pode ser definido Como um termo geral para equipamentos Como chaves,
fechaduras, dobradiças, trincos, puxadores, fios, correntes, material de canalização,
ferramentas, utensílios, talheres e peças de máquinas. No âmbito eletrônico o termo "hardware"
é bastante utilizado, principalmente na área de computação, e se aplica à unidade central de
processamento, à memória e aos dispositivos de entrada e saída.
2

73


Host: Em informática, host ou hospedeiro, é qualquer máquina ou computador conectado a
uma rede, podendo oferecer informações, recursos, serviços e aplicações aos usuários ou outros
nós na rede. No nó, é o responsável por implementar a estrutura da camada de rede de
endereçamento. Os hosts variam de computadores pessoais a supercomputadores, dentre outros
equipamentos, como roteadores.
I MAP (I nternet Message Access Protocol. Traduzido do inglês, significa "Protocolo de acesso
a mensagem da internet") é um protocolo de gerenciamento de correio eletrônico superior em
recursos ao POP3 - protocolo que a maioria dos provedores oferece aos seus assinantes.
I nternet-Ban king- Banco Internético (Utilizados para caracterizar Transações).
I nternet-Conglomerado de redes em escala mundial de milhões de computadores.
J AAS: Java Authentication and Authorization Service, ou JAAS, pronuncia-se "Jazz", é a
implementação Java do Pluggable Authentication Module padrão (PAM), a estrutura de
segurança da informação. JAAS foi introduzido como uma biblioteca de extensão do Java
Platform, Standard edition 1.3 e foi integrado na versão 1.4 - O principal objetivo da JAAS é
separar as preocupações de autenticação do utilizador de modo que eles podem ser
administrados de forma independente.
J ava- Java é uma linguagem de programação e uma plataforma de computação lançada pela
primeira vez pela Sun Microsystems em 1995. É a tecnologia que capacita muitos programas
da mais alta qualidade, como utilitários, jogos e aplicativos corporativos, entre muitos outros,
por exemplo. O Java é executado em mais de 850 milhões de computadores pessoais e em
bilhões de dispositivos em todo o mundo, inclusive telefones celulares e dispositivos de
televisão.
Kerberos-é o nome de um Protocolo de rede, que permite comunicações individuais seguras e
identificadas, em uma rede insegura.
74


Leakage- Fuga de informação, aquisição de informação por agentes não autorizados.
Login- Significa em português- Senha ou palavra passe.
Masquerading-Recurso de rede utilizado no Linux, equivale a NAT utilizado no Windows.
Message tampering- Adulteração de Mensagem.
Middleware-Mediador, em SD faz a medição entre software e outras aplicações.
Mídea- tecnologias de media, incluindo a internet, a televisão, os jornais e a rádio, que são
usados para comunicação de massa.
Modus operandi- Expressão em latim que significa modo de operação.
OpenLDAP - Implementação do Lightweight Directory Access Protocol (LDAP) de código
aberto desenvolvida pelo Projeto OpenLDAP, Lightweight Directory Access Protocol (LDA).
Password- palavra-chave ou password, é uma palavra ou código secreto previamente
convencionado entre as partes como forma de reconhecimento. Em sistemas de computação,
senhas são amplamente utilizadas para autenticar usuários e conceder-lhes privilégios — para
agir como administradores de um sistema, por exemplo ou permitir-lhes o acesso a informações
personalizadas armazenadas no sistema.
Processamento Batch- é um modo de execução que não tem qualquer interação com o usuário,
e as instruções ou programas são enfileirados e executados através de um estímulo. Esse
estímulo pode ser uma data e horário programado ou um outro programa.Processamento batch
é utilizado quando do tratamento de arquivos que contêm diversos registros, também conhecido
como processamento por lote de dados. Este recurso é muito utilizado em sistemas distribuídos
onde as aplicações de front-end tem restrições, seja de custos, de telecomunicações ou de
arquitetura, para efetuar atualizações online/realtime nos sistemas centralizados. Opta-se por
75


alimentar um banco de dados local durante o dia e envio de um arquivo sequencial contendo
todos os registros para atualizações no período noturno nos sistemas centrais.
Processamento batch, no contexto de sistemas operacionais, é um termo referente a um
processamento de dados que ocorre através de um lote de tarefas enfileiradas, de modo que o
sistema operacional só processa a próxima tarefa após o término completo da tarefa anterior.
Resource stealing – Recurso de roubo de senhas.
Scanner- Em programação Java, para receber dados do usuário, temos que usar a classe
Scanner, que faz parte do pacote 'java.util'.
Security token - Segurança, autenticação de SD.
Sites- Em Português (Sitio), Conjunto de páginas Web.
Software’s- logiciário ou suporte lógico é uma sequência de instruções a serem seguidas e/ou
executadas, na manipulação, redirecionamento ou modificação de um dado/informação ou
acontecimento. Software também é o nome dado ao comportamento exibido por essa sequência
de instruções quando executada em um computador ou máquina semelhante além de um
produto desenvolvido pela Engenharia de software, e inclui não só o programa de computador
propriamente dito, mas também manuais e especificações.
Spoof login- No contexto de redes de computadores, IP spoofing é um ataque que consiste em
mascarar (spoof) pacotes IP utilizando endereços de remetentes falsificados.
Tampering- tampering é, na gíria informática, a intercepção física (do sinal, não dos dados)
ocorrida num canal de transmissão.
Time sharing- Tempo compartilhado (Extensão da lógica de Programação).
76


TOKEN - (dispositivo eletrônico semelhante a uma calculadora, usados para calcular senhas
descartáveis).
Token – é um dispositivo eletrônico gerador de senhas, geralmente sem conexão física com o
computador, podendo também, em algumas versões, ser conectado a uma porta USB.
Vandalism– Vandalismo em português agem pelo simples prazer de causar danos a vítima.
Este dano pode consistir na simples queda do servidor (deixando a máquina momentaneamente
desconectada da Internet) ou até mesmo a destruição total dos dados armazenados.
Vulnerabilidade- A vulnerabilidade na computação significa ter brecha em um sistema
computacional, também conhecida como bug. Esta mesma pode ser explorada em um
determinado sistema ou serviço vulnerável que esteja rodando na máquina.
Worm- Um Worm (verme, em português) é um programa autorreplicante, semelhante a
um vírus. Enquanto um vírus infecto um programa e necessita deste programa hospedeiro para
se propagar, o Worm é um programa completo e não precisa de outro para se propagar.
Um worm pode ser projetado para tomar ações maliciosas após infestar um sistema, além de se
auto-replicar, pode deletar arquivos em um sistema ou enviar documentos por correio
eletrónico.
Servidores Web?- Servidores Web são computadores com software específico que permitem a
aceitação de solicitações de computadores de clientes e retornam respostas à essas solicitações.
Os servidores Web permitem que você compartilhe informações pela Internet ou por uma
intranet ou extranet.
Com um servidor Web do IIS 7 você pode:
 Fornecer informações para usuários pela Internet.
77


 Permitir que usuários façam download e upload de conteúdos com FTP ou WebDAV
(criação e versão distribuídas na Web).
 Hospedar serviços da Web que contém lógica empresarial para aplicativos de três
camadas.
 Distribuir aplicativos para usuários pela Internet ao invés de disquetes ou CDs.