Hamachi nedir?

Kategori: Programlar, Webmaster Haberler |
Tarih

Hamachi, pek çok deðiþik amaç için kullanabileceðiniz özel bir VPN (Virtual Private Network) uygulamasýdýr. Bu uygulama ile internet üzerinde bir yerel að (LAN) veya VPN kurabilir, iþyerinizden evdeki bilgisayarýnýza baðlanabilir, arkadaþlarýnýzla LAN üzerindeymiþ gibi oyun oynayabilir veya dosya paylaþýmý yapabilirsiniz. Hamachi’yi diðer programlardan ayýran en önemli özellikler, kullanmak için hiçbir ayar yapmanýzýn gerekmemesi, hýzlý ve güvenli olmasýdýr.

Hamachi, Applied Networking Inc. tarafýndan geliþtirilmiþ bir freeware yazýlýmdýr, yani ücretsiz daðýtýlabilir; ama açýk kaynak bir uygulama deðildir. Åžu anda, Microsoft Windows ve Linux iþletim sistemleri için sürümleri mevcuttur, Mac OS X sürümü geliþtirme aþamasýndadýr ve bir deneme sürümü http://forums.hamachi.cc adresinden ulaþabileceðiniz forumda yayýnlanmýþtýr.

Nasýl Çalýþýr?
Hamachi’yi bilgisayarýnýza yüklediðinizde, sisteminizde sanal bir að aygýtý oluþturur. Bu sanal að aygýtý üzerine yollanan tüm IP ve IPX paketlerini daha önceden ilklendirilmiþ, UDP protokolü kullanan bir baðlantýya uygun formata dönüþtürüp aktarýr, yani tüneller. Hamachi’nin hýzlý çalýþmasýnýn en önemli sebeplerinden biri; baðlantýlarýnda optimum paket boyutunu belirleyen, gönderdiði paketlerin hedefine ulaþýp ulaþmadýðýný kontrol edip aldýðý paketler için karþý tarafa bilgi mesajý gönderen TCP protokolü yerine, daha emniyetsiz bir transfer protokolü olan UDP’yi kullanmasýdýr. UDP, TCP’nin kullandýðý pek çok denetimi yapmasa da, uygun koþullarda kullanýldýðýnda TCP’ye göre çok daha hýzlý bir baðlantý saðlar.

Yukarýda UDP baðlantýsýnýn daha önceden ilklendirildiðini söyledik. Åžimdi bunun nasýl olduðundan bahsedelim. Hamachi, geliþtiricilerinin meditasyon sunucusu adý verdikleri 3. bir sunucunu kullanarak hamachi aðý kurmak isteyen iki sunucunun baðlantýsýný ayarlar ve yeniden baþlatýr. Aslýnda, henüz hamachi’ye ait bir patent olmamasý ki açýk kaynak kodu olmamasý buna baðlanýlýyor, hamachi’nin tam olarak nasýl bir uygulama kullandýðýný bilmemizi engelliyor. Fakat yine de bu konu hakkýnda ileri sürülen tezler yok deðil. Örneðin, bahsettiðimiz baðlantý ayarlama iþlemi sýrasýnda, hamachi NAT (Network Address Translation) ile dönüþtürülmüþ IP adreslerini bildiði sunucularýn birbirleriyle baðlantýlarýnýn dýþarýya açýk IP kullanarak, tam ve ayný anda direkt baðlantý kurmalarýný söyler.

Normalde NAT kullanan aygýtlar, istenmeyen paket trafiðini otomatik olarak durdururlar ve böylece baðlantýyý engellerler. Fakat baðlantý için iki sunucunun ayný andaki istekte bulunduðundan, NAT aygýtlarýnýn routerlarýnýn dýþa dönük portlarý gelen trafiði kabul eder. Hangi portu kullanarak baðlantý kurulacaðý konusunda ise, meditasyon sunucusunu baðlantý kurmak isteyen sunucularýn port numaralarýnda sayý sýrasý izlediðini düþünüp, meditasyon sunucusuyla kurduklarý baðlantýda kullandýklarý port numarasýnýn bir sonrakilerini birbirlerine ilettikleri düþünülüyor. Açýlan portlardaki UDP trafiði portun kullanýmýndaki boþ zamana baðlý olarak devam edeceðinden, hamachi periyodik olarak bir paket trafiði saðladýðýnda baðlantý hiç kopmayacaktýr.

