Key Store (Firma Digital)

La característica de Firma Digital agrega capacidades de firma de PDF a la plataforma LogicalDOC. También proporciona la generación de certificados de usuario, que son necesarios para la firma de documentos.

LogicalDOC permite a los usuarios de:

  • descargar el PDF para previsualizar,
  • descargar el certificado raíz para instalarlo en su visor de PDF para verificar cualquier certificado futuro,
  • navegar hasta la generación de certificados,
  • firmar el PDF,
  • ver los certificados existentes sin abrir el PDF firmado.

Conceptos

Principios

  • Se firman documentos para protegerlos de la modificación, especialmente en las etapas críticas de su ciclo de vida.
  • La certificación de documentos y usuarios en el LogicalDOC sigue los principios de criptografía asimétrica, PKI y los estándares X.509.
  • Para firmar un documento, un usuario necesita un certificado personal.
  • Cada usuario puede crear su propio certificado.
  • Los certificados son emitidos por las Autoridades de Certificado (CAs).

¿Que es una firma digital?

Las firmas digitales identifican de forma única al firmante del documento. Proporcionan una funcionalidad similar a las firmas manuscritas en papel y son una alternativa conveniente para firmar y escanear documentos cuando se requiere una versión digital de un documento. Las firmas digitales tienen por objeto asegurar la autenticidad y la integridad de los documentos, es decir, verificar que el originador o firmante del documento es quien ellos dicen ser y asegurarse de que un documento no ha sido manipulado entre el momento de la firma y el posterior visita.

¿Qué es un certificado digital?

Antes de firmar un documento, necesita un certificado digital. Los certificados se adjuntan a los documentos para verificar la identidad del firmante, es decir, comprobar que la persona que firma el mensaje es quien afirma ser. Los certificados son emitidos por las Autoridades de Certificación (CA, también conocido como Emisor). Para verificar que un certificado no ha sido manipulado, debe validarse contra la clave pública de la entidad emisora de certificados. Si se pasa esta verificación significa que la CA certifica la autenticidad del firmante. Los certificados digitales se formatean utilizando estándares PKI, el más común de ellos es X.509, que también se utiliza en LogicalDOC.

Autoridades de certificados locales y root

Autoridad de certificación Root

Los certificados de nivel más alto son creados por las Autoridades de Certificado root (CA) que se supone que son de confianza pública. Ninguna autoridad superior puede certificar los certificados root: éstos son los certificados de nivel superior. Puede ver ejemplos de los que se encuentran en su navegador, en la sección de autoridades de certificación / CA.

Éstos son algunos de los más populares:

  • Equifax Secure CA,
  • VeriSign Clase 3 Autoridad de Certificación Pública Primaria,
  • Visa eCommerce Root,
  • Deutsche Telekom Root CA 2.

Los certificados de nivel más alto son creados por las Autoridades de Certificado root (CA) que se supone que son de confianza pública. Ninguna autoridad superior puede certificar los certificados root: éstos son los certificados de nivel superior.

Autoridad de certificación local

Su autoridad de certificación local (CA) se utilizará para firmar certificados de usuario. El certificado de la CA local puede ser firmado por una autoridad de certificación de nivel superior o auto-firmado. Se puede crear un certificado de CA local dentro de su instancia LogicalDOC.

Advertencia

Incluso si LogicalDOC puede crear una CA local para usted, se pretende que sea sólo un ejemplo de certificado que se utilizará para las pruebas de configuración inicial y no debería utilizarse para firmar documentos de producción.

 

Cadenas de Certificación

Ahora consideremos las siguientes relaciones:

  • La firma del documento incluye => el certificado del firmante (certificado de usuario).
  • El certificado de usuario se firmó con => su certificado CA local.
  • El certificado de CA local fue firmado por => un certificado de CA de nivel superior.
  • El certificado de CA de nivel superior fue firmado por => un certificado CA aún más alto (... y así sucesivamente ... ... y luego, finalmente).
  • Un certificado de CA de nivel muy alto fue firmado por => el certificado de CA root.
  • El certificado de CA root cierra la cadena que conduce al certificado del usuario.

