Verileri şifrele ve şifresini çöz

Bu kılavuzda, Google Workspace Client-side Encryption API kullanılarak şifreleme ve şifre çözme işlemlerinin nasıl çalıştığı açıklanmaktadır.

Şifrelenmiş dosyaları paylaşan kullanıcılar tarafından kullanılan tüm kimlik sağlayıcı (IdP) hizmetlerini izin verilenler listesine eklemeniz gerekir. Gerekli IdP ayrıntılarını genellikle kuruluşun herkese açık .well-known dosyasında bulabilirsiniz. Aksi takdirde, IdP ayrıntılarını öğrenmek için kuruluşun Google Workspace yöneticisiyle iletişime geçin.

Verileri şifreleme

Bir Google Workspace kullanıcısı, istemci tarafı şifrelenmiş (İTŞ) verileri kaydetmek veya depolamak istediğinde Google Workspace, şifreleme için Anahtar Erişim Kontrol Listesi Hizmeti (KACLS) uç nokta URL'nize bir wrap isteği gönderir. Çevre ve JWT talebine dayalı kontroller gibi isteğe bağlı güvenlik kontrollerine ek olarak KACLS'niz aşağıdaki adımları uygulamalıdır:

  1. İstek gönderen kullanıcıyı doğrulayın.

    • Hem kimlik doğrulama jetonunu hem de yetkilendirme jetonunu doğrulayın.
    • E-posta taleplerinde büyük/küçük harfe duyarsız bir eşleşme yaparak yetkilendirme ve kimlik doğrulama jetonlarının aynı kullanıcıya ait olduğunu kontrol edin.
    • Kimlik doğrulama jetonu isteğe bağlı google_email talebini içerdiğinde, büyük/küçük harfe duyarsız bir yaklaşımla yetkilendirme jetonundaki e-posta talebiyle karşılaştırılması gerekir. Bu karşılaştırma için kimlik doğrulama jetonundaki e-posta talebini kullanmayın.
    • Kimlik doğrulama jetonunda isteğe bağlı google_email talebinin olmadığı senaryolarda, kimlik doğrulama jetonundaki e-posta talebi, büyük/küçük harfe duyarsız bir yöntem kullanılarak yetkilendirme jetonundaki e-posta talebiyle karşılaştırılmalıdır.
    • Google'ın, bir Google Hesabı ile ilişkilendirilmemiş bir e-posta için yetkilendirme jetonu verdiği senaryolarda email_type talebi bulunmalıdır. Bu, konuk erişimi özelliğinin önemli bir parçasını oluşturur ve KACL'lerin harici kullanıcılara ek güvenlik önlemleri uygulaması için değerli bilgiler sağlar.
      • KACLS'nin bu bilgileri nasıl kullanabileceğine dair bazı örnekler:
      • Ek günlük kaydı koşulları uygulamak için.
      • Kimlik doğrulama jetonu yayıncısını özel bir misafir IdP'siyle kısıtlamak için kullanılır.
      • Kimlik doğrulama jetonunda ek taleplerde bulunmak için.
      • Bir müşteri Misafir Erişimini yapılandırmadıysa email_type değerinin google-visitor veya customer-idp olarak ayarlandığı tüm istekler reddedilebilir. email_type değeri google olan veya email_type değeri ayarlanmamış istekler kabul edilmeye devam etmelidir.
    • Kimlik doğrulama jetonu isteğe bağlı delegated_to talebini içerdiğinde resource_name talebini de içermesi gerekir ve bu iki talep, yetkilendirme jetonundaki delegated_to ve resource_name talepleriyle karşılaştırılmalıdır. delegated_to talepleri büyük/küçük harfe duyarsız bir yaklaşımla karşılaştırılmalı ve jetonlardaki resource_name, işlemin resource_name ile eşleşmelidir.
    • Yetkilendirme jetonundaki role talebinin writer veya upgrader olduğunu kontrol edin.
    • Yetkilendirme jetonundaki kacls_url talebinin, mevcut KACLS URL'siyle eşleştiğinden emin olun. Bu kontrol, kuruluş içinden kişiler veya kötü niyetli alan yöneticileri tarafından yapılandırılan olası araya girme saldırısı sunucularının tespit edilmesine olanak tanır.
    • Hem kimlik doğrulama hem de yetkilendirme taleplerini kullanarak bir çevre kontrolü gerçekleştirin.
  2. Aşağıdaki bölümleri kimliği doğrulanmış bir şifreleme algoritması kullanarak şifreleyin:

    • Veri Şifreleme Anahtarı (DEK)
    • Yetkilendirme jetonundaki resource_name ve perimeter_id değerleri
    • Diğer hassas veriler
  3. İşlemi, işlemi başlatan kullanıcı, resource_name ve istekte iletilen neden de dahil olmak üzere günlüğe kaydedin.

  4. Şifrelenmiş nesneyle birlikte Google Workspace tarafından depolanacak ve sonraki anahtar sarmalama açma işlemlerinde olduğu gibi gönderilecek opak bir ikili nesne döndürür. Alternatif olarak, yapılandırılmış bir hata yanıtı da sunabilirsiniz.

    • İkili nesne, şifrelenmiş DEK'nin tek kopyasını içermelidir. Uygulamaya özgü veriler burada depolanabilir.

