terça-feira, 14 de abril de 2015

Exercício prático com o S-DES

Hoje vamos ver então um exemplo prático de criptografia com o S-DES. Não vou colocar aqui novamente todas aquelas imagens e explicações, vou direto ao ponto.

A única coisa que vou buscar dos outros posts antes de começar é as subchaves que criamos.

K1 = 11110010
K2 = 11000111

Recomendo que abra abas com os textos passados do S-DES para ir acompanhando as operações.

Para não cortar o fluxo do exercício vou comentar antes sobre os XOR que aparecerão no texto. Teoricamente se você está lendo este texto provavelmente você tem uma noção de binário e operações com eles, caso não tenha já sabe o que precisa estudar! :)


Esta é a tabela do XOR. Mesmo sem ter estudado operações em binário da para ter uma noção do que ela faz. Caso ainda ficou alguma dúvida veremos na prática logo abaixo.

Chega de enrolação e vamos a prática!

Nossa primeira operação é a IP, que acho que esqueci de colocar nos textos anteriores sua caixa.



O texto claro que vamos criptografar, chamaremos de X:

X = 01010001

Etapa 1: Ao passarmos a entrada X pela caixa IP teremos como resultado "10001100".

Etapa 2: Dividimos X em duas partes, a primeira parte segue para o fim e a segunda parte entra em E/P. O "1100" que entra no E/P sai como "01101001".

Etapa 3: Saída de E/P entra em um XOR com a subchave K1:
01101001 --> E/P
11110010 --> K1
10011011 --> Resultado
Etapa 4: Saída do XOR é dividida em duas partes e cada uma entra em uma Caixa-S:
Saída = 10011011
S0 = 1001
S1 = 1011
Resultado S0 = Linha 11, Coluna 00, Valor 3 = 11
Resultado S1 = Linha 11, Coluna 01, Valor 1 = 01
Etapa 5: Resultado das Caixas-S é unido novamente e usado como entrada na caixa P4. "11" e "01" entram em P4 e como resultado geram "1101".

Etapa 6: XOR com a primeira parte de IP:
1000 --> IP
1101 --> P4
0101 --> Resultado
Etapa 7: Realizado a inversão de entradas com a caixa SW. Entradas "0101" (XOR - Etapa 6) e "1100" (IP - Etapa 1) viram as Saídas "1100" e "0101".

Etapa 8: Iniciando a segunda função complexa, a primeira metade da saída anterior vai para o fim do algoritmo e a segunda vai para a caixa E/P. Resultado de E/P é "10101010".

Etapa 9: XOR com a segunda subchave:
10101010 --> E/P
11000111 --> K2
01101101 --> Resultado
Etapa 10: Saída do XOR é dividida em duas partes e cada uma entra em uma Caixa-S:
Saída = 01101101
S0 = 0110
S1 = 1101
Resultado S0 = Linha 00, Coluna 11, Valor 2 = 10
Resultado S1 = Linha 11, Coluna 10, Valor 0 = 00
Etapa 11: Resultado das Caixas-S é unido novamente e usado como entrada na caixa P4. "10" e "00" entram em P4 e como resultado geram "0001".

Etapa 12: XOR com a primeira parte de SW:
1100 --> IP
0001 --> P4
1101 --> Resultado
Etapa 13: Por fim, o resultado do XOR (1101) e o segundo resultado de SW (0101) juntam-se e entram em IP -1 que gerará nosso texto cifrado. Temos então nesta prática como texto cifrado o valor "11000111".

E era isso! Se estivessemos usando o algoritmo DES normal, teríamos que repetir essas operações por mais 14 vezes.

Compare nossa entrada X = 01010001 com a saída final "11000111". Completamente diferente e sem nenhum sentido. Claro que neste exemplo usamos apenas um bloco, mas se quiser testar pode fazer com um algoritmo de verdade, com algum software de criptografia que comentarei em algum post futuro. Verá que o resultado é totalmente ilegível.

Efeito Avalanche

O efeito avalanche explica o motivo de um algoritmo de criptografia ter de repetir diversas vezes o mesmo conjunto de operações. A mínima mudança no texto plano ou na chave deve gerar grandes mudanças no texto cifrado. Quanto mais rodadas, mais o texto cifrado sofre do efeito avalanche e maior é o impacto dessa mudança. Veja a imagem do efeito avalanche do DES:


