Temelde burada ana hatları verilenler üzerinde durulacaktır .
Şöyle çalışır: diyelim ki sıfırdan dokuza kadar bir sayı alan, üç ekleyen ve sonuç ondan büyükse on çıkarır. Böylece f (2) = 5, f (8) = 1 vb. Şimdi, üç yerine yedi ekleyerek başka bir işlev yapabiliriz, geriye f gider diyebiliriz. f '(5) = 2, f' (1) = 8 vb.
Bu, iki yönlü bir işlev ve tersinin bir örneğidir. Teorik olarak, bir şeyi diğerine eşleyen herhangi bir matematiksel fonksiyon tersine çevrilebilir. Ancak pratikte, girdisini öylesine iyi karıştıran bir işlevi tersine çevirmek inanılmaz derecede zor olabilir.
Bir giriş almak ve tek yönlü bir işlevi uygulamak girdiye "hash" denir ve Amazon'un sistemlerinde sakladığı şey gizli anahtarınızın bir "hash" ıdır. SHA1 bu tür "tek yönlü" fonksiyonlara bir örnektir, saldırılara karşı da sertleştirilmiştir.
HMAC fonksiyonu metin dizesini kimliğini doğrulamak için bilinen bir anahtar kullanmak üzere kurulan hash fonksiyonları üzerine kurulmuştur. Şöyle çalışır:
- İsteğinizin metnini ve gizli anahtarınızı alıp HMAC işlevini uygularsınız.
- Bu kimlik doğrulama başlığını isteğinize ekler ve Amazon'a gönderirsiniz.
- Amazon, gizli anahtarın kopyalarını ve az önce gönderdiğiniz metni arar ve HMAC işlevini uygular.
- Sonuç eşleşirse, aynı gizli anahtara sahip olduğunuzu bilirler.
Bu ve PKI arasındaki fark, bu yöntemin RESTful olması ve sisteminizle Amazon'un sunucuları arasında minimum sayıda alışverişe izin vermesidir .
Bu benim kredi kartı numaramı veya şifremi istemek ve kendi veritabanında saklamakla aynı şey değil mi?
Evet, birisinin S3 ile yapabileceği hasar hesabınızı boşaltmakla sınırlı görünmektedir.
Ne kadar gizli olmaları gerekiyor? Gizli anahtarları kullanan bu uygulamalar bir şekilde saklıyor mu?
Bir noktada, gizli anahtarı yüklemeniz gerekecek ve çoğu Unix tabanlı sistemde, bir saldırgan root erişimi elde ederse anahtarı alabilir. Anahtarı şifrelerseniz, şifresini çözmek için kodunuz olmalıdır ve bir noktada şifre çözme kodunun yürütülebilmesi için düz metin olması gerekir. Bu, DRM'nin sahip olduğu sorunla aynıdır, ancak bilgisayarın sahibi olmanız gerekir.
Çoğu durumda, gizli anahtarları sınırlı izinlere sahip bir dosyaya koyarım ve sistemimin köklenmesini önlemek için her zamanki önlemleri alırım. Geçici dosyalardan kaçınmak gibi çok kullanıcılı bir sistemle düzgün çalışmasını sağlamak için birkaç püf noktası vardır.