Кіріспе
Цифрлық қолтаңбалар үшін XML синтаксисі XML Signature (сондай-ақ XMLDSig, XML DSig, XML Sig деп те аталады) цифрлық қолтаңбалар үшін XML синтаксисін анықтайды және W3C ұсынысы XML Signature Syntax and Processing-те сипатталған. Функционалдық тұрғыдан PKCS #7-мен көп ортақ нәрселері бар, бірақ ол көбірек кеңейтілген және XML құжаттарына қол қоюға арналған. Ол SOAP, SAML және басқа да веб-технологияларында қолданылады. XML қолтаңбаларын кез келген типтегі деректерге қол қою үшін пайдалануға болады, әдетте XML құжаттарына, бірақ URL арқылы қол жетімді кез келген нысанда қол қою мүмкіндігі бар. XML қолтаңбасы, егер ол өзінің XML құжатынан тыс ресурсқа қол қойса, "ажыратылған қолтаңба" деп аталады; егер ол өзінің құжатының бір бөлігіне қол қойса, "қамтылған қолтаңба" деп аталады; ал егер ол қол қойылған деректерді өзінің ішінде қамтитын болса, "қоршаған қолтаңба" деп аталады.
XML Signature (also called XMLDSig, XML DSig, XML Sig) defines an XML syntax for digital signatures and is defined in the W3C recommendation XML Signature Syntax and Processing. Functionally, it has much in common with PKCS #7 but is more extensible and geared towards signing XML documents. It is used by various Web technologies such as SOAP, SAML, and others. XML signatures can be used to sign data–a resource–of any type, typically XML documents, but anything that is accessible via a URL can be signed. An XML signature used to sign a resource outside its containing XML document is called a detached signature; if it is used to sign some part of its containing document, it is called an enveloped signature; if it contains the signed data within itself it is called an enveloping signature.
Жауаптылығы мен қауіпсіздік мәселелері
XML қолтаңбасын растау кезінде өзекті растау деп аталатын процедура орындалады. Сілтемелерді растау: Әрбір сілтеменің дайджесті тиісті ресурсты алу, кез келген түрлендірулерді қолдану және содан кейін көрсетілген дайджест әдісін пайдаланып тексеріледі. Нәтиже тіркелген DigestValue-мен салыстырылады; егер олар сәйкес келмесе, растау сәтсіз аяқталады. Қолтаңбаны растау: SignedInfo элементі CanonicalizationMethod-та көрсетілген канонизациялау әдісі арқылы серияланады, кілт деректері KeyInfo немесе басқа тәсілдер арқылы алынады және қолтаңба SignatureMethod-та көрсетілген әдіспен тексеріледі. Бұл процедура ресурстарға күдікті тараптың қол қойған-қол қоймағанын анықтайды. Дегенмен, канонизациялау және түрлендіру әдістерінің кеңейтілуіне байланысты, тексеруші тарап қол қойылған немесе дайджесттелгеннің бастапқы деректерде бар екеніне, яғни қолданылатын алгоритмдер қол қойылған деректердің мағынасын өзгертпейтіндігіне көз жеткізуі керек. Қол қойылған құжаттың құрылымы бұрмалануға ұшырап, «қолтаңбаны орау» шабуылдарына әкелуі мүмкін болғандықтан, растау процесі XML құжат құрылымын да қамтуы керек. Signed элементі мен signature элементі getElementByName әдісімен емес, абсолютті XPath өрнегі арқылы таңдалуы тиіс. Сондай-ақ, XML деректерін қол қою және шифрлау үшін XML канонизациялаудың тиімділігі, оның күрделілігі, өңдеу қажеттілігі және нашар өнімділік сипаттамалары туралы мәселелер де бар. Мәселе мынада, XML канонизациялауды орындау транзакциялық, өнімділікке сезімтал SOA қолданбалары үшін тым көп кешігу тудырады. Бұл мәселелер XML қауіпсіздігі жұмыс тобында қарастырылуда. Тиісті саясат пен іске асырусыз SOAP және WS Security-де XML Dsig қолдану XML қолтаңбасын орау сияқты осалдықтарға әкелуі мүмкін.