E com isso eu fico por aqui, dando um fim nessa jornada de criptografia com o S-DES. Aguarde o próximo texto com conteúdos novos!

Se esta gostando dos textos não esqueça de compartilhar com seus amigos e conhecidos o texto e o blog.

Até a próxima!
O Linux 4.0 está quase entre a gente. E ele deverá ser chamado de “Hurr durr I’ma sheep”. Sim, de verdade. Os kernels do Linux possuem codinomes estranhos.
Deixando de lado o nome estranho, o Linux 4.0 não representa uma grande mudança em relação ao Linux 3.19. Ele seria chamado de Linux 3.20, mas muitas pessoas queriam ver o Linux 4.0 entre nós. Como o próprio Linus Torvalds disse, “o argumento mais forte para algumas pessoas defendendo o (Linux) 4.0 parece ser um desejo de ver o 4.1.15 – porque foi a versão do Linux Skynet usada para o Terminator/Exterminador T-800”.
Patch sem reboot do kernel
Além de nos deixar mais perto do futuro apocalíptico dos filmes “O Exterminador do Futuro”, o maior recurso do novo Linux é o patch em tempo real do kernel. Quando uma atualização – talvez um update crítico de segurança – for emitida para o kernel do Linux, esse tecnologia permitirá que o sistema operacional troque seu kernel atual sem um reboot. Pode parecer um pequeno economizador de tempo, mas, na verdade, é algo importante para servidores de missão crítica que precisam do maior tempo ativo possível.
Originalmente esse recurso era oferecido pela Ksplice. Mas a Oracle comprou essa tecnologia e agora ela só funciona com o Oracle Linux. A SUSE desenvolveu sua própria solução, chamada kGraft, assim como a Red Hat, com a Kpatch. O recurso de patching em tempo real encontrado no Linux 4.0 funciona tanto com a kGraft quanto com a patch, deixando todos felizes.
Não espere necessariamente que seu desktop Linux receba o patching sem reboot em breve, já que isso exige um trabalho de implementação. Mas é algo importante para os servidores e clusters que precisam de todo o tempo ativo que conseguirem.
Fonte: IDG NOW!

segunda-feira, 13 de abril de 2015

Demorou, mas aconteceu. Cibercriminosos brasileiros já miram seus ataques aos usuários de internet banking móvel, e como esperado, o Android foi a plataforma escolhida. Depois de páginas de phishing em formato móvel, chegou a vez de aplicativos maliciosos publicados na loja do Google Play. Depois da denúncia de um usuário encontramos 2 delas na Play Store, ambas usando o nome de Bancos locais, com funções de roubar credenciais de acesso dos usuários que instalassem esses aplicativos. Esses são tecnicamente os primeiros trojans desenvolvidos por cibercriminosos brasileiros atacando a plataforma Android.

Os aplicativos podiam ser encontradas junto aos aplicativos legítimos - um deles estava hospedado na loja desde o dia 31 de Outubro e registrou mais de 80 instalações, já o segundo estava publicado desde o dia 10 de Novembro e registrava apenas 1 instalação.

Ambos os apps estavam publicados em nome do usuário “Governo Federal”:



Ambos os aplicativos foram desenvolvidos usando o framework "App Inventor", que permite facilmente a qualquer usuário, mesmo os que não possuem conhecimento em programação Java de criar uma aplicação ativa. O resultado geralmente são apps de tamanho grande, com muito "código lixo". Os apps desenvolvido nesse framework contém diversas funções suspeitas, mas para os 2 aplicativos maliciosos encontrados ambos possuiam apenas as funções de carregar figuras e uma URL.

Depois de instalados ambos aplicativos ativam funções de acesso TELNET ao dispositivo, além de realizar o comando de se conectar a um site legítimo de uma empresa, mas que foi alterado para hospedar as páginas de phishing em formato móvel.


A página de phishing em questão seriam abertas pelos aplicativos maliciosos como um iframe, porém algum bom samaritano as removeu do ar, deixando um aviso bastante interessante no site, que era exibido dentro dos apps quando abertos:








