0Pricing
Cryptology Academy · Ders

Google Tink: Güvenli Üst Düzey Kriptoğrafi

Kriptografi uzmanlığı gerektirmeden yaygın kriptografik işlemleri gerçekleştirmek için Tink'in anahtar kümesi tabanlı API'sini kullanın.

Google Tink: Güvenli Üst Düzey Kriptoğrafi, CoddyKit'te ücretsiz bir Cryptology Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cryptology Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cryptology Academy kursu toplamda 4 dersten oluşur.

Tink'e Genel Bakış ve Motivasyon

Tink, Google'ın kriptografi ekibi tarafından geliştirilen, güvenli ve kullanımı kolay kriptografi sunmak üzere tasarlanmış açık kaynaklı bir kriptografi kitaplığıdır. Temel amacı, daha düşük düzeyli kitaplıkları kullanan deneyimli geliştiricilerde bile görülen yaygın kriptografik yanlış kullanım kalıplarını önlemektir. Tink'in API'si, doğru işlemi gerçekleştirmenin en kolay seçenek olacağı şekilde tasarlanmıştır; böylece yanlışlıkla güvenli olmayan yapılandırmalar oluşturmak zorlaşır.

Anahtar Kümesi Tabanlı Soyutlama

Tink, tek tek anahtar nesnelerini dışa sunmak yerine anahtarları anahtar kümeleri halinde düzenler. Uygulamalar ham anahtar baytlarıyla değil, anahtar kümesi tanıtıcılarıyla çalışır. Bu soyutlama, anahtarların yanlışlıkla açığa çıkarılmasını önler, sorunsuz anahtar döndürmeyi mümkün kılar ve anahtarların, uygulama anahtar materyalini doğrudan hiç görmeden uzaktaki Anahtar Yönetim Sistemlerinde depolanmasına olanak tanır. Anahtar kümesi kavramı, Tink'in güvenli tasarımının merkezindedir.

AEAD Arayüzü

Tink'teki AEAD (İlişkili Verilerle Kimlik Doğrulamalı Şifreleme) arayüzü, encrypt ve decrypt işlemlerini sağlar. AeadFactory.getPrimitive(keyset), bir Aead nesnesi döndürür; aead.encrypt(plaintext, associatedData) ise şifreli metni döndürür. Tink, şifreleme algoritmasını anahtar kümesine göre (örneğin AES-256-GCM) otomatik olarak seçer ve rastgele bir tek kullanımlık değer oluşturur. Arayüz, tüm algoritma ayrıntılarını, tek kullanımlık değer yönetimini ve biçim kodlamasını gizler.

MAC Arayüzü

Tink'in MAC arayüzü, mesaj kimlik doğrulama kodları için hesaplama ve doğrulama işlemleri sağlar. MacFactory.getPrimitive(keyset), bir Mac nesnesi döndürür. mac.computeMac(data), kimlik doğrulama etiketini döndürür; mac.verifyMac(tag, data) ise etiketi doğrular ve doğrulama başarısız olursa bir güvenlik istisnası fırlatır. Varsayılan algoritma HMAC-SHA256'dır. Arayüz, MAC'leri sabit süreli karşılaştırma yerine normal dize eşitliğiyle karşılaştırma gibi yaygın hataları önler.

Dijital İmza Arayüzü

Tink, dijital imzalar için ayrı PublicKeySign ve PublicKeyVerify arayüzleri sağlar. İmzalama ve doğrulama nesneleri, sırasıyla özel ve açık anahtar içeren farklı anahtar kümesi tutamaçlarından türetilir; bu sayede doğrulama için özel anahtarın veya bunun tersinin yanlışlıkla kullanılması önlenir. Tink'in Ed25519 ve ECDSA P-256 uygulamaları varsayılan olarak sunulur; rastgelelik açıklarını önlemek için deterministik ECDSA da kullanılabilir.

Hibrit Şifreleme Arayüzü

Tink'in HybridEncrypt ve HybridDecrypt arayüzleri, ECIES'i (Eliptik Eğri Tümleşik Şifreleme Şeması) uygular. Hibrit şifreleme, asimetrik anahtar değişimini simetrik şifrelemeyle birleştirir: gönderen geçici bir anahtar üretir, alıcının açık anahtarıyla ECDH gerçekleştirir, bir simetrik anahtar türetir ve AEAD ile şifreler. Böylece saf asimetrik şifrelemenin ek yüküne katlanmadan, asimetrik anahtarları kullanarak büyük iletiler şifrelenebilir.

Anahtar Kümesi Döndürme Süreci

Tink'te anahtar döndürme güvenli ve geriye dönük uyumludur. Döndürme işlemi için yeni bir anahtar üretip anahtar kümesine ekleyin, yeni anahtarı birincil olarak işaretleyin (gelecekteki şifrelemeler bunu kullanır) ve mevcut şifreli metinlerin çözülmesi için eski anahtarları anahtar kümesinde tutun. Birincil olmayan anahtarlar şifre çözme için kullanılabilir durumda kaldığından eski şifreli metinlerin şifresi çözülmeye devam eder. Tüm eski şifreli metinler yeniden şifrelendikten veya süresi dolduktan sonra eski anahtarları anahtar kümesinden silin.

