--- Makefile (nonexistent)
+++ Makefile (working copy)
@@ -0,0 +1,8 @@
+# $FreeBSD$
+
+SUBDIR = articles
+
+COMPAT_SYMLINK= fa
+
+DOC_PREFIX = ${.CURDIR}/..
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"
--- articles/Makefile (nonexistent)
+++ articles/Makefile (working copy)
@@ -0,0 +1,8 @@
+# $FreeBSD$
+
+SUBDIR = ipsec-must
+
+# ROOT_SYMLINKS+= new-users
+
+DOC_PREFIX?= ${.CURDIR}/../..
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"
--- articles/ipsec-must/Makefile (nonexistent)
+++ articles/ipsec-must/Makefile (working copy)
@@ -0,0 +1,18 @@
+#
+# $FreeBSD$
+#
+# Article: Independent Verification of IPsec Functionality in FreeBSD
+
+DOC?= article
+
+FORMATS?= html
+
+INSTALL_COMPRESSED?=gz
+INSTALL_ONLY_COMPRESSED?=
+
+SRCS= article.xml
+
+URL_RELPREFIX?= ../../../..
+DOC_PREFIX?= ${.CURDIR}/../../..
+
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"
--- articles/ipsec-must/article.xml (nonexistent)
+++ articles/ipsec-must/article.xml (working copy)
@@ -0,0 +1,272 @@
+
+
+
+
+ تصدیق عملکرد IPsec به طور مستقل در FreeBSD
+
+
+ دیویدهانیگhonig@sprynet.com
+
+ 1999-05-03
+
+
+ FreeBSD یک نشان تجاری ثبت شده متعلق به FreeBSD Foundation است.
+ Motif، OSF/1 و UNIX نشانهای تجاری ثبت شده و IT DialTone و The Open Group نشانهای تجاری متعلق به کنسرسیوم The Open Group در ایالات متحده و دیگر کشورها هستند.
+ بسیاری از عناوین مورد استفاده توسط تولیدکنندگان و فروشندگان برای مشخص کردن محصولاتشان به عنوان نشانهای تجاری اظهار شدهاند. در هر جای این سند که این عناوین ذکر شده باشند، در صورتی که پروژه FreeBSD از اظهارنامه آن نشان تجاری آگاه باشد، همراه عنوان علامت ™ یا ® آمده است.
+
+
+ $FreeBSD$
+
+
+ IPsec را نصب کردهاید و به نظر میرسد که کار هم میکند. ولی از کجا میدانید؟ من روشی را در اینجا تشریح میکنم که با آن میتوانید به طور آزمونگرانه تصدیق کنید که IPsec به درستی کار میکند.
+
+
+
+
+ تعریف مشکل
+
+ ابتدا، بیایید فرض کنیم که شما IPsec را نصب کردهاید. از کجا میدانید که به درستی کار میکند؟ بله، درست است، اگر به درستی پیکربندی نشده بود اتصال شما کار نمیکرد، فقط وقتی آن را درست پیکربندی کرده باشید کار خواهد کرد. netstat1 آن را فهرست خواهد کرد. ولی آیا به طور مستقل هم میتوانید آن را تصدیق کنید؟
+
+
+
+ راه حل
+
+ ابتدا، کمی اطلاعات تئوری در رابطه با رمزنگاری:
+
+
+
+ دادههای رمزنگاریشده به طور یکنواخت توزیع میشوند. به عبارت دیگر، به ازای هر نماد، آنتروپی بیشینه دارند؛
+
+
+
+ دادههای خام و فشرده نشده عموما افزونگی دارند. به عبارت دیگر، آنتروپی فرو-بیشینه دارند.
+
+
+
+ فرض کنید که میتوانستید آنتروپی دادههای ارسالی به کارت شبکه و دریافتی از آن را اندازهگیری کنید. آنگاه میتوانستید تفاوت بین دادههای رمزنگاریشده و رمزنگارینشده را ببینید. این گفته حتی وقتی که مقداری از دادهها در حالت رمزنگاری عملا رمزنگارینشده باشند هم درست است. مثلا اگر قرار باشد بسته قابل مسیریابی باشد، آنگاه بیرونیترین سرایند IP نباید رمزنگاریشده باشد.
+
+
+ MUST
+
+ ابزار Universal Statistical Test for Random Bit Generators( MUST) یولی مائورر میتواند آنتروپی یک نمونه را به سرعت اندازهگیری کند. این ابزار از یک الگوریتم شبه-فشردهسازی استفاده میکند. کد گونهای از این ابزار که قادر است به طور پیاپی (تقریبا یک چارک مگابایت) قطعات یک پرونده را اندازهگیری کند، در زیر آورده شده است.
+
+
+
+ Tcpdump
+
+ ما همچنین به روشی نیاز داریم تا بتوانیم دادههای خام شبکه را ضبط کنیم. برنامهای به نام tcpdump1 اجازه انجام چنین کاری را به ما میدهد. برای استفاده از آن نیاز است تا در پرونده پیکربندی هسته Berkeley Packet Filter را فعال کرده باشید.
+
+ دستور:
+
+ tcpdump -c 4000 -s 10000 -w dumpfile.bin
+
+ ۴۰۰۰ بسته خام را ضبط کرده و در dumpfile.bin ذخیره میکند. در این مثال، تا ۱۰٬۰۰۰ بایت در هر بسته ضبط خواهد شد.
+
+
+
+
+ آزمایش
+
+ آزمایش از این قرار است:
+
+
+
+ یک پنجره به یک میزبانِ IPsec و پنجرهای دیگر به یک میزبان ناامن باز کنید.
+
+
+
+ حالا شروع به ضبط بستهها نمایید.
+
+
+
+ حال در پنجره امن، دستور یونیکسیyes1 را اجرا کنید، که باعث خواهد شد کاراکتر y مثل یک جویبار روان شود. پس از مدتی، این دستور را متوقف کنید. به پنجره ناامن بروید و همین کار را تکرار کنید. پس از مدتی، آن را هم متوقف کنید.
+
+
+
+ حال MUST را روی بستههای ضبط شده اجرا کنید. باید چیزی شبیه خروجی زیر را ببینید. نکته مهم این است که اتصال امن ۹۳٪ (۶.۷) از مقدار مورد انتظار (۷.۱۸) را دارد، و اتصال عادی تنها ۲۹٪ (۲.۱) از مقدار مورد انتظار را دارد.
+
+ %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 -----------------
+
+
+
+
+
+ هشدار
+
+ این آزمایش نشان میدهد که IPsec ظاهرا دارد دادهها را به طور یکنواختتوزیع میکند، همانطور که از یک رمزنگاری انتظار میرود. با این حال، آزمایشی که در اینجا شرح آن رفت نمیتواند هیچگونه نقص احتمالی را در سامانه تشخیص دهد (که برای هیچکدام از آنها هیچ نشانهای ندارم). این نقصها میتوانند چیزهایی مثل تولید کلید ضعیف یا تبادل نادرست کلیدها، در معرض نمایش بودن کلیدها یا دادهها برای بقیه، استفاده از الگوریتم ضعیف، تخریب هسته از درون و غیره باشند. کدمنبع را بخوانید و با آن آشنا شوید.
+
+
+
+ IPsec---تعریف
+
+ افزونههای امنیتی قرارداد اینترنت برای IPv4؛ که در IPv6 الزامی است، قراردادی است برای مذاکره کردن روشهای رمزنگاری و احراز هویت در لایه IP (میزبان به میزبان). SSL تنها یک سوکت را ایمن میکند؛ SSH تنها یک ورود را ایمن میکند؛ PGP تنها یک پرونده یا پیغام را ایمن میکند. ولی IPsec همه چیز را بین دو میزبان ایمن میکند.
+
+
+
+ نصب IPsec
+
+ بیشتر نسخههای مدرن FreeBSD از IPsec در کدمنبعشان پشتیبانی میکنند. تنها نیاز است که شما گزینه را در فایل پیکربندی هسته بگنجانید و پس از آنکه هسته را کامپایل و نصب کردید، با استفاده از دستور setkey8 اتصالات IPsec را پیکربندی کنید.
+
+ یک راهنمای جامع درباره راهاندازی IPsec در FreeBSD در کتاب راهنمای FreeBSD آورده شده است.
+
+
+
+ src/sys/i386/conf/KERNELNAME
+
+ نیاز است تا آن را در فایل پیکربندی هسته گنجانده باشید تا بتوان دادههای شبکه را با tcpdump1 ضبط کرد. مطمئن شوید که پس از اضافه کردن آن config8 را اجرا خواهید کرد، سپس هسته را مجددا کامپایل و نصب نمایید.
+
+ device bpf
+
+
+
+ Maurer's Universal Statistical Test (برای بلاکهایی با اندازه ۸ بیتی)
+
+ همین کد را میتوانید در این نشانی هم پیدا کنید.
+
+/*
+ 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;
+ }
+ }
+ }
+ }
+}
+
+
--- articles/ipsec-must/fa_IR.po (nonexistent)
+++ articles/ipsec-must/fa_IR.po (working copy)
@@ -0,0 +1,692 @@
+# FreeBSD$
+# Javad Kouhi , 2020.
+# Faraz Vahedi , 2020.
+# Parsa Samet , 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-06-06 11:08-0300\n"
+"PO-Revision-Date: 2020-05-09 12:58+0000\n"
+"Last-Translator: Parsa Samet \n"
+"Language-Team: Persian \n"
+"Language: fa\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 3.11.3\n"
+
+#. Put one translator per line, in the form NAME , YEAR1, YEAR2
+msgctxt "_"
+msgid "translator-credits"
+msgstr "جواد کوهی ، سال ۲۰۲۰"
+
+#. (itstool) path: info/title
+#: article.translate.xml:9
+msgid "Independent Verification of IPsec Functionality in FreeBSD"
+msgstr "تصدیق عملکرد IPsec به طور مستقل در FreeBSD"
+
+#. (itstool) path: affiliation/address
+#: article.translate.xml:13
+#, no-wrap
+msgid "honig@sprynet.com"
+msgstr "honig@sprynet.com"
+
+#. (itstool) path: info/author
+#: article.translate.xml:12
+msgid ""
+"DavidHonig"
+"personname> <_:address-1/> "
+msgstr ""
+"دیویدهانیگ"
+"personname> <_:address-1/> "
+
+#. (itstool) path: info/pubdate
+#: article.translate.xml:16
+msgid "1999-05-03"
+msgstr "1999-05-03"
+
+#. (itstool) path: legalnotice/para
+#: article.translate.xml:19
+msgid "FreeBSD is a registered trademark of the FreeBSD Foundation."
+msgstr "FreeBSD یک نشان تجاری ثبت شده متعلق به FreeBSD Foundation است."
+
+#. (itstool) path: legalnotice/para
+#: article.translate.xml:21
+msgid ""
+"Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The "
+"Open Group are trademarks of The Open Group in the United States and other "
+"countries."
+msgstr ""
+"Motif، OSF/1 و UNIX نشانهای تجاری ثبت شده و IT DialTone و The Open Group "
+"نشانهای تجاری متعلق به کنسرسیوم The Open Group در ایالات متحده و دیگر کشورها "
+"هستند."
+
+#. (itstool) path: legalnotice/para
+#: article.translate.xml:25
+msgid ""
+"Many of the designations used by manufacturers and sellers to distinguish "
+"their products are claimed as trademarks. Where those designations appear in "
+"this document, and the FreeBSD Project was aware of the trademark claim, the "
+"designations have been followed by the ™ or the ®"
+"quote> symbol."
+msgstr ""
+"بسیاری از عناوین مورد استفاده توسط تولیدکنندگان و فروشندگان برای مشخص کردن "
+"محصولاتشان به عنوان نشانهای تجاری اظهار شدهاند. در هر جای این سند که این "
+"عناوین ذکر شده باشند، در صورتی که پروژه FreeBSD از اظهارنامه آن نشان تجاری "
+"آگاه باشد، همراه عنوان علامت ™ یا ® آمده است."
+
+#. (itstool) path: info/releaseinfo
+#: article.translate.xml:33
+msgid ""
+"$FreeBSD: head/en_US.ISO8859-1/articles/ipsec-must/article.xml 52227 "
+"2018-09-06 01:30:47Z ebrandi $"
+msgstr ""
+"$FreeBSD: head/en_US.ISO8859-1/articles/ipsec-must/article.xml 52227 "
+"2018-09-06 01:30:47Z ebrandi $"
+
+#. (itstool) path: abstract/para
+#: article.translate.xml:36
+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 ""
+"IPsec را نصب کردهاید و به نظر میرسد که کار هم میکند. ولی از کجا میدانید؟ من "
+"روشی را در اینجا تشریح میکنم که با آن میتوانید به طور آزمونگرانه تصدیق کنید "
+"که IPsec به درستی کار میکند."
+
+#. (itstool) path: sect1/title
+#: article.translate.xml:43
+msgid "The Problem"
+msgstr "تعریف مشکل"
+
+#. (itstool) path: sect1/para
+#: article.translate.xml:45
+msgid ""
+"First, lets assume you have installed "
+"IPsec. How do you know it is working? Sure, your connection will not work if it is "
+"misconfigured, and it will work when you finally get it right. "
+"netstat1"
+"manvolnum> will list it. But can you independently confirm it?"
+msgstr ""
+"ابتدا، بیایید فرض کنیم که شما IPsec را نصب کردهاید. از کجا میدانید که به "
+"درستی کار میکند؟ بله، درست است، اگر به درستی "
+"پیکربندی نشده بود اتصال شما کار نمیکرد، فقط وقتی آن را درست پیکربندی کرده "
+"باشید کار خواهد کرد. netstat"
+"refentrytitle>1 آن را فهرست خواهد کرد. "
+"ولی آیا به طور مستقل هم میتوانید آن را تصدیق کنید؟"
+
+#. (itstool) path: sect1/title
+#: article.translate.xml:54
+msgid "The Solution"
+msgstr "راه حل"
+
+#. (itstool) path: sect1/para
+#: article.translate.xml:56
+msgid "First, some crypto-relevant info theory:"
+msgstr "ابتدا، کمی اطلاعات تئوری در رابطه با رمزنگاری:"
+
+#. (itstool) path: listitem/para
+#: article.translate.xml:60
+msgid ""
+"Encrypted data is uniformly distributed, i.e., has maximal entropy per "
+"symbol;"
+msgstr ""
+"دادههای رمزنگاریشده به طور یکنواخت توزیع میشوند. به عبارت دیگر، به ازای هر "
+"نماد، آنتروپی بیشینه دارند؛"
+
+#. (itstool) path: listitem/para
+#: article.translate.xml:65
+msgid ""
+"Raw, uncompressed data is typically redundant, i.e., has sub-maximal entropy."
+msgstr ""
+"دادههای خام و فشرده نشده عموما افزونگی دارند. به عبارت دیگر، آنتروپی فرو-"
+"بیشینه دارند."
+
+#. (itstool) path: sect1/para
+#: article.translate.xml: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 ""
+"فرض کنید که میتوانستید آنتروپی دادههای ارسالی به کارت شبکه و دریافتی از آن "
+"را اندازهگیری کنید. آنگاه میتوانستید تفاوت بین دادههای رمزنگاریشده و "
+"رمزنگارینشده را ببینید. این گفته حتی وقتی که مقداری از دادهها در حالت "
+"رمزنگاری عملا رمزنگارینشده باشند هم درست است. مثلا اگر قرار باشد "
+"بسته قابل مسیریابی باشد، آنگاه بیرونیترین سرایند IP نباید رمزنگاریشده باشد."
+
+#. (itstool) path: sect2/title
+#: article.translate.xml:78
+msgid "MUST"
+msgstr "MUST"
+
+#. (itstool) path: sect2/para
+#: article.translate.xml:80
+msgid ""
+"Ueli Maurer's Universal Statistical Test for Random Bit Generators"
+"quote>( MUST"
+"acronym>) quickly measures the entropy of a sample. It uses a "
+"compression-like algorithm. The code is given below"
+"link> for a variant which measures successive (~quarter megabyte) chunks of "
+"a file."
+msgstr ""
+"ابزار Universal Statistical Test for Random Bit Generators"
+"quote>( MUST"
+"acronym>) یولی مائورر میتواند آنتروپی یک نمونه را به سرعت اندازهگیری "
+"کند. این ابزار از یک الگوریتم شبه-فشردهسازی استفاده میکند. کد گونهای از این "
+"ابزار که قادر است به طور پیاپی (تقریبا یک چارک مگابایت) قطعات یک پرونده را "
+"اندازهگیری کند، در زیر آورده شده است."
+
+#. (itstool) path: sect2/title
+#: article.translate.xml:89
+msgid "Tcpdump"
+msgstr "Tcpdump"
+
+#. (itstool) path: sect2/para
+#: article.translate.xml:91
+msgid ""
+"We also need a way to capture the raw network data. A program called "
+"tcpdump1"
+"manvolnum> lets you do this, if you have enabled the "
+"Berkeley Packet Filter interface in your kernel's config file."
+msgstr ""
+"ما همچنین به روشی نیاز داریم تا بتوانیم دادههای خام شبکه را ضبط کنیم. "
+"برنامهای به نام tcpdump"
+"refentrytitle>1 اجازه انجام چنین کاری "
+"را به ما میدهد. برای استفاده از آن نیاز است تا در پرونده پیکربندی هسته Berkeley Packet Filter "
+"را فعال کرده باشید."
+
+#. (itstool) path: sect2/para
+#: article.translate.xml:97
+msgid "The command:"
+msgstr "دستور:"
+
+#. (itstool) path: sect2/screen
+#: article.translate.xml:99
+#, no-wrap
+msgid "tcpdump -c 4000 -s 10000 -w dumpfile.bin"
+msgstr "tcpdump -c 4000 -s 10000 -w dumpfile.bin"
+
+#. (itstool) path: sect2/para
+#: article.translate.xml:101
+msgid ""
+"will capture 4000 raw packets to dumpfile.bin. Up "
+"to 10,000 bytes per packet will be captured in this example."
+msgstr ""
+"۴۰۰۰ بسته خام را ضبط کرده و در dumpfile.bin ذخیره "
+"میکند. در این مثال، تا ۱۰٬۰۰۰ بایت در هر بسته ضبط خواهد شد."
+
+#. (itstool) path: sect1/title
+#: article.translate.xml:108
+msgid "The Experiment"
+msgstr "آزمایش"
+
+#. (itstool) path: sect1/para
+#: article.translate.xml:110
+msgid "Here is the experiment:"
+msgstr "آزمایش از این قرار است:"
+
+#. (itstool) path: step/para
+#: article.translate.xml:114
+msgid "Open a window to an IPsec host and another window to an insecure host."
+msgstr ""
+"یک پنجره به یک میزبانِ IPsec و پنجرهای دیگر به یک میزبان ناامن باز کنید."
+
+#. (itstool) path: step/para
+#: article.translate.xml:119
+msgid "Now start capturing packets."
+msgstr "حالا شروع به ضبط بستهها نمایید."
+
+#. (itstool) path: step/para
+#: article.translate.xml:124
+msgid ""
+"In the secure window, run the UNIX command yes"
+"refentrytitle>1, which will stream the "
+"y character. After a while, stop this. Switch to the "
+"insecure window, and repeat. After a while, stop."
+msgstr ""
+"حال در پنجره امن، دستور یونیکسیyes"
+"refentrytitle>1 را اجرا کنید، که باعث "
+"خواهد شد کاراکتر y مثل یک جویبار روان شود. پس از مدتی، "
+"این دستور را متوقف کنید. به پنجره ناامن بروید و همین کار را تکرار کنید. پس "
+"از مدتی، آن را هم متوقف کنید."
+
+#. (itstool) path: step/para
+#: article.translate.xml:131
+msgid ""
+"Now run MUST 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 ""
+"حال MUST را روی بستههای ضبط شده اجرا کنید. "
+"باید چیزی شبیه خروجی زیر را ببینید. نکته مهم این است که اتصال امن ۹۳٪ (۶.۷) "
+"از مقدار مورد انتظار (۷.۱۸) را دارد، و اتصال عادی تنها ۲۹٪ "
+"(۲.۱) از مقدار مورد انتظار را دارد."
+
+#. (itstool) path: step/screen
+#: article.translate.xml:138
+#, no-wrap
+msgid ""
+"%tcpdump -c 4000 -s 10000 -w ipsecdemo.bin\n"
+"%uliscan ipsecdemo.bin\n"
+"\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 -----------------"
+msgstr ""
+"%tcpdump -c 4000 -s 10000 -w ipsecdemo.bin\n"
+"%uliscan ipsecdemo.bin\n"
+"\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 -----------------"
+
+#. (itstool) path: sect1/title
+#: article.translate.xml:157
+msgid "Caveat"
+msgstr "هشدار"
+
+#. (itstool) path: sect1/para
+#: article.translate.xml:159
+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 ""
+"این آزمایش نشان میدهد که IPsec ظاهرا دارد دادهها را به طور "
+"یکنواختتوزیع میکند، همانطور که از یک "
+"رمزنگاری انتظار میرود. با این حال، آزمایشی که در اینجا شرح آن رفت "
+"نمیتواند هیچگونه نقص احتمالی را در سامانه تشخیص دهد (که "
+"برای هیچکدام از آنها هیچ نشانهای ندارم). این نقصها میتوانند چیزهایی مثل "
+"تولید کلید ضعیف یا تبادل نادرست کلیدها، در معرض نمایش بودن کلیدها یا دادهها "
+"برای بقیه، استفاده از الگوریتم ضعیف، تخریب هسته از درون و غیره باشند. کدمنبع "
+"را بخوانید و با آن آشنا شوید."
+
+#. (itstool) path: sect1/title
+#: article.translate.xml:171
+msgid "IPsec---Definition"
+msgstr "IPsec---تعریف"
+
+#. (itstool) path: sect1/para
+#: article.translate.xml:173
+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"
+"application> secures only a login; PGP secures "
+"only a specified file or message. IPsec encrypts everything between two "
+"hosts."
+msgstr ""
+"افزونههای امنیتی قرارداد اینترنت برای IPv4؛ که در IPv6 الزامی است، قراردادی "
+"است برای مذاکره کردن روشهای رمزنگاری و احراز هویت در لایه IP (میزبان به "
+"میزبان). SSL تنها یک سوکت را ایمن میکند؛ SSH تنها "
+"یک ورود را ایمن میکند؛ PGP تنها یک پرونده یا "
+"پیغام را ایمن میکند. ولی IPsec همه چیز را بین دو میزبان ایمن میکند."
+
+#. (itstool) path: sect1/title
+#: article.translate.xml:182
+msgid "Installing IPsec"
+msgstr "نصب IPsec"
+
+#. (itstool) path: sect1/para
+#: article.translate.xml:184
+msgid ""
+"Most of the modern versions of FreeBSD have IPsec support in their base "
+"source. So you will need to include the option in "
+"your kernel config and, after kernel rebuild and reinstall, configure IPsec "
+"connections using setkey"
+"refentrytitle>8 command."
+msgstr ""
+"بیشتر نسخههای مدرن FreeBSD از IPsec در کدمنبعشان پشتیبانی میکنند. تنها نیاز "
+"است که شما گزینه را در فایل پیکربندی هسته بگنجانید و "
+"پس از آنکه هسته را کامپایل و نصب کردید، با استفاده از دستور "
+"setkey8"
+"citerefentry> اتصالات IPsec را پیکربندی کنید."
+
+#. (itstool) path: sect1/para
+#: article.translate.xml:190
+msgid ""
+"A comprehensive guide on running IPsec on FreeBSD is provided in FreeBSD Handbook."
+msgstr ""
+"یک راهنمای جامع درباره راهاندازی IPsec در FreeBSD در کتاب "
+"راهنمای FreeBSD آورده شده است."
+
+#. (itstool) path: sect1/title
+#: article.translate.xml:196
+msgid "src/sys/i386/conf/KERNELNAME"
+msgstr "src/sys/i386/conf/KERNELNAME"
+
+#. (itstool) path: sect1/para
+#: article.translate.xml:198
+msgid ""
+"This needs to be present in the kernel config file in order to capture "
+"network data with tcpdump"
+"refentrytitle>1. Be sure to run "
+"config8"
+"citerefentry> after adding this, and rebuild and reinstall."
+msgstr ""
+"نیاز است تا آن را در فایل پیکربندی هسته گنجانده باشید تا بتوان دادههای شبکه "
+"را با tcpdump1"
+"manvolnum> ضبط کرد. مطمئن شوید که پس از اضافه کردن آن "
+"config8"
+"citerefentry> را اجرا خواهید کرد، سپس هسته را مجددا کامپایل و نصب نمایید."
+
+#. (itstool) path: sect1/programlisting
+#: article.translate.xml:203
+#, no-wrap
+msgid "device\tbpf"
+msgstr "device\tbpf"
+
+#. (itstool) path: sect1/title
+#: article.translate.xml:207
+msgid "Maurer's Universal Statistical Test (for block size=8 bits)"
+msgstr "Maurer's Universal Statistical Test (برای بلاکهایی با اندازه ۸ بیتی)"
+
+#. (itstool) path: sect1/para
+#: article.translate.xml:210
+msgid ""
+"You can find the same code at this link."
+msgstr ""
+"همین کد را میتوانید در این نشانی هم پیدا کنید."
+
+#. (itstool) path: sect1/programlisting
+#: article.translate.xml:213
+#, no-wrap
+msgid ""
+"/*\n"
+" ULISCAN.c ---blocksize of 8\n"
+"\n"
+" 1 Oct 98\n"
+" 1 Dec 98\n"
+" 21 Dec 98 uliscan.c derived from ueli8.c\n"
+"\n"
+" This version has // comments removed for Sun cc\n"
+"\n"
+" This implements Ueli M Maurer's \"Universal Statistical Test for Random\n"
+" Bit Generators\" using L=8\n"
+"\n"
+" Accepts a filename on the command line; writes its results, with other\n"
+" info, to stdout.\n"
+"\n"
+" Handles input file exhaustion gracefully.\n"
+"\n"
+" Ref: J. Cryptology v 5 no 2, 1992 pp 89-105\n"
+" also on the web somewhere, which is where I found it.\n"
+"\n"
+" -David Honig\n"
+" honig@sprynet.com\n"
+"\n"
+" Usage:\n"
+" ULISCAN filename\n"
+" outputs to stdout\n"
+"*/\n"
+"\n"
+"#define L 8\n"
+"#define V (1<<L)\n"
+"#define Q (10*V)\n"
+"#define K (100 *Q)\n"
+"#define MAXSAMP (Q + K)\n"
+"\n"
+"#include <stdio.h>\n"
+"#include <math.h>\n"
+"\n"
+"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"
+"\n"
+" extern double log(/* double x */);\n"
+"\n"
+" printf(\"Uliscan 21 Dec 98 \\nL=%d %d %d \\n\", L, V, MAXSAMP);\n"
+"\n"
+" if (argc < 2) {\n"
+" printf(\"Usage: Uliscan filename\\n\");\n"
+" exit(-1);\n"
+" } else {\n"
+" printf(\"Measuring file %s\\n\", argv[1]);\n"
+" }\n"
+"\n"
+" fptr = fopen(argv[1],\"rb\");\n"
+"\n"
+" if (fptr == NULL) {\n"
+" printf(\"Can't find %s\\n\", argv[1]);\n"
+" exit(-1);\n"
+" }\n"
+"\n"
+" for (i = 0; i < V; i++) {\n"
+" table[i] = 0;\n"
+" }\n"
+"\n"
+" for (i = 0; i < Q; i++) {\n"
+" b = fgetc(fptr);\n"
+" table[b] = i;\n"
+" }\n"
+"\n"
+" printf(\"Init done\\n\");\n"
+"\n"
+" printf(\"Expected value for L=8 is 7.1836656\\n\");\n"
+"\n"
+" run = 1;\n"
+"\n"
+" while (run) {\n"
+" sum = 0.0;\n"
+" iproduct = 1;\n"
+"\n"
+" if (run)\n"
+" for (i = Q; run && i < Q + K; i++) {\n"
+" j = i;\n"
+" b = fgetc(fptr);\n"
+"\n"
+" if (b < 0)\n"
+" run = 0;\n"
+"\n"
+" if (run) {\n"
+" if (table[b] > j)\n"
+" j += K;\n"
+"\n"
+" sum += log((double)(j-table[b]));\n"
+"\n"
+" table[b] = i;\n"
+" }\n"
+" }\n"
+"\n"
+" if (!run)\n"
+" printf(\"Premature end of file; read %d blocks.\\n\", i - Q);\n"
+"\n"
+" sum = (sum/((double)(i - Q))) / log(2.0);\n"
+" printf(\"%4.4f \", sum);\n"
+"\n"
+" for (i = 0; i < (int)(sum*8.0 + 0.50); i++)\n"
+" printf(\"-\");\n"
+"\n"
+" printf(\"\\n\");\n"
+"\n"
+" /* 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"
+"}"
+msgstr ""
+"/*\n"
+" ULISCAN.c ---blocksize of 8\n"
+"\n"
+" 1 Oct 98\n"
+" 1 Dec 98\n"
+" 21 Dec 98 uliscan.c derived from ueli8.c\n"
+"\n"
+" This version has // comments removed for Sun cc\n"
+"\n"
+" This implements Ueli M Maurer's \"Universal Statistical Test for Random\n"
+" Bit Generators\" using L=8\n"
+"\n"
+" Accepts a filename on the command line; writes its results, with other\n"
+" info, to stdout.\n"
+"\n"
+" Handles input file exhaustion gracefully.\n"
+"\n"
+" Ref: J. Cryptology v 5 no 2, 1992 pp 89-105\n"
+" also on the web somewhere, which is where I found it.\n"
+"\n"
+" -David Honig\n"
+" honig@sprynet.com\n"
+"\n"
+" Usage:\n"
+" ULISCAN filename\n"
+" outputs to stdout\n"
+"*/\n"
+"\n"
+"#define L 8\n"
+"#define V (1<<L)\n"
+"#define Q (10*V)\n"
+"#define K (100 *Q)\n"
+"#define MAXSAMP (Q + K)\n"
+"\n"
+"#include <stdio.h>\n"
+"#include <math.h>\n"
+"\n"
+"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"
+"\n"
+" extern double log(/* double x */);\n"
+"\n"
+" printf(\"Uliscan 21 Dec 98 \\nL=%d %d %d \\n\", L, V, MAXSAMP);\n"
+"\n"
+" if (argc < 2) {\n"
+" printf(\"Usage: Uliscan filename\\n\");\n"
+" exit(-1);\n"
+" } else {\n"
+" printf(\"Measuring file %s\\n\", argv[1]);\n"
+" }\n"
+"\n"
+" fptr = fopen(argv[1],\"rb\");\n"
+"\n"
+" if (fptr == NULL) {\n"
+" printf(\"Can't find %s\\n\", argv[1]);\n"
+" exit(-1);\n"
+" }\n"
+"\n"
+" for (i = 0; i < V; i++) {\n"
+" table[i] = 0;\n"
+" }\n"
+"\n"
+" for (i = 0; i < Q; i++) {\n"
+" b = fgetc(fptr);\n"
+" table[b] = i;\n"
+" }\n"
+"\n"
+" printf(\"Init done\\n\");\n"
+"\n"
+" printf(\"Expected value for L=8 is 7.1836656\\n\");\n"
+"\n"
+" run = 1;\n"
+"\n"
+" while (run) {\n"
+" sum = 0.0;\n"
+" iproduct = 1;\n"
+"\n"
+" if (run)\n"
+" for (i = Q; run && i < Q + K; i++) {\n"
+" j = i;\n"
+" b = fgetc(fptr);\n"
+"\n"
+" if (b < 0)\n"
+" run = 0;\n"
+"\n"
+" if (run) {\n"
+" if (table[b] > j)\n"
+" j += K;\n"
+"\n"
+" sum += log((double)(j-table[b]));\n"
+"\n"
+" table[b] = i;\n"
+" }\n"
+" }\n"
+"\n"
+" if (!run)\n"
+" printf(\"Premature end of file; read %d blocks.\\n\", i - Q);\n"
+"\n"
+" sum = (sum/((double)(i - Q))) / log(2.0);\n"
+" printf(\"%4.4f \", sum);\n"
+"\n"
+" for (i = 0; i < (int)(sum*8.0 + 0.50); i++)\n"
+" printf(\"-\");\n"
+"\n"
+" printf(\"\\n\");\n"
+"\n"
+" /* 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"
+"}"