Wednesday, August 13, 2014

Personal Data

According to Gartner, by 2019, 90% of organizations will have personal data on IT systems they don't own or control.

It seems that it is going to be a big problem against the privacy of most of the people on the planet.

(For more: http://www.gartner.com/newsroom/id/2513615)

Friday, June 27, 2014

IT Security Principles

According to NIST there are 33 IT security principles which are grouped into six categories: 1) Security Foundation 2) Risk Based 3) Ease of Use 4) Increase Resilience 5) Reduce Vulnerabilities 6) Design with Network in Mind.

These principles can be found in the document with NIST code 800-27 in the following link: (http://csrc.nist.gov/publications/nistpubs/800-27A/SP800-27-RevA.pdf)

NIST: National Institute of Standards and Technology

Wednesday, June 25, 2014

Security vs Coffee?

I want to share here an old comment on IT security which was told by Richard Clarke during the RSA Conference 2002. Richard Clarke was the former national coordinator for Security, Infrastructure Protection and Counter-terrorism for the United States.

"If you spend more on coffee than on IT security, then you will be hacked... What's more, you deserve to be hacked."

Tuesday, June 24, 2014

Otomatik Anahtar Şifrelemesi (Autokey Cipher)

Bu yazımızda otomatik anahtar şifrelemesini (autokey cipher) bir örnekle açıklamaya çalışacağız.

Otomatik anahtar şifrelemesi ilk olarak bir İtalyan matematikçi ve fizikçisi olan Gerolamo Cardano tarafından bulunmuştur. Gerolamo Cardano bu yönteminin en büyük zayıflığı şifrelenecek metnin kendisini anahtar olarak kullanmasıydı. Bu zayıflığı gidermek amacıyla 1564 yılında İtalyan kriptolog Giovan Battista Bellaso tarafından beş harflik bir tablo kullanıldı. 1586 yılında Fransız kriptolog Blaise de Vigenère bunun bir adım ötesine geçerek bu tabloyu on harfe çıkardı.

Otomatik anahtar şifrelemesi "tabula recta"nın kullanılmasıyla bu yazıda anlatacağımız hali aldı. Latince bir tabir olan "tabula recta" alfabenin kare şeklinde bir tablosu anlamına gelmektedir.

Aşağıdaki şekilde Türkçe "tabula recta"yı görebilirsiniz. İnternette Türkçe bir "tabula recta" bulamadığım için tabloyu en baştan kendim oluşturdum.
Not: Harf sıralamasında "İ" harfinin "I" harfinden önce geldiğine dikkat etmişsinizdir. Yaygın kullanıma göre bizler "I" harfini "İ" harfinden önce söyleriz ama 01.11.1928 gün ve 1353 sayılı "Türk Harflerinin Kabul ve Tatbiki Hakkında Kanun"a göre alfabemizde "İ" harfi "I" harfinden önce gelmektedir. Alfabemizde "İ" harfi 11. sırada, "I" harfi ise 12. sıradadır.

Şimdi yukarıdaki bu tabloyu kullanarak bir otomatik anahtar şifrelemesi örneği vereceğiz. Şifrelenecek metnimiz, "BUL BENİ BULAMAM SENİ", şifre sözcüğümüz de "ULAUŞAĞUM" olacak.

Önce şifrelenecek sözcükleri boşluk bırakmadan yan yana yazalım:
BULBENİBULAMAMSENİ

Sonra bunun tam altında şifre sözcüğümüzü yazacağız:
BULBENİBULAMAMSENİ
ULAUŞAĞUM

Şifre sözcüğümüz orijinal metinden daha kısa olduğu için eksik kalan kısmı orijinal metinle dolduracağız:
Metni şifrelemek için bu aşamadan sonra ""tabula recta"yı kullanacağız.

Orijinal metnin ilk harfi "B" harfi, buna karşılık gelen şifre sözcüğümüzün ilk harfi de "U" harfi. "tabula recta"nın dikey sütununu "orijinal metin" için yatay sütununu da "şifre sözcüğümüz" için kullanıyoruz. Yani dikey sütundaki "B" harfiyle, yatay sütundaki "U" harfinin kesişimi şifreli ilk harfimiz olacak. Bu durumda şifreli ilk harfimiz "Ü" harfi oluyor. Aynı şekilde orijinal metin içerisindeki ikinci harf olan "U" harfiyle, şifre sözcüğünün ikinci harfi olan "L" harflerinin kesişimi de "H" harfi olacak. Orijinal metnin üçüncü harf olan "L" harfiyle şifre sözcüğünün üçüncü harfi olan "A" harfinin kesişimi de "L" harfi olacak.
Bu şekilde harfleri teker teker bulduğumuzda şifreli metnimiz aşağıdaki gibi olacaktır:
Benzer şekilde aşağıda iki örnek daha verilmiştir:
Orijinal metin: BEN BİR CEVİZ AĞACIYIM GÜLHANE PARKINDA
Şifre sözcüğü: ESSE Mİ DERSUN BAA
Şifreli metin: FVĞFÜBFİOCTNHACJÇYNONNLVVDAĞAMŞLMM

Orijinal metin: BİNDİK Bİ ALAMETE GEDEYOZ GIYAMETE
Şifre sözcüğü: HAÇAN DOĞRİ Mİ DERSUN
Şifreli metin: İİPDVOÖÖRUMÜHZÜZARFĞDÇOUZİMPTR

Örneklerden de anlaşılacağı gibi bu şifreleme yönteminde hangi dilde şifreleme yapıldığı, alfabedeki harf sayısı ve harflerin sırası da önemli.


Wednesday, July 25, 2012

Cisco Yönlendiricilerde IPSec VPN Konfigürasyonu

Selamlar bu yaızmızda Cisco marka yönlendiricilerde IPSec VPN konfigürasyonunun nasıl yapılacağını anlatmaya çalışacağız.

Konfigürasyonları aşağıdaki topolojiye göre yapacağız:

Amacımız ANKARA yönlendiricisine bağlı olan 172.30.4.0/24 ağından TRABZON yönlendiricisine bağlı olan 192.168.1.0/24 ağına yapılacak erişimlerin şifreli gitmesi. Bunu da Cisco marka yönlendiriciler üzerinde IPSec VPN yaparak sağlamaya çalışacağız.

IPSec VPN konfigürasyonu dört adımda gerçekleştirilir:

1) IKE (Internet Key Exchange) 1. Faz parametrelerinin belirlenmesi
2) IKE (Internet Key Exchange) 2. Faz parametrelerinin belirlenmesi
3) "interesting traffic" tanımının yapılması
4) "crypto map" oluşturulması ve bunun yönlendiricide bir ara yüze uygulanması.