Tal fato obviamente tornou o golpe não funcional, mas o fato da publicação de apps maliciosas usando o nome de bancos conhecidos, na loja oficial do Google demonstra a facilidade com que cibercriminosos possuem para publicar conteúdos maliciosos por lá.

Fonte: Kaspersky
O uso de dispositivos informáticos na educação já não é recente no cenário brasileiro (ALMEIDA, 2009).

Sua viabilidade parte das possibilidades como mediadora em potencial para a prática do ensino e aprendizagem. A Internet , por sua vez, vem sendo um grande canal de comunicação e também uma ferramenta em potencial para criar e desenvolver ideias, conhecimento e valores em prol do desenvolvimento humano. Com a informática ocupando cada vez mais o espaço no ambiente educacional, novas tecnologias surgem com o intuito de aperfeiçoar o sistema de ensino. Hoje é indiscutível a importância da informática na educação, mas é preocupante a maneira descontrolada como vem sendo utilizada.

A falta de recursos financeiros é um grande problema para escolas públicas brasileiras, muitas vezes podendo privá-las de dar aos alunos a segurança que necessitam. Por essa razão este trabalho mostra uma solução viável para a questão da segurança na Internet no laboratório de informática destas instituições de ensino.

A solução encontrada foi a utilização dos sistemas ALT LINUX SCHOOL desenvolvidos pelo governo russo para resolver problemas de segurança em suas escolas. Mesmo sendo russo, os sistemas possuem tradução para vários idiomas, principalmente para o PT-BR ABNT2, que é o padrão mais utilizado no Brasil.

Sobre a Alt Linux

Conforme especificado na documentação criada pela Alt Linux Team (2010), ALT LINUX é uma equipe de 200 desenvolvedores de software livre residentes na Rússia, Bielorrússia, Ucrânia, Cazaquistão, Estônia e Israel. Esta equipe coordena projetos e fornece soluções de implementação e suporte. Com o propósito de resolver problemas de usuários, os softwares desenvolvidos pela ALT LINUX são soluções baseadas em software livre, que se distinguem por um alto grau de confiabilidade e segurança, simplicidade e atualizações de acessibilidade com interface simples.

A ALT LINUX possui um repositório de softwares denominado “Sísifo” que é atualizado diariamente. Os sistemas ALT LINUX são desenvolvidos tanto para usuários iniciantes quanto para avançados, fornecendo um ambiente de trabalho integrado.

Alt Linux 5.0.2 School Server

Conforme especificado na documentação desenvolvida pela Alt Linux Team (2010), o ALT LINUX 5.0.2 SCHOOL SERVER é um sistema gratuito baseado em Linux desenvolvido pela ALTLINUX especificamente para servidores de escolas. O sistema fornece uma infraestrutura completa para uma rede de dados escolar voltados para o alto desempenho e segurança. Além de possuir serviços para fazer o controle de acesso na Internet , o sistema possui outros serviços, incluindo servidor de arquivos, de impressão, de DHCP , de instalação via rede, DNS , VPN, de e-mail e muitos outros. Sua configuração é muito fácil, pois é feita através de interface WEB , qualquer administrador iniciante ou até mesmo uma pessoa que não possui experiências com este tipo de sistema poderá configurá-lo sem nenhuma dificuldade.

Alt Linux 5.0.2 School Junior

Trata-se de um sistema operacional gratuito, com base Linux, desenvolvido com foco em escolas e instituições de ensino. Este sistema já vem com um pacote de programas voltados para o desenvolvimento escolar, com editores de texto, editores de imagem, browser e muitos outros. Existe também a possibilidade de instalar novos programas armazenados no enorme banco de softwares do ALT LINUX por meio da Internet . Possui um painel de controle denominado Alterator , onde todas as configurações do sistema são centralizadas nele, tornando-se assim de fácil configuração. A configuração básica para sua instalação é de no mínimo 256 MB de RAM , espaço de disco de 3 GB , processador Pentium III ou superior e leitor de DVD . 

Testes Realizados

Foram realizados testes em uma instituição de ensino para uma proposta de implementação de uma política de controle de acesso à Internet. Um aluno foi usado no teste para a utilização dos sistemas. O resultado foi muito positivo quanto a segurança proporcionada pelos sistemas.