Dediðimiz gibi bu sadece bir varsayým. Diðer bir tez ise, hamachi’nin “UDP hole punching” tekniði kullandýðý yönündedir. Buna göre ise, baðlantý kurmak isteyen sunucularýn öncelikle halka açýk IP adresi bilinen 3. bir sunucuyla UDP baðlantýsý kurarak, baðlantý bilgilerini paylaþýp; daha sonra bu bilgiler aracýlýðýyla NAT aygýtlarýnýn da sorun çýkarmayacaðýný umarak baðlantýyý bu iki sunucuya aktarmaya dayanýyor.

Örneðin, A ve B baðlanmak isteyen sunucular, X ise bilinen halka açýk sunucu olsun:

Önce A ve B, X ile baðlantý UDP baðlantýsý kurup, NAT bilgilerini ve baðlantý için atadýklarý geçici port numaralarýný X’e aktarýr.
X bu bilgileri karþýlýklý olarak A ve B sunucularýna gönderir.
A ve B birbirlerinin NAT aygýtlarý ile haberleþir, daha önce X’ gönderdikleri bilgileri onaylayarak UDP baðlantý oluþtururlar.
Bahsettiðimiz bu yaklaþým, sadece “Full cone NAT” tipi cihazlarda, yani herhangi bir iç IP ve port numarasýndan gelen istekler ayný dýþ IP’ye ve port numarasýna yönlendiren NAT cihazlarýnda çalýþmaktadýr. Hamachi’nin p2p baðlantýlarýnýn %97’sine baþarý saðlamasý ve proje geliþtiricilerinin yukarýdaki yaklaþýmýn p2p baðlantýlarýnýn sadece %80′inde baþarýlý olacaðýný savunmasý, bu yaklaþýmýn biraz þüpheli kýlýyor.

Gerçekte ise NAT aygýtlarýnýn %5′inin Hamachi’yi desteklemediði biliniyor. Bunun için hamachi’inin “Magic option” adýnda alternatif bir servisi var. Ayrýca 1.0 versiyonu ile “relayed tunneling” adýnda baþka bir alternatif sunuldu.

Nasýl Kurulur ve Kullanýlýr?
Microsoft Windows kullanýcýlarý için hamachi kurulumu oldukça basit.

http://www.hamachi.cc/download adresinden indirecekleri uygulamayý çalýþtýrýp, yönergeleri izlediklerinde Hamachi kurulmuþ olacaktýr. Linux kullanýcýlarý için durum biraz farklý. Dediðimiz gibi hamachi açýk kaynak kodlu bir program olmadýðýndan, derlenmiþ bir ikili dosya (hamachi) olarak yukarýdaki adresten indirilebilir. Linux üzerinde sanal að aygýtý kurulmasý için TUN/TAP aygýt sürücüsüne gerek duyar. Eðer sisteminizde /dev/net/tun dosyasý varsa sorun yok. Ama yoksa o zaman, http://hamachi.cc/tuntap adresine uðramanýz gerekiyor. Hamachi’yi çalýþtýrmak için gerekli olan root haklarýný ayarlamak için açýk kaynak”tuncfg” adlý yardýmcý bir program ý kurmamýz gerekiyor. Ýndirdiðimiz .tar dosyasýný arþivden çýkarýp, oluþan dizine geçtikten sonra root haklarýna sahip olarak tuncfg programýný kuracaðýz.

# make install

Tuncfg yüklendikten sonra, bu programý root haklarý ile çalýþtýrmamýz gerekiyor.

# sudo /sbin/tuncfg -> (Eðer sudo yüklü deðilse) #su - ; /sbin/tuncfg; exit

