IMPLEMENTACIÓN DE APLICACIONES DE SEGURIDAD CON OPENSSL

Tamaño: px
Comenzar la demostración a partir de la página:

Download "IMPLEMENTACIÓN DE APLICACIONES DE SEGURIDAD CON OPENSSL"

Transcripción

1 IMPLEMENTACIÓN DE APLICACIONES DE SEGURIDAD CON OPENSSL

2 Índice Lectura de Certificados con OpenSSL I Proyecto Leer_certificado1 Lectura de Certificados con OpenSSL II Proyecto Leer_certificado2 Proyecto Base Conexión TCP Proyecto_ Base_TCP * Aplicaciones Cliente-Servidor SSL 1. Conexión SSL sin Autenticación de Cliente. Certificado Servidor Autofirmado 2. Conexión SSL con Autenticación de Cliente. Certificado Cliente/Servidor Autofirmado 3. Conexión SSL sin Autenticación de Cliente. Certificado Servidor firmados CA 4. Conexión SSL con Autenticación de Cliente. Certificados Cliente/Servidor firmados CA 5. Conexión SSL con Autenticación de Cliente. Certificados Cliente/Servidor firmados CA1, CA2

3 Lectura de Certificados I A continuación estudiaremos cómo utilizando las librerías de OpenSSL podemos: Leer un fichero que contiene un Certificado de clave Pública (formato PEM) Extraer el certificado y la clave pública Imprimir a fichero la clave pública

4 Formatos Certificados y Claves Certificados X509 PEM (*.pem) DER (*.crt, *cer, *.der) Certificados X509 + Clave Privada PKCS12 (*.p12, *.pfx) Claves Privadas (PKCS#8) PEM (*.pem) DER (*.der)

5 Estructuras de Manejos de certificados y Claves en OpenSSL #include <openssl/x509.h> Estructura que contiene un certificado X509 *cert ; #include <openssl/pkcs12.h> Estructura que contiene un certificado y clave privada PKCS12 *p12 ; #include <openssl/evp.h> Estructura que contiene un clave asimétrica EVP_PKEY * publickey_ca;

6 Funciones OpenSSL de Lectura de Certificados formato *.pem (I) #include <openssl/bio.h> La clase BIO es una abstraccion de OpenSSL para el manejo de Ficheros de entrada/salida, sockets etc BIO * BIO_new(BIO_METHOD *type); BIO_METHOD * BIO_s_file(void); Creamos una clase BIO para desde ella manejar un fichero BIO *b = BIO_new(BIO_s_file()); Leemos un fichero de certificado a través de esta clase int BIO_read_filename(BIO *b, char *name) Recuperamos el certificado a partir del fichero X509 *PEM_read_bio_X509(BIO *b, X509 **x, pem_password_cb *cb, void *u);

7 Funciones OpenSSL de Lectura de Certificados formato *.pem (II) Ej: procedimiento que lee un fichero *.pem que contiene un certificad de clave pública bool GetCert(X509 **cert) BIO *in = BIO_new(BIO_s_file()); if (!BIO_read_filename(in, (char*) nombre_cert)) BIO_free(in); printf( "ERROR: no se ha podido abrir el fichero con el certificado servidor."); return false; } *cert=pem_read_bio_x509(in, cert, NULL, NULL); if (*cert == NULL) printf("error al obtener Certificado "); exit (-1); } return true; }

8 Funciones de Manejo de certificados y Claves. Escritura de Claves a Fichero (I) #include <openssl/x509.h> Se extrae la clave pública a partir de un certificado EVP_PKEY * X509_get_pubkey(X509 *x); #include <openssl/bio.h> crea la clase BIO para el manejo de un fichero out=bio_new(bio_s_file()); se abre un fichero para escritura int BIO_write_filename(BIO *b, char *name) Se escribe la clave pública en el fichero int PEM_write_bio_PUBKEY(BIO *bp, EVP_PKEY *x); Ej: EVP_PKEY *publickey_ca; publickey_ca=x509_get_pubkey(cert); BIO_write_filename(out,"publickey_user.pem"); PEM_write_bio_PUBKEY(out, publickey_ca);

9 Funciones de Manejo de certificados y Claves. Escritura de Claves a Fichero (II) // Se obtiene la clave pública a partir de un Certificado EVP_PKEY * publickey_ca=x509_get_pubkey(cert); if (publickey_ca == NULL) printf("!! ERROR EN LA OBTENCION CLAVE PUBLICA \n"); exit (1); } //Se imprime la clave pública a fichero BIO *out; out=bio_new(bio_s_file()); BIO_write_filename(out,"publickey_user.pem"); PEM_write_bio_PUBKEY(out, publickey_ca); BIO_free_all(out);

10 Lectura Campos de Certificado X509 *cert = NULL; if (!GetCert(&cert) ).. } lectura campos de certificados printf("propietario %s \n\n", X509_NAME_oneline(X509_get_subject_name(cert), NULL, NULL)); printf("issuer: %s\n", X509_NAME_oneline(X509_get_issuer_name(cert), NULL, NULL));

11 Lectura de Certificados II A continuación estudiaremos cómo utilizando las librerías de OpenSSL podemos: Leer un fichero que contiene un Certificado de clave Pública+ Clave privada (Formato PLCS12, *.p12) Extraer el certificado y la clave privada Imprimir a fichero la clave privada

12 Funciones para la Lectura de un certificado y clave privada a partir de un fichero *.p12 (I) Un fichero *.p12 contiene un certificado de clave pública y la clave privada asociada. El fichero está protegido con una password para que nadie más que el propietario pueda utilizar la clave privada. #include <openssl/bio.h> //Para leer el fichero con la clase BIO como hemos hecho en ejemplos anteriores int BIO_read_filename(BIO *b, char *name) : #include <openssl/pkcs12.h> //Para convertir los datos del fichero a formato PKCS12 PKCS12 *d2i_pkcs12_bio(bio *b, PKCS12 **p12); //Para extraer el certificado y la clave privada int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca)

13 Funciones para la Lectura de un certificado y clave privada a partir de un fichero *.p12 (II) // Esta función carga el certificado y la clave privada del servidor bool GetCertAndPrivateKey(X509 **cert, EVP_PKEY **pkey) BIO *in = BIO_new(BIO_s_file()); if (!BIO_read_filename(in, (char*) nombre_cert)) BIO_free(in); printf("error: no se ha podido abrir el fichero.\n\n" ); return false; } PKCS12 *p12 = d2i_pkcs12_bio(in, NULL); // BIO_free(in); if (p12 == NULL) printf( "ERROR: el archivo 'cert.p12' no contiene un formato PKCS12." ); return false; } if (PKCS12_parse(p12, "ppppp", pkey, cert, NULL)) PKCS12_free(p12); return true; } else PKCS12_free(p12); printf( "ERROR: no se ha podido obtener el certificado y la clave privada'"); return false; Implementación de Aplicaciones } de seguridad con OpenSSL

14 Funciones de escritura de clave privada (I) #include <openssl/bio.h> // crea la clase BIO para el manejo de un fichero out=bio_new(bio_s_file()); //se crea un fichero para escritura int BIO_write_filename(BIO *b, char *name) // se escribe en el fichero la clave privada int PEM_write_bio_PrivateKey(BIO *b, EVP_PKEY *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u);

15 Funciones de escritura de clave privada (II) out=bio_new(bio_s_file()); if (BIO_write_filename(out,"privkey_user.pem") <= 0) perror("error: req.pem"); exit(0); } PEM_write_bio_PrivateKey(out,pkey,NULL,NULL,0,NULL,NULL); BIO_free_all(out);

16 Proyecto Base Conexión TCP En este apartado presentamos el código de un Cliente-Servidor TCP que nos servirá de Base para construir un Cliente-Servidor SSL

17 Conexión TCP Eco Simple Cliente Conexión TCP eco Servidor #include <winsock2.h> #include "connect.h SOCKET s; s=connecttcp(host,pto_service); send(s,.,) / recv(s,,); #include <winsock2.h> #include "connect.h SOCKET sock, *pssock; sock = passivetcp(service,5); while(1) *pssock=accept(sock,(&fsin,(int FAR*)&alen);.. send(s,.,) / recv(s,,); }

