TPDFlibEUTSLTrustSource

الأمان والتواقيع

الوصف

يحمل قائمة الاتحاد الأوروبي للقوائم الموثوقة وقوائم خدماته الوطنية الموثوقة المشار إليها، ويدقق تواقيع XML لها، ويزود TPDFlibSignatureVerifier بمراسي ثقة واعية بالتوقيت

يقيّم المصدر كذلك عبارات الشهادات المؤهلة ومؤهلات الخدمة الموثوقة ومعايير التأهيل وامتدادات نطاق الخدمة وسجل الخدمة ليصنف التواقيع والأختام الإلكترونية المؤهلة وفق eIDAS

الوحدة

PDFlibEUTSL

تهيئة الثقة

Function AddLOTLSigningCertificateDER(
  Const CertificateDER: AnsiString): Boolean;
Function AddLOTLSigningCertificateFromFile(
  Const CertificateFile: WideString): Boolean;
Procedure ClearLOTLSigningCertificates;
Procedure Clear;

على التطبيق تثبيت شهادة توقيع LOTL موثوقة باستقلال واحدة على الأقل قبل تحميل LOTL يتجاهل

Clear الـ LOTL المحمّل وكل لقطة TSL وطنية ومؤشراتها وخدماتها وحالتها التشخيصية دون مساس بشهادات توقيع LOTL المثبتة؛ وتصبح النسخة جاهزة بعد ذلك لتحميل لقطة جديدة يجب أن تطابق شهادة التوقيع المضمّنة في

يجب أن تطابق شهادة التوقيع المضمنة في KeyInfo داخل XML شهادة مثبتة بايتًا ببايت فلا يستطيع موقّع يدّعي بنفسه تأسيس ثقته

يجب أن توقع كل TSL وطنية بدورها بشهادة يحملها مؤشر LOTL المطابق الموثق سلفًا

تحميل القوائم الموثوقة

Function LoadLOTLFromString(Const XMLData: AnsiString): Boolean;
Function LoadLOTLFromFile(Const FileName: WideString): Boolean;
Function LoadLOTLFromURL(Const URL: WideString): Boolean;
Function LoadTSLFromString(PointerIndex: Integer;
  Const XMLData: AnsiString): Boolean;
Function LoadTSLFromFile(PointerIndex: Integer;
  Const FileName: WideString): Boolean;
Function LoadTSLFromURL(PointerIndex: Integer): Boolean;
Function RefreshAllTSLs: Integer;

يعطّل تحميل XML أنواع DTD والكيانات الخارجية، ويطبق حد حجم قابلًا للضبط، ويتطلب توقيعًا مغلفًا واحدًا فوق جذر المستند، ويرفض المراجع المنفصلة والتواقيع المكررة وإخفاقات الملخص وعدم تطابق الموقّع وعدم تطابق الإقليم يتطلب LoadLOTLFromURL وLoadTSLFromURL بروتوكول HTTPS افتراضيًا ويطبقان NetworkTimeoutMS وMaxXMLBytes على كل طلب؛ وتتحكم خاصية RequireHTTPS (الافتراضي True) في فحص المخطط، وإطفاؤها مخصص فقط لبيئات اختبار متحكم بها ينزّل

RefreshAllTSLs

NextUpdate ويتحقق من كل مؤشر حالي قبل استبدال مجموعة الخدمات النشطة، فيحفظ إخفاق جزئي في الشبكة أو التوقيع اللقطة المتحقق منها السابقة تفشل لقطات LOTL وTSL منتهية الصلاحية بأسلوب الإغلاق افتراضيًا وتبقى غير قابلة للاستخدام بعد وقتهما AllowExpiredLists؛ وتتاح

الفحص

Function GetPointerCount: Integer;
Function GetPointerInfo(Index: Integer;
  Out Info: TPDFlibEUTSLPointerInfo): Boolean;
Function GetPointerSigningCertificateDER(PointerIndex,
  CertificateIndex: Integer; Out CertificateDER: AnsiString): Boolean;
Function GetServiceCount: Integer;
Function GetServiceInfo(Index: Integer;
  Out Info: TPDFlibEUTSLServiceInfo): Boolean;
Function GetServiceCertificateDER(ServiceIndex, CertificateIndex: Integer;
  VerificationTime: TDateTime;
  Out CertificateDER: AnsiString): Boolean;

تكشف معلومات الخدمة اسم الخدمة الحالي ونوعها وحالتها وتوقيت بداية الحالة وعدد الشهادات وعدد السجل

تكشف معلومات المؤشر عن الإقليم والموقع ونوع MIME وعدد موقّعي TSL المسموح بهم تكشف معلومات الخدمة عن اسم الخدمة الحالي ونوعها وحالتها وزمن بدء حالتها وعدد شهاداتها وعدد سجلها تكشف GetLOTLLocation وGetLOTLNextUpdate وGetRevision وGetLastError عن حالة اللقطة والتشخيص

التحقق من التواقيع

var
  TrustSource: TPDFlibEUTSLTrustSource;
  ChainReport: TPDFlibSignatureChainReport;
begin
  TrustSource:= TPDFlibEUTSLTrustSource.Create;
  try
    TrustSource.AddLOTLSigningCertificateFromFile('EU-LOTL-Signer.cer');
    if not TrustSource.LoadLOTLFromURL(LOTLURL) then
      raise Exception.Create(String(TrustSource.GetLastError));
    if TrustSource.RefreshAllTSLs<> TrustSource.GetPointerCount then
      raise Exception.Create(String(TrustSource.GetLastError));

    Verifier.SetTrustSource(TrustSource);
    try
      Result:= Verifier.VerifySignerCertificateChainEx(
        0, 0, srmOnline, 0, ChainReport);
    finally
      Verifier.SetTrustSource(nil);
    end;
  finally
    TrustSource.Free;
  end;
end;

SetTrustSource

يخزن GetTrustAnchors(VerificationTime, Certificates) مرجعًا غير مالك، فعلى المصدر أن يبقى حيًا حتى يُفصَل أو يُتلف المتحقق تُعد EvaluateCertificateChain(Certificates, VerificationTime, Report) وTPDFlibSignatureQualificationReport خطافي الاستدعاء اللذين يستدعيهما المتحقق على المصدر: الأول يرجع نقاط الثقة مرمّزة بـ DER للخدمات الموثوقة في الوقت المطلوب، والثاني يصنف سلسلة متحققًا منها إلى

يجمع المدقق مراسي المصدر مع أي مراسي مخصصة يدوية في محرك سلسلة حصري واحد ويخزن ذاك المحرك حسب مراجعة المصدر وتوقيت التحقق

عندما يسند مصدر ولا يزود هو ولا المجموعة اليدوية مرساة يفشل التحقق إغلاقًا بدل اللجوء إلى جذور نظام Windows

تقرير التأهيل

يعيد TPDFlibSignatureChainReport.QualificationReport تقرير TPDFlibSignatureQualificationReport بعد تقييم سلسلة صالحة

يحدد التقرير نطاق خدمة الاعتماد واسمها ونوعها وحالتها وتوقيت بدء حالتها والمؤهلات المطبقة وغرض الشهادة وحالة التأهيل وحالة جهاز إنشاء التوقيع المؤهل

تميز قيم الحالة بين غير مقيم وغير منطبق وغير مؤهل وشهادة مؤهلة وتوقيع إلكتروني مؤهل وختم إلكتروني مؤهل، مع صيغ QSCD منفصلة

انظر أيضًا

TPDFlibSignatureVerifier