Tink'in kendisi FIPS 140-2 doğrulanmış olmalıdır. Ancak birçok FIPS'yi destekler. 140-2 onaylı algoritmalar ve temel uygulamalar, gibi doğrulanmış kriptografik modüller BoringSSLs BoringCrypto. Tink, bir FIPS modunda BoringSSL oluşturmak için WORKSPACE.
Çalışma alanının, BoringSSL kullanımınızın FIPS uyumlu olduğundan emin olun. Her zaman web sitesinin resmi güvenlik politikasına tabidir.
Desteklenen algoritmalar
Tink'te bulunan aşağıdaki algoritmalar FIPS 140-2 (daha fazla bilgi için: FIPS 140-2 Ek A):
- Kimliği Doğrulanmış Şifreleme
- AES-GCM
- AES-CTR-HMAC-SHA256
- MAC
- HMAC-SHA256
- AES-CMAC
- Dijital İmzalar
- ECDSA
- RSA-SSA-PKCS1
- RSA-SSA-PSS
C++'ta yalnızca FIPS modu
FIPS 140-2 onaylı algoritmalar kullanmanız gerekiyorsa ve kullanıyorsanız Tink'i yalnızca FIPS modunda derleyebilirsiniz. Bu kısıtlama kullanımı onaylanmış algoritmalara göre ve Tink'in doğrulanmış bir şifreleme modülü kullanılır.
Bu işlem Tink'in davranışını aşağıdaki şekillerde değiştirir:
Register()
işlevleri yalnızca FIPS'e sahip algoritmaları kaydeder doğrulanmış uygulama. Yani bu durumu yalnızca Doğrulanmış bir şifreleme modülü kullanan algoritmalar için anahtar kümeleri.- Tink, BoringSSL'nin BoringCrypto modülüyle oluşturulup oluşturulmadığını kontrol eder.
Modül kullanılmadığında, temel öğelere yapılan çağrılar
INTERNAL
hatası döndürür. kullanılabilir. subtle/
ürününde temel öğelerin kullanımı, doğrulamalı bir şifreleme modülü.
BoringCrypto
Tink, BoringCrypto kullanıyor kullanarak doğrulanmış bir şifreleme modülüne erişim sağlar. Güncel doğrulama durumu, mevcut kaynaklara aşağıdaki ek kısıtlamaları uygular yalnızca FIPS modunda kullanıldığında algoritma algoritmaları:
- AES-CMAC doğrulanmadı ve kullanılamıyor
- RSA-SSA-PKCS1, 3072 bit modülüyle sınırlandırılmıştır
- RSA-SSA-PSS, 3072 bit modülü ile sınırlıdır
BoringCrypto modülünü Bazel ile kullanmak için
C++ koşullarında boringssl
için local_repository
tanımı
ÇALIŞMA ALANI.
Derleme sırasında etkinleştir
Yalnızca FIPS modunda Tink oluşturmak için derleme sırasında bir işaret ayarlayın:
bazel build ... --//third_party/tink/cc/config:use_only_fips=True
Çalışma zamanında Tink'in yalnızca FIPS modunda oluşturulup oluşturulmadığını kontrol etmek isterseniz
sabit değeri sağlayan internal/fips_utils.h
başlığını ekleyebilirsiniz.
kUseOnlyFips
.
Yalnızca FIPS modunda Tink'i oluşturmuyorsanız yine de bazı algoritmalar için doğrulanmış uygulamalar vardır, ancak diğer algoritmalardan farklıdır.
Çalışma zamanında etkinleştir
Yalnızca FIPS modunda Tink oluşturmaya alternatif olarak
config/tink_fips.h
tarafından gönderilen crypto::tink::RestrictToFips()
ve işareti ayarlandı
ve temel FIPS öğelerine uygulanan kısıtlamaları etkinleştirmek için
UYARI: Çalışma zamanı seçeneğini kullanıyorsanız crypto::tink::RestrictToFips()
herhangi bir anahtar materyali işlenmeden, anahtar yöneticisini kaydettirmeden veya
diğer Tink işlevlerini de kullanabilirsiniz. Ayrıca, BoringSSL'nin
BoringCrypto modülüyle oluşturulmuştu. Aksi takdirde Tink,
işleyeceğiz.