Може ли да споделите публичен ключ на VPN? Проверете тези три неща
Публикуването на публичната половина е начинът, по който работи протоколът; публикуването на частната половина предава самоличност. Три проверки решават коя стойност държите.
Може да предадете публичния си ключ за VPN на партньор, доставчик или форум и тунелът продължава да държи. Не може да предадете частния ключ, дори на екипа за поддръжка, без да предадете самоличността, която този ключ доказва. Решението рядко остава толкова чисто, защото хората бъркат коя половина от двойката гледат и защото някои внедрявания третират публичната стойност като име. Три проверки го решават: коя половина имате, към какво внедряването я обвързва и какво струва замяната.
Проверка първа: коя половина от двойката е в клипборда ви
Асиметричните ключове идват по двойки, а посоката на извеждане е целият смисъл. В WireGuard частният ключ е 32 случайни байта и публичният ключ се изчислява от него; обратната посока е невъзможна. wg genkey записва частната стойност, wg pubkey извежда публичната и само втората принадлежи в съобщение до партньор.
wg genkey | tee private.key | wg pubkey > public.key
chmod 600 private.key
openssl x509 -noout -pubkey -in server.crt
Светът на сертификатите използва същото разделение с повече движещи се части. Сървърният сертификат носи публичен ключ плюс имена и е подписан с частен ключ на сертифициращ орган, който никога не напуска органа. Клиент, който проверява този сървър, се нуждае от сертификата на органа, който е публичен, и няма никаква полза от частния подписващ ключ на органа.
Ако не сте сигурни каква стойност държите, търсете маркера, а не името на файла. PEM блок, започващ с -----BEGIN PRIVATE KEY-----, или по-старият формат BEGIN RSA PRIVATE KEY, е тайната половина. Стойност, която можете да поставите без този маркер, е кандидат за споделяне, при условие че следват следващите две проверки.
Проверка втора: към какво внедряването обвързва тази публична стойност
Криптографската сигурност и анонимността са различни свойства. Публичният ключ на партньор в WireGuard е стабилен идентификатор вътре във внедряването: конфигурацията на сървъра го изброява, ръкостискането го назовава и администратор, който чете журнали, вижда същия низ всеки път, когато този партньор се свърже. Публикувайте ключа до въпрос за вашата настройка и сте свързали този низ с всичко останало в публикацията.
Сертификатите изтичат самоличност по замисъл. Полетата Subject и subject alternative name са четими, а за публично доверени TLS сертификати самият сертификат се публикува в журналите Certificate Transparency, които са търсими. Нищо от това не разкрива частен ключ и всичко това разкрива връзка.
Тук внедряванията се различават и това решава отговора. Временен тестов партньор на лабораторен сървър е различен обект от ключа, който идентифицира междусайтова крайна точка на компания, дори байтовете да изглеждат еднакви.
Проверка трета: какво можете да оттеглите и колко бързо
Третата проверка разделя двете половини напълно. Публичен ключ, който е бил публикуван, може да бъде заменен по вашия график. Частен ключ, който е бил публикуван, не може да бъде прибран: изтриването на вашето копие не засяга вече взети копия и всеки партньор, който му е вярвал, сега вярва на нещо, което държи външен човек.
Оттеглянето е действие по конфигурацията, не криптографско действие. WireGuard не доставя списък за оттегляне, затова премахвате партньора:
wg set wg0 peer <peer-public-key> remove
# then delete the [Peer] block from the config so it does not return on restart
OpenVPN внедряванията, изградени върху сертификати, оттеглят сертификата и публикуват CRL, който сървърът наистина проверява чрез crl-verify. Без тази директива списъкът за оттегляне е украшение. И в двата случая последователността е същата: издайте замяна, разпределете я по поддържания канал и след това пенсионирайте старата самоличност.
Грешките, които идват от сливането на трите проверки
Повечето истински изтичания не са човек, решил да публикува частен ключ. Те са цял профил, поставен във форум: WireGuard .conf с ред PrivateKey, или пакет .ovpn с вграден блок за ключ, или екранна снимка на клиентски прозорец, който случайно включва полето за ключ. Публичната стойност вероятно е била наред; тя е пътувала с частта, която не е била.
Работните процеси за поддръжка са вторият източник. Никаква законна стъпка за проверка не се нуждае от частния ви ключ, защото другата страна извежда нужното от публичната половина. Когато формуляр или човек поиска частната стойност, правилният отговор е публичната плюс локалната команда, която я създава.
Журналите и екранните снимки принадлежат към същата категория. Диагностичният изход може да носи ключов материал, идентификатори на сесии и вътрешни адреси, а публикуването на всичко това, за да получите отговор на един въпрос, разменя малко удобство срещу по-голямо излагане.
След изтичане на частна стойност пенсионирайте самоличността
Ако частна стойност все пак е излязла, третирайте тази самоличност като пенсионирана. Генерирайте нова двойка, инсталирайте публичната половина там, където партньорите я очакват, премахнете стария партньор или оттеглете стария сертификат и проверете местата, където сте я публикували. Не можете да изтриете копия, които не контролирате, затова премахването е за бъдещето, не за миналото.
След това запишете разпределението: кой ключ принадлежи на кое устройство, кой държи копие, как се доставя замяна и кой премахва пенсиониран партньор. Това са частите, които хората забравят, и те решават колко дълго едно изтичане остава полезно.