16.3.1. Пароли

16.3.1. Пароли

Самой распространенной причиной модификации установок termios является чтение пароля без эхо-контроля символов. Для этого следует отключить локальное эхо во время чтения пароля. Ваш код должен выглядеть следующим образом:

struct termios ts, ots;

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

tcgetattr(STDIN_FILENO, &ts);

Обычно пароли читаются со стандартного устройства ввода.

ots = ts;

Сохраните копию оригинальных установок termios, чтобы позже восстановить их.

ts.c_lflag &= ~ECHO;

ts.c_lflag |= ECHONL;

tcsetattr(STDIN_FILENO, TCSAFLUSH, fits);

Отключите эхо-контроль символов (кроме символов новой строки) после завершения обработки всех выходных данных. (Первая l в c_lflag означает локальную (local) обработку.)

read_password();

Теперь вы читаете пароль. Это может быть простой вызов fgets() или read(), либо же более сложная обработка, в зависимости от режима tty (неформатируемый режим или режим обработки) и от требований программы.

tcsetattr(STDIN_FILENO, TCSANOW, &ots);

Это немедленно восстанавливает исходные установки termios. (Остальные опции объясняются позже, в справочном разделе далее в главе.)

Полный код программы-примера, readpass, показан ниже.

 1: /* readpass.с */

 2:

 3: #include <stdio.h>

 4: #include <stdlib.h>

 5: #include <termios.h>

 6: #include <unistd.h>

 7:

 8: int main (void) {

 9:  struct termios ts, ots;

10:  char passbuf[1024];

11:

12:  /* получить и сохранить текущие настройки termios */

13:  tcgetattr(STDIN_FILENO, &ts);

14:  ots = ts;

15:

16:  /* изменить и установить новые настройки termios */

17:  ts.c_lflag & = ~ECHO;

18:  ts.c_lflag |= ECHONL;

19:  tcsetattr(STDIN_FILENO, TCSAFLUSH, &ts);

20:

21:  /*хоть это и параноидально, но проверить, возымели ли эффект новые настройки*/

22:  tcgetattr(STDIN_FILENO, &ts);

23:  if (ts.c_lflag & ECHO) {

24:   fprintf(stderr, "Сбой при отключении эхо-контроля ");

25:   tcsetattr(STDIN_FILENO, TCSANOW, &ots);

26:   exit(1);

27:  }

28:

29:  /* получить и вывести пароль */

30:  printf("введите пароль:");

31:  fflush(stdout);

32:  fgets(passbuf, 1024, stdin);

33:  printf("прочитан пароль: %s", passbuf);

34:  /* в passbuf был завершающий символ */

35:

36:  /* восстановить старые настройки termios */

37:  tcsetattr(STDIN_FILENO, TCSANOW, &ots);

38:

39:  exit(0);

40: }

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Пароли на сессию.

Из книги 64 килобайта о Фидо автора Filimonov Nick

Пароли на сессию. Этот вопрос включен в рассмотрение ввиду распространенности проблем с соединением при ошибках в задании паролей.Прежде всего, имеет место следующая таблица :Звонящий узел | Отвечающий Узел | Сессияпароль | вид сессии пароль | вид сессиинет непарольная


7.3.5. Установка пароли GRUB

Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

7.3.5. Установка пароли GRUB Теперь поговорим об установке пароля GRUB. Пароль можно установить так (в файле /boot/grub/grub.conf):…password my_pass…title LinuxВ этом случае мы установили пароль my_pass. Если кто-то попытается отредактировать параметры ядра (чтобы, например, взломать ваш пароль root, см,


Пароли и безопасность

Из книги Реестр Windows автора Климов Александр

Пароли и безопасность Рассматриваемые настройки хранятся в ветви HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesNetworkВсе ключи имеют тип DWORD, если это не обговорено отдельно; значение ключа равное 1 включает данную опцию, 0 выключает, если это не обговорено отдельно Отмена кэширования


Одноразовые пароли: новости из мира хакеров

Из книги Журнал PC Magazine/RE №10/2009 автора Журнал «PC Magazine»

Одноразовые пароли: новости из мира хакеров Как стало известно из обзора технологических новинок, опубликованного на сайте Массачусетского технологического института (MIT), двухфакторная аутентификация, которая активно используется при проведении онлайновых


Пароли

Из книги Интернет. Новые возможности. Трюки и эффекты [litres] автора Баловсяк Надежда Васильевна

Пароли Рассмотрим параметры системного реестра для настройки использования паролей в браузере Internet Explorer.– Для отключения кэширования паролей создайте в разделе HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings параметр DisablePasswordCaching (тип DWORD) со значением 1. По умолчанию в Internet


Пароли в Интернет — взгляд изнутри

Из книги Компьютерные советы (сборник статей) автора Автор неизвестен

Пароли в Интернет — взгляд изнутри Автор: Lesnoy_chelovekИсточник: http://bugtraq.ru/Уже множество статей, книг и докладов было посвящено теме безопасности работы в Интернете. Но я решил пойти дальше и показать, что на самом деле может сделать рядовой хакер, обладающий начальными


Пароли

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

Пароли Как вы, вероятно, знаете, пользователь может установить пароль на свой карманный компьютер. Для этого ему нужно зайти в раздел Password при помощи последовательности команд Start?Settings?Password и указать четырехсимвольный пароль. С помощью четырех функций API можно получить


Пароли Outlook Express

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

Пароли Outlook Express Пароли всех удостоверений Outlook Express хранятся в реестре. Для этого предназначена ветвь реестра HKEY_CURRENT_USERSoftwareMicrosoftProtected Storage System Provider«идентификатор безопасности вашей учетной записи (SID)»Data. По умолчанию доступ к ветви системного реестра


2.10.3. Пароли по умолчанию

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

2.10.3. Пароли по умолчанию Многие сервисы во время установки прописывают пароли по умолчанию. В ОС Linux эта проблема стоит особо остро, потому что программы инсталляции используют RPM-пакеты и чаще всего даже не предлагают их сменить. Я бы на месте разработчиков вообще


2.10.4. Универсальные пароли

Из книги IT-безопасность: стоит ли рисковать корпорацией? автора Маккарти Линда

2.10.4. Универсальные пароли Производители BIOS раньше устанавливали в свои чипы универсальные коды доступа, которые позволяли войти в систему, не зная основной пароль, который установил администратор. Например, в одной из версий BIOS компании AWARD использовался универсальный


3.3.1. Теневые пароли

Из книги Операционная система UNIX автора Робачевский Андрей М.

3.3.1. Теневые пароли В старых версиях Linux список пользователей и пароли хранились в файле /etc/password. Это не очень хорошо, потому что данный файл должен быть доступен для чтения всем пользователям, т.к. имена пользователей требуются очень многими безобидными программами.


14.1.6. Пароли

Из книги Анонимность и безопасность в Интернете. От «чайника» к пользователю автора Колисниченко Денис Николаевич

14.1.6. Пароли Не буду повторяться, что пароли должны быть сложными, а поговорим немного о другом.Все пароли необходимо менять через определенные периоды времени. На своем сайте (а к нему имеют доступ достаточно много человек) я это делаю каждый месяц, потому что в Интернете


Тестировать пароли

Из книги автора

Тестировать пароли Надо отдать должное — люди из TransWorld хорошо позаботились о паролях. Из 1000 учетных записей пользователей я смогла взломать лишь четыре пароля. Правда, это на три пароля больше, чем мне было нужно! Не ждите, когда хакер пройдется по вашим паролям и взломает


Глава 10. Ваш личный сейф. Шифрование информации и пароли

Из книги автора

Глава 10. Ваш личный сейф. Шифрование информации и пароли 10.1. Пароль на BIOS: ставить ли? Любой компьютер, будь то ноутбук или стационарный компьютер, позволяет установить пароль на BIOS – при включении компьютера (еще до загрузки ОС) вы увидите запрос на ввод пароля. Если


10.5.1. Пароли, документы, архивы

Из книги автора

10.5.1. Пароли, документы, архивы Представим, что у вас есть конфиденциальный документ (пусть это будет документ MS Word), и вы не хотите, чтобы его смог открыть кто-либо еще, кроме вас. Как это можно организовать?Один из вариантов – использовать стандартное шифрование Windows 7. Но