Merge the following from the English version:

1.81 -> 1.86	doc/ja_JP.eucJP/books/handbook/security/chapter.sgml

Submitted by:	Hiroo Ono <hiroo _at_ jp dot FreeBSD dot org>
Reference :	[doc-jp-work 1722]
This commit is contained in:
Ryusuke SUZUKI 2010-12-09 11:33:19 +00:00
parent ab50a81819
commit f9ef0e6065
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=36683

View file

@ -2,9 +2,13 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.81
Original revision: 1.86
Waiting for: 1.123 or mac/chapter.sgml
("mac" referenced from disks).
Translation note: "fs-acl" section added in rev.1.118 is moved to
handbook/basics in rev.1.134 and moved back to this file in
rev.1.150. The traslation is already done in handbook/basics, so we
should skip translating this section until rev.1.150.
$FreeBSD$
-->
@ -1078,22 +1082,32 @@ lrwxr-xr-x 1 root wheel 15 Mar 19 06:56 libcrypt_p.a -&gt; libdescrypt_p.a</s
の数多くのシステムの上でも利用されています。S/Key は Bell
Communications Research, Inc. の登録商標です。</para>
<para>FreeBSD バージョン 5.0 以降では、S/Key
は機能的に同等な OPIE (Onetime Passwords In Everything)
で置き換えられました。OPIE はデフォルトでは
MD5 ハッシュを使用します。</para>
<para>以下の説明では、三種類の異なる「パスワード」が使われます。
まず一つ目は、あなたが普段使っている普通の
Unix スタイルの、もしくは Kerberos
のパスワードです。ここではこれを
<quote>Unix パスワード</quote> と呼ぶことにします。二つ目は、S/Key
の <command>key</command> プログラムによって生成され、
<command>keyinit</command> プログラムとログインプロンプトが受け
付けるパスワードです。ここではこれを<quote>ワンタイムパスワード
</quote>と呼ぶことにします。三つ目のパスワードは、
<command>key</command> (と場合により <command>keyinit</command>)
プログラムに対してユーザが入力する秘密のパスワードで、ワンタイム
パスワードを生成するのに使われます。ここではこれを<quote>秘密の
パスフレーズ</quote>もしくは単に &ldquo;パスフレーズ&rdquo; と呼
ぶことにします。(訳注: ユーザが頭の中だけにしまっておくべきもの
が、この秘密のパスフレーズです。なお、原文ではこれをパスワードと
表記していますが、混乱を避けるために訳文ではすべて
の <command>key</command> プログラム、または
OPIE の <command>opiekey</command> プログラムによって生成され、
<command>keyinit</command> または <command>opiepasswd</command>
プログラムとログインプロンプトが受け付けるパスワードです。
ここではこれを <quote>ワンタイムパスワード</quote>
と呼ぶことにします。三つ目のパスワードは、
<command>key</command>/<command>opiekey</command> (と場合により
<command>keyinit</command>/<command>opiepasswd</command>)
プログラムに対してユーザが入力する秘密のパスワードで、
ワンタイムパスワードを生成するのに使われます。ここではこれを
<quote>秘密のパスフレーズ</quote> もしくは単に
<quote>パスフレーズ</quote> と呼ぶことにします。
(訳注: ユーザが頭の中だけにしまっておくべきものが、
この秘密のパスフレーズです。なお、原文ではこれを
<quote>password</quote> と表記していますが、
混乱を避けるために訳文ではすべて
<quote>秘密のパスフレーズ</quote> に統一しています)。</para>
<para>秘密のパスフレーズは、Unix
@ -1101,69 +1115,76 @@ lrwxr-xr-x 1 root wheel 15 Mar 19 06:56 libcrypt_p.a -&gt; libdescrypt_p.a</s
両者を同一に設定することは可能ですが、お奨めしません。Unix
パスワードは長さが 8 文字に制限されています (訳注: FreeBSD で
DES を導入していない場合はもっと長いパスワードも認識されます)。
これに対し、S/Key では秘密のパスフレーズを好きなだけ長くすること
ができます (訳注: 実装上、<command>key</command> コマンドなどの
これに対し、S/Key や OPIE
では秘密のパスフレーズを好きなだけ長くすることができます
(訳注: 実装上、<command>key</command> コマンドなどの
バッファ長で制限されてしまう可能性があります。200 文字程度に押
えておいた方がよいでしょう :-)。
6 語から 7 語からなるパスフレーズがふつうです。ほとんどの部分で、
S/Key システムは Unix
S/Key や OPIE システムは Unix
のパスワードシステムと完全に独立して動作するようになっています。</para>
<para>パスフレーズに加え、S/Key システムにとって重要な二種類のデー
タがあります。一つは<quote>シード (seed: 種)</quote>または
<quote>キー (key: 鍵)</quote>と呼ばれるもので、二つの文字と五つ
の数字で構成されます。もう一つは<quote>シーケンス番号 (iteration
<para>パスフレーズに加え、S/Key や OPIE
システムにとって重要な 2 種類のデータがあります。一つは
<quote>シード (seed: 種)</quote> または
<quote>キー (key: 鍵)</quote> と呼ばれるもので、2 つの文字と
5 つの数字で構成されます。もう一つは <quote>シーケンス番号 (iteration
count)</quote> で、1 から 100 までの整数です。S/Key はここまで
に述べたデータを利用してワンタイムパスワードを生成します。その方
法は、まずシードと秘密のパスフレーズを連結し、それに対してシーケ
ンス番号の回数だけ MD4 ハッシュを繰り返し計算します。そしてその
結果を 六つの短い英単語に変換します。<command>login</command> プ
ログラムと <command>su</command> プログラムは、前回最後に受け付
けられたワンタイムパスワードを記録しています。そして、その前回
ンス番号の回数だけ MD4/MD5 ハッシュを繰り返し計算します。
そしてその結果を 6 つの短い英単語に変換します。
認証システム (一次的には PAM)
は、前回最後に受け付けたワンタイムパスワードを記録しています。
そして、その前回
のワンタイムパスワードと、ユーザが入力したワンタイムパスワードを
回ハッシュ関数にかけた結果とが一致した場合に、このユーザは認証
1 回ハッシュ関数にかけた結果とが一致した場合に、このユーザは認証
されます。一方向ハッシュ関数を使っているので、もし正しく認証され
たワンタイムパスワードが一回盗聴されたとしても、次回以降に使われ
る複数のワンタイムパスワードを生成することは不可能です。シーケ
ンス番号はログインが成功するたびに一つずつ減らされて、ユーザとロ
グインプログラムの間で同期が取られます。シーケンス番号が 1 まで
減ったら、S/Key を再度初期化する必要があります。</para>
減ったら、S/Key や OPIE を再度初期化する必要があります。</para>
<para>次に、S/Key 関連の四つのプログラムについて説明します。
<command>key</command> プログラムは、シーケンス番号一つと、シー
ド一つと、秘密のパスフレーズ一つとを受け付けて、ワンタイムパスワー
ドを一つ生成します。<command>keyinit</command> プログラムは、
S/Key を初期化するのに使用され、また秘密のパスフレーズやシーケン
ス番号やシードを変更するためにも使用されます。このプログラムを実
行するには、秘密のパスフレーズか、または、シーケンス番号とシード
とワンタイムパスワードの一組かの、どちらかが必要になります。
<command>keyinfo</command> プログラムは、
<filename>/etc/skeykeys</filename> というファイルを調べて、この
プログラムを起動したユーザの現在のシーケンス番号とシードを表示し
ます。最後に、<command>login</command> と <command>su</command>
プログラムについてですが、これらは S/Key のワンタイムパスワード
を、(訳注:システムが) ユーザを認証するものとして受理するのに必要
な処理をおこないます。<command>login</command>
プログラムは、指定された特定のアドレスからの接続に対して、Unix
パスワードの使用
を認めなくする機能、逆に言えば S/Key の利用を強制する機能も持っ
ています。</para>
<para>次に、それぞれのシステムで関連する
3 つのプログラムについて説明します。
<command>key</command> と <command>opiekey</command>
プログラムは、シーケンス番号と、シードと、
秘密のパスフレーズを受け付けて、ワンタイムパスワード 1 つ、
または一連のワンタイムパスワードの一覧を生成します。
<command>keyinit</command> と <command>opiepasswd</command>
プログラムは、それぞれ S/Key と OPIE
を初期化するのに使用され、また秘密のパスフレーズ、
シーケンス番号やシードを変更するためにも使用されます。
それぞれのプログラムを実行するには、秘密のパスフレーズか、
または、シーケンス番号とシードとワンタイムパスワードの
1 組かの、どちらかを与えます。
<command>keyinfo</command> と <command>opieinfo</command> プログラムは、
それぞれに対応する認証ファイル (<filename>/etc/skeykeys</filename>
または <filename>/etc/opiekeys</filename>)
を調べて、プログラムを起動したユーザの現在のシーケンス番号とシードを表示します。</para>
<para>この文書では、四種類の異なる操作について説明します。
一つ目は、<command>keyinit</command> プログラムを信頼できる通信
路上で利用する場合で、一番始めに S/Key を設定する操作や、使い始
めたあとで秘密のパスフレーズやシードを変更する操作です。二つ目は、
<command>keyinit</command> プログラムを信頼できない通信路上で利
用する場合で、操作の目的は一つ目と同じです。この場合には
<command>key</command> プログラムを併用する必要があります。三つ
目は、<command>key</command> プログラムを使い、信頼できない通信
路を通じてログインする操作です。四番目は、<command>key</command>
プログラムを使って、複数のワンタイムパスワードを一気に生成する操
作です。ここで生成した複数のワンタイムパスワードは、メモしたり
印刷したりして携帯し、信頼できる通信路が一切ないところで利用する
ことができます。(訳注: ワンタイムパスワードを記録した紙をなくさ
ないこと! 電話番号やIPアドレス、ユーザ名を一緒にメモしていたら
最悪です!!)</para>
<para>この文書では、4 種類の異なる操作について説明します。
1 つ目は、<command>keyinit</command> または
<command>opiepasswd</command> を信頼できる通信路上で利用して、
最初にワンタイムパスワードを設定したり、
秘密のパスフレーズやシードを変更する操作です。
2 つ目は、同じことを行うために <command>keyinit</command>
または <command>opiepasswd</command>
を信頼できない通信路上で利用する操作です。
この場合は信頼できる通信路経由の
<command>key</command> または <command>opiekey</command>
を併用します。3 つ目は、<command>key</command> または
<command>opiekey</command>
を使い、信頼できない通信路を通じてログインする操作です。
4 番目は、<command>key</command> または <command>opiekey</command>
を使って複数のワンタイムパスワードを一気に生成する操作です。
ここで生成した複数のワンタイムパスワードは、
メモしたり印刷したりして携帯し、
信頼できる通信路が一切ないところで利用することができます。
(訳注: ワンタイムパスワードを記録した紙をなくさないこと!
電話番号や
IP アドレス、ユーザ名を一緒にメモしていたら最悪です!!)</para>
<sect2>
<title>信頼できる通信路での初期化</title>
@ -1190,17 +1211,41 @@ Again secret password:
ID unfurl s/key is 99 to17757
DEFY CLUB PRO NASH LACE SOFT</screen>
<para><prompt>Enter secret password:</prompt>
<para>OPIE では <command>opiepasswd</command>
が代わりに使われます。</para>
<screen>&prompt.user; <userinput>opiepasswd -c</userinput>
[grimreaper] ~ $ opiepasswd -f -c
Adding unfurl:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
) `opiepasswd' コマンドが出力する注意です。訳すと、
) この手順はコンソール以外では利用しないでください。リモートからは
) 絶対に利用してはいけません。telnet, xterm またはダイアルアップで
) 利用している場合は、^C を入力するかパスワードを入れずに終了してく
) ださい。その後、opiepasswd を -c オプションなしで実行してください。
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:
ID unfurl OTP key is 499 to4268
MOS MALL GOAT ARM AVID COED
</screen>
<para><prompt>Enter new secret pass phrase:</prompt>
または <prompt>Enter secret password:</prompt>
というプロンプトに対して、
あなたが考えた秘密のパスフレーズを入力します。このパスフ
レーズはログインするときに使うものではなく、ログインするときに
使うワンタイムパスワードを生成するために使うものであることを覚
えておいてください。<quote>ID</quote> から始まる行は、S/Key に
おける一回分のパラメータであり、あなたのログイン名とシーケンス番
号とシードです。(訳注: `<command>keyinit</command>' コマンドは
次回にログインするときに使えるパラメータを参考のためにここで表示
します)。S/Key を使ってログインするときには、システム側が自動
的にこれらのパラメータを表示してくれますから、これらのパラメータを
えておいてください。<quote>ID</quote> から始まる行は、
1 回分のパラメータで、
あなたのログイン名とシーケンス番号とシードです。
(訳注: <command>keyinit</command> コマンドは
次回にログインするときに使えるパラメータを参考のためにここで表示します)。
システムにログインするときには、
システム側が自動的にこれらのパラメータを表示してくれますから、
これらのパラメータを
覚えておく必要はありません。最後の行が、今述べたパラメータと入力
された秘密のパスフレーズから計算されたワンタイムパスワードです。
この例を実行した後、次にログインするときに打ち込むべきワンタイ
@ -1210,11 +1255,13 @@ DEFY CLUB PRO NASH LACE SOFT</screen>
<sect2>
<title>信頼できない通信路での初期化</title>
<para>信頼できない通信路を使って S/Key を初期化、または秘密のパ
スフレーズを変更するためには、信頼できる通信路として、その信頼
できない通信路とは別のものを用意する必要があります。その信頼で
きる通信路は <command>key</command> プログラムを実行するために
必要となるもので、たとえばそれは、あなたが信頼できる Macintosh
<para>信頼できない通信路を使って、秘密のパスフレーズを変更するためには、
信頼できる通信路として、その信頼
できない通信路とは別のものを用意する必要があります。
その信頼できる通信路は
<command>key</command> または <command>opiekey</command>
プログラムを実行するために必要となるもので、
たとえばそれは、あなたが信頼できる Macintosh
のデスクアクセサリや信頼できるマシンのシェルプロンプトだったり
するでしょう。(訳注: ここでの通信路とはマシンそのものになりま
す。信頼できるマシンとは、信頼できる人がしっかり管理しているマ
@ -1234,7 +1281,29 @@ Reminder you need the 6 English words from the key command.
Enter sequence count from 1 to 9999: <userinput>100</userinput>
Enter new key [default to17759]:
s/key 100 to 17759
s/key access password:</screen>
s/key access password:
s/key access password:<userinput>CURE MIKE BANE HIM RACY GORE</userinput>
</screen>
<para>OPIE では、<command>opiepasswd</command>
を使います。</para>
<screen>&prompt.user; <userinput>opiepasswd</userinput>
Updating unfurl:
You need the response from an OTP generator.
) `opiepasswd' コマンドが出力する注意です。訳すと、
) OTP 生成器の返す出力が必要になります。
Old secret pass phrase:
otp-md5 498 to4268 ext
Response: GAME GAG WELT OUT DOWN CHAT
New secret pass phrase:
otp-md5 499 to4269
Response: LINE PAP MILK NELL BUOY TROY
ID mark OTP key is 499 gr4269
LINE PAP MILK NELL BUOY TROY
</screen>
<para>デフォルトのシード (<command>keyinit</command> プログラム
は困ったことにこれを <literal>key</literal> と読んでいるのです
@ -1249,23 +1318,24 @@ Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <userinput>&lt;秘密のパスフレーズ&gt;</userinput>
CURE MIKE BANE HIM RACY GORE</screen>
<para>OPIE では、</para>
<screen>&prompt.user; <userinput>opiekey 498 to4268</userinput>
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
</screen>
<para>ここで信頼できない通信路の方に戻って、
<command>key</command> コマンドが出力したワンタイムパスワード
をコピーして <command>keyinit</command> プログラムに入力します。
</para>
<screen>s/key access password:<userinput>CURE MIKE BANE HIM RACY GORE</userinput>
ID unfurl s/key is 100 to17759
CURE MIKE BANE HIM RACY GORE</screen>
<para>後は、前章で説明したことと同様です。</para>
生成されたワンタイムパスワードをコピーして対応するプログラムに入力します。</para>
</sect2>
<sect2>
<title>ワンタイムパスワードを一つ生成する</title>
<para>S/Key の初期化ができたら、ログインするときには以下のような
プロンプトが出てくるでしょう。</para>
<para>S/Key または OPIE を初期化したら、
ログイン時には以下のようなプロンプトが出てくるでしょう。</para>
<screen>&prompt.user; <userinput>telnet example.com</userinput>
Trying 10.0.0.1...
@ -1278,31 +1348,38 @@ login: <userinput>&lt;
s/key 97 fw13894
Password: </screen>
<para>ここでは表示していませんが、便利な機能がログインプログラム
に備わっています: パスワードプロンプトに対して、何も入力せずに
リターンを押すとエコーモードに切り替わります。つまりタイプし
た文字がそのまま見えるようになるのです。これはS/Key のワンタイ
ムパスワードを紙に印刷していた場合など、ワンタイムパスワードを
手で入力しなければならない場合に特に役立つ機能です。また、この
ログインしようとしてるマシンが、接続元のマシンから
Unix パスワードを使ってログインすることができないように設定さ
れている場合には、ログインプロンプトには S/Key のワンタイムパ
スワードのみが受け付けられることを示す <literal>(s/key
required)</literal> という注釈が表示されます。</para>
<Para>OPIE については、</para>
<screen>&prompt.user; <userinput>telnet example.com</userinput>
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <userinput>&lt;username&gt;</userinput>
otp-md5 498 gr4269 ext
Password: </screen>
<para>ここでは表示していませんが、S/Key と OPIE
のプロンプトには便利な機能が備わっています。
パスワードプロンプトに対して、
何も入力せずにリターンを押すとエコーモードに切り替わります。
つまりタイプした文字がそのまま見えるようになるのです。
これは、紙に印刷していたりするワンタイムパスワードを
手で入力しなければならない場合に特に役立つ機能です。</para>
<indexterm><primary>MS-DOS</primary></indexterm>
<indexterm><primary>Windows</primary></indexterm>
<indexterm><primary>MacOS</primary></indexterm>
<para>次に、このログインプロンプトに対して入力するためのワンタイ
ムパスワードを生成しましょう。そのために、<command>key</command>
プログラムを使える信頼できるマシンを用意します。
(<command>key</command> プログラムには MS-DOS や
Windows の上で動くもの、MacOS の上で動くものなどもあります)。
<command>key</command> プログラムを使うときには、シーケンス番
号とシードを指定します。ログインしようとしているマシンのログ
インプロンプトの右側をカットアンドペーストすると楽でしょう。
</para>
<para>次に、
このログインプロンプトに対して入力するワンタイムパスワードを生成しなければなりません。
これは、<command>key</command> または <command>opiekey</command>
プログラムを使える信頼できるマシン上で行わなければなりません。
(これらのプログラムには DOS や Windows, MacOS 版があります)。
どちらも、コマンドラインからシーケンス番号とシードを指定しなければなりません。
ログインしようとしているマシンのログインプロンプトから直接カットアンドペーストすると楽でしょう。</para>
<para>信頼できるシステムで</para>
@ -1311,8 +1388,16 @@ Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password:
WELD LIP ACTS ENDS ME HAAG</screen>
<para>ここでワンタイムパスワードが得られました。ログインを続けま
しょう。</para>
<para>OPIE では</para>
<screen>&prompt.user; <userinput>opiekey 498 to4268</userinput>
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT</screen>
<para>ここでワンタイムパスワードが得られました。
ログインを続けましょう。</para>
<screen>login: <userinput>&lt;username&gt;</userinput>
s/key 97 fw13894
@ -1321,12 +1406,6 @@ s/key 97 fw13894
Password [echo on]: WELD LIP ACTS ENDS ME HAAG
Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ...</screen>
<para>以上の手順は、信頼できるマシンが利用できる場合<emphasis>の
みに</emphasis>使えるもっとも簡単な方法です。Java による
S/Key の <command>key</command> applet もあり、<ulink
url="http://www.cs.umd.edu/~harry/jotp/src.html">The Java OTP
Calculator</ulink> からダウンロードして Java をサポートするブ
ラウザ上でローカルに実行することができます。</para>
</sect2>
<sect2>
@ -1454,14 +1533,30 @@ permit port ttyd0</programlisting>
する際のガイドとして読むことができます。しかし、
完全な説明が必要な場合には、マニュアルページを読んだ方がよい
でしょう。</para>
<indexterm><primary>4.4BSD-Lite</primary></indexterm>
<para>FreeBSDのKerberosは、
オリジナルの4.4BSD-Liteの配布に含まれているものではなく、
FreeBSD 1.1.5.1のときに移植されたeBonesです。
これはアメリカ/カナダの外で作成されており、そのため、アメリカか
らの暗号技術の輸出制限があった時代でも、
これら以外の国の人々が手に入れられるものでした。</para>
<sect2>
<title>Kerberos のインストール</title>
<indexterm><primary>MIT</primary></indexterm>
<indexterm>
<primary>Kerberos</primary>
<secondary>インストール</secondary>
</indexterm>
<para>Kerberos は選択が任意な FreeBSD のコンポーネントです。
もっとも簡単なインストール方法は、FreeBSD
のインストール時に <application>sysinstall</application>
で 'krb4' または 'krb5' 配布物を選択することです。
そうすると、Kerberos の 'eBones' (KerberosIV) または
'Heimdal' (Kerberos5) 実装がインストールされます。
これらの実装が入っているのは、
これがアメリカ合衆国およびカナダの外で開発されたものであるため、
アメリカ合衆国からの暗号ソフトウェアの輸出が制限されていた時代でも
アメリカ合衆国およびカナダ以外の国に住んでいるシステム所有者の手に入るものだったからです。</para>
<para>ほかに、MIT で実装された Kerberos が Ports Collection
の <filename role="package">security/krb5</filename>
から利用できます。</para>
</sect2>
<sect2>
<title>初期データベースの作成</title>
@ -2863,7 +2958,7 @@ FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen>
<para>IPsec 機構は、IP 層とソケット層に対して安全な通信を提供します。
実装の詳細に関しては <ulink
url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/ipv6.html">The
url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/ipv6.html">
Developers' Handbook</ulink> を参照してください。
<!-- si006:2001/08/11 - developers handbook is not translated yet. -->
</para>
@ -3362,7 +3457,9 @@ Your identification has been saved in /home/user/.ssh/identity.
<para>&man.ssh-keygen.1; でパスフレーズを使っている場合は、
ユーザは秘密鍵を使うために毎回パスフレーズの入力を行なう必要があります。</para>
<para>同じ目的で、<command>ssh-keygen -t dsa</command>
<para>同じ目的で、<command>ssh-keygen -d</command>
(FreeBSD &os.current; では
<command>ssh-keygen -t dsa</command>)
コマンドを使って SSH v2 DSA 鍵を生成することもできます。
これは、SSH v2 セッション専用の DSA 公開/秘密鍵を生成します。
公開鍵は <filename>~/.ssh/id_dsa.pub</filename>