📜 ⬆️ ⬇️

Cryptographic solutions. From crypto providers to browser plug-ins

Manufacturers of cryptographic information protection (CIPS) offer various mechanisms for integrating cryptographic tools into information systems. There are solutions focused on supporting systems with a Web interface, mobile and desktop applications, server components. SKZI are integrated into Microsoft applications and into Open Source products, provide support for various application protocols and electronic signature formats.

Given the growing number of projects using EDS and the emergence of mass projects for individuals, developers of such projects need to be well-versed in the EDS solutions offered by manufacturers in order to make the system user-friendly and inexpensive in terms of technical support. Thus, even 5 years ago, the main factor in choosing a cryptographic tool was its full compliance with the requirements of regulators, with today's diversity, important criteria may include coverage of supported platforms, the ability to integrate with a browser, support for mobile users, the ability to install without system administrator rights, etc. .

This material attempts to classify the means of cryptographic protection of information.

The classification is based on:

In addition, it shows how to integrate SKZI with Web-based applications and the possibility of its use on mobile platforms
')
The general classification scheme is shown in the table:
Crypto ProvidersNative libraries (openssl-style, PKCS # 11, NSS, own interfaces)Local proxiesBrowser PluginsCloud signatureBrowsers with Russian cryptography
Email clients with Russian cryptographyRussian cryptography in frameworks, platforms, interpretersDesktop cryptographic applicationsBIOS cryptography UEFIEDS service providersTrusted Environment Emulators
Hardware

In the first article we will look at solutions, starting from crypto-providers through browser plug-ins inclusive. In subsequent articles will be considered the remaining funds.



Crypto Providers



The de facto industry standard is the class of cryptographic agents known as crypto-providers. A cryptographic provider is a library providing a special API and specially registered in the OS, which allows you to expand the list of cryptoalgorithms supported in the OS.

It should be noted that the imperfection of the extension mechanisms offered by MS Windows forces crypto-provider developers to further modify high-level crypto libraries and MS Windows applications in the process of their execution in order to “teach” them to use Russian cryptoalgorithms.

It should be understood that not all single types of SKZI implement the full scope of functionality shown in the tables. To clarify the capabilities of the crypto tools, please contact the manufacturer.



SpecificationMicrosoft CSP, Microsoft CNG, CryptoAPI 1.0 -> CryptoAPI 2.0
PlatformsWindows family. There is a port on GNU \ Linux, OS X, iOS, Android
Algorithms and cryptographic protocolsEDS, encryption, hash function, imitation protection, HMAC, VKO;
TLS, EAP-TLS, Kerberos
PKI IntegrationX.509, PKCS # 10, CMS, CRL, OCSP, TSP
EDS mechanismsNative program interface, C-style;
Embedding in applications
Authentication mechanismsClient authentication within TLS.
KERBEROS authentication in the Windows domain.
Own authentication mechanisms based on random data EDS
TLS Guest Accommodation MechanismsEmbedding in system TLS
Application Protocol SupportHTTPS, SMTPS, IMAPS, POP3S, RDP, NNTPS, FTPS, LDAPS
Secure Message FormatsPKCS # 7, CMS, XMLSec, S / MIME;
CADES (CryptoPro EDS), PDF signature (CryptoPro PDF), MS Office Signature (CryptoPro Office Signature)
Browser IntegrationEDS in IE via ActiveX CAPICOM, PKCS # 10 via ActiveX XEnroll / CertEnrool
TLS in IE through embedding in SSPI-provider
EDS in various browsers through proprietary plug-ins (CryptoPro Pro EDS Browser Plugin)
TLS proxy (CryptoPro sTunnel)
Custom browsers (CryptoPro Fox, Digital Design Protected Browser)
Directory Service IntegrationMS Active Directory; client part with arbitrary LDAP directory
Mobile platformsPort CryptoPro CSP on iOS, Android
Commandline utilitythere is
KeystoresRegistry, USB Tokens
Interacting with USB tokensKeys and Certificates Store
Use of hardware implementation of algorithms
Via PKCS # 11, PC / SC, APDU
ApplicationsIE, Microsoft Office, Microsoft Outlook Express, Microsoft Outlook, Microsoft Word / Excel, Microsoft Authenticode, Microsoft RDP, Microsoft Certification Authority, Microsoft IIS, Microsoft Exchange, Microsoft Terminal Server, Winlogon, Microsoft EFC
Proprietary applications
Open source software (sTunnel, FireFox, Apache via Trusted TLS, patch for OpenVPN)
Adobe Reader
SAP
Framework IntegrationMicrosoft .NET (CryptoPro .NET)
InstallationSetup program requires system administrator rights
Examples (GOST)CryptoPro CSP
ViPNet CSP
Signal-COM CSP
Lissy CSP
CryptoPro Rutoken CSP
Validata CSP

Problems:

Pros:


Native Libraries



Openssl-style



The Open Source library OpenSSL has broad cryptographic capabilities and a convenient mechanism for its expansion with other cryptoalgorithms. OpenSSL is the main crypto core for a wide range of open source applications.

After GOSTs were added to this library by Cryptocom, patches appeared for the "hotelization" of many popular applications using OpenSSL. On the basis of OpenSSL, some vendors have developed and certified SKPI, in addition to the number of products OpenSSL is "implicit" way.



SpecificationThe OpenSSL API is one of the de facto standards for open source software.
PlatformsWindows family, GNU \ Linux, OS X, iOS, Android
Algorithms and cryptographic protocolsEDS, encryption, hash function, imitation protection, HMAC, VKO;
Tls
PKI IntegrationX.509, PKCS # 10, CMS, CRL, OCSP, TSP
EDS mechanismsNative program interface, C-style;
Authentication mechanismsclient authentication within TLS
own mechanisms based on e-signature of random data
TLS Guest Accommodation MechanismsTLS with Russian cryptography is supported in the library (in the case of using OpenSSL as a browser crypto engine)
OpenSSL-based TLS proxy (for example, sTunnel)
Secure Message FormatsPKCS # 7, CMS, XMLSec (when used with the library www.aleksey.com/xmlsec , including GOST), S / MIME
Browser IntegrationThrough TLS-proxy
Through proprietary plugins
In Chromium OpenSSL one of the possible crypto engines
Directory Service IntegrationOpenldap
Mobile platformsiOS, Android
Commandline utilitythere is
KeystoresFiles, USB tokens
Interacting with USB tokensKeys and Certificates Store
Use of hardware implementation of algorithms
Via PKCS # 11
ApplicationsOpenVPN, Apache, sTunnel, Nginx, Postgre SQL, postfix, dovecot
Proprietary applications
Framework IntegrationOpenSSL is integrated into a large number of frameworks (PHP, Python, .NET, etc.), but there is no GOST. Required to release patches to frameworks
InstallationThe installer, in general, does not require system administrator rights
Copying
Starting using cryptographic applications from a USB flash token
Examples (GOST)MagPro CryptoPack
LearSL
OpenSSL (non-graded)
OpenSSL + engine PKCS11_GOST + Rutoken EDS

Problems:

Pros:


PKCS # 11



The PKCS # 11 library provides a universal cross-platform software interface to USB tokens and smart cards.

Functions are divided into:

Thus, the PKCS # 11 standard supports a full set of cryptographic primitives suitable for implementing cryptographic formats (PKCS # 7 / CMS / CADES, PKCS # 10, X.509, etc.) and protocols (TLS, IPSEC, openvpn, etc.).

To ensure speed, a part of crypto-primitives can be implemented in software.

In the PKCS # 11 standard, starting from version 2.30, GOST R 34.10-2001, GOST R 34.11-94, GOST 28147-89 are supported.

Using the library PKCS # 11 ensures software compatibility of various vendors when working with tokens. Through PKCS # 11 interface, applications written on the basis of CryptoAPI, NSS, OpenSSL can work.

An example of application compatibility is shown in the diagram. Thus, it is possible to use a suitable application in the appropriate place of the information system.



PKCS # 11 are also without the support of hardware devices with software implementation of cryptoalgorithms and storage of objects in the file system.

Examples - PKCS # 11 integrated into NSS (Mozilla), aToken project, Agave-Pro library.

The company Crypto-Pro has a library PKCS # 11, implemented on the basis of MS CryptoAPI:



There are PKCS # 11 libraries for mobile platforms. An example of such a library is the library for Rutoken EDS Bluetooth, which allows you to use your device on iOS and Android.

NSS



NSS is a Mozilla community cryptographic library. NSS is used by applications such as the Mozilla Firefox browser, the Mozilla Thunderbird email client.

Currently there are two projects on the "hotelization" of the NSS:



Libraries with own interface



Proprietary libraries provide their own API for embedding into applications. You can add to this list:


Local proxies



The basic principle of the local proxy is to accept an unprotected connection from the application, set up a TLS tunnel with a remote server, and transfer the “application layer” between the application and the remote server through this tunnel.

In addition, some local proxies are additionally complemented with a special digital signature mechanism of specially marked WEB forms (Inter-PRO, MagPro Crypto Tunnel). There are local proxies that provide the WEB API of the digital signature for the browser (a system of HTTP requests and responses similar to the software API of the crypto library).



Specification-
PlatformsWindows family, GNU \ Linux, OS X. Based on the ACT of iOS, Android
Algorithms and cryptographic protocolsEDS, encryption, hash function, imitation protection, HMAC, VKO;
Tls
PKI IntegrationX.509, PKCS # 10, CMS, CRL, OCSP, TSP
EDS mechanismsSigned WEB-forms when passing traffic
WEB API
Authentication mechanismsclient authentication within TLS
TLS Guest Accommodation MechanismsThrough the proxying mechanism
Secure Message FormatsPKCS # 7, CMS
Browser IntegrationThrough the proxying mechanism
Mobile platformsiiOS, Android based on open source software sTunnel
KeystoresRegistry, files, USB tokens
Interacting with USB tokensKeys and Certificates Store
Use of hardware implementation of algorithms
Via PKCS # 11, PC / SC, APDU
ApplicationsBrowsers
WEB server
RDP
Mail clients and servers
InstallationThe installer, in general, does not require system administrator rights
Copy, Run
Run from USB flash token
Examples (GOST)MagPro Crypto Tunnel
Inter-PRO
VPNKey-TLS
Lirtunnel
CryptoPro sTunnel
sTunnel

Problems:


Pros:


Browser Plugins



In order to call the native library from the WEB-page scripts, most browsers support special extensions - ActiveX for IE and NPAPI-plugin for GH, MF, Opera, Safari, etc. Currently there is a wide range of products related to browser plug-ins on the market . Architecturally, these plug-ins can be executed in different ways. Some of them work on the basis of CryptoAPI and require additional installation of a crypto-provider, others use PKCS # 11-compatible devices as a crypto-core and do not require installation of additional SKZI on the client’s workplace. There are universal plug-ins that support both all main crypto-providers and a wide range of hardware SKZI.

Crossbrowser Plugins





Specification-
PlatformsWindows family, GNU \ Linux, OS X
Algorithms and cryptographic protocolsEDS, encryption, hash function, imitation protection, HMAC
PKI IntegrationX.509, PKCS # 10, CMS, CRL, OCSP (CryptoPro EDS Browser plugin), TSP (CryptoPro Pro EDS Browser plugin)
EDS mechanismsAPI for use in JavaScript
Authentication mechanismsEDS random data
TLS Guest Accommodation Mechanisms-
Secure Message FormatsPKCS # 7, CMS, XMLSec (CryptoPro Pro EDS Browser plugin), CADES (Crypto Pro Pro EDS Browser plugin)
Browser IntegrationActiveX (for IE)
NPAPI
Mobile platformsnot supported
KeystoresRegistry, files, USB tokens
Interacting with USB tokensKeys and Certificates Store
Use of hardware implementation of algorithms
Through PKCS # 11, via CryptoAPI
ApplicationsBrowsers
InstallationThe installer does not require system administrator rights
Examples (GOST)CryptoPro Pro EDS Browser plugin
eSign-PRO
CryptoPlugin Lissi
Public Services Portal Plugin
JC-WebClient
Rutoken Plugin
BSS plugin
CryptoARM Browser plugin

Problems:

Pros:


ActiveX



Microsoft has developed two main client-side ActiveX components that translate CryptoAPI functionality into scripts and into a browser.
To generate a key and create a PKCS # 10 request, the XEnroll / CertEnroll component is used, and the CAPICOM component is used for EDS / encryption and working with certificates.



In the following articles, the remaining solutions will be considered in detail.

Source: https://habr.com/ru/post/241221/


All Articles