2012-05-23 1 views
0

Я хотел бы подписать XML-файл я создал, и последовал за этот урок, чтобы подписать его:Убедитесь, что подписанный XML подписан Вами

http://msdn.microsoft.com/en-us/library/ms229745.aspx

Я также прочитал этот учебник по проверке файлов:

http://msdn.microsoft.com/en-us/library/ms229950.aspx

Я был в состоянии правильно собрать и без проблем, но я не понимаю, как это то, что с помощью этого я могу производить XML, который гарантированно быть от и не подделаны.

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

ответ

2

В учебнике используется ключ RSA подписи:

signedXml.SigningKey = Key; 

Это link состояний:

Генерировать асимметричный ключ, используя класс RSACryptoServiceProvider. Ключ автоматически сохраняется в контейнере ключей, когда вы передаете объект CspParameters в конструктор класса RSACryptoServiceProvider.

Новый ключ RSA был создан при запуске этого примера и сохранен в контейнере ключей на вашем локальном компьютере. Ключ RSA содержит Закрытый ключ для подписания и Открытый ключ для проверки подписи. Открытый ключ может быть распространен среди всех, кто должен подтвердить ваши подписанные сообщения. общественного ключа обычно упакованы и распределены с использованием Certificate

Предполагая, что вы только один во владении Private Key, получатель не имеет Public Key (и при условии осуществления безопасна), ни одного может вмешаться в этот подписанный документ без шага проверки, обнаруживающего это вмешательство.

Любой, кто работает с тем же образцом, должен создать новый уникальный ключ RSA, который нельзя было бы использовать для подписи документа, который ваш будет публиковать с открытым ключом.

+1

Спасибо, что проясняют все это для меня – User093203920

0

Оба ссылки относятся к статьям, показывающим проверку. Вам будет полезно прочитать, как работают асимметричные ключи. Когда вы подписываете XML, вы подписываете его своим личным ключом, к которому только вы имеете доступ, и по которому только ваш открытый ключ, доступный каждому, может расшифровать. Никто, кроме вас, не будет иметь ваш секретный ключ.

2

Вам нужно понять две части справочной информации, чтобы понять, почему эти учебники работают.

После того, как вы читаете те статьи, немного, посмотрите на эту диаграмму:

Digital Signature Diagram Диаграмма взята из Википедии (в частности, here)

Смежные вопросы