วิธีเซ็นชื่อไฟล์ xml ด้วยลายเซ็นดิจิทัล คำแนะนำในการเซ็นชื่อไฟล์ด้วยลายเซ็นอิเล็กทรอนิกส์

เป็นเวลานาน คำถามเร่งด่วนที่สุดสำหรับฉันคือวิธีการและสิ่งที่จะลงนามในเอกสารและไฟล์ XML ด้วยลายเซ็นอิเล็กทรอนิกส์หรือ ลายเซ็นดิจิทัล. เป็นเรื่องที่ดีเมื่อคุณอยู่ในสำนักงานและติดตั้งโปรแกรมทั้งหมดสำหรับการลงนามในเอกสารและไฟล์ XML ในที่ทำงานของคุณ แต่ในการทำงานของฉัน สถานการณ์มักจะเกิดขึ้นเมื่อจำเป็นต้องทำและลงนามในเอกสาร ไฟล์ XML อยู่ไกลจากที่ทำงาน หรือเช่นเคย ต้องทำอย่างเร่งด่วนในขณะที่อยู่ที่บ้าน การซื้อและติดตั้งซอฟต์แวร์สำหรับการเซ็นชื่อด้วยลายเซ็นดิจิทัลแบบอิเล็กทรอนิกส์ที่บ้านหรือบนแล็ปท็อปและพกติดตัวไปด้วยนั้นมีราคาแพงเกินไป จากนั้นฉันก็เริ่มค้นหาโปรแกรมที่แจกจ่ายอย่างเสรีบนอินเทอร์เน็ตที่สามารถลงนามในเอกสารและไฟล์ XML ด้วยลายเซ็นดิจิทัลอิเล็กทรอนิกส์ - EDS เป็นโปรแกรมเหล่านี้รวมถึงโปรแกรมที่ต้องชำระเงินซึ่งเราจะพิจารณาด้านล่าง

หากต้องการส่งไปยัง Rosreestr ซึ่งเป็นข้อบังคับ เอกสารทั้งหมดจะต้องลงนามด้วย EDS (ลายเซ็นดิจิทัลอิเล็กทรอนิกส์) และบางครั้งคุณจำเป็นต้องตรวจสอบ EDS ของคุณเองหรือของคนอื่น

ดังนั้นให้พิจารณาว่าอย่างไรและอย่างไร เครื่องมือซอฟต์แวร์คุณสามารถลงนามในเอกสารหรือไฟล์ XML ด้วยลายเซ็นดิจิทัลแบบอิเล็กทรอนิกส์ หนึ่งในโปรแกรมคือ GIS "Panorama" - "Map-2011" เวอร์ชัน 11.10.4 การเซ็นเอกสารทำงานได้แม้ในเวอร์ชันที่ไม่ได้ลงทะเบียน ขั้นตอนการลงนามเอกสาร, ไฟล์ รายชื่อโปรแกรมที่อนุญาตให้คุณลงนามในเอกสาร, ไฟล์ XML, EDS (ลายเซ็นดิจิทัลอิเล็กทรอนิกส์) สำหรับการแลกเปลี่ยนข้อมูลกับพอร์ทัล บริการสาธารณะ บริการของรัฐบาลกลางการลงทะเบียนสถานะ ที่ดิน และการทำแผนที่ Rosreestr ผ่านทาง Internet EDS มีดังต่อไปนี้: เปิดใช้ "Map-2011" หรือ "Mini-Map" กด "F12" เพื่อเรียกเมนูเปิดใช้แอปพลิเคชัน ในหน้าต่างที่ปรากฏขึ้น ให้เลือกงาน เอกสารอิเล็กทรอนิกส์, ไกลออกไป การก่อตัวของลายเซ็นดิจิทัลอิเล็กทรอนิกส์

ไฟล์ลายเซ็น: เลือกไฟล์ที่คุณต้องการลงนาม และตามด้วยใบรับรองที่ต้องการในใบรับรอง เพียงเท่านี้เอกสารหรือไฟล์ XML ของคุณได้รับการเซ็นชื่อด้วย EDS หากคุณต้องการตรวจสอบลายเซ็นที่มีอยู่แล้ว จากนั้นเลือกไฟล์ลายเซ็น ให้เลือกไฟล์ลายเซ็น (ไฟล์ที่มีนามสกุล "sig") เว็บไซต์อย่างเป็นทางการของ GIS ""

โปรแกรมที่สองสำหรับการเซ็นเอกสาร ไฟล์ XML คือ CryptoLine ฟรี ใช้งานได้เต็มรูปแบบ ให้คุณลงนาม เข้ารหัสเอกสาร ตลอดจนตรวจสอบลายเซ็นดิจิทัล ดาวน์โหลด โปรแกรมนี้คุณสามารถทำได้จากเว็บไซต์อย่างเป็นทางการหรือดาวน์โหลดผ่านลิงค์โดยตรงจากหน้าของเว็บไซต์นี้ การทำงานกับโปรแกรมทำได้ง่ายและสะดวก เลือกและเพิ่มไฟล์ที่ต้องเซ็น จากนั้นเลือกใบรับรองที่คุณต้องเซ็นเอกสาร ไฟล์ XML และเซ็นเอกสาร ระวัง - เลือกลงนามเพียงใบเดียวเท่านั้น !!! มิฉะนั้น เอกสารจะถูกเซ็นโดยใบรับรองจำนวนเท่ากับที่คุณเพิ่มลงในโปรแกรม คู่มือการใช้งานอยู่ในไฟล์เก็บถาวรของโปรแกรม ในการเซ็นการเปลี่ยนแปลง Rossreestr ฉันจะยกตัวอย่างด้านล่าง

