Инструменты пользователя

Инструменты сайта


openvpn

Это старая версия документа!


VPN-сервер для офисной сети

Вступление

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

Основы криптографии

В данном разделе очень кратко и очень грубо описаны базовые криптографические принципы. Этот раздел может содержать множество не точностей и умышленных упрощений в описании тех или иных процессов. Основная задача этого раздела дать базовое понимание принципов работы криптографических протоколов. Для более детального изучения вопроса рекомендуется обратиться к специализированной документации, например есть ссылки в списке литературы.

Итак. Алгоритмы шифрования бывают симметричные и ассиметричные. Симметричный алгоритм представляет из себя один единственный ключ(и/или пароль) с помощью которого некоторый набор данных может быть зашифрован и с помощью этого же ключа он может быть расшифрован. Соответственно этот ключ является серкретным и для безопасного обмена данными должен быть распространен между участниками обмена по безопасным каналам вручную заранее до сеанса обмена. Учитывая ограничения алгоритма, в основном он используется в таких программах, как шифрование диска(truecrypt, diskcryptor) и подобных. Основные представители этого алгоритма: DES, AES, IDEA, RC4. Типичные размеры ключей 64, 128, 192 или 256 бит.

Ассиметричный алгоритм использует пару ключей - открытый и закрытый. Открытый ключ секретом не является и может распространяться свободно, тогда как закрытый ключ должен быть защищен от посторонних. Основная идея такой системы, что с помощью открытого ключа можно зашифровать данные и расшифровать их получится только закрытым ключем. Таким образом, сторона А может передать стороне Б свой открытый ключ и сторона Б сможет зашифровать с помощью него данные и отправить стороне А, которая в свою очередь сможет эти данные расшифровать своим закрытым ключем. У данного алгоритма есть одна интересная особенность, которая используется в цифровых подписях(о них ниже): данные зашифрованные закрытым ключем, могут быть расшифрованы открытым ключем, запомним эту особенность. Основные представители этого алгоритма: RSA, ECC. Типичные размеры ключей RSA 512, 1024, 2048.

Есть еще такая штука как Хеш(контрольная сумма, отпечаток, digest) - это такой алгоритм, который с помощью математики может сгенерить строку фиксированной длины для любого объема данных. Т.е. берутся нужные данные(любого объема) и используя один из алгоритмов вычисляется хеш этих данных, т.е. некоторая строка фиксированной длины, которая не зависит от размера данных. При малейшем изменении исходных данных хеш меняется. Хеши используются для контроля целостности данных, когда шифрование самих данных не нужно. Хеш сам по себе не гарантирует, что по пути данные не были злонамеренно подменены, т.к. злоумышленник может подменить данные и сгенерить новый хеш, но зато он гарантирует что данные не были испорчены по пути из-за технических сбоев, ведь если по пути данные были хоть немного повреждены(либо сам хеш), то на стороне получателя это будет выявлено при проверке. Наиболее известные представители: MD5 (Message Digest 5), SHA-1, SHA-224, SHA-256, SHA-384 и SHA-512. Пример хеша MD5: d29aaa0b9cd402b4bfe2395a805f9ada.

Особенность ассиметричного алгоритма используется для технологии цифровых подписей, т.е. когда данные могут быть зашифрованы закрытым ключем, а расшифрованы его открытым ключем. Цифровые подписи используются не для защиты данных от прочтения посторонними, а для гарантирования того, что данные, во-первых, получены от идентифицированно источника(от того, за кого он себя выдает), во-вторых, в неизмененном виде. Достигается это следующим путем: отправитель с данных снимает отпечаток(хеш) и вместе с данными шифрует закрытым ключем(подписывает). Теперь принимающая сторона, во-первых, расшифровывает данные открытым ключем - данный факт подтверждает, что данные были зашифрованы закрытым ключем, который есть только у отправителя, а значит данные точно получены именно от него, а не от кого другого. Во-вторых, сверяет расшифрованные данные с отпечатком(хешем), если они совпадают, значит данные не были изменены или испорчены по пути. Злоумышленник может перехватить данные и расшифровать их(т.к. открытый ключ свободно доступен), но он не может подменить данные, т.к. для этого ему надо сгенерить новый отпечаток и зашифровать его месте с данным обратно, но закрытого ключа у него нет. Таким образом, цифровая подпись гарантирует, что данные получены в неизменном виде и именно от того, от кого мы ожидали(не рассматривает тот вариант, когда закрытый ключ украден).

openvpn.1394106784.txt.gz · Последнее изменение: 2022/03/25 17:03 (внешнее изменение)