Post Office Protocol
3
POP3
COMUNICAÇÃO DE DADOS
LESI 2012’13
POP3
• Este protocolo permite a transferência de todas as mensagens de uma caixa de correio
localizada num determinado servidor online, para um dado cliente de email local,
possibilitando ao utilizador fazer a gestão do seu correio eletrónico localmente.
COMUNICAÇÃO DE DADOS
LESI 2012’13
Este protocolo compreende 4 áreas:
1. Inicialização do serviço
2. Comunicação
3. Respostas
4. Sessão
COMUNICAÇÃO DE DADOS
LESI 2012’13
1. Inicialização do Serviço
• Na fase inicial, o servidor de e-mail inicia o serviço POP3 e começa a ouvir:
• Porta TCP 110,
• Porta 995 se a ligação utilizar o protocolo SSL.
• A conexão feita é sobre TCP, uma vez que interessa ter um feed-back sobre a
transferência entre o emissor e o recetor.
• Após o estabelecimento da conexão, o servidor POP3 envia uma mensagem de
saudação ao cliente a qual confirma a ligação ao servidor.
COMUNICAÇÃO DE DADOS
LESI 2012’13
2. Comunicação
• Enquanto a comunicação não for fechada ou abortada, o cliente de email está
constantemente a trocar comandos e respostas com o servidor de POP3.
• Os comandos interpretados pelo POP3 são constituídos por palavras-chave, seguidos
ou não de um ou mais argumentos em case-insensitive.
COMUNICAÇÃO DE DADOS
LESI 2012’13
3. Resposta
• As respostas no protocolo POP3 são constituídas por um indicador de estado e uma
palavra-passe, seguidos ou não de informações adicionais e terminadas por um CRLF.
• CRLF -> Mudança de linha
• Na versão 3 do protocolo POP, existem dois indicadores de estados:
• Positivo: “+OK”
• Negativo: “-ERR”
COMUNICAÇÃO DE DADOS
LESI 2012’13
4. Sessão
•
Uma sessão no protocolo POP3 é caracterizada por um conjunto de estados durante o seu “tempo de
vida”.
•
Após o envio da saudação ao cliente, o protocolo entra no estado de AUTHORIZATION (Autorização).
•
Nesta fase o servidor pede a autenticação ao cliente e se esta operação for bem sucedida, estão
reunidas as condições para avançar para o estado de TRANSACTION (Transação).
•
No estado de TRANSACTION , o cliente faz pedidos ao servidor POP3.
•
Quando o cliente envia o comando QUIT a sessão entra no estado UPDATE (Atualização), liberta os
recursos alocados no estado anterior e fecha a conexão TCP.
COMUNICAÇÃO DE DADOS
LESI 2012’13
COMUNICAÇÃO DE DADOS
LESI 2012’13
Com SUCESSO
Autorization
Ligação bem
sucedida:
Servidor: +OK POP3
server ready
USER: [email protected]
PASS: 1234
Estado TRANSACTION
Bloqueio
caixa de
entrada
Sem SUCESSO
COMUNICAÇÃO DE DADOS
LESI 2012’13
Fecha a sessão
Transaction
• O cliente pode efetuar comandos repetidamente, sendo que a seguir a cada
comando, o servidor emite uma resposta.
• Comandos exclusivos da sessão TRANSACTION:
a) STAT
b) LIST
c) RETR
d) DELE
e) NOOP
f) RSET
COMUNICAÇÃO DE DADOS
LESI 2012’13
a) STAT
• Este comando não tem argumentos.
• Dá uma resposta positiva “+OK” seguido de um espaço, número de mensagens na
pasta de entrada, seguido de espaço e tamanho da pasta de entrada em octetos.
• Exemplo de um pedido de STAT:
CLIENTE: STAT
SERVIDOR: +OK 2 320
COMUNICAÇÃO DE DADOS
LESI 2012’13
b) LIST
• Tem parâmetro (opcional) o número de uma determinada mensagem.
• O número não se pode referir a uma mensagem marcada como eliminada.
• Se o comando for invocado com argumento, o servidor responde com uma linha que
contem a informação sobre a mensagem indicada. Quando o comando é enviado
sem parâmetros, o servidor responde com um status positivo seguido do número de
mensagens na pasta de entrada e efetua uma listagem em modo multilinha.
• Exemplo:
CLIENTE: LIST
SERVIDOR: +OK 2 messages
SERVIDOR: 1 120
SERVIDOR: 2 200
COMUNICAÇÃO DE DADOS
LESI 2012’13
c) RETR
• O comando RETR tem como argumento (obrigatório) o número da mensagem
• O número não se pode referir a uma mensagem marcada como eliminada.
• Quando o comando RETR é invocado, o servidor POP3 envia uma resposta positiva
seguida da informação relativa à mensagem na forma multilinha (conteúdo da
mensagem).
COMUNICAÇÃO DE DADOS
LESI 2012’13
d) DELE
• O comando DELE tem como argumento (obrigatório) o número da mensagem.
• o número não se pode referir a uma mensagem marcada como eliminada.
• Quando o comando RETR é invocado, o servidor POP3 marca a mensagem como
eliminada.
• A mensagem só é removida definitivamente quando a sessão passar para o modo
UPDATE.
• Enquanto não transita para o estado UPDATE, qualquer comando que for invocado
sobre o número dessa mensagem, será gerada uma mensagem de erro.
• Exemplo:
CLIENTE: DELE 1
SERVIDOR: +OK message 1 deleted
COMUNICAÇÃO DE DADOS
LESI 2012’13
e) NOOP
• O comando NOOP não tem argumentos e quando invocado não tem qualquer ação
prática, apenas dá uma resposta positiva.
COMUNICAÇÃO DE DADOS
LESI 2012’13
f) RSET
• O comando RSET não tem argumentos;
• Quando invocado, desmarca as mensagens;
• Informa do número de mensagens desmarcadas.
• Exemplo:
• C: RSET
• S: +OK maildrop has 2 messages
COMUNICAÇÃO DE DADOS
LESI 2012’13
Update
Comando QUIT
Estado
AUTHORIZATION
Estado
TRANSACTION
Estado UPDATE
(remove mensagens
marcadas)
SEM SUCESSO na autenticação ou inatividade
COMUNICAÇÃO DE DADOS
LESI 2012’13
Termina sessão
Comandos Opcionais
• Os comandos opcionais permitem ao cliente uma liberdade maior no tratamento das
mensagens, preservando a implementação simples do protocolo POP3.
• Existem apenas 4 comandos opcionais:
• TOP
• UIDL
• USER
• PASS
• APOP
COMUNICAÇÃO DE DADOS
LESI 2012’13
a) TOP
•
•
•
•
•
O comando TOP tem dois argumentos obrigatórios:
• Número da mensagem;
• Número de linhas a serem apresentadas.
Se o servidor responder positivamente (+OK), então a resposta é multilinha.
O servidor envia o cabeçalho da mensagem, seguido de uma linha em branco, fazendo a
separação entre o cabeçalho e o corpo da mensagem, e depois o número de linhas do corpo
da mensagem.
No caso do número de linhas pedidas pelo cliente ser superior ao número de linhas do corpo da
mensagem, o servidor retorna a mensagem completa.
Exemplo:
CLIENTE: TOP 1 10
SERVIDOR: +OK
SERVIDOR: <o servidor enviará o cabeçalho, linha em branco, e as 10 primeiras linhas
do corpo da mensagem>
COMUNICAÇÃO DE DADOS
LESI 2012’13
b) UIDL
•
•
•
•
•
•
Tem argumento (opcional) o número de uma determinada mensagem.
Se for fornecido o argumento e o servidor responder positivamente (+OK), então a linha
retornada é chamada “unique-id listing” para a mensagem indicada.
Se não for fornecido o argumento e o servidor responder positivamente (+OK), a resposta é
multilinha.
Após a resposta inicial, para cada mensagem na caixa de correio o servidor responde com uma
linha contendo informação dessa mensagem.
O identificador único de uma mensagem é uma palavra arbitrária gerada pela servidor. Esta
identifica singularmente a mensagem, e que é persistente entre sessões.
Exemplo:
CLIENTE:UIDL
SERVIDOR:+OK
SERVIDOR:1 wqtererQ000WBkdjhjd
COMUNICAÇÃO DE DADOS
LESI 2012’13
c) USER
• Tem argumento (obrigatório) o nome da caixa de correio (utilizador).
• Para se autenticar utilizando os comandos USER e PASS, o cliente primeiramente fará
uso do comando USER.
• Se o servidor responder positivamente (+OK), então o cliente poderá utilizar o
comando PASS para finalizar o processo de autenticação, ou então utilizar o comando
QUIT para terminar a sessão.
• Em caso de resposta negativa(-ERR) o cliente poderá tentar nova autenticação ou
utilizar o comando QUIT para terminar a sessão.
•
• Exemplo:
CLIENTE: USER silva
SERVIDOR: +OK silva is a real hoopy frood
COMUNICAÇÃO DE DADOS
LESI 2012’13
d) PASS
• Tem argumento (obrigatório) uma palavra-chave.
• Quando é utilizado o comando PASS, o servidor usa conjuntamente os comandos USER
e PASS para determinar se o cliente tem acesso ou não à caixa de correio.
• Exemplo:
CLIENTE: USER
SERVIDOR: +OK
CLIENTE: PASS
SERVIDOR: +OK
COMUNICAÇÃO DE DADOS
LESI 2012’13
pires
pires is a real hoopy frood
secret
pires’s maildrop has 2 messages(320 octets)
e) APOP
• Tem dois argumentos (ambos obrigatórios):
• Nome da caixa de correio;
• Chave MD5.
• Método de autenticação alternativo ao USER/PASS.
• O envio da autenticação é encriptada.
• Os servidores que tenham implementada a funcionalidade APOP, irão incluir na sua
mensagem de boas vindas um “timestamp” (carimbo do tempo), que deverá ser
sempre diferente a cada mensagem de boas vindas.
• A palavra-chave MD5, é calculada aplicando um algoritmo, definido na RFC1321, ao
carimbo do tempo (incluindo os parênteses de ângulo) seguido de uma palavra chave
partilhada .
• Esta palavra chave é conhecida apenas pelo cliente e servidor POP3.
COMUNICAÇÃO DE DADOS
LESI 2012’13
e) APOP (cont.)
•
•
•
•
A chave MD5 é composta por 16 octetos, enviados em hexadecimal, recorrendo ao uso de
caracteres minúsculos.
Quando o servidor recebe um comando APOP, verifica a chave MD5.
Se a chave estiver correta, responde positivamente e passa ao estado de TRANSACTION, senão
responde negativamente e continua no estado de AUTORIZATION.
Exemplo:
SERVIDOR: +OK POP3 server ready<[email protected]>
CLIENTE: APOP mrose c4c9334bac560ecc979e58001b3e22fb
SERVIDOR: +OK maildrop hás 1 message (369 octets)
Neste exemplo, a palavra-chave partilhada é “tanstaff”. O algoritmo MD5 aplicado a
esta palavra:
<[email protected]>tanstaaf
que produz a chave MD5: c4c9334bac560ecc979e58001b3e22fb
COMUNICAÇÃO DE DADOS
LESI 2012’13
Conclusão
• O protocolo POP3 apresenta-se como um protocolo simples e ideal para máquinas
com pouca capacidade de processamento.
• Como este protocolo está apenas conectado ao servidor durante o tempo necessário
para descarregar as mensagens da pasta de entrada, este é recomendado em
situações em que o custo da ligação é proporcional ao tempo de uso.
COMUNICAÇÃO DE DADOS
LESI 2012’13
Trabalho realizado por:
#7996 Anthony Cardante
#7829 Luís Pereira
#7999 Paulo Silva
COMUNICAÇÃO DE DADOS
LESI 2012’13
Download

Apresentação do PowerPoint