Yan Kanal ile Anahtar Toplamak

Kriptografik fonksiyonların kırılmasında genelde matematiksel ve hesaplamalı yöntemler akla gelir. Oysa “Yan kanal saldırısı” adı verilen bir saldırı sınıfı, donanımsal özelliklerin kötüye kullanılması sayesinde yazılımda kapattığımızı sandığımız kapıların ardından dolanabilir.

Bu saldırılara dair yazılarda genellikle bunların teorik yönleri üzerinde durulur ve “yazılımdaki görünür açıkları kapamanın yetersizliği” vurgusuyla birlikte “böyle bir olası saldırı alanına” işaret edilir. Yani yan kanal saldırıları sanki gerçekte yoktur da biz “ne olur ne olmaz” haberdar oluruz.

Bu yazıda buna kısmi bir istisna oluşturmaya çalışacağız. Birincisi, yakın zamanda yapılan bir gerçek saldırı gösterisine işaret edeceğiz. Bu her ne kadar bir kavram kanıtlama (proof of concept) gösterisi olsa da gerçek yaşamda da bu saldırıların ne denli olası olduğunu yeterince sergilemiş oldu. İkinci olarak da bu saldırıya karşı neler yapılabileceğini tartışacak, son olarak da güncel durum üzerinde duracağız.

Örneğimizdeki saldırı veriye bağlı olarak değişen hesaplamaların donanımdaki farklılıklarını izlemeye dayalı. Somutlamak gerekirse iki büyük sayıyı çarparken çarpanın ikili gösteriminde belli bir bitin sıfır olması durumunda bir şey yapılmamakta, bir olması durumunda da çarpılan yeterince kaydırılarak toplanmaktadır. Bu iki durum arasındaki fark donanımda işlemcinin yükündeki fark ve dolayısı ile içerideki güç kullanımı ve devrelerdeki hareketlilik olarak dışa vurulmaktadır. Biraz daha somutlarsak, söz konusu bit sıfırken sakin duran donanım bir olduğu durumda hareketlenmekte, elektrik tüketimi ve çıkardığı sesler değişmektedir.

Aralarında RSA’nın S’sinin de (Adi Shamir) bulunduğu bir araştırmacı grubu bu değişimleri çeşitli biçimlerde toplayıp anahtarları elde etmeyi başarmışlar. Örneğin parabolik bir mikrofonla 4 metre uzaklıktan, veya bir cep telefonu mikrofonu ile 30 cm mesafeden topladıkları birkaç saatlik sesten anahtarlar çıkarılabilmiş. Bir diğer yöntem de bilgisayar kasasından veya VGA, USB vb. Dış kabloların öbür uçlarındaki toprak ucundan elde ettikleri ince voltaj farklarından da aynı saldırının tekrarlanması.

Bu tarz saldırılardan korunmak için genellikle sunucuların fiziksel izolasyonu önerilir. Doğrusu en gelişkin yöntem gerçekten de ses için ses izolasyonu, elektromanyetik ve elektrik sızıntılar için de faraday kafesi kullanımıdır. Ancak bir diğer yöntem de yazılımda “körleştirme” denilen bir tekniğin kullanımı ile sızıntıların üzerini örtmek. Somut örneğimize dönersek aralara gereksiz işlemlerin serpiştirildiği durumda hangi işlemin şifrelemenin gereksinimi hangi işlemin ise körleme işlem olduğunu ayırd etmek güçleşmekte ve fiziksel izolasyonun içine sızan saldırganın da anahtarı elde etmesi imkansızlaşabilmekte.

En yaygın kullanılan şifreleme kütüphanelerinden GPG’nin son sürümleri bu saldırıya karşı körleştirmeyi uygulamaya başladılar bile. Yine de hem eski kütüphaneleri kullanan yazılımların yaygınlığı, hem de yan kanal saldırılarda henüz yolun başında olduğumuz düşünüldüğünde güvenlik üzerine düşünenlerin bu yöne yüzlerini dönmelerinin gerekliliği hissedilebiliyor.