Procedimentos: trabalhar com definições de encriptação

Importante

As versões do Microsoft Rights Management Service SDK lançadas antes de março de 2020 são depreciadas; as aplicações que utilizam versões anteriores devem ser atualizadas para utilizar a versão de março de 2020. Para mais detalhes, consulte o aviso de depreciação.

Não estão previstas mais melhorias para o Microsoft Rights Management Service SDK. Recomendamos vivamente a adoção do Proteção de Informações da Microsoft SDK para serviços de classificação, rotulagem e proteção.

Este tópico descreve os nossos pacotes de encriptação e mostra como é possível utilizar alguns recortes de código.

Suporte para AES 256, a nova predefinição

Nenhum código adicional é necessário para utilizar a encriptação baseada em AES 256, dado que se trata da nova predefinição, partindo do princípio de que compila com o SDK RMS 2.1, atualização de março de 2015, ou posterior. Aconselhamo-lo a considerar a atualização das suas aplicações com esta versão devido às vantagens de segurança adicionais da AES 256.

Importante

O suporte para consumo de ficheiros protegidos por AES 256 já existia desde a versão de outubro de 2014. Se estiver a executar aplicações criadas com uma versão do SDK anterior à de outubro de 2014, esta atualização irá interromper a sua aplicação. Certifique-se de que os clientes das aplicações que está a criar estão a utilizar o SDK atualizado ou estão dispostos a atualizar imediatamente para a versão mais recente da aplicação.

 

Suporte de encriptação de API

A partir da atualização de março de 2015, incorporamos os três sinalizadores seguintes na nossa API e nos respetivos pacotes de encriptação associados:

  • IPC_ENCRYPTION_PACKAGE_AES256_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_ECB (Também conhecidos como Algoritmos Deprecados)

As bandeiras do pacote de encriptação, ver encriptação preferida, podem ser usadas em conjunto com a bandeira da propriedade da licença - IPC_LI_PREFERRED_ENCRYPTION_PACKAGE.

Seguem-se alguns fragmentos de código simples que demonstram como utilizar a nova propriedade de licença.

Algoritmos Preteridos

Já não estamos a expor a bandeira IPC_LI_DEPRECATED_ENCRYPTION_ALGORITHMS na nossa API. Isto significa que as aplicações futuras vão deixar de compilar se fizerem referência a este sinalizador, mas as aplicações já criadas que o utilizam vão continuar a funcionar, uma vez que respeitamos o sinalizador em privado no código de API.

Para aproveitar ainda as vantagens do sinalizador de algoritmos de encriptação preterido antigo, basta alterar um sinalizador. Consulte os seguintes fragmentos de código para obter exemplos.

Proteger Ficheiros com AES 256 CBC4K

Não são necessárias alterações no código, AES 256 CBC4K é a predefinição.

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

Proteger Ficheiros com AES 128 CBC4K

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_CBC4K;

hr = IpcSetLicenseProperty(pLicenseHandle,
                        false,
                        IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                        &dwEncryptionMode);

Proteger Ficheiros com AES-128 ECB (Algoritmos Preteridos)

Este exemplo mostra também a nova forma de suportar algoritmos preteridos.

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_ECB;

hr = IpcSetLicenseProperty(pLicenseHandle,
                        false,
                        IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                        &dwEncryptionMode);