FIPS 140-2 güvenlik şartlarını karşılamak için Tink'i kullanın

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.