Neste guia, descrevemos como a criptografia e a descriptografia funcionam com a API Google Workspace Client-side Encryption.
Você precisa autorizar todos os serviços de provedor de identidade (IdP) usados pelos usuários compartilhar arquivos criptografados. Geralmente, é possível encontrar os detalhes necessários do IdP na arquivo .well-known disponível publicamente, caso contrário, entre em contato com o administrador do Google Workspace para conferir os detalhes do IdP.
Criptografar dados
Quando um usuário do Google Workspace pede para salvar ou armazenar arquivos criptografados do lado do cliente
(CSE), o Google Workspace envia um wrap
solicitação ao URL do endpoint do KACLS para criptografia. Além de opções
de segurança, como verificações baseadas em declarações de perímetro e JWT, o KACLS precisa
siga estas etapas:
Validar o usuário solicitante
- Valide o token de autenticação e o token de autorização.
- Verifique se os tokens de autorização e autenticação são para o mesmo usuário fazer uma correspondência que não diferencia maiúsculas de minúsculas nas declarações de e-mail.
- Quando o token de autenticação contém a declaração
google_email
opcional, ele precisa ser comparado com a declaração por e-mail no token de autorização usando uma abordagem que não diferencia maiúsculas de minúsculas. Não use a reivindicação por e-mail no token de autenticação para esta comparação. - Em cenários em que o token de autenticação não tem o token
Declaração
google_email
, a declaração do e-mail no token de autenticação deve ser comparado com a declaração do e-mail no token de autorização, usando um método que não diferencia maiúsculas de minúsculas. - Nos casos em que o Google emite um token de autorização para um e-mail que não
associadas a uma Conta do Google, a reivindicação
email_type
deve estar presente. Isso é uma parte crucial do recurso Acesso para convidados, oferecendo informações para a KACLS aplicar outras medidas de segurança em sistemas usuários.- Alguns exemplos de como um KACLS pode usar essas informações:
- Para impor outros requisitos de geração de registros.
- Restringir o emissor do token de autenticação a um IdP convidado dedicado.
- Para exigir mais declarações no token de autenticação.
- Se um cliente não tiver configurado o acesso de convidado, todas as solicitações
em que
email_type
é definido comogoogle-visitor
oucustomer-idp
pode ser recusados. Solicitações com umemail_type
degoogle
ou sem definiçãoemail_type
deve continuar sendo aceito.
- Verifique se a declaração
role
no token de autorização é "writer" ou "upgrader". - Verifique se a declaração
kacls_url
no token de autorização corresponde à URL atual do KACLS. Essa verificação permite detectar servidores "man-in-the-middle" configurados por pessoas com informações privilegiadas ou domínios não autorizados administradores. - Executar uma verificação de perímetro usando autenticação e autorização reivindicações.
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 - Outros dados sensíveis
Registre a operação, incluindo o usuário que a originou, os
resource_name
e o motivo informado na solicitação.Retorne um objeto binário opaco para ser armazenado pelo Google Workspace junto com o objeto criptografado e enviado como está em qualquer desencapsulamento de chave subsequente operação Outra opção é exibir uma resposta de erro estruturada.
- O objeto binário deve conter a única cópia da DEK criptografada, dados específicos da 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),
O Google Workspace envia uma solicitação unwrap
.
ao URL do endpoint do KACLS para descriptografia. Além da segurança opcional
de perímetro e com base em declarações JWT, o KACLS precisa realizar
as seguintes etapas:
Validar o usuário solicitante
- Valide o token de autenticação e o token de autorização.
- Verifique se os tokens de autorização e autenticação são para o mesmo usuário fazer uma correspondência que não diferencia maiúsculas de minúsculas nas declarações de e-mail.
- Quando o token de autenticação contém a declaração
google_email
opcional, ele precisa ser comparado com a declaração por e-mail no token de autorização usando uma abordagem que não diferencia maiúsculas de minúsculas. Não use a reivindicação por e-mail no token de autenticação para esta comparação. - Em cenários em que o token de autenticação não tem o token
Declaração
google_email
, a declaração do e-mail no token de autenticação deve ser comparado com a declaração do e-mail no token de autorização, usando um método que não diferencia maiúsculas de minúsculas. - Nos casos em que o Google emite um token de autorização para um e-mail que não
associadas a uma Conta do Google, a reivindicação
email_type
deve estar presente. Isso é uma parte crucial do recurso Acesso para convidados, oferecendo informações para a KACLS aplicar outras medidas de segurança em sistemas usuários.- Alguns exemplos de como um KACLS pode usar essas informações:
- Para impor outros requisitos de geração de registros.
- Restringir o emissor do token de autenticação a um IdP convidado dedicado.
- Para exigir mais declarações no token de autenticação.
- Se um cliente não tiver configurado o acesso de convidado, todas as solicitações
em que
email_type
é definido comogoogle-visitor
oucustomer-idp
pode ser recusados. Solicitações com umemail_type
degoogle
ou sem definiçãoemail_type
deve continuar sendo aceito.
- Verifique se a declaração
role
no token de autorização é "reader" ou "escritor". - Verifique se a declaração
kacls_url
no token de autorização corresponde à URL atual do KACLS. Com isso, é possível detectar servidores 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 - Outros dados sensíveis
Verificar se o
resource_name
no token de autorização e no blob descriptografado são correspondentes.Executar 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, os
resource_name
e o motivo informado na solicitação.Retorne a DEK desencapsulada ou uma resposta de erro estruturada.