Вопрос

Извините, я не смог найти лучшего заголовка для этого вопроса.Следующее - это мое требование.

Я работаю над проектом, который занимается переводами больших сумм денег на разные счета.Система автоматически переводит деньги на счета A, B, C и т.д. И т.п., Но прежде чем это будет сделано, кто-то из A, B или C должен одобрить (электронным способом) сумму, подлежащую переводу.

Как вы думаете, какой способ сделать это лучше всего?Я хочу, чтобы система отправила файл (PDF чего-либо) с цифровой подписью (?), и уполномоченное лицо из A, B и C должно проверить и подтвердить правильность суммы.

Поскольку сумма высока, я должен убедиться, что файл, отправленный системой, не подделан, и в то же время я также хочу убедиться, что файл (ответ), отправленный A, B или C, также не подделан .Каков наилучший способ достичь этого?Есть какие-нибудь идеи?

Это было полезно?

Решение

Цифровые подписи - это то, что вы ищете.Adobe PDF (поскольку вы упомянули pdf) позволяет вам подписать PDF-файл в бесплатной версии Adobe Reader, и проверка также выполняется автоматически, как только вы открываете PDF-документ.

Разница между DigSig и (H) MAC, опубликованная Noldorin, заключается в том, что MAC используют симметричное шифрование, когда для обмена ключом требуется защищенный канал, тогда как в ПКИ среда, в которой защищенный канал не требуется.

Это зависит от того, как вы хотите распространять свои ключи.

Другие советы

Вы захотите заглянуть в МАКи (Коды аутентификации сообщения).Существует множество библиотек для различных языков, которые реализуют общие алгоритмы, такие как HMAC.

Редактировать:Смотрите также DSA (http://en.wikipedia.org/wiki/Digital_Signature_Algorithm), который является популярным алгоритмом для цифровых подписей и полностью реализован в стандартной платформе .NET framework (System.Пространство имен Cryptography).

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

Если это вызывает беспокойство, вы можете воспользоваться процедурой, используемой южноафриканскими банками, - одноразовым паролем.Этот пароль передается им с помощью средства, которое не участвует в транзакции (в Южной Африке это осуществляется с помощью SMS, что я настоятельно рекомендую).Сначала мы вводим имя пользователя и пароль, а затем получаем OTP по SMS, который затем нам нужно ввести для любых транзакций, которые приводят к выводу денег с наших счетов.

Сильные формы безопасности (для повышения эффективности) включают (я не эксперт, но я знаю несколько):

  • Знание (пароль)
  • Владение (SIM-картой мобильного телефона, которая может принимать SMS-сообщения, или флэш-накопителем USB с сертификатом)
  • Местоположение (компьютер с аппаратной системой управления сертификатами, CellID)
  • Время (срок действия OTP истекает, транзакция должна произойти в определенное время)
  • Идентификация (считыватель отпечатков пальцев - фактически пароль, но безумно длинный)
  • Уникальность (Волоконно-оптический кабель, закодированный в поляризации фотонов)

Из того, что я знаю, если у вас есть какие-либо три из них, вы можете быть уверены в своей безопасности.Добавление дополнительных устройств увеличивает безопасность в геометрической прогрессии, но также увеличивает фактор неудобства.Банки в Южной Африке используют Знания, Владение и Время - и фишинг действительно не работает против южноафриканских банков.

Надеюсь, это вам немного помогло.

Для цифровой подписи файла вы можете воспользоваться услугами любого из партнеров Microsoft.Например, Arx предоставляет вам инструмент под названием CoSign, которым вы можете пользоваться бесплатно (или, по крайней мере, их пробной версией).Это позволит вам добавить электронные подписи в большинство доступных форматов (word, pdf, xml и т.д.).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top