2013-02-27 4 views
0

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

Вот мой вопрос:

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

  • где я должен магазин это?
  • Должен ли он быть создан каждый раз, когда я буду хранить новую информацию?
  • Должен ли я выбрать один сильный ключ и хранить его где-нибудь, не меняя?

ответ

0

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

Важным термином здесь является защищенный обмен сообщениями. Либо у вас есть сильный статический ключ, который редко нужно изменять, в зависимости от интенсивности использования, или, что более общее, вы обсуждаете ключ сеанса, который также может зависеть от (возможно, фиксированного) тайна. Оба могут быть объединены с счетчиком последовательности, поэтому даже чтение одних и тех же данных в сеансе будет предоставлять различные криптограммы. Независимо от того, каким образом вы выбираете, ключ должен храниться/вычисляться с обеих сторон. Для части секретности потребуется безопасное хранилище, которое, в зависимости от потенциала атаки, может быть в зашифрованном файле (с совершенно другим ключом) на диске или в крайнем случае на специальной смарт-карте, такой как устройство, называемое модулем безопасности , который может иметь аппаратное сопротивление против несанкционированного доступа. (Если это не мешает атаке, по меньшей мере, проявлять манипуляцию, например, сломанным защитным уплотнением).

+0

Большое спасибо за ваш ответ. На самом деле я хочу, чтобы неавторизованное приложение не читало данные, используя шифрование, поэтому только авторизованное хост-приложение может расшифровать данные и прочитать их –

+0

@hum. Обычно это можно было бы применять с помощью правила доступа, заявляя, что чтение файла (ов), содержащего данные о работоспособности, разрешается только после теста на запрос-ответ, поэтому шифрование необязательно будет необходимо. Это все еще требует криптографии для вычисления ответа, и ключ для этого должен присутствовать на обеих сторонах: сторона хоста для вычисления, сторона карты для проверки. – guidot