diff --git a/documentation/content/es/articles/ipsec-must/_index.adoc b/documentation/content/es/articles/ipsec-must/_index.adoc index e584b3d893..94bc14311f 100644 --- a/documentation/content/es/articles/ipsec-must/_index.adoc +++ b/documentation/content/es/articles/ipsec-must/_index.adoc @@ -1,276 +1,278 @@ --- -title: Verificación independiente de la funcionalidad de IPsec en FreeBSD authors: - - author: David Honig + - + author: 'David Honig' email: honig@sprynet.com +description: 'Verificación independiente de la funcionalidad de IPsec en FreeBSD' +tags: ["IPsec", "verification", "FreeBSD"] +title: 'Verificación independiente de la funcionalidad de IPsec en FreeBSD' trademarks: ["freebsd", "opengroup", "general"] --- = Verificación independiente de la funcionalidad de IPsec en FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/ipsec-must/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Resumen -Instaló IPsec y parece estar funcionando. ¿Cómo lo sabe? Describo un método para verificar de forma experimental que IPsec está funcionando. +Has intalado IPsec y parece estar funcionando. ¿Cómo lo sabes? Describo un método para verificar de forma experimental que IPsec está funcionando. ''' toc::[] [[problem]] -== El problema +== El Problema -Primero, asumamos que ha <>. ¿Cómo sabe que está <>? Claro, su conexión no funcionará si está mal configurada, y funcionará cuando finalmente lo haga bien. man:netstat[1] la listará. ¿Pero puede confirmarlo de forma independiente? +Primero, asumamos que has <>. ¿Cómo sabes que está funcionando? (<>) Claro, tu conexión no funcionará si está mal configurado y funcionará cuando finalmente lo hagas bien. man:netstat[1] lo mostrará. ¿Pero puedes confirmarlo de forma independiente? [[solution]] -== La solución +== La Solución Primero, alguna información teórica relevante sobre criptografía: . Los datos cifrados se distribuyen uniformemente, es decir, tienen una entropía máxima por símbolo; . Los datos sin procesar y sin comprimir suelen ser redundantes, es decir, tienen una entropía submáxima. -Suponga que usted pudiera medir la entropía de los datos que van hacia -y desde- su interfaz de red. Entonces podría ver la diferencia entre los datos no cifrados y los cifrados. Esto sería verdad incluso si algunos de los datos en "modo cifrado" no lo estuvieran---ya que el encabezado IP más externo debe estarlo para que el paquete sea enrutable. +Imagina que pudieras medir la entropía de los datos que van hacia -y desde- tu interfaz de red. Entonces podrías ver la diferencia entre los datos no cifrados y los cifrados. Esto sería verdad incluso si algunos de los datos en "modo cifrado" no lo estuvieran---ya que el encabezado IP más externo debe estarlo para que el paquete sea enrutable. [[MUST]] === MUST -El "Universal Statistical Test for Random Bit Generators" (https://web.archive.org/web/20011115002319/http://www.geocities.com/SiliconValley/Code/4704/universal.pdf[MUST]) de Ueli Maurer mide rápidamente la entropía de una muestra. Utiliza un algoritmo de compresión. <> para una variante que mide partes sucesivas (~cuarto de megabyte) de un archivo +Ueli Maurer's "Universal Statistical Test for Random Bit Generators"(https://web.archive.org/web/20011115002319/http://www.geocities.com/SiliconValley/Code/4704/universal.pdf[MUST]) calcula rápidamente la entropía de una muestra. Utiliza un algoritmo de tipo compresión. <> para una variante que mide trozos sucesivos (~ un cuarto de megabyte) de un fichero. [[tcpdump]] === Tcpdump -También necesitamos una forma de capturar los datos de red sin procesar. Un programa llamado man:tcpdump[1] le permite hacerlo, si tiene habilitada la interfaz de _Berkeley Packet Filter_ en el <>. +También necesitamos una forma de capturar datos de red en crudo. Un programa llamado man:tcpdump[1] te permite hacer esto si tienes configurado el interfaz _Berkeley Packet Filger_ en tu <>. El comando: -[source,shell] +[source, shell] .... tcpdump -c 4000 -s 10000 -w dumpfile.bin .... -capturará 4000 paquetes sin procesar en el fichero _dumpfile.bin_. En este ejemplo se capturarán hasta 10.000 bytes por paquete. +capturará 4000 paquetes en crudo y los guardará en _dumpfile.bin_. Se capturarán hasta 10,000 bytes por cada paquete en este ejemplo. [[experiment]] -== El experimento +== El Experimento Aquí está el experimento: [.procedure] ==== -. Abra una ventana a un host IPsec y otra ventana a un host inseguro. -. Ahora empiece a <>. -. En la ventana "segura", ejecute el comando UNIX(R) man:yes[1], que transmitirá el carácter `y`. Después de un rato, detenga el comando. Cambie a la ventana insegura, y repita. Espere un poco, detenga el comando. -. Ahora ejecute <> en los paquetes capturados. Debería ver algo como lo siguiente. Lo importante a tener en cuenta es que la conexión segura tiene un 93% (6,7) del valor esperado (7,18), y la conexión "normal" tiene un 29% (2,1) del valor esperado. +. Abre una ventana a un host IPsec y otra ventana a un host inseguro. +. Ahora arranca <>. +. En la ventana "segura", arranca el comando UNIX(R) man:yes[1], que mostrará continuamente el carácter `y`. Después de un rato, páralo. Cambia a la ventana insegura y ejecútalo de nuevo. Después de un rato, páralo. +. Ahora ejecuta <> en los paquetes capturados. Deberías ver algo como lo que se muestra a continuación. El punto importante en que fijarse es que la conexión segura tiene un 93% (6.7) de los valores esperados (7.18) y que la conexión "normal" tiene un 29% (2.1) de los valores esperados. + -[source,shell] +[source, shell] .... % tcpdump -c 4000 -s 10000 -w ipsecdemo.bin - % uliscan ipsecdemo.bin Uliscan 21 Dec 98 L=8 256 258560 Measuring file ipsecdemo.bin Init done Expected value for L=8 is 7.1836656 6.9396 -------------------------------------------------------- 6.6177 ----------------------------------------------------- 6.4100 --------------------------------------------------- 2.1101 ----------------- 2.0838 ----------------- 2.0983 ----------------- .... ==== [[caveat]] == Advertencia -Este experimento muestra que IPsec _parece_ estar distribuyendo los datos de la carga útil __uniformemente__, como debe hacerlo el cifrado. Sin embargo, el experimento aquí descrito _puede no_ detectar muchas de las posibles fallas del sistema (para las cuales no tengo evidencias). Esto incluye la generación o intercambio de claves deficientes, datos o claves visibles para otros, uso de algoritmos débiles, subversión del kernel, etc. Estudie el código; conozca el código. +Este experimento muestra que IPsec _parece_ estar distribuyendo los datos de la carga útil _uniformemente_, como debe hacerlo el cifrado. Sin embargo, el experimento aquí descrito _no puede_ detectar muchas de las posibles fallos del sistema (para los cuales no tengo evidencias). Esto incluye la generación o intercambio de claves deficientes, datos o claves visibles para otros, uso de algoritmos débiles, subversión del kernel, etc. Estudia el código; conoce el código. [[IPsec]] == IPsec---Definición Extensiones de seguridad del Protocolo de Internet para IPv4; requerido para IPv6. Un protocolo para negociar el cifrado y la autenticación a nivel de IP (host a host). SSL solo protege un socket de aplicación. SSH protege solo el login. PGP protege un archivo o mensaje específico. IPsec encripta todo entre dos hosts. [[ipsec-install]] == Instalando IPsec -La mayoría de las versiones modernas de FreeBSD soportan IPsec en su código base. Por lo tanto, deberá incluir la opción `IPSEC` en la configuración de su kernel y, después de recompilar y reinstalar el kernel, configure las conexiones de IPsec usando el comando man:setkey[8]. +La mayoría de las versiones modernas de FreeBSD tienen soporte para IPsec en su código fuente. Así que tendrás que incluir la opción `IPSEC` en la configuración del kernel y después de recompilar y reinstalar, configurar conexiones IPsec utilizando el comando man:setkey[8]. -En el extref:{handbook}security[Manual de FreeBSD, ipsec] se proporciona una guía completa sobre cómo ejecutar IPsec en FreeBSD. +En el extref:{handbook}[FreeBSD Handbook, ipsec] se proporciona una guía completa sobre cómo ejecutar IPsec en FreeBSD. [[kernel]] == src/sys/i386/conf/KERNELNAME -Esto debe estar presente en el archivo de configuración del kernel para capturar datos de red con man:tcpdump[1]. Asegúrese de ejecutar man:config[8] después de agregar esto, recompilar y reinstalar. +Esto necesita estar en el fichero de configuración del kernel para poder capturar datos de red con man:tcpdump[1]. Asegúrate de ejecutar man:config[8] después de añadir esto y recompilar y reinstalar. [.programlisting] .... device bpf .... [[code]] == Maurer's Universal Statistical Test (tamaño de bloque=8 bits) -Puede encontrar el mismo código fuente en https://web.archive.org/web/20031204230654/http://www.geocities.com:80/SiliconValley/Code/4704/uliscanc.txt[este enlace]. +Puedes encontrar el mismo código en https://web.archive.org/web/20031204230654/http://www.geocities.com:80/SiliconValley/Code/4704/uliscanc.txt[este enlace]. [.programlisting] .... /* ULISCAN.c ---blocksize of 8 1 Oct 98 1 Dec 98 21 Dec 98 uliscan.c derived from ueli8.c - This version has // comments removed for Sun cc + En esta versión se han quitado // comentarios por el cc de Sun This implements Ueli M Maurer's "Universal Statistical Test for Random Bit Generators" using L=8 Accepts a filename on the command line; writes its results, with other info, to stdout. Handles input file exhaustion gracefully. Ref: J. Cryptology v 5 no 2, 1992 pp 89-105 also on the web somewhere, which is where I found it. -David Honig honig@sprynet.com Usage: ULISCAN filename outputs to stdout */ #define L 8 #define V (1< #include int main(argc, argv) int argc; char **argv; { FILE *fptr; int i,j; int b, c; int table[V]; double sum = 0.0; int iproduct = 1; int run; extern double log(/* double x */); printf("Uliscan 21 Dec 98 \nL=%d %d %d \n", L, V, MAXSAMP); if (argc < 2) { printf("Usage: Uliscan filename\n"); exit(-1); } else { printf("Measuring file %s\n", argv[1]); } fptr = fopen(argv[1],"rb"); if (fptr == NULL) { printf("Can't find %s\n", argv[1]); exit(-1); } for (i = 0; i < V; i++) { table[i] = 0; } for (i = 0; i < Q; i++) { b = fgetc(fptr); table[b] = i; } printf("Init done\n"); printf("Expected value for L=8 is 7.1836656\n"); run = 1; while (run) { sum = 0.0; iproduct = 1; if (run) for (i = Q; run && i < Q + K; i++) { j = i; b = fgetc(fptr); if (b < 0) run = 0; if (run) { if (table[b] > j) j += K; sum += log((double)(j-table[b])); table[b] = i; } } if (!run) printf("Premature end of file; read %d blocks.\n", i - Q); sum = (sum/((double)(i - Q))) / log(2.0); printf("%4.4f ", sum); for (i = 0; i < (int)(sum*8.0 + 0.50); i++) printf("-"); printf("\n"); /* refill initial table */ if (0) { for (i = 0; i < Q; i++) { b = fgetc(fptr); if (b < 0) { run = 0; } else { table[b] = i; } } } } } .... diff --git a/documentation/content/es/articles/ipsec-must/_index.po b/documentation/content/es/articles/ipsec-must/_index.po new file mode 100644 index 0000000000..af9d787152 --- /dev/null +++ b/documentation/content/es/articles/ipsec-must/_index.po @@ -0,0 +1,746 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Fernando Apesteguía , 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2022-02-01 09:21-0300\n" +"PO-Revision-Date: 2022-08-08 15:04+0000\n" +"Last-Translator: Fernando Apesteguía \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.10.1\n" + +#. type: Title = +#: documentation/content/en/articles/ipsec-must/_index.adoc:1 +#: documentation/content/en/articles/ipsec-must/_index.adoc:11 +#, no-wrap +msgid "Independent Verification of IPsec Functionality in FreeBSD" +msgstr "Verificación independiente de la funcionalidad de IPsec en FreeBSD" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:44 +msgid "Abstract" +msgstr "Resumen" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:47 +msgid "" +"You installed IPsec and it seems to be working. How do you know? I describe " +"a method for experimentally verifying that IPsec is working." +msgstr "" +"Has intalado IPsec y parece estar funcionando. ¿Cómo lo sabes? Describo un " +"método para verificar de forma experimental que IPsec está funcionando." + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:49 +msgid "'''" +msgstr "'''" + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:53 +#, no-wrap +msgid "The Problem" +msgstr "El Problema" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:58 +msgid "" +"First, lets assume you have <>. How do you know it is " +"<>? Sure, your connection will not work if it is misconfigured, and " +"it will work when you finally get it right. man:netstat[1] will list it. " +"But can you independently confirm it?" +msgstr "" +"Primero, asumamos que has <>. ¿Cómo sabes que está " +"funcionando? (<>) Claro, tu conexión no funcionará si está mal " +"configurado y funcionará cuando finalmente lo hagas bien. man:netstat[1] lo " +"mostrará. ¿Pero puedes confirmarlo de forma independiente?" + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:60 +#, no-wrap +msgid "The Solution" +msgstr "La Solución" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:63 +msgid "First, some crypto-relevant info theory:" +msgstr "Primero, alguna información teórica relevante sobre criptografía:" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:65 +msgid "" +"Encrypted data is uniformly distributed, i.e., has maximal entropy per " +"symbol;" +msgstr "" +"Los datos cifrados se distribuyen uniformemente, es decir, tienen una " +"entropía máxima por símbolo;" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:66 +msgid "" +"Raw, uncompressed data is typically redundant, i.e., has sub-maximal entropy." +msgstr "" +"Los datos sin procesar y sin comprimir suelen ser redundantes, es decir, " +"tienen una entropía submáxima." + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:70 +msgid "" +"Suppose you could measure the entropy of the data to- and from- your network " +"interface. Then you could see the difference between unencrypted data and " +"encrypted data. This would be true even if some of the data in \"encrypted " +"mode\" was not encrypted---as the outermost IP header must be if the packet " +"is to be routable." +msgstr "" +"Imagina que pudieras medir la entropía de los datos que van hacia -y desde- " +"tu interfaz de red. Entonces podrías ver la diferencia entre los datos no " +"cifrados y los cifrados. Esto sería verdad incluso si algunos de los datos " +"en \"modo cifrado\" no lo estuvieran---ya que el encabezado IP más externo " +"debe estarlo para que el paquete sea enrutable." + +#. type: Title === +#: documentation/content/en/articles/ipsec-must/_index.adoc:72 +#, no-wrap +msgid "MUST" +msgstr "MUST" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:77 +msgid "" +"Ueli Maurer's \"Universal Statistical Test for Random Bit Generators" +"\"(https://web.archive.org/web/20011115002319/http://www.geocities.com/" +"SiliconValley/Code/4704/universal.pdf[MUST]) quickly measures the entropy of " +"a sample. It uses a compression-like algorithm. <> for a variant " +"which measures successive (~quarter megabyte) chunks of a file." +msgstr "" +"Ueli Maurer's \"Universal Statistical Test for Random Bit Generators\"" +"(https://web.archive.org/web/20011115002319/http://www.geocities.com/" +"SiliconValley/Code/4704/universal.pdf[MUST]) calcula rápidamente la entropía " +"de una muestra. Utiliza un algoritmo de tipo compresión. <> para una " +"variante que mide trozos sucesivos (~ un cuarto de megabyte) de un fichero." + +#. type: Title === +#: documentation/content/en/articles/ipsec-must/_index.adoc:79 +#, no-wrap +msgid "Tcpdump" +msgstr "Tcpdump" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:83 +msgid "" +"We also need a way to capture the raw network data. A program called man:" +"tcpdump[1] lets you do this, if you have enabled the _Berkeley Packet " +"Filter_ interface in your <>." +msgstr "" +"También necesitamos una forma de capturar datos de red en crudo. Un programa " +"llamado man:tcpdump[1] te permite hacer esto si tienes configurado el " +"interfaz _Berkeley Packet Filger_ en tu <>." + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:85 +msgid "The command:" +msgstr "El comando:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:89 +#, no-wrap +msgid " tcpdump -c 4000 -s 10000 -w dumpfile.bin\n" +msgstr " tcpdump -c 4000 -s 10000 -w dumpfile.bin\n" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:93 +msgid "" +"will capture 4000 raw packets to _dumpfile.bin_. Up to 10,000 bytes per " +"packet will be captured in this example." +msgstr "" +"capturará 4000 paquetes en crudo y los guardará en _dumpfile.bin_. Se " +"capturarán hasta 10,000 bytes por cada paquete en este ejemplo." + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:95 +#, no-wrap +msgid "The Experiment" +msgstr "El Experimento" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:98 +msgid "Here is the experiment:" +msgstr "Aquí está el experimento:" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:102 +msgid "Open a window to an IPsec host and another window to an insecure host." +msgstr "Abre una ventana a un host IPsec y otra ventana a un host inseguro." + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:103 +msgid "Now start <>." +msgstr "Ahora arranca <>." + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:104 +msgid "" +"In the \"secure\" window, run the UNIX(R) command man:yes[1], which will " +"stream the `y` character. After a while, stop this. Switch to the insecure " +"window, and repeat. After a while, stop." +msgstr "" +"En la ventana \"segura\", arranca el comando UNIX(R) man:yes[1], que " +"mostrará continuamente el carácter `y`. Después de un rato, páralo. Cambia a " +"la ventana insegura y ejecútalo de nuevo. Después de un rato, páralo." + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:105 +msgid "" +"Now run <> on the captured packets. You should see something like the " +"following. The important thing to note is that the secure connection has 93% " +"(6.7) of the expected value (7.18), and the \"normal\" connection has 29% " +"(2.1) of the expected value." +msgstr "" +"Ahora ejecuta <> en los paquetes capturados. Deberías ver algo como lo " +"que se muestra a continuación. El punto importante en que fijarse es que la " +"conexión segura tiene un 93% (6.7) de los valores esperados (7.18) y que la " +"conexión \"normal\" tiene un 29% (2.1) de los valores esperados." + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:121 +#, no-wrap +msgid "" +"% tcpdump -c 4000 -s 10000 -w ipsecdemo.bin\n" +"% uliscan ipsecdemo.bin\n" +"Uliscan 21 Dec 98\n" +"L=8 256 258560\n" +"Measuring file ipsecdemo.bin\n" +"Init done\n" +"Expected value for L=8 is 7.1836656\n" +"6.9396 --------------------------------------------------------\n" +"6.6177 -----------------------------------------------------\n" +"6.4100 ---------------------------------------------------\n" +"2.1101 -----------------\n" +"2.0838 -----------------\n" +"2.0983 -----------------\n" +msgstr "" +"% tcpdump -c 4000 -s 10000 -w ipsecdemo.bin\n" +"% uliscan ipsecdemo.bin\n" +"Uliscan 21 Dec 98\n" +"L=8 256 258560\n" +"Measuring file ipsecdemo.bin\n" +"Init done\n" +"Expected value for L=8 is 7.1836656\n" +"6.9396 --------------------------------------------------------\n" +"6.6177 -----------------------------------------------------\n" +"6.4100 ---------------------------------------------------\n" +"2.1101 -----------------\n" +"2.0838 -----------------\n" +"2.0983 -----------------\n" + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:125 +#, no-wrap +msgid "Caveat" +msgstr "Advertencia" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:131 +msgid "" +"This experiment shows that IPsec _does_ seem to be distributing the payload " +"data __uniformly__, as encryption should. However, the experiment described " +"here _cannot_ detect many possible flaws in a system (none of which do I " +"have any evidence for). These include poor key generation or exchange, data " +"or keys being visible to others, use of weak algorithms, kernel subversion, " +"etc. Study the source; know the code." +msgstr "" +"Este experimento muestra que IPsec _parece_ estar distribuyendo los datos de " +"la carga útil _uniformemente_, como debe hacerlo el cifrado. Sin embargo, el " +"experimento aquí descrito _no puede_ detectar muchas de las posibles fallos " +"del sistema (para los cuales no tengo evidencias). Esto incluye la " +"generación o intercambio de claves deficientes, datos o claves visibles para " +"otros, uso de algoritmos débiles, subversión del kernel, etc. Estudia el " +"código; conoce el código." + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:133 +#, no-wrap +msgid "IPsec---Definition" +msgstr "IPsec---Definición" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:139 +msgid "" +"Internet Protocol security extensions to IPv4; required for IPv6. A " +"protocol for negotiating encryption and authentication at the IP (host-to-" +"host) level. SSL secures only one application socket; SSH secures only a " +"login; PGP secures only a specified file or message. IPsec encrypts " +"everything between two hosts." +msgstr "" +"Extensiones de seguridad del Protocolo de Internet para IPv4; requerido para " +"IPv6. Un protocolo para negociar el cifrado y la autenticación a nivel de IP " +"(host a host). SSL solo protege un socket de aplicación. SSH protege solo el " +"login. PGP protege un archivo o mensaje específico. IPsec encripta todo " +"entre dos hosts." + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:141 +#, no-wrap +msgid "Installing IPsec" +msgstr "Instalando IPsec" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:145 +msgid "" +"Most of the modern versions of FreeBSD have IPsec support in their base " +"source. So you will need to include the `IPSEC` option in your kernel " +"config and, after kernel rebuild and reinstall, configure IPsec connections " +"using man:setkey[8] command." +msgstr "" +"La mayoría de las versiones modernas de FreeBSD tienen soporte para IPsec en " +"su código fuente. Así que tendrás que incluir la opción `IPSEC` en la " +"configuración del kernel y después de recompilar y reinstalar, configurar " +"conexiones IPsec utilizando el comando man:setkey[8]." + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:147 +msgid "" +"A comprehensive guide on running IPsec on FreeBSD is provided in extref:" +"{handbook}[FreeBSD Handbook, ipsec]." +msgstr "" +"En el extref:{handbook}[FreeBSD Handbook, ipsec] se proporciona una guía " +"completa sobre cómo ejecutar IPsec en FreeBSD." + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:149 +#, no-wrap +msgid "src/sys/i386/conf/KERNELNAME" +msgstr "src/sys/i386/conf/KERNELNAME" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:153 +msgid "" +"This needs to be present in the kernel config file in order to capture " +"network data with man:tcpdump[1]. Be sure to run man:config[8] after adding " +"this, and rebuild and reinstall." +msgstr "" +"Esto necesita estar en el fichero de configuración del kernel para poder " +"capturar datos de red con man:tcpdump[1]. Asegúrate de ejecutar man:config[8]" +" después de añadir esto y recompilar y reinstalar." + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:157 +#, no-wrap +msgid "device\tbpf\n" +msgstr "device\tbpf\n" + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:160 +#, no-wrap +msgid "Maurer's Universal Statistical Test (for block size=8 bits)" +msgstr "Maurer's Universal Statistical Test (tamaño de bloque=8 bits)" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:163 +msgid "" +"You can find the same code at https://web.archive.org/web/20031204230654/" +"http://www.geocities.com:80/SiliconValley/Code/4704/uliscanc.txt[this link]." +msgstr "" +"Puedes encontrar el mismo código en https://web.archive.org/web/" +"20031204230654/http://www.geocities.com:80/SiliconValley/Code/4704/uliscanc." +"txt[este enlace]." + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:168 +#, no-wrap +msgid "" +"/*\n" +" ULISCAN.c ---blocksize of 8\n" +msgstr "" +"/*\n" +" ULISCAN.c ---blocksize of 8\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:172 +#, no-wrap +msgid "" +" 1 Oct 98\n" +" 1 Dec 98\n" +" 21 Dec 98 uliscan.c derived from ueli8.c\n" +msgstr "" +" 1 Oct 98\n" +" 1 Dec 98\n" +" 21 Dec 98 uliscan.c derived from ueli8.c\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:174 +#, no-wrap +msgid " This version has // comments removed for Sun cc\n" +msgstr " En esta versión se han quitado // comentarios por el cc de Sun\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:177 +#, no-wrap +msgid "" +" This implements Ueli M Maurer's \"Universal Statistical Test for Random\n" +" Bit Generators\" using L=8\n" +msgstr "" +" This implements Ueli M Maurer's \"Universal Statistical Test for Random\n" +" Bit Generators\" using L=8\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:180 +#, no-wrap +msgid "" +" Accepts a filename on the command line; writes its results, with other\n" +" info, to stdout.\n" +msgstr "" +" Accepts a filename on the command line; writes its results, with other\n" +" info, to stdout.\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:182 +#, no-wrap +msgid " Handles input file exhaustion gracefully.\n" +msgstr " Handles input file exhaustion gracefully.\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:185 +#, no-wrap +msgid "" +" Ref: J. Cryptology v 5 no 2, 1992 pp 89-105\n" +" also on the web somewhere, which is where I found it.\n" +msgstr "" +" Ref: J. Cryptology v 5 no 2, 1992 pp 89-105\n" +" also on the web somewhere, which is where I found it.\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:188 +#, no-wrap +msgid "" +" -David Honig\n" +" honig@sprynet.com\n" +msgstr "" +" -David Honig\n" +" honig@sprynet.com\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:193 +#, no-wrap +msgid "" +" Usage:\n" +" ULISCAN filename\n" +" outputs to stdout\n" +"*/\n" +msgstr "" +" Usage:\n" +" ULISCAN filename\n" +" outputs to stdout\n" +"*/\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:199 +#, no-wrap +msgid "" +"#define L 8\n" +"#define V (1<\n" +"#include \n" +msgstr "" +"#include \n" +"#include \n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:214 +#, no-wrap +msgid "" +"int main(argc, argv)\n" +"int argc;\n" +"char **argv;\n" +"{\n" +" FILE *fptr;\n" +" int i,j;\n" +" int b, c;\n" +" int table[V];\n" +" double sum = 0.0;\n" +" int iproduct = 1;\n" +" int run;\n" +msgstr "" +"int main(argc, argv)\n" +"int argc;\n" +"char **argv;\n" +"{\n" +" FILE *fptr;\n" +" int i,j;\n" +" int b, c;\n" +" int table[V];\n" +" double sum = 0.0;\n" +" int iproduct = 1;\n" +" int run;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:216 +#, no-wrap +msgid " extern double log(/* double x */);\n" +msgstr " extern double log(/* double x */);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:218 +#, no-wrap +msgid " printf(\"Uliscan 21 Dec 98 \\nL=%d %d %d \\n\", L, V, MAXSAMP);\n" +msgstr "" +" printf(\"Uliscan 21 Dec 98 \\n" +"L=%d %d %d \\n" +"\", L, V, MAXSAMP);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:225 +#, no-wrap +msgid "" +" if (argc < 2) {\n" +" printf(\"Usage: Uliscan filename\\n\");\n" +" exit(-1);\n" +" } else {\n" +" printf(\"Measuring file %s\\n\", argv[1]);\n" +" }\n" +msgstr "" +" if (argc < 2) {\n" +" printf(\"Usage: Uliscan filename\\n" +"\");\n" +" exit(-1);\n" +" } else {\n" +" printf(\"Measuring file %s\\n" +"\", argv[1]);\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:227 +#, no-wrap +msgid " fptr = fopen(argv[1],\"rb\");\n" +msgstr " fptr = fopen(argv[1],\"rb\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:232 +#, no-wrap +msgid "" +" if (fptr == NULL) {\n" +" printf(\"Can't find %s\\n\", argv[1]);\n" +" exit(-1);\n" +" }\n" +msgstr "" +" if (fptr == NULL) {\n" +" printf(\"Can't find %s\\n" +"\", argv[1]);\n" +" exit(-1);\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:236 +#, no-wrap +msgid "" +" for (i = 0; i < V; i++) {\n" +" table[i] = 0;\n" +" }\n" +msgstr "" +" for (i = 0; i < V; i++) {\n" +" table[i] = 0;\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:241 +#, no-wrap +msgid "" +" for (i = 0; i < Q; i++) {\n" +" b = fgetc(fptr);\n" +" table[b] = i;\n" +" }\n" +msgstr "" +" for (i = 0; i < Q; i++) {\n" +" b = fgetc(fptr);\n" +" table[b] = i;\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:243 +#, no-wrap +msgid " printf(\"Init done\\n\");\n" +msgstr "" +" printf(\"Init done\\n" +"\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:245 +#, no-wrap +msgid " printf(\"Expected value for L=8 is 7.1836656\\n\");\n" +msgstr "" +" printf(\"Expected value for L=8 is 7.1836656\\n" +"\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:247 +#, no-wrap +msgid " run = 1;\n" +msgstr " run = 1;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:251 +#, no-wrap +msgid "" +" while (run) {\n" +" sum = 0.0;\n" +" iproduct = 1;\n" +msgstr "" +" while (run) {\n" +" sum = 0.0;\n" +" iproduct = 1;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:256 +#, no-wrap +msgid "" +" if (run)\n" +" for (i = Q; run && i < Q + K; i++) {\n" +" j = i;\n" +" b = fgetc(fptr);\n" +msgstr "" +" if (run)\n" +" for (i = Q; run && i < Q + K; i++) {\n" +" j = i;\n" +" b = fgetc(fptr);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:259 +#, no-wrap +msgid "" +" if (b < 0)\n" +" run = 0;\n" +msgstr "" +" if (b < 0)\n" +" run = 0;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:263 +#, no-wrap +msgid "" +" if (run) {\n" +" if (table[b] > j)\n" +" j += K;\n" +msgstr "" +" if (run) {\n" +" if (table[b] > j)\n" +" j += K;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:265 +#, no-wrap +msgid " sum += log((double)(j-table[b]));\n" +msgstr " sum += log((double)(j-table[b]));\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:269 +#, no-wrap +msgid "" +" table[b] = i;\n" +" }\n" +" }\n" +msgstr "" +" table[b] = i;\n" +" }\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:272 +#, no-wrap +msgid "" +" if (!run)\n" +" printf(\"Premature end of file; read %d blocks.\\n\", i - Q);\n" +msgstr "" +" if (!run)\n" +" printf(\"Premature end of file; read %d blocks.\\n" +"\", i - Q);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:275 +#, no-wrap +msgid "" +" sum = (sum/((double)(i - Q))) / log(2.0);\n" +" printf(\"%4.4f \", sum);\n" +msgstr "" +" sum = (sum/((double)(i - Q))) / log(2.0);\n" +" printf(\"%4.4f \", sum);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:278 +#, no-wrap +msgid "" +" for (i = 0; i < (int)(sum*8.0 + 0.50); i++)\n" +" printf(\"-\");\n" +msgstr "" +" for (i = 0; i < (int)(sum*8.0 + 0.50); i++)\n" +" printf(\"-\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:280 +#, no-wrap +msgid " printf(\"\\n\");\n" +msgstr "" +" printf(\"\\n" +"\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:294 +#, no-wrap +msgid "" +" /* refill initial table */\n" +" if (0) {\n" +" for (i = 0; i < Q; i++) {\n" +" b = fgetc(fptr);\n" +" if (b < 0) {\n" +" run = 0;\n" +" } else {\n" +" table[b] = i;\n" +" }\n" +" }\n" +" }\n" +" }\n" +"}\n" +msgstr "" +" /* refill initial table */\n" +" if (0) {\n" +" for (i = 0; i < Q; i++) {\n" +" b = fgetc(fptr);\n" +" if (b < 0) {\n" +" run = 0;\n" +" } else {\n" +" table[b] = i;\n" +" }\n" +" }\n" +" }\n" +" }\n" +"}\n" + +#~ msgid "" +#~ "include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/" +#~ "{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists." +#~ "adoc[] include::shared/{{% lang %}}/urls.adoc[]" +#~ msgstr "" +#~ "include::shared/attributes/attributes-{{% lang %}}.adoc[]\n" +#~ "include::shared/{{% lang %}}/teams.adoc[]\n" +#~ "include::shared/{{% lang %}}/mailing-lists.adoc[]\n" +#~ "include::shared/{{% lang %}}/urls.adoc[]"