Go için FIPS 140 kodunun ikili dosyalardan çıkarılması önerildi
Öne çıkanlar
- FIPS 140 kodları kullanılmasa bile Go kriptografi ikili dosyalarına varsayılan olarak derleniyor.
- Temel crypto/rand çağrısı bile AES, SHA ve entropi gibi çok sayıda FIPS paketini projeye dahil ediyor.
- Öneriyle GOFIPS140 çevre değişkeninin varsayılan olarak disabled yapılması ve ölü kodların temizlenmesi istendi.
Go programlama dilinin resmi GitHub deposunda açılan yeni bir teklifte, standart kriptografi paketlerine eklenen FIPS 140 kodlarının ikili dosya boyutunu gereksiz yere artırdığı belirtildi. Geliştirici, özellikle rastgele sayı üreticisi gibi FIPS bileşenlerinin kullanıcıların büyük çoğunluğu tarafından çalıştırılmadığını kaydetti. Kullanılmayan bu kodların varsayılan olarak derlenmeye devam etmesi nedeniyle bellek ve disk alanı israfı yaşandığı ifade edildi.
Sorunu somutlaştırmak için hazırlanan testlerde, sadece temel seviyede rastgele bayt okuması yapan yalın bir uygulamanın bile çok sayıda FIPS bağımlılığını projeye dahil ettiği gösterildi. Yapılan incelemede; sisteme özgü sistem çağrılarının yanı sıra kullanıcı alanında çalışan entropi toplayıcılar, SHA türevleri, AES şifreleme blokları ve HMAC gibi geniş bir kod yığınının otomatik olarak ikili dosyaya eklendiği saptandı. Geliştirici, çalışma zamanında devre dışı bırakılabilen bu kodların derleme anında doğrudan elenmesi gerektiğini vurguladı.
Önerilen çözüm kapsamında, Go derleyicisine GOFIPS140 çevre değişkeni için varsayılan olarak disabled değerinin getirilmesi teklif edildi. Bu ayar sayesinde fips140.Enabled sembolü sabit bir false değerine dönüştürülüyor ve kullanılmayan kodlar ölü kod eleme yöntemiyle nihai ikili dosyadan tamamen temizleniyor. İlgili değişikliğin test ve sürekli entegrasyon süreçlerine etkisini çözmek amacıyla da bir dizi yama seti hazırlandı.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.