Tink ile ilk kez çalışmaya başladığınızda, yolculuğunuza başlamadan önce anlamanız gereken bazı temel kavramlar vardır. Bunlar aşağıdaki bölümlerde açıklanmıştır.
Temel Öğeler
Tink, kullanıcıların şifreleme görevlerini güvenli bir şekilde gerçekleştirebilmesi için bir temel algoritmayı yöneten kriptografik yapı taşları olarak temel öğeleri kullanır. Temel öğe, kriptografik bir algoritmanın ve anahtar türünün ayrıntılarını tanımlar.
Tink tarafından desteklenen temel öğeler:
- İlişkilendirilen Verilerle Kimlik Doğrulaması Yapılmış Şifreleme (AEAD): Veri şifreleme için kullanılan en yaygın temel öğedir. Çoğu şifreleme gereksinimi için uygundur. AEAD düz metin gizliliğini sağlar ve bütünlük ile orijinalliğinin doğrulanmasına olanak tanır. İlişkilendirilen Verilerle Kimlik Doğrulaması Yapılmış Şifreleme (AEAD) başlıklı makaleyi inceleyin.
- Belirleyici şifreleme: Belirli bir şifrelenmemiş metin ve anahtar için her zaman aynı şifrelenmiş metni üreten bir temel öğe. Bu durum riskli olabilir çünkü saldırganın belirli bir şifrelenmemiş metni tanımlamak için sadece hangi şifreli metnin girişe karşılık geldiğini öğrenmesi gerekir. Belirleyici AEAD bölümünü inceleyin.
- Dijital imza: İmzalanmış verilerin kimliğini ve bütünlüğünü doğrulamak için kullanılan temel bir asimetrik (Asimetrik anahtar şifreleme). Dijital imza başlıklı makaleyi inceleyin.
- Karma şifreleme: Asimetrik anahtar şifreleme ile simetrik anahtar şifrelemesini birleştiren bir temel öğe (Asimetrik anahtar şifreleme ve Simetrik anahtar şifreleme bölümlerine bakın). Karma şifreleme, simetrik şifrelemenin verimliliğini ortak anahtar şifrelemesinin rahatlığıyla birleştirir. Bir mesajı şifrelemek için yeni bir simetrik anahtar oluşturulur ve şifrelenmemiş metin verilerini şifrelemek için kullanılır. Alıcının ortak anahtarı ise yalnızca simetrik anahtarı şifrelemek için kullanılır. Son şifrelenmiş metin, simetrik şifrelenmiş metinden ve şifrelenmiş simetrik anahtardan oluşur. Karma şifreleme bölümüne bakın.
- Message Authentication Code (MAC) (İleti Kimlik Doğrulama Kodu): Verilerin doğruluğunu ve bütünlüğünü onaylamak için kullanılan temel simetrik (Simetrik anahtar şifreleme) öğesi. İleti Kimlik Doğrulama Kodu (MAC) sayfasına göz atın.
- AEAD Akışı: Akış verileri için kimliği doğrulanmış şifreleme sağlayan temel bir öğedir. Şifrelenecek veriler tek bir adımda işlenemeyecek kadar büyük olduğunda kullanışlıdır. AEAD akışı konusuna bakın.
Uyumluluk bilgileri için Dile göre desteklenen temel öğeler bölümüne bakın.
Daha fazla bilgi için temel tasarım konusuna bakın.
Anahtar türleri
Anahtar türü, belirli bir temel öğeyi uygular. Çoğu temel öğe; güvenlik, çalışma zamanı ve alan gereksinimlerinize bağlı olarak seçebileceğiniz birkaç anahtar türüne sahiptir. Örneğin AES128_GCM, çoğu ihtiyaç için hızlı ve etkili bir AEAD'dir. Dile göre desteklenen anahtar türleri bölümünden daha fazla bilgi edinebilirsiniz.
Anahtarlar ve tuş takımı tutma yerleri
Tink, anahtarları yönetmek için anahtar kümeleri kullanır. Anahtar kümesi, temelde anahtar rotasyonunu kolaylaştıran bir anahtar kümesidir. Bir tuş kümesinin dikkate değer özellikleri şunlardır:
- Bir anahtar kümesindeki her anahtarın, bir anahtar kümesi içinde benzersiz bir kimliği vardır. Bu kimlik, hangi anahtarın kullanıldığını belirtmek için genellikle üretilen her şifreli metne, imzaya veya etikete ön ek olarak eklenir (daha fazla bilgi için Tink'in şifreli metinleri nasıl etiketlediğini inceleyin).
- Bir anahtar kümesinde aynı anda yalnızca bir anahtar birincil olur. Anahtar kümesindeki birincil anahtar şu anda "kullanımda olan" anahtardır.
- Bir anahtar kümesindeki tüm anahtarlar, aynı temel öğenin (AEAD gibi) uygulamaları olmalıdır ancak farklı anahtar türlerine (ör. AES-GCM ve XCHACHA20-POLY1305 anahtarı) sahip olabilirler.
Her Tink uygulaması, anahtar setleri oluşturmak veya düzenlemek için API'ler sağlar. Ancak, KSA aracımız Tinkey'i kullanmanızı öneririz.
Kullanıcılar tuş takımı tutma yerlerini kullanarak tuş kümesi üzerinde çalışırlar. Tuş takımı tutma yeri, gerçek hassas anahtar materyalinin görünürlüğünü sınırlandırır. Ayrıca, kullanıcıların tüm anahtar kümesini "saran" bir temel öğe almasını sağlayan bir anahtar kümesini soyutlar. Örneğin, N
anahtarlarına sahip bir anahtar kümesinin AEAD temel öğesini alabilir; elde edilen temel öğe ile şifreleme ve şifre çözme işlemi ardından anahtar kümesindeki birincil anahtarı kullanabilirsiniz.
Daha fazla bilgi için anahtar seti tasarımı bölümüne bakın.