Neste caso em questão, foram utilizados somente os serviços do ALT LINUX 5.0.2 SCHOOL SERVER necessários para o controle na WEB . O serviço de diretórios OpenLDAP vai de encontro aos fundamentos do RBAC , pois em sua base de dados armazenam-se dados de forma hierárquica de grupos de usuários e seus usuários com suas respectivas informações pessoais como senhas, e-mails, telefone, etc. No proxy Squid , mesmo que sua filtragem padrão é por endereços URL, foi possível adaptá-lo com filtragem por palavras editando seu arquivo em modo texto. Outra qualidade desta ferramenta são os registros de acessos dos usuários nele autenticados, onde é gravada cada conexão realizada em um servidor na Internet . O firewall IPTABLES bloqueou todo tráfego de dados não autorizados em sua configuração, dando então proteção à rede e aos computadores da sala de informática.

No sistema para desktop houve a tentativa de acesso a conteúdos indevidos, sendo que o sistema bloqueou-os com êxito. Ao tentar acessar as configurações mais importantes do sistema (rede, firewall , sistema, usuário e interface gráfica), que são centralizadas no centro de configuração do sistema ( Alterator ), o sistema solicitou a senha do administrador para que o usuário comum não obtivesse sucesso no acesso. O aluno efetuou download de um programa aleatório e quando foi instalá-lo novamente a senha de administrador foi solicitada. Este bloqueio de instalação é de suma importância para impedir que vírus e programas impróprios possam ser instalados no sistema.

Conclusões

Os sistemas gratuitos ALT LINUX 5.0.2 SCHOOL SERVER e ALT LINUX 5.0.2 SCHOOL JUNIOR demonstraram possuir todas as ferramentas necessárias para efetuar controles de segurança em uma rede de dados gratuitamente. Basta configurá-los conforme as especificações descritas na política de controle das instituições escolares onde forem implementados para se ter as vulnerabilidades controladas facilmente.

Os resultados obtidos na análise mostraram que uma política de segurança em companhia da utilização dos sistemas ALT LINUX são muito eficientes em controlar qualquer ação não autorizada do aluno, desde a filtragem de conteúdos na Internet até o bloqueio de acesso às configurações importantes do sistema e instalação de novos programas.

A segurança de alto potencial com muita facilidade na configuração é um fator muito importante a ser relevado, pois não possuir um gerente especializado em computadores poderia ser um grande problema para uma instituição, entretanto, com um simples treinamento dado a um funcionário da escola, já foi o necessário para que aprendesse a utilizá-lo.

A satisfação da direção foi muito grande com o resultado final dos testes realizados, principalmente pela solução dos problemas encontrados no laboratório de informática da escola sem precisar investir em softwares pagos para obter a proteção dos seus alunos.



Fonte Original:
Orientador: Eduardo Alves Moraes - FATEC – Campus Ourinhos/SP.

Autores: Douglas Henrique Ribeiro da Silva, Samuel Apolo Ferreira Lourenço - FATEC – Campus Ourinhos/SP.

Fonte do fórum: Gabriel Silva

sexta-feira, 10 de abril de 2015

ThroughPut é a palavra modernosa americana para a taxa de transferência de dados de uma rede. É a medida de banda que sua rede (ou sua máquina) irá consumir. É importante saber qual o throughput máximo de sua rede por vários motivos, dentre eles, os provavelmente mais importantes são:

Revisão do plano de internet:

Existem duas possibilidades, ou sua rede está estourando a capacidade do seu link (Throughput maior, igual ou quase chegando na capacidade máxima do link), ou você tem um link muito maior que a sua necessidade (Throughput menor que 50% da capacidade do link).

A primeira possibilidade é bem óbvia. Você tem uma rede grande, em termos de utilização, e um link chinfrim. Claro, é sempre bom usar o bom senso nessas horas para saber se sua rede tem condições de consumir o que está consumindo. Se sua rede está com o Throughput elevado demais para o tamanho e a utilização que ela teoricamente deveria ter, você pode estar com máquinas bichadas na sua rede. Vamos ver isto mais abaixo.