Yukarıdaki adımlar IPSec VPN yapacak olan her iki yönlendiricide aynı şekilde tanımlandığı takdirde IPSec VPN tüneli kurulmuş olur. Şifreli iletişimin gerçekleştirilebilmesi için her iki yönlendiricinin VPN ayarlarının bire bir aynı olması gerekir.

Önce ANKARA yönlendiricisinde IKE 1. Faz için gerekli olan parametreleri girmekle konfigürasyona başlayalım. Bunun için ANKARA yönlendiricisinde bir politika tanımlamakla işe başlıyoruz. Politikamıza 61 numarasını veriyoruz:

ANKARA(config)#crypto isakmp policy 61

Şimdi hangi kimlik doğrulama mekanizmasını kullanacağımızı politikamızın içine yazıyoruz. Bu konfigürasyonda her iki tarafın bileceği statik bir şifre kullanılacak şekilde konfigürasyonumuzu yapıyoruz:

ANKARA(config-isakmp)#authentication pre-share

Sonraki adımda hangi "hash" fonksiyonunu kullanacağımızı politikanın içerisinde yazıyoruz.

ANKARA(config-isakmp)#hash sha

Yukarıdaki örnekte "sha" algoritmasını kullanacağımızı belirttik. Buna alternatif olarak "md5" algoritmasınıda kullanabilirdik.

