Google Cloud Platform'da Kullanımda Olmayan Verilerin Şifrelenmesi

Buradaki içerikler Nisan 2017 itibarıyla geçerlidir ve yazıldığı anda geçerli olan durumu belirtir. Google Cloud Platform olarak müşterilerimiz için sağladığımız korumayı durmadan geliştirdiğimizden, güvenlik politikalarımız ve sistemlerimiz zaman içinde değişebilir.

Oynat düğmesi

Google Cloud'da Kullanımda Olmayan Verilerin Şifrelenmesi

CIO düzeyinde özet

  • Google, Google Cloud Platform ürünlerinde müşterilerin kullanımda olmayan verilerini korumak için birkaç şifreleme katmanı kullanır.
  • Google Cloud Platform, kullanımda olmayıp depolanan müşteri içeriğini en az bir şifreleme mekanizmasıyla şifreler. Bunun için müşterinin herhangi bir işlem yapması gerekmez. Bu belgede ayrıntılı şekilde açıklanan bazı küçük istisnalar da bulunmaktadır.
  • Depolanacak veriler parçalara ayrılır ve her parça, benzersiz bir şifreleme anahtarıyla şifrelenir. Bu veri şifreleme anahtarları, Google'ın merkezi Anahtar Yönetim Hizmeti'nde özel olarak depolanıp kullanılan anahtar şifreleme anahtarları ile şifrelenmiş ("sarmalanmış") verilerle birlikte saklanır. Google'ın Anahtar Yönetim Hizmeti yedeklidir ve küresel olarak dağıtılmıştır.
  • Google Cloud Platform'da depolanan veriler, AES256 veya AES128 kullanılarak depolama düzeyinde şifrelenir.
  • Google, şifrelemeyi neredeyse tüm Google Cloud Platform ürünlerinde tutarlı bir şekilde uygulamak için Tink adlı ortak bir şifreleme kitaplığı kullanır. Bu ortak kitaplık geniş çapta erişilebilir olduğundan, sıkı şekilde denetlenen ve gözden geçirilen bu kodu yalnızca küçük bir kriptograf ekibinin düzgün bir şekilde uygulayıp sürdürmesi yeterli olur.

Giriş

Güvenlik, birçok kişi ve şirket için herkese açık bulut tedarikçisinin seçiminde belirleyici bir unsurdur. Google'da güvenlik son derece önemlidir. Güvenlik ve gizliliği ciddiye alıyoruz. Verileriniz ister internet üzerinden aktarılıyor ister veri merkezlerimiz arasında geziniyor, isterse sunucularımızda saklanıyor olsun; onları korumak için durmadan çalışıyoruz.

Kapsamlı güvenlik stratejimizin merkezinde, şifreleme anahtarlarına denetimli erişim ile verilere yalnızca yetkili roller ve hizmetler tarafından erişilebilmesini sağlayan, aktarım sırasında ve kullanımda değilken şifreleme özelliği bulunur. Bu yazıda Google'ın Google Cloud Platform'da kullanımda olmayan verilerin şifrelenmesine dair yaklaşımı ve bilgilerinizin daha güvenli olmasını sağlamak için bu şifrelemeden nasıl yararlandığı açıklanmaktadır.

Bu belge, şu anda Google Cloud Platform'u kullanmakta olan veya kullanmayı düşünen CISO'ları ve güvenlik operasyonları ekiplerini hedefler. Giriş kısmı haricinde bu belgede, şifreleme ve temel kriptografi öğelerine dair genel bilgiye sahip olunduğu varsayılır.

Şifreleme nedir?

Şifreleme, okunabilir verileri girdi (genellikle düz metin olarak adlandırılır) olarak alan ve bunları düz metin hakkında çok az bilgi veren ya da hiç bilgi vermeyen bir çıktıya (genellikle şifreli metin olarak adlandırılır) dönüştüren bir süreçtir. Kullanılan şifreleme algoritması, Gelişmiş Şifreleme Standardı (AES) gibi herkese açık bir algoritmadır ancak şifrelemenin yürütülmesi gizli tutulan bir anahtara bağlıdır. Şifreli metnin şifresini çözüp metni orijinal formuna geri döndürmek için anahtarı kullanmanız gerekir. Google'da, verileri gizli tutmak için şifreleme kullanımı genellikle bütünlük korumasıyla birleştirilir. Şifreli metne erişimi olan bir kişi metni anlayamaz ve anahtarı bilmeden metinde değişiklik yapamaz. Kriptografi hakkında daha fazla bilgi için Modern Kriptografiye Giriş iyi bir kaynaktır.

Bu belgede, kullanımda olmayan verilerin şifrelenmesine odaklanıyoruz. Kullanımda olmayan verilerin şifrelenmesi, bir diskte (katı hal sürücüleri dahil) veya yedekleme ortamında depolanan verileri korumak için kullanılan şifreleme anlamına gelir.

Şifreleme neden müşteri verilerinin güvenliğini sağlamaya yardımcı olur?