หลังจากติดตั้งโปรแกรมและเรียกใช้งานแล้ว ให้เพิ่มไฟล์ลงในโปรแกรมที่จำเป็นต้องลงนาม แท็บการดำเนินการ ปุ่มเพิ่ม

ในการเซ็นชื่อไฟล์ทั้งหมดในครั้งเดียว คุณต้องเลือกทั้งหมด - "Shift + ปุ่มเมาส์ขวา" หรือ "Shift + ลูกศรลง" จากนั้นคลิก "ลงชื่อ" ในหน้าต่างที่ปรากฏขึ้น ให้เพิ่มใบรับรองหรือปล่อยไว้ก่อนหน้านี้ หรือเปลี่ยนเป็นใบรับรองอื่น ฉันจำได้อีกครั้งว่าสำหรับการจัดส่งไปยัง Rosreestr ในหน้าต่างนี้ไม่ควรมีใบรับรองมากกว่า 1 ใบ! และตั้งค่าทั้งหมดตามภาพ:

เราลงชื่อ หลังจากลงนาม ไฟล์ที่มีนามสกุล "sigO" จะถูกเพิ่มในรายการของคุณ นี่คือลายเซ็นของไฟล์ ยังคงเป็นเพียงการอัปโหลดไฟล์ลายเซ็นหรือไฟล์ทั้งหมด (ขึ้นอยู่กับดุลยพินิจของคุณ) เลือกสิ่งที่คุณต้องการอัปโหลด ในกรณีนี้คือไฟล์ลายเซ็น 3 ไฟล์แล้วคลิก "อัปโหลด" ก็เหมือนกันหมด แต่เหมือนทุกคน ฟรีชีสมีความแตกต่างเล็กน้อย Rosreestr สาบานด้วยนามสกุลไฟล์ "sigO" ดังนั้นคุณต้องใช้มันใน Explorer หรืออย่างอื่น ตัวจัดการไฟล์เปลี่ยนชื่อนามสกุลจาก "sigO" เป็น "sig"

ลายเซ็นของโปรแกรมนี้ไม่ได้รับการยืนยันโดยเว็บไซต์ Rosreestr. ได้ดำเนินการตรวจสอบลายเซ็นแล้ว ผลิตภัณฑ์ซอฟต์แวร์ซึ่งมีปฏิสัมพันธ์กับพอร์ทัลบริการสาธารณะของ Federal Service for State Registration, Cadastre and Cartography ทั้งสามโปรแกรมที่ตรวจสอบลายเซ็นที่ดำเนินการโดยโปรแกรมนี้ให้ผลลัพธ์ที่เป็นบวก การตรวจสอบดำเนินการโดยโปรแกรมที่ระบุไว้ที่นี่ GIS "Panorama", Crypto AWP และโปรแกรมแผนสำรวจพื้นที่รูปหลายเหลี่ยม ลายเซ็นได้รับการตรวจสอบแล้ว บริการออนไลน์การตรวจสอบความถูกต้องของลายเซ็นดิจิทัลอิเล็กทรอนิกส์บนเว็บไซต์

อีกโปรแกรมหนึ่งสำหรับการเซ็นเอกสารและไฟล์ XML คือ . คุณสามารถดาวน์โหลดได้จากเว็บไซต์อย่างเป็นทางการของโปรแกรม ตัวโปรแกรมนั้นใช้งานได้ดีและน่าดึงดูดราคาไม่สูงเพียง 1,200 รูเบิลต่อ 1 สถานที่ทำงาน. มีเหล่านั้น. การสนับสนุนและความช่วยเหลือเพิ่มเติม สามารถรับข้อมูลที่สมบูรณ์และทันสมัยที่สุดได้ที่ อ่านเกี่ยวกับ EDS ในหมายเหตุด้วย

จุดประสงค์อันสูงส่งส่งเสริมกิจกรรมในนามของจุดประสงค์นั้นK. Liebknecht

บทความอธิบายวิธีการเซ็นเอกสาร (pdf, word, excel, xml, archive) โดยใช้ EDS พิจารณาซอฟต์แวร์ที่จำเป็นในการเซ็นเอกสารโดยใช้ EDS ข้อดีและข้อเสีย

วิธีลงชื่อไฟล์ด้วย EDS

มีสองโปรแกรมที่คุณสามารถเซ็นไฟล์โดยใช้ EDS:

  1. ViPNet CryptoFile;
  2. CryptoARM

ViPNet CryptoFile

เมื่อใช้โปรแกรมนี้ คุณสามารถลงนามในไฟล์ใดก็ได้ เช่น doc, xls, jpg, xml, txt, ลงนามในการประกาศ EDS, เก็บถาวร หลังจากลงชื่อแล้ว ไฟล์จะลงท้ายด้วย .sig

ข้อดี:โปรแกรมฟรีที่ต้องลงทะเบียนบนเว็บไซต์ (รับรหัสได้ที่ อีเมล). นอกจากนี้ยังสามารถใช้ลายเซ็นที่แนบมากับไฟล์เมื่อลงนามไฟล์ด้วย EDS เช่น ไฟล์และคีย์จะอยู่ในไฟล์เดียวกันหรือแยกจากไฟล์

ข้อเสีย:เมื่อลงนาม คุณสามารถเพิ่มลายเซ็นอิเล็กทรอนิกส์ได้เพียงรายการเดียว

คุณสามารถลงนามในเอกสาร EDS คลิกขวาคลิกที่ไฟล์แล้วเลือก ViPNet CryptoFile -> ลงชื่อเข้าใช้เมนู ViPNet

CryptoARM

ข้อเสีย:ซอฟต์แวร์ที่ต้องชำระเงิน

ข้อดี:คุณสามารถเพิ่มได้มากมาย ลายเซ็น EDSเมื่อเซ็นชื่อไฟล์.

ในการเซ็นเอกสารด้วย EDS คุณสามารถคลิกขวาที่ไฟล์แล้วเลือก CryptoARM -> Sign จากเมนู

