Segurança com Cookie - Fórum DevMedia
Segurança com Cookie
No ponto de vista de vocês, existe uma boa segurança em gravar determinado tipo de dados no cookie?
Criptografar esses dados no cookie é a melhor forma de segurança existente?
Em teoria toda forma de criptografia atualmente pode ser quebrada, até as que usam os famosos números primos. O que acontece é que você levaria até uns 10 mil anos para quebrar uma determinada chave, então o custo/trabalho não vale o benefício. Possivelmente com o aumento da capacidade de processamento, processamento paralelo ou computadores quânticos, vai ficar cada vez mas fácil quebrar a criptografia existente. Então existe um corrida para se criar formas de criptografias mais eficientes. É uma corrida em que um time cria as barreiras de segurança e outro tenta rompê-las.
Atualmente Cookies são um forma de abordar o problema, mas tenha em mente que não é 100% seguro e definitivo. Um dos problemas dos cookies é que eles ficam na máquina de forma que o acesso a eles é simples o que talvez facilite a vida de quem que acessá-los. Outro senão é que se o usuário desativar o Cookies não vai conseguir acessar o site.
Enfim sim seria uma forma, mas o mais indicado é utilizar de vários recursos, cookies, sessions (quando necessários) e validação em dois passos. Nada é definitivo ou garantido, mas você deve tomar todos os passos para mitigar o problema.
E é bom ressaltar que 70% dos ataques bem sucedidos usam Engenharia Social, assim como todos o roubos usam gente de dentro, então você pode criar um "jacatraca" tecnológica que se alguém usar um senha fraca ou simplesmente passar informações não há como impedir a quebra da segurança.
É exatamente isso que estou analisando!
Você abordou pontos muito importantes Jothaz.
Será que existem formas mais seguras para gravar cookies ao invés de utilizar apenas criptografia?
Não sou especialista em segurança o que vou fazer é compartilhar a minha experiência e vivência, portanto qualquer informação imprecisa ou mesmo bobagem dita por favor corrijam-me.
Não sei se ainda é possível, mas lembro-me de ler algo sobre Cookie SQL Injection ou algo assim, acredito que uma pesquisa no goolge pode aclarar o tema.
Com relação a sua pergunta acho que não tem muito que fazer a não ser seguir o passos:
--Ser espartano no conteúdo do cookie, colocar somente o que interessa e ter cuidado com informações sensíveis.
--Usar o melhor método de criptografia disponível.
Algumas preucações no uso de controle de sessions:
--Nunca incluir os identificadores de sessão na URL. Desta foram evita-se uma série de ataques tais como session fixation.
--Implementar um mecanismo de cancelamento de sessões (logout).
--Implementar mecanismos de detecção de ataques de força bruta assim evita-se teste diversos valores até encontrar um identificador de sessão válido.
--Usar identificadores com alta entropia (pelo menos 32 bits). Isto é possível pelo uso de bons geradores de sequências pseudo-aleatórias.
--Sempre transmitir os identificadores em canais seguros, de preferência utilizando o protocolo SSL.
--Verificar os identificadores da sessão SSL em conjunto com os identificadores da sessão do usuário para dificultar ataques.
--Definir na aplicação um período de validade e um tempo máximo de inatividade para as sessões.
Cuidados adicionais deve ser tomados nos casos em que são utilizados cookies para o controle de sessão:
--Usar a flag secure = true: isto indica ao browser que o cookie comente deve ser transmitido por conexões SSL.
--Especificar domain: especificar corretamente o domínio (o nome do servidor, preferencialmente) para o qual o cookie deve ser usado. Indica aobrowser que o cookie somente deve ser enviado para servidores que correspondam ao domínio indicado.
--Usar flag httpOnly: impede o uso do cookie por scripts, evitando ataques de cross-site scripting.
--Usar cookies não-persistentes: sem data de expiração definida, este será considerado não-persistente. Neste caso, o browser não armazenará o cookie em disco, mantendo-o somente em memória. O conteúdo do cookie será descartado quando o browser for fechado.
Alguns dos ataques que referi podem não ser possívies hoje, mas mesmo assim acho que serve como informação.
As 10 vulnerabilidades de segurança mais críticas em aplicações WEB o material é antigo mas acho que serve como referencia.
Cookie que pretende aumentar a segurança permite tracking de utilizadores em modo incógnito
Show Jothaz!
Irei montar uma rotina que possa ter uma segurança interessante usando os cookies!
Assim pretendo postar um artigo aqui no Devmedia relacionado a isso, este é o motivo de
está fazendo alguns levantamentos.
Sua contribuição foi de grande importância! ;)
Fico feliz em ajudar, só compartilhei a vivência que tenho.
Na verdade nos últimos anos tenho participado deprojetos voltados para intranets, vpns e principalmente integrados com ambiente Sharepoint.
Então fica mais tranquilo pois os usuários pertencem a um domínio com login válidado e ainda tem a segurança do Sharepoint e mesmo quando existe acesso via internet sempre tem a politica de segurança da empresa usada no portal corporativo. Então nunca tenho de me preocupar em criar nada só uso o que já existe. Mas nunca negligencio a parte de segurança.