Информация

Последние записи

Теги


Блоги


Записи из всех блогов с тегом: шифрование


Критика смысла: квантовые компьютеры в прикладном исполнении, Д.Дойч

Quantum Computation, www.dwavesys.com
Rather than store information using bits represented by 0s or 1s as conventional digital computers do, quantum computers use quantum bits, or qubits, to encode information as 0s, 1s, or both at the same time. This superposition of states—along with the other quantum mechanical phenomena of entanglement and tunneling—enables quantum computers to manipulate enormous combinations of states at once.


Прошу прощения у подписчиков за то, что в заметке будет много цитат из главы Д. Дойча «Структура реальности», но коротко «вход» в тематику у меня был с двух сторон – первые попытки Андрея Гордиенко доказать возможность к 2019 году создать «соизмеримый» с человеческим интеллектом «механизм» и примерно же в это время друг начал работы над ловлей электрона «за хвост» - очень «острая» игла туннельного микроскопа (его коллеги наверняка к 2025-му году получат Нобелевскую премию по физике, если работа или премия не обесценится, кросс-национальная команда из многих стран) и простой материал. Андрей доказать не смог, но друг электрон поймал. Поэтому придётся цитировать, чтобы обоснование для людей, которым интересен данный вопрос изучили его со всех сторон, в т.ч. и со стороны виртуальной реальности, глава о которой также есть в книге.

Предыдущая заметка о времени https://www.sql.ru/blogs/iyun/2231.

читать дальше...


Система безопасности SQL Server 2008

Блог: Sql4Enterprise

Основу системы безопасности SQL Server 2008 составляют четыре базовых аспекта:

  • аутентификация
  • шифрование
  • авторизация
  • отслеживание изменений

Аутентификация требует ответа на следующий вопрос: “Имеет ли этот пользователь легитимные права  на доступ в систему?” Следовательно, эта концепция безопасности задает процесс проверки полномочий для предотвращения использования системы неавторизованными пользователями. Аутентификация может быть проверена посредством запроса пользователя предоставить, например, следующее:

  • что-то, что знает пользователь (обычно пароль)
  • что-нибудь, чем пользователь владеет – магнитная карта или жетон
  • физические характеристики пользователя, такие как подпись или отпечатки пальцев

Наиболее общий способ подтверждения аутентификации – использование имени и пароля. Эта информация оценивается системой для определения, является ли субъект допустимым пользователем. Этот процесс может быть усилен при использовании шифрования.

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

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

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

Аутентификация

Система безопасности Database Engine включает две различные подсистемы безопасности:

  • безопасность Windows
  • безопасность SQL Server

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

Безопасность SQL Server задает дополнительную необходимую безопасность на уровне системы, т.е. когда пользователь, который уже вошел в операционную систему, может после этого соединяться с сервером баз данных. Служба безопасности SQL Server определяет учетную запись SQL Server (также часть называемую логином), которая создается системой и связана с паролем. Некоторые учетные записи SQL Server идентичны учетным записям пользователя Windows. Аутентификация, которая используется в этой подсистеме, называется аутентификацией SQL Server.

В дополнение к учетной записи пользователя Windows и логину существуют также группы Windows и роли SQL Server (также называемые просто “роли”). Группа Windows является коллекцией учетных записей пользователей Windows. Назначение учетной записи пользователя членства в группе дает этому пользователю все привилегии, предоставленные группе. Аналогично, роли являются коллекцией логинов.

Основываясь на описанных выше системах безопасности, Database Engine может работать в одном из следующих режимов аутентификации:

  • режим Windows
  • смешанный режим.

Режим Windows требует учетную запись пользователя Windows исключительно для соединения с системой. Система принимает учетную запись пользователя, предполагая, что она уже проверена на уровне операционной системы. Этот вид соединения с системой базы данных называется доверительным соединением, потому что SLQ Server доверяет тому, что операционная система уже проверила эту учетную запись и соответствующий ей пароль.

Смешанный режим дает пользователю возможность соединяться с Database Engine, используя аутентификацию Windows или аутентификацию SQL Server. Это означает, что некоторые учетные записи пользователя могут быть установлены для использования и в подсистеме безопасности SQL Server, и в подсистеме безопасности Windows.

Шифрование данных

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

Такой параметр системы, как “Главный сервисный ключ” задает ключ, который управляет всеми другими ключами и сертификатами. Сервисный главный ключ создается автоматически во время инсталляции Database Engine. Этот ключ зашифрован с использованием Windows Data Protection API (DPAPI).

Важным свойством сервисного главного ключа является то, что он управляется системой. Хотя системный администратор может выполнять некоторые задачи обслуживания, существует только одна задача, которая должна быть выполнена – копирование сервисного главного ключа. Таким образом, всегда можно восстановить ключ при его разрушении.

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

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

Симметричные ключи

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


Использование симметричных ключей имеет несколько преимуществ и один недостаток. Одним из преимуществ использования симметричных ключей является то, что они могут защищать значительно больший объем данных, чем два других типа пользовательских ключей. Этот тип ключей также обрабатывается значительно быстрее, чем ассиметричные ключи.

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

Язык Transact-SQL поддерживает некоторые операторы и системные функции, относящиеся к симметричным ключам. Оператор CREATE SYMMETRIC KEY создает новый симметричный ключ, а оператор DROP SYMMETRIC KEY удаляет существующий симметричный ключ. Каждый симметричный ключ может должен быть открыт, прежде чем вы сможете его использовать  для шифрования данных или защищать другой новый ключ. Для открытия ключа используется оператор OPEN SYMMETRIC KEY.

После того, как вы откроете симметричный ключ, вам нужно использовать системную функцию EncryptByKey для шифрования. Она имеет два параметра: идентификатор ключа и текст, который должен быть зашифрован. Для дешифрования используется системная функция DecryptByKey.

Асимметричные ключи

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


Язык Transact-SQL поддерживает некоторое количество операторов и системных функций, связанных с асимметричными ключами. Оператор CREATE ASYMMETRIC KEY создает новый асимметричный ключ, а оператор ALTER ASYMMETRYC KEY изменяет свойства асимметричного ключа. Оператор DROP ASYMMETRIC KEY удаляет существующий асимметричный ключ.

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

Сертификаты

Общий ключ сертификата, обычно называемый просто сертификатом, является двоичной подписью, связывающей значение общего ключа с идентификацией человека, устройства или сервиса, который содержит соответствующий личный ключ. Сертификаты вызываются и обозначаются при помощи авторизации сертификации (Certification Authority, CA). Сущность, которая получает сертификат от CA, является субъектом этой сертификации. Сертификаты содержат следующую информацию:


  • значение общего ключа субъекта;
  • информацию, идентифицирующую субъекта;
  • издателя идентифицирующей информации;
  • двоичную подпись издателя.

Основное преимущество сертификатов в том, что они освобождают хосты от необходимости поддерживать наборы паролей для индивидуальных субъектов. Когда хост, например, Web-сервер безопасности, определяет запрашивающую сторону, как доверенного пользователя, хост неявно доверяет тому, что эта запрашивающая сторона проверила идентичность сертифицированного субъекта. Сертификаты предоставляют наивысший уровень шифрования в модели безопасности Database Engine. Алгоритмы шифрования для сертификатов дают большую нагрузку на процессоры. По этой причине рекомендуется использовать сертификаты лишь при реальной необходимости.

Кроме того, стоит упомянуть, что SQL Server 2008 поддерживает две новые возможности шифрования:

  • расширенное управление ключами -  Extensible Key Management (EKM)
  • прозрачное шифрование данных – Transparent Data Encryption (TDE)

EKM позволяет сторонним производителям регистрировать их объекты в Database Engine. После того, как эти элементы будут зарегистрированы, SQL Server logins может использовать ключи шифрования, хранящиеся в этих модулях, как и средства улучшения возможностей шифрования, которые эти модули поддерживают. EKM так же осуществляет защиту данных от администраторов баз данных (за исключением членов группы sysadmin). Таким способом можно защитить систему и от пользователей с повышенным уровнем привилегий. Данные могут быть зашифрованы и дешифрованы с помощью криптографических операторов Transact-SQL, а SQL Server использует внешние элементы EKM в качестве хранилища ключа. EKM поддерживают только редакции Enterprise и Developer SQL Server 2008.

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

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


автор: Николай Байбородин добавлено: 24 дек 10 просмотры: 6288, комментарии: 2