Şifreleme teknikleri ve ssl

Post on 23-Jan-2018

517 Views

Category:

Engineering

7 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SSL ve

Encryption

(One &Two Way)

Hazırlayan: Tolga ÇELİK

https://tr.linkedin.com/in/celiktolga

tolgaclk7@gmail.com

Şifreleme (Encryption)

Şifreleme (Encryption) Nedir?

Neden Yapılır?

• Şifreleme (Encryption) bir mesaj veya bilginin sadece

yetkili kişilerin okuyabileceği şekilde kodlanması

işlemidir.

• Neden şifreleme mi ? GÜVENLİK & GİZLİLİK

• Bir mesajı istenmeyen kişiler tarafından erişilmeden,

gitmesi gereken yere güvenli ulaştırmak.

One Way Encryption (Hashing)

• Hash fonksiyonu farklı uzunluktaki bir veriden sabit uzunlukta string ya da sayı üretmekte olup.

• üretilen çıktıya ise hash değeri denilir. (hash value)

• Farklı verilerin hash değerleri aynı olamaz. Yani hash değerleri unique olur.

• tolga1 19d63a81a16d526516d2ac0ac7a322da

• tolga2 1c92b2de761e0e7aee38f16a576e42e5

• Hash algoritması, bir hash değerinin geri dönüştürülmesi imkansız olduğu için

• Tek yönlüdür. one way encription

message Hash

Hash

Eşit mi?

Parola Doğrulama

Tolga#4VKU

h

661dce0da2bcb2d8 2884e0162acf8194

Parola

Deposu

Tolga #4VKU

h

661dce0da2bcb2d8 2884e0162acf8194

661dce0da2bcb2d8 2884e0162acf8194

veri tabanı

tam eşleşiyor mu?

İzin Ver Reddet Evet Hayır

Şifreli Parolayı depolama Şifrelenmiş saklı parola ile girilen parolanın onaylanması

Hash özetle

• Tek yönlü şifrelemenin ana kullanım amacı Parola Doğrulama, Onaylama (login) (salt ile)

• Ancak mesaj iletimi için hashing tercih edilmez.

• Gönderilen mesaj/bilginin içeriğini karşı tarafında görebilmesi gereken durumda ise çift taraflı şifreleme gerekir.

• Bunun içinde lazım olan bir ANAHTAR dır (KEY).

• Şifrelenen bir metinin gittiği yerde anahtar ile açılması ve tekrar bize şifrelenerek gönderilmesi: çift yönlü şifreleme olur.

Çift Yönlü Şifreleme (Two Way Encryption)

• Simetrik Şifreleme (Symmetric Encryption )

• Asimetrik Şifreleme (Asymmetric Encryption )

Simetrik Şifreleme

(Symmetric Encryption )

• Gizli anahtarlı şifreleme ( private key/ secret key )

• Tek bir anahtar (Single Key) kullanılır, dolayısyla

şifreleme ve şifre çözmede aynı anahtar kullanılır.

• Çok iyi saklanmalıdır !!!

• Shared key Paylaşılan anahtar karşıya verilir.

• .

• Şifrelenen mesajlar «Ciphertext» olarak adlandırılır.

• Gizli anahtarla şifrelenip yine aynı gizli anahtar ile açılır..

Dezavantajı

• Simetrik Şifreleme ile gönderilen mesajın güvenliği çok iyi

sağlanır ancak; Anahtarı güvenli yollardan iletmek oldukça

zordur.

• Shared Key in 3. kişilerin ( ) şifreleye erişimesi gibi

büyük bir risk oluşuyor.

• Çok kullanıcılı uygulamalarda gizli anahtarı vermek zahmetli ve

riskli

• Daha etkili ve güvenli bir yol için ne yapmalı ozaman?

Çözüm ???

AÇIK ANAHTAR

(PUBLIC KEY)

• Herkese verebileceğim açık olan genel bir anahtar olmalı ;

• Açık Anahtar ( Public Key)

• Mesajı açabilen ise tek bir gizli anahtar olmalı (decryption)

(Private Key –Secret Key)

• Bu yöntem => «Asimetrik Şifreleme» .

(Açık Anahtarlı Şifreleme)

Asimetrik Şifreleme (Anahtarlı Şifreleme)

• Genel anahtar veri şifreleme için , gizli anahtar ise veri şifresini çözmek için kullanılır.

• Açık anahtarlar herkese dağıtılabilir,

• anahtar fazlalığı durumunu kalkar.

• Ancak;

• Hangi anahtarın kime ait olduğundan da emin olunmalıdır. Bu yüzden sertifikalar kullanılmaktadır

• Sertifika açık anahtar ile sahibinin kimliği arasındaki bağlantının belgesidir.

• Özel anahtar (Private Key) ise sadece şifreyi çözecek kullanıcıda bulunur,

• açık anahtar ise gizli değildir.

• Karşılaştırma => Daha uzun sürede şifre çözülür ama bunun yanında da,

güvenlik açısından simetriğe göre çok daha başarılıdır.

• Simetrik anahtarı da bu yöntemle alıcıya gönderilmektedir genelde.

• .

