A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Parte I - Básico de IPv4 e Introdução ao Roteamento TCP - Transmission Control Protocol.

Apresentações semelhantes


Apresentação em tema: "Parte I - Básico de IPv4 e Introdução ao Roteamento TCP - Transmission Control Protocol."— Transcrição da apresentação:

1 Parte I - Básico de IPv4 e Introdução ao Roteamento TCP - Transmission Control Protocol

2 zComo vimos até agora o IP faz a entrega de informação baseado em um serviço não orientado à conexão, que devido à suas características próprias é conhecido como não confiável. zPara que os problemas inerentes ao IP sejam superadas precisamos de um serviço fim-a-fim confiável, e que desempenhará este papel é o protocolo de transporte, conhecido como TCP.

3 TCP - Transmission Control Protocol zO TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão), não é o único protocolo de transporte do modelo TCP/IP, além dele temos o UDP, que será estudado mais tarde. zVamos a partir de agora neste item descrever o protocolo TCP, o seu funcionamento e entender como ele consegue transformar a Internet em um ambiente confiável, apesar de ser usado o IP no nível rede.

4 TCP - Transmission Control Protocol zO TCP foi idealizado para que a entrega fim-a-fim dos dados seja feita de forma confiável, sendo que para isso ele deve realizar as seguintes operações:

5 TCP - Transmission Control Protocol zCompatibilização de Tamanho dos Segmentos: yQuando temos que transmitir um bloco de dados entre aplicações, este pode ser muito grande para ser aceito pela camada rede, ou muito pequenos para que haja uma eficiência razoável no processo de transmissão. É função do TCP, segmentar em blocos menores ou em caso contrário buferizar os blocos pequenos, até que tenham um tamanho suficientemente grande para ser transmitidos.

6 TCP - Transmission Control Protocol zGarantia de Integridade dos Dados: yDevido às características de falta de um serviço confiável de dados oferecido pela camada rede, o TCP foi concebido com mecanismos capazes de suprir a comunicação de mecanismos capazes de fim-a-fim gerar um serviço confiável. yPara isso alguns algoritmos são essenciais:

7 TCP - Transmission Control Protocol yChecksum, que diferentemente do IP se estende à área de dados também. yImplementação de uma numeração de seqüência para cada mensagem trocada, para garantir integridade na troca de informações. Estes são confirmados ao transmissor quando chegam íntegros no receptor.

8 TCP - Transmission Control Protocol zImplementação de fluxo Full Duplexna comunicação: yo protocolo TCP implementa uma transmissão bidirecional simultânea, denominada full duplex, que permite uma aplicação enviar e receber dados simultaneamente, com tratamento individual para cada operação.

9 TCP - Transmission Control Protocol zTécnica Sliding Window: yTambém conhecida como janela deslizante, propicia o envio de vários segmentos de dados encapsulados em seus próprios datagramas IP, sem a necessidade de confirmação imediata, aumentando assim o throughput da transmissão. Devido à importância desse método irmos explorá-lo em detalhes:

10 TCP - Transmission Control Protocol zFuncionamento da Técnica Sliding Window: yPara garantir a integridade dos dados foi colocado um número de seqüência em cada segmento TCP, e dissemos que este deve ser confirmado pelo receptor, isto pode ser ilustrado como na figura à seguir:

11 TCP - Transmission Control Protocol Host AHost B Linha de Eventos Dados 1 Tx de dados Rx de dados ACK 1 Rx confirma dados Tx confirmação de dados Dados 2 Tx de dados Rx de dados ACK 2 Rx confirma dados Tx confirmação de dados

12 TCP - Transmission Control Protocol yO método exemplificado trabalha no conceito de fluxo half-duplex (transmissão seguida de confirmação), porém o transmissor não continua a transmissão de novo segmento antes de receber o ACK do receptor. yPara melhorar o desempenho desse tipo de transmissão tornando-a full-duplex iremos implementar o ACK junto com os dados de receptor, técnica conhecida como piggyback (carona).

13 TCP - Transmission Control Protocol Host AHost B Linha de Eventos Dados 1 Tx de dados Rx de dados Dados 2 + ACK 1 Rx de dados+conf. Tx confirmação de dados+conf. Dados 3 + ACK 2 Tx de dados+conf. Rx de dados+conf. ACK 3 Rx confirma dados Tx confirmação de dados

14 TCP - Transmission Control Protocol zPodemos otimizar ainda mais esta transmissão através da técnica sliding window. zSe aumentarmos o número de segmentos transmitidos sem confirmação, podemos aumentar o throughput da rede.

15 TCP - Transmission Control Protocol Dados 1 Tx de dados Rx de dados Dados 2 Tx de dados Rx de dados Dados 3 Tx de dados Rx de dados Dados 4 Tx de dados Rx de dados Dados 5+ack1 Tx de dados+conf Rx de dados+conf Dados 6+ack2 Tx de dados+conf Rx de dados+conf Dados 7+ack2 Tx de dados+conf Rx de dados+conf Dados 8+ack2 Tx de dados+conf Rx de dados+conf Dados 9+ack2 Tx de dados+conf Rx de dados+conf Dados1+ack2 Rx dados+conf. Tx dados+conf. Dados+ack4 Rx dados+conf. Tx dados+conf. ack9 RX da confirmação. Tx da confirmação

16 TCP - Transmission Control Protocol zDenominamos de tamanho da janela, como sendo o número máximos de segmentos de dados transmitidos e pendentes de confirmação. zEsse número é determinado pelo TCP, que analisa a qualidade do canal, e implementa o melhor número de janela possível. zO tamanho da janela é dinâmico e pode ser incrementado quando o canal permite ou diminuído caso seja necessário. E isto é feito em cima de uma conexão ativa.

17 TCP - Transmission Control Protocol zVejamos no nosso exemplo, quando iniciamos a transmissão a janela estava vazia (e foi negociada no início da transmissão como sendo de valor 5), e depois de 2 quadros tínhamos dados prontos para sair do Host B para o Host A. Enviamos os dados e aproveitamos a carona e mandamos a confirmação dos quadros recebidos.

18 TCP - Transmission Control Protocol Janela Início Escorregamento da janela Janela Fim Dois quadros confirmados

19 zUtilização de Canalizações Virtuais: yO TCP também é o responsável por multiplexar as aplicações que estão em andamento no Host no momento. yPara isso ele utiliza da formação de canais virtuais (também conhecidos como pipes ou dutos). yIsto é realizado estabelecendo-se canais lógicos entre fonte e destino.

20 TCP - Transmission Control Protocol yEsses canais são abertos no momento de uma solicitação de alguma aplicação, e desaparece quando termina a transferência desejada. yCada aplicação recebe um número lógico de identificação (denominado Port). Um par de Ports é que identifica um duto (canal lógico). yAlguns Ports são colocados à disposição do Sistema operacional do Host que os distribui para as aplicações que estão rodando.

