Amazon neden ortak anahtarlar yerine özel anahtarlar yayınlıyor?


20

Beynim kamusal ve özel anahtarlarda aksın etrafına sarılmış. Amazon'un EC2 hizmetinde bir bulut sunucusu (örnek) oluşturup SSH üzerinden bağlanmak istediğinizde Amazon, bağlantıyı kurmak için özel bir anahtar indirmenizi gerektirir. Genel / özel anahtarın arkasındaki fikir, Amazon'un herkese açık bir tane indirmenizi gerektirdiği anlamına gelmez mi?

Ayrıca, bir müşterinin kullanması için bir SFTP sunucusu kurarsam, anahtarlarını sunucuya mı yüklemeli veya sunucudan bir anahtar mı vermeliyim? Her iki durumda da, genel veya özel bir anahtar mı olmalı?


1
EC2'ye daha az aşina olanlar için Amazon özel bir anahtar indirmenizi istiyor muydu?
Zoredache

2
Amazon EC2'de bir bulut sunucusu kurduğunuzda ve daha sonra SSH üzerinden bağlanmak istediğinizde, Amazon konsolu bağlantı kurmak için kullandığınız özel bir anahtarı indirmenize izin verir. Elbette anahtarı korumanız gerekiyor.
Seth

@Zoredache Adil olmak gerekirse, bu bir seçenektir. Bir Windows kutusunda hızlı bir şekilde araç aramak isteyen biri muhtemelen daha önce hiç OpenSSH kullanmadı, bu yüzden güzel bir hızlı başlangıç.
ceejayoz

Yanıtlar:


36

Kimlik doğrulama süreci hakkında daha derin düşünerek neyin gizli tutulması gerekir? Amazon anahtarın kamusal yarısını biliyor ve herkes kamusal yarıyı bilebilir. Anahtar çiftinin ortak yarısı, özel yarı ile eşleştirildiğinde, özel yarının kimlik doğrulaması için kullanıldığını gösterir.

Amazon sizin için bir anahtar çifti oluşturduğunda size verilen özel anahtar, yalnızca sahip olduğunuz tek anahtar sizseniz faydalıdır. Bu bir sır değilse, bunu bilen herkes, anahtar çiftinin ortak yarısını elinde tutan herkes için kimlik doğrulaması yapabilir.

Kimliğinin doğrulandığı kişi özel yarıyı elinde bulundurmalıdır . Dünyadaki herkes anahtarın ortak yarısını tutarak sizi doğrulayabilirse, ancak sadece özel yarıyı kontrol etmeniz gerekir.


18

Amazon, bazı işletim sistemleri (öksürük, Windows, öksürük) SSH anahtar çiftlerini oluşturmayı kolaylaştıramayabileceğinden, anahtar oluşturma hizmetleri sağlar.

SSH (ve SFTP) ile genel anahtar, EC2 örneği başlarken kullanıcının yetkili_anahtarlar dosyasına yüklenir. Özel anahtar yalnızca kullanıcı tarafından tutulur ve sunucuda kimlik doğrulaması için sunulur.

Adresindeki belgelerden:

http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateKeyPair.html

Amazon'un anahtar çiftini sunucularında oluşturduğu ve size HTTPS aracılığıyla özel anahtarı gönderdiği anlaşılıyor. Bu belki de mükemmel olandan daha azdır (ideal olarak, siz ve başka hiç kimse özel anahtara sahip olmayacaksınız), ancak muhtemelen o kadar da öyle değil, tüm bunların kimliği doğrulanmış oturumunuz bağlamında gerçekleşir ve yalnızca siz (ve Amazon geçici olarak) özel anahtar. Ayrıca, özel anahtarı kesinlikle gizli tutarken EC2 kullanımı için her zaman kendi genel anahtarınızı oluşturabilir ve yükleyebilirsiniz.

SFTP kullanıcılarını anahtar kimlik doğrulaması için ayarlamak üzere, makinelerinde SSH anahtarları oluşturuyor olmalıdırlar. Bir anahtar çifti oluşturduklarında, size yalnızca ilgili yetkili_anahtarlar dosyasına yüklenecek genel anahtarı gönderiyor olmalıdırlar. Özel anahtar, adından da anlaşılacağı gibi özeldir.


5
Windows makinelerinde düzenli olarak anahtar çiftleri üretiyorum. Yüklü yazılım kullanılarak yapılmasına rağmen Windows tarafından değil, zor değil.
Dominic Cronin

2
Dominic ile aynı fikirde. Dahası, ortalama bir Windows kullanıcısının bir CLI gözünde korkup kaybolması ve Windows'un hala bir "SSH anahtarıyla giriş" seçeneği bulunmaması gerçeğidir.
HopelessN00b

Ah, evet, kabul ettim. Cygwin, vb. İle openssh kullanıyorum, bu yüzden her şey temiz çalışıyor. Bunu yapan çoğu Windows kullanıcısının PuTTY kullanacağını ve bazı anahtar dönüşümleri yapması gerektiğini düşünüyorum. Sadece daha fazla adım.
cjc