18 Proyecto Base Conexión TCP Código Cliente (fichero connect.cpp ) (I) SE PUEDEN IMPLEMENTAR DOS PROCEDIMIENTOS QUE MANEJEN LA CONEXION DE UN SOCKET : socket = connecttcp (host, service) socket = connectudp (host,service) int connecttcp(host, service) char *host; /* nombre del servidor */ char *service; /* nobre del servicio */ return connectsock (host,service, tcp ) } int connectudp(host, service) char *host; /* nombre del servidor */ char *service; /* nobre del servicio */ return connectsock (host,service, udp ) }

19 Proyecto Base Conexión TCP Código Cliente (fichero connect.cpp ) (II) EL PROCEDIMIENTO connectsock realiza la CONEXION DE UN SOCKET. LA LLAMADA A ESTE PROCEDIMIENTO ESPECIFICA SI ES UN SOCKET TCP O UDP static int connectsock( char *host, char *pto_service, char *protocol ) struct sockaddr_in sinserv; SOCKET s; int type; WSADATA wsadata; // Llamadas para la inicialización de winsock2 if (WSAStartup( MAKEWORD( 2, 2 ), &wsadata )) return( INVALID_SOCKET); } if ( LOBYTE( wsadata.wversion )!= 2 HIBYTE( wsadata.wversion )!= 2 ) WSACleanup( ); return(invalid_socket); }

20 Proyecto Base Conexión TCP Código Cliente (fichero connect.cpp ) (III) // Abrimos un socket TCP en el cliente if (strcmp(protocol, "udp") == 0) type = SOCK_DGRAM; else type = SOCK_STREAM; s = socket(af_inet, type, 0); if (s == INVALID_SOCKET) } memset((void*)&sinserv,0,sizeof(sinserv)); sinserv.sin_family = AF_INET; sinserv.sin_port=htons((u_short)atoi(pto_service)); sinserv.sin_addr.s_addr = inet_addr(host); // Asociamos a socket s creado la estructura sinserv que contiene la // Direccion IP y el número de puerto del Servidor if (connect(s, (struct sockaddr FAR*)&sinserv, sizeof(sinserv)) == SOCKET_ERROR).} } return s;

21 Proyecto Base Conexión TCP Código Cliente (fichero Cliente_TCP.cpp ) (I) #include <winsock2.h> #include "connect.h void main() int n; SOCKET s; char host[100]; /* dir ip dónde está el servicio */ char pto_service[100]; int outchars, inchars; /* Carecteres a enviar y recibir */ printf("introducir EL NUMERO IP DEL SERVIDOR: "); scanf("%s",&host); printf("introducir EL PUERTO DEL SERVIDOR: "); scanf("%s",&pto_service); s=connecttcp(host,pto_service); if (s == INVALID_SOCKET).} else

22 Proyecto Base Conexión TCP Código Cliente (fichero Cliente_TCP.cpp ) (II) printf("\n CONEXION ESTABLECIDA CON EL SERVIDOR... \n"); while (fgets(buf, sizeof(buf), stdin)) outchars = strlen(buf); if ( send(s, buf, outchars,0) == SOCKET_ERROR).} for (inchars = 0; inchars < outchars; inchars+=n) } n=recv(s, &buf2[inchars],outchars - inchars,0); if (n== SOCKET_ERROR) } fputs(buf2, stdout); }//while } //ELSE } /* main */

23 Proyecto Base Conexión TCP Código Servidor (fichero passive.cpp ) (I) SE PUEDEN IMPLEMENTAR DOS PROCEDIMIENTOS QUE MANEJEN LA CONEXION DE UN SOCKET : socket = passivettcp (service, qlen) socket = passiveudp (service) int passiveudp( service ) char *service; /* servicio asociado */ return passivesock (service, UDP, 0); } int passivetcp( service, qlen ) char *service; /* servicio asociado */ int qlen; return passivesock (service, TCP, qlen); }

24 Proyecto Base Conexión TCP Código Servidor (fichero passive.cpp ) (II) EL PROCEDURE passivesock() CREA EL SOCKET DEL SERVIDOR static int Passivesock( char *service, char* protocol, long qlen ) struct sockaddr_in sin; int type,error; SOCKET s; WSADATA wsadata; // inicializacion Winsock 2 if (WSAStartup( MAKEWORD( 2, 2 ), &wsadata )) return( INVALID_SOCKET); if ( LOBYTE( wsadata.wversion )!= 2 HIBYTE( wsadata.wversion )!= 2 ) WSACleanup( ); return(invalid_socket); } // Inicializamos la estructura sockaddr_in sin memset((void*)&sin,0,sizeof(sin));

25 Proyecto Base Conexión TCP Código Servidor (fichero passive.cpp ) (I) EL PROCEDURE passivesock() CREA EL SOCKET DEL SERVIDOR // Cargamos en la estructura sockaddr_in sin el protocolo, dir IP y pto de servicio sin.sin_family = AF_INET; sin.sin_addr.s_addr = INADDR_ANY; sin.sin_port = htons(10001); printf("servidor ITERATIVO ESPERANDO EN PTO %u...\n\n",ntohs(sin.sin_port) ); if (strcmp(protocol, "udp") == 0) type = SOCK_DGRAM; else type = SOCK_STREAM; // Creamos el socket if ((s = socket(af_inet, type, 0))==INVALID_SOCKET).} /* Asociamos el socket a un pto y a una dir IP*/ if (bind(s,(struct sockaddr FAR*)&sin, sizeof(sin))==socket_error) } if ((type == SOCK_STREAM) && (listen(s,qlen)==socket_error)) } return s; }

26 Proyecto Base Conexión TCP Código Servidor (fichero Servidor_TCP.cpp ) (II) int main() struct sockaddr_in fsin; char service[100]; int alen,n, cliente, cc; SOCKET sock,*pssock; sock = passivetcp(service,5); while (1) alen = sizeof(fsin); pssock=(socket*) malloc(sizeof(socket)); *pssock=accept(sock,(struct sockaddr *)&fsin,(int FAR*)&alen); if (*pssock== INVALID_SOCKET) } printf("establecida CONEXION CON CLIENTE %d... \n",cliente);

27 Proyecto Base Conexión TCP Código Servidor (fichero Servidor_TCP.cpp ) (II) cc=0; while ( (cc=recv(*pssock, buf, sizeof(buf),0))!= 0 ) if (cc == SOCKET_ERROR ).} if (cc>0) printf("lo QUE MANDA EL CLIENTE DEL SOCKET %d ES : %s\n",*pssock, buf); n=send(*pssock, buf, cc,0 ); if (n== SOCKET_ERROR) } } //WHILE (1) } // WHILE } //MAIN

28 Aplicaciones Cliente-Servidor SSL En este apartado aprenderemos a construir aplicaciones Cliente-Servidor SSL

29 PROTOCOLO DE SEGURIDAD SSL FASE 1 FASE 2 FASE 3 FASE 4

30 Implementación del Protocolo SSL en OpenSSL Se utilizan los objetos SSL_CTX y SSL SSL_CTX (Objeto de Contexto): Se utiliza para configurar los parámetros del protocolo SSL: El objeto SSL se asocia al objeto de contexto y hereda sus parámetros El objeto SSL se asocia también a un socket TCP convencional Para cargar los certificados de clave pública y claves privadas se utilizan las funciones: SSL_CTX_use_certificate() y SSL_CTX_use_PrivateKey() Para verificar el certificado del servidor (u opcionalmente el del cliente) se usan las clases: SSL_CTX_set_verify() y SSL_CTX_load_verify_locations();

31 Conexión SSL Variables y Funciones OpenSSL #include <openssl/ssl.h> Variable de Contexto SSL_CTX * m_ctx Se inicializa la variable de contexto SSL_CTX *SSL_CTX_new(SSL_METHOD *meth); Esta función verifica el certificado recibido de la otra entidad void SSL_CTX_set_verify(SSL_CTX *ctx,int mode, int (*callback)(int, X509_STORE_CTX *)); Esta función carga los certificados que la entidad utiliza para verificar el certificado recibido de la otra parte int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *Cafile, const char *CApath); Se crea un objeto SSL que se inicializa con los valores de la variable de contexto SSL * SSL_new(SSL_CTX *ctx); Se asocia un socket tradicional al objeto SSL. El protocolo SSL se implementará en el socket int SSL_set_fd(SSL *s, int socket); Se inicia el protocolo SSL del lado del cliente int SSL_connect(SSL *ssl); Se envían datos por socket seguro int SSL_write(SSL *ssl,const void *buf,int num); Se reciben datos por el socket seguro int SSL_read(SSL *ssl,void *buf,int num);