Ahora, en lugar de verificar todos los certificados intermedios, basta con que su visor de PDF tenga la Autoridad de Certificado root verificada por usted, a través de la secuencia de CA intermediarias.

Los certificados root normalmente ya están presentes en los visores y navegadores populares de PDF y, si no, pueden actualizarse automáticamente siempre que el software se haya configurado correctamente.

CA-Signing vs Self-Signing

Si el certificado de CA local fue firmado por una autoridad de certificación, los usuarios normalmente no tienen que instalar el certificado de su empresa en sus navegadores para verificar los documentos firmados.

Por otra parte, si su CA local se firmó automáticamente, el certificado de CA debe instalarse manualmente en el visor de PDF antes de verificar las firmas. Esto solo se debe hacer una vez por programa de visualización de PDF.

Configurar el Key Store

LogicalDOC gestiona un almacén de claves Java para cada tenant y lo utiliza para mantener todos los certificados.

Configuración del certificado Root local

Entrar en la sección Administración> Ajustes > Key Store

Aquí ponga:

  • el alias para el certificado root (digamos root)
  • una contraseña para proteger todo el almacén de claves
  • información sobre su organización

Compruebe que las rutas de los comandos externos Keytool y OpenSSL sean correctas y presione el botón Generar nuevo Key Store.

Configuración de un certificado CA de una autoridad de terceros

Para esta tarea necesitará el siguiente software:

  • keytool: el keytool viene con su instalación de JDK (Java Development Kit)
  • openssl: Open SSL

1. Cree un par de claves (con alias root en este ejemplo).

keytool -genkey -keyalg RSA -alias root -keypass password -validity 365 -keysize 1024 -dname "cn=PDF-CA, ou=Headquarters, o=Example Organization, c=US" -keystore pdfca-keystore.jks

Esto crea un par de claves (clave pública y privada) y lo auto-firma automáticamente.

2. Cree una solicitud de firma de certificado (CSR).

keytool -keystore pdfca-keystore.jks -storepass aaaaaa -alias alternatekey -keypass password -certreq -file pdfca.csr

3. Envíe el CSR a una Autoridad Certificada de terceros bien conocida de su elección para firmarla.

4. Cuando reciba el certificado firmado pdfca.crt, importelo en su almacén de claves usando un nuevo alias nuevo (root en este ejemplo).

keytool -import -trustcacerts -alias root -file pdfca.crt -keystore pdfca-keystore.jks

Advertencia

Siga la guía proporcionada por su CA para saber exactamente cómo instalar sus certificados en un key store Java

5. Ahora puede importar el key store haciendo clic en Importar, por favor, coloque en Alias CA local el mismo alias utilizado en el key store para que LogicalDOC pueda encontrar su certificado

Personalización

Opcionalmente puede eligir que la firma sea visible como un sello en el documento.

Si se selecciona la opción Visual, se mostrará el nombre del usuario que firmó el archivo en la primera página del documento y éstos son los valores que se pueden definir para la firma:

  • Opacidad: 100 significa totalmente opaco, 0 significa totalmente transparente
  • Tamaño de letra: tamaño de fuente
  • Color: color del texto
  • Expr. X: expresión que define la coordenada horizontal, puede utilizar variables que se calcularán dinámicamente
  • Expr. Y: expresión que define la coordenada vertical, puede utilizar variables que se calcularán dinámicamente
  • Anchura: dimensión de la firma

Variables para Expr. X, Expr. Y y Anchura

  • PAGE_WIDTH
  • PAGE_HEIGHT
  • PAGE_CENTER
  • PAGE_MIDDLE

Para hacer referencia a una variable, simplemente coloque el signo de dólar seguido por el nombre de la variable, para centrar la firma que podría escribir asì:

Expr. X: $PAGE_CENTER
Expr. Y: $PAGE_TOP + 5