Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Секретный обмен данными программы с сервером  [new]
Basketbol
Member

Откуда:
Сообщений: 59
Добрый день!
Мне нужно организовать общение программы с СУБД, с машины клиента.
Проблема в том, что если в ини-файле прописать логин и пароль доступа к СУБД - то соответственно клиент сможет зайти в базу, скачать её и т.д.
Ну т.е. как вообще такие задачи решаются? Когда нужно сделать подсос каких то данных с сервера, но чтобы владелец компьютера не смог получить эти данные сам?
12 июн 19, 12:02    [21907247]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
Basketbol
Member

Откуда:
Сообщений: 59
Можно конечно назначить права доступа в базе, но я хочу чтобы клиент не видел вообще ничего.
А если речь идет про БД - то в любом случае программа посылает логин и пароль, и снифером можно посмотреть эти данные.
...
Может как то отказаться от БД? Запаковывать все необходимые данные в какой - нибудь зашифрованный dat файл, скачивать его по ФТП, внутри себя распаковывать и так работать?
12 июн 19, 12:06    [21907251]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
miksoft
Member

Откуда:
Сообщений: 37809
Basketbol
снифером можно посмотреть эти данные.
Вы определитесь, от каких именно угроз нужно защититься?
В пределе - всё, что попадает в компьютер клиента, может быть им достано. Вопрос только ценой каких усилий.

Как вариант - программу ставить не на компьютер клиента, а на отдельный сервер. И предоставлять доступ к ней через RDP.
12 июн 19, 12:11    [21907253]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 549
Basketbol,

для соединения с сервером использовать ssl, тогда снифером эти данные не посмотреть
и зачем логин и пароль хранить в ini файле? при авторизации пусть клиент их вводит вручную, и уже с ними подключаться

дальше вообще не понятно, то вы не хотите, чтобы клиент скачал базу(?), то хотите дать ему эти же данные в виде файла и чтобы он с ним работал(?)
12 июн 19, 12:17    [21907259]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48607

Basketbol
как вообще такие задачи решаются? Когда нужно сделать подсос каких то данных с сервера, но
чтобы владелец компьютера не смог получить эти данные сам?

Единственный правильный (и работающий) способ - никогда не передавать закрытые данные на
клиентский компьютер.

Posted via ActualForum NNTP Server 1.5

12 июн 19, 12:20    [21907265]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
L_argo
Member

Откуда:
Сообщений: 999
Dimitry Sibiryakov
Basketbol
как вообще такие задачи решаются? Когда нужно сделать подсос каких то данных с сервера, но
чтобы владелец компьютера не смог получить эти данные сам?

Единственный правильный (и работающий) способ - никогда не передавать закрытые данные на
клиентский компьютер.
Как-то открыл страничку какого-то банка. Хотел пару абзацев кредитных условий сохранить.
А сайт оказался полностью на флеше. На экране просто рисованная картинка.
13 июн 19, 08:45    [21907636]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5329
asutp2
Basketbol,

для соединения с сервером использовать ssl, тогда снифером эти данные не посмотреть
оч смешно


Dimitry Sibiryakov
Единственный правильный (и работающий) способ - никогда не передавать закрытые данные на
клиентский компьютер.
+1, если это невозможно, то остаётся только увеличивать стоимость затрат на взлом
13 июн 19, 09:01    [21907648]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 549
kealon(Ruslan)
asutp2
Basketbol,

для соединения с сервером использовать ssl, тогда снифером эти данные не посмотреть
оч смешно
а ты в состоянии смотреть расшифрованные данные при использовании ssl?
13 июн 19, 09:38    [21907690]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
asutp2
а ты в состоянии смотреть расшифрованные данные при использовании ssl?

SSL, если не предпринимать специальных усилий (а их практически никто не предпринимает), не устойчив для MITM. Этим пользуются реверс-прокси типа Fiddler, например.
13 июн 19, 10:44    [21907738]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
alekcvp
Member

Откуда:
Сообщений: 1626
Kazantsev Alexey
asutp2
а ты в состоянии смотреть расшифрованные данные при использовании ssl?

SSL, если не предпринимать специальных усилий (а их практически никто не предпринимает), не устойчив для MITM.