วิธีเซ็นชื่อในไฟล์ PDF ด้วย EDS

หากคุณจำเป็นต้องลงนามในเอกสาร เช่น สำหรับภาษี โปรดอ่านคำแนะนำด้านบน "วิธีลงนามในไฟล์โดยใช้ EDS" แต่หากคุณต้องการลายเซ็นที่มีส่วนที่มองเห็นได้ในเอกสาร ให้อ่านคำแนะนำด้านล่าง

ในการลงนามในเอกสาร pdf โดยใช้ EDS จำเป็นต้องใช้ซอฟต์แวร์

ข้อดี:ลายเซ็นอิเล็กทรอนิกส์จะปรากฏในเอกสาร

ข้อเสีย:ค่าโปรแกรม (ฟรี 90 วัน)

นอกจากนี้ คุณต้องติดตั้ง โปรแกรมอ่านกายกรรม DC หรือ Adobe Acrobat Pro

ก่อนใส่ลายเซ็นอิเล็กทรอนิกส์ในเอกสาร pdf คุณต้องกำหนดค่า Acrobat Reader DC ให้ทำงานกับโปรแกรม CryptoPro PDF โดยกด Ctrl + K ใน Acrobat Reader DC หรือไปที่เมนู Editing -> Preferences ในหมวดหมู่ เลือกลายเซ็น -> โดยที่ "สร้างและออกแบบ" คลิกรายละเอียดเพิ่มเติมดูภาพ:

ใน "วิธีการลงนามเริ่มต้น" เลือก CryptoPro PDF ตามภาพ:

เราลงชื่อ เอกสาร pdfด้วยสพป

เปิดเอกสาร pdf -> ในแผงด้านขวา คลิกที่เติมและเซ็นชื่อ

ในแผงด้านบนของโปรแกรม Acrobat Reader คลิกที่ "Fill and sign" -\u003e "เครื่องมือเพิ่มเติม"

คุณต้องเลือกเครื่องมือใบรับรองเพื่อเพิ่มในแผงควบคุม

หลังจากคลิกที่ใบรับรองเครื่องมือ "ลายเซ็นดิจิทัล" จะปรากฏขึ้นบนแผงควบคุมคลิกที่เครื่องมือจากนั้นเลือกพื้นที่ที่เราต้องการใส่ลายเซ็นดิจิทัลด้วยเคอร์เซอร์หน้าต่างที่มีการเลือกใบรับรองจะปรากฏขึ้น

เลือกใบรับรอง -> ตกลง -> ลงชื่อ

ลายเซ็นดิจิทัลใน pdf มีลักษณะดังนี้:



เอกสาร pdf ของเราได้รับการเซ็นชื่อ ในลักษณะเดียวกับที่คุณสามารถใส่หลายลายเซ็นในไฟล์ pdf ไฟล์เดียว

วิธีเซ็นเอกสาร Word ด้วย EDS

หากคุณต้องการลงนามในเอกสารด้วยส่วนที่มองเห็นได้ของลายเซ็นในเอกสาร ให้อ่านคำแนะนำด้านล่าง แต่หากคุณต้องการลงนามในเอกสารคำและส่งไปยังสำนักงานสรรพากร ตัวอย่างเช่น คำแนะนำข้างต้น “อย่างไร การเซ็นชื่อไฟล์โดยใช้ EDS” จะเหมาะกับคุณ

เพื่อลงนาม เอกสารคำด้วยความช่วยเหลือของ EDS เราต้องการโปรแกรม CryptoPro Office Signature

- ซอฟต์แวร์แบบชำระเงิน ใช้ในการเซ็นเอกสาร Wort, Excel

หลังการติดตั้ง คุณสามารถเริ่มเซ็นเอกสาร Word ด้วย EDS ได้ทันที สำหรับสิ่งนี้ เราจะเปิดเอกสาร Word ที่ต้องเซ็นด้วย EDS -> เมนูอัตรา -> ในบล็อกข้อความ คลิกที่บรรทัดลายเซ็น และเลือกบรรทัดลายเซ็น (CRYPTO -มือโปร).

สมมติว่าคุณต้องใส่ลายเซ็นอิเล็กทรอนิกส์สองลายเซ็นลงในเอกสาร Word เราจึงดำเนินการตามที่แสดงด้านบนสองครั้งโดยไม่ต้องเซ็นชื่อ เนื่องจากหลังจากลงนามด้วยลายเซ็นเดียวแล้ว เอกสารจะไม่สามารถแก้ไขได้ ดังนั้นเราจึงแทรกสองฟิลด์สำหรับลายเซ็นอิเล็กทรอนิกส์

หลังจากนั้น คุณสามารถลงนามโดยคลิกที่ลายเซ็นเดียว เลือก EDS และลงนาม จากนั้นทำเช่นเดียวกันกับลายเซ็นที่สอง

เอกสารคำที่เซ็นชื่อแบบดิจิทัลมีลักษณะดังนี้:


วิธีเซ็นชื่อในเอกสาร Excel โดยใช้ลายเซ็นดิจิทัล

ฉันจะไม่พูดซ้ำเพื่อเซ็นเอกสาร Excel โดยใช้ EDS คุณต้องทำทุกอย่างเหมือนกับ Word ดูสูงขึ้นเล็กน้อย

ความสนใจ: หากคุณต้องการเซ็นชื่อ เอกสาร excelด้วยส่วนที่มองเห็นได้ของลายเซ็นในเอกสาร จากนั้นอ่านคำแนะนำเพิ่มเติม "วิธีเซ็นเอกสาร Word โดยใช้ EDS" หากคุณต้องการเซ็นเอกสาร excel และส่งไปยังสำนักงานภาษี ตัวอย่างเช่น คำแนะนำ ที่ด้านบนของหน้า "วิธีลงชื่อไฟล์โดยใช้ EDS" จะเหมาะกับคุณ

