![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Vinnety |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 8.4.2003 Репутация: нет Всего: нет |
Подскажите, как лучше всего сделать ввод пароля (пароль отображается '*')
до запуска основной программы, т.е. сделать пароль при входе. И подскажите как и где лучше хранить пароль от лишних глаз? ![]() |
|||
|
||||
gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: 3 Всего: 22 |
Пароль лучше хранить в голове, а в программе вычислять хитрым способом. А ввод проще всего сделать в отдельной форме. Создавать ееё на OnCreate главной формы, если условие пройдено то дальше, нет - выход. А вообще в инете много инфы по защите своих программ.
-------------------- С уважением. Gray. |
|||
|
||||
&-ray |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 406 Регистрация: 15.4.2003 Где: Казахстан, г Аста на Репутация: нет Всего: нет |
Самый простой вариант: модифицируй dpr
PS В uses в dpr должен быть прописан модуль Dialogs -------------------- "Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б. -------------------- И снова мышь беру я в руки Куда иду? - Конечно в сруки! |
||||
|
|||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Правильное хранение паролей: пароль хранить хоть в зашифрованном виде, хоть в не зашифрованном виде нельзя - надо хранить хэш пароля, лучше 128 битный, при вводе пароля его тоже "превращают" в хэш по тому же алгоритму и сравнивают хэши. Преимущества - по хэшу практически невозможно восстановить пароль - т.е. криптование идёт только в одну сторону. Хэш - это проще говоря - контрольная сумма. Т.е. для всего текста по особому алгоритму высчитывается более или менее длинное число, которое в очень высокой степенью вероятности уникально. Т.е. вероятность одного и того же числа для 2х разных текстов крайне низкая. Наиболее применяемыми являются 128 битные хэши (например MD5) - когда на каждый текст любой длины генерится 128 битная строка. Эту строку и хранят. По хэшу восстановить исходный текст нельзя, подобрать текст который будет давать тот же хэш можно, но для 128 битного ключа это будет очень долго - я прикидывал для MD5 - если тупым перебором - то годы, есть более быстрые алгоритмы - но всё равно речь идёт о многих днях машинного времени. Сейчас стандартом де-факто является MD5.
Схема проста: Введенный пароль криптуется MD5 и полученный хэш хранится в базе данных Повторно введенный пароль тоже криптуется MD5 и сравнивается хэш с хранимым. Восстановить утерянный пароль нельзя - можно лишь его "обнулить" и прописать заново. Есть библиотека DCP - там реализован MD5 (как и ещё штук 30 алгоритмов криптования -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Pakshin A. S. |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Найди сайт, посвященный этой теме. Вообще скрыть пароль от нежелательных глаз - проблема ещё та!!!
|
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Тема Up.
С хэшем - это само собой, Однако в реальных приложениях приходится предоставлять пользователю возможность "автологина" - то есть чтобы прога сама вводила пароль и ехала дальше. Например, это нормальная практика в ICQ клиентах ![]() У кого есть соображения, как максимально секьюрно обеспечить локальное хранение паролей? |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
в том-то и проблема ICQ-клиентов -- воруют пароли из всяких .dat-файлов со страшной силой
если система NT ( и под одним логином один пользователь сидит ) можно на уровне системы файл шифровать... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Не, WinAll...
|
|||
|
||||
SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
Ввести login и password при старте программы позволяет готовая компонента из JEDI
|
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
А как она хранит инфу - известно?
|
|||
|
||||
bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: 3 Всего: 29 |
December, юзай DCPcrypt Cryptographic Component Library и тогда ты сможешь облегчить себе жизнь, и затруднить жизнь взломщику
![]() ![]() Это сообщение отредактировал(а) bartram - 20.3.2006, 20:45 |
|||
|
||||
SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
December,
Она не хранит инфу- это просто готовый диалог для ввода логина и пароля при старте программы , а уж сравнивать и хранить инфу нужно самому |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Да никак. В любом случае - это большая дыра в безопасности. После того, как включена опция "автологина", пароль знать необязательно. Достаточно вычислить, куда сохраняется информация и восстанавливать ее при необходимости "автозалогиниться" каждый раз при входе в программу. Немного усилит безопасность вариант с зависимостью сохраненной зашифрованной информации от даты, например. Но, как я понимаю, такой вариант не устроит. -------------------- |
|||
|
||||
RA |
|
||||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
где-то во флеме это обсуждалось, и говорилось что на вычисление коллизии MD5 уходи 8 часов, а с современными двух ядерными процессорами + PCI-E на это уйдёт часа 4. етсь мнение, что лутше всего вместо хранения хэша хранить хэш хэша, что обязательно поставит в тупичёк взломщика. ![]() Добавлено @ 13:45
Я розговаривал с одним похитителем уинов, так вот по его словам пароли ICQ воруются по Вордлисту, или из датников в Internet-cafe. Это сообщение отредактировал(а) RAdmin - 21.3.2006, 13:46 |
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Я думаю что нужно защитить не только пароль но программу от взлома, в любой подобной системе замена команды
JE xyz на JMP xyz приводит к запуску программы в обход всяких паролей... -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
iddqd |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: 0 Всего: 2 |
Класс для логинов и паролей:
Не доведено до ума. Писалось за 5 минут специально для топика. А вот модуль MD5.pas:
-------------------- |
||||
|
|||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
bartram, спасибо за линк, интересная либа.
Господа, имеет место быть значительное отклонение от темы ![]() Вопрос не в том, насколько это плохо и почему именно. Просто надо дать юзеру возможность автологина... |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
iddqd,
спасибо за пример (писали пост практически одновременно ![]() |
|||
|
||||
Foley |
|
||||
![]() Фсемба Яцца ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 31.1.2006 Где: Россия, Арх.обл Репутация: 2 Всего: 7 |
В ДРКБ это есть
узнает находится ли эта прога в режиме отладки, вызывается так
|
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
извините за оффтоп (просто не могу удержаться)
Foley, эта защита стара как windows, почти все дебагеры оснащены средством обхода такой штуки (если не встроеной, так дополнительной) -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Что-то тема опять начала уползать...
|
|||
|
||||
Snowy |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Могу предложить свой класс для шифрования строки:
Пример использования:
Добавлено @ 18:49 Вот пример на едитах:
|
||||||
|
|||||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Добавлено @ 20:04 И вообще, пусть автор темы уточнит задачу. Зачем тебе пароль? а) чтобы недопустить нелицензионного использования программы б) чтобы ограничить права пользователя при работе с программой. -------------------- Обижено школьников: 8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |