Mudanças entre as edições de "PTC29008: Apresentação"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(79 revisões intermediárias por 21 usuários não estão sendo mostradas)
Linha 1: Linha 1:
[[PTC29008:_Projeto_1:_um_protocolo_de_comunicação#Emulador_de_link_serial|Próxima aula]]
+
[[PTC29008:_Diretrizes_para_projeto_de_protocolo|Próxima aula]]
  
  
Linha 8: Linha 8:
  
  
* '''Projeto 1:''' um protocolo de comunicação
 
* '''Projeto 2:''' um protocolo de aplicação
 
* '''Projeto 3:''' verificação formal do protocolo de comunicação
 
  
 
Um '''protocolo''' é uma parte muito importante de um sistema de comunicação. A comunicação de dados pode ser entendida como '''troca de informação entre dois dispositivos através de algum meio de comunicação'''. A comunicação ocorre no âmbito de um sistema de telecomunicações, composto por equipamentos (hardware) e programas (softwares). Um sistema básico de comunicação de dados se constitui de cinco componentes:
 
Um '''protocolo''' é uma parte muito importante de um sistema de comunicação. A comunicação de dados pode ser entendida como '''troca de informação entre dois dispositivos através de algum meio de comunicação'''. A comunicação ocorre no âmbito de um sistema de telecomunicações, composto por equipamentos (hardware) e programas (softwares). Um sistema básico de comunicação de dados se constitui de cinco componentes:
Linha 39: Linha 36:
 
<br>''O serviço provido pelo protocolo''
 
<br>''O serviço provido pelo protocolo''
  
= Protocolos reais =
+
=Protocolos reais=
 +
Que protocolos existentes despertam suas curiosidades sobre os detalhes de seus projetos ? Identifiquem alguns protocolos com respeito às seguintes aplicações, e anotem suas finalidades e características.
 +
* Telefonia móvel
 +
* Automação industrial
 +
* Agricultura de precisão
 +
* Segurança
 +
* Sistema financeiro
 +
* Redes veiculares
 +
* IoT
  
Que protocolos existentes despertam suas curiosidades sobre os detalhes de seus projetos ? Identifiquem alguns protocolos, e anotem suas finalidades e características.
+
| | | |
 +
{| border="1"
 +
|- style="height: 36px;" data-mce-style="height: 36px;"
 +
! style="height: 36px;" data-mce-style="height: 36px;"|Área de aplicação
 +
! style="height: 36px;" data-mce-style="height: 36px;"|Protocolo
 +
! style="height: 36px;" data-mce-style="height: 36px;"|Finalidade
 +
! style="height: 36px;" data-mce-style="height: 36px;"|Características
 +
|- style="height: 366.328px;" data-mce-style="height: 366.328px;"
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|Segurança
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|TLS
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|Protocolo de segurança.<br />Proteção de fluxo de informação.<br />
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|Conexões protegidas por TLS entre um cliente e servidor devem ter uma ou mais das seguintes propriedades:
  
{| border=1
+
* Conexão privada: Os dados transmitidos são criptografados. As chaves para essa criptografia são geradas exclusivamente para cada conexão, gerados no início da sessão (handshake TLS). Essa negociação de qual algoritmo de criptografia e chaves criptográficas devem ser usadas acontece antes da transmissão do primeiro byte de dados.
!Protocolo
+
* Estabelece uma conexão confiável, já que cada mensagem transmitida inclui uma verificação de integridade de mensagem, usando um código de autenticação de mensagem para evitar perdas ou alteração dos dados durante a transmissão.
!Finalidade
+
Funcionamento:<br />1) O Handshake começa quando um cliente conecta a um servidor com o TLS habilitado, requisitando uma conexão segura, apresetnando uma lista de cifras.<br />2) Da lista, o servidor escolhe uma cifra e notifica o cliente da decisão.<br />3) O servidor providencia uma identificação na forma de um certificado digital, contendo o nome do servidor, a autoridade de certificação e a chave pública.<br />4) O cliente confirma a validade do certificado antes de proceder.<br />5) As chaves são geradas usando um número aleatório ou uma troca de chaves Diffie-Hellman.
!Características
+
 
|-
+
 
