Błąd NaskDesk przy podpisywaniu dokumentów Simplysign

Mam specyficzny problem z podpisem elektronicznym SimplySign w EZD RP (obecnie 21.28.8 (B) ale występował już wcześniej). Dotyczy to jak na razie tylko jednego użytkownika (dyrektor, wiec zrozumcie powagę sytuacji…).

NaskDesk w wersji 1.0.1.29, obecnie 2.0.2.36

Proces: podpisywanie dokumentów podpisem elektronicznym.

Użytkownik otwiera dostarczony obiekt, zaznacza plik pdf (najczęściej podpisany już na poprzednik kroku obiegu), klika podpisz (Xades). Powtarza operację dla kolejnego obiektu. Po kilku podpisach (bliżej niesprecyzowana liczba - 7, 10, różnie) nagle EZD wyrzuca alert na czerwono z błędem. Żadnego dokumentu nie można podpisać. W większości przypadków wystarczy wyłączyć i uruchomić ponownie samą wtyczkę; rzadko, ale zdarzyła się potrzeba zrestartowania komputera.

Co najlepsze (i już zupełnie nie śmieszne) problem powrócił po wymianie komputera na nowy i skonfigurowaniu całego środowiska od podstaw - świeży W11, nowa instalacja podpisu, skonfigurowanie certyfikatu w EZD.

Przeprowadziliśmy wewnętrzne testy “masowego” podpisywania dokumentów. Ani w przypadku podpisów jednego za drugim, ani po zaznaczeniu kilku plików i równoczesnym podpisaniu 1-click nie udało nam się tego błędu odwzorować. A dzisiaj znowu już miałem interwencję u dyrekcji :confused:

W logach mam:

============================================================

IDLOG
e1334ab1-7b23-4063-ad00-21dfc58b790f

NAZWA
NASK.Desk.Modules.EzdRpModule.Logic.Core.CoreThread

