it-swarm-tr.com

Dijital imza doğrulama süreci nasıl çalışır?

Dijital imzanın nasıl doğrulandığını anlayamıyorum. Mesaja dijital imza ekleneceğini ve gönderen tarafından alıcıya gönderileceğini biliyorum. sonra alıcı doğrulamak için kullanılan ortak anahtarı kullanır. Sorularım:

  • bu ortak anahtar nereden geldi?
  • ve alıcıya nasıl dağıtılır?
  • belirli dijital imza için ortak anahtar nasıl tanımlanır?
  • ve bu süreçte sertifika yetkilisinin rolü nedir?
58
n92

Tamam, şu ana kadar cevap temelde yolda, ama sorularınızı geldikçe almaya çalışacağım:

* where did this public key come from?

Ortak anahtar, asimetrik şifrelemede kullanılan anahtar çiftinin bir parçasıdır. Orada birçok şifreleme algoritması var, ancak ortak bir anahtara ve matematiksel olarak bağlı özel bir anahtara kayıyor. Bu şekilde kullanılabilirler:

Şifrele (genel anahtar, orijinal veriler) -> şifreli veriler

Şifreyi çöz (özel anahtar, şifreli veriler) -> orijinal veriler

Özel ve genel anahtar arasındaki matematiksel ilişkinin doğası kriptografik algoritma ile ilgilidir ve hızlı bir şekilde Matematik Taşması için iyi bir konu haline gelir. :)

Önemli kısım, bunların birlikte üretilen bir çift anahtar olmasıdır.

Ardından, dijital imza ile ilgilenmek için gönderen şunları gönderir:

  • orijinal veriler, şifrelenmiş veriler, ortak anahtar ve imzanın nasıl doğrulanacağı ile ilgili bilgiler (örneğin, hangi algoritmanın kullanıldığını)

Doğrulayıcı yukarıdaki Şifre Çözme işlemini gerçekleştirir ve çıktısını orijinal verilerle karşılaştırır. İkisi aynıysa, iletinin kurcalanmadığını bilir, çünkü yalnızca gönderenin özel anahtarı vardır ve özel anahtarı ortak anahtardan belirlemenin makul bir yolu yoktur.

bunu biraz bozuyor ...

* and what is the role of the certification authority in this process?

Herkes özel/ortak anahtar çifti yapabilir. Bugünün araç kitleri göz önüne alındığında oldukça kolay bir iş. Bu yüzden size açık anahtarımı vermek, açıklanan şifreli veriler ve imza ile birlikte size Staples'ta 50 $ 'a yazdırdığım bir kartvizit vermek kadar güvenilir. Olduğumu söylediğim kişiye gerçekten güvenmek için ve bu yüzden layık olduğum için, kimliğimi kapatmak için birine ihtiyacınız var (sürücü ehliyetini kontrol etmek gibi).

Sertifika Yetkilisinin işi bu (kısaca CA). CA'nın kendi anahtar çifti vardır - ve anahtar sahibi için dijital sertifika imzalamak için özel anahtarını kullanır. Sertifika, genel anahtar ve bu özel anahtarı tutan kişi veya şey hakkında bir sürü bilgi içerir. Bu, hükümetimin beni özel ekipman olmadan kolayca taklit edilemeyen bir resimle güzel görünümlü bir kimlik haline getirmesi gibidir - hükümete güvendiğiniz için bilgilerime inanabilirsiniz ... hayır bana güvendiğiniz için.

Genellikle bir sistem bir imzayı doğruladığında, yalnızca şifrelenmiş verilerin orijinal verilerle eşleşip eşleşmediğini kontrol etmekle kalmaz, aynı zamanda kimliğini doğrulayan bir sertifikanın ortak anahtar sahibi de güvenilir bir kaynak tarafından uygun şekilde imzalanmıştır. Genellikle CA sistemleri, Kök kaynaklı CA zincirlerinde düzenlenir. Tarayıcınızda daha belirgin kök CA'ların (kendinden imzalı, yani kendi özel anahtarlarıyla imzalanmış) bir koleksiyonunu bulabilirsiniz.

Son derece güvenli sistemler için, dakika durum bilgisine kadar ek kontroller yapılabilir. Her şey, gönderenin durumundan kesinlikle emin olmanın ne kadar önemli olduğuna bağlıdır.

* and how is it (the public key) distributed to the receiver?

