re>
Глобальная сеть не может быть построена по принципу прямой связи между
объектами, поскольку для каждого объекта невозможно обеспечить вы деленный
канал связи с любым другим объектом. Поэтому в Internet связь
осуществляется через цепочку маршрутизаторов, а следовательно, сообщение,
проходя через большое количество промежуточных подсетей, может быть
перехвачено. Также к Internet подключено большое число локальных Ethernet-
сетей, использующих топологию «общая шина»; в сетях с такой
топологией несложно программно осуществлять перехват сообщений.
( Недостаточные идентификация и аутентификация
В базовых протоколах обмена идентификация и аутентификация объектов
практически отсутствуют. Так, например, в прикладных протоколах . FTP,
TELNET, РОРЗ имена и пароли пользователей передаются по сети в виде
открытых незашифрованных сообщений.
( Использование нестойких алгоритмов идентификации объектов при создании
виртуального TCP-соединения
Как уже подчеркивалось, протокол TCP является единственным базовым
протоколом транспортного уровня, в функции которого заложена защита
соединения. Однако использование простейшего алгоритма идентификации
объектов при создании виртуального TCP-канала, особенно при условии
применения в сетевых ОС простейших времязависимых законов генерации TCP-
идентификаторов (ISN), сводит на нет все попытки обеспечения идентификации
канала и объектов при их взаимодействии по протоколу TCP.
( Отсутствие криптозащиты сообщений
В существующих базовых протоколах семейства TCP/IP, обеспечивающих
взаимодействие на сетевом и транспортном уровнях, не предусмотрена
возможность шифрования сообщений, хотя очевидно, что добавить ее в протокол
TCP не составляло труда. Разработчики решили переложить задачу криптозащиты
на протоколы более высоких уровней, например прикладного уровня. При этом
базовые протоколы прикладного уровня (FTP, TELNET, HTTP и др.) также не
предусматривали никакого шифрования сообщений. Только не так давно появился
общедоступный прикладной протокол SSL, встроенный в Netscape Navigator,
позволяющий как надежно зашифровать сообщение, так и подтвердить его
подлинность. В заключение хотелось бы заметить, что все описанные выше
причины, по которым возможна успешная реализация угроз безопасности РВС,
делают сеть Internet небезопасной. А следовательно, все пользователи сети
могут быть атакованы в любой момент.
Подведем итоги.
Учитывая все вышесказанное, я думаю, что студентам кафедры АСОИУ уже
сейчас не представляется никакой сложности для несанкционированного доступа
к терминалам серверов с правами администраторов (причем это не
необоснованное высказывание). Другой вопрос – целесообразности всего этого.
Я думаю что не стоит проверять все вышесказанное на практике в целях своей
же безопасности.
В целом, вычислительная сеть университета администрируется весьма
неплохо, нужно отдать должное системным администраторам. На серверах стоят
последние версии операционных систем. Однако на chuck.stu.lipetsk.ru почему-
то у обычных пользователей нет прав на компилирование Си программ. Почему?
Может это и есть слабое звено в администрировании, или это еще одна
предосторожность администратора? Хотя на tomcat.am.lstu обычным смертным
разрешено…
Вообще-то взлом octopus.stu.lipetsk.ru был бы неуважением своей же
кафедры. Ведь та защита которая там присутствует направлена не для того,
чтобы предотвратить проникновение злоумышленника, а для элементарной защиты
от неопытных пользователей.
ПРИЛОЖЕНИЕ.
В целях безопасности, приводим только фрагменты программы. Файл john.c
#include
#include
#include
#include
#include "arch.h"
#include "misc.h"
#include "params.h"
#include "path.h"
#include "memory.h"
#include "list.h"
#include "tty.h"
#include "signals.h"
#include "idle.h"
#include "common.h"
#include "formats.h"
#include "loader.h"
#include "logger.h"
#include "status.h"
#include "options.h"
#include "config.h"
#include "bench.h"
#include "charset.h"
#include "single.h"
#include "wordlist.h"
#include "inc.h"
#include "external.h"
#include "batch.h"
#if CPU_DETECT
extern int CPU_detect();
#endif
extern struct fmt_main fmt_DES, fmt_BSDI, fmt_MD5, fmt_BF;
extern struct fmt_main fmt_AFS, fmt_LM;
extern int unshadow(int argc, char **argv);
extern int unafs(int argc, char **argv);
extern int unique(int argc, char **argv);
static struct db_main database;
static struct fmt_main dummy_format;
static void john_register_one(struct fmt_main *format)
{
if (options.format)
if (strcmp(options.format, format->params.label)) return;
fmt_register(format);
}
static void john_register_all()
{
if (options.format) strlwr(options.format);
john_register_one(&fmt_DES);
john_register_one(&fmt_BSDI);
john_register_one(&fmt_MD5);
john_register_one(&fmt_BF);
john_register_one(&fmt_AFS);
john_register_one(&fmt_LM);
if (!fmt_list) {
fprintf(stderr, "Unknown ciphertext format name requestedn");
error();
}
}
static void john_load()
{
struct list_entry *current;
umask(077);
if (options.flags & FLG_EXTERNAL_CHK)
ext_init(options.external);
if (options.flags & FLG_MAKECHARS_CHK) {
options.loader.flags |= DB_CRACKED;
ldr_init_database(&database, &options.loader);
if (options.flags & FLG_PASSWD) {