วิธีเซ็นสัญญากับ EDS

ขึ้นอยู่กับรูปแบบที่สร้างสัญญา โปรดอ่านบทความวิธีลงนามในเอกสาร Word หรือ PDF ด้านบน

วิธีการลงนามในหนังสือมอบอำนาจกับ EDS

อ่านบทความด้านบนและเลือกตัวเลือกที่เหมาะสมในการเซ็นหนังสือมอบอำนาจโดยใช้ EDS

คำถาม:

อนุญาตให้แก้ไขไฟล์ EDS ที่ลงชื่อแล้วหรือไม่

- ไม่ หลังจากเซ็นชื่อไฟล์แล้ว จะไม่สามารถแก้ไขได้ เช่น หากคุณพยายามแก้ไขข้อความที่เซ็นชื่อใน Word ลายเซ็นทั้งหมดจะถูกลบ

เอกสารที่ลงนามโดย EDS มีลักษณะอย่างไร

- ทั้งหมดขึ้นอยู่กับว่าคุณลงนามในเอกสารอย่างไร หากลงนามในเอกสารตามคำแนะนำในตอนต้น ไฟล์จะมีนามสกุล .sig นอกจากนี้ ไฟล์และ EDS สามารถเป็นไฟล์แยกกันได้ ขึ้นอยู่กับวิธีการเซ็นชื่อไฟล์

หากคุณลงนามในเอกสาร pdf, word หรือ excel โดยใช้ โปรแกรมพิเศษไม่สามารถแยกความแตกต่างระหว่างพวกเขาได้ จำเป็นต้องเปิดเอกสารและตรวจสอบให้แน่ใจว่ามีลายเซ็นหรือไม่

หนึ่งในโครงการที่กำลังดำเนินอยู่ งานของการลงนาม (การใช้ ES - ลายเซ็นอิเล็กทรอนิกส์) ของเอกสาร XML ซึ่งก็คือแพ็คเกจ SOAP ได้รับการแก้ไขแล้ว รูปแบบที่แนะนำคือ OASIS Standard 200401 พร้อม X.509 Certificate Token Profile เอกสารเหล่านี้อธิบายการใช้รูปแบบ World Wide Web Consortium (W3C) XML Digital Signature (XMLDSig) ในข้อความ SOAP ลายเซ็น XML เช่นเดียวกับ ES ประเภทอื่นๆ สนับสนุนการตรวจสอบความถูกต้อง ความสมบูรณ์ของข้อมูล และการไม่ปฏิเสธการลงนามข้อมูล

ฉันจะบันทึกคุณลักษณะต่างๆ ของรูปแบบ XMLDSig:

1. วัตถุของการเซ็นชื่อไม่สามารถเป็นเอกสาร XML ทั้งหมดได้ แต่เป็นเพียงส่วนหนึ่งของเอกสาร เช่น โหนดบางอย่าง ตามมาตรฐาน OASIS 200401 วัตถุที่จะลงนามคือเนื้อหา (node.js) ร่างกาย) ข้อความ SOAP

2. ส่วนต่างๆ ของเอกสาร XML สามารถลงนามได้มากกว่าหนึ่งคน

3. ลายเซ็น XML สามารถอยู่ในระดับที่แตกต่างกันโดยสัมพันธ์กับวัตถุที่ลงนาม:

  • โครงสร้างลายเซ็นสามารถมีได้ ยูอาร์ไอ(ตัวระบุทรัพยากรแบบเดียวกัน);
  • ลายเซ็น XML อาจอยู่ในระดับเดียวกับโหนดที่ลงนาม
  • ลายเซ็น XML สามารถอยู่ภายในโหนดที่กำลังลงนาม
  • โหนดที่จะลงนามอาจอยู่ในโครงสร้างลายเซ็น XML

4. ในการตรวจสอบความถูกต้องของ ES จำเป็นต้องมีการเข้าถึงวัตถุการลงนาม

โครงสร้างของ SOAP Cover

โดยทั่วไป ข้อความประกอบด้วยส่วนหัวและเนื้อหา: หัวข้อและ ร่างกาย. หัวข้อมีข้อมูลเมตาและ ร่างกายข้อมูล. ลายเซ็น XML ถูกวางไว้ในโหนด หัวข้อ.

อัลกอริทึมการเข้ารหัสและการทำให้เป็นมาตรฐาน

เพื่อแก้ปัญหาเราใช้ GOST R 34.11-94- มาตรฐานการเข้ารหัสของรัสเซียสำหรับการคำนวณฟังก์ชันแฮชและ GOST R 34.10-2001- มาตรฐานลายเซ็นอิเล็กทรอนิกส์

เนื่องจากความยืดหยุ่นของกฎการจัดองค์ประกอบ XML โครงสร้างเอกสารเดียวกันและข้อมูลชิ้นเดียวกันจึงสามารถแสดงด้วยเอกสาร XML ที่แตกต่างกันได้ พิจารณาเอกสารสองฉบับ:

จากมุมมองเชิงตรรกะ พวกมันเทียบเท่ากัน นั่นคือ พวกมันมี XML schema เดียวกัน แต่ไฟล์ XML ของรายชื่อเหล่านี้ไม่มีลำดับอักขระเดียวกัน ซึ่งจะนำไปสู่ผลลัพธ์ที่แตกต่างกัน ตัวอย่างเช่น เมื่อได้รับค่าแฮช