Burada çift kontrol - sertifikanın alıcısı mı yoksa anahtarın sahibi mi demek istiyorsunuz?

Gönderen (anahtar sahibi) çeşitli yollarla bir anahtar çifti ve bir sertifika alabilir. En basit yol onları yerel yapmak ve daha sonra ortak anahtar verilerini göndererek sertifika için CA'ya başvurmaktır. Diğer durumlarda, anahtarlar merkezi olarak yapılabilir ve güvenli kanallarla anahtar sahiplerine dağıtılabilir.

Çoğu imza durumunda, anahtar çifti anahtar sahibi tarafından yapılır, çünkü özel anahtarın maruz kalma potansiyelini sınırlar.

Bir imza oluşturulduğunda ve bir alıcıya gönderildiğinde, ortak anahtarın da mesaja eklenmesi tipiktir (örneğin, bunun için bir standart, öğedeki isteğe bağlı bir alanın, aşağıdakileri içeren dijital bir sertifika olduğu XMLDSIG'dir) Genel anahtar).

Bant genişliğinin sorun olduğu durumlarda, ortak anahtarlar, çalışan veritabanı gibi merkezi bir depoda veya genellikle Active Directory veya başka bir LDAP sunucusunda tutulabilir. Daha sonra imza gönderenin kimliğine başvurabilir ve doğrulama işlemi, ortak anahtarın alınması için depoya bir istek içerebilir.

* how the public key is identified for the specific digital signature?

Genellikle bir dijital sertifika aracılığıyla.

Gönderen dijital imza oluşturmaya gittiğinde, hangi anahtar çiftlerini hangi amaçlarla kullanabileceği ile ilgili kurallara sahiptir. X509 sertifika standardında, sertifikalar, sertifika tarafından açıklanan anahtar çifti için özel amaçlar belirten bir Anahtar Kullanımı alanını tanımlar. Bu kullanımlardan biri Dijital İmza olur ve birçok yazılım sistemi sertifikada bu ayar olmadan imza oluşturmanıza izin vermez.

CA, bu ayarları sertifikayı imzalamadan önce belirler. Birçok güvenlik politikasında, belirli kimlik doğrulama işlemleri olmadan bazı önemli kullanım ayarları verilemez, bu nedenle bunu çözme sorumluluğu CA'ya ve sorumlu kişilere (genellikle RA'lar, Kayıt Yetkilileri) aittir.

Herhangi bir nedenle, dijital sertifika kullanmayan bir sisteminiz varsa, hangi anahtar çiftini belirlemenin başka yolları olabilir. Sonunda, yürürlükte olan güvenlik politikalarına ve imza gerektiren belirli faaliyet için neyin uygun olduğuna karar verilir.

37
bethlakshmi

Bahsettiğiniz sorun (açık anahtarları nasıl dağıtıyoruz?) Açık Anahtar Altyapılarının tam olarak çözmesi gereken şeydir ve PKI esasen bir grup Sertifika Yetkilisidir.

Basit bir kurulumda, herkesin ortak anahtarlarının merkezi bir dizinine sahip olurduk; bir kamu parkının ortasında büyük bir mermer levha olarak hayal edin, üzerinde ortak anahtarlar kazınmış. Herkes ona bakabilir ve bunun "gerçek şey" olduğundan emin olabilirsiniz, çünkü sadece kazınmış bir şeyin üzerine boyayamazsınız.

Herkese açık bir kısım internete genel olarak iyi bağlanmamıştır ve bilgisayarlar bazı bilgilerin işlendiğini ve dolayısıyla "doğru garanti edildiğini" göremez. Ayrıca, orada oldukça büyük bir taş parçası gerektiren milyarlarca anahtar tutucu olabilir. Yani tüm bilgisayarlı dünyaya çeviri sertifika.

Sertifika, geleneksel biçimde aşağıdakileri içeren küçük bir yapıdır:

  • an kimlik (anahtar sahibinin adı);
  • a ortak anahtar (o kişiye ait olduğu iddia ediliyor);
  • a dijital imza önceki iki kısım üzerinden bir Sertifika Yetkilisi ile hesaplanmıştır.

