Tenho alguns WebServices escritos no bom e vellho padrão .asmx. Também tenho alguns que são GenericHandlers, no caso os .ashx.
Atualmente eles recebem uma lista da parametros e o usuário e a senha criptografados, que no corpo do serviço é feita a autenticação e validação do usuário utilizando os dados desse parâmetros.
Até ai tudo bem pois eles funcionam perfeitamente.... Mas gostaria de melhorar a questão da segurança!
Como uso também os GenericHandlers, fica impossível usar o WSE pois este se aplica somente no Soap. Dai tenho 3 alternativas:
1) Habilitar SSL e "deixar" que o servidor crie a proteção para a conexão e tráfego dos dados
2) Mandar uma assinatura como se fosse um parâmetro no serviço. Na verdade, uma forma muito simples, seria concatenar todos os parametros e gerar uma assinatura com uma chave pública de uma certificado digital. Ai, no lado server, seria
verificado essa assinatura com a chave privada.
3) Implementar as duas alternativas anteriores
Neste caso, me surge algumas dúvidas, pois a princípio só SSL já resolve o problema... certo?
Implementar as duas alternativas acredito não ser uma boa prática, pois o próprio SSL já faz a parte de cryptografar os dados usando um certificado digital, e nesse caso utilizar a assinatura com um par de chaves iria necessitar
de mais um certificado (já que o certificado de servidor não pode ser usado também para assinatiras digitais ou vice-versa)
Alguém já teve alguma dúvida semelhante? Qual a opinião de voces?
Tytto