Este guia descreve como a criptografia e a descriptografia funcionam usando a API Google Workspace Client-side Encryption.
Autorize todos os serviços do Provedor de identidade (IdP) usados pelos usuários que compartilham arquivos criptografados. Geralmente, é possível encontrar os detalhes necessários do IdP no arquivo .well-known disponível publicamente. Caso contrário, entre em contato com o administrador do Google Workspace da organização para saber os detalhes do IdP.
Criptografar dados
Quando um usuário do Google Workspace pede para salvar ou armazenar dados criptografados
do lado do cliente (CSE), o Google Workspace envia uma solicitação wrap
para o URL do endpoint KACLS para criptografia. Além das verificações
de segurança opcionais, como verificações baseadas em declarações de perímetro e JWT, o KACLS precisa
realizar estas etapas:
Valide o usuário solicitante.
- Valide o token de autenticação e o token de autorização.
- Para verificar se os tokens de autorização e autenticação são para o mesmo usuário, faça uma correspondência indiferente a maiúsculas nas declarações de e-mail.
- Verifique se a declaração
role
no token de autorização é "gravador" ou "upgrade". - Verifique se a declaração
kacls_url
no token de autorização corresponde ao URL KACLS atual. Com essa verificação, é possível detectar possíveis servidores intermediários configurados por usuários internos ou administradores de domínio não autorizados. - Execute uma verificação de perímetro usando declarações de autenticação e autorização.
Criptografe as seguintes partes usando um algoritmo de criptografia autenticado:
- Chave de criptografia de dados (DEK)
- Os valores
resource_name
eperimeter_id
do token de autorização - Quaisquer dados confidenciais adicionais
Registre a operação, incluindo o usuário que a originou, o
resource_name
e o motivo transmitido na solicitação.Retornar um objeto binário opaco para ser armazenado pelo Google Workspace com o objeto criptografado e enviado no estado em que se encontra em qualquer operação de desencapsulamento de chave subsequente. Ou veicule uma resposta de erro estruturado.
- O objeto binário precisa conter a única cópia da DEK criptografada. Dados específicos de implementação podem ser armazenados nela.
Descriptografar dados
Quando um usuário do Google Workspace solicita a abertura de dados criptografados do lado do cliente (CSE),
ele envia uma solicitação unwrap
ao URL do endpoint KACLS para descriptografia. Além das verificações opcionais de segurança, como verificações baseadas em declaração de perímetro e JWT, o KACLS precisa executar as seguintes etapas:
Valide o usuário solicitante.
- Valide o token de autenticação e o token de autorização.
- Para verificar se os tokens de autorização e autenticação são para o mesmo usuário, faça uma correspondência indiferente a maiúsculas nas declarações de e-mail.
- Verifique se a declaração
role
no token de autorização é "leitor" ou "escritor". - Verifique se a declaração
kacls_url
no token de autorização corresponde ao URL KACLS atual. Isso permite a detecção de possíveis servidores "man-in-the-middle" configurados por pessoas com informações privilegiadas ou administradores de domínio não autorizados.
Descriptografe as seguintes partes usando um algoritmo de criptografia autenticado:
- Chave de criptografia de dados (DEK)
- Os valores
resource_name
eperimeter_id
do token de autorização - Quaisquer dados confidenciais adicionais
Verifique se o
resource_name
no token de autorização e o blob descriptografado correspondem.Execute uma verificação de perímetro usando declarações de autenticação e autorização.
Registre a operação, incluindo o usuário que a originou, o
resource_name
e o motivo transmitido na solicitação.Retorne a DEK desencapsulada ou uma resposta de erro estruturado.