Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2015, 18:46   #11
NerfDoriftar
Пользователь
 
Регистрация: 17.01.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
целиком и полностью выноси на сервер. Плюс сертификаты, устанавливающее доверенное безопасное соединение.
Не могли бы вы , разьяснить по подробнее , как это реализовать.
К примеру.
NerfDoriftar вне форума Ответить с цитированием
Старый 17.01.2015, 19:56   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну тут как бы нужно знать специфику твоего задания...
В теории... На своем примере поясню.
Есть у мну WEB сервак. Там всякие системные утилиты удаленного управления филиями вращаются.
Я подаю запрос: http://localhost/getcompinfo?p=162518
Сервер возвращает мне имя компа филии и его характеристики. Сама клиентская прога просто отображает мне на экране эти данные.
Вся логика вынесена на сервер. При получении документа getcompinfo и параметра "р" сервер в БД ищет IP по номеру 162518 и собирает через WMI с него инфу.
Но клиентская программа не в курсе что за комп под этим номером стоит, а учитывая что я к примеру могу тупо добавить тому компу памяти или к примеру меня интересует свободное место на том компе, подделать эту информацию не удастся. Злоумышленник без доступа к БД на сервере не будет знать что за запрос и куда ведет, как бы не сниффил его.
Вот об этом и речь. Клиентская программа должна посылать на сервак запрос и получив отображать его. Ничего остального она делать не должна.
Слышал про технологию RPC (DCOM модули)? Поинтересуйся как она работает. Вообще у нее были бы отличные показатели безопасности, если бы Микрософтовцы не испортили ее усложнениями безопасности. Вот тебе нужно что-то вроде RPC сделать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2015, 20:44   #13
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Я так понял у афтара защита такая...
По сабжу:
1. да придется сертификаты мутить и трафик в ssl заворачивать... ssl маломальски от снифера спасет. но 100% от MITM атаки не спасет...

2. не надо клиенту отвечать однозначное "Да" или "нет", нужно давать так называемый тикет "билет" на запуск, например тикет на 3 дня/ 10 запусков... тикет должен быть подписан сертификатом сервера...
но при этом все равно проверяться на сервере, но не в момент запуска, а так междупрочим, с передачей выданного тикета и параметров системы (проверка использования тикета на разных машинах)
в отсутствии связи прога будет работать оговоренное время, а потом обязательный реарм...
3. в отсутствии перезарадки можно постепенно ограничивать функционал (например блокировка печати, сохранения)
4. и чем больше бизнес логики на сервере тем надежней
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 17.01.2015 в 20:47.
Slym вне форума Ответить с цитированием
Старый 17.01.2015, 21:03   #14
NerfDoriftar
Пользователь
 
Регистрация: 17.01.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну тут как бы нужно знать специфику твоего задания...
В теории... На своем примере поясню.
Есть у мну WEB сервак. Там всякие системные утилиты удаленного управления филиями вращаются.
Я подаю запрос: http://localhost/getcompinfo?p=162518
Сервер возвращает мне имя компа филии и его характеристики. Сама клиентская прога просто отображает мне на экране эти данные.
Вся логика вынесена на сервер. При получении документа getcompinfo и параметра "р" сервер в БД ищет IP по номеру 162518 и собирает через WMI с него инфу.
Но клиентская программа не в курсе что за комп под этим номером стоит, а учитывая что я к примеру могу тупо добавить тому компу памяти или к примеру меня интересует свободное место на том компе, подделать эту информацию не удастся. Злоумышленник без доступа к БД на сервере не будет знать что за запрос и куда ведет, как бы не сниффил его.
Вот об этом и речь. Клиентская программа должна посылать на сервак запрос и получив отображать его. Ничего остального она делать не должна.
Слышал про технологию RPC (DCOM модули)? Поинтересуйся как она работает. Вообще у нее были бы отличные показатели безопасности, если бы Микрософтовцы не испортили ее усложнениями безопасности. Вот тебе нужно что-то вроде RPC сделать.
Мне кажется , вы меня не совсем поняли.
У меня на сервере имеется скрипт проверки , допустим.

- http://localhost/?key=00010203040506070809
- Сервер проверяет есть ли в базе данных этот ключ.
- Если есть , вводит правильные данные для парсинга.
- После парсит данные и подставляет в программу.
- Читал про RPC - так и не понял её работу , и как её реализовать.
- Прошу дать пример , реализации самого простого кода с RPC и Delphi.
NerfDoriftar вне форума Ответить с цитированием
Старый 17.01.2015, 21:13   #15
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

NerfDoriftar Как я понял, делается что-то вроде привязки к серверу. В таком случае нужен метод рукопожатия. Программа обращается к серверу сообщая ей рандомный ключ. Сервер генерирует уникальный хэш, и отдаёт программе. Программа своими силами генерирует этот хэш, и сверяет с присланным. Если хэши совпали, сервер наш. Дополнительно программа криптуется протектором от желающих поковырять её внутренности.
WinCoder вне форума Ответить с цитированием
Старый 17.01.2015, 21:16   #16
NerfDoriftar
Пользователь
 
Регистрация: 17.01.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от WinCoder Посмотреть сообщение
NerfDoriftar Как я понял, делается что-то вроде привязки к серверу. В таком случае нужен метод рукопожатия. Программа обращается к серверу сообщая ей рандомный ключ. Сервер генерирует уникальный хэш, и отдаёт программе. Программа своими силами генерирует этот хэш, и сверяет с присланным. Если хэши совпали, сервер наш. Дополнительно программа криптуется протектором от желающих поковырять её внутренности.
При сравнений хешей , в программе используется проверка через "IF" - а его можно занопать в "OllyDbg".
Нужно что-то такое чтобы не было проверок "IF".
Если вы скажете - "Накрой протектором" , любой протектор в наше время снимается , так-что лучше всё таки "IF" не использовать.
Возможно ли скопировать функцию с сервера и вставить в программу после компиляции?

Последний раз редактировалось NerfDoriftar; 17.01.2015 в 21:21.
NerfDoriftar вне форума Ответить с цитированием
Старый 17.01.2015, 21:20   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
NerfDoriftar
Если ты заранее отвергаешь все предложения то выход только один - забудь о разработке. То что ты хочешь сделать невозможно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2015, 21:21   #18
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Тогда вариант с переносом большей части логики на сервер. Ломать будет нечего.
WinCoder вне форума Ответить с цитированием
Старый 17.01.2015, 21:25   #19
NerfDoriftar
Пользователь
 
Регистрация: 17.01.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от WinCoder Посмотреть сообщение
Тогда вариант с переносом большей части логики на сервер. Ломать будет нечего.
Прошу дать пример , как это реализовать.
Проверка отсылается прямо при запуске программы.
Прошу дать пример именно для моей ситуации.
NerfDoriftar вне форума Ответить с цитированием
Старый 17.01.2015, 21:29   #20
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Не надо ни чего проверять при запуске. У вас в программе есть хоть одна функция, которая что нибудь считает? Вот и реализуйте её на сервере, а из программы выпилите. Без сервера программа не сможет работать, а подменить его не получится, так как нет алгоритмов функций.
WinCoder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна ваша помощь:) Gigomod Операционные системы общие вопросы 3 14.02.2014 16:11
Нужна ваша помощь Шаманочка Паскаль, Turbo Pascal, PascalABC.NET 2 29.04.2009 20:58