לקוחות מתלוננים לעתים קרובות: "מערכת ה-EDI שלנו לא עובדת עם QES בדפדפן." הבעיה אופיינית — גישה מיושנת דרך תוספים של ActiveX או NPAPI שאינם נתמכים על ידי דפדפנים מודרניים. פתרנו את זה עשרות פעמים. איך לשלב QES לפי החוק הפדרלי 63-FZ ללא כאב ראש — נפרק את זה באופן מעשי.
QES הוא הסוג היחיד של חתימה אלקטרונית השקולה לחתימה בכתב יד. לפי משרד הפיתוח הדיגיטלי, למעלה מ-70% מהחברות הרוסיות כבר משתמשות ב-QES בזרימת מסמכים ארגונית, בדיווחי מס או בעסקאות נדל"ן. כלים קריפטוגרפיים מוסמכים (CSP) כמו CryptoPro CSP או VipNet CSP ותעודה מוסמכת מרשות אישורים מוסמכת הם רכיבים חובה לחתימה בעלת תוקף משפטי. ללא QES, אי אפשר להגיש דוחות ל-Rosreestr או לחתום על חוזה עם צד שכנגד. זמן יישום אופייני הוא 14 יום, וחיסכון בעלויות עסקאות מגיע ל-40%. מאמר זה הוא ניסיון יישום מעשי, מבחירת ארכיטקטורה ועד פריסה.
איך לבחור שיטת שילוב QES: תוסף או ענן?
שתי גישות עיקריות: התקנת CryptoPro Browser Plugin על כל מחשב או QES בענן דרך DSS. נשווה ביניהן.
| מאפיין | תוסף (CryptoPro) | QES בענן (DSS) |
|---|---|---|
| התקנת CSP | נדרשת על כל מחשב | לא נדרשת |
| תמיכה בדפדפנים | רק Chromium, Firefox (NPAPI) | כל דפדפן מודרני |
| רוחב פלטפורמות | Windows בלבד | כל מערכות ההפעלה |
| זמן יישום | 7–10 ימים | 7–10 ימים |
| עלות עסקה | נמוכה | גבוהה יותר (SMS/טוקן) |
| אבטחה | מפתח על מכשיר המשתמש | מפתח ב-HSM של הספק |
מה לעשות אם הדפדפן לא תומך ב-ActiveX?
דפדפנים מודרניים (Chrome, Edge, Yandex) חוסמים תוספי NPAPI. הפתרון האמין היחיד הוא QES בענן דרך DSS או CryptoPro CSP Web (תמיכה ב-Chromium דרך Chrome Extension). בפועל, אנו ממליצים על QES בענן כאופציה עמידה לעתיד. זה לא דורש התקנת CSP על המחשב של המשתמש ועובד על כל מכשיר.
למה QES בענן מחליף תוספים?
לפי הנתונים שלנו, בתקופה האחרונה יותר מ-80% מהפרויקטים החדשים בוחרים ב-QES בענן. הסיבות ברורות: אין צורך לתחזק טכנולוגיות מיושנות, משתמשים חותמים על מסמכים מכל מכשיר. יישמנו CryptoPro DSS על 6 פרויקטים — ללא תקלות בחצי שנה. יתרה מכך, QES בענן מיושם פי 2 מהר יותר מאשר מבוסס תוסף ומפחית עלויות תמיכה ב-40% בשל היעדר התקנת CSP על כל מחשב.
מחסנית טכנית
CryptoPro CSP הוא ה-CSP הנפוץ ביותר ברוסיה. הוא מותקן על המחשב של המשתמש. לפעולה בדפדפן, נעשה שימוש ב-CryptoPro EDS Browser Plugin (רכיב NPAPI/COM) או CryptoPro CSP Web.
חלופות:
- Rutoken EDS — טוקן עם קריפטוגרפיה מובנית של GOST, תוסף Rutoken Web
- VipNet CSP — CSP חלופי
- CryptoARM GOST — יישום שולחני עם API
עבור SaaS ללא דרישת התקנת CSP — QES בענן דרך DSS (Directory Services of Signing): המשתמש מקבל אישור SMS, החתימה נוצרת על השרת בסביבה מהימנה. ספקים: CryptoPro DSS, Kontur.Crypto, Trusted Environment.
ארכיטקטורת חתימה דרך CryptoPro Browser Plugin
// Проверка наличия плагина async function checkCryptoProPlugin() { try { const plugin = await cadesplugin; return true; } catch (e) { return false; } } // Получение списка сертификатов пользователя async function getUserCertificates() { const plugin = await cadesplugin; const store = await plugin.CreateObjectAsync('CAdESCOM.Store'); await store.Open( plugin.CADESCOM_CONTAINER_STORE, plugin.CAPICOM_MY_STORE, plugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED ); const certs = await store.Certificates; const validCerts = await certs.Find(plugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID); const result = []; for (let i = 1; i <= await validCerts.Count; i++) { const cert = await validCerts.Item(i); const subjectName = await cert.SubjectName; const validTo = await cert.ValidToDate; result.push({ index: i, subjectName, validTo, cert }); } await store.Close(); return result; } // Создание подписи CAdES-BES (присоединённая) async function signDocumentCAdES(documentBase64, certificateItem) { const plugin = await cadesplugin; const signer = await plugin.CreateObjectAsync('CAdESCOM.CPSigner'); await signer.propset_Certificate(certificateItem.cert); await signer.propset_CheckCertificate(true); const signedData = await plugin.CreateObjectAsync('CAdESCOM.CadesSignedData'); await signedData.propset_ContentEncoding(plugin.CADESCOM_BASE64_TO_BINARY); await signedData.propset_Content(documentBase64); const signature = await signedData.SignCades( signer, plugin.CADESCOM_CADES_BES, true ); return signature; } פורמטי חתימה
| פורמט | תיאור | מקרי שימוש |
|---|---|---|
| CAdES-BES | בסיסי, ללא חותמת זמן | רוב המסמכים |
| CAdES-T | + חותמת זמן | כאשר נדרשת חותמת זמן |
| CAdES-XL | + בדיקת ביטול תעודה | אחסון ארכיוני |
| XAdES | מסמכי XML | EDI, רשויות מס |
| PAdES | חתימת PDF לפי ETSI |
QES בענן דרך CryptoPro DSS
לא נדרשת התקנת CSP על המחשב של המשתמש:
// Инициализация подписания через DSS API async function initDssSignature(documentHash, userPhone) { const response = await fetch('https://dss.cryptopro.ru/SignServer/rest/api/CreateTransactionHash', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.DSS_ACCESS_TOKEN}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ Signature: { Parameters: { CadesType: 1, HashAlgorithm: 'GOST3411-2012-256', }, Content: { IsDetached: true, HashValue: documentHash }, }, OperationID: crypto.randomUUID(), }), }); const { TransactionID } = await response.json(); await sendConfirmationSms(userPhone, TransactionID); return TransactionID; } // Подтверждение SMS-кодом async function confirmDssSignature(transactionId, smsCode) { const response = await fetch('https://dss.cryptopro.ru/SignServer/rest/api/ConfirmSignature', { method: 'POST', body: JSON.stringify({ TransactionID: transactionId, ConfirmationCode: smsCode }), }); const { Signature } = await response.json(); return Signature; } אימות חתימה
דוגמה לאימות חתימה (CAdES-BES)
async function verifySignature(documentBytes, signatureBase64) { const plugin = await cadesplugin; const signedData = await plugin.CreateObjectAsync('CAdESCOM.CadesSignedData'); await signedData.propset_ContentEncoding(plugin.CADESCOM_BASE64_TO_BINARY); await signedData.propset_Content(Buffer.from(documentBytes).toString('base64')); await signedData.VerifyCades(signatureBase64, plugin.CADESCOM_CADES_BES, true); const signers = await signedData.Signers; const signer = await signers.Item(1); const cert = await signer.Certificate; const certInfo = await cert.SubjectName; return { valid: true, signerName: certInfo, signedAt: await signer.SigningTime, }; } דרישות חוקיות
- התעודה חייבת להיות מונפקת על ידי רשות אישורים מוסמכת (רישום באתר משרד הפיתוח הדיגיטלי)
- ה-CSP חייב להיות מוסמך על ידי ה-FSB (החוק הפדרלי מס' 63-FZ "על חתימה אלקטרונית")
- דרישות נוספות לעסקאות נדל"ן, פעולות נוטריוניות
- אחסון מסמכים החתומים ב-QES — לפחות תקופת ההתיישנות (3–10 שנים)
מה כלול בשילוב QES
- ביקורת על תוכנית זרימת המסמכים האלקטרונית הנוכחית
- בחירת השיטה המתאימה: תוסף, ענן או משולב
- פיתוח ממשק משתמש לבחירת תעודה והצגת חתימה
- שילוב עם CryptoPro Browser Plugin או DSS API
- בדיקות על כל הדפדפנים היעדיים (Chrome, Yandex, Firefox, Safari)
- הדרכת משתמשים ותיעוד
- תמיכה טכנית לאחר ההשקה
לוח זמנים
שילוב עם CryptoPro Browser Plugin: ממשק משתמש, רשימת תעודות, חתימת CAdES-BES — 7–10 ימים. QES בענן דרך CryptoPro DSS עם אישור SMS — 7–10 ימים. אימות חתימה עם בדיקת תעודה — 3–5 ימים. פרויקט מלא במפתח פתוח — מ-14 ימי עסקים. ב-90% מהמקרים, אנו עומדים בלוח הזמנים של 14 יום.
בקשו הדגמה של QES על הפרויקט שלכם — קבלו ייעוץ מהנדס. קבלו ייעוץ — נבחר את הפתרון האופטימלי לעסק שלכם ונכין הצעה מסחרית.







