XML imzosi - XML Signature

XML imzosi (shuningdek, deyiladi XMLDSig, XML-DSig, XML-Sig) belgilaydi XML uchun sintaksis elektron raqamli imzolar va ichida belgilanadi W3C tavsiyasi XML imzo sintaksisi va qayta ishlash. Funktsional jihatdan u bilan juda ko'p o'xshashliklar mavjud PKCS # 7, ammo kengaytirilgan va XML hujjatlarini imzolashga qaratilgan. Bu har xil tomonidan ishlatiladi Internet kabi texnologiyalar SABUN, SAML va boshqalar.

XML imzolari ma'lumotlarga imzo qo'yish uchun ishlatilishi mumkin - a manba- har qanday turi, odatda XML hujjatlari, lekin a orqali kirish mumkin bo'lgan har qanday narsa URL manzili imzolanishi mumkin. O'z ichiga olgan XML hujjatidan tashqarida manba imzolash uchun ishlatiladigan XML imzosi a deb nomlanadi ajratilgan imzo; agar u o'z ichiga olgan hujjatning ba'zi qismlariga imzo qo'yish uchun ishlatilsa, u an deb nomlanadi o'ralgan imzo; agar u o'zida imzolangan ma'lumotlarni o'z ichiga olsa, u deyiladi o'rab olish imzo.

Tuzilishi

XML imzosi a dan iborat Imzo elementi http://www.w3.org/2000/09/xmldsig# ism maydoni. Asosiy tuzilish quyidagicha:

<Signature>  <SignedInfo>     />     />    <Reference>        />        />        />    </Reference>     /> va boshqalar. </SignedInfo>   />   />   /></Signature>
  • The SignedInfo element imzolangan ma'lumotlarni o'z ichiga oladi yoki ularga havola qiladi va qanday algoritmlardan foydalanilishini aniqlaydi.
    • The Imzo usuli va Kanoniklashtirish usuli elementlari tomonidan ishlatiladi Imzo qiymati element va tarkibiga kiritilgan SignedInfo ularni buzishdan himoya qilish.
    • Bir yoki bir nechtasi Malumot elementlar URI ma'lumotnomasi bilan imzolangan resursni va imzolashdan oldin manbaga tatbiq etiladigan barcha o'zgarishlarni belgilaydi.
      • O'zgarishlar imzolashdan oldin manbaga tatbiq qilingan o'zgarishlarni o'z ichiga oladi. Transformatsiya hujjat daraxtining belgilangan ichki qismini tanlaydigan XPath ifodasi bo'lishi mumkin.[1]
      • DigestMethod xashni qo'llashdan oldin xash algoritmini belgilaydi.
      • DigestValue o'z ichiga oladi Baza 64 da belgilangan algoritmni o'zgartirilgan resurs (lar) ga qo'llashning kodlangan natijasi Malumot element atributlari.
  • The Imzo qiymati element o'z ichiga oladi Baza 64 kodlangan imzo natijasi - da ko'rsatilgan parametrlar bilan yaratilgan imzo Imzo usuli elementi - ning SignedInfo tomonidan belgilangan algoritmni qo'llaganidan keyin element Kanoniklashtirish usuli.
  • KeyInfo element ixtiyoriy ravishda imzolagichga qabul qiluvchilarga odatda bitta yoki bir nechta shaklda imzoni tasdiqlovchi kalitni taqdim etishiga imkon beradi X.509 raqamli sertifikatlar. Ishonchli tomon kontekstdan kalitni aniqlashi kerak, agar KeyInfo mavjud emas.
  • The Ob'ekt element (ixtiyoriy) imzolangan ma'lumotlarni o'z ichiga oladi, agar bu an konvertli imzo.

Tasdiqlash va xavfsizlikni hisobga olish

