Две различни събития се наричат изтекъл SSH ключ и изискват различни реакции. Удостоверяването с публичен ключ изпраща публичен ключ и подпис, направен с частния ключ, затова частният ключ никога не е поле в заявката. Пренасочването на агент излага нещо друго, защото отдалечен хост, който може да достигне пренасочения ви агент, може да го помоли да подпише, без изобщо да държи ключа. Ако третирате тези две като едно събитие, стигате или до безсмислена смяна на ключ, или до делегиране, което продължава да работи.

Влизането с публичен ключ предава подпис, а не ключа

Обменът за удостоверяване носи публичния ключ на потребителя и подпис върху данните на сесията. Сървърът проверява този подпис срещу ключа, на който вече се доверява, и затова частната половина може да остане на клиента през ненадеждна мрежа. Оператор на VPN, който наблюдава тунела, така или иначе вижда криптирана SSH сесия.

Това описва протокола, а не надеждността на всяка крайна точка по пътя. Пазете проверката на идентичността на хоста непокътната, защото клиент, който приема всеки ключ на хост, се е отказал от друга защита, различна от обсъжданата. Прихваната сесия и прихванат ключ са отделни констатации и само една от тях е загуба на идентификационни данни. Дръжте двете и в отделни изречения в доклада.

ssh-keygen -lf ~/.ssh/id_ed25519.pub
ssh -o StrictHostKeyChecking=yes [email protected]

Първата команда отпечатва публичния отпечатък, за да го сравните с това, което сървърът изброява. Втората прави проверката на ключа на хоста явна, вместо да разчита на настройка по подразбиране, която никой не е чел. Изпълнете и двете, преди да промените нещо по ключовете, за да е документирана изходната линия.

Пренасочването на агент делегира способността да се подписва

Когато пренасочването е включено, на отдалечения хост се появява сокет и локалният агент отговаря на заявките, пристигащи през него. Всеки, който може да използва този сокет по време на сесията, може да се удостовери като вас пред хостове, които приемат заредените идентичности. Никакъв частен ключ не преминава през мрежата, за да работи това.

Способността е излагането, а не файлът. Затова пренасочването принадлежи на именувана задача и именуван хост, а не на всяка връзка, която прави лаптопът. Междинен хост, който препредава връзката без пренасочен агент, обикновено премахва нуждата напълно.

ssh-add -l
ssh -o ForwardAgent=no [email protected]
ssh -J [email protected] [email protected]

Първата изброява кои идентичности държи агентът в момента, което си струва да се знае, преди да дадете сокета му на друга машина. Втората се свързва без делегиране. Третата показва модела с междинен хост, който често заменя пренасочването изцяло.

Изберете реакцията според доказателствата, с които разполагате

Идентичност за подписване, за която се смята, че е изложена, изисква процеса по подмяна и отзоваване, както и премахване на приемането ѝ от услугите, които са ѝ се доверявали. Изтриването на копието на лаптопа ви оставя всяко друго копие непокътнато. Започнете от услугите, после почистете клиентите.

Временният проблем с делегирането е по-тесен. Спрете пренасочването, което не е било нужно, и прегледайте с отговорника за инцидента кои сесии и идентичности е обхванало. Подмяната на ключ може да последва, но доказателствата решават това, а не притеснението.

Липсата на наблюдаван износ доказва само, че механизмът, от който се страхувахте, не се е появил. Тя не казва нищо за това какво друго е могъл да направи хостът от другата страна на този сокет.

Дръжте контролите разделени в доклада

Пазете частния материал, ограничавайте кой може да поиска от него подпис, поддържайте проверена идентичност на отсрещната страна. Това са три контрола, които се подсилват взаимно, и нито един от тях не замества друг, когато обяснявате какво се е случило.

Компрометиран лаптоп или привилегировано приложение върху него е трети случай с много по-широк обхват. Смяната на VPN маршрута не го решава и не възстановява доверието в ключ, който може да е бил прочетен от диска.

Запишете кой компонент е бил надежден, дали пренасочването е било включено и какво действително е наблюдавано. Именно този запис прави следващото решение защитимо, вместо догадка за това какво означава изтичане.

Подобни статии