CHARGEN

CHARGEN (Character Generator Protocol) — это служба стека протоколов TCP/IP, определённая в RFC 864 в 1983 году Джоном Постелом. Она предназначена для тестирования, измерения и отладки.

Узел сети может установить соединение с сервером, поддерживающим Character Generator Protocol с использованием TCP или UDP через порт 19. После открытия TCP-соединения, сервер начинает отправлять клиенту случайные символы и делает это непрерывно до закрытия соединения. В UDP-реализации протокола, сервер отправляет UDP-датаграмму, содержащую случайное (от 0 до 512) количество символов каждый раз, когда получает датаграмму от узла. Все полученные сервером данные игнорируются.

Реализации Inetd

На большинстве UNIX-подобных операционных систем сервер CHARGEN встроен в демон-программу Inetd (или XInetd). Служба CHARGEN, как правило, по умолчанию недоступна. Она может быть подключена путём добавления следующих строк в файл /etc/inetd.conf и перезагрузкой конфигурации Inetd:

chargen   stream  tcp     nowait  root    internal
chargen   dgram   udp     wait    root    internal

Приложения

Служба CHARGEN может быть использована как источник потока байтов для отладки кода, использующего TCP-сеть. Также, она может быть использована как источник трафика для измерения пропускной способности сети и тонкой настройки QoS, хотя эффективность такого использования сомнительна если включено аппаратное сжатие данных, так как вывод службы CHARGEN сжимается легко и эффективно. Из-за сжатия тесты пропускной способности могут сообщать размер данных после декомпрессии вместо реального размера переданных данных.

Пример сессии

Типичная сессия службы CHARGEN выглядит примерно следующим образом: 1. Пользователь подключается к узлу, используя клиент Telnet. 2. Пользователь принимает поток байтов. Хотя в RFC 864 не описан определенный формат вывода, рекомендуемый формат вывода (по стандарту де-факто) — сдвигающиеся строки из 72 повторяющихся символов ASCII.

$ telnet localhost chargen
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk
%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl
&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn
()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno
)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq
+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr
,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs
-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst
./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv
^]
telnet> quit
Connection closed.

Это продолжается до закрытия соединения TCP, как показано выше завершением сессии Telnet.

Злоупотребление

Служба была злонамеренно использована, чтобы обрушить сервера MS DNS под управлением Microsoft Windows NT 4.0 путём передачи произвольных символов прямо в прослушивающий порт (telnet ntbox 19 | telnet ntbox 53) DNS-сервера.[1] Впрочем, атака была предположительно следствием неправильного управления буфером DNS-сервером Microsoft и не имеет прямого отношения к службе CHARGEN.

См. также

Примечания

  1. Access Violation in Dns.exe Caused by Malicious Telnet Attack. Support.microsoft.com (1 ноября 2006). Дата обращения: 31 мая 2009. Архивировано из оригинала 3 июля 2012 года.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.