XML imzosini tasdiqlashda protsedura chaqiriladi Asosiy tasdiqlash ta'qib qilinadi.

  1. Malumotni tasdiqlash: Har biri Malumotdayjesti tegishli manbani olish va har qanday konvertatsiya qilish, so'ngra unga ko'rsatilgan dayjest usulini qo'llash orqali tekshiriladi. Natija qayd etilgan bilan taqqoslanadi DigestValue; agar ular mos kelmasa, tekshiruv amalga oshmaydi.
  2. Imzoni tasdiqlash: The SignedInfo elementida ko'rsatilgan kanoniklashtirish usuli yordamida ketma-ketlashtiriladi Kanoniklashtirish usuli, yordamida asosiy ma'lumotlar olinadi KeyInfo yoki boshqa usullar bilan va imzo ko'rsatilgan usul yordamida tasdiqlanadi Imzo usuli.

Ushbu protsedura resurslarni haqiqatan ham da'vo qilingan tomon tomonidan imzolanganligini aniqlaydi. Biroq, kanoniklashtirish va o'zgartirish usullarining kengayishi sababli, tasdiqlovchi tomon aslida imzolangan yoki hazm qilingan narsa haqiqatan ham asl ma'lumotlarda mavjud bo'lganligiga ishonch hosil qilishi kerak, boshqacha qilib aytganda, u erda ishlatiladigan algoritmlarga ishonish mumkin emas imzolangan ma'lumotlarning ma'nosini o'zgartirish.

Imzolangan hujjat tuzilmasi "imzolarni o'rash" hujumlariga olib keladigan tarzda buzilishi mumkinligi sababli, tasdiqlash jarayoni XML hujjat tuzilishini ham qamrab olishi kerak. Imzo qo'yilgan element va imzo elementi mutlaq yordamida tanlanishi kerak XPath ifoda emas getElementByName usullari.[2]

XML-ni kanonizatsiya qilish

