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

Откуда: Гималай
Сообщений: 2101
Приветствую всех.
Создаю многопользовательский программный пакет, база на SQL Server 2005 на Windows Server 2003.
Есть клиентская программа, которая подключается к базе.
Система авторизации использует не только логин пароль пользователя, так же систему ключей, т.е. при авторизации передается логин, пароль, также пара ключей зашифрованных неким алгоритмом, ключи каждый раз обновляются при подключении.
Ключи используемые при авторизации хранятся в локальном файле где запускается клиентская программа (ессно не в исходном виде).
Конечно же может быть такое, что ключи "потеряются" или не будут совпадать с текущими ключами в базе.
Для решения подобных проблем, думаю использовать в программе такой метод, при подключении проверяются значения @@servername и host_name(), т.е. идентификация того что прога запущена на серваке, если так, то ключи в данном случае не требуются для авторизации.
Т.е. путем запуска клиентской проги на самом сервере, можно восстановить ключи на других компах.
Как вам такой метод? Также насколько правилен метод определения подключения от сервера или из другого места путем сравнения @@servername и host_name()?
Не пинайте и не кидайтесь камнями, "защищенные" приложения создаю первый раз, поэтому сейчас на ум приходит такой метод, может быть есть лучше идеи?
Клиентские приложения могут быть обычными win-приложениями и web-клиентами, поэтому ключи тоже будут hex-видные строки, или же guid-подобные строки. тока длиннее.
Спасибо всем за внимание и отзывы.
23 окт 09, 17:00    [7831297]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
Актуально
23 окт 09, 21:45    [7832537]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
осень, обострение, третий день autentication/authorization покою умам не дают. Теперь внято обьясните . на какой херпользователь будет иметь ещё кривостойкие пароли. ? sql логином вы уже подключились к серверу и вам уже даны права на обьекты бд исервера. скрипт, адо , офис с вордом и ехелем на ос клиента есть , нахрен вашему клиенту поделка.
23 окт 09, 21:59    [7832566]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
Ken@t
осень, обострение, третий день autentication/authorization покою умам не дают. Теперь внято обьясните . на какой херпользователь будет иметь ещё кривостойкие пароли. ? sql логином вы уже подключились к серверу и вам уже даны права на обьекты бд исервера. скрипт, адо , офис с вордом и ехелем на ос клиента есть , нахрен вашему клиенту поделка.


хэх, логины и пароли перехватить не такое уж сложное дело, достаточно установить, кейлоггеры, а ключи тем более они зашифрованные, и еще связаны между собой неким алгоритмом, перехватить скомпреметировать будет чуть сложнее
а насчет разделения прав все это делается на стороне клиентской программы
вот на этот хэр это и нужно
24 окт 09, 07:11    [7833289]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
Егоров Александр
Member

Откуда: Хабаровск
Сообщений: 517
orunbek
хэх, логины и пароли перехватить не такое уж сложное дело, достаточно установить, кейлоггеры, а ключи тем более они зашифрованные, и еще связаны между собой неким алгоритмом, перехватить скомпреметировать будет чуть сложнее
а насчет разделения прав все это делается на стороне клиентской программы
вот на этот хэр это и нужно

Nt-авторизация никогда не передает пароль. Скомпроментировать "тем более зашифрованные ключи" даже проще, чем уставновить кейлогер. А раз разделение прав делается на стороне клиентской программы - значит sql-ному логину даются права "всем-все"... и возится с ключами для получения доступа смысла вообще не имеет - достаточно получить подключиться с нужным логином\паролем через стороннее приложение, чтобы получить полный доступ к базе...
24 окт 09, 08:31    [7833316]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
а как раз подключение напрямую регулируется фаером
а ключи в основном нужны будут для подключения через web
т.е. на стороне сервера стоит web-сервер, через которую выполняется авторизация ключами
я не говорю про скомпрометирование NT-авторизации, а про перехват нажатий клавишами, и про тупых юзверей которые всем раздают логины и пароли,
нужно обеспечить защиту не только логинами и паролями но и в самой системе еще, потому что достаточно серъезная инфа в базе будет хранится ;))
можете подробнее рассказать про перехват ключей
24 окт 09, 08:47    [7833324]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
поднимаю
25 окт 09, 16:56    [7835628]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
Guest000
Member