32 Conexión SSL Variables y Funciones OpenSSL #include <openssl/ssl.h> Esta función se utiliza siempre en el servidor para cargar el certificado del protocolo SSL. Opcionalmente la puede utilizar el cliente para autenticarse frente al servidor SSL_CTX_use_certificate(m_ctx, cert) Esta función se utiliza siempre en el servidor para cargar la clave privada del certificado del protocolo SSL. Opcionalmente la puede utilizar el cliente para cargar la clave privada del certificado que presenta al servidor cuando hay autenticación del cliente. SSL_CTX_use_PrivateKey(m_ctx, pkey) Esta función la utiliza la entidad servidor para iniciar el protocolo SSL si todo ha ido bien (se han verificado los certificados y se han recibido correctamente los mensajes del protocolo) se pueden intercambiar datos de forma segura if (SSL_accept(ssl) < 0)... } Esta función permite la obtención del certificado de la otra entidad a partir de la conexión SSL X509 * SSL_get_peer_certificate(const SSL *s);

33 Escenarios Conexiones Cliente-Servidor SSL 1. Conexión SSL sin Autenticación de Cliente. Certificado Servidor Autofirmado 2. Conexión SSL con Autenticación de Cliente. Certificado Cliente/Servidor Autofirmado 3. Conexión SSL sin Autenticación de Cliente. Certificado Servidor firmados CA 4. Conexión SSL con Autenticación de Cliente. Certificados Cliente/Servidor firmados CA 5. Conexión SSL con Autenticación de Cliente. Certificados Cliente/Servidor firmados CA1, CA2

