CrackLib-2.9.7

CrackLib の概要

CrackLib パッケージは、強力なパスワードを実現するライブラリを提供します。 ユーザーが選び出したパスワードは、あらかじめ登録されている語句リスト (word list) との比較が行われます。

本パッケージは LFS-11.1 において正しくビルドでき動作することが確認されています。

パッケージ情報

追加のダウンロード

上以外にも追加の用語リストがあって、例えば http://www.cotse.com/tools/wordlists.htm などからダウンロードすることができます。 CrackLib では、語句リストの大小を問わず、望みのものを選んでインストールすることができます。

[重要]

重要

各ユーザーがパスワードを決める際には、自国語のごく普通の単語を選びがちです。 このことはクラッカーも承知しています。 CrackLib はそのような不適切なパスワードを受け付けません。 CrackLib にて利用する語句リストは、パスワードとして用いそうな単語ベースでの語句の組み合わせを余すことなく収容するものでなければなりません。

上の語句リストは、デフォルトの語句リストとしてダウンロードし利用することが推奨されています。 英語圏ユーザーなら、これを利用すれば十分です。 他のユーザーの場合は、追加の語句リストをダウンロードするか新規に生成するかして利用することが必要です。

Note that word lists suitable for spell-checking are not usable as CrackLib word lists in countries with non-Latin based alphabets, because of word-based keystroke combinations that make bad passwords.

ユーザー情報: https://wiki.linuxfromscratch.org/blfs/wiki/cracklib

CrackLib のインストール

以下のコマンドを実行して CrackLib をビルドします。

sed -i '/skipping/d' util/packer.c &&

sed -i '15209 s/.*/am_cv_python_version=3.10/' configure &&

PYTHON=python3 CPPFLAGS=-I/usr/include/python3.10 \
./configure --prefix=/usr    \
            --disable-static \
            --with-default-dict=/usr/lib/cracklib/pw_dict &&
make

root ユーザーになって以下を実行します。

make install

root ユーザーになって以下のコマンドを実行します。 これにより、推奨されている語句リストをインストールし CrackLib の辞書情報を生成します。 これ以外の語句リストでも、テキストベースであり、一語につき一行のものであれば利用することができます。 利用する場合は、そのファイルを /usr/share/dict にインストールし create-cracklib-dict コマンドを使ってそのファイルの追加登録を行います。

install -v -m644 -D    ../cracklib-words-2.9.7.bz2 \
                         /usr/share/dict/cracklib-words.bz2    &&

bunzip2 -v               /usr/share/dict/cracklib-words.bz2    &&
ln -v -sf cracklib-words /usr/share/dict/words                 &&
echo $(hostname) >>      /usr/share/dict/cracklib-extra-words  &&
install -v -m755 -d      /usr/lib/cracklib                     &&

create-cracklib-dict     /usr/share/dict/cracklib-words \
                         /usr/share/dict/cracklib-extra-words

必要なら以下のコマンドを実行して、一般ユーザーであってもライブラリの動作が正しく行われるかをチェックします。

make test
[重要]

重要

LFS を構築することで Shadow パッケージがインストールされているので、その後に CrackLib をインストールしたら、Shadow-4.9 を再インストールしてください。 これを行わないと強力なパスワードを実現することはできません。 今から Linux-PAM-1.5.2 パッケージをインストールしようとしている場合は、上の説明は無視して Linux-PAM をインストールした後に Shadow をインストールしてください。

コマンド説明

sed -i '/skipping/d' util/packer.c: 意味のない警告メッセージを取り除きます。

PYTHON=python3: This forces the installation of python bindings for Python 3, even if Python 2 is installed.

CPPFLAGS=-I/usr/include/python3.10: This works around an issue caused by incorrect usage of Python 3 headers.

--with-default-dict=/lib/cracklib/pw_dict: このパラメーターは CrackLib の辞書情報を /lib ディレクトリ配下にインストールすることを指示します。

--disable-static: このスイッチはスタティックライブラリをインストールしないようにします。

install -v -m644 -D ...: This command creates the /usr/share/dict directory (if it doesn't already exist) and installs the compressed word list there.

ln -v -s cracklib-words /usr/share/dict/words: The word list is linked to /usr/share/dict/words as historically, words is the primary word list in the /usr/share/dict directory. Omit this command if you already have a /usr/share/dict/words file installed on your system.

echo $(hostname) >>...: The value of hostname is echoed to a file called cracklib-extra-words. This extra file is intended to be a site specific list which includes easy to guess passwords such as company or department names, user names, product names, computer names, domain names, etc.

create-cracklib-dict ...: このコマンドは語句リスト (word list) から CrackLib の辞書情報を生成します。 語句リストを追加インストールしたい場合は、このコマンドを修正してください。

パッケージ構成

インストールプログラム: cracklib-check, cracklib-format, cracklib-packer, cracklib-unpacker, create-cracklib-dict
インストールライブラリ: libcrack.so and the _cracklib.so (Python モジュール)
インストールディレクトリ: /lib/cracklib, /usr/share/dict, /usr/share/cracklib

概略説明

cracklib-check

is used to determine if a password is strong

cracklib-format

is used to format text files (lowercases all words, removes control characters and sorts the lists)

cracklib-packer

creates a database with words read from standard input

cracklib-unpacker

displays on standard output the database specified

create-cracklib-dict

指定された語句リスト (word list) から CrackLib の辞書情報を生成します。

libcrack.so

強力なパスワード機能に対しての、高速な辞書情報の検索を実現します。

最終更新日: