quarta-feira, 8 de abril de 2015

Todos os dias recebemos mensagens sobre como arranjar “hacks” ou “cheats” para jogos online, então, aqui vamos tentar explicar o porquê de, no geral, ser quase impossível tal coisa e normalmente acabam a ficar sem as suas contas.



Servidor – Esta parte é responsável por disponibilizar o conteúdo

Cliente – Esta parte é responsável por requisitar o conteúdo ao Servidor, e entregá-lo ao jogador, na maior parte dos casos no próprio browser.

Código de jogo no Servidor

O código de jogo no Servidor é quando o motor de jogo fica alojado num Servidor. Para cada cada pedido do Cliente um código é executado no Servidor que resulta no envio do resultado para o Cliente em formato HTML. Normalmente este tipo de jogo tem uma performance mais lenta devido a restrições dos próprios servidores.

Este código é quase impossível de ser alterado pelo jogador (e muitas vezes pelos próprios hackers), pois ele reside num servidor protegido cujo acesso é muito restrito.

Código de jogo no Cliente


O código de jogo no Cliente é quando o motor de jogo fica alojado no browser do jogador. O código é executado no Cliente apenas. O utilizador consegue facilmente ver o código fazendo apenas “Ver – Código da página”. Este código é muitas vezes usado em formulários de validação como entrada de texto (se está vazio ou não), validação de endereços de email, etc. É mais rápido que executando o mesmo no Servidor.

Existem muitos programas por aí que dizem ser capazes de fazer hacks em jogos como o “Clash of Clans”, são todos falsos, porquê? Aqui porquê:

Qualquer programa que diga fazer “Hack de Gemas” não vai funcionar porque a informação está alojada no Servidor, por isso, editar qualquer informação no Cliente teria que ser posteriormente confirmada pelo servidor. Por outras palavras, não existe forma de “hackear” estes jogos.

E se, por alguma razão, alguém descobriu uma forma de o fazer, e essa informação chegou ao público, por norma estes erros são corrigidos no próprio dia ainda. Este tipo de jogos são desenhados de forma a que o Jogador não consiga passar do Cliente para o Servidor. Para o fazer, teria que ganhar acesso ao servidor onde as informações do jogo estão guardadas, e modificar de forma a ganhar algo. Isto é quase impossível de ser fazer de forma automática ou mesmo manual. Era o mesmo que tentar conseguir informação de crédito de um website como por exemplo a Amazon. É extremamente difícil e improvável que tal coisa seja feita, e é ilegal. Mas, fugas acontecem de tempos em tempos.

terça-feira, 7 de abril de 2015

Gerando subchaves com S-DES

Vamos então a uma prática usando o algoritmo Simplified DES.

O DES é um algoritmo complexo demais para se trabalhar neste primeiro momento, então estamos usando o S-DES. A imagem abaixo é a mesma do post passado, coloquei ela aqui apenas para refrescar a memória.


Vimos no texto passado, que nesta imagem, K1 e K2 representam chaves. Vamos ver hoje que essas chaves são na verdade subchaves derivadas da chave usada na entrada. Na imagem acima vemos uma chave de 10 bits na entrada do algoritmo. Essa chave passa por diversas operações e produz como saída 2 subchaves.

Para facilitar a explicação vamos esquecer completamente das partes de cifragem e decifragem. Na imagem abaixo temos as mesmas operações da geração das subchaves da imagem acima, mas sem o resto do algoritmo.


Entre as duas imagens a única diferença de nomes que pode confundir é o LS-1 e o LS-2, que são o Shift da primeira imagem.

Só para lembrar também, os algoritmos usados atualmente tem blocos muito maiores que este que estamos usando para aprender. Aqui, blocos de 8 bits com chaves de 10 bits estão sendo usados.

Agora vamos ver o que cada uma dessas caixinhas quer dizer:




OK! Essas caixinhas tem números, mas o que isso realmente quer dizer? Simples, essas 3 caixinhas são operações de substituição. Estes números representam a posição do bit que será substituído. Vamos a prática que é mais fácil de entender.

Para esse e futuros exemplos com o S-DES vamos usar como chave os bits "1001101011". Muito importante! Lembre-se desse número, pois vamos usar ele como chave daqui para frente. Também é importante ressaltar que estamos trabalhando com binário, e é bom você ter uma noção disso para poder seguir em frente.