21 TCP - Transmission Control Protocol zVamos agora ver o formato do Pacote TCP. Data Options (If Any)Padding ChecksumUrgent Pointer HlenReserved Code Bits Window Acknowledgement Number Sequence Number Source PortDestination Port

22 TCP - Transmission Control Protocol zDescrição dos Campos do TCP: zSource Port e Destination Port: yCompostos de 16 bits cada, identificam o port de origem e o port destino respectivamente. Esses campos somados aos respectivos endereços IP identificam o Canal Virtual.

23 TCP - Transmission Control Protocol zSequence Number: yCampo composto de 32 bits, utilizado para efetuar o controle de fluxo do protocolo TCP. O seu funcionamento é um pouco diferente do normalmente usado em protocolos que usam este parâmetro, o seu funcionamento será mostrado mais adiante, quando vermos como o TCP controla a transmissão.

24 TCP - Transmission Control Protocol zAcknowledgement Number: yComposto de 32 bits, usado em conjunto com o sequence number, é usado para confirmar o recebimento dos segmentos.

25 TCP - Transmission Control Protocol zHlen: yComposto de 4 bits, especifica o tamanho do Header TCP. Ele existe por causa do campo Options (que é variável).

26 TCP - Transmission Control Protocol zReserved: yComposto por 6 bits. Atualmente sem uso, está reservado para implementações futuras.

27 TCP - Transmission Control Protocol zCode Bits: yComposto de 6 bits. Utilizado para determinar a função (ou funções) do pacote e seu conteúdo, conforme a tabela à seguir:

28 TCP - Transmission Control Protocol

29 zURG: Quando setado em 1, sinaliza que o campo Urgent Pointer deve ser lido pois contém dados válidos. zACK: Quando setado em 1, sinaliza que o Header envia uma confirmação válida. (Campo Acknowledgement Number).

30 TCP - Transmission Control Protocol zPSH: Quando setado em 1, avisa o receptor que os dados podem ser entregues diretamente à aplicação. Uma resposta afirmativa a este comando significa que o receptor mandou todos os dados à aplicação correspondente. zSYN: Quando setado em 1, sinaliza um pedido de conexão para outro TCP.

31 TCP - Transmission Control Protocol zFIN: Quando setado em 1, sinaliza um pedido de desconexão. Este comando é unidirecional, se um TCP finaliza a sua transmissão enviando um FIN para a outra máquina (que deve confirmar), porém pode continuar enviando até que cesse a sua atividade, quando manda o seu próprio comando FIN.

32 TCP - Transmission Control Protocol zWindow: yComposto de 16 bits, contém o tamanho da janela que o transmissor está apto à trabalhar. O receptor que avaliar este campo irá comparar com o suas próprias aptidões e se a sua janela for maior, deve diminuí-la, se for menor envia para o outro lado a sua própria janela, se for igual nada muda. Assim a janela adotada será sempre a menor entre os envolvidos na conexão.

33 TCP - Transmission Control Protocol zChecksum: yComposto de 16 bits, utilizado para checar erros, não só do Header TCP, mas também da sua área de dados. yO algoritmo usado é bastante eficiente, e consegue controlar todos os erros que porventura tenham sido transparentes às camadas inferiores.

34 TCP - Transmission Control Protocol zUrgent Pointer: yComposto de 16 bits, sinaliza à aplicação que o campo Data possui uma informação urgente, que deve ser processada antes que qualquer outra que esteja em fila. Além o seu valor aponta para o último octeto dessa informação urgente.

35 TCP - Transmission Control Protocol zOptions: yPossui tamanho variável dependendo das opções utilizadas. Atualmente é usada apenas para a facilidade MSS (Maximum Segment Size), porém pode ser fruto de futuras implementações do TCP.

36 TCP - Transmission Control Protocol yMSS (Maximum Segment Size): As máquinas conectadas através de uma conexão TCP, fazem uso desta facilidade para negociar tamanho máximo dos segmento de dados que serão utilizados. Este deve levar em conta o MTU, mas pode levar em consideração outros fatores como a capacidade de bufferização de uma máquina em particular na rede.

37 TCP - Transmission Control Protocol zPadding: yPossui tamanho variável, serve para que, juntamente com o campo Options, o tamanho desses dois campos juntos tenha 32 bits. O enchimento deste campo é sempre com 1s.

38 TCP - Transmission Control Protocol zData: yPossui tamanho variável, é usado para acomodar a informação de nível superior (camada aplicação do TCP/IP). É sempre múltiplo de 8 bits.

39 TCP - Transmission Control Protocol zA partir de agora vamos ver como o TCP realiza as funções que estamos prometendo, desde o início deste assunto. zVamos descrever o funcionamento pelas funções realizadas por este protocolo.

40 TCP - Transmission Control Protocol zReconhecimentos e Retransmissões: yO reconhecimento do TCP não é referenciada em relação ao número do bloco transmitido (como ocorre no nível 2), o algoritmo usado agora é número de octetos válidos no buffer do Receptor. Assim se recebermos corretamente um bloco de dados com 1000 octetos, a confirmação será usando o número 1000 (Sequence Number), para explicitar a quantidade de dados validados no receptor.

41 TCP - Transmission Control Protocol yUm exemplo é muitas vezes mais explicativo do que palavras, assim observe a figura abaixo. Seq. Number: 0Seq. Number: 1000Seq. Number: 2000 Imagine que o TCP mande 3 blocos de dados começando com o número de seqüência 0. O blocos possuirão os números de seqüência conforme apresentado acima.

42 TCP - Transmission Control Protocol Seq. Number: 0Seq. Number: 1000Seq. Number: 2000 O TCP origem enviará um novo bloco numerado em 1000 (representando o bloco 1000 à 1999). Porém essa técnica possui um inconveniente, o bloco sem erros numerado como 2000 (2000 à 2999), será igualmente retransmitido, pois a origem não tem como saber se ele está validado ou não. Digamos que o TCP destino perceba um erro no segundo bloco, ele enviará para o TCP origem uma solicitação de retransmissão baseado no número da linha onde inicia o problema, no caso, 1000.

43 TCP - Transmission Control Protocol Seq. Number: 0 Seq. Number: 1000 (Retransmitido) Seq. Number: 2000 Esse procedimento é particularmente importante pois o TCP origem ao receber este ack irá pular o bloco 2000 (2000 à 2999) e irá voltar a transmitir à partir de Para evitar essa retransmissão redundante, o TCP receptor pode, ao receber o bloco numerado como 1000 (1000 à 1999), enviar um reconhecimento (ack) numerado como 3000.

44 TCP - Transmission Control Protocol zTime Out de Recepção: yToda vez que um bloco de dados é enviado, o TCP dispara um contador, que é resetado somente quando a confirmação (positiva ou negativa) deste bloco chegar. ySe for positiva, o TCP libera o contador da janela em mais uma posição. E continua a transmitir, se houver dados na aplicação.