Plaintext : Düz metin

Cipthertext : Şifreli metin

encode-decode nedir?

( ara bilgi )

• Büyük bir dosyayı (resim,video) bit olarak depolamaya

• İndexleme ile hızlı erişebilmek için.

• Şifre depolamada da kullanılabiliyor; Base64

• Hash gibi, ancak encode ile geri dönüşümü var (decode).

Hash ise yok!

password hash

admin 21232f297a57a5a743894a0e4a801fc3

12345 cfcd208495d565ef66e7dff9f98764da

----- Genel Bakış ------

SSL

(Secure Sockets Layer)

SSL nedir?

• SSL'in açılımı Secure Sockets Layer (güvenli giriş katmanı) dır

• SSL, sunucu ile alıcı iletişimi esnasında verilerin şifrelenerek

yapılması işlemidir. (İki makine arası iletişim.)

• En bilinen kullanımı,

• web sitesindeki veri alışverişi esnasında, sunucu ile internet

tarayıcısı (web browser) arasındaki iletişimi şifrelenmesidir.

• SSL,Asimetrik şifreleme başlangıçta güvenli bir bağlantı

kurmak ve kimliklerin (dijital sertifikalar kullanarak) kimliğini

doğrulamak için kullanılır.

Dijital Sertifika

Sertifikada public key, firma bilgileri , seri no, son kullanma tarihi vs. yer alır.

SSL

(web browser da görünümü)

• Alan Adı Doğrulanması (Domain Validation) : Bu seviye en az pahalıdır ve alan adı kaydı

sahipliğinin temel şifreleme ve doğrulamasını kapsar. Bu tür bir sertifika genellikle birkaç dakika

ila birkaç saat sürer.

• Kuruluş Doğrulaması (Organization Validation) : Alan adı kaydı sahipliğinin temel şifreleme ve

doğrulamasına ilaveten sahibin belirli ayrıntıları (ör. Ad ve adres) doğrulanır. Bu sertifika tipinin

alınması genellikle birkaç saat ila birkaç gün sürer.

• Genişletilmiş Validasyon (EV Extended Validation) : En yüksek derecede güvenliği sağlar. Alan adı

kayıt ve varlık kimlik doğrulamasının sahipliğine ek olarak, varlığın yasal, fiziksel ve operasyonel varlığı

doğrulanır. Bu tür bir sertifika genellikle birkaç gün ila birkaç hafta alır.

• Server, kendisine gelen mesajı server’ın private key’i ile çözümler ve session keyi görür. (bu sırada Client’ın sertificaksını da onaylartır).

• Bu noktada da client ve server da session key’i bilirler. (client’ın simetrik key’ini)

• Server simetrik key ile sayfayı ‘i encripte edilmiş olarak Client a gönderir

.

• Client HTTPS

(güvenli bağlantı) isteği gönderir

• Server kendi sertifikasını Client’a gönderir (+public key)

Server.cert

Client

• (Server’ın sertificasını check eder).

• Random session key yaratır, şifreledikten sonra Server’ın public key’i ile server a geri gönderir (private key’i göndermiş olur)

• Bu noktada sadece client session key’i bilir.

Bir başka gösterimi

Kaynakça • https://en.wikipedia.org/wiki/Cryptographic_hash_function

• http://www.securityinnovationeurope.com/blog/whats-the-difference-between-hashing-and-encrypting

• https://www.youtube.com/watch?v=EJ-fnN28FRI

• https://www.linkedin.com/pulse/kriptografide-%C5%9Fifreleme-teknikleri-nihal-kindap

• https://www.linkedin.com/pulse/salt-salting-only-answer-securing-passwords-william-buchanan?trk=hp-feed-article-title-like

• https://www.ssl2buy.com/wiki/symmetric-vs-asymmetric-encryption-what-are-differences/

• https://developer.apple.com/library/content/documentation/Security/Conceptual/Security_Overview/CryptographicServices/CryptographicServices.html

• http://www.bitcoinnotbombs.com/beginners-guide-to-pgp/

• http://www.bitcoinnotbombs.com/beginners-guide-to-off-the-record-messaging/

• http://itm455.itmbsu.net/Notes/L6_Elements_of_Cryptography.htm

• http://www.networkworld.com/article/2268575/lan-wan/chapter-2--ssl-vpn-technology.html

• https://www.ssl2buy.com/wiki/difference-between-hashing-and-encryption/

• https://www.quora.com/What-is-the-difference-between-a-digital-certificate-a-digital-signature

• https://commons.wikimedia.org/wiki/File:Orange_blue_public_key_cryptography_en.svg

• https://www.comodo.com/resources/small-business/digital-certificates2.php

• http://www.c-sharpcorner.com/uploadfile/75a48f/rsa-algorithm-with-c-sharp2/

• https://www.verisign.com/en_US/website-presence/website-optimization/ssl-certificates/index.xhtml

• https://codedad.net/2016/11/04/using-docker-and-letsencrypt-to-enable-multiple-tlds-on-a-single-ip/

• …………..

Teşekkürler

Tolga ÇELİK

tolgaclk7@gmail.com

06.12.2016

top related