Agora com nossa chave de 10 bits em mãos vamos a geração de subchaves. Começando de cima para baixo, a primeira caixinha que passamos com os 10 bits é a P10. Vamos então fazer a substituição de acordo com a tabela acima do P10.  Devemos colocar os bits de nossa chave na ordem mostrada ali, ou seja, 3º bit, 5º bit, 2º bit, e assim por diante.

Ao passar pelo P10 nossa chave deve virar "0101111100" se você fez as operações corretamente.

Feito isso o próximo passo são duas caixas LS-1. Pode-se interpretar pela imagem que a chave de 10 bits é dividida em 2 chaves de 5 bits e cada uma passa por uma caixa diferente.

Fazendo o mesmo tipo de substituição, mas dessa vez usando a caixa do LS-1, vamos ter "10110" de um lado e "11001" do outro.

O próximo passo pode ser um pouco mais complicado de entender. Se você olhar para a imagem do algoritmo de geração de subchaves, temos que fazer 2 coisas agora, alimentar o P8 com o resultado das caixas LS-1 e "ao mesmo tempo" encaminhar estes resultados para a LS-2. Vamos fazer primeiro a caixa do P8.

Até aqui temos "10110" e "11001". Vamos passar isso pela caixa P8 e como resultado obter "11110010". De acordo com a imagem do algoritmo, este resultado é a primeira subchave, aqui chamada de K1. Note que as subchaves tem 8 bits e não 10 bits.

Agora sim vamos para as caixas LS-2 com as duas saídas de LS-1. Neste caso a caixa que usaremos é a mesma de LS-1, já que é a mesma operação. Vamos obter como resultado "01101" e "10011".

Passando isso para a próxima caixa, a P8, vamos ter na saída "11000111", nossa segunda subchave K2.

Guarde a chave e as subchaves para o próximo texto, que vamos cifrar um pequeno bloco de 10 bits com o S-DES.

segunda-feira, 6 de abril de 2015

Um baita post que eu mesmo publiquei no finado fórum da BS.

Só vou deixar um disclaimer aqui antes do post, nem sempre as técnicas descritas aqui vão funcionar, são muitos fatores que envolvem, até mesmo sua intonação de voz pode estragar tudo. Sem comentar que você pode estar completamente enganado. Suas ações são sua responsibilidade, não nos culpe por qualquer merd* que você possa se meter com isso. :D

               

As técnicas abaixo devem ser usadas caso você esteja muito desconfiado da pessoa e ela se recusa a confessar.


1. Céu e inferno: Esta técnica cria uma espécie de fobia na pessoa e a única saída é confessar a verdade para você. Aqui usamos as forças que moldam o comportamento humano: Dor e o Prazer nos seus limites para nos revelar a verdade. Exemplo de uso:

Se você acha que sua colega de trabalho está roubando o material de escritório da empresa. Você falaria: "Fulana, já sei da verdade. Sei também que você já está se arrependendo de ter feito isso. Podemos resolver isso agora. Você pode me contar tudo e esquecemos isso para sempre. Ninguém mais ficará sabendo e você continuará no seu emprego.

Mas, pode escolher um caminho mais doloroso: Posso ir até nosso chefe e falar para ele. Você sabe que isso seria demissão na certa, não é? Além do mais sua imagem ficaria suja. Imagina todos seus colegas comentando sobre o que você fez? Portanto, para o seu bem, me confesse agora e terminamos com isso de uma vez por todas".

Se vincularmos dor intensa e insuportável à idéia de mentir e prazer imediato à idéia de falar a verdade, ela só terá uma saída: falar a verdade!


2. Curto circuito: Com essa técnica você cria uma confusão mental na pessoa, enquanto implanta sugestões diretamente no inconsciente. Ela ficará confusa com a frase de abertura e entrará num leve transe enquanto você lança uma frase com comandos implícitos (estão em negrito) que serão completamente absorvidos pelo seu inconsciente. Exemplo de uso:

"Fulano (a), você pode muito bem acreditar nas coisas que pensava que sabia,  e, se você quer... dizer a verdade... ou... não quer dizer a verdade...a decisão é sua. Portanto, me... diga a verdade..., agora!"