Bu komuttan sonra hamachi yüklenmiþ olacaktýr. Hamachi yüklendikten sonra, her iki iþletim sistemi için de yaptýðý ortak bazý iþlemler vardýr. Windows üzerinde program ilk çalýþtýrýldýðýnda, hamachi meditasyon sunucusuna baðlanarak kullanýcýnýn hesabýný kullandýðý sürece onu tanýmlayacak bir Hamachi að adresi atar. Bu adres, 5.x.x.x að adreslerinden biri olacaktýr. Yine program ilk çalýþtýrýldýðýnda, kullanýcý bir RSA anahtarý oluþturur. Bu bilgi meditasyon sunucusuna sadece bu sýrada gönderilir. Daha sonraki baðlantýlarda kullanýcý Hamachi ID’sini (Hamachi að adresi) ve RSA anahtarýný meditasyon sunucusuna gönderir ve sunucu bunlarý doðruladýðýnda baðlantý kurulur. Linux sistemlerinde bu iþlemler kullanýcýnýn vereceði bir komut ile meydana gelir.

# ./hamachi-init

Dediðimiz gibi, hamachi çok kolay kullanýlabilir bir program. Windows kullanýcýlarý bu konuda hiç zorluk çekmeyeceklerdir. Zira ilk çalýþtýrmada, hamachi adým adým ilerleyen bir kýlavuz ile programýn nasýl çalýþtýrýlacaðýný anlatýyor.


Windows kullanýcýlarý için hamachi’nin güzel ve basit bir arayüzü var. Arayüzde, temel iþlevi gören 3buton var. Bunlar, Power , Networking Menu ve System Menu’dür Power butonuna basýnca, bahsettiðimiz iþlemleri yaparak hamachi aðýna baðlanýr. Bu durumda, Networking Menü >> Join Existing Network ile herhangi aða baðlanabilirsiniz. Bu durumda, baðlanmak istediðiniz aðýn ismini ve parolasýný bilmelisiniz. Diðer bir seçenekte kendi aðýnýzý oluþturabilirsiniz. Networking Menü >> Create New Network ile kendi aðýnýza isim ve parola vererek yeni hamachi aðýnýzý kurmuþ olursunuz.

Hamachi baðlantýnýzý kontrol etmek için, ismi “test” ve parolasý “secret” olan deneme sunucusuna baðlanabilirsiniz. Oluþturulan her að öntanýmlý olarak 16 kiþilik olduðundan zaman zaman baðlanmak istediðiniz aðlarýn dolu olmasý sorunuyla karþýlaþabilirsiniz.

Bir aða baðlandýðýnýzda, aðýn ismi ve o anda baðlý olan kullanýcýlarýn listesi sýralanýr. Çevrimiçi olan kullanýcýlarýn yanýnda yeþil renkli bir nokta, baðlantýda sorun yaþayanlarýn yanýnda sarý nokta, o anda baðlantý kuran kullanýcýlarýn yanýnda yanýp sönen yeþil nokta ve çevrimdýþý kullanýcýlar için de gri nokta bulunur. Girdiðiniz aðdan çýkmak için að isminin üzerinde sað týklayýp, “Leave Network”‘e týklamanýz; aðda çevrimdýþý olmak içinse “Go Offline”‘a týklamanýz gerekir. Aðdaki kullanýcýlar, öntanýmlý olarak hamachi ID’leri ve kullanýcý adlarýyla beraber gözükürler. Bunu deðiþtirmek için kullanýcý isimlerinden birine týklayýp, “Set Label” ile sadece takma isimleri veya hamachi ID’leri ile gözükmelerini saðlayabilirsiniz. Ayný þekilde kullanýcýlarý bloklayabilir, ping atabilir veya mesaj atabilirsiniz.


Kullanýcý isimlerine sað týkladýðýnýzda eðer kullanýcý paylaþýma açtýysa bu paylaþýmlara “Browse” seçeneði ile ulaþabilirsiniz. Eðer kendi kuruduðunuz aðý silmek isterseniz að isminin üstüne gelip, “Delete”‘e basarak bunu yapabilirsiniz. Ayný þekilde “Set Password” seçeneði ile parola deðiþtirebilirsiniz. System menüsündeki “Preferences” kýsmýndan; takma isim deðiþimi, çevrimdýþý kullanýcýlarýn saklanmasý veya mesajlaþma ile ilgili ayarlarý yapabilirsiniz.

