RSA Anahtar Üretimi Uygulamasındaki Güvenlik Açığı (ROCA)

Çek Cumhuriyeti Masaryk Üniversitesi’ndeki Kriptografi ve Güvenlik Araştırma Merkezi’nden Slovak ve Çek güvenlik araştırmacıları tarafından Infineon Technologies tarafından geliştirilen bir kod kütüphanesinin içerdiği bir hata nedeniyle RSA anahtar üretiminin uygulanmasında “ROCA” olarak adlandırılan bir güvenlik açığı keşfedildi. Açıklıktan etkilenen şifreleme anahtarları, donanım çipleri, kimlik doğrulama tokenları, yazılım paketleri, elektronik belgeler, TLS / HTTPS anahtarları ve PGP gibi birçok teknolojiyi güvence altına almak için kullanılıyor. Infineon Technologies’in akıllı kartları, güvenlik tokenları ve 2012 yılından beri üretilen güvenli donanım yongaları etkilenen kod kitaplığını kullanıyor. Bu güvenlik açığından yararlanmak isteyen bir saldırgan pratik bir zaman diliminde asal çarpanlara ayırma yöntemini kullanarak genel anahtardan bir özel anahtarı türetebilir.

Ürün ayrıca, işletim sistemlerinde kullanılan güvenilir önyükleme, kimlik doğrulama ve diğer üreticilerin imza ve şifreleme ürünlerine entegre olması nedeniyle bu güvenlik açığı, 2012 yılından bu yana üretilmiş NIST FIPS 140-2 ve CC EAL 5+ sertifikalı cihazlarda bulunabilir.

rsa

Biraz daha açıklamak gerekirse saldırgan, bir genel anahtar değerinden bir RSA özel anahtarı hesaplayabilir. Özel anahtar, oturumu elde etme, hassas iletilerin şifresinin çözülmesi, imzaların sahteciliği (yazılım dağıtımları gibi) ve diğer ilgili saldırılar nedeniyle kötüye kullanılabilir.

Güvenlik açığının gerçek etkisi; kullanım senaryosuna, genel anahtarların kullanılabilirliğine ve kullanılan anahtarların uzunluğuna bağlı olarak değişmekle birlikte, araştırmacılar tarafından, elektronik vatandaş belgeleri, kimlik doğrulama belirteçleri, güvenilir önyükleme aygıtları, yazılım paketinin imzalanması, TLS / HTTPS anahtarları ve PGP de dahil olmak üzere çeşitli alanlarda savunmasız anahtarlar bulundu ve analiz edildi. Yaklaşık olarak 760.000 savunmasız anahtar bulunmuş ve onaylanmış olduğu söylenilmekle birlikte bu sayının 2-3 katı büyüklüğü kadar savunmasız anahtar olduğu düşünülmektedir. Zafiyeti barındıran yongaların kullanımı yaygın olması ve diğer üreticilerin cihazları içerisine yerleştirilebildiği için Infineon Technologies ismi altında satılmamış olabilir. Bu nedenle kullanılmakta olan ürünleri test edilmesi sağlıklı olacaktır.

Araştırmacılar tarafından önerilen çevrimdışı ve çevrimiçi tespit etme yazılımları ile anahtarlarınızı değerlendirebilir ve eğer etkileniyorsanız üreticiniz ile iletişime geçmeniz gerekiyor. Microsoft, Google, HP, Lenovo ve Fujitsu gibi önde gelen sağlayıcılar, yazılım güncellemelerini ve yönergelerini zaten yayınladılar. Ayrıca, asal çarpanlara ayırma yöntemi dahil olmak üzere tüm detaylar 30 Ekim – 3 Kasım 2017 tarihlerinde gerçekleştirilecek olan ACM CCS 2017 konferasında “The Return of Coppersmith’s Attack: Practical Factorization of Widely Used RSA Moduli” ismiyle yayınlacak.

Tespit etme araçları ve geçici çözümler

İlk adım olarak zafiyetli kütüphaneyi barındıran ürünü kullanıp kullanmadığımızı belirlemeliyiz. Güvenlik açığı yonga üzerindeki yazılım kütüphanesinde mevcut olduğundan yalnızca belirli bir donanım kümesiyle sınırlı değil. Her aygıttan bir RSA anahtar çifti oluşturmalı ve sağlanan araçlarla test edilmelidir.

Çevrimdışı test araçları: https://github.com/crocs-muni/roca                       

Çevrimiçi test araçları: https://keychest.net/roca veya https://keytester.cryptosense.com/

Email S-MIME/PGP test aracı: İmzalanmış mail [email protected] adresine gönderilerek analiz sonuçları otomatik olarak gönderilecektir.

Güvenlik açığından etkilenmiş bir anahtar bulunursa, cihaz üreticiniz ile iletişime geçmeli ve aşağıdaki genel tavsiyeler uygulanabilir;

  • Eğer varsa yazılım/firmware güncellenmeli.
  • Zafiyeti barındırmayan başka bir cihaz kullanılabilir
  • Cihazın dışında güvenli bir RSA anahtar ayarı oluşturun (ör. OpenSSL kütüphanesi) ve cihaza aktarın.
  • Etkilenen cihazlarda RSA yerine diğer şifreleme algoritmasını (ör. ECC) kullanın.
  • Kullanılan RSA anahtarı savunmasız olarak algılanırsa, ek güvenlik riskleri uygulanmalı.
  • Son çare olarak, şu anda etkilenmeyen anahtar uzunlukları (ör. 3936 bit) kullanılabilir.

Kaynakça:

https://crocs.fi.muni.cz/public/papers/rsa_ccs17

https://www.cisecurity.org/advisory/a-vulnerability-in-an-implementation-of-rsa-key-generation-could-allow-for-private-encryption-key-disclosure_2017-100/