Existem dois caminhos para se implementar segurança em um ambiente SOA, um, utilizando Transpost-Level Security, também conhecido por TLS/SSL e outro através de Message-Level Security, padrão de segurança definido pela OASIS para segurança de web services.
Transport-Level Security/ Secure Socket Layer
TLS/SSL são protocolos de segurança que atuam sobre conexões TCP. TLS/SSL garantem a confiabilidade e integridade dos dados além da autenticação, não se preocupando com o meio utilizado para transporte das informações, independente do protocolo utilizado (http, smtp, rmi, etc).
Através do TLS/SSL, um canal é estabelecido entre o consumidor e o servidor, garantindo a segurança das informações, feita através de um processo de criptografia dos dados (todos os dados transmitidos), garantindo assim que as informações não sejam capturadas durante o transporte, evitando possíveis adulterações durante a comunicação, enquanto este “canal” estiver ativo.
Com o TLS, podemos trabalhar com um conjunto de portas diferentes e seu algoritmo de criptografia permite trabalhar com HMAC (Keyed-Hashing For Message Authentication Code) RFC 1024 que é um código de criptografia mais “forte” que o utilizado pelo SSL MAC (Message Authentication Code) RFC 2104.
Message-Level Security
Como exemplo de Message-Level Security, temos o Web Service Security (WSS), padrão OASIS para segurança de web services. Ao contrário do TLS/SSL que faz a criptografia de todas as informações que estão sendo transmitidas, o Message-Level Security, permite que somente parte das informações sejam criptografadas. Por exemplo, em uma operação de compra com cartão de crédito, poderíamos criptografar somente as informações relacionadas a identificação do cliente, como por exemplo o número do cartão de crédito, deixando as demais informações, por exemplo, o que está sendo comprado não criptografado.
Abaixo, temos visualmente as diferenças entre as abordagens de segurança Transport-Level Security e Message-Level Security
Com o Transport-Level Security, as informações serão completamente criptografadas e transmitidas.
Com o Message-Level Security, podemos definir qual parte da mensagem será criptografada.
Fonte das imagens : http://gdp.globus.org/gt4-tutorial/multiplehtml/ch10s02.html
Em breve, publicar como implementamos WSS em um ambiente SOA com Oracle Service Bus.
Twitter @javalittle