Является ли хранение информации о шифровании в uri хорошей идеей?

#architecture #uuid #system-design

#архитектура #uuid #system-design

Вопрос:

На веб-сервере я хочу создать шаблон uri изображений / видео, который также является ключом для получения содержимого файла из хранилища объектов.

Моя идея заключается в объединении UUID и некоторой важной информации о зашифрованном файле, такой {UUID}_{encrypted_info1}_{encrypted_info2}.jpg как, например, Efr5YlfUwAYDdBs_jJFKfda_fdjaJFD1fd.jpg .

Причина в:

  • «UUID» предназначен для уникальности
  • «некоторая важная информация о зашифрованном файле» предназначена для того, чтобы к этой информации можно было получить доступ без MySQL DB, и это может помочь повысить производительность.

Итак, это хорошая идея / дизайн?

Комментарии:

1. Не могли бы вы, пожалуйста, уточнить, каким образом это должно повысить производительность? Вы бы искали файлы по имени вместо доступа к базе данных?

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

Ответ №1:

Я бы лично не рекомендовал эту архитектуру:

  1. ПОВЕРХНОСТЬ АТАКИ: не предоставляйте зашифрованную информацию общедоступным каналам, когда это не требуется. Что касается безопасности, вы всегда должны думать с точки зрения нескольких уровней защиты, ни один из которых не является безопасным на 100%.
  2. ДИНАМИЧЕСКИЕ СЕКРЕТЫ: Вы не используете динамические клавиши. При шифровании вы всегда должны учитывать сценарий, при котором ваши ключи когда-нибудь будут скомпрометированы (вот почему протоколы TLS или IPSEC согласовывают временные симметричные ключи). Это может быть так же просто, как увольнение сотрудника из компании, который, как предполагается, больше не сможет расшифровывать данные.
  3. МЕСТОПОЛОЖЕНИЕ РЕСУРСА СВЯЗИ / МОДЕЛЬ ДАННЫХ: Что, если «важная информация о файле» обновляется в БД? Откуда вы знаете, что информация для данного файла все еще актуальна?