34 Certificados Necesarios para una Conexión SSL sin Autenticación de Cliente openssl> (Generación de un par clave pública-privada) genrsa -out ClavePrivada.pem 4096 Generación de un Certificado Autofirmado) req -new -x509 -days key ClavePrivada.pem -out Certificado.pem (Creamos un certificado en formato p12, con la clave privada incorporada protegida con un clave cifrada con 3des ( ppppp) pkcs12 -export -in Certificado.pem -inkey ClavePrivada.pem -out cert.p12 Ficheros Obtenidos: cert.p12: Certificado de Clave pública+clave privada Certificado.pem: Certificado de Clave Pública ClavePrivada.pem: Clave privada

35 1.Conexión SSL sin Autenticación de Cliente Certificado Servidor Autofirmado Cliente Conexión SSL Servidor CAFILE Certificado.pem cert.p12 CERTIFICADO SERVIDOR Certificado Servidor Clave Privada + Certificado Servidor #define CAFILE "Certificado.pem SSL_CTX * m_ctx = SSL_CTX_new(SSLv23_method()); SSL_CTX_set_verify(m_ctx,SSL_VERIFY_PEER SSL_VERIFY_F AIL_IF_NO_PEER_CERT, NULL); SSL_CTX_load_verify_locations(m_ctx, CAFILE, CADIR) SSL_CTX * m_ctx=ssl_ctx_new(sslv23_server_method()); if (!GetCertAndPrivateKey(&cert, &pkey)) SSL_CTX_use_certificate(m_ctx, cert) SSL_CTX_use_PrivateKey(m_ctx, pkey) SSL *ssl = SSL_new(m_ctx); SSL * m_ssl=ssl_new(m_ctx); s=connecttcp(host,pto_service); SSL_set_fd(m_ssl,s); if (SSL_connect(m_ssl) == -1) } SSL_write(m_ssl,,)/ SSL_read(m_ssl,,); sock = passivetcp(service,5); *pssock=accept(sock,(&fsin,(int FAR*)&alen); SSL_set_fd(ssl,*pssock); if (SSL_accept(ssl) < 0)... } SSL_read(ssl,,)/SSL_write(ssl,,)

36 2. Conexión SSL con Autenticación de Cliente Certificado Cliente/Servidor Autofirmado Cliente Conexión SSL CERT CLIENTE= CERT SERVIDOR Servidor Certificado.pem cert.p12 Certificado.pem cert.p12 CAFILE CERTIFICADO CLIENTE CAFILE CERTIFICADO SERVIDOR Certificado Servidor Clave Privada + Cert Cliente Certificado Cliente Clave Privada + Cert Servidor #define CAFILE "Certificado.pem SSL_CTX * m_ctx = SSL_CTX_new(SSLv23_method()); if (!GetCertAndPrivateKey(&cert, &pkey)) SSL_CTX_use_certificate(m_ctx, cert) SSL_CTX_use_PrivateKey(m_ctx, pkey) SSL_CTX_set_verify(m_ctx, ); SSL_CTX_load_verify_locations(m_ctx, CAFILE, CADIR) SSL * m_ssl=ssl_new(m_ctx); s=connecttcp(host,pto_service); # define CAFILE "Certificado.pem SSL_CTX * m_ctx=ssl_ctx_new(sslv23_server_method()); if (!GetCertAndPrivateKey(&cert, &pkey)) SSL_CTX_use_certificate(m_ctx, cert) SSL_CTX_use_PrivateKey(m_ctx, pkey) SSL_CTX_set_verify(m_ctx,SSL_VERIFY_PEER SSL_VERIFY_ FAIL_IF_NO_PEER_CERT, NULL); SSL_CTX_load_verify_locations(m_ctx, CAFILE, CADIR) SSL *ssl = SSL_new(m_ctx); sock = passivetcp(service,5); *pssock=accept(sock,(&fsin,(int FAR*)&alen); SSL_set_fd(m_ssl,s); if (SSL_connect(m_ssl) == -1) } SSL_write(m_ssl,,)/ Implementación de SSL_read(m_ssl,,); Aplicaciones de seguridad con OpenSSL SSL_set_fd(ssl,*pssock); if (SSL_accept(ssl) < 0)... } SSL_read(ssl,,)/SSL_write(ssl,,)

37 Certificados Firmados CA En general las aplicación Cliente-Servidor SSL van a utilizar certificados firmados por una Autoridad de Certificación En primer lugar nos crearemos un certificado de CA En segundo lugar nos crearemos el certificado del servidor firmado por la CA También nos crearemos un certificado de cliente firmado por la CA (si el servidor requiere autenticación)

38 Creación de Certificado de CA openssl> (Generación de un par clave pública-privada) genrsa -out CAClavePrivada.pem 4096 Generación de un Certificado de CA req -new -x509 -days key CAClavePrivada.pem -out CACertificado.pem (Creamos un certificado en formato p12, con la clave privada incorporada protegida con un clave cifrada con 3des ( ppppp) pkcs12 -export -in CACertificado.pem -inkey CAClavePrivada.pem -out cacert.p12 Ficheros Obtenidos: cacert.p12 : Certificado de Clave pública+clave privada CACertificado.pem Certificado de Clave Pública CAClavePrivada.pem : Clave privada

39 Creación de certificados X.509 Certificado de Servidor firmado por CA (I) (Generación de un par clave privada-publica por un usuario) genrsa -out SRClavePrivada.pem 1024 (Generación de una solicitud de certificado CSR, Certificate Signing Request) req new -key SRClavePrivada.pem -out SRPeticion.csr (Firma por la CA de la solicitud de usuario) x509 -req -days 365 -in SRPeticion.csr -CA CACertificado.pem -CAkey CAClavePrivada.pem -set_serial 01 -out SRCertificado.pem (Exportamos el certificado a formato *.p12) pkcs12 -export -in SRCertificado.pem -inkey SRClavePrivada.pem -out SRcert.p12 Ficheros Obtenidos: SRcert.p12 : Certificado de Clave pública+clave privada SRCertificado.pem Certificado de Clave Pública SRClavePrivada.pem : Clave privada

40 3. Conexión SSL sin Autenticación de Cliente Certificado Servidor Firmado CA Cliente Conexión SSL Servidor CAFILE CACertificado.pem SRcert.p12 CERTIFICADO SERVIDOR Certificado CA #define CAFILE " CACertificado.pem SSL_CTX * m_ctx = SSL_CTX_new(SSLv23_method()); SSL_CTX_set_verify(m_ctx,SSL_VERIFY_PEER SSL_VERIFY_F AIL_IF_NO_PEER_CERT, NULL); SSL_CTX_load_verify_locations(m_ctx, CAFILE, CADIR) Clave Privada + Certificado Servidor SSL_CTX * m_ctx=ssl_ctx_new(sslv23_server_method()); if (!GetCertAndPrivateKey(&cert, &pkey)) SSL_CTX_use_certificate(m_ctx, cert) SSL_CTX_use_PrivateKey(m_ctx, pkey) SSL *ssl = SSL_new(m_ctx); SSL * m_ssl=ssl_new(m_ctx); s=connecttcp(host,pto_service); SSL_set_fd(m_ssl,s); if (SSL_connect(m_ssl) == -1) } SSL_write(m_ssl,,)/ SSL_read(m_ssl,,); sock = passivetcp(service,5); *pssock=accept(sock,(&fsin,(int FAR*)&alen); SSL_set_fd(ssl,*pssock); if (SSL_accept(ssl) < 0)... } SSL_read(ssl,,)/SSL_write(ssl,,)

41 Creación de certificados X.509 Certificado de Cliente firmado por CA (I) (Generación de un par clave privada-publica por un usuario) genrsa -out CLClavePrivada.pem 1024 (Generación de una solicitud de certificado CSR, Certificate Signing Request) req new -key CLClavePrivada.pem -out CLPeticion.csr (Firma por la CA de la solicitud de usuario) x509 -req -days 365 -in CLPeticion.csr -CA CACertificado.pem -CAkey CAClavePrivada.pem -set_serial 01 -out CLCertificado.pem (Exportamos el certificado a formato *.p12) pkcs12 -export -in CLCertificado.pem -inkey CLClavePrivada.pem -out CLcert.p12 Ficheros Obtenidos: CLcert.p12 : Certificado de Clave pública+clave privada CLCertificado.pem Certificado de Clave Pública CLClavePrivada.pem : Clave privada

42 4. Conexión SSL con Autenticación de Cliente Certificados Cliente/Servidor Firmados CA Cliente Conexión SSL Servidor CACertificado.pem CLcert.p12 CACertificado.pem SRcert.p12 CAFILE CERTIFICADO CLIENTE CAFILE CERTIFICADO SERVIDOR Certificado CA Clave Privada + Cert Cliente Certificado CA Clave Privada + Cert Servidor #define CAFILE CACertificado.pem SSL_CTX * m_ctx = SSL_CTX_new(SSLv23_method()); if (!GetCertAndPrivateKey(&cert, &pkey)) SSL_CTX_use_certificate(m_ctx, cert) SSL_CTX_use_PrivateKey(m_ctx, pkey) SSL_CTX_set_verify(m_ctx, ); SSL_CTX_load_verify_locations(m_ctx, CAFILE, CADIR) SSL * m_ssl=ssl_new(m_ctx); s=connecttcp(host,pto_service); # define CAFILE CACertificado.pem SSL_CTX * m_ctx=ssl_ctx_new(sslv23_server_method()); if (!GetCertAndPrivateKey(&cert, &pkey)) SSL_CTX_use_certificate(m_ctx, cert) SSL_CTX_use_PrivateKey(m_ctx, pkey) SSL_CTX_set_verify(m_ctx, ); SSL_CTX_load_verify_locations(m_ctx, CAFILE, CADIR) SSL *ssl = SSL_new(m_ctx); sock = passivetcp(service,5); *pssock=accept(sock,(&fsin,(int FAR*)&alen); SSL_set_fd(m_ssl,s); if (SSL_connect(m_ssl) == -1) } SSL_write(m_ssl,,)/ Implementación de SSL_read(m_ssl,,); Aplicaciones de seguridad con OpenSSL SSL_set_fd(ssl,*pssock); if (SSL_accept(ssl) < 0)... } SSL_read(ssl,,)/SSL_write(ssl,,)

43 5. Conexión SSL con Autenticación de Cliente Certificados Cliente/Servidor Firmados CA2 y CA2 Cliente Conexión SSL Servidor CA1Certificado.pem CLcert.p12 CA2Certificado.pem SRcert.p12 CAFILE CERTIFICADO CLIENTE CAFILE CERTIFICADO SERVIDOR Certificado CA Clave Privada + Cert Cliente Certificado CA Clave Privada + Cert Servidor #define CAFILE CACertificado.pem SSL_CTX * m_ctx = SSL_CTX_new(SSLv23_method()); if (!GetCertAndPrivateKey(&cert, &pkey)) SSL_CTX_use_certificate(m_ctx, cert) SSL_CTX_use_PrivateKey(m_ctx, pkey) SSL_CTX_set_verify(m_ctx, ); SSL_CTX_load_verify_locations(m_ctx, CAFILE, CADIR) SSL * m_ssl=ssl_new(m_ctx); s=connecttcp(host,pto_service); # define CAFILE CACertificado.pem SSL_CTX * m_ctx=ssl_ctx_new(sslv23_server_method()); if (!GetCertAndPrivateKey(&cert, &pkey)) SSL_CTX_use_certificate(m_ctx, cert) SSL_CTX_use_PrivateKey(m_ctx, pkey) SSL_CTX_set_verify(m_ctx, ); SSL_CTX_load_verify_locations(m_ctx, CAFILE, CADIR) SSL *ssl = SSL_new(m_ctx); sock = passivetcp(service,5); *pssock=accept(sock,(&fsin,(int FAR*)&alen); SSL_set_fd(m_ssl,s); if (SSL_connect(m_ssl) == -1) } SSL_write(m_ssl,,)/ Implementación de SSL_read(m_ssl,,); Aplicaciones de seguridad con OpenSSL SSL_set_fd(ssl,*pssock); if (SSL_accept(ssl) < 0)... } SSL_read(ssl,,)/SSL_write(ssl,,)

FASE 1 FASE 2 FASE 3 FASE 4

FASE 1 FASE 2 FASE 3 FASE 4 INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS SOCKETS SEGUROS CON LIBRERÍAS DE OPENSSL INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS PROTOCOLO DE

Más detalles

Gestión de Certificados y Mecanismos de Seguridad con OpenSSL

Gestión de Certificados y Mecanismos de Seguridad con OpenSSL Gestión de Certificados y Mecanismos de Seguridad con OpenSSL OpenSSL (I) Herramienta para implementar mecanismos y protocolos de seguridad Basada en el proyecto SSLeay, iniciado en 1995 por Eric A. Young

Más detalles

Problemas de Redes de Computadores. Conjunto de problemas 1

Problemas de Redes de Computadores. Conjunto de problemas 1 Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde la dirección IP 130.206.1.1,

Más detalles

sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM)

sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM) s s Comunicación punto-a-punto entre procesos Los s son los extremos de la comunicación Diferentes dominios UNIX: Entre procesos de un mismo equipo Internet: Entre procesos de diferentes equipos (TCP/IP)

Más detalles

Programación con Sockets

Programación con Sockets Programación con Sockets INTRODUCCIÓN 1 Qué son los Sockets? Son un mecanismo de comunicación entre procesos: Dentro de una misma máquina. Distribuidos en diferentes máquinas. Que pueden ser identificados

Más detalles

Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1

Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Preguntas cortas Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde

Más detalles

Análisis Experimental de la Transmisión de Datos

Análisis Experimental de la Transmisión de Datos UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA DEPARTAMENTO DE ELECTRÓNICA Análisis Experimental de la Transmisión de Datos ELO322 Redes de Computadores I Pablo Ahumada D. Jorge Cápona G. Resumen Se muestra

Más detalles

ARQUITECTURA DE REDES Laboratorio