Bir sonraki adımda kullanacağımız şifreleme algoritmasını seçeceğiz.

ANKARA(config-isakmp)#encryption 3des

Yukarıdaki örnekte "3des" şifreleme algoritmasını tercih ettik. Buradaki alternatiflerimiz "aes" ya da "des" olabilirdi.

IKE 1. Faz'ın son adımı olarak Diffie-Hellman grubunu seçeceğiz ve şifrelerin geçerlilik süresini tanımlayacağız.

ANKARA(config-isakmp)#group 2
ANKARA(config-isakmp)#lifetime 28800  (24 saat)

Buna göre IKE 1. Faz konfigürasyonumuz aşağıdaki gibi oldu:
ANKARA(config)#crypto isakmp policy 61
ANKARA(config-isakmp)#authentication pre-share
ANKARA(config-isakmp)#hash sha
ANKARA(config-isakmp)#encryption 3des
ANKARA(config-isakmp)#group 2
ANKARA(config-isakmp)#lifetime 28800 

Burada yaptığımız işi şöyle özetleyelim: ANKARA yönlendiricisine bir adet VPN politikası tanımı yaptık. Bu politika kullanıldığı zaman geçerli olacak olan kimlik doğrulama ve "hash" alma yöntemlerini, şifreleme algoritmasını ve Diffie-Hellman gruplarını tanımladık. (pre-shared key, SHA, 3DES ve Grup 2)

Kimlik doğrulama mekanizması olarak "preshared key" seçeneğini seçmiştik. Bu da her iki yönlendiriciye ortak bir şifre tanımı yapmamızı gerektiriyor. IKE 1. Faz'ın son adımında konfigürasyona ortak bir şifre gireceğiz.


ANKARA(config)#crypto isakmp key mytooStrongKEy!* address 130.13.140.130

Konfigürasyonun show run çıktısı aşağıdaki gibi olacaktır:
crypto isakmp policy 61
       encr 3des
       authentication pre-share
      group 2

Bu konfigürasyon satırına yazmış olduğumuz adres IPSec VPN yapacağımız yönlendiricinin adresidir.

Böylece IKE 1. Faz'da ISAKMP politikasını tanımlayarak konfigürasyonu tamamlanmış olduk. Şimdi IKE 2. Faz'ın parametrelerini gireceğiz.

IKE 2. Faz'a "IPSec negotiation" fazı da denir. Bu fazda "IPSec transform set"i tanımlayacağız.

ANKARA(config)#crypto ipsec transform-set MY_TRANSFORM_SET esp-aes 128 esp-sha-mac

Burada IPSec için hangi şifreleme ve "hash" algoritmasını kullandığımız tanımladık. Yukarıdaki satırda IPSec için 128-bitlik AES şifreleme algoritmasını ve ESP-SHA-HMAC "hash" algoritmasını kullanacağımızı tanımladık.

IKE 2. Faz verinin nasıl şifreleneceğini ve "hash"inin nasıl alınacağını tanımlar. IKE 1. Faz'daki tanımlar da yönetim trafiğinin nasıl şifreleneceğini ve "hash"inin nasıl alınacağına dairdir.

IKE 2. Faz tanımı bu kadardır.

Şimdi de "interesting traffic" tanımını yapmamız gerekiyor. Bunun için bir erişim kontrol listesi (ACL: access control list) kullanacağız. "interesting traffic" IPSec VPN tünelinin kurulması için gerekli olan trafiktir. Bu senaryoda ANKARA yönlendiricisi için 172.30.1.0/24 ağından 192.168.1.0/24 ağına giden trafik "interesting traffic" olarak tanımlanacaktır. (TRABZON yönlendiricisi için tam tersi olacak.) Yani ANKARA yönlendiricisi 172.30.1.0/24 ağından 192.168.1.0/24 ağına giden bir trafikle karşılaştığı zaman bu trafiği IPSec VPN tüneline sokacaktır.