45 TCP - Transmission Control Protocol ySe for negativa, o TCP retransmite o bloco com problemas, e espera novamente confirmação. ySe não houver confirmação de tipo nenhum, o contador de time-out gerará uma retransmissão do bloco (pressupõe-se a perda de um datagrama). Isso pode acontecer algumas vezes seguidas à partir das quais o TCP encerra a conexão.

46 TCP - Transmission Control Protocol yO valor desse time-out é calculado pelo TCP, que procura, à partir das características que a rede está mostrando naquele momento, um valor ideal.

47 TCP - Transmission Control Protocol zEstabelecimento de Conexão IP: yO método usado pelo TCP, para estabelecer a conexão (gerar o duto ou canal virtual) sobre uma rede não orientada à conexão como o IP, é conhecido como Aperto de Mão Triplo. Este procedimento pode ser iniciado por qualquer uma das partes envolvidas. Vejamos o exemplo à seguir:

48 TCP - Transmission Control Protocol Host A Host B Linha de Eventos Mensagens na Rede SEQ(70), FLAGS(ACK,SYN), ACK(21) Confirmação de conexão Recepção de ACK para conexão SEQ(20), FLAGS(SYN) Recepção do Pedido de conexão Solicitação de conexão SEQ(21), FLAGS(ACK), ACK(71) Envio de confirm. para o ACK de conexão Recepção do ACK

49 TCP - Transmission Control Protocol zFluxo da Troca de Dados TCP: yPara mostrar isso observe a seqüência a seguir.

50 TCP - Transmission Control Protocol Host A (eventos)Host B (eventos) Seq(101), Flags(ACK), ACK(301), Data(50) Seq(300),Flags (ACK,SYN), ACK(101) Seq(100), Flags (Syn) Seq(301),Flags (ACK), ACK(151), Data (10) Seq(151), Flags(ACK), ACK(311), Data(20) Seq(171), Flags(ACK), ACK(311), Data(30) Seq(311),Flags (ACK), ACK(201), Data (89) Seq(400),Flags (ACK), ACK(201), Data (50) Seq(450),Flags (ACK), ACK(201), Data (50) Seq(500),Flags (ACK), ACK(201), Data (50) Seq(201), Flags(ACK), ACK(500), Data(49) Datagrama perdido por falha na rede. Seq(500),Flags (ACK), ACK(250), Data (100) Seq(250), Flags(FIN,ACK), ACK(600) Seq(600),Flags (FIN,ACK), ACK(251) Seq(251), Flags(FIN,ACK), ACK(601) Pedido de Conexão Rx do Pedido de Conexão Conexão OKConfirmação OK Dados +confirm. Dados + pedido de retransm. Dados + confirm. de retransm. Confirm.+ finaliz. Confirma a desconexão Desconexão OK.

51 TCP - Transmission Control Protocol zWell Known Ports: yAlguns Ports TCP são previamente reservados para aplicações conhecidas, isso facilita o processo, pois não há a necessidade de se negociar nada com a aplicação, basta ser solicitada uma conexão pelo port (também conhecido como socket) certo, que o TCP irá proceder conforme as necessidades já conhecidas da aplicação solicitante.

52 TCP - Transmission Control Protocol zAbaixo relacionamos os Ports (Sockets) conhecidos e a aplicação à que estão reservados. zObs.: Conforme a tabela, no arquivo Word97 socket.doc.

53 Parte I - Básico de IPv4 e Introdução ao Roteamento UDP - User Datagram Protocol

54 zProtocolo criado para complementar as funções do TCP/IP, e substitui o TCP, em situações onde a aplicação não deva gerar um volume grande de dados na Internet. zProtocolos de aplicação como o SNMP (gerência), TFTP(transferência de arquivos) e o RTP(Voz sobre IP), usam o serviço de transporte do UDP.

55 UDP - User Datagram Protocol zSe formos analisar o serviço UDP em comparação com o TCP, veremos que o UDP é muito inferior. Porém gera um overhead muito baixo na rede, pois possui um Header muito pequeno. zPara algumas aplicações o serviço de transporte oferecido pelo TCP pode ser simplificado em prol dessa eficiência melhorada.

56 UDP - User Datagram Protocol zO UDP não implementa confirmações (acknowledgements), janelas (windows), nem sequenciamento. zPortanto o serviço UDP é não confiável como o é o do IP. O UDP apenas especifica um controle de transporte à nível de identificação de Ports (Sockets).

57 UDP - User Datagram Protocol zVemos abaixo o Header UDP. DATA UDP MESSAGE LENGTHUDP CHECKSUM UDP SOURCE PORTUDP DESTINATION PORT Header UDP

58 UDP - User Datagram Protocol zUDP SOURCE PORT: yCampo composto de 16 bits, e identifica o número do port da aplicação origem (alocado no Host origem). yEste campo é opcionalmente preenchido, porém para aplicações onde o destino deve responder alguma coisa, ele deve estar preenchido.

59 UDP - User Datagram Protocol zUDP DESTINATION PORT: yComposto de 16 bits, é utilizado para alocar o port destino da aplicação que desejamos usar. yPodemos usar ports padrão (Well Known Ports) ou podemos solicitar um port vago para a aplicação desejada.

60 UDP - User Datagram Protocol zUDP MESSAGE LENGTH: yComposto de 16 bits, especifica o tamanho total da mensagem UDP. No caso, o Header mais os dados da respectiva aplicação.

61 UDP - User Datagram Protocol zUDP CHECKSUM: yCampo composto de 16 bits, é opcional, ficando à cargo da aplicação (TFTP, BOOTP, RTP, etc.) a solicitação do seu uso. yEste checksum é calculado tomando como base o header UDP e nos Dados. yLembrando que o UDP não possui mecanismos de retransmissão ou de controle de fluxo, então a aplicação que deve implementar algo neste sentido (se necessitar).

62 UDP - User Datagram Protocol zDATA: yCampo de tamanho variável, contém os dados da camada superior (aplicação), que usam o serviço UDP para serem transportados na rede.

63 UDP - User Datagram Protocol zFuncionamento: A principal função do UDP é a de proporcionar o serviço de multiplexação/demultiplexação de dados da aplicação, e controlar a sua entrega aos ports corretos. zO objetivo é eliminar todo o controle de forma a liberar o processamento da máquina para outras coisas, além de gerar um overhead mínimo.

64 UDP - User Datagram Protocol Encapsulamento do Protocolo UDP UDP Header UDP DATA DATAGRAM Header DATAGRAM DATA Area UDP Header UDP DATAFRAME DATA Area FRAME Header FRAME Tailer DATAGRAM Header UDP Header UDP DATA Mensagem UDP Datagrama IP Quadro de nível 2

65 Parte I - Básico de IPv4 e Introdução ao Roteamento Aplicações mais Comuns

66 Aplicações mais Comuns (TELNET) zTelnet é uma aplicação que possibilita a conexão de um computador com sistemas remotos. Ele consiste de duas partes (o lado cliente e o lado servidor), ver figura à seguir.