ARQUITECTURA DE REDES Laboratorio 1nsloo.cl ARQUITECTURA DE REDES Laboratorio Práctica 2: Ejercicios de aplicación de Sockets en C 1. OBJETIVOS. El objetivo de esta práctica es que el alumno llegue a conocer los principales conceptos relacionados

Más detalles

Estableciendo Sesiones SSL en MySQL

Estableciendo Sesiones SSL en MySQL Estableciendo Sesiones SSL en MySQL Estableciendo Sesiones SSL en MySQL Objetivos: Crear la infraestructura de certificados X.509 necesaria para incorporar servicios de seguridad en el acceso a un Base

Más detalles

Seguridad y Autorización: Plataforma OpenSSL

Seguridad y Autorización: Plataforma OpenSSL Pág. 1 28/11/2014 OpenSSL es un entorno integrado que permite la creación y gestión de certificados digitales. OpenSSL dispone de la infraestructura necesaria para crear una Autoridad de Certificación,

Más detalles

PRÁCTICA 1: OBTENCIÓN DE CERTIFICADOS DIGITALES

PRÁCTICA 1: OBTENCIÓN DE CERTIFICADOS DIGITALES Luis Mengual PRÁCTICA 1: OBTENCIÓN DE CERTIFICADOS DIGITALES INCORPORACIÓN DE SERVICIOS DE SEGURIDAD EN CORREO ELECTRÓNICO S/MIME - 1 - Luis Mengual 1. Objetivos Generales Estudio del proceso completo

Más detalles

Gestión de Certificados con OpenSSL

Gestión de Certificados con OpenSSL Taller de Criptografía Aplicada Gestión de Certificados con OpenSSL Andrés J. Díaz Índice Qué vamos a ver? Teoría sobre certificados, CA y RA Creando una CA con OpenSSL Qué es un certificado

Más detalles

Introducción a la programación con sockets en C

Introducción a la programación con sockets en C Introducción a la programación con sockets en C Enrique Bonet Departamento de Informática Universidad de Valencia Índice Introducción Socket Creación de un socket Cierre de un socket Asociación de un socket

Más detalles

Bibliografía [COM00] Internetworking with TCP/IP, vol. 3, Cap. 2 y del 7 al 15.

Bibliografía [COM00] Internetworking with TCP/IP, vol. 3, Cap. 2 y del 7 al 15. Tema 5: El Modelo Cliente-Servidor Conceptos básicos. Características y estructura de un cliente. Obtención de información. Algoritmos del cliente TCP y UDP. Ejemplos. Características y estructura de un

Más detalles

SISTEMA DE COMERCIO ELECTRÓNICO SEGURO

SISTEMA DE COMERCIO ELECTRÓNICO SEGURO SISTEMA DE COMERCIO ELECTRÓNICO SEGURO TRABAJO FIN DE GRADO Autor: Borja Marabini Vega Matrícula: p070009 DNI:53731897X Índice 1. Introducción... 3 2. Descripción General... 4 3.Infraestructura de Seguridad...

Más detalles

PRÁCTICA 2: Cliente-servidor UDP

PRÁCTICA 2: Cliente-servidor UDP PRÁCTICA 2: Cliente-servidor UDP El objetivo de esta práctica es la familiarización con aplicaciones elementales que usan los servicios de transporte de los sockets UDP. A lo largo de la práctica se realizarán

Más detalles

Tema 5 El Modelo Cliente-Servidor

Tema 5 El Modelo Cliente-Servidor 1 Tema 5 El Modelo Cliente-Servidor Capítulos: Conceptos básicos. Características y estructura de un cliente. Obtención de información. Algoritmos del cliente TCP y UDP. Ejemplos. Características y estructura

Más detalles

-> Todo socket viene definido por dos características fundamentales:

-> Todo socket viene definido por dos características fundamentales: LOS SOCKETS. Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable (emita o reciba información) con otro proceso incluso estando estos procesos

Más detalles

Mecanismos de Seguridad en Java: Herramienta Keytool Construcción de Sockets Seguros SSL en Java

Mecanismos de Seguridad en Java: Herramienta Keytool Construcción de Sockets Seguros SSL en Java Pág. 1 08/10/2014 Luis Mengual (C) Podemos decir que la seguridad en java se concentra en tres extensiones básicas: JCE, Java Cryptography Extension: Proporciona facilidades de cifrado, resúmenes (funciones

Más detalles

Sockets: funcionamiento y programación. Sockets tipo UNIX. MSc. Ivan A. Escobar

Sockets: funcionamiento y programación. Sockets tipo UNIX. MSc. Ivan A. Escobar Sockets tipo UNIX MSc. Ivan A. Escobar Creación socket: socket() int socket(familia, tipo, protocolo) Regresa un valor entero Parecido descriptor de archivos: descriptor socket sockfd int familia familia

Más detalles

Sockets (UDP) Tema 2.- Nivel de aplicación en Internet

Sockets (UDP) Tema 2.- Nivel de aplicación en Internet Sockets (UDP) Tema 2.- Nivel de aplicación en Internet Dr. Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Sockets y UDP UDP: no hay conexión entre cliente y servidor»

Más detalles

Ingeniería Técnica de Telecomunicación, esp. Telemática Universidad de Jaén

Ingeniería Técnica de Telecomunicación, esp. Telemática Universidad de Jaén Contenido. Introducción Primitivas Sockets orientadas a conexión (TCP) Primitivas orientadas a no conexión (UDP) Programación con Sockets en Internet Funciones sockets Funciones auxiliares 1 Bibliografía.

Más detalles

Estructuras y funciones de programación de sockets.

Estructuras y funciones de programación de sockets. Estructuras y funciones de programación de sockets. Introducción. En estos apuntes se incluye una breve descripción de las estructuras y funciones cuyo uso puede ser necesario para el desarrollo de las

Más detalles

Programación con sockets

Programación con sockets Programación con sockets Internetworking with TCP/IP Client/Server Programming and Applications: Linux/POSIX Sockets Version Douglas E. Comer David L. Stevens Capítulos: 2, 5, 7 Grupo de Sistemas y Comunicaciones

Más detalles

Programación C/S Básica

Programación C/S Básica 1 de 16 Programación C/S Básica Enrique Alba Torres Universidad de Málaga (UMA) 2 de 16 Los servicios Internet se ofertan como sistemas Cliente/Servidor Los protocolos de base suelen ser peer-to-peer (igual-a-igual)

Más detalles

Factura Electrónica. Web Service - Pasos a seguir. Versión 1.0

Factura Electrónica. Web Service - Pasos a seguir. Versión 1.0 Web Service - Pasos a seguir Versión 1.0 Historial de Versiones Fecha Versión Descripción Autor Revisión Aprobación / Vigencia Fecha Revisó Fecha Aprobó 22/04/2015 1.0 Versión Inicial CB 22/04/2015 CB/EP

Más detalles

Migrando aplicaciones a IPv6

Migrando aplicaciones a IPv6 Migrando aplicaciones a Fundamentos técnico: DualStack y Socket.h Alonso Sandoval A. Hernán Vargas L. Universidad Técnica Federico Santa María asandova@alumnos.inf.utfsm.cl, hvargas@alumnos.inf.utfsm.cl

Más detalles

SOCKETS en Linux. Lic. Leonardo de - Matteis. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2011

SOCKETS en Linux. Lic. Leonardo de - Matteis. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2011 Introducción al uso de SOCKETS en Linux Lic. Leonardo de - Matteis Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2011 Interfaz de programación de aplicaciones NAPI

Más detalles

Tema 4: Sockets: Un interfaz con TCP/IP

Tema 4: Sockets: Un interfaz con TCP/IP Tema 4: Sockets: Un interfaz con TCP/IP Introducción. Conceptos básicos. Dirección de un socket. Llamadas básicas de los sockets. Diferencias entre BSD-Sockets y WinSockets. Asignación de puertos a procesos.

Más detalles

Como crear certificados digitales con OpenSSL 1

Como crear certificados digitales con OpenSSL 1 Como crear certificados digitales con OpenSSL 1 Por medio de este tutorial se pretende configurar un servidor web localmente para que tenga conexiones seguras mediante OpenSSL, se requiere para este ejemplo

Más detalles

PKI centralizada (SSL/TLS, S/MIME)

PKI centralizada (SSL/TLS, S/MIME) Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME) Certificados Autoridades de certificación centralizadas PKI distribuida (PGP) Firmas entre usuarios Red de confianza (Web of trust) RFC 3280 define

