Add a new translated article.
Submitted by: Laust S. Jespersen <Laust@doc.freebsd.dk>
This commit is contained in:
parent
490c7741a0
commit
fe5a5bb798
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=21454
3 changed files with 373 additions and 0 deletions
da_DK.ISO8859-1/articles
|
@ -1,6 +1,7 @@
|
|||
# $FreeBSD$
|
||||
|
||||
SUBDIR = euro
|
||||
SUBDIR+= ipsec-must
|
||||
SUBDIR+= pxe
|
||||
|
||||
|
||||
|
|
16
da_DK.ISO8859-1/articles/ipsec-must/Makefile
Normal file
16
da_DK.ISO8859-1/articles/ipsec-must/Makefile
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Article: Uafhængig Verifikation af IPsec Funktionalitet i FreeBSD
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.sgml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
356
da_DK.ISO8859-1/articles/ipsec-must/article.sgml
Normal file
356
da_DK.ISO8859-1/articles/ipsec-must/article.sgml
Normal file
|
@ -0,0 +1,356 @@
|
|||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Danish Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: 1.12
|
||||
-->
|
||||
<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||||
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
|
||||
<!ENTITY % misc PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN"> %misc;
|
||||
<!ENTITY % trademarks PUBLIC "-//FreeBSD//ENTITIES DocBook Trademark Entities//EN"> %trademarks;
|
||||
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//DK"> %translators;
|
||||
]>
|
||||
|
||||
<article lang="da">
|
||||
<articleinfo>
|
||||
<title>Uafhængig Verifikation af IPsec Funktionalitet i
|
||||
&os;</title>
|
||||
|
||||
<author>
|
||||
<firstname>David</firstname>
|
||||
<surname>Honig</surname>
|
||||
|
||||
<affiliation>
|
||||
<address><email>honig@sprynet.com</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
|
||||
<pubdate>3 Maj 1999</pubdate>
|
||||
|
||||
<legalnotice id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.opengroup;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<abstract>
|
||||
&trans.da.jespersen;
|
||||
|
||||
<para>Du installerede IPsec og det ser ud til at virke. Men
|
||||
hvordan ved du det? Jeg beskriver en metode til
|
||||
eksperimentalt at verificere at IPsec virker.</para>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title>Problemet</title>
|
||||
|
||||
<para>Lad os antage, at du har <link linkend="ipsec-install">
|
||||
installeret <emphasis>IPsec</emphasis></link>. Hvordan ved du
|
||||
at det <link linkend="caveat">virker</link>?
|
||||
Selvfølgelig virker din forbindelse ikke hvis den er
|
||||
miskonfigureret, og den vil virke når du endelig laver det
|
||||
rigtigt. &man.netstat.1; lister den. Men kan du verificere det
|
||||
uafhængigt?</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Løsningen</title>
|
||||
|
||||
<para>Først, noget krypto-relevant teoretisk
|
||||
information:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>krypterede data er uniformt distribueret, som f.eks. har
|
||||
maksimal entropi pr. symbol;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>rå, ukomprimerede data er typisk redundant,
|
||||
f.eks., har sub-maksimal entropi.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Hvis du kunne måle entropien af dataene til og fra dit
|
||||
netværks interface. Så kunne du se forskellen
|
||||
mellem ukrypterede og krypterede data. Det ville være
|
||||
tilfældet selvom nogle af dataene i <quote>krypteret
|
||||
mode</quote> ikke var krypterede, som f.eks. den yderste IP
|
||||
header skal være, hvis pakken skal kunne routes.</para>
|
||||
|
||||
<sect2 id="MUST">
|
||||
<title>MUST</title>
|
||||
|
||||
<para>Ueli Maurers <quote>Universal Statistical Test for Random
|
||||
Bit Generators</quote> (<ulink
|
||||
url="http://www.geocities.com/SiliconValley/Code/4704/universal.pdf">
|
||||
<acronym>MUST</acronym></ulink>) måler hurtigt entropien
|
||||
af en stikprøve. Den bruger en kompressionsagtig
|
||||
algoritme. <link linkend="code">Forneden angives
|
||||
kildekoden</link> til en variant der måler successive
|
||||
(~kvart megabyte) store bidder af en fil.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="tcpdump">
|
||||
<title>Tcpdump</title>
|
||||
|
||||
<para>Vi har også brug for en måde at opsamle de
|
||||
rå netværksdata. Et program kaldet
|
||||
&man.tcpdump.1; lader dig gøre dette, hvis du har slået
|
||||
<emphasis>Berkeley Packet Filter</emphasis> interfacet til i
|
||||
din <link linkend="kernel">kerne konfig fil</link>.</para>
|
||||
|
||||
<para>Kommandoen</para>
|
||||
|
||||
<screen><userinput><command>tcpdump</command> -c 4000 -s 10000 -w <replaceable>dumpfile.bin</replaceable></userinput></screen>
|
||||
|
||||
<para>vil opfange 4000 rå pakker til
|
||||
<replaceable>dumpfile.bin</replaceable>. Op til 10.000 bytes
|
||||
per pakke bliver opfanget i dette eksempel.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Eksperimentet</title>
|
||||
|
||||
<para>Her er eksperimentet:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Åbn et vindue til en IPsec vært og et andet
|
||||
vindue til en usikker vært.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Start nu med at <link linkend="tcpdump">opfange
|
||||
pakker</link>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>I det <quote>sikre</quote> vindue, køres &unix;
|
||||
kommandoen &man.yes.1;, hvilket vil streame
|
||||
<literal>y</literal> karakteren. Stop dette efter et stykke
|
||||
tid. Skift til det usikre vindue, og gentag. Stop igen efter
|
||||
et stykke tid.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Kør nu <link linkend="code">MUST</link> på de
|
||||
opfangede pakker. Du skulle se noget lignende det
|
||||
følgende. Det vigtige at notere sig er, at den sikre
|
||||
forbindelse har 93% (6,7) af den ventede værdi (7.18),
|
||||
og den <quote>normale</quote> forbindelse har 29% (2.1) af den
|
||||
ventede værdi.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>tcpdump -c 4000 -s 10000 -w <replaceable>ipsecdemo.bin</replaceable></userinput>
|
||||
&prompt.user; <userinput>uliscan <replaceable>ipsecdemo.bin</replaceable></userinput>
|
||||
|
||||
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 -----------------</screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="caveat">
|
||||
<title>Undtagelse</title>
|
||||
|
||||
<para>Dette eksperiment viser at, IPsec <emphasis>kan</emphasis>
|
||||
se ud til at distribuere payload data
|
||||
<emphasis>uniformt</emphasis>, som kryptering skal. Men det
|
||||
eksperiment der er beskrevet her <emphasis>kan ikke</emphasis>
|
||||
detektere mange mulige fejl i et system (ingen af hvilke jeg har
|
||||
nogle beviser for). Disse inkluderer dårlig nøgle
|
||||
generering eller udveksling, data eller nøgler der kan
|
||||
ses af andre, brug af svage algoritmer, kernel undergravning,
|
||||
osv. Studér kildekoden; kend kildekoden.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="IPsec">
|
||||
<title>IPsec---Definition</title>
|
||||
|
||||
<para>Internet Protokol sikkerheds udvidelser til IPv4;
|
||||
krævet for IPv6. En protokol til at forhandle kryptering
|
||||
og autentifikation på IP (vært-til-vært)
|
||||
niveau. SSL sikrer kun en applikationssocket;
|
||||
<application>SSH</application> sikrer kun et login;
|
||||
<application>PGP</application> sikrer kun en specifik fil eller
|
||||
besked. IPsec krypterer alting mellem to værter.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="ipsec-install">
|
||||
<title>Installering af IPsec</title>
|
||||
|
||||
<para>De fleste af de moderne versioner af &os; har IPsec
|
||||
support i deres base kildekode. Så du er sikkert
|
||||
nødt til at inkludere <option>IPSEC</option> optionen i
|
||||
din kernel konfig og, efter genbygning og reinstallation af
|
||||
kernel, konfigurere IPsec forbindelser ved hjælp af
|
||||
&man.setkey.8; kommandoen.</para>
|
||||
|
||||
<para>En udførlig guide om at køre IPsec på
|
||||
&os; er tilrådighed i <ulink
|
||||
url="../../books/handbook/ipsec.html">FreeBSD
|
||||
Håndbogen</ulink>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="kernel">
|
||||
<title>src/sys/i386/conf/KERNELNAME</title>
|
||||
|
||||
<para>Dette skal være til stede i kernel konfig filen for at
|
||||
være i stand til at opfange netværksdata med
|
||||
&man.tcpdump.1;. Vær sikker på at køre
|
||||
&man.config.8; efter at tilføje dette, og genbygge og
|
||||
reinstallere.</para>
|
||||
|
||||
<programlisting>device bpf</programlisting>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="code">
|
||||
<title>Maurers universelle statistiske test (for blok
|
||||
størrelse=8 bits)</title>
|
||||
|
||||
<para>Du kan finde samme kode på <ulink
|
||||
url="http://www.geocities.com/SiliconValley/Code/4704/uliscanc.txt">
|
||||
dette link</ulink>.</para>
|
||||
|
||||
<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
|
||||
|
||||
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<<L)
|
||||
#define Q (10*V)
|
||||
#define K (100 *Q)
|
||||
#define MAXSAMP (Q + K)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}</programlisting>
|
||||
</sect1>
|
||||
</article>
|
Loading…
Reference in a new issue