DANE
"Wystąpił nieoczekiwany błąd przy próbie podpisania dokumentów: "“System.DllNotFoundException: Unable to load DLL ‘SecureBlackbox_PKCS11Proxy’ or one of its dependencies: Nie można odnaleźć określonego modułu. (0x8007007E)
at SBPKCS11Base.__Global.LoadExternalModule(String ModuleName, Int64& ExtHandle, IntPtr pPars, UInt32 cbPars, Int32& Alignment, Int32& PointerSize, Int32& LongIntSize)
at SBPKCS11Base.TElPKCS11ModuleList.LoadModule(String ModuleName, TSBPKCS11ProcAccess ProcAccess, Boolean TrySingleThreadedMode, Boolean AutoRefreshSlotInfo, Boolean PreserveSettingsIfExists, Boolean OnDemandMode, TElPKCS11NSSParams NSSParams, Boolean NoImplicitSlotInfoUpdates, Int32 PlatformPointerSize, Int32 PlatformLongIntSize, Int32 PlatformAlignment, Boolean AutoDetectStructAlignment)
at SBPKCS11CertStorage.TElPKCS11CertStorage.Open()
at NASK.Desk.Modules.EzdRpModule.Podpis.Storages.Sb16Pkcs11CertificateStorage.Open(String driver, Pkcs11Settings settings) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\Storages\Sb16Pkcs11CertificateStorage.cs:line 31
at NASK.Desk.Modules.EzdRpModule.Podpis.CertificateProviders.Pkcs11CertificateProvider1.FindUsingDriver(String serialNumber, String driver, Pkcs11Settings settings) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\CertificateProviders\Pkcs11CertificateProvider.cs:line 68 at NASK.Desk.Modules.EzdRpModule.Podpis.CertificateProviders.Pkcs11CertificateProvider1.FindAsync(String serialNumber, SignaturesSettings settings) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\CertificateProviders\Pkcs11CertificateProvider.cs:line 40
at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.ZnajdzCertyfikat(CacheSesjiPodpisu1 sesjaPodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 137
at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.ZnajdzCertyfikatIPodpiszDokumenty(CacheSesjiPodpisu1 sesjaPodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 122
at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.WybierzStandardIIPodpiszDokumenty(CacheSesjiPodpisu1 sesjaPodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 115
at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.SignFilesAsync(ArgumentyStartuResponse argumentyStartu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 62 at NASK.Desk.Modules.EzdRpModule.Logic.Core.CoreThread.PodpiszPliki(ArgumentyStartuResponse startArgs) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Logic\Core\CoreThread.cs:line 322"" System.DllNotFoundException: Unable to load DLL 'SecureBlackbox_PKCS11Proxy' or one of its dependencies: Nie można odnaleźć określonego modułu. (0x8007007E) at SBPKCS11Base.__Global.LoadExternalModule(String ModuleName, Int64& ExtHandle, IntPtr pPars, UInt32 cbPars, Int32& Alignment, Int32& PointerSize, Int32& LongIntSize) at SBPKCS11Base.TElPKCS11ModuleList.LoadModule(String ModuleName, TSBPKCS11ProcAccess ProcAccess, Boolean TrySingleThreadedMode, Boolean AutoRefreshSlotInfo, Boolean PreserveSettingsIfExists, Boolean OnDemandMode, TElPKCS11NSSParams NSSParams, Boolean NoImplicitSlotInfoUpdates, Int32 PlatformPointerSize, Int32 PlatformLongIntSize, Int32 PlatformAlignment, Boolean AutoDetectStructAlignment) at SBPKCS11CertStorage.TElPKCS11CertStorage.Open() at NASK.Desk.Modules.EzdRpModule.Podpis.Storages.Sb16Pkcs11CertificateStorage.Open(String driver, Pkcs11Settings settings) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\Storages\Sb16Pkcs11CertificateStorage.cs:line 31 at NASK.Desk.Modules.EzdRpModule.Podpis.CertificateProviders.Pkcs11CertificateProvider1.FindUsingDriver(String serialNumber, String driver, Pkcs11Settings settings) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\CertificateProviders\Pkcs11CertificateProvider.cs:line 68
at NASK.Desk.Modules.EzdRpModule.Podpis.CertificateProviders.Pkcs11CertificateProvider1.FindAsync(String serialNumber, SignaturesSettings settings) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\CertificateProviders\Pkcs11CertificateProvider.cs:line 40 at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.ZnajdzCertyfikat(CacheSesjiPodpisu1 sesjaPodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 137 at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.ZnajdzCertyfikatIPodpiszDokumenty(CacheSesjiPodpisu1 sesjaPodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 122 at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.WybierzStandardIIPodpiszDokumenty(CacheSesjiPodpisu1 sesjaPodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 115 at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.SignFilesAsync(ArgumentyStartuResponse argumentyStartu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 62
at NASK.Desk.Modules.EzdRpModule.Logic.Core.CoreThread.PodpiszPliki(ArgumentyStartuResponse startArgs) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Logic\Core\CoreThread.cs:line 322”

POZIOM
error

===========================================================

IDLOG
37ab5247-b783-4903-b293-7aab34711043

NAZWA
NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager`1[[SBX509Ex.TElX509CertificateEx, SecureBlackbox.PKI, Version=16.0.329.0, Culture=neutral, PublicKeyToken=04c62c6da1fdd7ac]]

DANE
"WyszukajCertyfikatIPodpiszDokumenty: podpisywanie certyfikatem nieudane ““SBCryptoProvWin32.EElWin32CryptoProviderError: Signing failed: Win32 error: 2148073504
at SBCryptoProvWin32.TElWin32CryptoProvider.SignFinal(TElCustomCryptoContext Context, Byte& Buffer, Int32 StartIndex, Int32& Size, TElCPParameters Params, TSBProgressFunc ProgressFunc, Object ProgressData)
at SBPublicKeyCrypto.TElRSAPublicKeyCrypto.SignFinal()
at SBPublicKeyCrypto.TElPublicKeyCrypto.InternalSignDetached()
at SBPublicKeyCrypto.TElPublicKeyCrypto.SignDetached(Byte InBuffer, Int32 InIndex, Int32 InSize, Byte& OutBuffer, Int32 OutIndex, Int32& OutSize)
at SBXMLSig.TElXMLSigner.SignRSA(Byte Buf, TElRSAKeyMaterial KeyMaterial, Int16 AMethod)
at SBXMLSig.TElXMLSigner.CalculateSignatureValue(Byte Buf)
at SBXMLSig.TElXMLSigner.Save(TElXMLDOMNode& Node)
at SBXMLSig.TElXMLSigner.SaveDetached()
at NASK.Desk.Modules.EzdRpModule.Podpis.Signers.XadesSb16Signer.GenerateDetachedSignature(Byte file, TElX509CertificateEx certificate, TElXMLSigner signer, String fileName) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\Signers\XadesSb16Signer.cs:line 217
at NASK.Desk.Modules.EzdRpModule.Podpis.Signers.XadesSb16Signer.SignWithProperMethod(Byte file, String fileName, TElX509CertificateEx certificate, DanePodpisu danePodpisu, TElXMLSigner signer, TElXMLDOMDocument xmlDocument) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\Signers\XadesSb16Signer.cs:line 67
at NASK.Desk.Modules.EzdRpModule.Podpis.Signers.XadesSb16Signer.SignAsync(Byte file, String fileName, TElX509CertificateEx certificate, DanePodpisu danePodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\Signers\XadesSb16Signer.cs:line 35
at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.PodpiszDokument(CacheSesjiPodpisu1 sesjaPodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 268
at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.PodpiszDokumentZTokenu(CacheSesjiPodpisu1 sesjaPodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 211
at NASK.Desk.Modules.EzdRpModule.Podpis.SignaturesManager1.SprobujPodpisacDokumentyZTokenow(CacheSesjiPodpisu1 sesjaPodpisu) in C:\BuildAgent\work\91c228f4e030715b\NASK.Desk.Modules.EzdRpModule.Podpis\SignaturesManager.cs:line 159”” "

POZIOM
warning

===============================================================

W razie potrzeby więcej logów mogę wystawić do wglądu.

Pomocy.
Nie mamy żadnego punktu zaczepienia co może być nie tak. Nawet PEBKAC jest już nieoczywisty, bo nie ma tu opcji żeby coś zrobić nie tak.

1 polubienie

Czy nowy komputer to aby HP? Walczę z czymś bardzo podobnym, a może i tym samym po zmianie komputera. Też Certum, ale fizyczny podpis SmartSIgn podpinany pod USB. Wiem, że marka sprzętu raczej nie ma za bardzo znaczenia, ale szukam jakiegokolwiek punku zaczepienia.

Lenovo Thinkpad nówka sztuka :confused:

Wczoraj jeszcze sprawdziłem ustawienia aplikacji Simplysign Desktop i proCertum SmartSign na komputerze czy ma takie samo jak u mnie:
Nie miała. Poustawiałem.
20 min później miałem telefon - znowu przestało działać.

Ustawienia:

Tak jak pisałem - tak mam ustawiony podpis u siebie i w testach przechodzi wszystko - pojedyncze podpisy, kilkanaście podpisów jeden po drugim, masowe zaznaczenie dokumentów i kliknięcie podpisz.

W mojej opinii ustawienia aplikacji zewnętrznej SimplySign nie mają żadnego znaczenia, ponieważ aplikacja podpisująca NaskDesk korzysta bezpośrednio z biblioteki PKCS#11 i stosuje ustawienia wynikające z konfiguracji podpisu bezpośrednio w EZD RP dla konkretnego użytkownika.

Dlaczego przy próbie podpisu NASK Desk wyświetla komunikat o błędzie?

Komunikat o błędzie:

Unable to load DLL 'SecureBlackbox_PKCS11Proxy' or one of its dependencies: Nie można odnaleźć określonego modułu. (0x8007007E)

może wynikać z problemów z czytnikiem kart. W tej sytuacji należy:

  • zweryfikować w Menedżerze urządzeń, czy czytnik kart jest poprawnie rozpoznawany (nie może być opisany jako „czytnik kart microsoft”),
  • w razie potrzeby przeprowadzić reinstalację sterowników czytnika kart,
  • sprawdzić wersję programu proCertum CardManager – wersja 4.xxx (dostosowana do Windows 11) może powodować problemy, dlatego zaleca się zainstalowanie wersji 3.xxx.

Może być prozaiczna przyczyna. Zużyte, zabrudzone styki w czytniku i raz karta jest czytana, a raz nie.

korzystamy z wersji mobilnej - aplikacja pod Windows i apka na telefonie do tokenów :frowning:

Miałem swego czasu coś podobnego, jeśli nawet nie to samo, na podpisach Sigillum i pomogła reinstalacja SigMana (odpowiednik Card Managera) w najnowszej wersji.

Kiedyś miałem nieco inny, aczkolwiek podobny problem. . Taką odpowiedź otrzymałem od supportu:
Dzień dobry,

Panie Janie, proszę odinstalować najnowszą wersję aplikacji proCertum tj. 4.13 i zainstalować wersję 3.7.1.220 dostępną pod linkiem: https://pomoc.certum.pl/pl/oprogramowanie/procertum-cardmanager/

1 polubienie

Parę pięter wyżej :smile:

To tylko przypomnę - w naszym przypadku nie używamy CardManagera. Mamy tylko Siplysign Desktop i proCertum SmartSign.