2009-10-17 3 views
0

Я только что начал писать программы сокетов. Пришел знать, что один пакет UDP имеет порт назначения порта источника и некоторый MAC-адрес, представляющий маршрутизатор ..etc. Интересно, почему никто не может создавать пользовательские пакеты с поддельной информацией и отправлять их через Интернет. Я хотел бы знать, насколько безопасны наши ПК. Что нужно сделать для ее защиты?Насколько неуверенным является сеть?

ответ

5

Есть несколько различных аспектов ответа.

Один из них заключается в том, что Интернет полагается на TCP, а не на UDP. Это означает, что он ориентирован на соединение. Ваш пакет будет отклонен, если он не будет частью существующего соединения (что означает, среди прочего, что он должен иметь правильный IP-адрес источника и порт. И он должен иметь правильный порядковый номер, чтобы он вписывался в окно приема). Конечно, это может быть фальшивка без особых проблем. Но это требует, чтобы вы немного узнали о пакетах, отправляемых по исходному соединению.

Другая часть состоит в том, что всякий раз, когда нам нужно быть уверенным, что отправитель пакета является тем, кем они утверждают, мы используем шифрование. :)

Большинство пакетов действительно не нужно. Это не огромная сделка, если кто-то отправляет запрос в Google, который появляется, чтобы перейти от моего IP-адреса. Но при совершении транзакций по кредитным картам это становится немного более важным.

+0

Вы сказали, что сеть полагается на TCP, но я думал, что некоторый мультимедийный контент работает на UDP. Это верно? – LJM

+0

@fella HTTP - это TCP, в то время как UDP обычно уходит на потоковые медиа и прочее, где не имеет большого значения, если несколько пакетов исчезают из-за нормального сетевого шума. – David

+0

Также обратите внимание, что «Интернет» - это HTTP, который не совпадает с «Интернетом», – lfaraone

3

Большая часть стека TCP/IP «утешает доверие», как я когда-то выразился, и не так много, как вы, разработчик программного обеспечения (если вы ищете программное решение, иначе stackoverflow неправильный форум, перейдите к serverfault или суперпользователю ;-) может сделать это - за вычетом и тщательно реализованных протоколов, которые разумны с точки зрения ожидания безопасности.

HTTPS (с проверкой сертификатов и т. Д.) Является одним из разумно сильных подходов; для более надежной защиты, посмотрите на подходы SSH и VPN. Конечно, никто не должен полагаться на конфиденциальность или сильная аутентификация, если они не предприняли определенные шаги к ней (если они предприняли такие шаги, они могут по-прежнему подвергаться успешным атакам, поэтому использование существующих, более или менее «проверенных» «Решения, такие как HTTPS, SSH, VPN, целесообразны ;-).

1

Да, любой может создавать пакеты с любыми данными, которые они хотят, и отправлять их через Интернет. Особенно с UDP вы можете притворяться кем угодно, если только ваш интернет-провайдер не выполняет фильтрацию выхода. Исходные адреса для UDP не могут им доверять. Исходные адреса для TCP могут до некоторой степени (вы знаете, что данные должны поступать с рассматриваемого IP-адреса или кого-то по маршруту).

Добро пожаловать в интернет :)

Edit: просто для уточнения выход фильтрации что-то отправки ISP должен был бы сделать. Как приемник, вы ничего не можете сделать, чтобы проверить адрес в UDP-пакете, не обращаясь к отправителю. Единственная причина, по которой вы, по крайней мере, частично доверяете входящему TCP-соединению, - это то, что TCP требует, чтобы поток управляющих данных возвращался к отправителю (и, следовательно, ему нужен действительный IP-адрес/порт, чтобы установить соединение и поддерживать его).

1

Ну, многие люди создают недействительные пакеты и отправляют их через Интернет; например, читать Ping of death.

A [полностью] защищенный компьютер - компьютер выключен. Чтобы сделать ваш ПК более безопасным из этого типа потока, вы должны полагаться на программные/межсетевые экраны брандмауэра, которые могут обнаружить эти искаженные пакеты.

1

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

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