Anahtar Kümesi Serileştirme

Tink anahtar kümeleri JSON veya ikili Protocol Buffer biçiminde serileştirilir. JSON biçimi insanlar tarafından okunabilir ve hata ayıklama için kullanışlıdır. İkili biçim, üretim ortamlarında daha az yer kaplar. Özel anahtarlar içeren serileştirilmiş anahtar kümeleri, depolanmadan önce şifrelenmelidir. Tink, şifrelenmiş anahtar kümelerini standart simetrik AEAD şifrelemesiyle depolamayı veya depolama işlemini bir KMS'ye devretmeyi destekler.

Anahtar Kümesi Şifrelemesi için KMS Entegrasyonu

Tink, başlıca KMS sağlayıcılarıyla bütünleşir: AWS KMS, Google Cloud KMS ve HashiCorp Vault. Tink, anahtar kümelerini yerel bir AEAD anahtarıyla şifrelemek yerine anahtar kümesi şifreleme anahtarını KMS kullanarak sarar. Gerçek anahtar kümesi şifrelemesinde yerel olarak üretilen Veri Şifreleme Anahtarı (DEK) kullanılır ve DEK, KMS Anahtar Şifreleme Anahtarı (KEK) tarafından şifrelenir. Bu yaklaşım, bulut sağlayıcılarının kullandığı zarf şifreleme desenini izler.

Büyük Dosyalar için Akış AEAD

Standart AEAD, şifreleme ve şifre çözme için iletinin tamamının belleğe yüklenmesini gerektirir. Tink'in Akış AEAD arayüzü, büyük dosyaları parçalara ayırarak şifreler ve düz metnin tamamını arabelleğe almadan akış üzerinden şifreleme ve şifre çözmeye olanak tanır. Her parça bağımsız olarak kimlik doğrulamasından geçirilir; parçaların sırası ve eksiksizliği de şifre çözme sırasında doğrulanır. Bu özellik, yedeklemeleri, videoları ve diğer büyük dosyaları şifrelemek için gereklidir.

Dil Desteği ve Ekosistem

Tink; Java, Python, Go ve C++ için her dile özgü deyimsel API'lerle kullanılabilir. Diller arası birlikte çalışabilirlik garanti edilir: Python'da Tink ile şifrelenmiş bir dosyanın şifresi Java'da Tink ile çözülebilir. Bu özellik, şifrelenmiş verileri paylaşması gereken ve farklı dillerde yazılmış birden çok hizmet içeren sistemler için Tink'i uygun kılar. Tink ayrıca tür güvenli anahtar kümesi yapılandırması için protokol arabellekleriyle bütünleşir.

Tink Anahtar Kümesi Döndürme

Tink anahtar döndürme işlemi sırasında, eski (birincil olmayan) anahtarla şifrelenmiş şifreli metinlere ne olur?

Google Tink Özeti

Tink özeti: anahtar kümesi tabanlı soyutlama, ham anahtarların açığa çıkmasını önler; AEAD arayüzü, nonce yönetimini ve algoritma seçimini gizler; MAC arayüzü, dahili olarak sabit süreli doğrulama kullanır; dijital imza ve hibrit şifreleme arayüzleri, arayüzün hatalı kullanımını önler; anahtar döndürme geriye dönük uyumludur (eski anahtarlar kaldırılana kadar şifre çözebilir); KMS entegrasyonu zarf şifreleme desenini izler; akış AEAD büyük dosyaları işler ve diller arası birlikte çalışabilirlik garanti edilir.

Sıkça Sorulan Sorular

“Google Tink: Güvenli Üst Düzey Kriptoğrafi” dersi ücretsiz mi?

Evet — “Google Tink: Güvenli Üst Düzey Kriptoğrafi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cryptology Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cryptology Academy kursu toplamda 4 dersten oluşur.

“Google Tink: Güvenli Üst Düzey Kriptoğrafi” dersinde ne öğreneceğim?

Kriptografi uzmanlığı gerektirmeden yaygın kriptografik işlemleri gerçekleştirmek için Tink'in anahtar kümesi tabanlı API'sini kullanın. Cryptology Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cryptology Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cryptology Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Google Tink: Güvenli Üst Düzey Kriptoğrafi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cryptology Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cryptology Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. libsodium: Yanlış Kullanıma Dayanıklı Kriptoğrafi Kütüphanesi
  2. OpenSSL API'si: Temel Yapılar ve Tuzaklar
  3. Google Tink: Güvenli Üst Düzey Kriptoğrafi
  4. Kriptografik Bağımlılıkları Denetleme ve Seçme
← Cryptology Academy Sayfasına Dön