Şifreleme, daha geniş bir güvenlik stratejisinin küçük bir parçasıdır. Şifrelemeyle, verileri korumak için derinlemesine bir savunma katmanı eklenir. Ayrıca şifreleme, verilerin yanlışlıkla bir saldırganın eline düşmesi durumunda, şifreleme anahtarlarına erişim olmadan verilere ulaşılamamasını sağlar. Bir saldırgan, verilerinizi içeren depolama cihazlarını ele geçirse bile verileri anlayamaz veya şifrelerini çözemez.

Kullanımda olmayan verilerin şifrelenmesi, donanım ve yazılım yığınının alt katmanlarını etkin bir şekilde "keserek" saldırı yüzeyini azaltır. Bu alt katmanların güvenliği ihlal edilse bile (ör. cihazlara fiziksel erişim yoluyla) yeterli şifreleme dağıtılmışsa bu cihazlardaki verilerin güvenliği tehlikeye girmez. Şifreleme ayrıca bir "tıkanma noktası" olarak da işlev görür. Merkezi olarak yönetilen şifreleme anahtarları, verilere erişimin sağlandığı ve denetlenebildiği tek bir konum oluşturur.

Şifreleme, Google'ın müşteri verilerinin gizliliğini sağlama yönteminde önemli bir mekanizma sunar. İçeriğe erişim sağlamadan, sistemlerin yedekleme gibi amaçlarla verileri manipüle etmesine ve mühendislerin altyapımızı desteklemesine imkan tanır.

Neleri müşteri verileri olarak kabul ediyoruz?

Google Cloud Platform hizmet şartlarında tanımlandığı gibi, müşteri verileri, bir Google Cloud Platform müşterisi tarafından doğrudan veya dolaylı olarak Google'a (ya da Google tarafından müşteriye), müşterinin hesabı tarafından kullanılan Google Cloud Platform hizmetleri aracılığıyla sağlanan içeriği ifade eder. Müşteri verileri, müşteri içeriği ve müşteri meta verilerini içerir.

Müşteri içeriği; Google Cloud Storage'da depolanan veriler, Google Compute Engine tarafından kullanılan disk anlık görüntüleri ve Cloud IAM politikaları gibi Google Cloud Platform müşterilerinin kendi oluşturdukları veya Google'a sağladıkları verilerdir. Bu belgede, kullanımda olmayan müşteri içeriğinin şifrelenmesine odaklanılmaktadır.

Müşteri meta verileri, diğer müşteri verilerini oluşturur ve müşteri içeriği olarak sınıflandırılamayan tüm verileri ifade eder. Bunlar otomatik olarak oluşturulmuş proje sayılarını, zaman damgalarını, IP adreslerini, Google Cloud Storage'daki bir nesnenin bayt boyutunu veya Google Compute Engine'deki makine türünü içerebilir. Meta veriler, performans ve işlem sürekliliği için makul bir dereceye kadar korunur.

Google'ın varsayılan şifrelemesi

Kullanımda olmayan verilerin şifrelenmesi

Şifreleme katmanları

Google, verileri korumak için çeşitli şifreleme katmanları kullanır. Birden çok şifreleme katmanı kullanmak, yedekli veri koruması sağlar ve uygulama gereksinimlerine göre en doğru yaklaşımı seçmemize imkan tanır.

Şifreleme katmanları tablosu

1. Şekil: Google Cloud Platform'da depolanan verileri korumak için çeşitli şifreleme katmanları kullanılır. Hemen hemen tüm dosyalar için dağıtılmış dosya sistemi şifrelemesi ya da veritabanı ve dosya depolama şifrelemesi geçerlidir. Ayrıca neredeyse tüm dosyalar için depolama cihazı şifrelemesi yer almaktadır.

Depolama sistemi katmanında şifreleme

Google Cloud Storage şifrelemesinin işleyiş şeklini kavramak için Google'ın müşteri verilerini nasıl depoladığını anlamak gerekir. Veri, depolama için alt dosya parçalarına ayrılır. Her parça birkaç GB büyüklüğünde olabilir. Her parça, bağımsız bir şifreleme anahtarı ile depolama düzeyinde şifrelenir. İki parça, aynı müşteriye ait aynı Google Cloud Storage nesnesinde yer alsa veya aynı makine üzerinde saklansa bile aynı şifreleme anahtarına sahip olmaz1. Bir veri parçası güncellenirse mevcut anahtarın yeniden kullanılması yerine yeni bir anahtarla şifrelenir. Her biri farklı bir anahtar kullanan bu veri bölümlendirmesi, bir veri şifreleme anahtarının güvenliğinin ihlal edilmesi halinde "patlama yarıçapının" yalnızca o veri parçasıyla sınırlı olacağı anlamına gelir.

Google, verileri diske yazılmadan önce şifreler. Şifreleme Google'ın tüm depolama sistemlerinde mevcuttur, sonradan eklenmez.