XML imzolarini yaratish oddiy raqamli imzo yaratishga qaraganda ancha murakkab, chunki berilgan XML hujjati (""Axborot vositasi ", XML ishlab chiquvchilari orasida keng tarqalgan foydalanishda) bir nechta qonuniy ketma-ket vakolatlarga ega bo'lishi mumkin. Masalan, XML elementi ichidagi bo'sh joy sintaktik ahamiyatga ega emas, shuning uchun <Elem > sintaktik jihatdan bir xil <Elem>.

Raqamli imzo ma'lumotlar yaxlitligini ta'minlaganligi sababli, bitta baytli farq imzo turlicha bo'lishiga olib keladi. Bundan tashqari, agar XML hujjati kompyuterdan kompyuterga o'tkazilsa, chiziqli terminator CR-dan LF-ga CR LF-ga va boshqalarga o'zgartirilishi mumkin. XML hujjatini hazm qiladigan va tasdiqlaydigan dastur keyinchalik XML hujjatini boshqacha tarzda ko'rsatishi mumkin, masalan. element ta'rifi bilan atribut ta'riflari orasidagi ortiqcha bo'shliqni qo'shish yoki nisbiy (mutlaqo qarshi) URL-lardan foydalanish yoki nom maydoni ta'riflarini qayta tartiblash orqali. Kanonik XML, ayniqsa, XML imzolari noto'g'ri hujjat va uzoq muddatli server tomonidan turli vaqtlarda ko'rsatilishi mumkin bo'lgan masofaviy hujjatni nazarda tutganda juda muhimdir.

Ushbu muammolarni oldini olish va mantiqan bir xil bo'lgan XML hujjatlari bir xil raqamli imzolarni, ya'ni XML berishini kafolatlash uchun kanonizatsiya o'zgartirish (tez-tez qisqartiriladi C14n) XML hujjatlarini imzolashda ishlaydi (imzolash uchun SignedInfo, kanoniklashtirish majburiydir). Ushbu algoritmlar semantik jihatdan bir xil bo'lgan hujjatlar to'liq bir xil ketma-ketliklarni taqdim etishini kafolatlaydi.

Boshqa bir murakkablik, standart kanonizatsiya algoritmi nomlar maydonini e'lon qilish bilan ishlash usuli tufayli yuzaga keladi; tez-tez imzolangan XML hujjati boshqa hujjatga joylashtirilishi kerak; bu holda asl kanikallashtirish algoritmi hujjat yolg'iz ko'rib chiqilgandek natija bermaydi. Shu sababli, deb nomlangan Eksklyuziv kanonizatsiya, bu seriyali XML nom maydoni atrofdagi XML-dan mustaqil ravishda deklaratsiyalar yaratildi.

Foyda

XML Imzo boshqa raqamli imzo shakllariga qaraganda ancha moslashuvchan Juda yaxshi maxfiylik va Kriptografik xabar sintaksisi, chunki u ishlamaydi ikkilik ma'lumotlar, lekin XML Infoset, ma'lumotlar quyi to'plamlarida ishlashga imkon beradigan (bu ikkilik ma'lumotlar bilan nostandart usullar bilan ham mumkin, masalan, base64 ASCII-dagi ikkilik ma'lumotlar bloklarini kodlash), imzo va imzolangan ma'lumotlarni bog'lashning turli xil usullariga ega va transformatsiyalarni amalga oshirish. Yana bir asosiy kontseptsiya - bu kanoniklashtirish, ya'ni bo'shliq va chiziq uchlari kabi ma'nosiz farqlarni yo'q qilib, faqat "mohiyat" ga imzo chekish.

Muammolar

Umuman olganda XML xavfsizligi arxitekturasiga qaratilgan tanqidlar mavjud,[3] va XML-ni kanoniklashtirishga yaroqliligida, xususan, murakkabligi, o'ziga xos ishlov berish talablari va yomon ishlash xususiyatlari tufayli XML ma'lumotlarini imzolash va shifrlashning oldingi tomoni sifatida.[4][5][6] Argument shundan iboratki, XML kanonifikatsiyasini amalga oshirish tranzaktsion, ishlashga sezgir bo'lganligi uchun juda ko'p kechikishni keltirib chiqaradi. SOA ilovalar.

Ushbu masalalar hal qilinmoqda XML xavfsizligi bo'yicha ishchi guruh.[7][8]

Tegishli siyosat va amalga oshirilmasdan[2] SOAP va WS-Security-da XML Dsig-dan foydalanish zaifliklarga olib kelishi mumkin,[9] XML imzolarini o'rash kabi.[10]

Ilovalar

XML Imzo dasturlarining namunasi:

Shuningdek qarang

Adabiyotlar

  1. ^ http://www.w3.org/TR/xmldsig-filter2/ XML-imzo XPath filtri 2.0
  2. ^ a b Pawel Krawczyk (2013). "XML imzo bilan o'ralgan hujumlarni oldini olish uchun xavfsiz SAML tekshiruvi".
  3. ^ Nima uchun XML xavfsizligi buzilgan
  4. ^ Veb-xizmatlarning xavfsizligi
  5. ^ Grid xizmatlari uchun xavfsizlik mexanizmlarini samaradorligini taqqoslash
  6. ^ Chjan, Jimmi (2007 yil 9-yanvar). "VTD-XML bilan WSS dasturlarini tezlashtirish". JavaWorld. Olingan 2020-07-24.
  7. ^ XML imzo va XML shifrlash uchun keyingi qadamlar bo'yicha W3C seminari, 2007
  8. ^ XML xavfsizlik 2.0 talablari va dizaynga oid masalalar
  9. ^ http://domino.research.ibm.com/library/cyberdig.nsf/papers/73053F26BFE5D1D385257067004CFD80/$File/rc23691.pdf
  10. ^ Yuray Somorovskiy; Andreas Mayer; Yorg Shvenk; Marko Kampmann; Meiko Jensen (2012). "Breaking SAML haqida: Siz kim bo'lishni xohlasangiz bo'ling" (PDF).
  11. ^ https://www.sbr-nl.nl/english/what-is-sbr/assurance/ SBR kafolati, Gollandiya hukumati, 2018 yil

Tashqi havolalar