「SoftHSM」の版間の差分
提供: セキュリティ
行10: | 行10: | ||
[[SoftHSM]]は、オブジェクトストアとしてファイルシステムやデータベースが利用できます。 | [[SoftHSM]]は、オブジェクトストアとしてファイルシステムやデータベースが利用できます。 | ||
ファイルやSQLiteが選択できます。 | ファイルやSQLiteが選択できます。 | ||
+ | == HSMってなに? == | ||
+ | [[HSM]]とは、Hardware Security Module の略で、暗号処理や[[鍵]]の管理を行うためのハードウェアです。 | ||
+ | == PKCSってなに? == | ||
+ | PKCSとは、Public-Key Cryptography Standars の略で、[[公開鍵暗号]]標準のグループです。 | ||
+ | == PKCS#11ってなに? == | ||
+ | PKCS#11は、PKCSの標準の1つで、「'''暗号トークンインタフェース(Cryptoki)'''」です。暗号トークンへの汎用インタフェースを定義したものです。 | ||
== インストール == | == インストール == | ||
{{pkg|softhsm2}} | {{pkg|softhsm2}} |
2015年10月24日 (土) 17:55時点における最新版
SoftHSM とは、PKCS #11 インタフェースを通してアクセスできる暗号ストアの実装です。HSMなしに、PKCS # 11 で検索するために利用できます。
読み方
- SoftHSM
- そふとえいちえすえむ
目次
概要
SoftHSMは、OpenDNSSECのプロジェクトで開発されました。
SoftHSMは、オブジェクトストアとしてファイルシステムやデータベースが利用できます。 ファイルやSQLiteが選択できます。
HSMってなに?
HSMとは、Hardware Security Module の略で、暗号処理や鍵の管理を行うためのハードウェアです。
PKCSってなに?
PKCSとは、Public-Key Cryptography Standars の略で、公開鍵暗号標準のグループです。
PKCS#11ってなに?
PKCS#11は、PKCSの標準の1つで、「暗号トークンインタフェース(Cryptoki)」です。暗号トークンへの汎用インタフェースを定義したものです。
インストール
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).