"Специальные усилия" - это покупка нормального сертификата и проверка CRL?..
13 июн 19, 10:53    [21907744]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
alekcvp
"Специальные усилия" - это покупка нормального сертификата и проверка CRL?..

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1303826&msg=21703118
13 июн 19, 10:54    [21907745]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
goldmi45
Member

Откуда:
Сообщений: 1193
Требования, озвученные ТСом, очень расплывчатые. Непонятно, что значит секретный обмен. От кого он должен быть секретным? Какая СУБД используется? Не хочет ли ТС сам себя обмануть?
Если программа предназначена для работы с базой, то и хранить пароль не нужно (не в ини, не в реестре). А если не предназначена, то добавить авторизацию никто не запрещает.
13 июн 19, 11:09    [21907751]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
goldmi45,

ТС не хочет, чтобы клиент мог в обход приложения к базе подключиться, кмк. Тут решение одно - трёхзвенка.
13 июн 19, 11:17    [21907756]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
alekcvp
Member

Откуда:
Сообщений: 1626
Kazantsev Alexey
alekcvp
"Специальные усилия" - это покупка нормального сертификата и проверка CRL?..

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1303826&msg=21703118


Ну, подразумевается, что если кто-то может изменить траффик между сервером и клиентом в локальной сети (для МИТМ, т.е. подменить запись в локальном DNS или установить прозрачный прокси), то доступ к серверу с CA у него тоже, скорее всего, есть.
13 июн 19, 11:49    [21907787]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5329
alekcvp
Kazantsev Alexey
пропущено...

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1303826&msg=21703118


Ну, подразумевается, что если кто-то может изменить траффик между сервером и клиентом в локальной сети (для МИТМ, т.е. подменить запись в локальном DNS или установить прозрачный прокси), то доступ к серверу с CA у него тоже, скорее всего, есть.
судя по задаче ТС, однозначно есть - т.е. всё это только защита от дурака, затруднит немного, но не панацея. Строго говоря, любое шифрование ломать не надо, достаточно найти кусок памяти в процессе в нужный мамент, программа всё равно расшифрует данные, как то же ей с ними работать надо.

хотелка
автор
нужно сделать подсос каких то данных с сервера, но чтобы владелец компьютера не смог получить эти данные сам?

однозначно противоречит аксиоме 21907265

железная защита (если предполагать, что злоумышленник не имеет доступа к серверу) это когда нечего ломать, т.е. все функции, использующие секретные данные, должны быть реализованы на сервере
13 июн 19, 12:11    [21907806]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
m830
Member

Откуда: Москва, Россия
Сообщений: 51
Basketbol,

Достаточно зашифровать Exe-шник программы, которой доступ к БД осуществляется от абстрактного имени, например User,
а доступ к программе осуществляется по логину и паролю, хранящимся в этой или другой БД
13 июн 19, 13:03    [21907880]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3396
m830,

сниффер сети, думаю, покажет всё интересное.
13 июн 19, 14:03    [21907944]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11256
Kazantsev Alexey
Этим пользуются реверс-прокси типа Fiddler, например.
Который требует от клиента установить свой сертификат
13 июн 19, 15:05    [21907987]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11256
L_argo
Как-то открыл страничку какого-то банка. Хотел пару абзацев кредитных условий сохранить.
А сайт оказался полностью на флеше. На экране просто рисованная картинка. Картинка с другого сайта.
А ты эту картинку в FineReader
13 июн 19, 15:06    [21907988]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
Gator
Member

Откуда: Москва
Сообщений: 14978
_Vasilisk_,

+++! :)
13 июн 19, 17:37    [21908135]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
_Vasilisk_
Который требует от клиента установить свой сертификат

И что? Сейчас их кто только не ставит. Это не остановит клиента желающего увидеть трафик приложения.

Вот, кстати, почитайте... и комментарии тоже.
13 июн 19, 19:37    [21908207]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11256
Kazantsev Alexey
И что? Сейчас их кто только не ставит
А то, что пока клиент самостоятельно не установит себе сертификат, никто его трафик читать не сможет
Kazantsev Alexey
Вот, кстати, почитайте.
О чем я и говорю
АО «Казахтелеком» намерен чуть позже в декабре выпустить подробную пошаговую инструкцию по добавлению его в ключницы в мобильные телефоны и планшеты на базе iOS и Android, персональные компьютеры и ноутбуки на базе Windows и MacOS,

