読者です 読者をやめる 読者になる 読者になる

Lambdaカクテル

ソフトウェア開発者です.玉石混淆です.

OpenPGP Card v2.1買った

OpenPGP Card v2.1を購入したのでレビューします。日本語のレビューが無いので後学の参考になればと思います。各種リンクは末尾にまとめて置きます。

OpenPGP Cardとは

いわゆるスマートカードの一種で、GPGなどのソフトウェアから暗号化・署名・認証を行うことができます。 秘密鍵をカード内部に格納しカード内部で暗号化処理を行うという特性のため、秘密鍵は一度カード内部に格納されると外には出ていきません。また秘密鍵の取り出しも不可能です。安全!

できること

暗号に関連する大抵のことができます。

  • GPGでファイルや電子メールを暗号化、署名する
  • SSH鍵を格納して遠隔ログインに使う
  • SSLクライアント証明書を格納する
  • TrueCrypt/Veracryptの暗号化キーを格納する規格の上ではoptionalで、Kernel Conceptsのものは非対応でした
    • これもPKCS#11経由
    • Keyfileを暗号化すれば同じことがおおむねできる
  • 格納している鍵でPAMを利用してマシンにログインする(あとでかく)
    • pam_poldi.so
  • 自爆
    • 数回Admin PINを間違えると使用不能になります

流通

ZeitControlが開発し、BasicCardというカード用OSが走っており、g10Codeが供給し、Kernel Conceptsが販売しています。したがってOpenPGP Cardというと仕様とその実装のどちらかを指します。

バージョン

バージョンが複数存在しており、v1.0, v1.1 v2.0, v2.1, v3.0が存在していますが、v3.0は仕様のみが公開されており、現在売られているのはv2.1です。

供給元?のhttp://g10code.com/p-card.htmlによれば、OpenPGP Cardには以下の特性があります。

v2.0の時点で、

  • 3つの独立した2048ビット()RSA鍵を格納できる(署名・暗号化・認証)
  • 鍵長は1024ビットにまで下げることができ、署名用の鍵は3072ビットにまで上げることができる
  • カード上で鍵生成するか既存の鍵をインポートできる
  • 署名カウンタがある(何回署名したかが確認できる)
  • OpenPGP公開鍵にアクセスするためのURLを格納できるデータオブジェクト(DO)
  • カードの所有者の名前などを格納できるDO
  • ログイン用データ(ユーザ名)を格納できるDO
  • X.509証明書を1つ(store a X.509 certificate)格納できるDO
  • 6から32文字の間で指定できるPIN
  • T=1 プロトコル: たいていのリーダで使える
  • ID-000(いわゆるSIMカードのサイズ)で切り抜けるバージョンのカードもある
  • ファクトリリセット機能(出荷時の状態にリセットできる)
  • 仕様は自由に利用でき使用にあたっていかなる制限も受けない
  • 実際安い(Reasonable priced)

とされています。またv2.1では大きな変更はありませんが、AESの復号とAES鍵の格納?ができるようになった(http://g10code.com/docs/openpgp-card-2.1.pdfによる)とのこと。

(注)販売しているKernel Conceptsによれば「鍵は4096ビットまで可能」(http://shop.kernelconcepts.de/ "Key features")だそうです。実際使ってみたところ全ての鍵は4096bitで格納できました。

カードの種類

Kernel ConceptのものとSIGILANCEのものがあります。前者はプロプライエタリなカードOSで走っています。後者はYubikeyのOpenPGPアプレット(OSS)をJavaCardで走らせています。ただし後者は日本に発送してくれないみたいです*1

SIGILANCEのはNFCが使えるタイプもあるのですが、しかたがないので今回はKernel Conceptのものを使います。

Kernel Conceptsが供給しているカードは以下のものです:

  • ふつうの接触型のOpenPGP Card
  • SIM breakout付きのOpenPGP Card
    • SIMカードサイズに切り取れる
    • 専用の機械に入れるとUSB接続トークンにできる
  • RFID付き
    • Mifare DESFire RFIDがついている
    • RFID経由ではOpenPGPの機能にはアクセスできない
    • 微妙

価格

通常タイプは13.78ユーロ*2です。EU圏外からの注文ではVAT(付加価値税)がかからないので案外安くなります。ここに送料が5ユーロかかります。そして海外からの支払いはPaypalなので5%の手数料を取られます。

僕は2枚購入したところ32.42ユーロ(4514円)でした。沢山注文すると数割が効いて安くしてくれます。

数割

数量を買うと10枚までは段階的に順次安くなるので、送料とPaypal手数料を加味した1枚あたりの単価を算出してみました。

  • 1pcs. @19.719 EUR
  • 2pcs. @16.21 EUR
  • (3pcs. @15.34 EUR)
  • (4pcs. @ 14.90 EUR)
  • 5pcs. @13.755 EUR
  • 10pcs. @12.789 EUR

*1:発送手段がありません、みたいなメッセージが出る

*2:サイトでは小数点がカンマになっている。欧米ではそう表記するらしい。