Моделирование механизмов защиты компьютерной системы, страница 3


Создание аутентифицирующего объекта. Первый вход в защищенную компьютерную систему

 Словесное описание

При первом входе в защищенную компьютерную систему отсутствует файл, содержащий аутентифицирующий объект пользователей.  Создается новый файл и заполняется аутентифицирующий объект, содержащий только данные администратора. Введенный пароль шифруется; логин (“god”, без возможности изменения) и закрытый пароль записываются в файл.

Формализация входных и выходных данных

Входные данные:

·  pass – открытый пароль, вектор целых чисел длинной 10

Выходные данные:

·  login – имя пользователя, строка

·  crypt_pass – закрытый пароль, вектор целых чисел длинной 10

·  User.bin – файл, содержащий аутентифицирующий объект

Промежуточные данные:

·  login –имя пользователя, принудительно задаваемое системой, строка. Содержимое: “god”

Определение математических и логических зависимостей

Ввод пароля

Шифрование

Запись в АутОбъект

Запись в файл

Схема алгоритма


Вход в защищенную компьютерную систему

Словесное описание

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

Происходит поиск введенного логина в аутентифицирующем объекте. Если логин не найден – выводится сообщение об ошибке:

Если логин найден – пароль шифруется и сравнивается с паролем, соответствующим введенному логину, в аутентифицирующем объекте. Если пароли не совпадают – выводится сообщение об ошибке:


Если зашифрованный пароль совпадает с паролем в аутентифицирующем объекте:

·  Введенный логин – логин администратора (“god”) – выводится форма администратора:

·  Введенный логин не совпадает с логином администратора – выводится сообщение об успешном входе в систему:

Формализация входных и выходных данных

Входные данные:

·  login – имя пользователя, строка

·  pass – открытый пароль, вектор целых чисел длинной 10

·  АутОбъект – аутентифицирующий объект, содержащий:

o  АутОбъект.login – имя пользователя, строка

o  АутОбъект.crypt_pass – закрытый пароль, вектор целых чисел длинной 10

Выходные данные:

·  Сообщения:

o  «Логин не найден! Повторите ввод»

o  «Пароль не верен! Повторите ввод»

o  «Вход произведен. Вы в системе

Определение математических и логических зависимостей

Загрузка из файла АутОбъект

Для k = 0, 1… , kol, с шагом 1

               Если АутОбъект.login[k] = login

                              Для i = 0, 1… 10, с шагом 1

                                            Если crypt_pass[k][i] != pass [i]

                                                           Сообщение: «Не верный пароль»                                                    

                              Если Login[k] = “god”, тогда

                                            Вывод формы администратора

                              Иначе

                                             Сообщение: «Вход в систему»

Сообщение: «Логин не найден»


Схема алгоритма

Код программы

private void button1_Click(object sender, EventArgs e)

        {

            К_запись_в_файл.File_Read();

            КПользователь Пользователь = new КПользователь();

            string login = textBox1.Text;

            string password = textBox2.Text;

            bool flag = true;

            int key = -1;                //номер пользователя

            foreach (КПользователь пользователь in Global.АутОбъект)

            {

                key++;

                if (пользователь.Get_login() == login)

                {

                    flag = false;

                    if (пользователь.Get_password() == КШифрование.Шифрование(password))

                    {

                        if (пользователь.Get_login() == "god")

                        {

                            Форма_администратора форма_администратора = new Форма_администратора();

                            форма_администратора.Show();