CA'nın rolü, tam olarak sertifika vermek, yani imzalamaktır. Bir sertifikayı, belirli bir ortak anahtar içeren büyük mermer döşemenin parçası olarak düşünebilirsiniz. Ortak anahtarı kullanmak için, öncelikle bunun doğru bilgiler içerdiğinden emin olmak istersiniz; bunu yapmak için, CA'nın ortak anahtarını kullanarak verify sertifikanın imzasını imzalarsınız. Bu imza doğruysa, CA did bu sertifikayı imzaladığını ve CA yalnızca anahtar sahibinin kimliğini kontrol ettikten sonra sertifikaları imzaladığından (onlarla bir kerelik fiziksel protokol aracılığıyla) , örn. anahtar sahibi bir kimlik gösterdi), sertifikadaki genel anahtarın gerçekten belirtilen sahibine ait olduğuna "ikna olabilirsiniz".

Şimdi bana sorunu hiç çözmediğimizi söyleyebilirsiniz, sadece hareket ettirin: sertifikayı doğrulamak için CA ortak anahtarını bilmelisiniz; that anahtarını nasıl biliyorsun? Cevap rakamlarda: verilen bir CA, muhtemelen milyonlarca sertifika içeren birkaç sertifika imzalayabilir. Yani, tüm Dünya için sertifika veren yüz CA olabilir. Bu yüz açık anahtarı bilerek, any sertifikasını doğrulayabilirsiniz. Diğer dünyalarda, sadece taşındı sorun değil, aynı zamanda konsantre it: milyarlarca genel anahtarı dağıtma sorununu dağıtım sorununa çevirdik yüzlerce.

Ve lo! HTTPS Web sitesi için tam olarak böyle yapılır. Tarayıcınız ve Web sunucusu arasındaki bağlantının ilk aşamalarında, sunucu sertifikasını gönderir. Tarayıcı daha sonra sertifikayı, sabit kodlu CA ortak anahtarı (tarayıcı veya işletim sistemi satıcısının izniyle dahil edilmiştir) listesiyle doğrular. Tarayıcı sertifikayı doğruladıktan sonra, sunucunun ortak anahtarını bilir ve sunucuyla gizli tünel oluşturmak için kullanır.

27
Thomas Pornin

Dijital imzalar genellikle iki adımlı bir işlemle yapılır. İlk adım, veriler üzerinde güvenli bir karma algoritması kullanmaktır. SHA-2 algoritmaları buna bir örnek olacaktır. İkinci adım, ortaya çıkan çıktıyı özel imza anahtarıyla şifrelemektir.

Böylece, bir imza ortak anahtar tarafından doğrulandığında, iletiyle eşleşen bir karmanın şifresini çözer. Bu karma işlemin şifresi ancak özel anahtarla şifrelenmişse genel anahtar kullanılarak çözülebilir.

Ortak anahtarlar, anahtar çifti sahibi tarafından oluşturulur. Sertifika yetkilileri ortak anahtarın sertifikasını imzalar. Sunucu sahipleri bu imzalı sertifikayı yükler. SSL'de (bahsettiğinizi varsayıyorum), sertifika yetkilisinin anahtarı ve imzasını içeren sertifika, bağlandığınız sunucu tarafından geçirilir. Yazılım, bağlandığı sitenin sertifikadaki verilerle eşleşip eşleşmediğini denetler ve sertifikayı, sertifika yetkilisinin anahtarına göre imzasını kontrol ederek doğrular. Sertifika yetkilileri imzalamak için anahtarlarını ve sunucular şifreleme için anahtarlarını kullanır.

12
Jeff Ferland

Ortak - özel anahtarın ne olduğunu biliyorsunuz, değil mi?

bob ile bir şey şifrelemek istiyorsunuz. Yani onun ortak anahtarına ihtiyacınız olacak. İnternette aramaya gidersiniz, ancak sahip olduğunuz genel anahtarın ona ait olduğundan emin olamazsınız.

Dolayısıyla farklı bir yaklaşım benimsiyorsunuz: anahtarı, belirli bir anahtarın bob'e ait olduğundan emin olabilecek birinden alın. CA tam olarak bunu yapar.

CA bunu nasıl yapar? Basit. bob kendisini CA'ya tanıtır ve onlara ortak anahtarını gönderir. Bu şekilde CA, bob öğesinin "kimliğini" bu ortak anahtarla ilişkilendiren bir şeye sahiptir. Ve sahip olduğunuz ortak anahtarın gerçekten bob'e ait olduğuna güvenebilirsiniz.

7
woliveirajr