1
Asla Amazon'u hiç kullanmadım, ancak pencereleri suçlamak yerine, Amazon'un size bir anahtar göndermesinin sebebinin, oturum açmak için size bir anahtar vermedikleri takdirde, halkınızı yüklemek için nasıl giriş yapacağınız olduğunu varsayacağım. anahtar ilk etapta?
DerfK

1
@DerfK Kendi genel anahtarınızı gönderebilir ve yeni bir EC2 örneğine yüklenmesini seçebilirsiniz. Belirli bir anahtarın seçilmesi, örnek oluşturma işleminin bir parçasıdır.
cjc

2

Ortak anahtar kimlik doğrulaması, muhtemelen düşündüğünüz şekilde ters yönde çalışır. Ortak anahtar iletileri şifreler ve özel anahtar bunların şifresini çözer. Sunucu hesap sahibinin ortak anahtarını saklar ve bunu bir mesajı şifrelemek için kullanır. Yalnızca özel anahtarın sahibi bu iletinin şifresini çözebilir.

Birisine ortak anahtarıyla şifrelenmiş bir sır gönderirseniz, size bu sırrın ne olduğunu söyleyebilirlerse, eşleşen özel anahtarı tuttuklarını bilirsiniz. Daha sonra kullanıcının kimliği doğrulanır.

AWS, güvenlik nedeniyle özel anahtarınızı indirmenizi ve kaydetmenizi gerektirir, çünkü saklamazlar. Özel anahtar AWS'de hiçbir yerde saklanmadığından, EC2 örneğinizin güvenli olduğundan emin olabilirsiniz.


1

Bir anlamda önemli değil. Özel / ortak anahtar çifti iki bölümden oluşur ve bunlardan hangisi herkese açıktır. Bir şey bir anahtarla şifrelenmişse, şifresini çözmek için diğerine ihtiyacınız vardır. Bir anahtarı diğerinde değil, herkese açık olarak yayınladıysanız, özel anahtar yayınlamadığınız anahtardır.

Asıl sorunuza ulaşmak için: muhtemelen Amazon'un size verdiği anahtar, kendi kaynaklarınızı kontrol etmenize izin vermektir, bu yüzden başkalarına verilmemelidir. Bu bağlamda, özel anahtarınıza sahip olmak için Amazon'a güvenmeniz gerekir, en azından kurulacak kadar uzun süre.

Müşterinizin bu şekilde oturum açmasını istiyorsanız, sizinle paylaşmaya hazır oldukları bir anahtarı vermeleri için onlara ihtiyacınız vardır, bu nedenle genel anahtarı. Bunu sunucuya yetkili_anahtarlara yüklersiniz, bu da "bu ortak anahtarla eşleşen özel anahtarı kullanan herkes bu kaynağa erişebilir" diyor.


1
Hmm, hayır bu doğru değil. En azından RSA / DH ile ortak anahtarla şifreliyor ve özel ile şifresini çözüyorsunuz, tersi çalışmıyor. İmzalama, şifreleme / şifre çözme ile aynı değildir.
Zoredache

1
@ErikA Hayır, ortak anahtar özel anahtardan türetilemez. Özel anahtar dosyaları genellikle her iki anahtarı da içerir. Gerçekten bir tartışmaya girmek istiyorsanız, crypto.stackexchange.com'u öneririm . Bu kişiler, RSA anahtarlarının gerçek farklılıkları ve hangi anahtarın neden özel ve özel olarak kabul edildiği de dahil olmak üzere gerçekten derin iç ayrıntılar verebilir, sadece madalyonun keyfi bir dönüşü değildir.
Jeff Ferland

@Zoredache - Bunu bilmiyordum: teşekkürler. İyi bir referansa bağlantınız var mı?
Dominic Cronin

en.wikipedia.org/wiki/Asymmetric_key_algorithm - Bir anahtar düz metni kilitler veya şifreler, diğeri şifreleme metninin kilidini açar veya şifresini çözer. Her iki tuş da her iki işlevi de gerçekleştiremez. - en.wikipedia.org/wiki/RSA_(algorithm) - RSA bir ortak anahtar ve bir özel anahtar içerir. Genel anahtar herkese bilinebilir ve mesajlarını şifrelemek için kullanılan . Genel anahtarla şifrelenen iletilerin şifresi yalnızca özel anahtar kullanılarak çözülebilir.
Zoredache

Bu iki referansın hiçbiri @Zoredache dediğinizi önermiyor. Tabii ki , hangi anahtarın özel ve hangi genel olduğuna karar verdikten sonra, bunu kullanma şeklinizi belirler. Kilit üretim noktasında, bu karar henüz alınmamıştır. Değeri ne olursa olsun, imzalama etrafındaki mantık tamamen şifreleme etrafındaki mantığa bağlıdır, çünkü imzalama şifreleme gerektirir .
Dominic Cronin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.