Post on 21-Apr-2015
COMUNICAÇÃO DE DADOSLESI 2012’13
Post Office Protocol 3
POP3
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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.
POP3
COMUNICAÇÃO DE DADOSLESI 2012’13
Este protocolo compreende 4 áreas:
1. Inicialização do serviço2. Comunicação3. Respostas4. Sessão
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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.
1. Inicialização do Serviço
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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.
2. Comunicação
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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”
3. Resposta
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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.
4. Sessão
COMUNICAÇÃO DE DADOSLESI 2012’13
ESTADOS DE SESSÃO POP3AUTHORIZATION > TRANSCTION > UPDATE
COMUNICAÇÃO DE DADOSLESI 2012’13
Autorization
Ligação bem sucedida:
Servidor: +OK POP3 server ready
USER: mail@xpto.pt
PASS: 1234
Bloqueio caixa de entrada
Estado TRANSACTION
Fecha a sessão
Com SUCESSO
Sem SUCESSO
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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) STATb) LISTc) RETRd) DELEe) NOOPf) RSET
Transaction
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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: STATSERVIDOR: +OK 2 320
a)STAT
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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: LISTSERVIDOR: +OK 2 messagesSERVIDOR: 1 120SERVIDOR: 2 200
b)LIST
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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).
c) RETR
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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 1SERVIDOR: +OK message 1 deleted
d)DELE
COMUNICAÇÃO DE DADOSLESI 2012’13
• O comando NOOP não tem argumentos e quando invocado não tem qualquer ação prática, apenas dá uma resposta positiva.
e)NOOP
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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
f) RSET
COMUNICAÇÃO DE DADOSLESI 2012’13
Update
Estado TRANSACTION
Comando QUIT
SEM SUCESSO na autenticação ou inatividade
Estado UPDATE(remove mensagens
marcadas)
Estado AUTHORIZATIO
NTermina sessão
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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
Comandos Opcionais
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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 10SERVIDOR: +OK SERVIDOR: <o servidor enviará o cabeçalho, linha em branco, e as 10 primeiras linhas do corpo da mensagem>
a)TOP
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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:UIDLSERVIDOR:+OKSERVIDOR:1 wqtererQ000WBkdjhjd
b)UIDL
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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 silvaSERVIDOR: +OK silva is a real hoopy frood
c) USER
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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 piresSERVIDOR: +OK pires is a real hoopy froodCLIENTE: PASS secretSERVIDOR: +OK pires’s maildrop has 2 messages(320 octets)
d)PASS
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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.
e)APOP
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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<1896.697170952@dbc.mtview.ca.us>CLIENTE: APOP mrose c4c9334bac560ecc979e58001b3e22fbSERVIDOR: +OK maildrop hás 1 message (369 octets) Neste exemplo, a palavra-chave partilhada é “tanstaff”. O algoritmo MD5 aplicado a esta palavra:<1896.697170952@dbc.mtview.ca.us>tanstaaf que produz a chave MD5: c4c9334bac560ecc979e58001b3e22fb
e)APOP (cont.)
COMUNICAÇÃO DE DADOSLESI 2012’13
• 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.
Conclusão
COMUNICAÇÃO DE DADOSLESI 2012’13
Trabalho realizado por:
#7996 Anthony Cardante#7829 Luís Pereira #7999 Paulo Silva