Проверка XML с помощью XMLDSIG с использованием алгоритма XadES-BES - PullRequest
2 голосов
/ 18 ноября 2010

Некоторая информация, которую использует программа, использует входные файлы в формате xml. Файлы имеют следующую структуру.

<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="urn:envelope">
 <MyData Id="MyDataId">
  <!-- some data -->
 </MyData>
 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
  <SignedInfo>
   <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
   <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig-more#rsa-sha256" />
   <Reference URI="#MyDataId">
    <Transforms>
     <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
    <DigestValue>
     <!-- digest for MyData -->
    </DigestValue>
   </Reference>
   <Reference URI="#KeyInfoId">
    <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
    <DigestValue>
     <!-- digest for KeyInfo -->
    </DigestValue>
   </Reference>
  </SignedInfo>
  <SignatureValue>
   <!-- signature from SignedInfo data -->
  </SignatureValue>
  <KeyInfo id="KeyInfoId">
   <X509Data>
    <X509Certificate>
     <!-- some certificate -->
    </X509Certificate>
   </X509Data>
  </KeyInfo>
 </Signature>
</Envelope>

Я нашел несколько примеров только с одним ссылочным тегом, но не с множественными или только ссылками, которые уже были в остальной части XML-файла. Я знаю, что кодировка XADES-BES. Кто-нибудь знает компонент .NET 1.1, который способен проверять этот тип XML-файлов? Заранее спасибо.

С уважением,

Рене

Ответы [ 5 ]

4 голосов
/ 20 ноября 2010

XML, который вы показываете, на самом деле является не подписью XAdES, а XMLDSIG.Вы можете сказать это, поскольку нет узла QualifyingProperties (XAdES добавляет этот узел, который должен находиться внутри тега Object , как дочерний элемент узла Signature ).

Как уже говорил Рикардо, проект, в котором я работаю ( XAdES .Net Project ), должен иметь возможность проверить предоставленный вами xml.Если нет, пожалуйста, не стесняйтесь добавлять проблему в наш трекер проблем (возможно, вам нужно зарегистрироваться в codeplex, но это бесплатно).

На данный момент мы все еще строим каркас нашей библиотеки (что действительно нацелено реализовать - это XAdES в .NET), так что вы можете обнаружить ошибки или отсутствие функций.Если это так, опять же, не стесняйтесь добавлять любые проблемы, которые вам нужны.

Кроме того, мы разработали библиотеку с использованием .NET Framework 3.5, поэтому, если вы действительно можете использовать только 1.1, она не будет работать :( Уровень безопасности послеFramework 1.1 изменился, поэтому он не является обратно совместимым. Я думаю, что он будет работать с использованием 2.0 и выше.

Надеюсь, это поможет.

С уважением,

Луис М.Villa

1 голос
/ 20 ноября 2013
0 голосов
/ 10 декабря 2010

Если вам все еще нужно генерировать подписи XAdES, мы выпустили альфа-версию 1.0 проекта XAdES .NET. В этой версии добавлена ​​поддержка подписей XAdES-BES, а некоторые фрагменты кода были переписаны для совместимости с .NET 2.0 Framework.

Вы можете скачать релиз здесь: Проект XAdES .NET

Надеюсь, это поможет,

Луис М. Вилла

0 голосов
/ 18 ноября 2010

Наш продукт SecureBlackbox обеспечивает поддержку стандартов XMLDSig, XMLEnc и XAdES в .NET (включая Mono, .NET CF и Silverlight).

0 голосов
/ 18 ноября 2010

Попробуйте этот проект:

http://xadesnet.codeplex.com/

...