67 Aplicações mais Comuns (TELNET) TELNETTELNET Hardware Físico e Protocolos de Acesso ao Meio IPICMP TCPUDP KERBEROSKERBEROS X ANS.1 CMOT SMTPSMTP FTPFTP CLIENTECLIENTE SERVIDORSERVIDOR DOMAIN NAME SERVICE NFSNFS TFTPTFTP RPCRPC ANS.1 CMOTCMOT SNMPSNMP A E P S L P I E C A I Ç A Õ L E I S Z A D. TELNET

68 Aplicações mais Comuns (TELNET) zO uso fundamental do TELNET é o compartilhamento de recursos, no ambiente de rede. Quando necessitamos estabelecer uma conexão de forma a comandar remotamente um Host, a partir do Host local, a aplicação que pode fazer isso é o TELNET. Com isso podemos por exemplo mandar uma máquina remota abrir um aplicativo, fazer uma tarefa (job), e esperar o resultado já processado no Host local.

69 Aplicações mais Comuns (TELNET) zAssim o TELNET viabiliza o acesso remoto à múltiplas fontes de processamento no ambiente da rede corporativa. zVejamos o exemplo à seguir para entender melhor o que foi exposto:

70 Aplicações mais Comuns (TELNET) zConsideremos uma pequena rede composta de 3 servidores (Hosts A, B e C). zO Host A é dedicado à programas de treinamento. zO Host B é dedicado à Banco de Dados de Clientes e Fornecedores. zO Host C é usado para controlar terminais que acessam os serviços da rede.

71 Aplicações mais Comuns (TELNET) Host C TCP/IP Programas de Treinamento Banco de Dados de Clientes Banco de Dados de Fornecedores Host AHost B TCP/IP

72 Aplicações mais Comuns (TELNET) zNesta configuração a maior parte dos usuários fazem uso dos serviços do servidor C. Porém pela rede podem fazer uso dos serviços dos servidores A e B. Bastando para isso digitar TELNET A ou B. zPor exemplo para fazer uso de um programa de treinamento deverá digitar TELNET A, no prompt adequado.

73 Aplicações mais Comuns (TELNET) zQuando isso acontece o Host C acessa (através do cliente TELNET local) o servidor TELNET do Host A, e simplificando os processos. zO Host A responde através do seu servidor TELNET, à solicitação de conexão, estabelecendo uma sessão lógica. O prompt do computador A é então exibido.

74 Aplicações mais Comuns (TELNET) Host C TCP/IP Programas de Treinamento Banco de Dados de Clientes Banco de Dados de Fornecedores Host AHost B TCP/IP

75 Aplicações mais Comuns (TELNET) Host C TCP/IP Programas de Treinamento Banco de Dados de Clientes Banco de Dados de Fornecedores Host AHost B TCP/IP

76 Aplicações mais Comuns (TELNET) zDepois desse procedimento a tela do terminal do usuário é a tela do Host A, e todo comando dado é aceito diretamente por A. Assim se rodarmos um aplicativo, este estará sendo processado em A. O resultado será mostrado em C, que repassa para o terminal de usuário.

77 Aplicações mais Comuns (TELNET) zNeste momento estamos verdadeiramente comandando remotamente a máquina A, que obedece cada comando editado em C. zO próximo exemplo mostra como este comando pode ser usado via Internet.

78 Aplicações mais Comuns (TELNET) O seu micro Rede Corporativa CRT Internet Rede Corporativa Biblioteca UFRGS Servidor na Biblioteca

79 Aplicações mais Comuns (TELNET) zNo seu browser (no exemplo foi usado o Internet Explorer 5.0), digite telnet://asterix.ufrgs.br, esse é o endereço do servidor na biblioteca da UFRGS. zO que estamos dizendo esta ilustrado à seguir.

80

81 Aplicações mais Comuns (TELNET) zCom esse procedimento se abrirá automaticamente um programa acessório do Windows, chamado Telnet. zA tela resultante é mostrada à seguir.

82

83 Aplicações mais Comuns (TELNET) zUse o login e a password indicadas: ylogin: sabibib zO resultado é visto na tela seguinte.

84

85 Aplicações mais Comuns (TELNET) zA partir daí você é que comanda remotamente o servidor da biblioteca da UFRJ. zSe quiser pode brincar um pouco, não vamos continuar porque fugimos do escopo do trabalho. zPara sair use o comando hgdsfhwegfjwe

86 Aplicações mais Comuns (TELNET) zVamos agora nos aprofundar um pouco mais nos conceitos de TELNET. Considerando características intrínsecas à este protocolo. zA primeira coisa à ser considerada é que o TELNET é um protocolo, mas também é um aplicativo. Ou seja por TELNET entendemos o protocolo da pilha TCP/IP e também o aplicativo Telnet do Windows que nos ajudou a fazer a conexão.

87 Aplicações mais Comuns (TELNET) zSob a perspectiva de aplicativo, o TELNET permite que o usuário chame um programa (Ex.Telnet), e com ele efetue uma conexão remota com outro Host. zVeja a figura à seguir.

88 Aplicações mais Comuns (TELNET) Host C TCP/IP Programas de Treinamento Banco de Dados de Clientes Banco de Dados de Fornecedores Host AHost B TCP/IP Telnet A TELNET Cliente TELNET Servidor TELNET Cliente TELNET Servidor TELNET Cliente TELNET Servidor

89 Aplicações mais Comuns (TELNET) zO que podemos ver é que quando digitamos o comando TELNET A, estamos acessando o aplicativo em C, que usa o protocolo Cliente TELNET, para acessar o Servidor TELNET na máquina A. zCabe salientar que tanto o Servidor como o Cliente TELNET, estão implementadas em todos os Hosts que possuem a pilha TCP/IP.

90 Aplicações mais Comuns (TELNET) zO TELNET possui comandos que são usados para controlara a conexão, estes são particularmente importantes quando temos máquinas Unix, ou Linux, onde não temos menus para fazer o controle da conexão. zÀ seguir mostramos os principais comandos TELNET.

91 Aplicações mais Comuns (TELNET) zclose - Fecha a conexão atual. zdisplay - Exibe os parâmetros operacionais em uso pelo TELNET. Esses parâmetros podem ser modificados e dependem de cada instalação. zmode - Indica se as entradas devem ser feitas uma linha ou um caractere de cada vez. zopen - Este comando deve ser introduzido antes do nome do host de destino, a fim de que a sessão possa ser estabelecida. zquit - Encerra a sessão TELNET.

92 Aplicações mais Comuns (TELNET) zsend - Possibilita a transmissão de caracteres especiais. zset - Este comando é utilizado para definir certos parâmetros de uma sessão TELNET. zstatus - Fornece informações sobre a conexão e os parâmetros operacionais em uso na sessão atual. ztoggle - Permite modificar alguns parâmetros operacionais. zz - Este comando suspende o prompt telnet>. z? - Lista os comandos TELNET válidos.