เพื่อหลีกเลี่ยงความคลาดเคลื่อนดังกล่าว จึงมีการนำกฎการจัดรูปแบบและข้อกำหนดที่เข้มงวดสำหรับเนื้อหาของข้อความ XML มาใช้ กระบวนการนำเอกสาร XML ไปสู่รูปแบบรวม (บัญญัติ) เรียกว่า บัญญัติ(อังกฤษบัญญัติ). ตัวอย่างของกฎสามารถใช้รูปแบบการเข้ารหัสเฉพาะ (UTF-8), การทำให้เป็นมาตรฐานของค่าแอตทริบิวต์, การใช้เครื่องหมายอัญประกาศคู่สำหรับค่าแอตทริบิวต์, ลำดับของแอตทริบิวต์และการประกาศเนมสเปซ เป็นต้น มีหลายประเภทของการบัญญัติ XML ที่แตกต่างกันในองค์ประกอบของกฎ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับกระบวนการทำให้เป็นมาตรฐานได้ในข้อกำหนดอย่างเป็นทางการของ W3C (สามารถอ่านบทความภาษารัสเซียในหัวข้อนี้ได้ และ)

ห้องสมุด SIRCrypt

ในการใช้การลงชื่อ XML ใน DIRECTUM ไลบรารี COM ได้ถูกเขียนขึ้น ซึ่งมี 3 คลาสที่อธิบายไว้: แฮชเชอร์, ผู้ลงนามและ XMLCanonicalizerเพื่อรับแฮช ค่า ES และการทำให้เป็นมาตรฐานของเอกสาร XML ตามลำดับ

ห้องสมุดต้องการ Crypto PRO CSP(ทดสอบในเวอร์ชั่น Crypto PRO CSP 3.6.6497 KC2) และ .สุทธิ(ขั้นต่ำ 2.0).

การลงทะเบียนไลบรารีทำได้โดยการรันคำสั่งต่อไปนี้:

> regasm.exe "เส้นทางไปยัง dll" /codebase /tlb

วัตถุแฮชสำหรับการคำนวณแฮชตาม GOST

ประกอบด้วยเขตข้อมูล เนื้อหา (พิมพ์ "สตริง") และ HashValueAsBase64 (พิมพ์ "สตริง") รวมถึงวิธีการคำนวณค่าของฟังก์ชันแฮช กัญชา(). ในการคำนวณจำเป็นต้องหมายถึง เนื้อหา เรียกเมธอด กัญชา()ซึ่งเป็นผลมาจากการที่ในสนาม HashValueAsBase64 ค่าฟังก์ชันแฮชจะถูกเขียนใน Base64

วัตถุผู้ลงนามเพื่อรับค่า ES ตาม GOST

ประกอบด้วยเขตข้อมูล เนื้อหา (พิมพ์ "สตริง"), ชื่อคอนเทนเนอร์ (พิมพ์ "สตริง"), ใบรับรอง AsPEM (พิมพ์ "สตริง"), BESignatureValueAsBase64 (พิมพ์ "สตริง"), วิธีการ เข้าสู่ระบบ(). หลังจากที่ออบเจกต์ได้รับการเริ่มต้นแล้ว จะต้องเป็น เนื้อหา (ข้อมูลสำหรับการลงนาม), ชื่อคอนเทนเนอร์ (ชื่อของคอนเทนเนอร์คีย์ส่วนตัวของใบรับรอง) ให้เรียกเมธอด เข้าสู่ระบบ(). จากนั้นในสนาม ใบรับรอง AsPEM ใบรับรองที่ตรงกับคีย์ส่วนตัวจะอยู่ใน Base64 และในฟิลด์ BESignatureValueAsBase64 ค่าลายเซ็นเป็นสตริง Base64

วัตถุ XMLCanonicalizer สำหรับ XML บัญญัติ

ประกอบด้วยเขตข้อมูล เนื้อหา XML (พิมพ์ "สตริง"), CanonicalXML (พิมพ์ "สตริง"), วิธีการ C14NExc(). ในการรับรูปแบบมาตรฐานของ XML คุณต้องหมายถึง เนื้อหา XML , เรียก C14NExc()รับผลลัพธ์จากฟิลด์ CanonicalXML .

โครงสร้างลายเซ็น XML

การสร้างลายเซ็นมีลักษณะดังนี้: ขั้นแรกให้สร้างพื้นฐานของแพ็คเกจสบู่โหนด หัวข้อและ ร่างกาย. ร่างกายเต็มไปด้วยข้อมูลและแอตทริบิวต์ที่เพิ่มเข้ามา wsu:ID="ร่างกาย"- ตัวระบุข้อมูลที่จะลงนาม

การเติมโครงสร้าง ความปลอดภัยเกิดขึ้นตามลำดับดังนี้

  1. ค่าแฮชนำมาจากโหนด Body ในรูปแบบมาตรฐานและวางไว้ในโหนด DigestValue
  2. ปม ข้อมูลลงนามลดเป็นแบบบัญญัติ ลงนามโดย EP ผลลัพธ์ในรูปแบบสตริง Base64 ไปที่โหนด ค่าลายเซ็น.
  3. พับลิกคีย์ของใบรับรองที่ลงนามแล้วจะถูกวางไว้ในโหนด โทเค็นความปลอดภัยไบนารีในรูปแบบสตริง Base64

ในการตรวจสอบ ES ที่สร้างขึ้นด้วยวิธีนี้ จำเป็นต้องทำตามขั้นตอนทั้งหมดในลำดับย้อนกลับ กล่าวคือ:

  1. รับรูปแบบมาตรฐานขององค์ประกอบ ข้อมูลลงนาม.
  2. ใช้ผลลัพธ์ของขั้นตอนก่อนหน้า ตรวจสอบว่าค่าของ EP จากโหนดนั้นถูกต้องหรือไม่ ค่าลายเซ็นโดยใช้รหัสสาธารณะของใบรับรอง บน ขั้นตอนนี้มีการตรวจสอบความถูกต้องของ ES เท่านั้น ซึ่งไม่รับประกันว่าข้อมูลจะไม่เปลี่ยนแปลง
  3. หากการตรวจสอบความถูกต้องของ ES สำเร็จ ระบบจะเปรียบเทียบแฮชจากโหนด ค่าย่อยและแฮชจากโหนดข้อมูล หากไม่เท่ากัน แสดงว่าข้อมูลที่ลงนามมีการเปลี่ยนแปลงและ ES ทั้งหมดไม่ถูกต้อง

