Можете ли вы создать веб-приложение Amazon S3, совместимое с HIPAA?
Мне приходится сталкиваться с некоторыми вопросами при попытке создать приложение S3 с использованием ASP.NET MVC и пытаться оставаться совместимым с HIPAA.
Мой первоначальный план состоял в том, чтобы потребовать SSL-соединение с моим веб-сервером, зашифровать изображения на моем сервере, а затем отправить их на s3 с помощью личных ключей.
Здесь мои очевидные проблемы:
- Вы не можете хранить незашифрованные изображения в любом временном кеше файлов, когда клиент просматривает изображения в браузере.
- Даже если я настрою ashx для общей обработки изображения в памяти, не удалось ли это сохранить в кеше?
Говорить, что изображения будут зашифрованы, потому что вы будете подключаться к моему серверу с помощью https, все равно не гарантирует, что все браузеры не будут кэшировать данные.
Невозможно даже рассмотреть строку "Query String" с опцией expiration, поскольку данные будут зашифрованы перед сохранением на диске в s3 и снова будут дешифрованы на моем сервере в памяти.
Я думаю, что моим единственным вариантом было бы написать/купить какой-то компонент ActiveX, который не будет показывать изображение как простой источник изображения html или написать мое приложение в качестве приложения WinForm на стороне клиента.
Ответы
Ответ 1
На первый взгляд маловероятно, что облачные вычисления могут быть совместимы с HIPAA. Конечно, невозможно удовлетворить правило безопасности, когда экземпляр размещен на чужом оборудовании, как правило, кто-то из системных администраторов?
Однако Amazon опубликовала технический документ по этой теме: Создание приложений для медицинских данных, совместимых с HIPAA, с AWS. Это стоит того, чтобы читать и, по-видимому, решать основные проблемы. Это заканчивается отказом:
"Этот технический документ не предназначен для представляют собой юридические консультации. Вы посоветовал обратиться за советом к адвокату в отношении соблюдения HIPAA и другие законы, которые могут быть применимы к вы и ваш бизнес".
Естественно то же самое относится к любым советам, которые вы получаете от какого-то случайного парня от Das Interwebs.
Ответ 2
В отличие от некоторых других ответов облачные вычисления и облачные хранилища данных могут быть совместимыми с HIPAA (обратите внимание, что они были написаны в 2010 году, когда это было гораздо более жестким).
Есть две основные вещи, которые вы должны учитывать для этого:
- вы должны заставить провайдера облака подписывать соглашение о партнерстве с HIPAA (BAA)
- вы должны строго придерживаться правила безопасности в разработке вашей системы (шифрование, контрольные журналы и т.д.).
Вот некоторые облачные провайдеры, которые будут подписывать BAA:
(До недавнего времени Amazon не желал подписывать BAA, поэтому, несмотря на то, что у них был документ о соблюдении, следуя их рекомендациям просто не разрезал - все, что изменилось, хотя).
Для хранения изображений AWS имеет S3, а Azure имеет blob хранения.
Что касается вашей озабоченности в отношении обслуживания изображений в браузере, я на самом деле не знаю, насколько вы строги, но, похоже, вы можете вставлять свои изображения внутри:
- виртуальная машина Java (JVM)
- Вспышка
- Flex
- HTML5
Похоже, PracticeFusion начал использовать Flex и Flash и постепенно переходит к HTML5.
Ответ 3
Согласование HIPAA и PCI-совместимости с кредитными картами в принципе невозможно реализовать или тривиально - все зависит от того, какой консультант вы наняли, чтобы рассказать вам, что означает "закрытая" сеть, - это то, что математически закрыто (что я бы утверждают, что это самая высокая форма), или закрывается, как за стеной, и не связана с внешним миром, но тривиально легко подслушивать с помощью какого-то основного оборудования на тротуаре снаружи?
Когда вы заканчиваете работу с консультантами, тот факт, что много компьютерного оборудования сдано в аренду, тот факт, что компьютеры имеют USB-порты и их телефоны-камеры для пользователей, как можно хранить зашифрованные данные в любом месте? Если вы храните зашифрованные данные на S3, тогда S3 не хранит ничего, кроме случайных бит мусора. Некоторый ключ, принадлежащий вам + данные garbage =, и это происходит только в вашей системе.
Я видел программное обеспечение, совместимое с HIPAA, которое работает без шифрования на ПК с XP. Учитывая, сколько ноутбуков принадлежит ботнетам и регистраторам нажатий клавиш, все это в основном упражнение в отрицании.
В правилах HIPAA явно указано, что данные не должны зашифровываться, когда они сидят на вашем компьютере пользователя:
"Информационное пространство, в котором находится PHI, должно быть защищено от вторжения. Когда информация распространяется по открытым сетям, необходимо использовать некоторую форму шифрования. Если используются закрытые системы/сети, существующие средства контроля доступа считаются достаточными, а шифрование является необязательным".
Ответ 4
Несколько комментариев. Изображения, передаваемые через https, не всегда сохраняются в кеше браузера. Тем не менее, вы можете контролировать это, используя заголовки .
При загрузке изображения вы можете передавать его в память и непосредственно в базу данных с использованием вашей любимой технологии шифрования. Когда пользователь запрашивает страницу с URL-адресом для зашифрованного изображения, вы просто вызываете своего контроллера, захватываете зашифрованные данные из базы данных, расшифровываете его в памяти и возвращаете изображение.
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult ShowImage(string id)
{
ImageEntity image = Repository.For<ImageEntity>().Where(a => a.AssetIdd == id).First();
var decryptedImage = Decrypt(image);
ImageResult result = new ImageResult(decryptedImage.ImageData, decryptedImage.ContentType);
return result;
}
Вы используете его следующим образом:
<img src="/Assets/ShowImage/<%=Model.Id%>" alt="" />
Ответ 5
Нет. Согласование HIPAA невозможно из-за конфликта между требованием сетевого шифрования и требованием сетевого мониторинга.