Kazantsev Alexey
и комментарии тоже.
Браузеры честно говорят «Сертификат не подходит». На что поддержка провайдера говорит «А вы не парьтесь, это наш сертификат! Просто добавьте его в доверенные».


Везде пользователь должен сам устанавливать сертификат.

Ну или сговор с СА. Но Symantec уже пыталась. Врядли еще найдутся желающие
14 июн 19, 13:43    [21908672]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5329
_Vasilisk_
Kazantsev Alexey
И что? Сейчас их кто только не ставит
А то, что пока клиент самостоятельно не установит себе сертификат, никто его трафик читать не сможет
не отходим от задачи
Basketbol
но чтобы владелец компьютера не смог получить эти данные сам?
14 июн 19, 14:29    [21908720]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
_Vasilisk_
А то, что пока клиент самостоятельно не установит себе сертификат, никто его трафик читать не сможет

Ну так что клиенту помешает это сделать, когда он сам и заинтересован в просмотре трафика?

_Vasilisk_
Везде пользователь должен сам устанавливать сертификат.

Когда трафик мониторится на уровне провайдера вариантов только два: либо ты ставишь сертификат, либо у тебя перестаёт работать ssl/tls.
14 июн 19, 15:09    [21908761]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 549
Kazantsev Alexey,

а что мешает использовать при обмене с сервером свое шифрование, на RSA/4096? Сервер имеется ввиду свой сервер (написанный на делфи, например на стандартном из коробки TidHttpServer), который шифрует/расшифровывает блоки данных своим секретным ключом?

Например клиент посылает чтото типа {"data":"данные_зашифрованные_RSA"}, сервер отвечает аналогично {"data":"данные_зашифрованные_RSA"}. Процедура надежного обмена ключами сессии и использование приватных/публичных давно обкатана.

В таком случае вообще плевать, что там хочет провайдер. Можно смело поставить его сертификат, провайдер будет видеть только данные именно в виде {"data":"данные_зашифрованные_RSA"}, всякие сниферы - аналогично.
14 июн 19, 16:43    [21908856]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
ziv-2014
Member

Откуда:
Сообщений: 468
asutp2,
VPN over HTTPS.
14 июн 19, 16:54    [21908872]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
asutp2
а что мешает использовать при обмене с сервером свое шифрование, на RSA/4096?

Да ничего не мешает. Только RSA-4096 не нужен для обмена, достаточно использовать любой хороший блочный шифр с ключём имеющим достаточную энтропию.

asutp2
Процедура надежного обмена ключами сессии и использование приватных/публичных давно обкатана.

О чём сейчас речь?

asutp2
В таком случае вообще плевать, что там хочет провайдер. Можно смело поставить его сертификат

В этой схеме и SSL становится лишним звеном.
14 июн 19, 17:10    [21908887]     Ответить | Цитировать Сообщить модератору
 Re: Секретный обмен данными программы с сервером  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5329
asutp2
Kazantsev Alexey,

а что мешает использовать при обмене с сервером свое шифрование, на RSA/4096? Сервер имеется ввиду свой сервер (написанный на делфи, например на стандартном из коробки TidHttpServer), который шифрует/расшифровывает блоки данных своим секретным ключом?

Например клиент посылает чтото типа {"data":"данные_зашифрованные_RSA"}, сервер отвечает аналогично {"data":"данные_зашифрованные_RSA"}. Процедура надежного обмена ключами сессии и использование приватных/публичных давно обкатана.

В таком случае вообще плевать, что там хочет провайдер. Можно смело поставить его сертификат, провайдер будет видеть только данные именно в виде {"data":"данные_зашифрованные_RSA"}, всякие сниферы - аналогично.
это всё "защита от дурака", но уже лучше в плане защиты, но и + к стоимости

автор
Строго говоря, любое шифрование ломать не надо, достаточно найти кусок памяти в процессе в нужный момент, программа всё равно расшифрует данные, как то же ей с ними работать надо.

21907806

конечно взломщик-профи тоже не дешев, но тут весь вопрос насколько ценны данные
14 июн 19, 17:16    [21908890]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Delphi Ответить