Más detalles

Mecanismos IPC: sockets

Mecanismos IPC: sockets Mecanismos IPC: sockets Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Sockets Los sockets son una abstracción lógica que permiten la comunicación bidireccional

Más detalles

Clase 19: 21 de Abril de 2011. Certificados Digitales (HTTPS) Eduardo Mercader Orta emercade [at] nic. cl

Clase 19: 21 de Abril de 2011. Certificados Digitales (HTTPS) Eduardo Mercader Orta emercade [at] nic. cl Taller de Administración de Servidores Linux CC5308 Clase 19: 21 de Abril de 2011 Certificados Digitales (HTTPS) Eduardo Mercader Orta emercade [at] nic. cl Copyright 2011 Creative Commons 3.0-cl by-nc-sa

Más detalles

Características de un lenguaje ideal para robótica

Características de un lenguaje ideal para robótica COMUNICACIÓN MEDIANTE SOCKETS Enrique Ortega Edrodoso Ingeniería Técnica de Informática de Gestión Introducción Los vehículos autoguiados comerciales disponibles en la actualidad tienen una serie de inconvenientes

Más detalles

Introducción de Sockets en C.

Introducción de Sockets en C. PRÁCTICA 2: Introducción de Sockets en C. 1 La Interfaz Socket es una API para redes TCP/IP que se compone de funciones o rutinas. Originalmente se construyó a principios de los 80 para el sistema operativo

Más detalles

UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA

UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA MANUAL DE SOCKETS EN C TABLA DE CONTENIDOS Introducción.. 4 Sockets en C.. 7 2.1 Conceptos Básicos..

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

SUBDIRECCION GENERAL DE SISTEMAS Y TELECOMUNICACIONES Documento Técnico Generación de Certificados Digitales para Utilización con Webservices AFIP

SUBDIRECCION GENERAL DE SISTEMAS Y TELECOMUNICACIONES Documento Técnico Generación de Certificados Digitales para Utilización con Webservices AFIP SUBDIRECCION GENERAL DE SISTEMAS Y TELECOMUNICACIONES Generación de Certificados Digitales para Utilización con Webservices Última Actualización 15/04/2011 Página 1 de 10 Historial de modificaciones Versión

Más detalles

Redes de Computadores: Relación de problemas 1. Sockets

Redes de Computadores: Relación de problemas 1. Sockets Redes de Computadores: Relación de problemas 1. Sockets 1. Obtención de nombres y direcciones IP Uso de gethostbyname y gethostbyaddr. Bajo el sistema operativo Linux, esta información se puede obtener

Más detalles

SOLICITUD, INSTALACIÓN y CONFIGURACIÓN DE UN CERTIFICADO DE SERVIDOR SEGURO EN APACHE MEDIANTE OPENSSL

SOLICITUD, INSTALACIÓN y CONFIGURACIÓN DE UN CERTIFICADO DE SERVIDOR SEGURO EN APACHE MEDIANTE OPENSSL SOLICITUD, INSTALACIÓN y CONFIGURACIÓN DE UN AC CAMERFIRMA - NIF: A 82743287 USO: EXTERNO Página 1 de 7 CONTROL DE ACTUALIZACIONES EX-TEC-EHG2004-005 SOLICITUD E INSTALACIÓN DE UN APACHE MEDIANTE OPENSSL

Más detalles

Sockets Básicos. Sockets Básicos

Sockets Básicos. Sockets Básicos Sockets Básicos Pedro Merino Gómez Jesus Martínez Cruz Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga Sockets Básicos Temas a tratar... APIS para acceso a TCP/IP El socket como descriptor

Más detalles

Adaptación de aplicaciones a IPv6

Adaptación de aplicaciones a IPv6 Adaptación de aplicaciones a IPv6 extensión de la interfaz de sockets Eva M. Castro ecastro@dit.upm.es Tutorial IPv6 -Adaptación de aplicaciones a IPv6 1 Contenido * Introducción Modelo de sockets BSD

Más detalles

Sockets Básicos. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. Temas a tratar...

Sockets Básicos. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. Temas a tratar... Sockets Básicos Pedro Merino Gómez Jesus Martínez Cruz Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga Temas a tratar... Sockets Básicos El como descriptor para E/S Funciones básicas

Más detalles

Tema: Certificados Digitales

Tema: Certificados Digitales Seguridad en redes. Guía 9 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Seguridad en redes Tema: Certificados Digitales Contenidos Instalación de OpenSSL Creación de la Autoridad Certificadora

Más detalles

Unidad 4 Criptografía, SSL/TLS y HTTPS. Despliegue de aplicaciones web

Unidad 4 Criptografía, SSL/TLS y HTTPS. Despliegue de aplicaciones web Unidad 4 Criptografía, SSL/TLS y HTTPS Índice Introducción. Criptografía Introducción Algoritmos criptográficos Introducción. Clave secreta. Clave pública. Funciones resumen (hash). 2 Índice Firma digital.

Más detalles

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet Sockets (TCP) Tema 2- Nivel de aplicación en Internet Dr Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Material parcialmente adaptado del libro Computer Networking:

Más detalles

Para esto, he desarrollado una aplicación en Visual Studio con tres proyectos, como se presenta en la siguiente ilustración:

Para esto, he desarrollado una aplicación en Visual Studio con tres proyectos, como se presenta en la siguiente ilustración: Caso Práctico: Diffie-Hellman sobre socket de C# Este caso práctico se abordará en el ámbito de aplicaciones cliente/servidor; programación con Socket. Se aplicará el lenguaje C#, el.net Framework 3.5

Más detalles

Creación y administración de certificados de seguridad mediante OpenSSL

Creación y administración de certificados de seguridad mediante OpenSSL Doble Titulación Informática + Telemática 1 Creación y administración de certificados de seguridad mediante OpenSSL Introducción En determinadas ocasiones es necesaria una conexión segura: Petición de

Más detalles

3. En caso de que no esté instalado hacemos lo siguiente

3. En caso de que no esté instalado hacemos lo siguiente MANUAL PARA PRINCIPIANTES - CREAR CERTIFICADOS DIGITALES EN APACHE CON OPENSSL Elaborado por: JOHN HENRY BERMÚDEZ JUAN CARLOS VIDAL Configuración certificados digitales en Apache 1. Tenemos que verificar

Más detalles

07 << Acceso en exclusiva al recurso compartido >>

07 << Acceso en exclusiva al recurso compartido >> Sistemas Operativos 4º Semestre. Grados II y MI Cuarto Parcial. Sistema de Ficheros. 2 de Junio de 2014. Dispone de 50 minutos. Publicación de notas el Jueves 5 de Junio 2014. Revisión el Viernes 6 de

Más detalles

ARQUITECTURA DE REDES Laboratorio

ARQUITECTURA DE REDES Laboratorio 1nsloo.cl ARQUITECTURA DE REDES Laboratorio Práctica 4: Ejercicios de aplicación de HTTP 1. OBJETIVOS. El objetivo de esta práctica es que el alumno llegue a conocer los principales conceptos relacionados

Más detalles

Diseño de aplicaciones distribuidas ÍNDICE

Diseño de aplicaciones distribuidas ÍNDICE Aplicaciones Distribuidas (s) Aplicaciones Distribuidas (s) TCP TCP Protocolos de Protocolos de Transporte Transporte UDP UDP STREAM STREAM (TCP) (TCP) SOCKET SOCKET Etapas en la Creación Etapas en la

Más detalles

AGESIC Área de tecnología

AGESIC Área de tecnología AGESIC Área de tecnología Tutorial para la Solicitud e Instalación de Certificados para la PGE Plataforma Java Nombre actual del archivo: Tutorial_Certificados_Java_v1.9.odt Liniers 1324 piso 4, Torre

Más detalles

Cómo solicitar e instalar un certificado de servidor en IIS

Cómo solicitar e instalar un certificado de servidor en IIS 1 de 7 01/12/2007 1:43 Cómo solicitar e instalar un certificado de servidor en IIS Solicitar un certificado e instalarlo en IIS, En este documento se muestra cómo solicitar un certificado para nuestro

