Интересный вопрос сегодня на повестке дня. Как же компьютер понимает что данные из интернета пришли именно к нему. И что это не хакер отправил трояна, а просто пришло новое письмо на почту или в чат.
Другими словами: как windows отличает паразитные пакеты от тех которые запросил пользователь из сети.
Всем ведь понятно, что у компьютера есть IP адрес и если кто-то из интернета присылает данные на него, то для него эти данные и предназначены. Но как справляется система если данные пришли сразу для нескольких программ?
Возьмем такую ситуацию: вы зашли на новый сайт и ваш браузер ждет когда к нему придет страница сайта.
В этот же момент начала обновляться какая-нибудь программа. И одновременно с этим хакер пытается проникнуть в вашу систему - посылает зловредные пакеты.
В итоге на компьютер в один момент пришла масса разнородной информации.
Для того чтобы разобраться какие данные кому предназначаются операционная система использует порты.
Сетевой порт компьютера примерно то же самое, что и уникальный почтовый индекс внутри страны, где название страны - это IP адрес. Представим.
Каждая программа работает на своем порту (имеет свой индекс). Это нужно для разделения данных из сети предназначеных для нескольких программ в пределах одного компьютера.
Ведь IP адрес у компьютера один и мы должны иметь возможность получать на него как данные с сайтов так и пакеты с торрентов и письма и скайп и чат - и всё это с минимальными задержками.
Компьютер должен понимать для какой программы пришли данные из интернета и для этого он мониторит порт назначения.
Простой пример того как это работает: откройте браузер и зайдите на любой сайт, в это время ваш браузер отправляет сайту запрос на общеизвестный 80 (443) порт, а ответ от сайта приходит, например, на 49152 порт вашего компьютера.
Если порт 80 жёстко задан на сервере, где находится сайт. То порт 49152 открыла Windows, а браузер сообщил этот порт серверу в первом своем запросе " я жду ответ туда".
На этом и строится всё сетевое взаимодействие.
Если помимо браузера вы решили открыть клиент Steam (почту, скайп - любую другую программу) то она так же обратиться на порт своего сервера, открыв еще и свободный порт на компьютере для приема информации с этого сервера.
Порты которые открывают программы внутри вашего компьютера считаются эфимерными - они выдаются временно для работы той или иной программы. Предсказать из вне какой порт присвоится программе для открытия следующего сеанса связи затруднительно, это затрудняет работу хакера.
Всего могут использоваться 65535 портов.
За тем чтобы все неиспользуемые порты были закрыты следит файервол компьютера.
В windows используемый ей брандмауэр в обычной конфигурации (по умолчанию) уже закрывает все входящие порты и не дает прямой доступ на них. В такой конфигурации пакеты принимаются лишь от серверов с которыми компьютер сам инициировал соединение.
В следующей статье я планирую разобраться с более тонкими настройками файервола, которые помогут эффективнее защитить компьютер от троянов и хакеров.
Всем спасибо за внимание, если было полезно поставьте палец вверх и подпишитесь на канал. Будет интересно!