93 Aplicações mais Comuns (TELNET) zApenas uma última consideração sobre o TELNET. yEle não possui nenhum controle de segurança, ou seja, o servidor TELNET nunca recusará um pedido do cliente TELNET. O login e password que vimos no exemplo é por conta do Sistema Operacional. Isso pode ser inseguro em determinadas circunstâncias. A solução para isso está no Rlogin.

94 Aplicações mais Comuns (Rlogin) zAlguns ambientes Unix, implementam uma facilidade de login remoto denominado Rlogin. Neste caso só são aceitas conexões de Hosts conhecidos, ou seja, equipamentos especificados a priori e dentro de padrões pré- definidos. zEsta aplicação permite que o administrador da rede defina as máquinas usuárias da mesma, bem como suas identificações (nome, senha, domínio, etc.).

95 Aplicações mais Comuns (Rlogin) zUma observação importante é que o Rlogin é restrito ao ambiente Unix, onde é usado por suprir esta falta de segurança do TELNET. Porém para qualquer outra máquina o TELNET é que é implementado na pilha TCP/IP.

96 Aplicações mais Comuns (FTP - File Transfer Protocol) zO FTP é uma aplicação que permite a transferência de arquivos entre dois Hosts que possuam os componentes TCP/IP necessários para esse fim. zO nome transferência não é no sentido normalmente usado, estamos na verdade fazendo uma cópia de um arquivo para uma máquina remota. zComo o TELNET, ele é composto por um cliente e um servidor.

97 Aplicações mais Comuns (FTP - File Transfer Protocol) FTPFTP Hardware Físico e Protocolos de Acesso ao Meio IPICMP TCPUDP KERBEROSKERBEROS X ANS.1 CMOT SMTPSMTP TELNETTELNET CLIENTECLIENTE SERVIDORSERVIDOR DOMAIN NAME SERVICE NFSNFS TFTPTFTP RPCRPC ANS.1 CMOTCMOT SNMPSNMP A E P S L P I E C A I Ç A Õ L E I S Z A D. FTP

98 Aplicações mais Comuns (FTP - File Transfer Protocol) zO FTP é considerada uma aplicação voltada para o usuário, e possui uma operação bastante simples. zA figura à seguir mostra uma conexão FTP.

99 Aplicações mais Comuns (FTP - File Transfer Protocol) Host C TCP/IP Programas de Treinamento Banco de Dados de Clientes Banco de Dados de Fornecedores Host AHost B TCP/IP FTP A FTP Cliente FTP Servidor FTP Cliente FTP Servidor FTP Cliente FTP Servidor

100 Aplicações mais Comuns (FTP - File Transfer Protocol) zAs funções básicas do FTP são: yCopiar um arquivo de um Host para outro yCopiar múltiplos arquivos de um Host para outro. yPode criar e/ou remover diretórios no Host destino. yPossibilita a identificação do diretório atual no Host destino.

101 Aplicações mais Comuns (FTP - File Transfer Protocol) yPermite concatenar um arquivo do Host remoto com um arquivo armazenado no Host local. yPermite concatenar um arquivo local com um arquivo armazenado no Host remoto.

102 Aplicações mais Comuns (FTP - File Transfer Protocol) Host C TCP/IP Programas de Treinamento Banco de Dados de Clientes Banco de Dados Local Host AHost B TCP/IP FTP A FTP Cliente FTP Servidor FTP Cliente FTP Servidor FTP Cliente FTP Servidor Banco de Dados de Fornecedores

103 Aplicações mais Comuns (FTP - File Transfer Protocol) zAlém de implementar estas funções, o FTP permite a introdução de comandos em um cliente. zAlguns comandos válidos FTP são mostrados à seguir.

104 Aplicações mais Comuns (FTP - File Transfer Protocol)

105 zEsses comandos, na maioria são comandos do shell do Unix, ou seja, são comandos do Sistema operacionais, que ficam disponibilizados pelo FTP. zAlguns são explicados agora: yget - Este comando é utilizado para pegar um arquivo armazenado no computador remoto.

106 Aplicações mais Comuns (FTP - File Transfer Protocol) yput - Este comando é utilizado para colocar um arquivo contido no Host fonte (onde foi solicitado o cliente) no Host destino (onde foi solicitado o servidor). yopen - Depois deste comando o cliente FTP pedirá o nome do Host destino. yclose - Encerra a conexão lógica entre Host fonte e destino.

107 Aplicações mais Comuns (FTP - File Transfer Protocol) zVamos fazer um exemplo de utilização do FTP, como no caso do TELNET. zAbra o browser, e digite na linha de comando ftp://ftp.unicamp.br zO que você vê como resultado é.

108

109

110 Aplicações mais Comuns (FTP - File Transfer Protocol) zNo sistema operacional como o Windows (que é totalmente gráfico, para conseguirmos usar os recursos do FTP, precisamos instalar na máquina programas aplicativos que façam esta função de acessar a pilha TCP/IP. zExemplos são o CuteFTP, o Getright, etc. zVocê pode conseguir estes, e muitos outros em

111 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zO FTP é um protocolo alta confiabilidade, e por isso é altamente complexo. Porém podemos imaginar situações em que tenhamos máquinas que não tem disponível uma área de armazenamento de informações grande (por exemplo diskless), ou que tenham uma performance muito baixa, e que por isso fica impraticável a implementação do FTP.

112 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zNestes casos cabe melhor o protocolo TFTP, que é muito mais simples, e que usa o serviço de transporte do UDP, o que possibilita a sua implementação em uma ROM ou RAM, mesmo em máquinas limitadas neste aspecto.

113 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zFuncionamento: yNão necessita de um serviço de transporte confiável. yOs arquivos transmitidos são segmentados em blocos, de tamanho fixo, de 512 bytes. yCada bloco aguarda a confirmação da recepção (feita pelo próprio TFTP), para prosseguir.

114 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) yA conexão TFTP ocorre com o envio do primeiro bloco, que definirá se o arquivo à ser transferido será lido (servidor cliente) ou será escrito (cliente servidor). Esse primeiro bloco é visto abaixo. READ REQ.(1)FILENAME0MODE0 WRITE REQ.(2)FILENAME0MODE0 Requisição de Leitura Requisição de Escrita

115 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zOs campos desses blocos são interpretados assim: yREAD ou WRITE REQUEST: Composto por 16 bits e define se desejamos abrir uma escrita (valor 2) ou se desejamos abrir uma leitura (valor 1). yFILENAME: Variável, contém o nome do arquivo que desejamos transferir. y0: Este campo delimita o fim de FILENAME e o início de MODE.

116 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) yMODE: Variável e especifica o status do cliente (se é somente escrita, somente leitura ou ambos).

117 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zLogo após a conexão, passamos à fase de transferência de dados. zO pacote de dados é visto abaixo. DATA (3)BLOCK#DATA OCTETS Dados