ตัวอย่างการใช้งาน

ชุดพัฒนาและห้องสมุด

ตัวอย่างการลงชื่อ XML เป็น ISBL (สคริปต์): dev.zip (5.95 Kb)

สำหรับการใช้งานแบบถาวร โค้ดที่ดำเนินการลงนามโดยทั่วไปของซองจดหมาย SOAP ที่เสร็จสิ้นแล้วจะถูกย้ายไปยังฟังก์ชัน SignSOAP().

การลงนามใช้ใบรับรองจากที่เก็บใบรับรองส่วนบุคคลของผู้ใช้ปัจจุบัน

ตามกฎหมาย 218-FZ "ในการลงทะเบียนสถานะของอสังหาริมทรัพย์" จะต้องลงนามในเอกสาร XML อิเล็กทรอนิกส์และภาพสแกนของเอกสาร ปรับปรุงลายเซ็นอิเล็กทรอนิกส์ที่ผ่านการรับรอง. โปรแกรมทั้งหมดของซีรีย์ "Polygon", "Polygon Pro" และโปรแกรม "Signature Pro" ได้รับการเซ็นชื่อด้วยลายเซ็นดังกล่าว

สำหรับลายเซ็น:

    รับ คีย์การลงนาม(ใบรับรอง) ที่หน่วยงานออกใบรับรอง รายชื่อศูนย์รับรองที่ได้รับการรับรองเผยแพร่บนเว็บไซต์ Rosreestr (รายชื่อศูนย์รับรอง) คุณสามารถรับใบรับรองได้ใน Certification Center LLC "ศูนย์โปรแกรม" ของเรา

    ซื้อและติดตั้งโปรแกรมร่วมกับลายเซ็นบนคอมพิวเตอร์ของคุณ CryptoPro CSP (มีมาตรฐานลายเซ็นของรัสเซียที่จำเป็น) ซึ่งสามารถซื้อได้จากศูนย์โปรแกรม Certification Center LLC ของเรา

ไม่จำเป็นต้องใช้โปรแกรมอื่นสำหรับการเซ็นชื่อ: CryptoARM (ความสามารถของ CryptoARM ในแง่ของลายเซ็นนั้นคล้ายกับความสามารถของโปรแกรมในซีรีย์ Polygon, Polygon Pro และโปรแกรม Signature Pro)

โมดูลซอฟต์แวร์ของแพลตฟอร์ม Polygon Pro

ลงนามในเอกสารอิเล็กทรอนิกส์ในโปรแกรม Polygon Pro

ในการเซ็นไฟล์ XML ให้ทำดังต่อไปนี้:

  • สร้างเอกสารอิเล็กทรอนิกส์โดยไม่มีข้อผิดพลาด


คุณสามารถลงนามในไฟล์ XML ได้ทันทีใน " ดู XML" ในการทำเช่นนี้บนแถบเครื่องมือให้คลิกปุ่ม - "ลงชื่อไฟล์ XML".

  • โปรแกรมจะลงนามในเอกสารหลักและแสดงข้อความแสดงความสำเร็จ

ในโฟลเดอร์เดียวกับไฟล์ที่ลงชื่อ ไฟล์ลายเซ็นจะถูกสร้างขึ้นด้วยชื่อเดียวกัน โดยมีนามสกุล * .ซิก.

ลงชื่อกลุ่มของไฟล์ในโปรแกรม Polygon Pro