Essa sentença é registrada pelo inconsciente em sua totalidade. Os comandos, "dizer a verdade", "diga a verdade" (Muito importante: o inconsciente não registra uma negativa - o 'não') e "agora" são enviados diretamente para o inconsciente, sem a pessoa - a parte consciente - se dar conta e mostrar resistência.

Outro exemplo:

Fulano (a). Eu não quero que você diga nada, a menos que, realmente, queira. E entendo que você já esqueceu o que havia pensado em querer, não é? Se estiver pensando consigo mesmo algo como... eu quero dizer à você, então simplesmente... diga ... Quando perceber que... esta é a decisão certa... você... irá me dizer a verdade... agora!

Importante:

• Antes e depois do comando - que está em negrito - você deve dar uma pausa

• Ao dar o comando, aumente um pouco a voz e utilize uma tonalidade descendente.

• Gesticule com as mãos ao dizer o comando.


Você também pode usar a técnica do curto circuito, com o intuito de apenas interromper a linha de raciocínio de uma pessoa. Utilize as frases abaixo quando quiser tomar o controle de uma conversa, ou temporariamente confundir a pessoa, enquanto você reúne seus próprios pensamentos. Abaixo você tem algumas frases que desenvolvi. Não esqueça de gesticular enquanto fala. Use com moderação. Se usar várias delas seguidas, poderá provocar uma forte confusão mental na pessoa.

• Porque você ainda acredita em algo que duvidava?

• Você, realmente, ainda acredita nas coisas que pensava que sabia?

• Você duvidaria menos se acreditasse mais nas coisas que imaginava que sabia?

• Você não lembra do que havia esquecido?

• Se acreditasse mais nas coisas que falou, duvidaria menos das coisas que escutou?

• Você acredita nas coisas que já sabia?

• Como pode acreditar nas coisas que pensa que sabia?

• Essa pergunta significa que você ainda duvida das coisas que imaginava serem verdadeiras, não é?

• Você acredita mesmo, que já sabia disso?

• Porque me perguntou algo que já sabia?

• Se você já acreditava nisso, porque pensou que têm dúvidas?

• Se você não esperava que eu acreditasse numa coisa dessas, porque me contou?

• Você está concordando com uma coisa que já sabia, não é?

• Como pode concordar de algo que acreditava ser mentira, antes mesmo de aceitar a verdade?

• Quanto mais você acredita nas coisas que duvidava, mais concorda com a possibilidade de que tudo não passou de uma grande mentira?


3. Criações do inconsciente: Esta técnica utiliza comandos implícitos de um modo totalmente novo. Você vai oferecer uma sugestão que cria uma ação perceptível. Exemplo de uso:

"Fulana, eu não estou dizendo que você deverá ...enrijecer seu corpo... se ...estiver mentindo" Se ela for mesmo culpada, o inconsciente se encarregará de dar uma resposta.


Créditos : Dr. David J. Lieberman

sexta-feira, 3 de abril de 2015

OK, esse vídeo é antiguinho já, pelo menos 2 anos já, mas sempre gosto de ver como o cara consegue facilmente obter informações de uma empresa.

Se já são poucas que se preocupam com Segurança da Informação de uma forma geral e estão preparadas, então imaginem quantas estão preparadas para ataques de engenharia social, muito menos.

Vou deixar ai então um video do mestre Mitnick mostrando como se faz na DEFCON:



Caso 100% real se você não percebeu. Necessário um conhecimento razoável de inglês para entender, acho.

quinta-feira, 2 de abril de 2015

Data Encryption Standard - DES

O algoritmo DES era inicialmente um projeto da IMB, chamado de LUCIFER, e olhem só, o projeto era dirigido por ninguém mais ninguém menos que Horst Feistel, nome familiar? :)

Como já comentei diversas vezes antes, a maioria destes algoritmos mais famosos tem seu código fonte público. Normalmente estes algoritmos usados hoje em dia são os ganhadores, ou os que mais se destacaram nas seleções do NIST dos projetos para um padrão nacional de criptografia, obviamente nos Estados Unidos, mas que foi amplamente adotado e teve presença mundial (ainda tem em alguns lugares).

A IBM então enviou seu projeto LUCIFER para a seleção do NIST, que na época se chamava NBS, estamos falando lá dos anos 70. O projeto foi o escolhido para se tornar o padrão nacional de criptografia para criptografar informações e documentos menos sigilosos.

