Cómo: Generar y ejecutar el ejemplo CNG

En este tema se describe la arquitectura del archivo del ejemplo de comunicación segura de criptografía de próxima generación (CNG) y se explica cómo se compila y se ejecuta el ejemplo.

Para compilar el ejemplo CNG, cree tres ejecutables de consola.Ejecute simultáneamente estos tres ejecutables para ver la composición en varios niveles del ejemplo interactivo.

El ejemplo CNG se escribió en C#.Requiere Visual Studio 2008 o versiones posteriores.

Compilar el ejemplo

El ejemplo CNG se compone de tres proyectos de Visual Studio: 

  • Alice

  • Bob

  • Mallory

El ejemplo contiene seis archivos; puede consultar y copiar estos archivos en los temas siguientes:

Cada proyecto tiene su propio archivo .cs (Alice.cs, Bob.cs y Mallory.cs) que contiene el código específico del proyecto.Los tres proyectos comparten los archivos Utilities.cs, ChannelManager.cs y Communicator.cs.Estos tres archivos se agregan directamente al proyecto Alice e indirectamente (a través de la vinculación del archivo) a los proyectos Bob y Mallory.

Para compilar los proyectos Alice, Bob y Mallory

  1. Inicie Visual Studio.

  2. En el menú Archivo, elija Nuevo y haga clic en Proyecto.

    Aparecerá el cuadro de diálogo Nuevo proyecto.

  3. En el panel Tipos de proyecto, haga clic en Visual C#.

  4. En el panel Plantillas, haga clic en Aplicación de consola.

  5. En el cuadro Nombre, escriba Alice.

  6. En el cuadro Ubicación, escriba la ubicación en la que desea guardar el proyecto Alice.

  7. Haga clic en Aceptar.

  8. Copie el código fuente de Alice en un archivo denominado Alice.cs y guárdelo en el directorio del proyecto Alice.Cuando se lo soliciten, confirme que desea reemplazar el archivo Alice.cs predeterminado.

  9. Copie el código fuente de ChannelManager, Communicator y Utilities en archivos diferentes denominados ChannelManager.cs, Communicator.cs y Utilities.cs y guárdelos en el directorio del proyecto Alice.Agregue estos tres archivos a su proyecto Alice tal y como se indica a continuación:

    1. En el menú Ver, haga clic en el Explorador de soluciones.

    2. En la ventana del Explorador de soluciones, haga clic con el botón secundario del mouse en la carpeta Alice, seleccione Agregar y, a continuación, haga clic en Elemento existente.

      Se abre el cuadro de diálogo Agregar elemento existente y se muestra el directorio del proyecto Alice.

    3. Seleccione los archivos ChannelManager.cs, Communicator.cs y Utilities.cs y, a continuación, haga clic en Agregar.

  10. Repita los pasos del 2 al 8 en los proyectos Bob y Mallory.Asegúrese de que guarda el código fuente de Bob en el directorio del proyecto Bob y el código fuente de Mallory en el directorio del proyecto Mallory.

  11. Repita el paso 9 en los proyectos Bob y Mallory.Sin embargo, en el paso 9.c, en lugar de hacer clic en Agregar, haga clic en la flecha situada junto al botón Agregar y haga clic en Agregar como vínculo.

  12. Establezca los directorios de salida de los proyectos Bob y Mallory tal y como se muestra a continuación:

    1. En el menú Proyecto, haga clic en Propiedades y, a continuación, haga clic en la ficha Generar.

    2. Establezca la ruta de acceso de resultados en la ubicación de compilación que utiliza el proyecto Alice.Es probable que esta ubicación sea \bin\Debug\ en el directorio del proyecto Alice que seleccionó en el paso 6.

  13. Para compilar cada uno de los proyectos, en el menú Generar, haga clic en Generar solución.

  14. Confirme que todos los proyectos se compilan sin errores y que los archivos ejecutables Alice.exe, Bob.exe y Mallory.exe se encuentran en el directorio del proyecto Alice.

Ejecutar el ejemplo

El ejemplo se puede ejecutar desde Visual Studio o como una aplicación independiente.Con estos dos métodos se obtienen los mismos resultados.

Para ejecutar el ejemplo CNG

  1. Para ejecutar el ejemplo desde Visual Studio, haga doble clic en los archivos .sln de los tres proyectos, Alice.sln, Bob.sln y Mallory.sln, para abrir las tres instancias de Visual Studio.En el proyecto Alice, en el menú Depurar, haga clic en Iniciar depuración.Repita esta operación en los proyectos Bob y Mallory.

    -O bien-

    Para ejecutar el ejemplo como una aplicación independiente, copie los archivos ejecutables (.exe) de los tres proyectos en un único directorio.Haga doble clic en Alice.exe en el Explorador de Windows.Alice llamará a los archivos ejecutables de Bob y Mallory a través de su cargador automático integrado.

    Nota

    También puede ejecutar el ejecutable de Alice desde una ventana de la consola; para ello, navegue hasta el directorio que contiene los tres ejecutables y escriba alice.exe en la línea de comandos.

    Al ejecutar los ejecutables, se abren tres ventanas de la consola.Los títulos de las ventanas reflejan los nombres del proyecto y las ventanas adoptan su tamaño y se colocan para que pueda ver fácilmente el flujo de mensajes en un monitor de 1280 x 1024.Puede mover y cambiar el tamaño de las ventanas de la consola para conseguir una óptima presentación.

  2. En la ventana Alice, cuando se le solicite una versión de seguridad, escriba un número comprendido entre 1 y 5.Para la primera prueba, escriba 1.

    Estos números corresponden a las cinco versiones de software que se explican en la información general del ejemplo CNG.

  3. Las versiones de 2 a 5 le solicitarán resultados detallados.Escriba n para el modo normal o y para el modo detallado.

    • El modo normal solo muestra los mensajes de texto simple.

    • El modo detallado muestra los mensajes de texto simple, las claves de firma digital, las claves criptográficas, los vectores de inicialización, el texto cifrado y las firmas digitales.

  4. Cuando le pregunten si desea deshabilitar Mallory, escriba n para "No" o y "Sí".

    Si Mallory está deshabilitado, no recibirá ningún mensaje y permanecerá inactivo.Alice y Bob se comunicarán sin la interceptación de Mallory.

  5. Siga la conversación con script entre Alice y Bob.

    Los detalles de la conversación dependen del número de versión que seleccionó en el paso 2.Cada ventana crea un bucle de mensajes que alterna entre el modo de envío y recepción.El modo de envío se indica mediante el símbolo del sistema :>.El modo de recepción se indica mediante una línea en blanco.Si Alice está en modo de envío, Bob estará en modo de recepción.Cuando Bob reciba un mensaje, cambiará al modo de envío y Alice pasará al modo de recepción.

    Examine cuidadosamente los mensajes de Alice y Bob.El segundo mensaje que Alice envía a Bob y la respuesta de éste a Alice a Bob fueron modificados por Mallory.

    Una vez que termina la conversación con script, Alice le preguntará si desea hablar con Bob.

  6. Si desea enviar sus propios mensajes, en el símbolo del sistema:

    1. Escriba un mensaje y presione ENTRAR.Alice enviará el mensaje a Bob.

    2. Establezca el foco en la ventana Bob, escriba un mensaje y presione ENTRAR.Bob enviará el mensaje a Alice.

    3. Repita los dos pasos anteriores para enviar otros mensajes.

  7. Cuando desee salir, presione ENTRAR en la ventana de Alice o Bob cuando esté en modo de envío (lo que se indica mediante el símbolo del sistema :>).

    Las tres ventanas se restablecerán en sus estados del paso 2.

    Nota

    Si cierra una ventana haciendo clic en el botón Cerrar, las ventanas pueden dejar de responder.Tendrá que cerrar todas las ventanas que estén abiertas y reiniciar el ejemplo.

  8. Ejecute el ejemplo con diferentes opciones.Si selecciona el modo detallado y la versión 2, 3, 4 o 5, puede comparar las cadenas cifradas que Alice envía con las cadenas cifradas que Bob recibe.Deberían coincidir exactamente a menos que Mallory esté habilitado.Sin embargo, observe que los caracteres superiores a 128 en el juego de caracteres ASCII se representan mediante signos de interrogación (?) porque no se pueden mostrar.

Vea también

Conceptos

Ejemplo de comunicación segura de criptografía de próxima generación (CNG)

Servicios criptográficos