A Segunda possibilidade pode parecer neurose, mas é importante. Porque deveria me preocupar se meu link está acima de minha necessidade? Porque, como diria Tio Sam, Link is Money, Oh yeah! Você esta pagando por algo que não esta utilizando! A não ser que hajam planos de expansão da rede (ou que você curta deixar aqueles torrents baixando na madrugada usando o link da firma... HÁ!), não há porque ter um link maior que sua necessidade. Quem sabe economizando na conta de internet não sobra pra trocar aquele K6-II quinhentão que tá lá de Samba server há 12 anos hein? #FIKDIK

Revisão do hardware de firewall:

Muito importante. As vezes o seu link está OK, sua rede está OK, mas seu firewall não está dando conta do recado. Isto irá agargalar a sua rede. Mesmo que você tenha um link de fibra ótica de 50 Gbps ligado ponto-à-ponto com a US NAVY, se seu firewall não aguentar o tranco, pode parecer que você está navegando pelo 3G da TIM. Firewalls Profissionais (UTMS, Appliances e bla bla bla) geralmente informam em suas páginas oficiais seus Throughputs máximos. Se seu firewall é em cima de Linux, com IPtables, você vai ter que monitorar a carga média (Load Average) dele. Não vou entrar em detalhes aqui sobre como fazer isto, mas deixo a dica: Firewall é firewall, servidor web é servidor web, servidor de e-mail é servidor de e-mail e assim por diante. Nunca é bom misturá-los na mesma máquina OK? 

Detecção de máquinas "bichadas" na sua rede:

É muito comum de se ver redes pequenas que deveriam ter baixas taxas de transferência de dados consumindo uma quantidade enorme de banda. Isto pode acontecer por vários motivos. Um deles, bem provável de ocorrer em redes windows, é o aparecimento de vírus. Vírus, Spammers, DDOS são coisas que quando infectam uma máquina ou uma rede, aumentam muito o Throughput dela. Outro causa pode ser uma placa de rede com problemas, enviando pacotes repetidos, por exemplo, dobrando seu throughput. Ainda pode haver máquinas com placas de rede defeituosas, não respondendo às conexões que fazem com que todo o pacote enviado à ela seja enviado novamente, aumentando a latência da rede.

Como calcular o Throughput?

O Throughput médio de uma rede é calculado pelo tamanho da janela TCP das máquinas (No Windows, o padrão é 64k, veja na Wikipedia) dividido por sua latência. Numa rede comum, temos uma janela TCP de 64KB, precisamos converter isto para bits para poder calcular, o que vai nos dar, mais ou menos 524,288. dividimos isto pela latência da conexão (O "time" que aparece no ping, lembre-se de fazer o teste de uma máquina da rede, e não do firewall). Numa conexão comum, em uma rede 10/100, o ping para o google me retornou 15ms de latência, então, o calculo ficaria 524.288/0.015 = 34952.53, dividimos isto por 1KK (um milhão, se você não joga, ou não conhece ninguém que jogue tíbia) para termos o resultado em megabits por segundo. 34952.53/1000000 = 0.035Mbps (arredondado). Este é o throughput de uma máquina de sua rede. Multiplique este valor pelo total de máquinas de sua rede e você terá o Throughput total dela, por exemplo, se sua rede tem 150 máquinas, 0.035*100 = 3.5Mbps.

Este valor é o máximo que sua rede poderá consumir de banda, é lógico, se as máquinas forem todas iguais. Tudo em uma rede pode aumentar a latência de uma máquina e assim, aumentar seu throughput, cabeamento confuso, com mal contato, etc. Fique atento a isto!           


Belo post feito pelo Natan, colaborador aqui do blog. Postado lá no antigo fórum da BS.     

quinta-feira, 9 de abril de 2015

Criptografando com o S-DES

Seguindo com a série de criptografia, neste post vamos criptografar uma mensagem em texto claro com o algoritmo S-DES. No testo anterior vimos que o algoritmo necessita de subchaves, e vimos também o algoritmo de como são geradas.

Neste texto vamos ver como funciona a função complexa (fK) do algoritmo S-DES, e no próximo post, vamos fazer o processo completo da criptografia pelo algoritmo.

