2016-03-15 1 views
0

Я работаю над проектом HIPAA, и мне было необходимо зашифровать все данные уровня столбца, которые содержат или могут содержать конфиденциальную информацию о здоровье. Тем не менее, я хочу использовать AES_ENCRYPT и AES_DECRYPT с MySQL в block_encryption_mode = aes-256-cbc. Похоже, что для каждой строки в таблице мне нужно иметь IV (вектор инициализации). Мне понадобится этот же IV для шифрования и дешифрования. Должен ли я просто хранить его в столбце базы данных или что-то еще?MySQL CBC Encryption and Storing Инициализация вектора

Также для типа столбца лучше использовать varbinary/blob или HEX зашифрованные результаты и поместить его в varchar/text?

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

+0

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

+0

Я бы никогда не хранил ключ с данными ... это просто глупо. CBC берет ключ (который должен храниться в веб-приложении никогда в БД) и IV. IV должен быть случайным и другим по записи. –

+0

@MarcB IV (Инициализационный вектор) не обязательно должен быть секретным, а обычно нет. IV не является ключом шифрования. – zaph

ответ

0

Магазин iv в колонке, он не обязательно должен быть секретным.

Я бы использовал varbinary/blob вместо шестнадцатеричного кодирования данных.

Примечание: Base64 - это лучший вариант, который имеет шестнадцатеричный размер, накладные расходы меньше.

Адресация @Marc несколько: как защитить ключ шифрования? Насколько хороша защита сервера и доступ администратора.

+0

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

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

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