2012-05-16 3 views
1

Когда я настраиваю свой компьютер на Git, я генерирую закрытый и открытый SSH-ключ. Затем я даю GitHub знать, что такое мой открытый ключ. Я понимаю, что открытые ключи могут шифровать сообщения, а закрытый ключ дешифрует его. Поэтому я могу понять, как github может отправлять мне зашифрованные сообщения через SSH.Как GitHub справляется с безопасностью?

Однако, мой вопрос в том, что когда я нажимаю на GitHub, как он знает, что это я, который делает толчок? Не мог ли кто-нибудь создать собственный SSH-ключ с моим именем и электронной почтой, а затем нажать на мой репозиторий GitHub?

Я сомневаюсь, что это так, поэтому каковы меры безопасности, которые существуют для этого? Благодаря!

ответ

5

В GitHub есть копия вашего открытого ключа, которая содержит больше информации, чем просто ваше имя и адрес электронной почты. У этого есть уникальный отпечаток пальца, который не может быть воспроизведен, генерируя поддельный открытый ключ (по крайней мере, не без массивной атаки грубой силы или какого-то непредвиденного математического прорыва).

Как работает протокол ssh, GitHub видит соединение ssh, которое оно аутентифицирует против вашего открытого ключа. Такое соединение может только создается кем-то, у кого есть копия вашего закрытого ключа.

У GitHub нет копии вашего закрытого ключа, но это может подтвердить, что вы это делаете. (Вот что такое public key cryptography.)

+0

Спасибо! Это то, что называется «цифровой подписью» в статье Википедии? – user1027169

Смежные вопросы