|NTP  || Sincronizar os relógios dos computadores ligados a rede.||Utiliza uma versão do algoritmo de Marzullo para determinar o tempo dos servidores corrigindo os efeitos da variação da latência da rede. Utiliza uma hierarquia mestre-escravo onde o servidor envia o horário UTC aos equipamentos da rede, enviando as informações por UDP.
+
Isso conclui o handshake e garante a segurança da conexão.
|-
+
|- style="height: 366.328px;" data-mce-style="height: 366.328px;"
|FTP  || Transferência de arquivos entre máquinas em uma rede TCP/IP || Utiliza um modelo cliente-servidor para a transferência de arquivos em ambas as direções (download e upload) de maneira eficaz. Estabelece duas conexões TCP paralelas: uma para controle (persistente) e outra para dados (não-persistente). Caracteriza-se por ser um protocolo de padrão aberto.
+
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|Agrigultura de precisão.
|-
+
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|ISOBus
|SSH  || Transferência remota de arquivos criptografados entre duas entidades.|| Modelo de comunicação é cliente e servidor, utilizando para geração das chaves públicas o algoritmo RSA. A porta padrão do servidor SSH é a porta 22.
+
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|Este é o protocolo universal para comunicação eletrônica entre implementos, tratores e computadores. O objetivo inicial da tecnologia de dados ISOBUS é promover a padronização da comunicação estabelecida entre tratores e implementos, com isso é assegurada total compatibilidade de transferência de dados entre sistemas móveis e softwares agrícolas.
|-
+
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|UT - Terminal Universal - Capacidade de operar um implemento com qualquer terminal e usá-lo para operar diferentes instrumentos.
|TELNET || Fornece as regras básicas para ligar um cliente a um intérprete de comando (servidor). || O protocolo Telnet baseia-se em uma conexão TCP para enviar dados em formato ASCII codificados em 8 bits entre os quais se intercalam sequências de controle Telnet. Ele fornece, assim, um sistema orientado para a comunicação, bidirecional (half-duplex), codificado em 8 bits, fácil de aplicar.
+
 
|-
+
TECU – ECU do trator – O ECU é a calculadora do trator, com ela o operador tem informações de velocidade da tomada de força. Velocidade do trator, RPM etc.
|SMTP || Usado para a transferência de e-mail || Funciona como roteador do correio eletrônico. É transmitido sobre o protocolo TCP, sendo composto por 3 entidades: Agente do usuário, emissor e receptor. A comunicação entre o emissor e receptor é feita através do código ASCII.  
+
 
|-
+
 
| RTP || É um protocolo de redes utilizado para entregar áudio e vídeo sobre IP. || É implementado tipicamente sobre UDP e usado em conjunto com o RTCP (RTP Control Protocol). Enquanto o RTP lida com a mídia em , o RTCP monitora as estatísticas de transmissão e o Controle de Qualidade e lida com a sincronização de multiplos streams. ||
+
TC- BAS – Controlador de tarefas básico – Fornece e descreve a documentação que são relevantes para o trabalho realizado, através da troca de dados entre os dispositivos de controle e gerenciamento da fazenda e terminal universal obtendo informações quando usando o controlador de tarefas na troca desses dados importando dados em ISO-XML e exportando as tarefas concluídas posteriormente.
|-
+
 
|SSH || Protocolo de rede que estabelece uma conexão criptografada em meio de comunicação não seguro na estrutura cliente-servidor. || O cliente conecta-se ao servidor através de autenticação com troca de chaves (um exemplo de troca de chaves é a de Diffie-Hellman). Ao iniciar a comunicação a autenticação e criptografia são negociados entre as entidades e a comunicação é estabelecida de forma segura, possibilitando o acesso remoto de dispositivos e transferência de arquivos. Implementado sobre o TCP. ||
+
 
|-
+
|- style="height: 366.328px;" data-mce-style="height: 366.328px;"
|ARP ||Mapear os endereços MAC dos dispositivos que se encontram na mesma rede local. || Atua enviando mensagens em broadcast para localizar o endereço MAC do dispositivo a partir do seu endereço IP. É utilizado quando a origem da mensagem não possui mapeado em sua tabela ARP o endereço MAC atrelado àquele endereço IP. ||
+
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|Redes veiculares
|-
+
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|CAN
|SIP ||Inicialização de sessão de comunicação entre usuários através de uma rede VoIP (rede de conexão por voz com a internet). || Protocolo simples de codigo aberto, baseado em protocolos HTTP (modo requisição e resposta) e SMTP. Com funcionamento através de redes via Protocolo IP e independente de protocolo de transporte (TCP/UDP). Foi desenvolvido para estabelecer, mudar e terminar chamadas num ou mais utilizadores numa rede IP de uma maneira totalmente independente do conteúdo de dados da chamada. ||
+
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|Comunicação entre dois dispositivos dentro de um mesmo veículo
|-
+
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|A CAN protocol is a CSMA-CD/ASM protocol or carrier sense multiple access collision detection arbitration on message priority protocol. CSMA ensures each node must wait for a given period before sending any message. Collision detection ensures that the collision is avoided by selecting the messages based on their prescribed priority.
|LoRaWAN ||Provê comunicação de longa distância entre dispositivos de IoT e o Gateway (centralizador). || Por ser otimizada para um baixo consumo energetico e possibilitar comunicação em longa distância, é perfeita para redes de IoT que contam com dispositivos finais alimentados por bateria, garantindo taxas de transmissão até 50kbps. ||
+
|- style="height: 366.328px;" data-mce-style="height: 366.328px;"
|-
+
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|Segurança
|RIP || Troca e atualização de tabelas de roteamento || Projetado para redes homogêneas. Baseado em UDP e IPV4. Suscetível a falhas. Atualiza a tabela de roteamento a cada 30s. Executa Hold down e Split Horizon e tem um máximo de 15 hops (não recomendado para redes muito grandes). Monta as tabelas baseado em vetor de distâncias. ||
+
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|IPSec
|-
+
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|O IPSec é um protocolo de camada 3 projetado para suprir a falta de segurança de informações trafegando em rede pública.
|SNMP ||Provê gerenciamento de dispositivos na rede IP || è um protocolo da camada de aplicação que utiliza o UDP para o transporte, utiliza os métodos GET(para consultar) e SET(para solicitar modificações) e TRAP(alarmes). Até a versão 2 não havia autenticação permitindo uma série de ameaças, já a versão 3 corrige o erro e implementa controle de acesso. Utiliza MIB, uma base de informações de gerenciamento utilizadas no dispositivo. ||
+
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|A diferença entre os modos está no encapsulamento. O modo transporte encapsula somente os dados, enquanto o modo túnel encapsula os dados e o cabeçalho. Sendo assim, o modo transporte não garante a confiabilidade dos dados durante o envio. Por isso é utilizado em dispositivos que já possuem o protocolo IPSec incorporados em sua pilha TCP/IP.
 +
 
 +
O IPSec fornece os seguintes serviços de segurança: autenticação, controle de acesso(AAA), confidencialidade e integridade dos dados. Os habilitadores das tecnologias de segurança utilizados pelo IPSec são: CHAP(Challenge Handshake Authentication Protocol), RADIUS(Remote Authentication Dial-in User Service) e a Encriptação de Dados e dos Certificados Digitais.
 +
 
 +
 
 +
Um dos conceitos fundamentais do IPSec é a Associação de Segurança(SA – Security Association). Esse conceito é responsável pela segurança do 'caminho do pacote'. Essa segurança é garantida pela utilização dos seguintes protocolos: AH(Authentication Header), ESP(Encapsulating Security Payload) ou ambos(para utilizar ambos, terá mais de uma associação de segurança).
 +
 
 +
 
 +
Uma associação de segurança é identificada por três parâmetros: SPI(Security Parameter Index), endereço IP de destino e o indentificador do protocolo(AH ou ESP).Um detalhe importante é que uma SA só pode ser utilizada de forma unidirecional. Portanto, para uma comunicação mútua, será preciso 2 SA's, sendo uma em cada sentido.
 +
 
 +
 
 +
SPI é um número(index) que identifica a associação de segurança(SA), sendo definido antes de estabelecer essa associação. Sendo assim, todos os membros dessa associação devem saber qual é o SPI para usá-lo na comunicação.
 +
 
 +
 
 +
Endereço IP de destino pode ser unicast(1 receptor), multicast(múltiplos receptores) ou broadcast(toda a rede). Portanto, o IPSec assume como unicast, replicando o fluxo de dados tantas vezes quantos forem os receptores.
 +
 
 +
 
 +
|- style="height: 366.328px;" data-mce-style="height: 366.328px;"
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|LTE
 +
 
 +
 
 +
(Telefonia Móvel)
 +
 
 +
 
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|TR-069
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|Gerenciar redes e QoS(políticas, monitoramento e performance de QoS), controlar CPE, autoconfigurar e provisionar dinamicamente serviços, gerenciar softwares/firmwares, monitorar status e performance, notificar dinamicamente e gerar arquivos de logs e diagnósticos.
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|É um protocolo da camada de aplicação, pode ser implementado por hardware, software ou por uma combinação dos dois, consiste no estudo e teste físico do protocolo CWMP (CPE WAN Management Protocol ou Protocolo de Gerenciamento de CPE WAN)
 +
|- style="height: 366.328px;" data-mce-style="height: 366.328px;"
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|Segurança
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|Internet Key Exchange(IKE)
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|Otimizaçao e gerenciamento do protocolo IPsec
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|Na computaçao, IKE é o protocolo usado para configurar uma associaçao de segurança no protocolo IPsec(Protocolo seguro que autentica e encripta os pacotes de dados numa comunicação segura entre dois protocolos usando o protocolo IP, é usado em VPNs). IKE usa o certificados X.509 para autenticação.<br /><br />- Os serviços de autenticação e encriptação (AH e ESP) dependem da utilização de chaves secretas (conhecidas apenas pelos comunicantes) para serem fornecidos pelo IPSec.<br /><br />-Para o estabelecimento das SAs(entrada e saida) para os comunicantes é criado um canal seguro, definido por uma SA bidirecional(diferente das demais) referente ao IKE, nelas estao contidas informaçoes como chave secreta e algoritimos de criptografia.<br /><br />-Para escolher a chave secreta é utilizado procedimentos relacionados ao algoritimo de troca de chaves Diffie-Helmann<br /><br />- Caso uma entidade intercepte uma comunicação IPSec em modo transporte, por exemplo, esta será incapaz de alterar qualquer parte do pacote sem que seja notada (se estiver sendo utilizado o AH) ou ter acesso às informações nele contidas (caso seja utilizado o ESP). Todavia, isto é válido apenas se esta entidade não possui acesso ao segredo compartilhado pelos comunicantes.<br /><br />Para resolver o problema do IPsec ser utilizado apenas para cenarios pequenos, o IKE foi criado para gerenciar automaticamente as chaves e integrar o IPsec, otimizando a segurança em grande escala de conexões simultaneas.
 +
|- style="height: 366.328px;" data-mce-style="height: 366.328px;"
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|Sistema financeiro
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|EMV 3-D
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|Protocolo de autenticação de cartões para compras on-line, adicionando um nível extra de segurança nas transações.
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|
 +
* O consumidor fornece os dados do cartão para finalizar uma compra online;
 +
<br />
 +
* O provedor de serviços 3DS do vendedor envia uma mensagem com os dados da transação ao emissor do cartão, solicitando a autenticação da compra;
 +
<br />
 +
* O provedor 3DS do emissor realiza uma análise de risco a partir de um volume de dados cerca de 10 vezes maior que a média, reduzindo as chances de fraude e também de reprovação da transação por falta de informação. Essa análise envolve o endereço IP, o local do estabelecimento, o histórico de pagamentos, entre outros;
 +
<br />
 +
* Quando a análise conclui que há dúvidas sobre a autenticidade da compra, o consumidor passa por um segundo estágio de validação, que pode ser o envio de um token para o celular ou a autenticação biométrica, por exemplo – isso vai depender do banco.
 +
|- style="height: 366.328px;" data-mce-style="height: 366.328px;"
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|Telefonia móvel
 +
! style="height: 366.328px;" data-mce-style="height: 366.328px;"|SCTP
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|Protocolo de transporte confiável que opera sobre um serviço de pacotes não confiável e sem conexão
 +
! style="text-align: justify; height: 366.328px;" data-mce-style="text-align: justify; height: 366.328px;"|
 +
* Transferência de datagramas (mensagens) livre de erros e de duplicações através do reconhecimento de transmissões (ACKs).
 +
* Detecção de corrupção, perda e duplicação de dados
 +
* Um mecanismo de retransmissão seletiva é usado para corrigir a perda ou a corrupção de dados.
 
|}
 
|}
  
== Análise dos protocolos ==
+
==Análise dos protocolos==
 
 
 
