「SoftHSM」の版間の差分
提供: セキュリティ
行7: | 行7: | ||
== 概要 == | == 概要 == | ||
[[SoftHSM]]は、OpenDNSSECのプロジェクトで開発されました。 | [[SoftHSM]]は、OpenDNSSECのプロジェクトで開発されました。 | ||
+ | |||
+ | [[SoftHSM]]は、オブジェクトストアとしてファイルシステムやデータベースが利用できます。 | ||
+ | ファイルやSQLiteが選択できます。 | ||
== インストール == | == インストール == | ||
{{pkg|softhsm2}} | {{pkg|softhsm2}} | ||
{{pkg|softhsm}} | {{pkg|softhsm}} | ||
+ | == インストールされるファイル == | ||
+ | === SoftHSM2の場合 === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
+ | softhsm2-2.0.0: | ||
+ | /usr/local/bin/softhsm2-dump-file | ||
+ | /usr/local/bin/softhsm2-keyconv | ||
+ | /usr/local/bin/softhsm2-util | ||
+ | /usr/local/etc/softhsm2.conf | ||
+ | /usr/local/etc/softhsm2.conf.sample | ||
+ | /usr/local/lib/softhsm/libsofthsm2.a | ||
+ | /usr/local/lib/softhsm/libsofthsm2.so | ||
+ | /usr/local/man/man1/softhsm2-dump-file.1.gz | ||
+ | /usr/local/man/man1/softhsm2-keyconv.1.gz | ||
+ | /usr/local/man/man1/softhsm2-util.1.gz | ||
+ | /usr/local/man/man5/softhsm2.conf.5.gz | ||
+ | /usr/local/share/licenses/softhsm2-2.0.0/BSD2CLAUSE | ||
+ | /usr/local/share/licenses/softhsm2-2.0.0/LICENSE | ||
+ | /usr/local/share/licenses/softhsm2-2.0.0/catalog.mk | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 使い方 == | == 使い方 == | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
+ | cd /tmp | ||
+ | mkdir hsm | ||
+ | cd hsm | ||
+ | cp /usr/local/etc/softhsm2.conf . | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | softhsm2.conf の内容を以下のように書き換えます。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | # SoftHSM v2 configuration file | ||
+ | |||
+ | directories.tokendir = /tmp/hsm/ | ||
+ | objectstore.backend = file | ||
+ | |||
+ | # ERROR, WARNING, INFO, DEBUG | ||
+ | log.level = INFO | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | export SOFTHSM2_CONF=/tmp/hsm/softhsm2.conf | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | トークンを初期化します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ softhsm2-util --init-token --slot 0 --label "My token 1" | ||
+ | *** SO PIN (4-255 characters) *** | ||
+ | Please enter SO PIN: | ||
+ | Please reenter SO PIN: | ||
+ | *** User PIN (4-255 characters) *** | ||
+ | Please enter user PIN: | ||
+ | Please reenter user PIN: | ||
+ | The token has been initialized. | ||
+ | </syntaxhighlight> | ||
+ | SO PINとユーザPINを要求されます。 | ||
+ | |||
+ | 以下のファイルが生成されます。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ ls d7b6ca42-c0b9-aac7-2d33-df1844c3b5a0 | ||
+ | generation token.lock token.object | ||
+ | </syntaxhighlight> | ||
+ | == softhsm2-dump-file == | ||
+ | softhsm2-dump-file は、デバッグ用途のために使われるツールで、 SoftHSM v2 オブジェクトファイルをダンプするためのツールです。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ /usr/local/bin/softhsm2-dump-file | ||
+ | SoftHSM dump tool. From SoftHSM v2 object file. | ||
+ | Usage: softhsm2-dump-file path | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ダンプしたらこのようになりました。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ softhsm2-dump-file d7b6ca42-c0b9-aac7-2d33-df1844c3b5a0/token.object | ||
+ | Dump of object file "d7b6ca42-c0b9-aac7-2d33-df1844c3b5a0/token.object" | ||
+ | 00 00 00 00 00 00 00 09 generation 9 | ||
+ | 00 00 00 00 80 00 53 49 CKA_OS_TOKENLABEL | ||
+ | 00 00 00 00 00 00 00 03 byte string attribute | ||
+ | 00 00 00 00 00 00 00 20 (length 32) | ||
+ | 4d 79 20 74 6f 6b 65 6e <My.token> | ||
+ | 20 31 20 20 20 20 20 20 <.1......> | ||
+ | 20 20 20 20 20 20 20 20 <........> | ||
+ | 20 20 20 20 20 20 20 20 <........> | ||
+ | 00 00 00 00 80 00 53 4a CKA_OS_TOKENSERIAL | ||
+ | 00 00 00 00 00 00 00 03 byte string attribute | ||
+ | 00 00 00 00 00 00 00 10 (length 16) | ||
+ | 32 64 33 33 64 66 31 38 <2d33df18> | ||
+ | 34 34 63 33 62 35 61 30 <44c3b5a0> | ||
+ | 00 00 00 00 80 00 53 4b CKA_OS_TOKENFLAGS | ||
+ | 00 00 00 00 00 00 00 02 unsigned long attribute | ||
+ | 00 00 00 00 00 00 04 2d CK_ULONG 1069(0x42d) | ||
+ | 00 00 00 00 80 00 53 4c CKA_OS_SOPIN | ||
+ | 00 00 00 00 00 00 00 03 byte string attribute | ||
+ | 00 00 00 00 00 00 00 48 (length 72) | ||
+ | 2d 07 79 a6 f2 d1 29 f5 <-.y...).> | ||
+ | 27 96 f7 a9 c9 e5 2a f0 <'.....*.> | ||
+ | 73 22 0d 4c 55 74 de d6 <s".LUt..> | ||
+ | fc 69 e0 a9 d0 b7 9c 32 <.i.....2> | ||
+ | be 31 8e 0d 13 b7 37 4d <.1....7M> | ||
+ | 76 a9 00 ef 46 5d bc dc <v...F]..> | ||
+ | 56 09 24 b8 27 fd 36 b0 <V.$.'.6.> | ||
+ | 70 b9 96 22 1c 70 60 10 <p..".p`.> | ||
+ | b4 cf 22 20 19 7f 61 21 <.."...a!> | ||
+ | 00 00 00 00 80 00 53 4d CKA_OS_USERPIN | ||
+ | 00 00 00 00 00 00 00 03 byte string attribute | ||
+ | 00 00 00 00 00 00 00 48 (length 72) | ||
+ | 6a 37 4d 28 36 4a dd dc <j7M(6J..> | ||
+ | 5e 62 fd a2 75 b6 28 19 <^b..u.(.> | ||
+ | d0 b8 6c 65 aa 48 15 4f <..le.H.O> | ||
+ | 19 c1 38 ed aa ec 1c 5b <..8....[> | ||
+ | c2 3d 89 48 38 b8 ba dd <.=.H8...> | ||
+ | 80 38 1e b5 d6 05 aa 96 <.8......> | ||
+ | 97 52 bd a0 8b cd 3b ac <.R....;.> | ||
+ | 0a 31 93 f3 a0 06 0b af <.1......> | ||
+ | 21 17 31 87 b9 68 41 9c <!.1..hA.> | ||
+ | </syntaxhighlight> | ||
+ | == softhsm2-keyconv == | ||
+ | softhsm2-keyconv は、 BIND から PKCS#8 キーファイルフォーマットに変換するツールです。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ /usr/local/bin/softhsm2-keyconv | ||
+ | Converting from BIND .private-key format to PKCS#8 key file format. | ||
+ | Usage: softhsm2-keyconv [OPTIONS] | ||
+ | Options: | ||
+ | -h Shows this help screen. | ||
+ | --help Shows this help screen. | ||
+ | --in <path> The path to the input file. | ||
+ | --out <path> The path to the output file. | ||
+ | --pin <PIN> To encrypt PKCS#8 file. Optional. | ||
+ | -v Show version info. | ||
+ | --version Show version info. | ||
+ | </syntaxhighlight> | ||
+ | == softhsm2-util == | ||
+ | softhsm2-util は、 libsofthsm2 のサポートツールです。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ /usr/local/bin/softhsm2-util | ||
+ | Support tool for PKCS#11 | ||
+ | Usage: softhsm2-util [ACTION] [OPTIONS] | ||
+ | Action: | ||
+ | -h Shows this help screen. | ||
+ | --help Shows this help screen. | ||
+ | --import <path> Import a key pair from the given path. | ||
+ | The file must be in PKCS#8-format. | ||
+ | Use with --file-pin, --slot, --label, --id, | ||
+ | --no-public-key, and --pin. | ||
+ | --init-token Initialize the token at a given slot. | ||
+ | Use with --slot or --free, --label, --so-pin, and --pin. | ||
+ | WARNING: Any content in token token will be erased. | ||
+ | --show-slots Display all the available slots. | ||
+ | -v Show version info. | ||
+ | --version Show version info. | ||
+ | Options: | ||
+ | --file-pin <PIN> Supply a PIN if the file is encrypted. | ||
+ | --force Used to override a warning. | ||
+ | --free Initialize the first free token. | ||
+ | --id <hex> Defines the ID of the object. Hexadecimal characters. | ||
+ | Use with --force if multiple key pairs may share | ||
+ | the same ID. | ||
+ | --label <text> Defines the label of the object or the token. | ||
+ | --module <path> Use another PKCS#11 library than SoftHSM. | ||
+ | --no-public-key Do not import the public key. | ||
+ | --pin <PIN> The PIN for the normal user. | ||
+ | --slot <number> The slot where the token is located. | ||
+ | --so-pin <PIN> The PIN for the Security Officer (SO). | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 関連項目 == | == 関連項目 == |
2015年10月24日 (土) 17:51時点における版
SoftHSM とは、PKCS #11 インタフェースを通してアクセスできる暗号ストアの実装です。HSMなしに、PKCS # 11 で検索するために利用できます。
読み方
- SoftHSM
- そふとえいちえすえむ
目次
概要
SoftHSMは、OpenDNSSECのプロジェクトで開発されました。
SoftHSMは、オブジェクトストアとしてファイルシステムやデータベースが利用できます。 ファイルやSQLiteが選択できます。
インストール
FreeBSDにインストールする場合
pkgコマンドでインストールする場合
sudo pkg install softhsm2
FreeBSDにインストールする場合
pkgコマンドでインストールする場合
sudo pkg install softhsm
インストールされるファイル
SoftHSM2の場合
softhsm2-2.0.0: /usr/local/bin/softhsm2-dump-file /usr/local/bin/softhsm2-keyconv /usr/local/bin/softhsm2-util /usr/local/etc/softhsm2.conf /usr/local/etc/softhsm2.conf.sample /usr/local/lib/softhsm/libsofthsm2.a /usr/local/lib/softhsm/libsofthsm2.so /usr/local/man/man1/softhsm2-dump-file.1.gz /usr/local/man/man1/softhsm2-keyconv.1.gz /usr/local/man/man1/softhsm2-util.1.gz /usr/local/man/man5/softhsm2.conf.5.gz /usr/local/share/licenses/softhsm2-2.0.0/BSD2CLAUSE /usr/local/share/licenses/softhsm2-2.0.0/LICENSE /usr/local/share/licenses/softhsm2-2.0.0/catalog.mk
使い方
cd /tmp mkdir hsm cd hsm cp /usr/local/etc/softhsm2.conf .
softhsm2.conf の内容を以下のように書き換えます。
# SoftHSM v2 configuration file directories.tokendir = /tmp/hsm/ objectstore.backend = file # ERROR, WARNING, INFO, DEBUG log.level = INFO
export SOFTHSM2_CONF=/tmp/hsm/softhsm2.conf
トークンを初期化します。
$ softhsm2-util --init-token --slot 0 --label "My token 1" *** SO PIN (4-255 characters) *** Please enter SO PIN: Please reenter SO PIN: *** User PIN (4-255 characters) *** Please enter user PIN: Please reenter user PIN: The token has been initialized.
SO PINとユーザPINを要求されます。
以下のファイルが生成されます。
$ ls d7b6ca42-c0b9-aac7-2d33-df1844c3b5a0 generation token.lock token.object
softhsm2-dump-file
softhsm2-dump-file は、デバッグ用途のために使われるツールで、 SoftHSM v2 オブジェクトファイルをダンプするためのツールです。
$ /usr/local/bin/softhsm2-dump-file SoftHSM dump tool. From SoftHSM v2 object file. Usage: softhsm2-dump-file path
ダンプしたらこのようになりました。
$ softhsm2-dump-file d7b6ca42-c0b9-aac7-2d33-df1844c3b5a0/token.object Dump of object file "d7b6ca42-c0b9-aac7-2d33-df1844c3b5a0/token.object" 00 00 00 00 00 00 00 09 generation 9 00 00 00 00 80 00 53 49 CKA_OS_TOKENLABEL 00 00 00 00 00 00 00 03 byte string attribute 00 00 00 00 00 00 00 20 (length 32) 4d 79 20 74 6f 6b 65 6e <My.token> 20 31 20 20 20 20 20 20 <.1......> 20 20 20 20 20 20 20 20 <........> 20 20 20 20 20 20 20 20 <........> 00 00 00 00 80 00 53 4a CKA_OS_TOKENSERIAL 00 00 00 00 00 00 00 03 byte string attribute 00 00 00 00 00 00 00 10 (length 16) 32 64 33 33 64 66 31 38 <2d33df18> 34 34 63 33 62 35 61 30 <44c3b5a0> 00 00 00 00 80 00 53 4b CKA_OS_TOKENFLAGS 00 00 00 00 00 00 00 02 unsigned long attribute 00 00 00 00 00 00 04 2d CK_ULONG 1069(0x42d) 00 00 00 00 80 00 53 4c CKA_OS_SOPIN 00 00 00 00 00 00 00 03 byte string attribute 00 00 00 00 00 00 00 48 (length 72) 2d 07 79 a6 f2 d1 29 f5 <-.y...).> 27 96 f7 a9 c9 e5 2a f0 <'.....*.> 73 22 0d 4c 55 74 de d6 <s".LUt..> fc 69 e0 a9 d0 b7 9c 32 <.i.....2> be 31 8e 0d 13 b7 37 4d <.1....7M> 76 a9 00 ef 46 5d bc dc <v...F]..> 56 09 24 b8 27 fd 36 b0 <V.$.'.6.> 70 b9 96 22 1c 70 60 10 <p..".p`.> b4 cf 22 20 19 7f 61 21 <.."...a!> 00 00 00 00 80 00 53 4d CKA_OS_USERPIN 00 00 00 00 00 00 00 03 byte string attribute 00 00 00 00 00 00 00 48 (length 72) 6a 37 4d 28 36 4a dd dc <j7M(6J..> 5e 62 fd a2 75 b6 28 19 <^b..u.(.> d0 b8 6c 65 aa 48 15 4f <..le.H.O> 19 c1 38 ed aa ec 1c 5b <..8....[> c2 3d 89 48 38 b8 ba dd <.=.H8...> 80 38 1e b5 d6 05 aa 96 <.8......> 97 52 bd a0 8b cd 3b ac <.R....;.> 0a 31 93 f3 a0 06 0b af <.1......> 21 17 31 87 b9 68 41 9c <!.1..hA.>
softhsm2-keyconv
softhsm2-keyconv は、 BIND から PKCS#8 キーファイルフォーマットに変換するツールです。
$ /usr/local/bin/softhsm2-keyconv Converting from BIND .private-key format to PKCS#8 key file format. Usage: softhsm2-keyconv [OPTIONS] Options: -h Shows this help screen. --help Shows this help screen. --in <path> The path to the input file. --out <path> The path to the output file. --pin <PIN> To encrypt PKCS#8 file. Optional. -v Show version info. --version Show version info.
softhsm2-util
softhsm2-util は、 libsofthsm2 のサポートツールです。
$ /usr/local/bin/softhsm2-util Support tool for PKCS#11 Usage: softhsm2-util [ACTION] [OPTIONS] Action: -h Shows this help screen. --help Shows this help screen. --import <path> Import a key pair from the given path. The file must be in PKCS#8-format. Use with --file-pin, --slot, --label, --id, --no-public-key, and --pin. --init-token Initialize the token at a given slot. Use with --slot or --free, --label, --so-pin, and --pin. WARNING: Any content in token token will be erased. --show-slots Display all the available slots. -v Show version info. --version Show version info. Options: --file-pin <PIN> Supply a PIN if the file is encrypted. --force Used to override a warning. --free Initialize the first free token. --id <hex> Defines the ID of the object. Hexadecimal characters. Use with --force if multiple key pairs may share the same ID. --label <text> Defines the label of the object or the token. --module <path> Use another PKCS#11 library than SoftHSM. --no-public-key Do not import the public key. --pin <PIN> The PIN for the normal user. --slot <number> The slot where the token is located. --so-pin <PIN> The PIN for the Security Officer (SO).