Más detalles

Desde nuestros sistemas se puede acceder a los siguientes Web Service de Afip:

Desde nuestros sistemas se puede acceder a los siguientes Web Service de Afip: Desde nuestros sistemas se puede acceder a los siguientes Web Service de Afip: WSFE Web Service de Factura Electrónica WSFEX- Web Service de Factura Electrónica de Exportación WSBFE Web Service de Factura

Más detalles

SOLICITUD E INSTALACIÓN DE UN CERTIFICADO DE SERVIDOR SEGURO EN APACHE 2.X MEDIANTE OPENSSL EX-2009-10-10

SOLICITUD E INSTALACIÓN DE UN CERTIFICADO DE SERVIDOR SEGURO EN APACHE 2.X MEDIANTE OPENSSL EX-2009-10-10 CERTIFICADO DE SERVIDOR SEGURO EN APACHE 2.X MEDIANTE OPENSSL AC CAMERFIRMA - NIF: A 82743287 USO: EXTERNO Página 1 de 6 CONTROL DE ACTUALIZACIONES VERSIÓN FECHA ELABORADO REVISADO APROBADO 1.0 10/07/2009

Más detalles

OpenSSL. Ing Jean Díaz

OpenSSL. Ing Jean Díaz OpenSSL Ing Jean Díaz Introducción OpenSSL, es una implementación de código libre del protocolo SSL (y del protocolo TSL). Su principal utilización es para realizar comunicaciones seguras en la Internet.

Más detalles

Qué es un socket? Dominios de comunicación. Tipos de sockets en el dominio AF_INET. Sockets Stream. Sockets Datagram. Sockets Raw

Qué es un socket? Dominios de comunicación. Tipos de sockets en el dominio AF_INET. Sockets Stream. Sockets Datagram. Sockets Raw Qué es un socket? Es una interfaz de entrada salida de datos que permite la intercomunicación entre procesos. Los procesos pueden estar ejecutándose en el mismo o en distintos sistemas, unidos mediante

Más detalles

Lo Primer que vamos hacer es ingresar a la página de la AFIP con nuestro Número de CUIT y Clave Fiscal

Lo Primer que vamos hacer es ingresar a la página de la AFIP con nuestro Número de CUIT y Clave Fiscal 1. Objetivos Este Manual explica cuales son los pasos para poder generar las claves fiscales y que cambios hay que hacer en nuestra página de AFIP para habilitarnos a trabajar con Facturación Fiscal desde

Más detalles

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

Creación y administración de certificados de seguridad mediante OpenSSL.

Creación y administración de certificados de seguridad mediante OpenSSL. Creación y administración de certificados de seguridad mediante OpenSSL. Introducción. Autor: Enrique V. Bonet Esteban En ocasiones, servicios que estudiaremos con posterioridad como un servidor de HTTP,

Más detalles

Otros usos de PKCS#11 y el DNIe

Otros usos de PKCS#11 y el DNIe Otros usos de PKCS#11 y el DNIe Guión Introducción al DNIe Man In Remote Vídeo Demo MiR Reloaded Solución Introducción al DNIe Microprocesador genérico Criptoprocesador Comunicaciones vía puerto serie

Más detalles

Software de Comunicaciones. Práctica 6 - HTTPS con Apache y PKCS

Software de Comunicaciones. Práctica 6 - HTTPS con Apache y PKCS Software de Comunicaciones Práctica 6 - HTTPS con Apache y PKCS Juan Díez-Yanguas Barber Software de Comunicaciones Ingeniería Informática - 5º Curso Jdyb - Abril 2013 Juan Díez- Yanguas Barber Práctica

Más detalles

Solución de encriptación completa de MX-ONE con Teldat

Solución de encriptación completa de MX-ONE con Teldat Solución de encriptación completa de MX-ONE con Teldat Fecha: Noviembre 2013 Aastra Telecom Contenidos 1 Introducción 3 1.1 Versiones 3 2 Configuración 4 2.1 A tener en cuenta 4 2.2 Configuración previa

Más detalles

Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013

Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013 Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013 Proyecto I Autores: Lairon Acosta. Carnet: 09-10927 Jueves

Más detalles

SSL. Secure Sockets Layer

SSL. Secure Sockets Layer SSL Secure Sockets Layer 1 Certificado Digital Documento digital que verifica que una llave pública pertenece a una determinada persona o entidad. Criptografía de clave pública. Firma digital. Elementos

Más detalles

COMUNICACIÓN ENTRE PROCESOS SOCKETS

COMUNICACIÓN ENTRE PROCESOS SOCKETS COMUNICACIÓN ENTRE PROCESOS SOCKETS Diseño de Sistemas Operativos Curso 2007/08 Grupo: Mi30 Martín Santana, A. David Martínez Santana, Luis Ignacio Qué son?(definición) n) Los sockets son mecanismos de

Más detalles

Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado

Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado Ministerio Secretaría General de la Presidencia Unidad de Modernización y

Más detalles

Practica 4 1. Certificados digitales

Practica 4 1. Certificados digitales Practica 4 1. Certificados digitales 1.1. Certificados digitales verificados Responde a las siguientes preguntas: 1. Qué algoritmo de clave simétrica se ha utilizado para cifrar la información? Cifrado

Más detalles

Instructivo para Solicitud de Certificado de Servidor 080-ISS-I017

Instructivo para Solicitud de Certificado de Servidor 080-ISS-I017 Instructivo para Solicitud de Certificado de Servidor 080-ISS-I017 Parte 1, generación del archivo Para llevar a cabo esta tarea se debe trabajar con el usuario ROOT (en el servidor) y se debe tener instalado

Más detalles

Mecanismo(s) de intercambio de información entre 2 ó más computadores conectados entre sí o a través de otros.

Mecanismo(s) de intercambio de información entre 2 ó más computadores conectados entre sí o a través de otros. Comunicaciones Comunicaciones: Mecanismo(s) de intercambio de información entre 2 ó más computadores conectados entre sí o a través de otros. Terminología: Trama: unidad de información a transmitir Medio:

Más detalles

Versión 1.0, 26 de marzo de 2.000

Versión 1.0, 26 de marzo de 2.000 ARQUITECTURA DE REDES DE COMPUTADORES II 2ª Práctica. Sockets. 4º Curso de la Ingeniería en Informática Departamento de Tecnología Electrónica Universidad de Sevilla Versión 1.0, 26 de marzo de 2.000 TITULACIÓN:

Más detalles

El lenguaje de Programación C. Fernando J. Pereda

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

Clase de Sockets en lenguaje C. Prof. Ricardo González

Clase de Sockets en lenguaje C. Prof. Ricardo González Clase de Sockets en lenguaje C Prof. Ricardo González 1 Modelo de Programación Cliente-Servidor Cliente: un programa que envía peticiones. Servidor: un programa que ofrece un servicio que satisface peticiones

Más detalles

Se guardan en archivos con extencion c y los cabezales con extension h

Se guardan en archivos con extencion c y los cabezales con extension h Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767

Más detalles

Examen de Fundamentos de Redes de Computadores Junio 2005

Examen de Fundamentos de Redes de Computadores Junio 2005 Examen de Fundamentos de Redes de Computadores Junio 2005 1. (1.5 puntos) Se quiere enviar un mensaje de 20 Kbytes entre dos hosts conectados directamente. La conexión entre ellos presenta las siguientes

Más detalles

Redes (IS20) Ingeniería Técnica en Informática de Sistemas - (2º Curso)

Redes (IS20) Ingeniería Técnica en Informática de Sistemas - (2º Curso) Redes (IS20) Ingeniería Técnica en Informática de Sistemas - (2º Curso) Práctica 2: Programación en Red. Protocolos TCP y UDP. Comunicación entre procesos mediante Sockets Descripción del equipo: 1. Ordenadores

Más detalles

Tema 4 El paradigma cliente-servidor

Tema 4 El paradigma cliente-servidor Tema 4 El paradigma cliente-servidor F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de

Más detalles

TimeOut RTT medido 1 5 seg. 2*5= 10 1 2 0,7 3 TimeOut 3 TimeOut 3 0,001 4 0,35 5 0,44