Откуда: Moscow
Сообщений: 341
orunbek, велосипед изобретаете.
Есть уже встроенные функции использования сертификатов
25 окт 09, 19:25    [7835847]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
Guest000
Member

Откуда: Moscow
Сообщений: 341
orunbek
достаточно серъезная инфа в базе будет хранится ;))

От скриншотов как собираетесь защищаться?
25 окт 09, 19:27    [7835852]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
Guest000
orunbek
достаточно серъезная инфа в базе будет хранится ;))

От скриншотов как собираетесь защищаться?


:-))) может быть бекап выложить??
26 окт 09, 06:12    [7836569]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
Guest000
orunbek, велосипед изобретаете.
Есть уже встроенные функции использования сертификатов


Может быть, хмм... просто надо вариант защиты, при котором нужно минимальное участие пользователя, а даже полное отсутствие, кроме логина и пароля
хотя может быть и с сертификатами тоже самое можно будет сделать... хмм...
но все равно за совет, попробую и это тоже изучить
26 окт 09, 06:15    [7836571]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
----------------------
Guest
orunbek
Для решения подобных проблем, думаю использовать в программе такой метод, при подключении проверяются значения @@servername и host_name(), т.е. идентификация того что прога запущена на серваке, если так, то ключи в данном случае не требуются для авторизации.

host_name использовать нельзя
Может быть метод доступа shared memory ?
26 окт 09, 09:08    [7836739]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
почему нельзя? и что за метод?
26 окт 09, 14:14    [7838619]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
чёрт с ним с защитой
по теме ;))) достоверно ли того чтобы значения host_name() и @@servername совпадали для определения подключения от сервера?
27 окт 09, 07:57    [7841821]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Обычно, функция host_name() - это результат значения соответствующего свойства строки подключения...
А проверить наличие коннекта достаточно простым запросом типа "select 1".
27 окт 09, 08:09    [7841837]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
не наличия, а скажем подключение с определенного пользователя доступно только с самого сервера
а это я проверяю путем сравнения host_name()=@@servername
правильный ли способ?
27 окт 09, 09:12    [7841984]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
orunbek
не наличия, а скажем подключение с определенного пользователя доступно только с самого сервера
а это я проверяю путем сравнения host_name()=@@servername
правильный ли способ?
Ну в документацию загляните, чем эти функции отличаются и что они возвращают...
27 окт 09, 09:17    [7842003]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
host_name() возвращает имя компа от которого текущее подключение help

@@servername возвращает имя сервера help

значит если host_name() совпадает с @@servername это означает что подключение от сервера, верно?
27 окт 09, 09:19    [7842017]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
orunbek
значит если host_name() совпадает с @@servername это означает что подключение от сервера, верно?
У вас какие-то сомнения есть?
27 окт 09, 09:22    [7842036]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
есть ;))
в современном мире хакеров и т.д. ;)))
из-за этого у асов спрашиваю
27 окт 09, 09:35    [7842085]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
orunbek
есть ;))
в современном мире хакеров и т.д. ;)))

Правильные сомнения.
Если у пользователя есть возможность ручками подправить строку подключения на клиенте, то он может вписать туда любое имя хоста...
27 окт 09, 10:01    [7842237]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
ну это да
я же не буду привязывать имя сервера к определенному значению, заказчик может поставить его на любом сервере и называть его как угодно, просто мне нужно сделать такую защиту, т.е. вход в клиентскую прогу только на самом сервере
или нужно через IP адрес? наверно имени достаточно иль нет?
27 окт 09, 11:49    [7843296]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
SharedMemory
27 окт 09, 11:59    [7843361]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
Ken@t
SharedMemory

т.е. чтобы только через SharedMemory можно было подключиться к серверу?
27 окт 09, 14:49    [7844783]     Ответить | Цитировать Сообщить модератору
 Re: Определение того что подключение открыто на сервере  [new]
orunbek
Member

Откуда: Гималай
Сообщений: 2101
не получиться, потому что и сетевые подключения тоже должны быть, это только через exe-клиент и только под определенной учетной записью нужно чтобы только от сервера подключались
28 окт 09, 06:10    [7847349]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить