Подпись с сертификатом - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь понять, как работает подпись файла с сертификатом.

Я уже понял, как работает подпись файла 'basi c':

  • Боб хочет отправить Алисе «Я подписан»
  • Боб хеширует «Я подписан», возвращает «ABCDEF»
  • Боб шифрует ха sh с его закрытым ключом, возвращаемое «101010»
  • Боб отправляет зашифрованную часть «101010» Алисе и сообщение «Я подписан»
  • Алиса хеширует файл, возвращает «ABCDEF» «
  • Алиса расшифровывает зашифрованную часть« 101010 »с помощью ключа Боба publi c, возвращая« ABCDEF »
  • Алиса сопоставляет два значения, что означает, что сообщение действительно исходит от Боб

Я обсуждал сегодня с кем-то, работающим в компании, которая занимается продуктами аутентификации, токен, приложение для телефона, карты и т. Д. c ..

Дело является то, что компания поставляет два вида сертификатов с более или менее сильной ценностью (зависит от в зависимости от того, насколько успешно им удалось идентифицировать пользователя над процессом).

И, как мне действительно объяснили, «каждому пользователю нужен сертификат, позволяющий ему подписывать свои документы», «мы шифруем с ключом publi c "(я думаю, что этот пункт, вероятно, не соответствует действительности)", сертификат содержит ключ publi c ".

Я пытался достичь точки с помощью схемы: схема википедии

Но я все больше и больше теряюсь.

Я думаю, что цифровая подпись должна справиться с первым методом, который я описал выше, и подпись Electroni c является фактом добавить сертификат в процесс.

а как? Кто-нибудь может описать шаги, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 24 января 2020

@ daniel-fisher-lennybacon:

Правильно ли это сделать так же:

A процедура запроса сертификата * сделано X is:

  • X создает закрытый ключ и открытый ключ c
  • X генерирует сертификат, который отправляет запрос, содержащий ключ publi c и подписывает его закрытым ключом
  • X запрос к CA
  • X CA выдает сертификат (ключ Боба c ключ + знаки ключ Боба c с закрытый ключ CA)

--- Процесс ---

  • Боб хочет отправить Алисе "Я подписан"
  • Боб хэши"Я подписан"
  • Боб подписывает га sh со своим личным ключом
  • Бобу нужна Алиса сертификат для следующего шага
    • Алиса продолжить a процедура запроса сертификата * и отправляет сертификат (ключ Алисы для публикации c) Бобу
    • Бобу проверяет , что подпись сертификата правильна с ключом CA publi c
  • Боб шифрует сообщение, га sh и подпись с помощью открытого ключа c Алисы
  • Боб отправляет все зашифрованное содержимое для Алисы
  • Алиса дешифрует содержимое и получает сообщение, ха sh и подпись
  • Алисе требуется сертификат Боба (ключ Боба publi c) чтобы проверить подпись
    • Боб продолжить a процедуру запроса сертификата * и отправить сертификат (ключ Боба c) Алисе
    • Алисе проверяет , что подпись сертификата верна с помощью CA publi c ключ
  • Алиса проверка , что подпись, исходящая от Боба, правильна с Сертификат Боба (ключ Боба c)

Это правильно?

0 голосов
/ 13 января 2020

мы зашифровываем с помощью ключа c publi

Это верно, так как это называется асимметричным c шифрованием. Каждый (может) имеет ключ publi c и поэтому может зашифровать сообщения, отправленные на тот, кто держит закрытый ключ.

Что вас, вероятно, смущает, так это смешанная вещь: подпись и шифрование

  • Боб хочет отправить Алисе «Я подписан»
  • Боб хэширует «Я подписан»
  • Бобу нужен сертификат для следующих шагов
    • Боб генерирует закрытый ключ и ключ publi c
    • Боб генерирует запрос сертификата, содержащий ключ publi c и подписывает его закрытым ключом
    • Боб передает запрос в CA
    • CA выдает сертификат (подписывает ключ Боба c с помощью закрытого ключа CA)
  • Bob подписывает ха sh со своим закрытым ключом
  • Бобу нужен сертификат Алисы для следующих шагов
    • Боб просит Алису для ее открытого c ключа (сертификата)
    • Алиса генерирует закрытый ключ и открытый ключ c
    • Алиса генерирует сертификат icate-запрос, содержащий ключ publi c и подписывающий его закрытым ключом
    • Алиса отправляет запрос в CA
    • CA выдает сертификат (подписывает публикацию Алисы c ключ с секретным ключом CA)
    • Алиса отправляет Бобу свой открытый ключ c (сертификат)
  • Боб шифрует сообщение, га sh и подпись с помощью открытого ключа Алисы c "
  • Боб отправляет зашифрованные данные Алисе
  • Алисе дешифрует данные своим закрытым ключом
  • Алиса хэширует "Я подписан" и проверяет подпись с Бобсом publi c ключ

ключевой момент:

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