A função complexa tanto do DES quanto do S-DES é similar, a diferença está no número de rodadas. Veja abaixo o conteúdo, de uma forma simplificada, da função complexa.


As operações são similares as que vimos no algoritmo de geração de subchaves, então não tem necessidade de explicar novamente cada uma das operações.

O algoritmo representado na imagem é o DES, que possui 16 rodadas, chaves de 56 bits e blocos de 64 bits. Sabemos que no caso do S-DES temos apenas 2 rodadas. Caso não se lembra confira a imagem abaixo do S-DES:



Pode-se ver no algoritmo que a primeira rodada é onde a chave K1 entra, e a segunda rodada onde a chave K2 entra.

Se expandirmos a função fK temos as seguintes operações:



Na imagem acima podemos ver a Permutação Inicial (IP), quais operações compõe o fK (E/P, S0, S1, P4 e XOR),  o funcionamento do SW, uma segunda função fK com a segunda chave, e por fim a Permutação Final (IP -1).

As caixas E/P, S0, S1 e P4 funcionam do mesmo modo que as caixas P10, P8 e LS-1 do texto anterior.

Veja abaixo a organização das caixas:




As caixas E/P e P4 são simples, como as outras já apresentadas. Basta substituir a entrada de acordo com a ordem apresentada na imagem acima. Por exemplo, se recebermos como entrada na caixa E/P o número (binário) "1101", na saída teremos os bits dispostos de acordo com a imagem do E/P. Neste caso seguiremos a ordem 4º bit, 1º bit, 2º bit, 3º bit, 2º bit, 3º bit, 4º bit e por fim o 1º bit novamente. Neste caso a saída seria "11101011".

Já no caso da caixa S0 e S1, comumente chamadas de Caixas-S, são um pouco diferentes. A entrada da caixa-S é sempre 4 bits. O primeiro e o último bit representam a linha na matriz e o segundo e o terceiro bit representam a coluna da matriz. O resultado das coordenadas em decimal representa a saída da caixa-S, que deve ser convertido em binário.

Vamos a um exemplo. Vou usar aqui como entrada da caixa S0 o número "1010". Sabendo que o primeiro e quarto bit formam a linha (1º = 1, 4º = 0, ou seja, 10 binário = 2 decimal), e o segundo e terceiro formam a coluna (2º = 0, 3º = 1, ou seja, 01 binário = 1 decimal), temos as coordenadas da matriz.

O valor na posição (2, 1) é 2, ou seja, a saída da caixa S0 neste exemplo é 2 decimal = 10 binário.

Lembre-se que as linhas e colunas começam em 0 e não 1. As 4 linhas/colunas são 0, 1, 2 e 3.

Seguindo com o algoritmo, após a permutação inicial (P1) de 8 bits, os 8 bits são divididos em 2 blocos de 4 bits, a primeira metade vai para o fim do algoritmo para o XOR e a segunda metade para a caixa E/P e para o SW para a próxima rodada. A saída de 8 bits do E/P passa por um XOR com a primeira subchave e seu resultado é dividido e 2 blocos de 4 bits que entrarão nas caixas-S S0 e S1.

Os 2 blocos de 2 bits como saída das caixas-S entram na caixa P4. O resultado de 4 bits da saída de P4 passa por um XOR com a primeira parte do bloco que foi dividido na permutação inicial (IP), que ainda não tinha sido usado.

A saída do XOR e o segundo bloco de 4 bits da permutação inicial entram no SW, que inverte a ordem das entradas e usa na segunda rodada da função complexa.

Após realizar novamente as operações da função complexa, sua saídas vão para a permutação final (IP -1) e a saída desta permutação é o texto cifrado.

Neste caso a teoria é muito mais difícil que a prática, mas a teoria é necessária. Caso não tenha entendido alguma coisa, releia e acompanhe o texto com as imagens de referência, seguindo o fluxo do algoritmo.

No próximo texto vamos fazer todo o processo de criptografia, usando as subchaves que criamos no texto anterior.

Caso não tenha entendido alguma coisa poste sua dúvida aqui no post ou no grupo do Facebook que responderei e explicarei novamente se for necessário.
Subscribe to RSS Feed Follow me on Twitter!