Linux kullanýcýlarý için bu kadar güzel bir arayüze sahip olmasalar da, ayný iþlevleri kullanabilirler. Ancak öncelikle, hamachi oturumunu baþlatmanýz gerekir. Bunun için:

#./hamachi start

komutunu çalýþtýrmanýz gerekir. Eðer oturumu kapatmak isterseniz, yazacaðýnýz komut;

#./hamachi stop

Oturum ilk defa açýldýðýnda hamachi çevrimdýþýdýr. Çevrimiçi olabilmek için,

#./hamachi login

komutunu yürütmelisiniz. Tekrar çevrimdýþý olmak için ise;

#./hamachi logout

komutunu yürütmelisiniz. Hamachi oturumu “stop” komutu ile her kapandýðýna son durumunu da kaydeder. Yani, eðer “./hamachi stop” komutundan önce çevrimdýþý olmadýysanýz, bir sonraki oturumda “./hamachi login” komutunu çalýþtýrmanýz gerekmez. Hamachi’de her oturum açtýðýnýzda, program size kullandýðýnýz hamachi sürümünü, pid deðerini, durumunuzu ve aðdaki takma adýnýzý gösterir.

Bu iþlemlerden sonra, önceden kurulmuþ bir aða baðlanmak için;

#./hamachi join

kendi aðýnýzý kurmak için ise,

#./hamachi create

komutunu çalýþtýrmalýsýnýz. Her iki durum için devamýnda bir parola belirtmelisiniz. Yine her iki durum için de girdiðiniz aðda çevrimdýþý olarak gözükürsünüz. Çevrimiçi olabilmek için,

#./hamachi go-offline

komutunu çalýþtýrmalýsýnýz. Aðdan çýkmak için ise;

#./hamachi leave

yürütmeniz gerekir. Eðer kurduðunuz bir aðý silmek isterseniz,

#./hamachi delete

komutunu çalýþtýrýyoruz. Aðda istemediðiniz kullanýcýlarý aðdan atmak için,

#./hamachi evict

komutunu kullanabilirsiniz. Eðer aðdaki kullanýcýlarý listelemek isterseniz,

#./hamachi list

komutunu çalýþtýrýyorsunuz. Bu komutun çýktýlarýnda, “[]” köþeli parantezler arasýndaki isimler baðlandýðýnýz aðlarý ve bu isimlerin önündeki asteriks “*” iþaretleri ise bu aðlarda çevrimiçi olduðunuzu gösterir. Kullanýcýlar, hamachi ID - Takma isim – Tünel adresi olarak gösterilir. Örnek olarak;

* [Yeni]
* 5.1.1.12 Dünya
x 5.1.1.17 Mars
5.1.1.45
* 5.1.0.18 Uranüs 10.0.0.100:45634

Yukarýdaki örnekte olduðu gibi, çevrimiçi kullanýcýlar hamachi ID’lerinin yanýndaki asteriks “*” iþareti ile belirtilir. Eðer biliniyorsa, takma isimleri ve tünelleme iþlemi sýrasýndaki IP adresleri belirtilir. Hamachi ID’lerin yanýndaki (x) iþareti bu kullanýcý ile baðlantý kurulamadýðýný gösterir. Eðer kullanýcýlarýn takma isimlerini öðrenmek isterseniz;

#./hamachi get-nicks

komutunu çalýþtýrabilirsiniz. Eðer kendi takma isminizi deðiþtirmek isterseniz,

#./hamachi set-nick

olarak çalýþtýrabilirsiniz.

Her iki iþletim sistemi kullanýcýlarý için de önemli olan bir nokta, hamachi hesap bilgilerinin yedeklenmesidir. Hamachi’de yeni bir að yarattýktan sonra hamachi’yi silmek (sistemin çökmesi veya iþletim sisteminin tekrar yüklenmesi vb. gibi durumlarda.) zorunda kaldýysanýz, daha önce kurduðunuz aðlarýn sizin yönetiminizden çýkmamasý için ayný hamachi hesabýný kullanmanýz gerekir. Tabii, eðer yedekleme yapmadýysanýz bunu yapamayacaksýnýz. Yedekleme iþlemi için Windows kullanýcýlarý, System Menu>>Preferences>>Status kýsmýndaki “Backup Identity” butonu ile bunu yapabilir. Linux kullanýcýlarý ise bunu “hamachi-init” komutundan sonra hesap için oluþturulan (öntanýmlý olarak /root/.hamachi/) dizininin bir kopyasýný alarak yapabilirler.