TimeOut RTT medido 1 5 seg. 2*5= 10 1 2 0,7 3 TimeOut 3 TimeOut 3 0,001 4 0,35 5 0,44 ARQUITECTURA DE REDES Y SERVICIOS DE TELECOMUNICACIÓN Junio 2014 Teoría: 1) Qué sucedería si por error recibiera UDP un datagrama UDP que originalmente iba destinado a otra máquina?. (0,5 ptos) 2) Asumiendo

Más detalles

Seguridad en Redes de Comunicación

Seguridad en Redes de Comunicación Seguridad en Redes de Comunicación Prác%ca 4. SSL / TLS Jorge Lanza Calderón Luis Sánchez González Departamento de Ingeniería de Comunicaciones Este tema se publica bajo Licencia: Crea:ve Commons BY- NC-

Más detalles

Analiza y elabora un manual de uso con ejemplos de la herramienta OpenSSL.

Analiza y elabora un manual de uso con ejemplos de la herramienta OpenSSL. Instalacion de OpenSll El proceso de instalación de OpenSSL para Windows es muy sencillo, tendremos el clásico asistente donde tendremos que aceptar la licencia y seleccionar el destino donde queremos

Más detalles

SOLICITUD, INSTALACIÓN y CONFIGURACIÓN DE UN CERTIFICADO DE SERVIDOR SEGURO EN APACHE MEDIANTE OPENSSL

SOLICITUD, INSTALACIÓN y CONFIGURACIÓN DE UN CERTIFICADO DE SERVIDOR SEGURO EN APACHE MEDIANTE OPENSSL SOLICITUD, INSTALACIÓN y CONFIGURACIÓN DE UN AC CAMERFIRMA - NIF: A 82743287 USO: INTERNO Página 1 de 7 CONTROL DE ACTUALIZACIONES EX-TEC-EHG2004-005 SOLICITUD E INSTALACIÓN DE UN APACHE MEDIANTE OPENSSL

Más detalles

LENGUAJE. Tema 1 - Introducción

LENGUAJE. Tema 1 - Introducción LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del

Más detalles

Trabajo Práctico N 4 Sockets

Trabajo Práctico N 4 Sockets FACULTAD DE INGENIERÍA UNIVERSIDAD DE BUENOS AIRES 66.48 Seminario de Redes de Computadora Trabajo Práctico N 4 Sockets Integrantes: - Santiago Boeri (79529) - Hernán Castagnola (79555) - Christian Picot

Más detalles

MANUAL DE CERTIFICADOS SSL GENERACION DE CSR APACHE OPENSSL

MANUAL DE CERTIFICADOS SSL GENERACION DE CSR APACHE OPENSSL MANUAL DE CERTIFICADOS SSL GENERACION DE CSR APACHE OPENSSL IDENTIFICADOR NOMBRE DEL DOCUMENTO ESTADO DEL DOCUMENTO AREA RESPONSABLES REVISORES COM-MA-031 MANUAL DE CERTIFICADOS SSL GENERACION DE CSR APACHE

Más detalles

Sistema Cliente Servidor Con Sockets

Sistema Cliente Servidor Con Sockets Sistema Cliente Servidor Con Sockets Rafael Benedicto Tovar Antonio Soler Muñoz 0 Índice 1. Resumen del proyecto 2 Introducción teórica 2.1 - Qué es un socket? 2.2 - Dominios de comunicación 2.3 - Tipos

Más detalles

Implementación de Open SSL en PalmOS Roberto Gómez, Member, IEEE1

Implementación de Open SSL en PalmOS Roberto Gómez, Member, IEEE1 1 Implementación de Open SSL en PalmOS Roberto Gómez, Member, IEEE1 rogomez@itesm.mx Abstract-- El papel que están jugando los dispositivos PDAs en las empresas completamente conectadas esta creciendo.

Más detalles

AGESIC Gerencia de Proyectos

AGESIC Gerencia de Proyectos AGESIC Gerencia de Proyectos Tutorial para la Solicitud de Certificados para la PGE Plataforma Microsoft Historial de Revisiones Fecha Versión Descripción Autor 30/06/2011 1.0 Versión inicial Horacio López

Más detalles

Gestión de Declaración Sumaria GDS Version 1.0

Gestión de Declaración Sumaria GDS Version 1.0 Gestión de Declaración Sumaria GDS Version 1.0 Tabla de contenido 1.1 Propósito...3 1.2 Ámbito...3 1.3 Abreviaturas...3 1.4 Suposiciones...3 1.5 Atributos XML...4 1.5.1 RetornoMensajeIata...4 1.5.2 Autenticacion...4

Más detalles

EJEMPLOS PROGRAMACIÓN SOCKET - JAVA

EJEMPLOS PROGRAMACIÓN SOCKET - JAVA EJEMPLOS PROGRAMACIÓN SOCKET - JAVA 1.- Calcular el Cuadrado TCP En esta aplicación el cliente se conecta al servidor, para ello debe introducir la dirección IP del servidor y los parámetros sobre los

Más detalles

66.69 Criptografía y Seguridad Informática TP Certificados, Autoridad Certificarte

66.69 Criptografía y Seguridad Informática TP Certificados, Autoridad Certificarte Universidad de Buenos Aires Facultad de Ingeniería Objetivo 66.69 Criptografía y Seguridad Informática TP Certificados, Autoridad Certificarte El objetivo de este trabajo práctico es la creación de una

Más detalles

Práctica 1: sockets en Python

Práctica 1: sockets en Python Práctica 1: sockets en Python Álvaro Navarro anavarro@gsyc.es Jesús M. González-Barahona jgb@gsyc.es Infraestructura de Redes 5 o Ingeniería Informática 08/09 1. Fase 1: Cliente UDP Esta primera fase tiene

Más detalles

EMISIÓN DE COMPROBANTES ELECTRÓNICOS ORIGINALES

EMISIÓN DE COMPROBANTES ELECTRÓNICOS ORIGINALES EMISIÓN DE COMPROBANTES ELECTRÓNICOS ORIGINALES Consideraciones y ejemplos Leandro D. Pais GENERALIDADES 2 Generalidades Consideraciones 3 RG 3749 Comprobantes alcanzados Titulo I Responsables inscriptos

Más detalles

Modem IBM Compatible. IBM Compatible. Ethernet IBM AS/400. Laser printer. Workstation. Mac II. El Interfaz. Socket. versión perliminar

Modem IBM Compatible. IBM Compatible. Ethernet IBM AS/400. Laser printer. Workstation. Mac II. El Interfaz. Socket. versión perliminar IBM Compatible Modem IBM Compatible Ethernet IBM AS/400 Laser printer Workstation Mac II El Interfaz Socket versión perliminar ÍNDICE 1. INTRODUCCIÓN. 2. QUÉ ES UN SOCKET?. 2.1. Dominio de un socket. 2.2.

Más detalles

Cisco CSS 11500 Series Content Services Switches

Cisco CSS 11500 Series Content Services Switches Cisco CSS 11500 Series Content Services Switches Cómo crear un pedido de firma de certificado en el CSS11500 Traducción por computadora Contenidos Introducción Antes de comenzar Convenciones Requisitos

Más detalles

Las clases Java Socket y ServerSocket

Las clases Java Socket y ServerSocket Las clases Java Socket y ServerSocket Lenguajes y Herramientas de Programación Universidad de La Laguna Programa de Doctorado de Física e Informática Escuela Técnica Superior Superior de Ingeniería Informática

Más detalles

S C TP: Una alternativa al protocolo TC P s obre Linux. Ing. Isaac Fernández Baca Peña

S C TP: Una alternativa al protocolo TC P s obre Linux. Ing. Isaac Fernández Baca Peña S C TP: Una alternativa al protocolo TC P s obre Linux Ing. Isaac Fernández Baca Peña M arco Teórico: Q ué es S C TP? Stream Control Transmission Protocol milar a TCP y UDP. Es un protocolo de comunicación

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor Creación de Sockets Cliente/Servidor Sockets en TCP Sockets en UDP Definición de DAEMON Concepto de Hilos Qué es un socket? Un socket

Más detalles