トップページ » Solaris10 その他 » cryptoadm コマンドの使い方 [SCF]
カテゴリー
My Yahoo!に追加
Sun社提供情報
Solarisパッケージダウンロード
Sunマシンは買うには
blogs.sun.com
お勧めサイト
プライベートリンク

cryptoadm コマンドの使い方 [SCF]

Solaris Cryptographic Framework (SCF) に関して簡単に説明する。
SCFはSolaris10の新機能で、その名の通り、暗号化のフレームワークだ。

単に暗号化サービスといってもユーザーコマンドや上位アプリケーションが利用するアプリケーションレベルの暗号化サービスと、IPSecや Kerberosなどに提供するカーネルレベルの暗号化サービスがある。

SCFではアプリケーションレベルの暗号化サービスとカーネルレベルの暗号化サービスを分け、それぞれ独立して制御することを可能にしている。

ここではその制御に使用する cryptoadmコマンドの使い方について紹介する。

【検証環境】
# cat /etc/release
                         Solaris 10 3/05 s10_74L2a SPARC
           Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                            Assembled 22 January 2005

【cryptoadmコマンドの使い方】

次の例のように実行するとユーザーレベルのプロバイダ、カーネルソフトウェアプロバイダ、カーネルハードウェアプロバイダなどが表示できる。カーネルハー ドウェアプロバイダは Sun Crypto Accelerator などを増設しないと表示されない。

# cryptoadm list

ユーザーレベルプロバイダ:
Provider: /usr/lib/security/$ISA/pkcs11_kernel.so
Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so

カーネルソフトウェアプロバイダ:
        des
        aes
        arcfour
        blowfish
        sha1
        md5
        rsa
        swrand

カーネルハードウェアプロバイダ:


また、以下のように実行するとそれぞれのプロバイダが提供する暗号化メカニズムを表示することができる。

# cryptoadm list -m

ユーザーレベルプロバイダ:
=====================

Provider: /usr/lib/security/$ISA/pkcs11_kernel.so
スロットが表示されませんでした。

Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so
メカニズム:
CKM_DES_CBC
CKM_DES_CBC_PAD
CKM_DES_ECB
CKM_DES_KEY_GEN
CKM_DES_MAC_GENERAL
CKM_DES_MAC
CKM_DES3_CBC
CKM_DES3_CBC_PAD
CKM_DES3_ECB
CKM_DES3_KEY_GEN
CKM_AES_CBC
CKM_AES_CBC_PAD
CKM_AES_ECB
CKM_AES_KEY_GEN
CKM_SHA_1
CKM_SHA_1_HMAC
CKM_SHA_1_HMAC_GENERAL
CKM_SSL3_SHA1_MAC
CKM_MD5
CKM_MD5_HMAC
CKM_MD5_HMAC_GENERAL
CKM_SSL3_MD5_MAC
CKM_RC4
CKM_RC4_KEY_GEN
CKM_DSA
CKM_DSA_SHA1
CKM_DSA_KEY_PAIR_GEN
CKM_RSA_PKCS
CKM_RSA_PKCS_KEY_PAIR_GEN
CKM_RSA_X_509
CKM_MD5_RSA_PKCS
CKM_SHA1_RSA_PKCS
CKM_DH_PKCS_KEY_PAIR_GEN
CKM_DH_PKCS_DERIVE
CKM_MD5_KEY_DERIVATION
CKM_SHA1_KEY_DERIVATION
CKM_PBE_SHA1_RC4_128
CKM_PKCS5_PBKD2
CKM_SSL3_PRE_MASTER_KEY_GEN
CKM_TLS_PRE_MASTER_KEY_GEN
CKM_SSL3_MASTER_KEY_DERIVE
CKM_TLS_MASTER_KEY_DERIVE
CKM_SSL3_MASTER_KEY_DERIVE_DH
CKM_TLS_MASTER_KEY_DERIVE_DH
CKM_SSL3_KEY_AND_MAC_DERIVE
CKM_TLS_KEY_AND_MAC_DERIVE

カーネルソフトウェアプロバイダ:
==========================
des: CKM_DES_ECB,CKM_DES_CBC,CKM_DES3_ECB,CKM_DES3_CBC
aes: CKM_AES_ECB,CKM_AES_CBC
arcfour: CKM_RC4
blowfish: CKM_BF_ECB,CKM_BF_CBC
sha1: CKM_SHA_1,CKM_SHA_1_HMAC,CKM_SHA_1_HMAC_GENERAL
md5: CKM_MD5,CKM_MD5_HMAC,CKM_MD5_HMAC_GENERAL
rsa: CKM_RSA_PKCS,CKM_RSA_X_509,CKM_MD5_RSA_PKCS, CKM_SHA1_RSA_PKCS
swrand: No mechanisms presented.

カーネルハードウェアプロバイダ:
==========================

また、以下のようにプロバイダ指定をすることで個別に確認することもできる。

# cryptoadm list -p provider=des
des: all mechanisms are enable.

指定のプロバイダから特定のメカニズムを無効にするには以下のように実行する。
上記と同じコマンドで確認すると、あるメカニズムが無効になっていることが確認できる。

# cryptoadm disable provider=des mechanism=CKM_DES_ECB
# cryptoadm list -p provider=des
des: all mechanisms are enabled, except CKM_DES_ECB.

ちなみに、上記コマンドで /etc/crypto/kcf.conf が更新される。
# cat /etc/crypto/kcf.conf
...
des:supportedlist=CKM_DES_CBC,CKM_DES_ECB,CKM_DES3_CBC,CKM_DES3_ECB; disabledlist=CKM_DES_ECB
aes:supportedlist=CKM_AES_ECB,CKM_AES_CBC
arcfour:supportedlist=CKM_RC4
blowfish:supportedlist=CKM_BF_ECB,CKM_BF_CBC
sha1:supportedlist=CKM_SHA_1,CKM_SHA_1_HMAC_GENERAL,CKM_SHA_1_HMAC
md5:supportedlist=CKM_MD5,CKM_MD5_HMAC_GENERAL,CKM_MD5_HMAC
rsa:supportedlist=CKM_RSA_PKCS,CKM_RSA_X_509,CKM_MD5_RSA_PKCS, CKM_SHA1_RSA_PKCS
swrand:supportedlist=random
...

また、SCFはsvc:/system/cryptosvc:default サービスによって提供される。
SCFサービスを提供するデーモンは以下のようにkcfd ということがわかる。
# svcs -p cryptosvc
STATE          STIME    FMRI
online         18:11:57 svc:/system/cryptosvc:default
               18:11:57       87 kcfd


アプリケーションレベルとカーネルレベルのプロバイダの違いを理解するために
カーネルレベルのプロバイダから des のメカニズムをすべて無効にしてみる。

# cryptoadm disable provider=des mechanism=all
# cryptoadm list -p provider=des
des: all mechanisms are enabled, except CKM_DES_ECB,CKM_DES_CBC, CKM_DES3_ECB, CKM_DES3_CBC.


以下は、ユーザーが使用する encrypt コマンドで鍵のサイズを確認している。

# encrypt -l
アルゴリズム   鍵サイズ: 最小  最大 (ビット)
------------------------------------------
aes                       128   128
arcfour                     8   128
des                        64    64
3des                      192   192

下記のコマンドで64ビット(8バイト)の鍵を作成している。

# dd if=/dev/urandom of=/var/tmp/des.key bs=8 count=1
書き込まれたレコード数 1+0
読み出されたレコード数 1+0
# ls -l /var/tmp
合計 2
-rw-r--r--   1 root     root           8  5月 25日  19:13 des.key

この鍵を使って以下のように/etc/inet/hostsファイルを暗号化している。

# encrypt -a des -k /var/tmp/des.key -i /etc/inet/hosts -o /var/tmp/hosts.des
# file /var/tmp/hosts.des
/var/tmp/hosts.des:     データ

つまり、カーネルソフトウェアプロバイダの des を無効にしてもアプリケーションレベルには無関係であることがわかる。
次に以下のように設定を元に戻して、ユーザーレベルプロバイダから des のメカニズムを無効にしてみる。

# cryptoadm enable provider=des mechanism=all
# cryptoadm list -p provider=des
des: all mechanisms are enabled.

まず、次のようにユーザーレベルプロバイダの pkcs11_softtoken.so からDESのメカニズムを全て取得する。

# cryptoadm list -m provider=/usr/lib/security/'$ISA'/pkcs11_softtoken.so | grep _DES_
CKM_DES_CBC
CKM_DES_CBC_PAD
CKM_DES_ECB
CKM_DES_KEY_GEN
CKM_DES_MAC_GENERAL
CKM_DES_MAC

そして以前と同様に、プロバイダから指定したメカニズムを無効にする。(1行で全部書く)
確認すると無効になっていることがわかる。

# cryptoadm disable provider=/usr/lib/security/'$ISA'/pkcs11_softtoken.so mechanism=CKM_DES_CBC, CKM_DES_CBC_PAD, CKM_DES_ECB, CKM_DES_KEY_GEN, CKM_DES_MAC_GENERAL, CKM_DES_MAC
# cryptoadm list -p provider=/usr/lib/security/'$ISA'/pkcs11_softtoken.so
/usr/lib/security/$ISA/pkcs11_softtoken.so: すべてのメカニズムが有効です, except CKM_DES_MAC,CKM_DES_MAC_GENERAL, CKM_DES_KEY_GEN, CKM_DES_ECB, CKM_DES_CBC_PAD, CKM_DES_CBC. ランダムが有効になっています。

このような状況で先ほどと同様に encrypt コマンドを実行してみると、以下のように拒否される。

# encrypt -a des -k /var/tmp/des.key -i /etc/inet/hosts -o /var/tmp/hosts.des
encrypt: このアルゴリズム用の暗号化プロバイダが見つかりません -- des

ちなみにユーザーレベルプロバイダの変更情報は /etc/crypto/pkcs11.conf ファイルに格納される。
# cat pkcs11.conf
...
/usr/lib/security/$ISA/pkcs11_kernel.so
/usr/lib/security/$ISA/pkcs11_softtoken.so:disabledlist=0x00000123, 0x00000124, 0x00000120, 0x00000121, 0x00000125, 0x00000122
...

cryptoadmのマニュアルを見れば プロバイダーのアンインストールなども載っているので参考にすると良い。

Solaris10 その他のその他のリンク

Solaris系技術トレーニング一覧

Solaris10システム管理基本コース
Solaris10ネットワーク・インターネットサーバー管理コース
セキュリティ・パフォーマンス管理・トラブルシューティング等
Sun Cluster、ボリューム管理ソフトウェア
仮想化技術全般
シンクライアント、SunRay、デスクトップソフトウェア
アイデンティティマネージメントサービス
アプリケーションサーバーとWebポータル
サーバー(ハードウェア)メンテナンス
Sun Java CAPS
MySQL

コメント

sDQEem cmygswunsctk, [url=http://fqieisfbqkip.com/]fqieisfbqkip[/url], [link=http://irrdacpheoch.com/]irrdacpheoch[/link], http://uydcvrrtosux.com/

Posted by: aqcwpx : 2010年01月22日 19:06
コメントする









名前、アドレスを登録しますか?