Peki ya Güvenlik?
Hamachi’nin geliþtiricilerinin övündükleri bir nokta da programýn saðladýðý güvenlik avantajlarýdýr. Daha önce kullanýcýlarýn kendilerine ait özel bir IP aldýðýný ve bir RSA anahtarý oluþturduðunu söylemiþtik. Bunu dýþýnda her hamachi sunucusunun da bir RSA anahtarý vardýr ve bu anahtar bilgileri yükleme paketi içine eklenmiþtir. Bir kullanýcý hamachi sunucusuna baðlanmak istediðinde, istediði sunucuya ait RSA anahtarýný gönderir. Eðer sunucu bu anahtara sahipse, bunu belirterek kullanýcýnýn gönderdiði veriye ait bir imza gönderir ve baðlantý kurulur. Bu baðlantýlar sýrasýnda hamachi’nin yaptýðý anahtar deðiþimi, üretimi ve mesaj þifrelemesi gibi iþlemlerin algoritma ve kurallarý geliþtiricilerinin “Crypto Suite” adýný verdikleri bir uygulamadan alýnýr. Bu uygulama, Diffie-Hellman anahtar deðiþimi, blok þifreleme, mesaj þifreleme ve doðrulama iþlemlerini yapmasý için geliþtirilmiþ. Eðer biraz bu iþlemlerin ayrýntýlarýndan bahsedersek;

*) Diffie-Hellman anahtar deðiþimi, 1976 yýlýnda ayný isimli geliþtiriciler tarafýndan yayýmlanan bir sunucular-arasý gizli parola deðiþimi protokolüdür. Bu protokolün iki p ve g olarak iki gizli olmayan deðiþkeni var. p parametresi bir asal sayý ve g parametresi de p’den daha küçük bir tamsayýdýr. Bu iki deðiþken arasýnda þöyle bir iliþki vardýr:

1′den p-1′e kadar her n sayýsý için bir adet k sayýsý vardýr ki, n = gk mod p.

Peki bu nasýl uygulanýyor? A ve B iki sunucu olsun ve birbirlerinin gizli parolalarýný DH (Diffie-Hellman) protokolü ile deðiþmek istesinler. Bu durumda A, x ve B y olarak iki rastgele sayý seçerler. Daha sonra her ikisi de bu sayýlarý p ve g deðiþkenleri ile türetirler. Bu durumda A’nýn sayýsý gx mod p ve B’nin sayýsý gy mod p olur. Bu sayýlarý birbirleriyle deðiþtiklerinde A gab = (gb )a mod p deðerini, B ise gba = (ga ) b mod p deðerini hesaplar. Bu durumda,

gab = gba = k olacaðýndan, A ile B’nin gizli anahtarý artýk k’dýr. Burada, p asal sayýsýnýn gizli k deðerinin hesaplanmasýný önleyecek kadar büyük olmasý gerekir. Bu algoritma ortadaki adam saldýrýsýna karþý korunmasýzdýr. Örneðin bir C sunucusu, A’nýn B’ye gönderdiði sayýyý engelleyip kendi sayýsýný B’ye gönderebilir. B’nin cevap olarak gönderdiði sayý yerine A’ya yine kendi sayýsýný gönderir. Bu durumda, A ile C ve B ile C arasýnda iki adet gizli parola oluþur. Bu durumda C bu iki parolayý bildiðinden, A ile B arasýndaki trafiði deþifre ederek öðrenebilir.

Bu temele dayanan ve yukarýda açýklanan saldýrýya karþý çözüm getiren Station-to-Station (STS) protokolü 1992 yýlýnda Diffie, Oorschot ve Wiener tarafýndan geliþtirilmiþtir.

