Aprenda Criptografia e Segurança

  • Página Inicial
  • Contato!
  • Tudo sobre Criptografia e Segurança Parte 1!
  • Tudo sobre Criptografia e Segurança Parte 2!
  • Tudo sobre Criptografia e Segurança Parte 3!
  • Tudo sobre Criptografia e Segurança Parte 4!
  • Tudo sobre Criptografia e Segurança Parte 5!
  • Tudo sobre Criptografia e Segurança Parte 6!
  • Tudo sobre Criptografia e Segurança Parte 7!
  • Tudo sobre Criptografia e Segurança Parte 8!
  • Tudo sobre Criptografia e Segurança Parte 6

    O que é SSL e o Certisign

    Novas tecnologias estão sendo cada vez mais usadas e implementadas para controles de acesso, tais como assinaturas digitais que garantes que o acesso vem mesmo da pessoa em questão.

    A segurança também é um fator decisivo na aquisião e retenção de possíveis clientes dos vários sites online.

    A segurança na transmissão de dados é um dos empecilhos para concretização de compras na rede pelo internauta e na divulgação de seus dados pessoais, como RG, CPF e número do cartão de crédito.

    Um dos recursos mais utilizados para realização de negócios na internet entre comerciantes e clientes é a criptografia.

    Um recurso de segurança muito popular é o Secure Socket Layer (SSL), comercializado pela Certisign, no Brasil. Esse protocolo garante a privacidade da transação, pois as informações transmitidas são criptografadas e somente o usuário e o servidor da empresa envolvidos no processo podem decodificar seu conteúdo.

    O link do Certisign é esse: https://www.certisign.com.br/

    Secure Socket Layer (SSL) é um padrão global em tecnologia de segurança desenvolvida pela Netscape em 1994. Ele cria um canal criptografado entre um servidor web e um navegador (browser) para garantir que todos os dados transmitidos sejam sigilosos e seguros. Milhões de consumidores reconhecem o "cadeado dourado" que aparece nos navegadores quando estão acessando um website seguro.

    Quando escolher ativar o SSL no seu servidor web você terá que responder algumas questões sobre a identidade do seu site (ex. a URL) e da sua empresa (ex. a Razão Social e o endereço). Seu servidor web então criará duas chaves criptográficas - a Chave Privada (Private Key) e a Chave Pública (Public Key). Sua Chave Privada não possui esse nome à toa - ela deve ser mantida privada e segura. Já a Chave Pública não necessita ser secreta e deve ser colocada na CSR (Certificate Signing Request) - um arquivo de dados contendo os detalhes do site e da empresa. Você deverá enviar esta CSR através do formulário de solicitação no site da certificadora, seus dados serão validados e se estiverem corretos seu certificado digital será emitido.

    Seu servidor web irá associar o certificado emitido com a sua Chave Privada. Seu servidor irá estebelecer um link criptografado entre seu website e o navegador do seu consumidor.

    Em resumo, SSL é um tipo de segurança digital que permite a comunicação criptografada entre um site e um navegador. Atualmente a tecnologia se encontra depreciada e está sendo completamente substituída pelo TLS.

    TLS é a sigla de Transport Layer Security, ou seja, um protocolo de segurança cuja finalidade é facilitar a segurança e privacidade de dados de dados na internet.

    Isso ocorre a partir do momento em que o TLS criptografa a comunicação entre os computadores e o servidor de hospedagem no momento em que um site é acessado. Contudo, sua aplicação também pode ser feita para criptografar mensagens de e-mail, Voip, entre outros meios de comunicação.

    HTTPS é o uso do HTTP protegido por TLS/SSL.

    Existem outros sites que geram certificados SSL para sites, incluindo as próprias hospedagens, que podem ser pagas ou gratuitas, esse site fala como migrar um site para HTTPS: https://rockcontent.com/blog/como-migrar-seu-site-para-https/

    Como Instalar o Nmap e Zenmap no Linux

    O Nmap é um software scanner de rede que é empregado para descobrir portas, serviços, computadores ativos, etc., ele faz isso enviando determinados pacotes pra rede e avaliando as respostas recebidas.

    Para instalar ele no Linux, digitamos simplemente esses comandos:

    
    sudo apt-get update
    
    sudo apt-get install nmap
    
    

    Para usarmos ele, no terminal digite nmap 192.168.1.1 (substituindo pelo IP/site desejado).

    Para instalarmos a interface gráfica Zenmap, digite esse comando:

    
    sudo apt-get install zenmap
    
    

    Caso dê algum problema, baixe o código-fonte (tar.bz2) e pegue a pasta referente ao Zenmap, e execute o arquivo de mesmo nome, com o Python.

    Indo nos programas do sistema, procure o Zenmap e execute ele como root.

    Na caixa do alvo, colocamos o IP ou site desejado, o tipo de scanner. Colocamos o mesmo endereço do roteador como exemplo e um scan rápido (quick scan).

    PS: Podemos digitar o comando no Zenmap também.

    Também existe Nmap e Zenmap para outros sistemas Linux, além do Windows e Mac. Podemos baixar essas versões aqui: https://nmap.org/download.html

    O que é um Backdoor?

    O backdoor é um recurso utilizado por diversos malwares para garantir acesso remoto ao sistema ou à rede infectada. Para esse fim, os códigos maliciosos podem explorar falhas críticas não documentadas existentes em programas instalados, falhas características de softwares desatualizados ou do firewall, para abrir portas do roteador. Alguns backdoors podem ser explorados por sites maliciosos, através de vulnerabilidades existentes nos navegadores. As falhas podem garantir acesso completo ou parcial ao sistema por um cracker, sendo utilizadas para a instalação de outros malwares ou para o roubo de dados.

    Em outras palavras, backdoor é um método de entrada deixado pelo cracker para que ele possa acessar livremente o sistema novamente com mais facilidade, já que ele já o explorou anteriormente.

    O NetBus é um exemplo clássico de backdoor, sendo usado por diversos crackers na década de 1990 e início do século XXI. Nos últimos anos, uma das pragas do tipo mais disseminadas é o backdoor Brifost. Outros famosos backdoors são o c99Shell, WebShell e RST.

    Para proteger-se, mantenha atualizados os sistemas e os módulos que compõem todos os serviços, e deixe o firewall ativo. Outra forma de proteção de computadores pessoais é o IDS, sistema de detecção de intrusão, na sigla em inglês.

    O que é o Shouder Surfing?

    O surfe de ombro, ou shoulder surfing em inglês, é uma técnica utilizada por pessoas mal-intencionadas para roubar informações valiosas de uma determinada pessoa ou organização.

    Essa prática conhecida como visual hacking, é um ato utilizado para coletar informações por meios visuais e que não requer habilidades com computadores ou qualquer outro tipo de tecnologia.

    Imagine o seguinte cenário, você precisa da segunda via de um boleto e entra em contato com a empresa para solicitar, imediatamente será necessário confirmar algumas informações para emitir o documento.

    Enquanto você fornece os dados, alguém por perto pode escutar sua conversa. Mesmo que não esteja ouvindo a pessoa do outro lado da ligação é possível deduzir a pergunta através da sua resposta. Após essa coleta de informações, o mal-intencionado pode se passar por você, com o seu nome, CPF, telefone, e-mail e endereço. Em posse destas informações já é possível ter uma conduta maliciosa, fingir ser outra pessoa e fraudar algum serviço oficial que seja utilizado por você com frequência.

    Este exemplo esclarece as possibilidades de fraudes que podem ocorrer. Esta solicitação da segunda via do boleto poderia ser efetuada através de outro meio como app, website etc., porém em uma análise mais aprofundada, percebemos os riscos em fornecer dados pessoais (sensíveis) em ambientes públicos ou em locais onde não conhecemos quem nos cerca. Por isso, é crucial ter cuidados ao fornecer informações.

    Ser observado enquanto digita no celular é uma sensação que todos nós já passamos, o problema é quando isso deixa de ser impressão e passa a ser real.

    Muitos observadores fazem isso em filas, transporte público ou até na rua, basta uma brecha para ter seus dados escutados ou lidos.

    Em um cybercafé, no trabalho ou local público, ter alguém de olho na sua tela é comum, seja por pura curiosidade ou má intenção. Fique atento ao se logar e evite clicar na descoberta de senha após inserir a password, pois isso facilita o trabalho do invasor.

    Seja na fila, no trabalho ou no banco evite ao máximo a exposição de suas informações, fique atento ao ambiente e observe ao seu redor. E se possível, prefira fornecer informações suas em locais reservados. Isso irá mitigar esse tipo de ataque, pois a maior vulnerabilidade está em como os usuários utilizam os sistemas e não nos próprios sistemas.

    O que é Phishing?

    Phishing se refere a um conjunto de técnicas empregadas por bandidos digitais com o intuito de enganar usuários para que eles forneçam inadvertidamente informações sigilosas e valiosas. Geralmente, este tipo de ataque começa com o recebimento de um e-mail falso, ou ainda outra forma de comunicação cujo intuito seja enganar a vítima, como uma mensagem instantânea.

    A mensagem enviada é forjada para se parecer com uma mensagem legítima, proveniente de uma fonte confiável ao usuário. Caso a vítima caia na armadilha, poderá ter informações confidenciais roubadas, comumente fornecendo esses dados em um website falso. Algumas vezes também é feito o download de software malicioso para o computador da vítima.

    O phishing é um exemplo clássico de técnica de Engenharia Social empregada para enganar usuários de sistemas de computador.

    Existem várias formas de se realizar ataques de phishing, dependendo de como é realizado e de quem são os alvos. Os mais comuns são os seguintes:

    Na maior parte dos casos, meliantes querem obter vantagens financeiras, e fazem isso roubando números de cartão de crédito, senhas de acesso a bancos ou outros tipos de dados do gênero. Algumas vezes o phishing é empregado para obter dados de acesso a uma corporação, obtendo esses dados de funcionários incautos, como por exemplo dados de login em sistemas.

    Além disso, é possível que um ataque de phishing seja escalado para um ataque mais elaborado, como por exemplo a implantação de ransomware nos computadores de uma empresa.

    O Que é Malware?

    Malware é qualquer software ou trecho de código escrito com o intuito de ser prejudicial a sistemas, indivíduos e organizações.

    No geral os malwares são criados para:

    Esses são os tipos mais conhecidos de malware:

    No geral, malwares infectam as máquinas das vítimas por meio de cavalos de tróia (trojans), links em e-mail de phishing e downloads fraudulentos.

    Podem infectar quaisquer tipos de equipamentos, como:

    Os principais vetores de infecção dos malwares são:

    Essas são algumas estatísticas:

    Como detectar infecções:

    Como se proteger de malware:

    Como se livrar de malwares:

    Podemos escanear os arquivos pra verificar se eles tem malwares passando o antivírus, mas também temos outras opções como sites voltado pra isso, tipo esse: https://www.virustotal.com/

    Chaveiro Digital e Assinaturas com GPG no Linux

    O GnuPG é um programa de software de criptografia híbrida, porque usa uma combinação de criptografia de chave simétrica (privada), e criptografia de chave assimétrica (pública) para facilitar a troca segura de chaves.

    As chaves públicas resultantes podem ser trocadas com outros usuários de diversas maneiras. Elas devem sempre ser trocadas cuidadosamente para evitar falsificação de identidade. Também é possível adicionar uma assinatura digital à mensagem, para que a integridade e o remetente da mensagem possam ser validados.

    Como sabemos, para criptografar um arquivo com senha, fazemos assim e ele pedirá a senha:

    
    gpg -c arquivo.txt
    
    

    Para descriptografar um arquivo, basta isso:

    
    gpg arquivo.txt.gpg
    
    

    PS: Se quiser ver o conteúdo de algum arquivo ao invés de salvá-lo descriptografado, use o comando gpg -d arquivo.txt.gpg.

    Se ele for criptografado com sua chave pública, ele pedirá a senha de sua chave privada. Se for criptografado com senha, ele pedirá esta.

    O chaveiro digital de um usuário é a reunião de todas as chaves de interesse de tal usuário. Esse chaveiro, geralmente, contém o par de chaves do usuário (pública e privada) e as chaves públicas de outros usuários. O chaveiro digital de cada usuário fica armazenado em ~/.gnupg e pode ser visto com esse comando:

    
    gpg --list-keys
    
    

    PS: Se quiser listar apenas as chaves públicas, use --list-public-keys, assim como para listar apenas as privadas, use --list-secret-keys

    Para criar um par de chaves (pública e privada), utilize esse comando:

    
    gpg --gen-key
    
    

    Para criar um par de chaves completo, utilize esse comando:

    
    gpg --full-generate-key
    
    

    Para listar as assinaturas existentes em uma chave, utilize esse comando (substituindo pelo número da chave, o mais comprido em hexa:

    
    gpg --list-sigs 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB
    
    

    Para exportar a sua chave pública como asc (para disponibilizar na Internet, por exemplo), utilize o comando:

    
    gpg -a --export 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB > arquivo.asc
    
    

    Para exportar a sua chave privada (perigoso) como asc, utilize o comando:

    
    gpg -a --export-secret-keys 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB > arq.asc
    
    

    Para importar uma chave pública ou privada de um arquivo, fazemos assim:

    
    gpg --import chave.asc
    
    

    Para importar uma chave pública do servidor, é assim:

    
    gpg --keyserver pool.sks-keyservers.net --recv-keys 0x416F061063FEE659
    
    

    PS: Caso o servidor acima não funcione, tente o servidor pgpkeys.mit.edu, keys.openpgp.org ou keyserver.ubuntu.com.

    Podemos também procurar uma chave usando o e-mail associado à ela, assim:

    
    gpg --auto-key-locate nodefault,wkd --locate-keys email@servico.com
    
    

    Para criar um certificado de revogação:

    
    gpg --gen-revoke 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB > 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB-revcert.rev
    
    

    PS: Sempre crie o arquivo de revogação de chave após criar a chave.

    Para revogar uma chave, basta importar ela:

    
    gpg --import 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB-revcert.rev
    
    

    Para remover uma chave privada do chaveiro:

    
    gpg --delete-secret-keys 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB
    
    

    Para remover uma chave pública do chaveiro:

    
    gpg --delete-keys 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB
    
    

    Para alterar a frase senha de uma chave, utilize o comando:

    
    gpg --edit-key 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB password
    
    

    Depois digite save e dê enter.

    Colocar chave pública no servidor online:

    
    gpg --keyserver pool.sks-keyservers.net --send-key 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB
    
    

    Para determinar a confiabilidade de cada chave, execute o comando:

    
    gpg --update-trustdb
    
    

    Para alterar a confiabilidade de uma chave, digite isso:

    
    gpg --edit-key user@email.com
    
    

    Digite trust para modificar a confiabilidade, para sair do gpg digite save (ou quit) e help para ajuda.

    A opção edit-key também pode ser usada pra renovar a data de expiração de uma chave, incluindo as já expiradas, usando os comandos expire para alterar os dados, e depois save.

    Para listar as chaves, mostrando as assinaturas de cada chave, utilize o comando:

    
    gpg --list-sigs
    
    

    Para listar as impressões digitais de cada chave (fingerprint):

    
    gpg --fingerprint
    
    

    Para assinar uma chave pública de outra pessoa com sua chave privada, utilize o comando:

    
    gpg --sign-key 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB
    
    

    Para assinar arquivos digitalmente (no caso, arquivos de texto), usamos esse comando (com uma chave privada criada, obviamente):

    
    gpg -s --clearsign arquivo.txt
    
    

    Para assinar arquivos binários, usamos esse comando (com uma chave privada criada também):

    
    gpg --detach-sign arquivo.tar.xz
    
    

    Para checar a assinatura de um arquivo de texto, usamos esse comando:

    
    gpg --verify arquivo.txt.asc
    
    

    No caso de arquivos binários, no entanto, fazemos assim:

    
    gpg --verify arquivo.tar.xz{.sig,}
    
    

    Você pode atualizar as informações de chaves digitando:

    
    gpg --refresh-keys
    
    

    Você pode puxar informações de um servidor de chaves específico usando:

    
    gpg --keyserver pool.sks-keyservers.net --refresh-keys
    
    

    Para criptografar um arquivo com a chave pública de outro usuário, faça assim:

    
    gpg -er usuario@email arquivo.txt
    
    

    O comando que segue, pode ser usado para assinar seu arquivo com sua chave privada e, em seguida, criptografá-lo com a chave pública do destinatário:

    
    gpg -ser usuario@email arquivo.txt