โปรแกรมมีความสามารถในการลงนามกลุ่มของไฟล์ในเวลาเดียวกัน ในการดำเนินการ ให้ทำดังต่อไปนี้:

  • ในเทป โมดูลซอฟต์แวร์แท็บ "บ้าน"กดปุ่ม และเลือกจากเมนูย่อย หน้าต่างจะเปิดขึ้นพร้อมกับไฟล์โครงการที่เลือก (ตามค่าเริ่มต้น ไฟล์โครงการทั้งหมดจะถูกเลือก)
  • หากรายการมีไฟล์ที่คุณไม่จำเป็นต้องเซ็นชื่อ ให้ยกเลิกการเลือก

  • คลิกที่ปุ่ม "เข้าสู่ระบบ". หน้าต่างจะเปิดขึ้นพร้อมกับรายการใบรับรองที่ติดตั้ง เลือกรายการที่คุณต้องการแล้วคลิก "ตกลง".
  • โปรแกรมจะลงนามในเอกสารทั้งหมดและแสดงข้อความสำเร็จ

    หากเกิดข้อผิดพลาดระหว่างการเซ็นชื่อ บันทึกการยืนยันจะถูกส่งออกพร้อมคำเตือนและ/หรือข้อผิดพลาด สำหรับการเซ็นชื่อที่ถูกต้อง จำเป็นต้องแก้ไขข้อผิดพลาด

    ลงชื่อไฟล์ในโมดูลซอฟต์แวร์ของแพลตฟอร์ม Polygon Pro

    โปรแกรมมีความสามารถในการลงนามไฟล์ใด ๆ อย่างแน่นอน

      หน้าต่างจะเปิดขึ้นพร้อมกับรายการใบรับรองที่ติดตั้ง เลือกรายการที่คุณต้องการแล้วคลิก " ตกลง».

    • โปรแกรมจะทำการเซ็นเอกสารให้เสร็จสิ้นและแสดงข้อความแสดงความสำเร็จ

    ในโฟลเดอร์เดียวกับไฟล์ที่ลงชื่อ ไฟล์ลายเซ็นจะถูกสร้างขึ้นด้วยชื่อเดียวกันพร้อมนามสกุล *.ซิก.

    ตรวจสอบลายเซ็นอิเล็กทรอนิกส์ในโปรแกรม Polygon Pro

    หากคุณได้รับไฟล์ที่มีลายเซ็นจากภายนอกและต้องการตรวจสอบว่ามีการแก้ไขหรือไม่ หรือเพียงแค่ตรวจสอบความถูกต้องของลายเซ็นไฟล์ที่สร้างขึ้น ให้ทำตามขั้นตอนเหล่านี้:

    • บน Ribbon ของโมดูลโปรแกรมในแท็บ " บ้าน» ในเมนูย่อยของปุ่ม « ลงชื่อทั้งหมด" กดปุ่ม " ตรวจสอบ…».

    • เลือกไฟล์ที่มีลายเซ็น (พร้อมนามสกุล *.ซิก) ที่จะตรวจสอบหรือไฟล์ที่ลงนาม

    ถ้าสองไฟล์นี้อยู่ใน โฟลเดอร์ต่างๆโปรแกรมจะแสดงหน้าต่างเตือน คลิกที่ปุ่ม ทำซ้ำ» และเลือกไฟล์ต้นฉบับ

    • โปรโตคอลจะเปิดขึ้นพร้อมกับข้อมูลว่าเอกสารได้รับการลงนามอย่างถูกต้องโดยใครและเมื่อใด

    โปรแกรม "ซิกเนเจอร์โปร"

    เพื่อการโต้ตอบที่สะดวกกับผู้ออกใบรับรอง การจัดการ ใบรับรองดิจิทัลและ คีย์ส่วนตัว EP เช่นเดียวกับการลงนาม ไฟล์ต่างๆโปรแกรมได้รับการพัฒนาด้วยลายเซ็นอิเล็กทรอนิกส์

    จะเซ็นไฟล์ด้วยลายเซ็นดิจิทัลได้อย่างไร

    คำแนะนำนี้เป็นเพียงตัวอย่าง ขั้นตอนเฉพาะอาจขึ้นอยู่กับการติดตั้งบนคอมพิวเตอร์ของคุณ ซอฟต์แวร์. คำแนะนำบางส่วนเสร็จสิ้นในเดือนกุมภาพันธ์ 2012 อย่างไรก็ตาม โปรแกรมของเรามีตัวเลือกที่สะดวกกว่าสำหรับการเซ็นชื่อไฟล์ เอกสารอิเล็กทรอนิกส์ ปรับปรุงลายเซ็นอิเล็กทรอนิกส์ที่ผ่านการรับรอง

    ในการเซ็นไฟล์เอกสารอิเล็กทรอนิกส์: แผนขอบเขต แผนแผนที่ แผนทางเทคนิคลายเซ็นอิเล็กทรอนิกส์ คุณต้องตรวจสอบการแสดงตน โปรแกรมที่ติดตั้ง:

      ผู้ให้บริการ crypto "CryptoPro CSP";

      "Crypto ARM" - โปรแกรมนี้จำเป็นเฉพาะเมื่อคุณไม่ได้ใช้โปรแกรมของซีรีส์ "Polygon" โปรแกรมนี้ในแง่ของการเซ็นชื่อจะเหมือนกับโปรแกรมของซีรีส์ "Polygon" ดังนั้นจึงไม่จำเป็น สำหรับการลงนามไฟล์ด้วยโปรแกรมของชุด "รูปหลายเหลี่ยม" ดูหน้าก่อนหน้าของคำแนะนำ คุณสามารถลงชื่อได้ทั้งกับโปรแกรมของซีรีย์ Polygon และกับโปรแกรม CryptoARM หากคุณคิดว่ามันจะสะดวกกว่าการใช้ความสามารถที่มีอยู่ของโปรแกรมของซีรีย์ Polygon;

    แต่ละไฟล์ (XML, การสแกนเอกสารที่พิมพ์และไฟล์แอปพลิเคชัน) จะต้องลงนาม เนื่องจากหน่วยงานการลงทะเบียนเกี่ยวกับที่ดินยอมรับเฉพาะไฟล์คู่: ไฟล์ต้นฉบับและไฟล์ลายเซ็น หากต้องการลงชื่อไฟล์ ให้เลือกไฟล์ในหน้าต่าง explorer แล้วคลิกขวา (RMB) ไฟล์นั้นจะปรากฏขึ้น เมนูบริบทในนั้นคุณควรเลือกรายการ “CryptoARM” จากนั้นเลือก “ เข้าสู่ระบบ…».



    จากนั้นตรวจสอบให้แน่ใจว่าชื่อไฟล์ถูกต้อง



    สำคัญ! ตั้งสวิตช์ไปที่ " การเข้ารหัส DER” ระบุโฟลเดอร์สำหรับไฟล์เอาต์พุตตามดุลยพินิจของคุณ กดปุ่ม " ไกลออกไป". ในหน้าต่างถัดไป กำหนดพารามิเตอร์ลายเซ็น


    ในหน้าต่างนี้ สิ่งที่สำคัญที่สุดคือทำเครื่องหมายที่ช่อง " บันทึกลายเซ็นไปที่ แยกไฟล์ ". คลิกที่ปุ่ม ไกลออกไป". ในหน้าต่างถัดไป คลิกปุ่ม " เลือก»


    หน้าต่างการเลือกใบรับรองจะเปิดขึ้น


    เลือกใบรับรองของคีย์ของคุณ (ดูตามชื่อเจ้าของ) หลังจากเลือกแล้ว ให้กดปุ่ม ตกลง" และ " ไกลออกไป". ในหน้าต่างสุดท้ายก่อนลงนามในเอกสาร คลิกปุ่ม " พร้อม».

    สำคัญ! สำหรับแต่ละไฟล์ คุณต้องสร้างไฟล์ลายเซ็น เนื่องจากยอมรับเพียงคู่เดียว: ไฟล์ต้นฉบับ (xml หรืออื่น) + ลายเซ็น (ไฟล์ sig)