*) Blok þifreleme, þifrelenmemiþ belli boyuttaki bir metini þifreleyip ayný boyutta bir veri haline getiren simetrik þifreleme algoritmasýdýr. Bu þifreleme iþleminde kullanýcýnýn belirlediði bir anahtar (parola) kullanýlýr. Deþifre iþlemi yine ayný anahtar kullanarak ilk iþlemin tersi yapýlarak gerçekleþir. Bu iþlemdeki sabit boyuta blok boyutu da denir ve genelde 64 bit olarak belirlenir. Blok þifrelemenin kendi arasýnda da iteratif blok þifreleme ve elektronik kod kitabý gibi birçok deðiþik metodu vardýr.

*) Mesaj denetimi kodlarý (MAC: Message Authentication Code) gönderilen mesajýn üzerinde bir denetim iþlemi yaparak mesajýn bütünlüðünün korunduðuna ve deðiþtirilmediðine dair bilgi içeren verilerdir. Bu veriler sayýsal imzalardan farklý olarak ortak parola ile üretilir ve doðrulanýr. Böylece sadece hedeflenen kiþinin doðrulama denetimi yapmasý saðlanýr. Mesaj denetim kodlarýnýn oluþturulmasýnda da blok þifreleme temelli veya hash-fonksiyonu temelli olmak üzere pek çok deðiþik yöntem kullanýlýr.

Åžimdi bu bilgiler doðrultusunda biraz yukarýda bahsettiðimiz olaylarýn detayýna göz atalým:

Kullanýcý sunucuya önce bir HELO mesajý ile baðlanýr.

HELO CryptoSuite ServerKfp Ni Gi

Burada CryptoSuite kullanýlan öntanýmlý þifreleme algoritmalarýný, ServerKfp sunucunun genel anahtarýnýn parmak izi, Ni ve Gi ise kullanýcýnýn 1024 bitlik DH (Diffie-Hellman) üs deðerleridir. Eðer sunucu ServerKfp ile ayný genel anahtara sahipse, sunucu aþaðýdaki mesaj ile cevap verir.

HELO OK Nr Gr

Burada Nr ve Gr sunucunun DH üs deðerleridir.

Bu durumda, her iki taraf birbirlerinin DH üs deðerlerini bildiðinden, artýk ortak parolayý hesaplayabilirler. Bunu aþaðýdaki þekilde yaparlar:

KEYMAT = T1 | T2 | T3 | …
T1 = prf (K, Ni | Nr | 0×01)
T2 = prf (K, T1 | Ni | Nr | 0×02)
T3 = prf (K, T2 | Ni | Nr | 0×03)

Burada K, DH algoritmasýna ait gizli bir deðer ve prf ise HMAC-SHA1 þifreleme uygulamasýdýr. Baðlantýda kullanýlan tüm ileti trafiði KEYMAT fonksiyonundan türetilen Ka anahtarý ile denetlenen Ke anahtarý ile þifrelenir. Öntanýmlý CryptoSuite KEYMAT ile türetilen deðerin ilk 256 bitini Ke ve sonraki 160 bitini Ka olarak kullanýr.

Artýk kullanýcý sunucu ile baðlantý kurduðuna göre, hamachi’de oturum açmasý gerekir. Bunun için kullanýcý sisteme AUTH mesajý iletir.

AUTH Kimlik Ýmza(Ni | Nr | Gi | Gr, Kpri_cli)

Bu iletide, Kimlik kullanýcýnýn 32 bitlik hamachi IP adresi ve Ýmza ise, kullanýcýnýn daha önceki iletilerden edindiði DH üs deðerleri ve sonucunda hesapladýðý gizli DH parolasýnýn SHA1 çýktýsýdýr. Sunucu Kimlik deðerinden kullanýcýya ait hesabý bulur ve kendi hesapladýðý Ýmza deðeri ile karþýlaþtýrýr. Eðer uyuþma varsa,

AUTH OK Ýmza(Nr | Ni | Gr | Gi, Kpri_srv)

iletisiyle cevap verir. Buradaki Ýmza deðeri ise sunucunun HELO mesajýnda aldýðý ServerKfp ve kendi hesapladýðý gizli DH parolasý deðerleriyle oluþturduðu SHA1 çýktýsýdýr.