De acordo com Gerard Holzmann, no [http://tele.sj.ifsc.edu.br/~msobral/ptc/docs/holzmann/cap-2.pdf capítulo 2] de seu livro ''Design and Validation of Computer Protocols'', um protocolo é composto por cinco elementos:
 
De acordo com Gerard Holzmann, no [http://tele.sj.ifsc.edu.br/~msobral/ptc/docs/holzmann/cap-2.pdf capítulo 2] de seu livro ''Design and Validation of Computer Protocols'', um protocolo é composto por cinco elementos:
# O '''serviço''' oferecido pelo protocolo. Ex: [https://datatracker.ietf.org/wg/quic/charter/ protocolo QUIC]
+
# O '''serviço''' oferecido pelo protocolo. Ex: [https://www.gta.ufrj.br/grad/07_2/pedro_paulo/index_arquivos/Page509.htm protocolo MPCP] ([http://www.ieee802.org/3/efm/public/nov01/kramer_1_1101.pdf outra descrição])
 
# As '''considerações''' sobre o ambiente em que o protocolo é executado
 
# As '''considerações''' sobre o ambiente em que o protocolo é executado
 
# O '''vocabulário''' de mensagens usadas para implementar o protocolo
 
# O '''vocabulário''' de mensagens usadas para implementar o protocolo
 
# A '''codificação''' (ou formato) de cada mensagem do vocabulário
 
# A '''codificação''' (ou formato) de cada mensagem do vocabulário
 
# O '''comportamento''', definido por ''regras de intercâmbio'' responsáveis pela consistência das trocas de mensagens
 
# O '''comportamento''', definido por ''regras de intercâmbio'' responsáveis pela consistência das trocas de mensagens
 
  
 
Com base nesses elementos, deve-se complementar ou adequar a análise dos protocolos selecionados:
 
Com base nesses elementos, deve-se complementar ou adequar a análise dos protocolos selecionados:
 
+
{| border="1"
{| border=1
+
|-
 
!Protocolo
 
!Protocolo
 
!Serviço
 
!Serviço
Linha 93: Linha 158:
 
!Comportamento
 
!Comportamento
 
|-
 
|-
|NTP || Sincronização dos relógios dos computadores ligados a rede. || Usa um canal UDP para intercâmbio de mensagens. Pode perder mensagens. Latências de transmissão variáveis (ex: devido a congestionamentos) podem ocorrer. || [https://www.meinbergglobal.com/english/info/ntp-packet.htm NTP Data packet] || binária (ver [https://tools.ietf.org/html/rfc5905 RFC 5905])|| Há um bom resumo [https://www.meinbergglobal.com/english/info/ntp-packet.htm neste documento].
+
|SCTP
|-
+
|Ser um TCP melhorado para telefonia, trabalhando encima do UDP (<a title="" href="https://tools.ietf.org/html/rfc0768">RFC0768</a>).
|FTP  || Transferência de arquivos entre computadores conectados em uma rede|| Usa dois canais TCP paralelos para intercâmbio de de dados de controle e arquivos. Garante confiabilidade, ou seja, entrega do arquivo enquanto protege de erros de transmissão. || Conjunto de comandos: USER, PASS, LIST, STOR, PORT, QUIT.  || Textual (ASCII ou EBCDIC) ou binária. ( ver [https://tools.ietf.org/html/rfc959 RFC 959]) || 1- Cliente realiza conexão de controle (porta 21) com servidor (modo passivo ou ativo). 2- Com a confirmação positiva, servidor mantém a conexão de controle aberta e aguarda as solicitações de transferência. 3- Em modo de execução ativo o servidor inicia a conexão de dados. 4- Em modo de execução passivo o cliente inicia a conexão de dados para iniciar a transferência.
+
|Sinalização entre PSTN e rede IP
|-
+
|INIT;INIT ACK;
|SSH  ||Transferência remota de arquivos criptografados entre duas entidades. (ver [https://www.ietf.org/rfc/rfc4253.txt RFC 4253])  || TCP/IP atuando acima da camada de transporte e por meio da porta 22|| SSH_MSG_USERAUTH_REQUEST, SSH_MSG_USERAUTH_FAILURE,  SSH_MSG_USERAUTH_SUCCESS e outras mensagens (ver [https://www.ietf.org/rfc/rfc4253.txt RFC 4253]) ||  ISO-10646 UTF-8 (ver [https://tools.ietf.org/html/rfc3629 RFC 3629]) || (ver [http://www.cisco.com/c/en/us/about/press/internet-protocol-journal/back-issues/table-contents-46/124-ssh.html Cisco - Protocol Basics: Secure Shell Protocol])
+
| 
|-
+
|<a href="https://tools.ietf.org/html/rfc4960">https://tools.ietf.org/html/rfc4960</a>
|SMTP  || Envio de transferência de e-mail || Funciona online, encapsulado em um pacote TCP/IP, por padrão na porta 25. || HELO: Inicia a comunição.  Mail from: Endereço do remetente. 250 OK: Confirmação de recebmento. RCPT TO: Endereço do destinatário. DATA: Corpo da mensagem. || ASCII || A lógica de trabalho é quase a mesma utilizada pelo correio convencional, sendo que o SMTP atua praticamente como o carteiro. Após serem capturadas, as mensagens são enviadas para ele que, em seguida, encaminha os e-mails aos destinatários finais. https://blog.saphir.com.br/smtp-o-que-e-e-como-funciona/
 
 
|-
 
|-
|TELNET  || Permitir obter uma interface de terminais e aplicações pela Internet. || Baseia-se em uma conexão TCP para enviar dados entre os quais se intercalam sequências de controle Telnet. Ele fornece, assim, um sistema orientado para a comunicação, bidirecional (half-duplex). || https://tools.ietf.org/html/rfc854 || Codificado em  formato ASCII de 8 bits. || As opções do Telnet afetam separadamente cada direção do canal de dados. Assim, cada extremidade pode negociar com as opções, ou seja, definir as opções desejadas, como utilizar (DO), não utilizar (DON' T), permitir que a outra extremidade utilize (WILL), não permitir que a outra extremidade utilize (WON' T). Desta maneira, cada uma das partes pode emitir um pedido de utilização de uma opção. A outra parte deverá, então, responder se aceita ou não a utilização da opção.
+
|IPSec
http://br.ccm.net/contents/286-o-protocolo-telnet#qual-e-o-principio-das-opcoes-negociadas
+
|Visa a ser o método padrão para o fornecimento de privacidade do usuário aumentando a confiabilidade, garantindo integridade dos dados e autenticidade das informações.
 +
|Camada de rede
 +
| 
 +
| 
 +
|O IPSec pode ser usado em dois modos, Transporte e Tunel.<br />https://www.gta.ufrj.br/grad/04_1/vpn/Script/RDIIPSec.html
 
|-
 
|-
|RTP  || Entrega de áudio e vídeo sobre IP. || implementado sobre canal UDP. Apresenta perda. || [http://www.idc-online.com/technical_references/pdfs/data_communications/RTP_packet_header.pdf RTP Header] || Binária. || [http://www.cse.wustl.edu/~jain/books/ftp/rtp.pdf Overview] interessante do protocolo
+
| 
 +
| 
 +
| 
 +
| 
 +
| 
 +
| 
 
|-
 
|-
|SSH || Protocolo de rede que estabelece uma conexão criptografada em meio de comunicação não seguro na estrutura cliente-servidor. || Utiliza TCP como canal de comunicação. Geralmente utilizado para acesso remoto. || As mensagens possuem suas próprias RFCs e podem ser conferidas no item 10.1 de [https://www.ietf.org/rfc/rfc4251.txt RFC 4251] || [https://tools.ietf.org/html/rfc3629 ISO-10646 UTF-8] || Resumo neste [https://blog.myhro.info/2017/01/how-ssh-authentication-works documento] (em inglês) ||
+
| 
 +
| 
 +
| 
 +
| 
 +
| 
 +
| 
 
|-
 
|-
|ARP || Atrela os endereços MAC dos dispositivos que se encontram na mesma rede local com os seus endereços IP. || Utiliza o próprio enlace em que será feita a comunicação || Opera somente em sistemas multiponto, sem restrição à taxas de transmissão onde não há confirmação de recebimento.|| Mensagens de requisição (request) e resposta (reply). || Descobre os endereços da camada de enlace dos dispositivos com base nos endereços da camada de rede. ||
+
| 
 +
| 
 +
| 
 +
| 
 +
| 
 +
| 
 
|-
 
|-
|SNMP || Protocolo de rede que fornece um gerenciamento dos dispositivos na rede. || Utiliza UDP como protocolo de transporte.|| Utiliza os métodos GET, GETNEXT, GETBULK, SET e TRAP || Sua codificação é ASN.1 || Um gerente requisita ou modifica informações de um dispositivo na rede através da MIB, que é uma estrutura de informações||
+
| 
 +
| 
 +
| 
 +
| 
 +
| 
 +
| 
 
|-
 
|-
|SIP || Protocolo P2P de sinalização para estabelecimento, manutenção e terminação de sessão de comunicação genérico. || Independente de protocolo de transporte (TCP/UDP), i.e, funciona por canal confiável como não confiável. Orientado à mensagens.|| Mensagens de requisição ("INVITE", "ACK", "OPTIONS", "BYE", "CANCEL" e "REGISTER") e resposta (1XX, 2XX, 3XX, 4XX, 5XX e 6XX). || Textual. ASCII de 7 bits. || Basicamente trabalha com mecanismo de requisição e resposta. Existem respostas transientes que indicam o status da comunicação.||
+
| 
 +
| 
 +
| 
 +
| 
 +
| 
 +
| 
 
|}
 
|}

Edição atual tal como às 08h15min de 18 de fevereiro de 2020

Próxima aula



  • Caracterização de protocolos por meio de um exemplo: sintaxe, comportamento, temporização, semântica. Princípios de projeto e propriedades desejáveis de protocolos. Análise de um protocolo real.


Um protocolo é uma parte muito importante de um sistema de comunicação. A comunicação de dados pode ser entendida como troca de informação entre dois dispositivos através de algum meio de comunicação. A comunicação ocorre no âmbito de um sistema de telecomunicações, composto por equipamentos (hardware) e programas (softwares). Um sistema básico de comunicação de dados se constitui de cinco componentes:


Rede-intro-1.png


  1. A mensagem: a informação a ser transmitida. O conteúdo da mensagem, seja um texto, música, video, ou qualquer outro tipo de informação, é representada por conjuntos de bits (dígitos binários).
  2. Transmissor: dispositivo que transmite a mensagem.
  3. Receptor: dispositivo que recebe a mensagem.
  4. Meio de comunicação: caminho físico por onde viaja a mensagem do transmissor até o receptor.
  5. Protocolo: conjunto de regras que governa a comunicação de dados.


Os sistemas de comunicação reais, incluídas as redes de computadores, são bem mais complexos do que esse modelo simplificado. No entanto, todos podem ser entendidos, em alguma medida, a partir desse modelo. Nesta disciplina estudam-se princípios e técnicas para projeto de protocolos, incluindo formas de verificar a consistência e correção de seu funcionamento.


Serviço e Protocolo

Um sistema de comunicação provê serviços para as aplicações ou usuários realizarem ações que envolvam a comunicação entre sistemas através de uma rede. Por exemplo, existem serviços para transferência de arquivos, reprodução remota de videos e músicas, execução remota de programas, pesquisa por informação, e muitos outros. O conceito de serviço está relacionado ao de protocolo. Um serviço é provido por entidades que interagem de acordo com um protocolo. Assim, um serviço é um dos elementos envolvidos na especificação de um protocolo. As figuras a seguir mostram a relação entre esses conceitos, primeiro apresentando somente a visão de um serviço para um usuário, e, em seguida, a relação entre serviço e protocolo.

PTC-Servico1.png
Um serviço visto por um usuário


PTC-Protocolo1.png
O serviço provido pelo protocolo

Protocolos reais

Que protocolos existentes despertam suas curiosidades sobre os detalhes de seus projetos ? Identifiquem alguns protocolos com respeito às seguintes aplicações, e anotem suas finalidades e características.

  • Telefonia móvel
  • Automação industrial
  • Agricultura de precisão
  • Segurança
  • Sistema financeiro
  • Redes veiculares
  • IoT
| | | |
Área de aplicação Protocolo Finalidade Características
Segurança TLS Protocolo de segurança.
Proteção de fluxo de informação.
Conexões protegidas por TLS entre um cliente e servidor devem ter uma ou mais das seguintes propriedades:
  • Conexão privada: Os dados transmitidos são criptografados. As chaves para essa criptografia são geradas exclusivamente para cada conexão, gerados no início da sessão (handshake TLS). Essa negociação de qual algoritmo de criptografia e chaves criptográficas devem ser usadas acontece antes da transmissão do primeiro byte de dados.
  • Estabelece uma conexão confiável, já que cada mensagem transmitida inclui uma verificação de integridade de mensagem, usando um código de autenticação de mensagem para evitar perdas ou alteração dos dados durante a transmissão.

Funcionamento:
1) O Handshake começa quando um cliente conecta a um servidor com o TLS habilitado, requisitando uma conexão segura, apresetnando uma lista de cifras.
2) Da lista, o servidor escolhe uma cifra e notifica o cliente da decisão.
3) O servidor providencia uma identificação na forma de um certificado digital, contendo o nome do servidor, a autoridade de certificação e a chave pública.
4) O cliente confirma a validade do certificado antes de proceder.
5) As chaves são geradas usando um número aleatório ou uma troca de chaves Diffie-Hellman.


Isso conclui o handshake e garante a segurança da conexão.

Agrigultura de precisão. ISOBus Este é o protocolo universal para comunicação eletrônica entre implementos, tratores e computadores. O objetivo inicial da tecnologia de dados ISOBUS é promover a padronização da comunicação estabelecida entre tratores e implementos, com isso é assegurada total compatibilidade de transferência de dados entre sistemas móveis e softwares agrícolas. UT - Terminal Universal - Capacidade de operar um implemento com qualquer terminal e usá-lo para operar diferentes instrumentos.

TECU – ECU do trator – O ECU é a calculadora do trator, com ela o operador tem informações de velocidade da tomada de força. Velocidade do trator, RPM etc.


TC- BAS – Controlador de tarefas básico – Fornece e descreve a documentação que são relevantes para o trabalho realizado, através da troca de dados entre os dispositivos de controle e gerenciamento da fazenda e terminal universal obtendo informações quando usando o controlador de tarefas na troca desses dados importando dados em ISO-XML e exportando as tarefas concluídas posteriormente.


Redes veiculares CAN Comunicação entre dois dispositivos dentro de um mesmo veículo A CAN protocol is a CSMA-CD/ASM protocol or carrier sense multiple access collision detection arbitration on message priority protocol. CSMA ensures each node must wait for a given period before sending any message. Collision detection ensures that the collision is avoided by selecting the messages based on their prescribed priority.
Segurança IPSec O IPSec é um protocolo de camada 3 projetado para suprir a falta de segurança de informações trafegando em rede pública. A diferença entre os modos está no encapsulamento. O modo transporte encapsula somente os dados, enquanto o modo túnel encapsula os dados e o cabeçalho. Sendo assim, o modo transporte não garante a confiabilidade dos dados durante o envio. Por isso é utilizado em dispositivos que já possuem o protocolo IPSec incorporados em sua pilha TCP/IP.
O IPSec fornece os seguintes serviços de segurança: autenticação, controle de acesso(AAA), confidencialidade e integridade dos dados. Os habilitadores das tecnologias de segurança utilizados pelo IPSec são: CHAP(Challenge Handshake Authentication Protocol), RADIUS(Remote Authentication Dial-in User Service) e a Encriptação de Dados e dos Certificados Digitais.


Um dos conceitos fundamentais do IPSec é a Associação de Segurança(SA – Security Association). Esse conceito é responsável pela segurança do 'caminho do pacote'. Essa segurança é garantida pela utilização dos seguintes protocolos: AH(Authentication Header), ESP(Encapsulating Security Payload) ou ambos(para utilizar ambos, terá mais de uma associação de segurança).


Uma associação de segurança é identificada por três parâmetros: SPI(Security Parameter Index), endereço IP de destino e o indentificador do protocolo(AH ou ESP).Um detalhe importante é que uma SA só pode ser utilizada de forma unidirecional. Portanto, para uma comunicação mútua, será preciso 2 SA's, sendo uma em cada sentido.


SPI é um número(index) que identifica a associação de segurança(SA), sendo definido antes de estabelecer essa associação. Sendo assim, todos os membros dessa associação devem saber qual é o SPI para usá-lo na comunicação.


Endereço IP de destino pode ser unicast(1 receptor), multicast(múltiplos receptores) ou broadcast(toda a rede). Portanto, o IPSec assume como unicast, replicando o fluxo de dados tantas vezes quantos forem os receptores.


LTE


(Telefonia Móvel)


TR-069 Gerenciar redes e QoS(políticas, monitoramento e performance de QoS), controlar CPE, autoconfigurar e provisionar dinamicamente serviços, gerenciar softwares/firmwares, monitorar status e performance, notificar dinamicamente e gerar arquivos de logs e diagnósticos. É um protocolo da camada de aplicação, pode ser implementado por hardware, software ou por uma combinação dos dois, consiste no estudo e teste físico do protocolo CWMP (CPE WAN Management Protocol ou Protocolo de Gerenciamento de CPE WAN)
Segurança Internet Key Exchange(IKE) Otimizaçao e gerenciamento do protocolo IPsec Na computaçao, IKE é o protocolo usado para configurar uma associaçao de segurança no protocolo IPsec(Protocolo seguro que autentica e encripta os pacotes de dados numa comunicação segura entre dois protocolos usando o protocolo IP, é usado em VPNs). IKE usa o certificados X.509 para autenticação.

- Os serviços de autenticação e encriptação (AH e ESP) dependem da utilização de chaves secretas (conhecidas apenas pelos comunicantes) para serem fornecidos pelo IPSec.

-Para o estabelecimento das SAs(entrada e saida) para os comunicantes é criado um canal seguro, definido por uma SA bidirecional(diferente das demais) referente ao IKE, nelas estao contidas informaçoes como chave secreta e algoritimos de criptografia.

-Para escolher a chave secreta é utilizado procedimentos relacionados ao algoritimo de troca de chaves Diffie-Helmann

- Caso uma entidade intercepte uma comunicação IPSec em modo transporte, por exemplo, esta será incapaz de alterar qualquer parte do pacote sem que seja notada (se estiver sendo utilizado o AH) ou ter acesso às informações nele contidas (caso seja utilizado o ESP). Todavia, isto é válido apenas se esta entidade não possui acesso ao segredo compartilhado pelos comunicantes.

Para resolver o problema do IPsec ser utilizado apenas para cenarios pequenos, o IKE foi criado para gerenciar automaticamente as chaves e integrar o IPsec, otimizando a segurança em grande escala de conexões simultaneas.
Sistema financeiro EMV 3-D Protocolo de autenticação de cartões para compras on-line, adicionando um nível extra de segurança nas transações.
  • O consumidor fornece os dados do cartão para finalizar uma compra online;


  • O provedor de serviços 3DS do vendedor envia uma mensagem com os dados da transação ao emissor do cartão, solicitando a autenticação da compra;


  • O provedor 3DS do emissor realiza uma análise de risco a partir de um volume de dados cerca de 10 vezes maior que a média, reduzindo as chances de fraude e também de reprovação da transação por falta de informação. Essa análise envolve o endereço IP, o local do estabelecimento, o histórico de pagamentos, entre outros;


  • Quando a análise conclui que há dúvidas sobre a autenticidade da compra, o consumidor passa por um segundo estágio de validação, que pode ser o envio de um token para o celular ou a autenticação biométrica, por exemplo – isso vai depender do banco.
Telefonia móvel SCTP Protocolo de transporte confiável que opera sobre um serviço de pacotes não confiável e sem conexão
  • Transferência de datagramas (mensagens) livre de erros e de duplicações através do reconhecimento de transmissões (ACKs).
  • Detecção de corrupção, perda e duplicação de dados
  • Um mecanismo de retransmissão seletiva é usado para corrigir a perda ou a corrupção de dados.

Análise dos protocolos

De acordo com Gerard Holzmann, no capítulo 2 de seu livro Design and Validation of Computer Protocols, um protocolo é composto por cinco elementos:

  1. O serviço oferecido pelo protocolo. Ex: protocolo MPCP (outra descrição)
  2. As considerações sobre o ambiente em que o protocolo é executado
  3. O vocabulário de mensagens usadas para implementar o protocolo
  4. A codificação (ou formato) de cada mensagem do vocabulário
  5. O comportamento, definido por regras de intercâmbio responsáveis pela consistência das trocas de mensagens

Com base nesses elementos, deve-se complementar ou adequar a análise dos protocolos selecionados:

Protocolo Serviço Ambiente de execução Vocabulário Codificação Comportamento
SCTP Ser um TCP melhorado para telefonia, trabalhando encima do UDP (<a title="" href="https://tools.ietf.org/html/rfc0768">RFC0768</a>). Sinalização entre PSTN e rede IP INIT;INIT ACK;   <a href="https://tools.ietf.org/html/rfc4960">https://tools.ietf.org/html/rfc4960</a>
IPSec Visa a ser o método padrão para o fornecimento de privacidade do usuário aumentando a confiabilidade, garantindo integridade dos dados e autenticidade das informações. Camada de rede     O IPSec pode ser usado em dois modos, Transporte e Tunel.
https://www.gta.ufrj.br/grad/04_1/vpn/Script/RDIIPSec.html