Her bir veri parçasının benzersiz bir tanımlayıcısı vardır. Erişim kontrol listeleri (EKL'ler), her bir parçanın şifresinin yalnızca o anda erişim sağlanan yetkili roller altında faaliyet gösteren Google hizmetleri tarafından çözülebilmesini sağlar. Bu, hem veri güvenliğini hem de gizliliği geliştirerek verilere yetkisiz erişimi engeller.

Her bir parça; Google'ın depolama sistemleri genelinde dağıtılır, yedekleme ve olağanüstü durum kurtarma için şifrelenmiş biçimde çoğaltılır. Müşteri verilerine erişmek isteyen kötü niyetli bir bireyin (1) istediği verilere karşılık gelen tüm depolama parçalarını ve (2) parçalara karşılık gelen şifreleme anahtarlarını bilmesi ve bunlara erişebilmesi gerekir.

Şifrelenmiş parçalarda depolanan verilerin diyagramı

2. Şekil: Google'daki veriler, depolama için şifrelenmiş parçalara ayrılır.

Google, kullanımda olmayan verileri şifrelemek için Gelişmiş Şifreleme Standardı (AES) algoritmasını kullanır. AES'nin yaygın olarak kullanılmasının nedeni (1) hem AES256 hem de AES128'in uzun vadeli depolama kullanımı için Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından tavsiye edilmesi (Kasım 2015 itibarıyla) ve (2) AES'nin genellikle müşteri uygunluk gereksinimlerinin bir parçası olarak dahil edilmesidir.

Google Cloud Storage genelinde depolanan veriler, hemen hemen tüm durumlarda Galois/Counter Mode (GCM) ile AES kullanılarak depolama düzeyinde şifrelenir. Bu işlem, Google'ın yönettiği BoringSSL kitaplığında uygulanır. Bu kitaplık, OpenSSL'de birçok hata ortaya çıkmasının üzerine dahili kullanım için OpenSSL'den çatallanmıştır. Bazı durumlarda AES, kimlik doğrulama için karma bir mesaj kimlik doğrulama kodu (HMAC) ile Şifre Bloku Zincirleme (CBC) modunda kullanılır. Bazı çoğaltılmış dosyalar içinse AES, HMAC ile Counter (CTR) modda kullanılır. (Bu belgenin ilerleyen bölümlerinde, algoritmalarla ilgili daha fazla ayrıntı verilmiştir.) Diğer Google Cloud Platform ürünlerinde, AES çeşitli modlarda kullanılır.

Depolama cihazı katmanında şifreleme

Yukarıda açıklanan depolama sistemi düzeyinde şifrelemeye ek olarak, veriler çoğu durumda sabit diskler (HDD) için en az AES128 ve yeni katı hal sürücüleri (SSD) için AES256 ile ayrı bir cihaz düzeyinde anahtar (verileri depolama düzeyinde şifrelemek için kullanılan anahtardan farklıdır) kullanılarak depolama cihazı düzeyinde de şifrelenir. Eski cihazlar tamamen değiştirildiğinde, cihaz düzeyinde şifreleme için yalnızca AES256 kullanılacaktır.

Yedeklerin şifrelenmesi

Google'ın yedekleme sistemi, verilerin yedekleme işlemi boyunca şifrelenmiş kalmasını sağlar. Bu yaklaşım, düz metin verilerinin gereksiz yere ifşa edilmesini önler.

Ek olarak, yedekleme sistemi her bir yedekleme dosyasını, Google'ın Anahtar Yönetim Hizmeti'nde (KMS) depolanan bir anahtardan ve yedekleme sırasında dosya başına rastgele oluşturulmuş bir çekirdekten türetilen kendi veri şifreleme anahtarı (DEK) ile bağımsız olarak şifreler. Diğer bir DEK, Google KMS'de de saklanan yedeklemedeki tüm meta veriler için kullanılır. (İlerleyen bölümlerde, anahtar yönetimi hakkında daha fazla bilgiye ulaşabilirsiniz.)

Kullanımda olmayan verilerin şifrelenmediği durumlar var mı?

Google Cloud Platform, kullanımda olmayıp depolanan müşteri içeriğini, bir veya daha fazla şifreleme mekanizması kullanarak, müşterinin herhangi bir işlem yapması gerekmeden şifreler. Ancak aşağıdaki öğeler için istisna söz konusudur:

  • Google Compute Engine'deki sanal makinelerden gelen seri konsol günlükleri. Bu durum şu anda düzeltilmektedir
  • Bir işlem beklenmedik bir şekilde başarısız olduğunda, yerel sürücülere yazılan çekirdek dökümler. Bu durum şu anda düzeltilmektedir
  • Yerel diske yazılan hata ayıklama günlükleri. Bu durum şu anda düzeltilmektedir
  • Depolama sistemleri tarafından kullanılan geçici dosyalar. Bu durum şu anda düzeltilmektedir
  • Müşteri içeriğini ve müşteri meta verilerini içerebilen bazı günlükler. Bu durumun düzeltilmesi planlanmaktadır

Bu veriler yine de Google'ın güvenlik altyapısının diğer öğeleri tarafından kapsamlı bir şekilde ve neredeyse tüm durumlarda depolama düzeyinde şifreleme ile korunmaktadır.

Anahtar yönetimi

Veri şifreleme anahtarları, anahtar şifreleme anahtarları ve Google'ın Anahtar Yönetim Hizmeti

Parçadaki verileri şifrelemek için kullanılan anahtara veri şifreleme anahtarı (DEK) adı verilir. Google'da çok sayıda anahtar olması ve düşük gecikme ile yüksek kullanılabilirlik ihtiyacı nedeniyle, bu anahtarlar şifreledikleri verilerin yakınında depolanır. DEK'ler, bir anahtar şifreleme anahtarıyla (KEK) şifrelenir (veya "sarmalanır"). Her bir Google Cloud Platform hizmeti için bir veya daha fazla KEK bulunur. Bu KEK'ler, anahtar depolamak için özel olarak tasarlanmış bir depo olan Google'ın Anahtar Yönetim Hizmeti'nde (KMS) merkezi olarak depolanır. DEK'lerden daha az sayıda KEK'ye sahip olmak ve merkezi bir anahtar yönetim hizmeti kullanmak, verilerin Google ölçeğinde depolanmasını ve şifrelenmesini yönetilebilir hale getirir. Bununla birlikte, veri erişimini merkezi bir noktadan takip ve kontrol etmemizi sağlar.

Her Google Cloud Platform müşterisi için, paylaşılır olmayan tüm kaynaklar2 veri parçalarına bölünür ve diğer müşteriler için kullanılan anahtarlardan farklı anahtarlarla şifrelenir3. Bu DEK'ler, aynı müşterinin sahip olduğu aynı verilerin diğer parçalarını koruyan anahtarlardan bile farklıdır.

DEK'ler, Google'ın ortak şifreleme kitaplığı kullanılarak depolama sistemi tarafından oluşturulur. Daha sonra bu depolama sisteminin KEK'si ile sarmalanmak üzere KMS'ye gönderilirler ve sarmalanmış DEK'ler de veri parçaları ile saklanmak üzere depolama sistemine geri gönderilir. Bir depolama sistemi, şifrelenmiş verileri alması gerektiğinde, sarmalanmış DEK'yi alır ve KMS'ye geçirir. KMS daha sonra bu hizmetin KEK'yi kullanmaya yetkili olduğunu doğrular ve bunun üzerine, düz metin DEK'yi açıp hizmete gönderir. Hizmet daha sonra veri parçalarını düz metin haline getirmek ve bütünlüğünü doğrulamak için DEK'yi kullanır.

Veri parçalarını şifrelemek için çoğu KEK, KMS içinde üretilirken diğerleri de depolama hizmetleri içinde üretilir. Tutarlılık açısından tüm KEK'ler Google tarafından oluşturulan bir rastgele sayı üretici (RNG) ile, Google'ın ortak şifreleme kitaplığı kullanılarak oluşturulur. Bu RNG, NIST 800-90Ar1 CTR-DRBG tabanlıdır ve bir AES256 KEK üretir4. Bu RNG, birden fazla bağımsız entropi kaynağından başlatılan Linux çekirdeği RNG'sinden başlatılır. Bu, diskte yapılan aramaların ayrıntılı ölçümleri ve paket içi varış süreleri gibi veri merkezi ortamından gelen entropik etkinlikleri ve mevcut olan yerlerde (Ivy Bridge ve daha yeni CPU'lar) Intel'in RDRAND talimatlarını içerir.

Google Cloud Platform'da depolanan veriler, yukarıda açıklandığı gibi AES256 veya AES128 kullanılarak DEK'ler ile şifrelenir. Google Compute Engine'deki kalıcı disklerde şifrelenen tüm yeni veriler AES256 kullanılarak şifrelenir. DEK'ler, Google Cloud Platform hizmetine bağlı olarak AES256 veya AES128 kullanılarak KEK'lerle sarmalanır. Şu anda Cloud hizmetleri için tüm KEK'lerin AES256'ya yükseltilmesi üzerinde çalışıyoruz.

Google KMS, KEK'leri yönetir ve yalnızca bu amaçla oluşturulmuştur. Aynı zamanda, güvenlik göz önünde bulundurularak tasarlanmıştır. KEK'ler yapıları gereği Google'ın KMS'sinden dışa aktarılamaz. Bu anahtarlarla yapılan tüm şifreleme ve şifre çözme işlemleri KMS içinde gerçekleştirilmelidir. Bu, sızıntıları ve yanlış kullanımları önlemeye yardımcı olur ve anahtarlar kullanıldığında KMS'nin denetim takibi oluşturmasını sağlar.

KMS, yeni anahtarlar oluşturmak için Google'ın ortak şifreleme kitaplığını kullanarak KEK'lere düzenli aralıklarla otomatik olarak rotasyon uygulayabilir. Genellikle tek bir anahtardan bahsetsek de, aslında verilerin bir anahtar kümesi kullanılarak korunmasını kastediyoruz. Bir anahtar şifreleme için aktifken, şifre çözme için de sayısı anahtar rotasyonu programı tarafından belirlenen bir dizi eski anahtar aktiftir. Bir KEK için gerçek rotasyon programı hizmete göre değişir ancak standart rotasyon süresi 90 gündür. Google Cloud Storage, KEK'lerini özellikle 90 günde bir döndürür ve en az 5 yılda bir yeniden şifreleme gerektiren (verilerin yeniden şifrelenmesi pratikte çok daha sık gerçekleşir) 20 adede kadar sürümü saklayabilir. KMS'de tutulan anahtarlar, olağanüstü durum kurtarma amacıyla yedeklenir ve süresiz olarak kurtarılabilir.

KEK'lerin kullanımı, anahtar başına bir politika ile, her bir anahtar için KMS'deki erişim kontrol listeleri (EKL'ler) tarafından yönetilir. Sadece yetkili Google hizmetlerinin ve kullanıcıların bir anahtara erişmesine izin verilir. Her bir anahtarın kullanımı, bu anahtara ihtiyaç duyan bağımsız işlem düzeyinde izlenir. Bu nedenle, bir kişinin bir anahtarı her kullanışında, kimliği doğrulanır ve günlüğe kaydedilir. İnsanların gerçekleştirdiği tüm veri erişimleri, Google'ın genel güvenlik ve gizlilik politikaları kapsamında denetlenebilir.

Bir Google Cloud Platform hizmeti, şifrelenmiş bir veri parçasına eriştiğinde şunlar gerçekleşir:

  1. Hizmet, ihtiyaç duyduğu veriler için depolama sistemine bir çağrı yapar.
  2. Depolama sistemi, bu verilerin saklandığı parçaları (parça kimliklerini) ve nerede depolandıklarını tanımlar.
  3. Her bir parça için depolama sistemi, bu parçayla birlikte saklanan sarmalanmış DEK'yi çeker (Bu bazı durumlarda hizmet tarafından yapılır) ve sarmalanmayı kaldırmak için KMS'ye gönderir.
  4. Depolama sistemi, tanımlanan işin bu veri parçasına bir iş tanımlayıcısına dayanarak ve bu parçanın kimliğini kullanarak erişmesine izin verdiğini doğrular. KMS de, depolama sisteminin hem hizmetle ilişkili KEK'yi kullanmak, hem de bu belirli DEK'nin sarmalanmasını kaldırmak için yetkilendirildiğini doğrular.
  5. KMS aşağıdakilerden birini gerçekleştirir:
    • Sarmalanması kaldırılan DEK'yi, veri parçasının şifresini çözen ve parçayı hizmete aktaran depolama sistemine geri gönderir. Bunun dışında bazı nadir durumlarda:
    • Sarmalanması kaldırılan DEK'yi hizmete gönderir. Depolama sistemi, şifrelenmiş veri parçasını, şifresini çözen ve parçayı kullanan hizmete aktarır.

Bu işlem, cihazın cihaz düzeyindeki DEK'yi yönetip koruduğu yerel SSD'ler gibi özel depolama cihazlarında farklıdır.

Veri parçası şifre çözme diyagramı

3. Şekil: Depolama hizmeti; bir veri parçasının şifresini çözmek amacıyla, bu veri parçası için sarmalanması kaldırılmış veri şifreleme anahtarını (DEK) almak üzere Google'ın Anahtar Yönetim Hizmeti'ni (KMS) çağırır.

Şifreleme anahtarı hiyerarşisi ve güven kökü

Google KMS, KMS ana anahtarı adı verilen ve KMS içindeki tüm KEK'leri sarmalayan bir kök anahtarla korunur. Bu KMS ana anahtarı, AES2564 kullanır ve Kök KMS adlı başka bir anahtar yönetim hizmetinde depolanır. Kök KMS çok daha az sayıda (yaklaşık 12) anahtar depolar. Ek güvenlik için Kök KMS genel üretim makinelerinde çalıştırılmaz. Bunun yerine yalnızca her bir Google veri merkezindeki özel makineler üzerinde çalıştırılır.

Kök KMS, kök KMS ana anahtarı adı verilen kendi kök anahtarına sahiptir. Bu anahtar da AES2564 kullanır ve bu anahtarları küresel çapta çoğaltan eşler arası bir altyapı olan kök KMS ana anahtar dağıtıcısı içinde depolanır. Kök KMS ana anahtar dağıtıcısı, Kök KMS ile aynı özel makinelerde yalnızca RAM'deki anahtarları tutar ve kullanımın doğru olduğunu onaylamak için günlük kaydından yararlanır. Kök KMS ana anahtar dağıtıcısının bir örneği, Root KMS'nin her örneği için çalışır. (Kök KMS ana anahtar dağıtıcısı, halen benzer şekilde işletilen ancak eşler arası olmayan bir sistemin yerini alması için aşamalı olarak çalıştırılır.)

Kök KMS ana anahtar dağıtıcısının yeni bir örneği başlatıldığında, halihazırda dağıtıcı örneklerini çalıştıran ana bilgisayar adlarının bir listesiyle yapılandırılır. Dağıtıcı örnekleri, daha sonra kök KMS ana anahtarını diğer çalışan örneklerden edinebilir. Aşağıda açıklanan olağanüstü durum kurtarma mekanizmaları dışında, kök KMS ana anahtarı sınırlı sayıda özel olarak güvenceye alınmış makinede yalnızca RAM'de bulunmaktadır.

Kök KMS ana anahtar dağıtıcısının tüm örneklerinin aynı anda yeniden başladığı senaryoyu ele almak için kök KMS ana anahtarı, Google'ın dünyanın iki farklı fiziksel konumundaki yüksek güvenlikli alanlarında bulundurduğu fiziksel kasalarda depolanan güvenli donanım cihazlarında da yedeklenir. Bu yedeklemeye, küresel bir yeniden başlatma gibi, yalnızca tüm dağıtımcı örneklerinin aynı anda devre dışı kaldığı durumlarda ihtiyaç duyulur. Bu kasalara erişimi olan Google çalışanlarının sayısı 20'den azdır.

Google'ın şifreleme hiyerarşisi diyagramı

4. Şekil: Şifreleme anahtarı hiyerarşisi, bir veri parçasını DEK ile korur. DEK, KMS'deki bir KEK ile sarmalanır. KEK ise Root KMS ve kök KMS ana anahtar dağıtıcısı tarafından korunur.

Özetlemek gerekirse:

  • Veriler, DEK'ler ile parçalanır ve şifrelenir
  • DEK'ler, KEK'ler ile şifrelenir
  • KEK'ler KMS'de saklanır
  • KMS, küresel olarak veri merkezlerinde birden fazla makinede çalıştırılır
    • KMS anahtarları, Root KMS'de saklanan KMS ana anahtarı ile sarmalanır
  • Root KMS, KMS'den çok daha küçüktür ve her veri merkezinde yalnızca özel makineler üzerinde çalışır
    • Root KMS anahtarları, kök KMS ana anahtar dağıtıcısında saklanan kök KMS ana anahtarıyla sarmalanır.
  • Kök KMS ana anahtar dağıtıcısı, özel makinelerde küresel çapta eşzamanlı olarak RAM üzerinde çalışan eşler arası bir altyapıdır. Her biri, anahtar materyalini, çalışan diğer örneklerden alır.
    • Dağıtıcının tüm örneklerinin devre dışı kalması ihtimaline karşı (toptan kapatma) ana anahtar; sınırlı sayıda Google konumundaki (fiziksel) kasalarda (farklı) güvenli donanımlarda depolanır
    • Kök KMS ana anahtar dağıtıcısı, benzer şekilde işletilen ancak eşler arası olmayan bir sistemin yerini alması için aşamalı olarak çalıştırılmaktadır

Küresel kullanılabilirlik ve çoğaltma

Yüksek kullanılabilirlik, düşük gecikme ve anahtarlara küresel erişim; her düzeyde kritik öneme sahiptir. Bu özellikler, Google genelinde kullanılacak temel yönetim hizmetleri için gereklidir.

Bu nedenle, KMS yüksek oranda ölçeklenebilirdir ve Google'ın dünya genelindeki veri merkezlerinde binlerce kez çoğaltılır. Google'ın üretim filosundaki normal makinelerde çalışır. Bununla birlikte, KMS örnekleri de Google Cloud Platform işlemlerini desteklemek için küresel olarak çalıştırılır. Sonuç olarak, herhangi bir tek anahtar işleminin gecikme oranı çok düşüktür.

Root KMS, her bir veri merkezinde güvenlik işlemlerine ayrılmış çeşitli makinelerde çalıştırılır. Kök KMS ana anahtar dağıtıcısı, Root KMS ile bire bir aynı makineler üzerinde çalıştırılır. Kök KMS ana anahtar dağıtıcısı, bir dedikodu protokolü aracılığıyla bir dağıtım mekanizması sağlar. Sabit bir zaman aralığında, dağıtıcının her bir örneği, anahtarlarının karşılaştırılması ve anahtar sürümlerindeki herhangi bir farklılığın giderilmesi için rastgele bir başka örnek seçer. Bu modelde, Google'ın altyapısının tümünün bağlı olduğu merkezi bir düğüm yoktur. Bu da, Google'ın anahtar materyalini yüksek kullanılabilirlik düzeyiyle yönetmesini ve korumasını sağlar.

Google'ın ortak şifreleme kitaplığı

Google'ın ortak şifreleme kitaplığı, şifreleme algoritmalarını BoringSSL6 kullanarak uygulayan Tink5 kitaplığıdır. Tink'i tüm Google geliştiricileri kullanabilir. Bu ortak kitaplık geniş çapta erişilebilir olduğundan, sıkı şekilde denetlenen ve gözden geçirilen bu kodu yalnızca küçük bir kriptograf ekibinin düzgün bir şekilde uygulaması yeterli olur. Google'daki her ekibin kendi şifreleme sürecini yürütmesi gerekmez. Tüm ürünler için bu ortak şifreleme kitaplığının yönetiminden özel bir Google güvenlik ekibi sorumludur.

Tink şifreleme kitaplığı, çok çeşitli şifreleme anahtarı türlerini ve modlarını destekler. Bu anahtar türleri ve modlar, en yeni saldırılara karşı güncel durumda olduklarından emin olmak amacıyla düzenli olarak gözden geçirilir.

Bu belgenin yayınlandığı tarihte Google, DEK'ler ve KEK'ler için kullanımda olmayan verilerin şifrelenmesinde aşağıdaki şifreleme algoritmalarından yararlanmaktadır. Biz becerilerimizi ve güvenliğimizi geliştirmeye devam ettikçe bunlarda değişiklikler yapılabilir.

Temel şifreleme Tercih edilen protokoller Desteklenen diğer protokoller7
Simetrik şifreleme
  • AES-GCM (256 bit)
  • AES-CBC ve AES-CTR (128 ve 256 bit)
  • AES-EAX (128 ve 256 bit)
Simetrik imzalar (kimlik doğrulama için AES-CBC ve AES-CTR ile birlikte kullanılır)
  • HMAC-SHA256
  • HMAC-SHA512
  • HMAC-SHA1

Her bir Google Cloud Platform ürününde şifreleme ayrıntı düzeyi

Her bir Google Cloud Platform hizmeti, verileri şifreleme için farklı bir ayrıntı düzeyinde parçalar.

  Google Cloud Platform hizmeti Müşteri veri şifrelemesinin ayrıntı düzeyi8 (tek bir DEK ile şifrelenen verilerin boyutu)
Depolama Cloud Bigtable Veri parçası başına (tablo başına birkaç adet)
Cloud Datastore Veri parçası başına9
Cloud Firestore Veri parçası başına9
Cloud Spanner Veri parçası başına (tablo başına birkaç adet)
Cloud SQL
  • İkinci nesil: Google Compute Engine'de olduğu gibi örnek başına (her örnek birden fazla veritabanı içerebilir)
  • Birinci nesil: Örnek başına
Cloud Storage Veri parçası başına (genellikle 256 KB - 8 MB)
İşlem App Engine10 Veri parçası başına9
Cloud Functions11 Veri parçası başına9
Compute Engine
  • Disk başına birkaç adet
  • Anlık görüntü grubu ana anahtarından türetilen tekil anlık görüntü aralıklarıyla, anlık görüntü grubu başına
  • Görüntü başına
Kubernetes Engine Kalıcı diskler için disk başına birkaç adet
Container Registry Google Cloud Storage'da depolanır; veri parçası başına
Büyük Veri BigQuery Veri kümesi başına birkaç adet
Cloud Dataflow Google Cloud Storage'da depolanır; veri parçası başına
Cloud Datalab Cloud Bigtable'da depolanır, not defteri dosyası başına
Cloud Dataproc Google Cloud Storage'da depolanır; veri parçası başına
Cloud Pub/Sub Saatlik 1.000.000 iletiye kadar12

Cloud müşterileri için ek şifreleme seçenekleri

Google Cloud Platform'da varsayılan olarak şifreleme sağlamanın yanı sıra, müşterilere daha fazla kontrol için ek şifreleme ve anahtar yönetimi seçenekleri sunmak üzere çalışıyoruz.

Google Cloud Platform müşterilerine şunları sağlamak istiyoruz:

  • Verilerinin nihai koruyucusu olmak ve bu verilere erişimi ve verilerin kullanımını en yüksek ayrıntı düzeyinde denetleyerek hem veri güvenliğini hem de gizliliği sağlamak
  • Bulutta barındırılan verileri için şifrelemeyi, şirketlerindeki mevcut yöntemi izleyerek veya ideal olarak daha iyi şekilde yönetmek
  • Kaynakları üzerinde güvenilir ve denetlenebilir bir güven kaynağına sahip olmak
  • EKL'lerin kullanımının ötesinde, verilerini ayırıp ayrıştırabilmek

Müşteriler, Müşterinin sağladığı şifreleme anahtarları özelliği ile Google Cloud Platform'da yönettikleri mevcut şifreleme anahtarlarını kullanabilir. Bu özellik, Google Cloud Storage ve Google Compute Engine'de depolama düzeyinde şifreleme için kullanılır.

Müşteriler, Google Cloud Key Management Service'i (Cloud KMS) kullanarak kendi şifreleme anahtarlarını Google Cloud Platform'da da yönetebilir. Bu ürün, müşteri tarafından yönetilen uygulama düzeyinde şifreleme sağlar.

Kriptografi alanında araştırma ve yenilikler

Şifreleme alanındaki gelişmelere ayak uydurmak için Google bünyesinde, şifreleme teknolojisini takip etmek, geliştirmek ve iyileştirmekten sorumlu, birinci sınıf bir güvenlik mühendisleri ekibi bulunmaktadır. Mühendislerimiz standartlaştırma süreçlerinde ve yaygın olarak kullanılan şifreleme yazılımlarının yönetiminde rol alır. Şifreleme alanında araştırmalarımızı düzenli olarak yayınlıyoruz. Böylece sektördeki herkes ve halk bilgimizden faydalanabiliyor. Örneğin, 2014'te SSL 3.0 şifrelemesinde önemli bir güvenlik açığını (POODLE olarak bilinir) ortaya çıkardık ve 2015'te de OpenSSL'de yüksek riskli bir güvenlik açığı tespit ettik.

Google, bulut hizmetleri için şifreleme alanında sektör liderliğini sürdürmeyi planlıyor. Yeni kriptografik tekniklerin geliştirilmesi, uygulanması ve araştırılması için aşağıdaki alanlarda çalışan ekiplerimiz bulunuyor:

  • Kısmi homomorfik kriptografi, bazı işlemlerin veriler şifrelenirken veri üzerinde gerçekleştirilmesine izin verir. Böylece bulut, verileri hiç bir zaman, hatta bellekte bile düz metin içinde görmez. Bu teknoloji, herkese açık olan deneysel şifrelenmiş BigQuery istemcimiz kapsamında da kullanılmaktadır.
  • Biçimi ve sırayı koruyan kriptografi, bazı karşılaştırma ve sıralama işlemlerinin veriler şifrelenirken veri üzerinde gerçekleştirilmesine izin verir.
  • Post kuantum kriptografi, etkili kuantum saldırılarına karşı savunmasız olan mevcut temel kriptografi öğelerini, bu saldırılara karşı daha dayanıklı olduğuna inanılan post kuantum adaylarla değiştirmemize imkan tanır. Buradaki temel odak noktası, post kuantum algoritmalar hakkında NIST önerileri dahil, kafes tabanlı genel anahtar kriptografisinin araştırılması ve prototiplenmesidir. Günümüzde hâlâ kafes tabanlı kripto uygulamak için en iyi algoritmalar, somut parametreler ve kriptoanaliz açısından yolun başında olmamıza rağmen; kafes tabanlı kripto post kuantum bir dünyada kullanılabilecek en uygun şifreleme tekniklerinden biri olarak düşünülmektedir. Simetrik anahtar şifreleme ve MAC'ler bilinen kuantum algoritmaları tarafından zayıflatılmış olsa da, post kuantum bir dünyada anahtar boyutlarının iki katına çıkarılmasıyla benzer güvenlik bitlerine yükseltilebilirler.

Diğer referanslar

Google Cloud Platform güvenliği

Google Cloud Platform güvenliği hakkında genel bilgi için Google Cloud Platform web sitesinin Güvenlik bölümünü inceleyin.

Google Cloud Platform uygunluğu

Google Cloud Platform uygunluğu ve uygunluk sertifikaları hakkında bilgi için Google'ın genel SOC3 denetim raporunu içeren, Google Cloud Platform web sitesinin Uygunluk bölümünü inceleyin.

G Suite güvenliği

G Suite şifrelemesi ve anahtar yönetimi hakkında bilgi için G Suite şifreleme raporunu inceleyin. Bu rapor, burada yer alan içeriğin çoğunu kapsar ancak yalnızca G Suite'e odaklanır. Tüm G Suite çözümlerinde, müşteri verilerini korumaya ve verilerin güvenliğini sağlama yöntemlerimiz konusunda olabildiğince şeffaf olmaya çalışıyoruz. Genel G Suite güvenliği hakkında daha fazla bilgiye G Suite Güvenlik ve Uygunluk raporundan ulaşabilirsiniz.

Dipnotlar

1 Cloud Datastore, App Engine ve Cloud Pub/Sub'daki veri parçaları iki müşterinin verilerini içerebilir. Hizmete göre veri şifreleme ayrıntı düzeyi bölümünü inceleyin.
2 Google Compute Engine'de paylaşılan bir temel görüntü, bu ayrıştırmanın geçerli olmadığı paylaşılan kaynaklara örnek olarak gösterilebilir. Doğal olarak birden fazla müşteri, tek bir DEK tarafından şifrelenen tek bir kopyaya referans verir.
3 Cloud Datastore, App Engine ve Cloud Pub/Sub'da depolanan, birden fazla müşterinin verilerinin aynı DEK ile şifrelenebildiği veriler buna dahil değildir. Hizmete göre veri şifreleme ayrıntı düzeyi bölümünü inceleyin.
4 Geçmişte AES128 kullanıldığını ve bu anahtarların bir kısmının verilerin şifresini çözmek için aktif kaldığını göz önünde bulundurun.
5 Buna ek olarak, Google iki kitaplık kullanır: Keymaster ve CrunchyCrypt. Keymaster, Tink ile ortak olarak daha yeni bir şifreleme kodu paylaşır ancak farklı bir anahtar sürümü oluşturma uygulaması kullanır ve daha geniş çeşitlilikte eski algoritmaları destekler. CrunchyCrypt, Tink'le birleştirilmektedir.
6 OpenSSL de Google Cloud Storage'ın bazı kısımlarında kullanımdadır.
7 Diğer şifreleme protokolleri kitaplıkta bulunur ve geçmişte desteklenmiştir ancak bu liste Google Cloud Platform'daki birincil kullanımları kapsamaktadır.
8 Müşteri içeriğinin şifreleme ayrıntı düzeyini ifade eder. Bu, kaynak adları gibi müşteri meta verilerini içermez. Bazı hizmetlerde, tüm meta veriler tek bir DEK ile şifrelenir.
9 Tek bir müşteriye özel değildir.
10 Uygulama kodunu ve uygulama ayarlarını içerir. App Engine'de kullanılan veriler, müşteri yapılandırmalarına bağlı olarak Cloud Datastore, Cloud SQL veya Cloud Storage'da depolanır.
11 İşlev kodunu, ayarları ve etkinlik verilerini içerir. Etkinlik verileri Cloud Pub/Sub'da depolanır.
12 Cloud Pub/Sub, mesajların şifrelenmesinde kullanılan DEK'ye saatte bir rotasyon uygular. 1.000.000 mesaj şifrelendiyse daha erken rotasyon uygulanır. Bu, tek bir müşteriye özel değildir.
Bu sayfayı yararlı buldunuz mu? Lütfen görüşünüzü bildirin:

Şunun hakkında geri bildirim gönderin...