P2P baðlantý
Meditasyon sunucusu kullanýcýlar arasýnda tünelleme yaptýktan sonra, SPI adý verilen iki adet 32 bitlik rasgele deðer üretir. SPI deðerleri her iki yöndeki ileti akýþýný etiketlemek için kullanýlýr. Kullanýcýya bir UDP paketi geldiðinde paketten SPI deðeri ile karþýsýndaki kullanýcýyý belirler ve parola deðerini hesaplayýp, deþifre etme ve doðrulama iþlemlerini yapar.

0.9.9.5 sürümünden önceki programlar için KEYMAT deðerleri meditasyon sunucusu üzerinden hesaplanýrken, 0.9.9.6 sürümü ve sonrakiler için KEYMAT deðerleri kullanýcýlarýn kendisi tarafýndan hesaplanýyor. Bu iþlemi kýsaca açýklarsak;

Öncelikle kullanýcýlardan SPI deðeri daha küçük olaný, baðlantýyý baþlatan olarak seçilir ve karþýsýndakine KE1 Ni Gi | Ni ve Gi baðlantýyý baþlatan sunucunun DH üs deðerleri. mesajýný göndermeye baþlar. Bu iþlemi karþý taraftan cevap gelmediði sürece N ms’de bir gönderir. Diðer taraf karþýlýk olarak aþaðýdaki mesajý gönderir:

KE2 Nr Gr Ýmza(Nr | Ni | Gr | Gi, Kpri_r)

Burada Nr ve Gr cevap veren tarafýn DH üs deðerleri ve Ýmza ise cevap veren tarafýn gizli parolasý ile oluþturulmuþ SHA1 çýktýsýdýr. Bu durumda cevap veren, Ni ve Gi deðerlerinin gerçek deðerler olmamasý tehlikesi sebebiyle P2P parola deðerlerini türetmez ve sadece Nr ve Gr deðerlerini gönderir.

Baðlantýyý baþlatan taraf, Ýmza deðerini doðrularsa yukarýda bahsedilen KEYMAT’i kullanarak P2P parola deðerini üretir ve karþý taraftan cevap alana kadar belli aralýklarla bu mesajý karþýya iletir.

KE3 Ni Gi Ýmza(Ni | Nr | Gi | Gr, Kpri_i)

Son olarak cevap veren taraf P2P parola deðerini hesaplayýp, baðlantýyý baþlatan tarafýn gönderdiði deðeri doðrularsa, karþýya anahtar deðiþiminin baþarýyla tamamlandýðýný bildiren bir ileti gönderir.

Anahtar deðiþimi sýrasýnda, kullanýcýlarýn birbirlerinin imzalarýný doðrulamalarý için, birbirlerinin gizli olmayan anahtar deðerlerini bilmeleri gerekir. Bu deðerleri ya meditasyon sunucusu yardýmýyla ya da karþýdaki kullanýcýdan baþka bir yolla edinip yükleyerek alýrlar.

Mesajlarýn Güvenliði
Mesajlar 256 bitlik simetrik þifreleme algoritmasý ile þifrelenir ve yukarýda açýkladýðýmýz MAC ile doðruluðu denetlenir. Her mesaj kendine özel bir mesaj numarasý alýr. Ýleti þifrelenmeden önce, eðer gönderilecek veri blok þifreleme için küçükse, ESP yöntemi ile veri gerekli boyuta uzatýlýr. Sonra mesaja ait bir IV deðeri hesaplanýp mesaja eklenir ve mesaj þifrelenir.

Åžifrelenmiþ mesaja tekrar olarak IV deðeri ve özel bir mesaj numarasý (sürekli artan 32 bitlik bir deðer) eklenir. Eðer TCP protokolü ile yollanacaksa, boyut baþlýðý, UDP ile yollanacaksa SPI deðeri þifrelenmiþ mesaja eklenir. Sn olarak bu mesaj üzerinde bir HMAC-SHA1 imza deðeri üretilir ve mesaja eklenip karþýya yollanýr.

Bu þifreleme metodu TLS ve IKE/IPsec ile belirtilen metotlarla uyumludur.

