Comprender SSL para consumir el servicio web .Net de Android

Estoy desarrollando una aplicación de Android que necesita consumir servicios web .Net sobre SSL en los que no tengo experiencia. Ahora estoy buscando alguna guía y explicación sobre el protocolo de enlace y certificados SSL.

Not: el servidor está utilizandoDirección I y NO el nombre de dominio. Es una aplicación de intranet.

Hasta ahora he creado un certificado (llamado autofirmado?) En el servidor web desde IIS 7. Para consumirlo desde la aplicación de Android, encontré dos formas de hacerlo:

1). Incruste el certificado en la aplicación (¿Qué certificado? ¿Cómo lo obtengo?)

2). Confíe en todos los certificados (ppl dijo que hay un problema de seguridad con este enfoque, ¿podría elaborar más? ¿Todavía hace el apretón de manos?)

CERTIFICADOS:

¿Cuántos tipos de certificados hay en el apretón de manos y cuáles son?

¿El certificado autofirmado tiene certificado raíz? En caso afirmativo, ¿cómo puedo obtenerlos?

Es posible mover / copiar el certificado autofirmado de un servidor a otro?

APRETÓN DE MANOS

En primer lugar, ¿es correcto este proceso?

El proceso de protocolo de enlace SSL (copiado de un sitio web) se describe a continuación:

El cliente inicia el proceso de protocolo de enlace SSL enviando una URL que comienza con lo siguiente: https: // al servidor.

El cliente inicialmente envía al servidor web una lista de cada algoritmo de cifrado que admite. Los algoritmos compatibles con SSL incluyen RC4 y Data Encryption Standard (DES). El cliente también envía al servidor su cadena de desafío aleatorio que se utilizará más adelante en el proceso.

¿Se enviará el certificado incrustado aquí?

l siguiente servidor web realiza las siguientes tareas:

Selecciona un algoritmo de cifrado de la lista de algoritmos de cifrado admitidos y recibidos del cliente.

Envía al cliente una copia de su certificado de servidor.

Envía al cliente su cadena de desafío aleatorio

El cliente utiliza la copia del certificado del servidor recibido del servidor para autenticar la identidad del servidor.

El cliente obtiene la clave pública del servidor del certificado del servidor.

El cliente luego genera un secreto premaster. Esta es una cadena aleatoria diferente que a su vez se utilizará para generar la clave de sesión para la sesión SSL. Luego, el cliente cifra un valor diferente llamado secreto premaster usando la clave pública del servidor y devuelve este valor cifrado al servidor. Esto se acompaña con un hash con clave de los mensajes de apretón de manos y una clave maestra. El hash se usa para proteger los mensajes intercambiados en el proceso de protocolo de enlace. El hash se genera a partir de las dos cadenas aleatorias anteriores transmitidas entre el servidor y el cliente.

¿Qué es una clave maestra?

El servidor envía al cliente un hash con clave de todos los mensajes de intercambio intercambiados entre las dos partes hasta el momento.

¿De qué está hecho este hash con clave?

l servidor y el cliente generan la clave de sesión a partir de los diferentes valores y claves aleatorias, y aplicando un cálculo matemático.

a clave de sesión se utiliza como clave secreta compartida para cifrar y descifrar los datos intercambiados entre el servidor y el cliente.

La clave de sesión se descarta cuando la sesión SSL se agota o finaliza.

Respuestas a la pregunta(1)

Su respuesta a la pregunta