ฉันไม่สามารถเข้าใจกลไกในการลงนามเอกสาร xml ได้ ฉันจะขอบคุณสำหรับความช่วยเหลือที่จะเข้าใจ)

สถานการณ์ของฉันคือ:

1) มีผู้ออกใบรับรองที่มีใบรับรองที่ออกให้ติดอยู่กับเซิร์ฟเวอร์ใน ที่เก็บของหน้าต่าง.. เพื่อส่วนตัว, เชื่อถือได้และอื่น ๆ .. ไม่ใช่ประเด็น

เมื่อลงชื่อเข้าใช้แอปพลิเคชัน ผู้ใช้จะลงนามในสตริงที่สร้างขึ้นแบบสุ่มพร้อมใบรับรองที่พวกเขาเลือก บนเซิร์ฟเวอร์ ลายเซ็นนี้ได้รับการยืนยัน:

CAPICOM.SignedData _signedData = ใหม่ CAPICOM.SignedData(); _signedData.Verify (signedData, เท็จ, CAPICOM_SIGNED_DATA_VERIFY_FLAG.CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE); ถ้า (_signedData.Content != data) ส่งข้อยกเว้นใหม่ ("เนื้อหาที่ลงนามไม่ตรงกับเนื้อหาที่ได้รับ"); var_certificate = _signedData.Certificates; // ใบรับรองผู้ใช้

นี่คือวิธีที่เราได้รับใบรับรองผู้ใช้ (รหัสสาธารณะ) สิ่งสำคัญคือลายเซ็นจะผ่านการตรวจสอบก็ต่อเมื่อคีย์สาธารณะที่เกี่ยวข้องของใบรับรองอยู่บนเซิร์ฟเวอร์ในที่เก็บใบรับรองเท่านั้น นี่คือสิ่งที่เราต้องการให้เฉพาะผู้ที่เราออกใบรับรองเอง) ดูเหมือนจะชัดเจนที่นี่

2) ตอนนี้จำเป็นที่ผู้ใช้คนเดียวกันจะต้องลงชื่อ xml ด้วยใบรับรอง ซอฟต์แวร์ของฉันในไคลเอนต์สร้าง xml เองและลงนามด้วยใบรับรองที่ผู้ใช้ระบุ:

โมฆะคงที่สาธารณะ SignXml(XmlDocument xmlDoc, /*RSA*/คีย์อัลกอริทึมอสมมาตร) ( SignedXml signatureXml = ใหม่ SignedXml(xmlDoc); signXml.SigningKey = คีย์; การอ้างอิงอ้างอิง = การอ้างอิงใหม่ (); reference.Uri = "";//ลายเซ็น เอกสาร xml ทั้งหมด XmlDsigEnvelopedSignatureTransform env = ใหม่ XmlDsigEnvelopedSignatureTransform(); reference.AddTransform(env); signXml.AddReference(อ้างอิง); KeyInfo keyInfo = new KeyInfo(); keyInfo.AddClause(CryptService.GetKeyInfoClause(Key)); // RSA หรือ GOST signXml.KeyInfo = keyInfo; signXml.ComputeSignature(); XmlElement xmlDigitalSignature = signXml.GetXml(); xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true)); )

XmlDocument doc = ใหม่ XmlDocument(); doc.PreserveWhitespace = จริง; doc.Load (เส้นทาง); SignedXml sx = ใหม่ SignedXml(doc); XmlNodeList nodeList = doc.GetElementsByTagName("ลายเซ็น"); sx.LoadXml((XmlElement)nodeList); ส่งคืน sx.CheckSignature();

โค้ดใช้งานได้ แต่ฉันมีคำถามเกี่ยวกับความเข้าใจ: ในกรณีนี้ คุณสามารถลงชื่อ xml ด้วยใบรับรองใดๆ ที่ไม่ได้ออกโดย CA ของเรา และเนื่องจากข้อมูลคีย์สาธารณะถูกจัดเก็บไว้ใน xml ที่ลงชื่อ ลายเซ็นจึงได้รับการยืนยัน ตัวเลือกนี้ใช้ไม่ได้สำหรับฉัน วิธีการ CheckSignature มีการโอเวอร์โหลดด้วยพารามิเตอร์ชนิด AsymmetricAlgorithm ที่จะตรวจสอบใบรับรองการลงนามว่ามีอยู่ในร้านค้า ตรวจสอบความถูกต้อง ระยะเวลาที่ใช้ได้ และอื่นๆ นี่คือสิ่งที่ฉันต้องการ แต่ฉันไม่ทราบล่วงหน้าว่าผู้ใช้คนใดส่ง xml ที่ลงนามแล้ว

โปรดบอกฉัน: วิธีตรวจสอบลายเซ็น xml หรือวิธีสร้างอย่างถูกต้องเพื่อให้เฉพาะไฟล์ xml ที่ลงนามโดยใบรับรองของเราเท่านั้น (ซึ่งติดตั้งในร้านค้า) ผ่านการตรวจสอบลายเซ็น

ปล. และอะไรคือจุดประสงค์ของการรักษาทั้งลายเซ็นและรหัสสาธารณะสำหรับการถอดรหัสลายเซ็นใน xml หากคุณลบบรรทัด signXml.KeyInfo = keyInfo; แล้วการตรวจสอบลายเซ็น xml ล้มเหลว



กำลังโหลด...
สูงสุด