Ne için kullanabiliriz?
En baþta bahsettiðimiz gibi, hamachi çok amaçlý bir VPN uygulamasýdýr. Yukarýda kendinize ait bir aðý nasýl oluþturabileceðinizden bahsettik. Bu að üzerinden yerel að üzerinde yaðabileceðiniz pek çok iþlemi gerçekleþtirebilirsiniz. Örneðin, VNC (Virtual Network Computing) trafiðini tünellemek için hamachi’yi kullanabilirsiniz. Bu sayede baðlandýðýnýz bilgisayarýn masaüstünü görebilir ve ekran baþýndaymýþ gibi karþýdaki bilgisayarý yönetebilirsiniz. Microsoft Windows üzerinde Remote Desktop uygulamasýný hamachi IP adresi ile çalýþtýrarak ayný iþlemi yapabilirsiniz.

Eðer dosya paylaþýmý yapmak istiyorsanýz, bu da çok basit birkaç iþlem ile yapýlabilir. Güvenlik açýsýndan Windows iþletim sistemleri dosya paylaþýmýný engeller fakat Windows üzerinde paylaþmak istediðiniz dosyalara ait dizinlerin üzerine sað týklayýp, Özellikler ile açýlan pencerede Paylaþým sekmesinden bunu yapabilirsiniz. Daha sonra, Baþlat>>Denetim Masasý>>Að Baðlantýlarý içindeki hamachi að baðlantýnýza sað týklayýp Özelliklerden hamachi üzerinde Dosya paylaþýmýnýn aktif olduðundan emin olun. Linux kullanýcýlarý için ise, Samba gibi dosya paylaþým programlarýnda ayarlarýný hamachi’nin oluþturduðu sanal að aygýtý üzerinden yapmalarý yeterli olacaktýr.

Hamachi’nin kullanýmýný yaygýnlaþtýran en önemli sebeplerden biri de internet üzerinde oyunlarýn oldukça hýzlý oynanmasýný saðlamasýdýr. Eðer hamachi ile oyun oynamak isterseniz, karþýnýzda iki seçenek var. Ya kendi aðýnýzý yaratýp, bu að üzerinde oyunun ayarlarýný yaparak arkadaþlarýnýzýn oyuna dâhil olmasýný beklersiniz, ya da diðer hamachi kullanýcýlarýnýn oyun için açmýþ olduklarý aðlara baðlanýp, bir oyuna dahil olabilirsiniz. Unutulmamasý gereken, her hamachi aðýndaki toplam kullanýcý sayýsý en fazla 16 olabiliyor. Dünya üzerinde hangi oyunlar için hangi aðlarýn açýldýðýný http://redboxen.ath.cx/hamachimap/ adresinden öðrenebilirsiniz. Oyunlarý hamachi üzerinden oynamak için oyunlar üzerinde ne gibi deðiþikler yapýlmasý gerektiðini öðrenmek için ise, http://www.hamachiturk.com adresine bakabilirsiniz. Unutulmamasý gereken, her hamachi aðýndaki toplam kullanýcý sayýsý en fazla 16 olabiliyor.

Sonuç
Hamachi hem sunduðu kullaným seçenekleri hem de kullanýmdaki inanýlmaz kolaylýðý ile uzunca bir süre kullanýcýlarýn gözdesi olabilir. Ayrýca oldukça güvenli olmasý da büyük bir artý. Önümüzdeki dönemde hamachi’nin açýk kaynak bir iþletim sistemi projesine dahil olmasý düþünülüyor. Belki ileride bu inanýlmaz programcýðýn nasýl çalýþtýðýný keþfetme imkaný bulabiliriz.

Kaynaklar
http://hamachi.cc

No tag for this post.

4 Yorumlar Hamachi nedir? konusuna”

  1. yigini Says:

    Ellerinize saðlýk.. deniycez

  2. Levent Says:

    Güzel Sauk ;)

  3. sergen Says:

    http://www.hamachigame.com adresinden hamachi oyunlarýyla ilgili server bilgilerine ulaþabilirsiniz.

    Benim serverede baðlanýn :)

  4. Webmaster Kaynak Sitesi Says:

    ehehe iyi cm oynuyan varsa bildirsin server adýný baglanalým

Yorum Yaz

Free Desktop Wallpapers