2010-07-22 2 views
1

Я хочу создать безопасный веб-сайт с помощью ASP.NET, но когда я его опубликую, администратор домена может видеть все данные, хранящиеся в моей базе данных (SQL Server). Я хочу скрыть свои данные и код от администратора домена. Существуют ли какие-либо процедуры для этого? Пожалуйста, дайте мне адрес хорошего домена, который я могу использовать, который даст мне всю административную мощность моего сайта (владелец домена также не может получить доступ к моим базам данных и файлам.) Спасибо за ваше предложение.Как скрыть данные, хранящиеся в базе данных от администратора домена веб-сервера?

+0

Почему вы хотите скрыть код и данные? –

+0

@Mitch Wheat: Потому что я хочу сохранить некоторый защищенный контент на своем веб-сайте, который будет храниться некоторыми другими пользователями. – chanchal1987

ответ

1

Считаете ли вы использование Virtual Private Server? Я считаю, что с VPS вы должны иметь полный контроль над тем, кто имеет доступ к тому, что на уровне операционной системы.

0

Удалить группу BUILTIN\Administrators из роли sysadmin - очевидно, это может сделать только администратор сервера, но в надлежащей среде администраторы домена могут поддерживать только серверы и не видеть данные.

В 2008 году по умолчанию не следует включать это.

Что касается кода, вы можете обфускать свои DLL, но нет полного способа скрыть код от кого-то, кто может получить доступ к файловой системе.

+0

Но как скрыть код? Администратор может видеть имя и пароль администратора базы данных из кода. – chanchal1987

+0

@ck: Значит, я не могу скрыть что-либо, являющееся пользователем (а не администратором)? – chanchal1987

+0

@ck: Есть ли какая-либо служба домена, которая даст мне административную мощность базы данных и файлов? – chanchal1987

2
+0

Но если я пытаюсь зашифровать данные, используя один пароль для всех пользователей (пароль тоже будет скрыт от пользователей), я должен хранить пароль в файлах исходного кода. Администратор может это легко увидеть. – chanchal1987

1

Вы можете зашифровать данные, но нет никакого способа, чтобы защитить код (особенно не веб-облицовочный код), но, честно говоря, вопрос не имеет смысла - если у вас есть проблемы с доверием с кем-то, у вас есть неявные доверительные отношения, тогда вам нужно найти другого провайдера.

Если вы не доверяете никому (персональная психология не выдерживает), вам необходимо разместить его самостоятельно.

Приложение: посмотрите на это с другой стороны, почему вы принимаете что-то для кого-то, не имея возможности проверить его на предмет безопасности и даже на юридические проблемы?

1

Если вы хотите полной безопасности, есть немало вещей, которые нужно реализовать:

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

Вы хотите использовать Web.config шифрование

Walkthrough: Encrypting Configuration Information Using Protected Configuration

How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI

Это, однако, весьма сомнительна безопасности, так как он требует ключевой контейнер должен быть установлен на сервере было бы, возможно, достижимо для гнусной администрации, чтобы скопировать ваш ключ, а затем использовать его для ручного расшифровки вашего web.config.Чтобы защитить себя дальше, чем вам понадобится создать защищенный веб-сервис (защищенный как для транспорта сообщений, SSL, так и для защищенного сообщения о том, что сам контент зашифрован в транспортном туннеле SSL, см. Безопасность служб WCF), что ваше приложение постоянно говорит с для защищенных данных, таких как пользователи входа для базы данных sql-сервера, а затем применять вращающиеся пароли, чтобы сделать это, если они перехватили один пароль, который может быть недействительным больше, если он был повернут.

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

В целом на этом этапе вы достигли почти самого высокого уровня безопасности кода/данных, который может быть внутри размещенной среды, но это восходит к основной проблеме. Если у вас есть опасения, что системный оператор гнусный, то все эти защиты даже могут быть избиты, если администратор достаточно квалифицирован и имеет достаточную мотивацию для этого.

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

Безопасность, которая делает вас иммунной (или почти иммунной) для такого рода атак, в основном требует использования TrueCrypt для собственного шифрования вашей файловой системы, где у вас нет кеша ключей/файлов ключей в памяти. На этом этапе единственная последняя часть безопасности - разместить в авторитетном центре обработки данных, таком как ThePlanet или Rackspace, который имеет круглосуточное электронное наблюдение, что для гнусного сотрудника почти невозможно было бы скомпрометировать ваш сервер без видеозаписей это происходит.

0

Вы не сможете скрыть исходный код, но у вас есть несколько вариантов, чтобы сделать его менее привлекательным для Администраторов:

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

  2. encrypt - так как веб-страница должна быть расшифрована сервером, сервер должен иметь ключ для его расшифровки. Этот ключ необходимо сохранить в файле, к которому имеет доступ сервер (и, следовательно, администратор). Используя некоторую обфускацию, вы можете попытаться скрыть это (снова), но в любых местах есть симметричное шифрование, у суперпользователя есть возможность добраться до него.

Примечание:

  1. Каждый раз, когда что-то шифруется, то, скорее всего, потребует расшифровывать использовать/вид. Этот процесс будет отрицательным эффектом.

  2. Когда все зашифровано, особенно с точки зрения администратора, это по существу приглашение, вызывающее тревогу; это создает любопытство. Если это данные, это одно, но код не должен быть зашифрован там, где есть доверие.Это как сказать, что у вас есть что-то, что вы хотите скрыть, как правило, означает что-то «плохое», что вы не хотите узнавать.

 Смежные вопросы

  • Нет связанных вопросов^_^