118 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zDescrição dos campos: yDATA: Composto de 16 bits, se o valor igual a 3 identifica que o bloco de informação é de dados à serem transferidos. yBLOCK#: Composto de 16 bits, contém uma numeração seqüencial, representando o número do bloco transmitido. yDATA OCTETS: Contém a informação transferida propriamente dita. Contém sempre 512 octetos.

119 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zPara cada bloco transmitido é feita uma confirmação (sem janela). Esta confirmação é feita com o bloco ACKNOWLEDGE, que é mostrado abaixo. ACK (4)BLOCK# ACK

120 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zOs campos do bloco ACK é mostrado à seguir: yACK: Composto de 16 bits, possui valor 4 para caracterizar um ACK. yBLOCK: Contém 16 bits, serve para identificar o número do bloco confirmado.

121 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zPor fim é previsto uma forma de recuperação de erros automática com a mensagem ERROR. O mensagem ERROR é mostrada abaixo: ERROR(5)ERROR CODEERROR MESSAGE0 Mensagem ERROR

122 Aplicações mais Comuns (TFTP - Trivial File Transfer Protocol) zOs campos da mensagem ERROR são descritos abaixo: yERROR: Composto de 16 bits, se possui valor 5 identifica que a mensagem é de erro. yERROR CODE: Composto de 16 bits, contém o código do erro encontrado pelo receptor. yERROR MESSAGE: Variável, é identificado o seu fim pelo byte 0 final, contém um diagnóstico de falha e uma cópia de alguns dados da mensagem rejeitada.

123 Aplicações mais Comuns (NFS - Network File System) zProtocolo Desenvolvido pela SUN Microsystems Incorporated, provê acesso à arquivos que são compartilhados on-line, de forma transparente aos usuários e totalmente integrado como o sistema operacional e softwares aplicativos. zPara o usuário esta aplicação é totalmente transparente, pois ele é incapaz de saber se aquilo que está executando está ou não em sua máquina, ele apenas solicita e todo o sistema se encarrega de executar, sem o detalhamento para o usuário.

124 Aplicações mais Comuns (NFS - Network File System) zO NFS se interfaceia diretamente com o sistema operacional da máquina que estamos trabalhando. Isso é o grande ponto relativo à sua transparência. zVamos então à partir de agora descrever a implementação deste protocolo.

125 Aplicações mais Comuns (NFS - Network File System) zImplementação: yO NFS implementa uma interface entre o Sistema Operacional e os arquivos remotos, sendo que quando um programa aplicativo é executado, ele aciona o sistema operacional, que solicita ao NFS que faça a recuperação de dados, abertura ou armazenamento de determinado arquivo.

126 Aplicações mais Comuns (NFS - Network File System) zDeve ficar claro que o Sistema Operacional é quem decide, mediante o pedido da aplicação, se acionará o sistema de arquivos local ou o NFS, de acordo com a localização dos arquivos desejados. zObserve a figura a seguir:

127 Aplicações mais Comuns (NFS - Network File System) Aplicação S.O. Arquivo local do sistema NFS cliente Disco Local Conexão Internet com o servidor NFS da(s) máquina(s) remota

128 Aplicações mais Comuns (NFS - Network File System) S.O. Arquivo local do sistema NFS servidor Disco Local Aplicação S.O. Arquivo local do sistema NFS cliente Disco Local

129 Aplicações mais Comuns (NFS - Network File System) zQuando o arquivo está localizado na máquina remota, o Sistema Operacional usa o protocolo NFS para contatar o NFS servidor na máquina remota, liberando a operação solicitada. zQuando o Host (servidor) remoto receber a requisição, processa a mesma e encaminha a resposta ao cliente NFS, que a passa ao S.O., que por sua vez o entrega para aplicação solicitante.

130 Aplicações mais Comuns (NFS - Network File System) zAo invés de ser definido como uma unidade, o Protocolo NFS foi concebido como dois segmentos independentes: yRPC (Remote Procedure Call) - Procedimento de Chamada Remota. yXDR (External Data Representation) - Representação Externa de Dados.

131 Aplicações mais Comuns (NFS - Network File System) zEsta divisão foi estrategicamente efetuada para permitir a utilização com outros softwares, ou protocolos. zO NFS em si já é bastante poderoso, para prover em si um serviço transparente para o usuário, que busca os recursos de que necessita, sem se preocupar com a sua localização física. zMas com o RPC e XDR, os programadores podem construir programas distribuídos.

132 Aplicações mais Comuns (NFS - Network File System) zPor exemplo podemos criar programas que sejam executados em parte em uma máquina e em parte em outra, o RPC será usado para gerenciar e sincronizar a comunicação. zCom o XDR podemos fazer conversões automáticas de dados, permitindo aos programadores utilizarem transmissões de dados entre máquinas heterogêneas, sem a necessidade de escreverem procedures especiais de conversão.

133 Aplicações mais Comuns (NFS - Network File System) zEste protocolo é bastante complexo para o nível que desejamos explorar neste curso. zMas um projeto bastante interessante e complexo está disponível na Web, e se chama projeto Beowulf (Supercomputação barata), que usa o protocolo NFS, e várias máquinas em rede rodando Linux, e softwares especiais, rodam aplicativos tão rápido como Supercomputadores. Se quiser procure no endereço eletrônico

134 Aplicações mais Comuns (SMTP - Simple Mail Transfer Protocol) zO SMTP efetua um mecanismo para transferência de mensagens de correio eletrônico. O conceito de remetente e destinatário utilizado pelo SMTP é paralelo ao relacionamento cliente/servidor usado no TELNET e no FTP. zA estrutura básica do correio eletrônico é mostrado a seguir.

135 Aplicações mais Comuns (SMTP - Simple Mail Transfer Protocol) HOST AHOST B Agente do Usuário Caixa de Correio Eletrônico Agente de Transferência da Mensagem Área da Fila das Mensagens Caixa de Correio Eletrônico Agente de Transferência da Mensagem Área da Fila das Mensagens Agente do Usuário

136 Aplicações mais Comuns (SMTP - Simple Mail Transfer Protocol) zAgente do Usuário: é o componente que dá início à execução do programa de correio eletrônico. Ele é chamado através de um comando e oferece um editor para que o usuário possa criar a mensagem à ser enviada. zCaixa de Correio Eletrônico: Local onde ficam armazenadas as mensagens recebidas, uma cópia das enviadas, e as que ainda não foram mandadas. zAgente de Transferência da Mensagem: Elemento responsável por transferir a mensagem.

137 Aplicações mais Comuns (SMTP - Simple Mail Transfer Protocol) zFuncionamento: yDepois de criada, a mensagem é passada para o Agente de Transferência. Este componente estabelece a conexão com o host remoto e efetua a transmissão da mensagem. yNo host remoto, um outro Agente de Transferência aceita a mensagem e a armazena na fila de mensagens do destinatário. yO destinatário visualiza a mensagem ativando o Agente do Usuário em sua máquina.

138 Aplicações mais Comuns (SMTP - Simple Mail Transfer Protocol) zAlém do SMTP, existem outros protocolos de correio eletrônico (em geral todos são muito fáceis de usar). Um protocolo bastante interessante é o X.400 (ISO X.400). Este difere do SMTP, principalmente pela característica de rastrear a mensagem e convertê-la para diferentes mídias (correio de voz, fax, etc.).

139 Aplicações mais Comuns (SMTP - Simple Mail Transfer Protocol) zComandos mais comuns: yhello - Este comando identifica o remetente para o destinatário. ymail - Inicia o SMTP. ysend - Faz com que a mensagem seja enviada diretamente para o destinatário desejado, caso este esteja conectado. ysoml - Determina que a mensagem seja enviada diretamente para o terminal destinatário, assumindo-se que ele está conectado. Caso contrário, a mensagem será armazenada na caixa de correio do usuário.

140 Aplicações mais Comuns (SMTP - Simple Mail Transfer Protocol) yhelp - Solicita uma linha de comandos suportados pelo sistema de correio eletrônico do host ao qual o destinatário se encontra conectado. yrcpt - Este comando é usado para identificar um ou vários destinatários. yturn - Transforma o destinatário em remetente. ysaml - Executa duas operações: envia uma mensagem para a caixa de correio do destinatário e se encarrega de exibí-la na tela, caso ele se encontre conectado

141 Aplicações mais Comuns (KERBEROS) zO protocolo KERBEROS foi desenvolvido pelo MIT (Massachussets Intitute of Technology), para oferecer um serviço de segurança de redes bastante eficiente. Veja em what_is zO KERBEROS pressupõe que o ataque cracker, hacker ou freaker se dá durante o processo de transferência de dados, sendo que evitar vírus, tais como o trojan ou back orifice é responsabilidade dos antivirus instalados.

142 Aplicações mais Comuns (KERBEROS) zA palavra KERBEROS, vem do nome em inglês de Cérberos (Cachorro de três cabeças que guardava as portas do mundo dos mortos, para que ninguém entrasse sendo vivo ou saísse sendo morto). Símbolo do Protocolo KERBEROS

143 Aplicações mais Comuns (KERBEROS) zEste protocolo Trabalha com os conceitos de Autenticação, Criptografia e Certificação. Passemos às definições: yAutenticação: Processo no qual o usuário de um Host pede autorização à um servidor KERBEROS, para acessar um arquivo ou aplicação remota (ou, até mesmo, residente no próprio sistema).

144 Aplicações mais Comuns (KERBEROS) yDurante a Autenticação o usuário usa uma senha (password) que o caracteriza, apenas cabe salientar que esta senha é independente da senha com que este usuário acessa à rede. yQuanto à esta senha o servidor KERBEROS não permite que seja trivial (tal como, 1234, o próprio nome ou sobrenome, password, kerberos, frutas, animais, estrelas, etc.). Isso evita que um cracker use o seu histórico de senhas para descobrir a sua.

145 Aplicações mais Comuns (KERBEROS) yAlém da senha, o Host passará para o Servidor KERBEROS um ticket com todas as informações sobre o usuário que está se conectando. yEsse processo de passagem do ticket com a senha é criptografado com chave pública (criptografia assimétrica), que veremos mais tarde como funciona.

146 Aplicações mais Comuns (KERBEROS) yCriptografia: O KERBEROS irá utilizar-se de um algoritmo de criptografia de no mínimo 90 bit (PGP - Pretty Good Privacy), mas normalmente usa chaves públicas de 128 bits. O funcionamento disso será visto daqui à pouco. yAlém disso depois de feita a conexão com a aplicação remota os dados trafegam na linha criptografados. O que inibe a ação de usuários intermediários que utilizem de ferramentas Snifer, pois para ele o que passa pela rede é lixo.

147 Aplicações mais Comuns (KERBEROS) zCertificação: Esta ferramenta é utilizada para garantir que os dados recebidos são realmente de quem pensamos que seja. zUm dos ataques mais freqüentes dos Snifers, é quando ele não podendo ler os dados corrompe a mensagem original, aumentando ou diminuindo ela (ou mesmo introduzindo vírus). zNeste caso o Kerberos introduz um Checksum que detecta mensagens corrompidas, e quando estas forem detectadas, dispara um processo de traçar a rota para isolar um possível suspeito para este ato.

148 Aplicações mais Comuns (KERBEROS) yOutro ataque comum é quando o Snifer usa o seu endereço IP, fingindo que é você para introduzir mensagens inseguras na rede. Para isso todo pacote entregue é autenticado com o ticket de usuário, assim quando detectamos um pacote embora com endereço IP correto, mas sem o ticket, é imediatamente disparado um processo parecido com o anterior.

149 Aplicações mais Comuns (KERBEROS) zO KERBEROS é portanto uma aplicação para aumentar a segurança das redes. Existe um concorrente bastante comum para o KERBEROS que é o Firewall. zA filosofia do Firewall é diminuir o acesso de uma máquina ou grupo delas aos serviços de rede, na verdade para ele a máquina mais segura é aquela que não está conectada à rede.

150 Aplicações mais Comuns (KERBEROS) zA principal utilização do Firewall é contra ataques externos (por usuários que não pertencem à rede). Mas sabemos hoje que a maioria dos ataques é interno. Nisto o KERBEROS é mais interessante que o sistema Firewall.

151 Aplicações mais Comuns (KERBEROS) zDevido à importância, que está a cada dia aumentando, vamos ver como funciona um processo de criptografia. yO objetivo da criptografia é de transformar os dados transmitidos em um formato irreconhecível por terceiros. yPorém o receptor e o transmissor possuem uma chave criptográfica, que opera como um código secreto, codificando e decodificando a mensagem através de um algoritmo.

152 Aplicações mais Comuns (KERBEROS) yExemplo: yImagine que queiramos mandar a mensagem texto: redes de computadores. yO algoritmo que usaremos será de transpor cada letra do texto em uma posição para frente no alfabeto. yO resultado disso será: sfeft ef dpnqvubepsft, o que é muito mais difícil de ser entendido para quem não possui a chave de descritografação.

153 Aplicações mais Comuns (KERBEROS) zO exemplo usado foi bastante simples, mas já mostra o potencial do que estamos dizendo. Precisamos é lógico de algoritmos mais complicados, e que mesmo que sejam conhecidos, desencorajem qualquer ataque pela dificuldade de ser feita a procura da chave.

154 Aplicações mais Comuns (KERBEROS) zVamos definir Chave: yÉ uma seqüência de bits (zeros e uns) utilizada para codificar os dados em outro formato. Deve ser tal que a aplicação dela de novo recupera os dados originais. Usamos para isso a operação lógica XOR (Ou Exclusivo). y0 0 = 0 y0 1 = 1 y1 0 = 1 y1 1 = 0

155 Aplicações mais Comuns (KERBEROS) zComo exemplo vamos utilizar uma chave pública de 11 bits zImagine uma mensagem original , teremos: z z z Mensagem original Chave Mensagem criptograf.

156 Aplicações mais Comuns (KERBEROS) zPara recuperar os dados originais, basta aplicar novamente a chave, com a mesma operação Ou Exclusivo (faça como exercício). zVamos em frente com a nossa teoria e vamos definir o que é um algoritmo simétrico e um algoritmos assimétrico.

157 Aplicações mais Comuns (KERBEROS) zAlgoritmo Simétrico: yUm algoritmo é dito simétrico se o transmissor e o receptor se usam da mesma chave para cifrar e decifrar a mensagem (como no nosso exemplo). Para isso tanto o transmissor quanto o receptor devem conhecer a chave utilizada. yIsso pode ser feito quando ambos sabem de antemão qual é a chave, ou devemos informar ao receptor qual a chave que será usada pelo transmissor.

158 Aplicações mais Comuns (KERBEROS) yNo primeiro caso, chave previamente conhecida, temos um problema de segurança se alguém no meio do caminho descobre qual é a chave (pois como ela não muda ele pode ficar tentando), se descobrir, perdemos todo o esquema de segurança montado. yNo segundo caso, chave informada, temos também um ponto falho de segurança, pois como iremos informar a chave ao receptor, se no meio do caminho temos o ataque.

159 Aplicações mais Comuns (KERBEROS) Algoritmo de Criptografia Arquivo Original Arquivo Criptografado Chave Secreta Transmissor Algoritmo de Criptografia Arquivo Original (descriptografado) Arquivo Criptografado Chave Secreta Receptor

160 Aplicações mais Comuns (KERBEROS) zChave Assimétrica: ySão conhecidos também como chave pública. yUtilizam duas chaves, uma para cifrar (chave pública) e outra para decifrar (chave privada). yAs chaves públicas são divulgadas e as chaves privadas são mantidas em segredo. yUma mensagem enviada cifrada com a chave pública só poderá ser decifrada com a chave privada do receptor.

161 Aplicações mais Comuns (KERBEROS) yUma forma básica de operação desse sistema, pode ser: xCada Usuário cria dois números extensos, conhecidos como chaves. xUma das chaves (número) é privada e mantida em segredo pelo usuário. xA outra chave (número é pública e pode ser conhecida por todos. xTanto a chave pública como a privada, são usadas em conjunto para codificar e para decodificar a mensagem.

162 Aplicações mais Comuns (KERBEROS) xA mensagem criptografada com uma das chaves só pode ser decifrada com a outra chave. xPodem ser criptografados, qualquer tipo de arquivo: documentos, fotos, arquivos de som, etc. yExemplo: xO método utiliza duas chaves diferentes associadas. xA chave privada (secreta) é sorteada aleatoriamente, a chave pública é calculada à partir dela. O processo é unidirecional, ou seja, é impossível (ou muito difícil) calcular a chave privada à partir da pública.

163 Aplicações mais Comuns (KERBEROS) xO emissor quer enviar uma mensagem criptografada para o receptor, e utiliza para isso a chave pública (recebida) do receptor para criptografar a mensagem. xO receptor recebe a mensagem e a descriptografa usando a sua chave privada (secreta).

164 Aplicações mais Comuns (KERBEROS) zO algoritmo mais popular desse tipo é o RSA, sendo usado com chaves (números) com mais de 90 bits, atualmente é usual 128 bits. zO funcionamento desse algoritmo é baseado em cálculos com números primos. zA chave pública nesse caso é o produto de dois números primos muito grandes. zAs chaves privadas são os números primos (grandes) que multiplicados geram a chave pública.

165 Aplicações mais Comuns (KERBEROS) zPor definição, números primos são aqueles que só são divisíveis por eles mesmos e por 1. zExemplos de números primos: 2, 3, 5, 7, 11, 13, 19, zPara obtermos números primo, o único método conhecido é o da eliminação. Escrevemos a seqüência numérica e eliminamos os múltiplos de 2, os múltiplos de 3, de 5 etc. z2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 15, 16 17, 18, 19, 20,21, 22, 23, 24, 25, 26,27,...

166 Aplicações mais Comuns (KERBEROS) zO método se baseia em que essa procura é demorada (tente continuar a seqüência). zMais demorado ainda é o processo de decomposição de um número composto pela multiplicação de dois primos (principalmente se forem grandes). zPodemos dizer que existem métodos rápidos para multiplicar números primos (gerando a chave pública), mas para decompor em seu fatores primos, só existe o método de exaustão baseado em tentativas e erros.

167 Aplicações mais Comuns (KERBEROS) zO método se baseia nisso, para inibir qualquer tentativa de decompor a chave pública nas chaves privadas, que a gerou. zNa verdade para chaves de 128 bits, calculasse que a pesquisa exaustiva pode durar até anos. Mesmo com computadores muito rápidos.

168 Aplicações mais Comuns (KERBEROS) Algoritmo de Criptografia Arquivo Original Arquivo Criptografado Chave Pública do Receptor Transmissor Algoritmo de Criptografia Arquivo Original (descriptografado) Arquivo Criptografado Chave Privada do Receptor Receptor

169 Aplicações mais Comuns (KERBEROS) zDescrevemos como usar esse algoritmo. yO receptor (destinatário) gera dois números primos elevados e calcula o seu produto. yOs números primos originais são mantidos em segredo (chave privada). yO produto desses número é feito público (chave pública), e enviado ao transmissor, junto com o nome do receptor. yO transmissor gera um novo produto, da chave pública, com outro número primo aleatório. E cifra a mensagem com esse novo número.

170 Aplicações mais Comuns (KERBEROS) yA mensagem é enviada para o receptor com esta nova chave (composta pela chave pública, mais o número primo aleatório do transmissor). yO receptor terá de decompor em fatores primos para poder decifrar a mensagem, porém como ele detém as chave privadas, ele possui métodos rápidos de solução do problema. yO receptor aplica o algoritmo e descriptografa a mensagem.

171 Aplicações mais Comuns (SNMP-Simple Network Management Protocol) zO SNMP é um protocolo de gerenciamento de rede, que tem como objetivo de prover a troca de informações entre o gerenciador (cliente) e os gateways/hosts (servidores). zOs aplicativos de gerenciamento de rede são normalmente conhecidos como (NMS - Network Management System)

172 zO SNMP utiliza o processo de busca/colocação (fetch/store) na troca de informações com os servidores. zEstas informações, que estão residentes na MIB (Base de Dados Gerenciais) do servidor, podem ser desde simples informações estatísticas, até os dados de configuração do elemento gerenciado. Aplicações mais Comuns (SNMP-Simple Network Management Protocol)

173 FETCH STORE Cliente Workstation Servidor Gateway Comando usado pelo cliente para atualizar a MIB do Gateway Busca de atualização da base de dados


Carregar ppt "Parte I - Básico de IPv4 e Introdução ao Roteamento TCP - Transmission Control Protocol."

Apresentações semelhantes


Anúncios Google