-¿Te unes?- ㊜Suscribete!!!
Entrada destacada
La era de la firma digital SignaToken
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Registro de Solicitudes de Firma Digital
Solicitud de Firma Digital
3. Envío de datos CPT
4. Entrega de datos CPT
5. Consulta de estado solicitud
6. Envío de certificado firmado
7. Recojo de Certificado (TOKEN / SOFTWARE)
8. Entrega de enlace descarga Certificado (HSM / SOFTWARE)
Que es el CSR?
- El CSR o Certificate Signing Request (Solicitud de Firma de Certificado) es un bloque de texto cifrado que normalmente es
generado en el servidor donde el certificado SSL será utilizado, aunque también puede ser generado externamente.
- El formato de un CSR es el siguiente:
Generación y envío de CSR
Recepción y Verificación CPT
Entregado de certificado
Código fuente Generación CSR
public RespuestaSolicitudCertificadoADSIBDto generarCertificadoPersonaJuridica(SolicitudCertificadoADSIBDto pSolicitud) {
RespuestaSolicitudCertificadoADSIBDto respuesta = new RespuestaSolicitudCertificadoADSIBDto();
respuesta.setOk(false);
try {
Security.addProvider(new BouncyCastleProvider());
X500NameBuilder nameBuilder = new X500NameBuilder();
nameBuilder.addRDN(new ASN1ObjectIdentifier("2.5.4.3"), pSolicitud.getNombres()+" "+pSolicitud.getApPaterno()+" "+pSolicitud.getApMaterno());
nameBuilder.addRDN(new ASN1ObjectIdentifier("1.3.6.1.1.1.1.0"), pSolicitud.getNroDocumento());
nameBuilder.addRDN(new ASN1ObjectIdentifier("2.5.4.10"),pSolicitud.getNombreEntidad());
nameBuilder.addRDN(new ASN1ObjectIdentifier("2.5.4.6"), pSolicitud.getPais());
nameBuilder.addRDN(new ASN1ObjectIdentifier("0.9.2342.19200300.100.1.1"),
(pSolicitud.getComplementoDocumentoIdentidad()==null)?"":pSolicitud.getComplementoDocumentoIdentidad());
nameBuilder.addRDN(new ASN1ObjectIdentifier("1.2.840.113549.1.9.1"), pSolicitud.getCorreoElectronico());
nameBuilder.addRDN(new ASN1ObjectIdentifier("2.5.4.46"), pSolicitud.getTipoDocumento());
nameBuilder.addRDN(new ASN1ObjectIdentifier("2.5.4.5"), (pSolicitud.getNit()==null)?"":pSolicitud.getNit());
nameBuilder.addRDN(new ASN1ObjectIdentifier("2.5.4.11"), pSolicitud.getUnidadOrganizativa());
nameBuilder.addRDN(new ASN1ObjectIdentifier("2.5.4.12"), pSolicitud.getNombreCargo());
X500Name x500Name = nameBuilder.build();
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair pair = keyPairGenerator.genKeyPair();
PrivateKey privateKey = pair.getPrivate();
PKCS10CertificationRequestBuilder p10Builder = new JcaPKCS10CertificationRequestBuilder(x500Name, pair.getPublic());
JcaContentSignerBuilder csBuilder = new JcaContentSignerBuilder("SHA256withRSA");
ContentSigner signer = csBuilder.build(privateKey);
PKCS10CertificationRequest csr = p10Builder.build(signer);
String certificadoGenerado = certificatesToPEMString(csr);
respuesta.setCsr(certificadoGenerado);
String llavePrivada = keyPrivateToPEMString(privateKey);
respuesta.setPrivateKey(llavePrivada);
respuesta.setOk(true);
} catch (NoSuchAlgorithmException e) {
respuesta.setOk(false);
e.printStackTrace();
} catch (IOException e) {
respuesta.setOk(false);
e.printStackTrace();
} catch (OperatorCreationException e) {
respuesta.setOk(false);
e.printStackTrace();
}
return respuesta;}
Código fuente firmado JWS
public RespuestaFirmadoJWSDto firmadorJWS(SolicitudFirmadoJWSDto pSolicitud) {
RespuestaFirmadoJWSDto respuesta= new RespuestaFirmadoJWSDto();
try {
Security.addProvider(new BouncyCastleProvider());
KeyFactory factory = KeyFactory.getInstance("RSA", "BC");
PrivateKey privateKey = Utiles.generatePrivateKey(factory, pSolicitud.getLlavePrivada());
byte[] encoded = pSolicitud.getPayload().getBytes();
JWSHeader jwsHeader = new JWSHeader(JWSAlgorithm.RS256, null, null, null, null, null,
new URI(FirmaDigitalParametros.URI_FIRMADOR_JWS+pSolicitud.getSerialNumber()), null, null, null, null, null, null);
JWSObject jwsObject = new JWSObject(jwsHeader, new Payload(new String(encoded, StandardCharsets.UTF_8)));
jwsObject.sign(new RSASSASigner(privateKey));
respuesta.setCertificadoFirmado(jwsObject.serialize());
respuesta.addMensaje(mensajesService.getMensaje(EnumSubsistema.AGENCIA_REGISTRO, EnumAgenciaRegistroMensajes.CONFIRMACION_FIRMADO_JWS));
respuesta.setOk(true);
} catch (URISyntaxException ex) {
respuesta.addMensaje(mensajesService.getMensaje(EnumSubsistema.AGENCIA_REGISTRO, EnumAgenciaRegistroMensajes.ERROR_PROCESO_FIRMADO_JWS));
respuesta.setOk(false);
} catch (JOSEException ex) {
respuesta.addMensaje(mensajesService.getMensaje(EnumSubsistema.AGENCIA_REGISTRO, EnumAgenciaRegistroMensajes.ERROR_PROCESO_FIRMADO_JWS));
respuesta.setOk(false);
} catch (NoSuchAlgorithmException ex) {
respuesta.addMensaje(mensajesService.getMensaje(EnumSubsistema.AGENCIA_REGISTRO, EnumAgenciaRegistroMensajes.ERROR_PROCESO_FIRMADO_JWS));
respuesta.setOk(false);
} catch (NoSuchProviderException ex) {
respuesta.addMensaje(mensajesService.getMensaje(EnumSubsistema.AGENCIA_REGISTRO, EnumAgenciaRegistroMensajes.ERROR_PROCESO_FIRMADO_JWS));
respuesta.setOk(false);
}
return respuesta;
}
- ü https://es.wikipedia.org/wiki/Firma_digital
- ü http://siatinfo.impuestos.gob.bo/index.php/menu-uno-4/firma-digital
- ü http://siatinfo.impuestos.gob.bo/index.php/descargas-adicionales
- ü https://www.aduana.gob.bo/firmadigital/
- ü https://www.edatalia.com/es/productos/36-articulos/154-asegurar-validez-en-la-firma-digital-mediante-un-sistema-de-software-y-hardware-adecuado
- ü https://www.firmadigital.bo/
- ü https://acrobat.adobe.com/es/es/sign/capabilities/digital-signatures-faq.html
- ü https://www.macroseguridad.net/soluciones/solucion_precio_transferencia.php
- ü https://www.seguridadamerica.com/que-es-una-firma-digital-aatl/
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Comentarios
Ofertas y Descuentos
Curso Exploit: Esteganografía y Encriptación
Domina las técnicas de ocultación y cifrado utilizadas en el hacking avanzado. Aprende a esconder información en archivos, imágenes y más, utilizando esteganografía, y protege datos con métodos de encriptación imposibles de romper. Este curso te llevará desde lo básico hasta la aplicación de herramientas y exploits reales.
Instructor: pericena
Duración: 2 horas por sesión
Modalidad: Online
$50 USD $40 USD
Curso OSINT: Inteligencia de Datos Públicos y Hacking
El OSINT (Open Source Intelligence) es una de las herramientas más poderosas en el hacking y la ciberseguridad. En este curso aprenderás a recolectar, analizar y explotar información pública disponible en internet. Descubre cómo los hackers encuentran datos sensibles, rastrean personas y empresas, y cómo puedes protegerte de estas técnicas.
Instructor: pericena
Duración: 2 horas por sesión
Modalidad: Online
$50 USD $40 USD
Mira este video y descubre la verdad
📌 Tú y las redes sociales💡 ¿Realmente eres libre en el mundo digital?
Publicada por 🚀 Servicio Técnico "The Seven Codes" en Martes, 5 de diciembre de 2019
Es momento de cuestionarlo todo… ¿Eres realmente libre o solo sigues el juego de las redes sociales?
El arte de la guerra nos enseña a no confiar en la posibilidad de que el enemigo no venga, sino en nuestra propia preparación para recibirlo; no confiar en el azar de que no ataque, sino mejor en que hemos hecho inaccesible nuestra posición. — El arte de la guerra, Sun Tzu
¡Conéctate con la comunidad!
Únete a nuestro chat en vivo para compartir ideas, hacer preguntas y conocer a otros apasionados como tú. 🚀









Comentarios
Publicar un comentario
Comparte tu opinión y únete a la conversación sobre seguridad informática en nuestro blog.