O projeto foi muito criticado, várias suspeitas de enfraquecimento do algoritmo foram levantadas. Não querendo entrar em teorias da conspiração ou assuntos de espionagem (o que já é tecnicamente público) mas já entrando, no desenvolvimento do DES a NSA convenceu a IBM de que a chave poderia ser bem menor. Outra modificação que alegam é a alteração das Caixas-S do algoritmo.

Caixa-S é uma parte fundamental de um algoritmo de criptografia, a caixa-S é o bloco que mantém as operações do algoritmo.

Até teve um relato do Alan Konheim, desenvolvedor do DES:

"Enviamos as Caixas-S para Washington para avaliação, e quando voltaram estavam completamente diferentes."

Algum tempo depois, quando o poder computacional cresceu, se tornou simples quebrar o DES através de bruteforce. Para tentar resolver o problema foi criado o Triple DES, ou 3DES, mas outros problemas apareceram, o que fez o DES perder um pouco de espaço para outro algoritmo que veremos mais a frente, o AES.

Simplified DES


Agora sim vamos falar um pouco do algoritmo. Pare sua leitura e vá procurar no google sobre o algoritmo DES. Vou facilitar para você, apenas clique aqui.

É um algoritmo extremamente complexo né? Não temos como analisar tudo aquilo no ponto que estamos aprendendo como funciona a coisa. Para facilitar para todo mundo, inclusive seus alunos, o professor Edward Schaefer criou uma versão simplificada do DES, o S-DES. Com ele seus alunos poderiam estudar um algoritmo de criptografia de verdade e atual de uma forma mais simples. A funcionalidade básica é a mesma, mas o tamanho das chaves e blocos é menor para simplificar como o próprio nome já diz.

Este algoritmo usa blocos de 8 bits e chave de 10 bits para produzir um texto cifrado de 8 bits. É claro que com isso o algoritmo seria quebrado em segundos, por isso ele é apenas usado para questões de estudo.

Vamos agora dar uma olhada em como ficou o DES neste modelo simplificado:


Algumas coisas da imagem já vimos em textos passados, como por exemplo o uso de chaves (K1 e K2 nesse exemplo), algumas pode-se deduzir como entrada e saída, e algumas vou explicar. Não se preocupe se a explicação agora for superficial e não ajudar muito, nos próximos textos vamos ver na prática isso "funcionando" para ter uma noção do que é cada coisa.

IP = Permutação inicial
Fk = Função complexa (função necessária de acordo com a cifra de Feistel)
SW = Permutação simples
P10 = Permutação com 10 bits
P8 = Permutação com 8 bits
Shift = Substituição
IP-1= Permutação final ou permutação inicial inversa

Então aguardo você para o próximo texto para brincarmos um pouco com o algoritmo S-DES.

Até a próxima!

quarta-feira, 1 de abril de 2015

Um detento que estava na prisão por múltiplas acusações de fraude aparentemente voltou a usar seus velhos truques. Neil Moore, 28, obteve um celular ilícito, fingiu ser funcionário do tribunal e enviou um e-mail com instruções falsas de fiança para a equipe da prisão – e foi solto.

Segundo a BBC, Moore estava detido na prisão de Wandsworth, Reino Unido, por fingir ser funcionário dos bancos Barclays, Lloyds e Santander, convencendo organizações a lhe darem quase US$ 3 milhões.
Em sua artimanha mais recente, que um juiz de primeira instância descreve como “engenhosa”, Moore configurou um domínio web falso muito parecido com o endereço oficial do tribunal. Ele registrou o site falso em nome de um investigador; o endereço e detalhes de contato eram dos Tribunais Reais de Justiça.
Moore usou o domínio para enviar e-mails à prisão com instruções para a sua soltura. O engano foi descoberto três dias depois, quando procuradores foram entrevistar o detento, apenas para descobrir que ele não estava mais lá.
E onde está Moore? Bem, parece que ele se sentiu culpado, porque se entregou apenas três dias depois de descobrirem sua ausência. Ele será sentenciado em 20 de abril por oito crimes de fraude e uma acusação de fuga.
Fonte: Gizmodo
Subscribe to RSS Feed Follow me on Twitter!