دمج EDS من NCA RK في أنظمة المعلومات القائمة على تقنيات الويب

سأتحدث عن تعقيدات إدخال التوقيع الرقمي الإلكتروني (EDS) في أنظمة المعلومات (IS) على أساس تقنيات الويب في سياق مركز التصديق الوطني لجمهورية كازاخستان (NCA RK) .



سيكون التركيز على تشكيل EDS تحت الوثائق الإلكترونية ، وبالتالي ، NCALayer - برنامج التشفير المقدم من NCA RK. على وجه الخصوص ، سأولي اهتماما للمسائل المتعلقة UX ومقدار الوظائف المدعومة من NCALayer.



سوف أقسم العملية إلى المراحل التالية:



  • تشكيل عرض ثابت للوثيقة الموقعة (بواسطة الوثيقة الموقعة أعني أي بيانات تحتاج إلى التوقيع ، مثل: العقد ، نموذج الطلب ، نموذج المصادقة ، إلخ) ؛
  • توقيع مستند في واجهة الويب باستخدام NCALayer ؛
  • التحقق من توقيع جانب الخادم ؛
  • (إذا لزم الأمر) إعداد توقيع للتخزين على المدى الطويل.


تشكيل التمثيل الدائم للوثيقة الموقعة



من المهم للمطورين أن يفهموا أن أي تغيير في الوثيقة الموقعة سيؤدي إلى حقيقة أن التوقيع تحته لن يتم التحقق منه بعد الآن. في هذه الحالة ، يمكن أن تحدث التغييرات ليس فقط من خلال تحرير بيانات المستند نفسه ، ولكن أيضًا من خلال تحديث بنية المستند أو آلية تسلسله.



خذ بعين الاعتبار مثال بسيط - يتم تخزين المستندات كسجلات في قاعدة بيانات. لتوقيع وثيقة ، من الضروري تشكيل تمثيلها في شكل كتلة بيانات واحدة (بالطبع ، يمكنك توقيع كل حقل سجل بشكل منفصل ، ولكن هذا لا يتم عادة) ، يمكن القيام بذلك ، على سبيل المثال ، بالطرق التالية:



  • استخراج جميع حقول السجل وإحضارها إلى سلاسل ودمجها في سطر واحد ؛
  • إنشاء تمثيل XML أو JSON ؛
  • إنشاء مستند PDF بناءً على قالب يحتوي على بعض التصميم الذي يحتوي على بيانات من السجل ؛
  • إلخ


:



  • ( ) ;
  • .


, , , :



  • ;
  • ( , , ).


, - , .



, — ( ) , . , , , . . .



NCALayer



NCALayer WebSocket , 127.0.0.1, ( ) . NCALayer — .



API NCALayer . , NCALayer WebSocket KAZTOKEN mobile (KAZTOKEN mobile API NCALayer).



NCALayer WebSocket, ncalayer-js-client async .



NCALayer kz.gov.pki.knca.commonUtils, kz.gov.pki.knca.applet.Applet ( Java ) , , , , — ( -) .



kz.gov.pki.knca.commonUtils , ( , ), . :



  • , 'PKCS12',
  • ( -), , , getActiveTokens.


, NCALayer , :



  • getActiveTokens, , 'PKCS12' ;
  • getActiveTokens, , , , , , , 'PKCS12'.


( ):



  • createCAdESFromBase64 — CMS (CAdES);
  • createCMSSignatureFromBase64 — , (TSP) CMS (CAdES) ;
  • signXml — XML , (XMLDSIG);
  • signXmlssignXml, XML .


, , .



kz.gov.pki.knca.commonUtils :



  • 'AUTHENTICATION' — ;
  • 'SIGNATURE' — .


NCLayer , .



ncalayer-js-client:



async function connectAndSign(base64EncodedData) {
  const ncalayerClient = new NCALayerClient();

  try {
    await ncalayerClient.connect();
  } catch (error) {
    alert(`    NCALayer: ${error.toString()}`);
    return;
  }

  let activeTokens;
  try {
    activeTokens = await ncalayerClient.getActiveTokens();
  } catch (error) {
    alert(error.toString());
    return;
  }

  const storageType = activeTokens[0] || NCALayerClient.fileStorageType;

  let base64EncodedSignature;
  try {
    base64EncodedSignature = await ncalayerClient.createCAdESFromBase64(storageType, base64EncodedData);
  } catch (error) {
    alert(error.toString());
    return;
  }

  return base64EncodedSignature;
}




, , .



, — , . , , - , , , . , , .



“ ”. . , .



, , SIGEX.





. , , , , .



TSP. ( createCMSSignatureFromBase64 CMS), . , .



لضمان عدم إبطال الشهادة في وقت التوقيع ، يجب استخدام استجابة CRL أو OCSP. تم وصف هذه التوصية الدقيقة والتنفيذية في الملحق ب - وضع التوقيع عند نقطة معينة في الوقت في RFC 3161 .




All Articles