Verilerin şifresini çözme

Bir Google Workspace kullanıcısı, istemci tarafı şifrelemeli (İTŞ) verileri açmayı istediğinde Google Workspace, şifre çözme işlemi için KACLS uç nokta URL'nize bir unwrap isteği gönderir. Çevre ve JWT talebine dayalı kontroller gibi isteğe bağlı güvenlik kontrollerine ek olarak, KACLS'niz aşağıdaki adımları uygulamalıdır:

  1. İstek gönderen kullanıcıyı doğrulayın.

    • Hem kimlik doğrulama jetonunu hem de yetkilendirme jetonunu doğrulayın.
    • E-posta taleplerinde büyük/küçük harfe duyarsız bir eşleşme yaparak yetkilendirme ve kimlik doğrulama jetonlarının aynı kullanıcıya ait olduğunu kontrol edin.
    • Kimlik doğrulama jetonu isteğe bağlı google_email talebini içerdiğinde, büyük/küçük harfe duyarsız bir yaklaşımla yetkilendirme jetonundaki e-posta talebiyle karşılaştırılması gerekir. Bu karşılaştırma için kimlik doğrulama jetonundaki e-posta talebini kullanmayın.
    • Kimlik doğrulama jetonunda isteğe bağlı google_email talebinin olmadığı senaryolarda, kimlik doğrulama jetonundaki e-posta talebi, büyük/küçük harfe duyarsız bir yöntem kullanılarak yetkilendirme jetonundaki e-posta talebiyle karşılaştırılmalıdır.
    • Google'ın, bir Google Hesabı ile ilişkilendirilmemiş bir e-posta için yetkilendirme jetonu verdiği senaryolarda email_type talebi bulunmalıdır. Bu, konuk erişimi özelliğinin önemli bir parçasını oluşturur ve KACL'lerin harici kullanıcılara ek güvenlik önlemleri uygulaması için değerli bilgiler sağlar.
      • KACLS'nin bu bilgileri nasıl kullanabileceğine dair bazı örnekler:
      • Ek günlük kaydı koşulları uygulamak için.
      • Kimlik doğrulama jetonu yayıncısını özel bir misafir IdP'siyle kısıtlamak için kullanılır.
      • Kimlik doğrulama jetonunda ek taleplerde bulunmak için.
      • Bir müşteri Misafir Erişimini yapılandırmadıysa email_type değerinin google-visitor veya customer-idp olarak ayarlandığı tüm istekler reddedilebilir. email_type değeri google olan veya email_type değeri ayarlanmamış istekler kabul edilmeye devam etmelidir.
    • Kimlik doğrulama jetonu isteğe bağlı delegated_to talebini içerdiğinde resource_name talebini de içermesi gerekir ve bu iki talep, yetkilendirme jetonundaki delegated_to ve resource_name talepleriyle karşılaştırılmalıdır. delegated_to talepleri büyük/küçük harfe duyarsız bir yaklaşımla karşılaştırılmalı ve jetonlardaki resource_name, işlemin resource_name ile eşleşmelidir.
    • Yetkilendirme jetonundaki role talebinin reader veya writer olduğunu kontrol edin.
    • Yetkilendirme jetonundaki kacls_url talebinin, mevcut KACLS URL'siyle eşleştiğinden emin olun. Bu sayede, kuruluş içinden kişiler veya kötü niyetli alan yöneticileri tarafından yapılandırılan olası ortadaki adam sunucuları tespit edilebilir.
  2. Aşağıdaki bölümleri kimliği doğrulanmış bir şifreleme algoritması kullanarak şifrelerini çözün:

    • Veri Şifreleme Anahtarı (DEK)
    • Yetkilendirme jetonundaki resource_name ve perimeter_id değerleri
    • Diğer hassas veriler
  3. Yetkilendirme jetonundaki ve şifresi çözülmüş blob'daki resource_name değerinin eşleştiğinden emin olun.

  4. Hem kimlik doğrulama hem de yetkilendirme taleplerini kullanarak bir çevre kontrolü gerçekleştirin.

  5. İşlemi, işlemi başlatan kullanıcı, resource_name ve istekte iletilen neden de dahil olmak üzere günlüğe kaydedin.

  6. Sarmalanması kaldırılan DEK'yi veya bir yapılandırılmış hata yanıtı döndürün.