Şimdi bu tanımı yapalım:

ANKARA(config)#ip access-list INTERESTING_TRAFFIC
ANKARA(config-ext-nacl)#permit ip 172.30.1.0 0.0.0.255 192.168.1.0 0.0.0.255

Bu tanıma göre ANKARA yönlendiricisi 172.30.1.0/24 ağından 192.168.1.0/24 ağına bir trafik yakaladığı takdirde bu trafiği IPSec VPN tüneline sokacaktır.

Bu IPSec VPN politikalarının yönlendiricinin bir ara yüzüne uygulanması gerekmektedir. Fakat bundan önce yönlendiriciye bir "crypto map" tanımı girmemiz gerekiyor. Bu tanımda IPSec VPN yaparken hangi IP adresiyle VPN tüneli kurulacağı, hangi trafiğin tüneli tetikleyeceği ve hangi "transform set"inin kullanılacağı yer alacak.


ANKARA(config)#crypto map ANKARA_to_TRABZON 61 ipsec-isakmp
ANKARA(config-crypto-mapl)#set peer 130.13.140.130 (IPSec VPN yapılacak yönlendiricinin IP adresi)
ANKARA(config-crypto-mapl)#match address INTERETSING_TRAFFIC (VPN tünelini tetikleyecek trafik)
ANKARA(config-crypto-mapl)#transform-set MY_TRANSFORM_SET (VPN tünelinde kullanılacak şifreleme ve "hash" algoritması)

Tüm bu tanımlardan sonra yukarıdaki "crypto map"i ANKARA yönlendiricisinin bir ara yüzüne (tercihen internete çıkan ara yüzüne) uygulamamız gerekiyor.


ANKARA(config)#interface serial 0/1
ANKARA(config-if)#crypto map ANKARA_to_TRABZON

Böylece ANKARA yönlendiricisi üzerindeki IPSec VPN tanımlarını tamamlamış olduk. Tanımlarda yer alan IPSec VPN parametreleri aynı olacak şekilde TRABZON yönlendiricisine de benzer tanımların girilmesi gerekmektedir.

Aşağıda IPSec VPN tünelinin kurulabilmesi için TRABZON yönlendiricisinde olması gereken konfigürasyon satırları yer almaktadır. (Bu yazının konusu olmadığı için bu konfigürasyonda her iki yönlendiriciye yön (routing) tanımlarının nasıl girileceğini göstermedik. Yön tanımları doğru olmadığı takdirde iki yönlendirici arasında herhangi bir tünel kurulması mümkün olmayacaktır.)


TRABZON(config)#crypto isakmp policy 61
TRABZON(config-isakmp)#authentication pre-share
TRABZON(config-isakmp)#hash sha
TRABZON(config-isakmp)#encryption 3des
TRABZON(config-isakmp)#group 2
TRABZON(config-isakmp)#lifetime 28800
TRABZON(config-isakmp)#exit
TRABZON(config)#crypto isakmp key mytooStrongKEy!* address 130.13.140.129
TRABZON(config)#ip access-list INTERESTING_TRAFFIC
TRABZON(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 172.30.1.0 0.0.0.255
TRABZON(config-isakmp)#exit
TRABZON(config)#crypto map TRABZON_to_ANKARA 61 ipsec-isakmp
TRABZON(config-crypto-mapl)#set peer 130.13.140.129
TRABZON(config-crypto-mapl)#match address INTERETSING_TRAFFIC 
TRABZON(config-crypto-mapl)#transform-set MY_TRANSFORM_SET 
TRABZON(config-isakmp)#exit
TRABZON(config)#interface serial 0/1
TRABZON(config-if)#crypto map TRABZON_to_ANKARA