PKI Day 2016 エストニア ID カード PKI マニアック解析 宮地直 (miyachi@langedge.jp) 電 署名 WGサブリーダー / スキルアップTFリーダー ( 有限会社ラング エッジ ) 2016 年 4 22 Page 1
miyachi の identity ラング エッジのプログラマ! 期署名 /PKI ライブラリの開発 (PAdES/XAdES) PKI 系受託開発 (OpenSSL/BC 等オープン系 ) ドキュメント系受託開発 (PDF/OOXML 等 ) JNSA 電 署名 WG サブリーダー スキルアップTFリーダー ( 勉強会の企画運営等 ) 標準化活動 (ISO 14533-3 / JTC1 SC34 等 ) 電 署名サーバ公開中 http://eswg.jnsa.org/ e-estonia の e-residency です! Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 2
e-residency( 電 居住 ) とは? 詳細 https://e-estonia.com/e-residents/about/ ネット上の公的個 認証を提供して電 住 を増やすことで e ビジネスの推進を 指している! エストニア共和国が提供するデジタル アイデンティティ 登録者は電 居住者 (e-residents) と呼ばれる エストニア国 が持つものと同じスマート ID カードを提供 エストニアに企業設 や e- バンキングの利 が可能 エストニアのポータルサイトを利 できる ( 制限あり ) ID カードで署名や暗号化も可能 ( ソフトウェアも提供 ) Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 3
e-residency で何ができる? 〇できること ( و( ㅂ ク ッ! ポータルサイトの企業向けサービスが利 可能 エストニアに1 で企業設 が可能 エストニアの銀 でe-バンキングや送 が可能 デジタル署名にてオンライン契約が可能 書の暗号化と復号が可能 オンラインでのエストニア税 払いが可能 できないこと ( ω `) ショホ ーン国籍 ( 市 権や住所 ) が貰えるわけではない IDカードは 分証明書に使えない ( 写真無し ) Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 4
e-residency の電 申請 電 申請 https://apply.e-estonia.com/ 意するもの : 1. 数料 払い クレジットカード 50.99 EUR:50 +0.99 ( カード 数料 ) 2. パスポート等の ID スキャン画像 3. 証明写真画像 ( カードには使われない ) 4. 申請する理由 ( 英語で ) 数 程度だけど事前準備が吉 Pick-up location( 受取場所 ) は Japan, Tokyo に Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 5
e-residency 取得までの 例 Date Mail / Action 2015/07/09 件名 :Your e-residency application has been received 差出 :e-residency 電 申請の受け付け確認メール ( 電 申請後すぐに来る ) 2015/07/15 件名 :E-Residency Digi-ID - application received 差出 :Politsei-ja Piirivalveamet ( 警察 国境警備隊 ) 審査開始のメール (10 ビジネス かかると記載 ) 2015/07/29 件名 :E-Residency Digi-ID - e-residency granted 差出 :Politsei-ja Piirivalveamet ( 警察 国境警備隊 ) 審査完了のメール ( ちょうど 10 ビジネス 後でした!) 2015/08/12 件名 :e-residency digital ID card at the Embassy 差出 :Consul IS ( 返信は 本の 使館書記官のアドレス宛にする ) 使館に受け取りに く 程を決める [ 返信が必要!] 2015/08/13 駐 エストニア共和国 使館 ( 渋 区神宮前 2 丁 ) でカード受け取りパスポート持参 使館で指紋採取 受け取りのサイン 2015/08/14 件名 :E-Residency Digi-ID - certificates activated 差出 :Politsei-ja Piirivalveamet ( 警察 国境警備隊 ) 電 証明書のアクティベート通知 ( この後利 可能になる ) Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 6
スターターキットを GET! 内容物 : スマート ID カード カードリーダー ピン通知封書 説明資料 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 7
スマート ID カードとカードリーダー ドキュメント番号は 8 桁 Nxxxxxxx シリアル番号?? パーソナルコードは 11 桁 3YYMMDDSSSS 最初の 3 は種別?? YYMMDD は 年 SSSS はシリアルか? 同梱カードリーダーが さくて素晴らしい! Advanced Card Systems Ltd. http:/www.acs-japan.jp/ カードリーダーも同梱しているのですぐ使える! 利 時 収納時 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 8
ピンピンピン (PIN1 / PIN2 / PUK) スターターキットに初期設定の PIN3 つが封 されて っている 認証 : 数字 4 字 ( 最 数字 12 字 ) 署名 : 数字 5 字 ( 最 数字 12 字 ) 後述するツールでそれぞれ変更が可能 変更しましょう 管理 : 数字 8 字 ( 最 数字 12 字 ) 証明書が有効になるのは activated のメールが来てから Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 9
認証パス ( 認証局 SK と証明書 ) Estonian Certification Centre Root CA (RSA2048-SHA1) Issuer/ Subject: E = pki@sk.ee, CN = EE Certification Centre Root CA, O = AS Sertifitseerimiskeskus, C = EE CA certificate (RSA2048-SHA1) 中間 CA 証明書 Subject: CRLDP E = pki@sk.ee, CN = ESTEID-SK 2011, O = AS Sertifitseerimiskeskus, C = EE http://www.sk.ee/repository/crls/eeccrca.crl (943bytes) EE Auth certificate ( 適格証明書 :RSA2048-SHA256) 認証 Subject: CRLDP 拡張使 EE Sign certificate ( 適格証明書 :RSA2048-SHA256) 署名 Subject: CRLDP SERIALNUMBER = 3YYMMDDSSSS, G = NAOTO, SN = MIYACHI, CN = MIYACHI,NAOTO,3YYMMDDSSS, OU = authentication, O = ESTEID (DIGI-ID E-RESIDENT), C = EE http://www.sk.ee/repository/crls/esteid2011.crl (23.9MBytes) クライアント認証 / 電 メールの保護 https://www.sk.ee/en ESTEID-SK 2015 は RSA2048-SHA384 SERIALNUMBER = 3YYMMDDSSSS, G = NAOTO, SN = MIYACHI, CN = MIYACHI,NAOTO,3YYMMDDSSS, OU = digital signature, O = ESTEID (DIGI-ID E-RESIDENT), C = EE http://www.sk.ee/repository/crls/esteid2011.crl (23.9MBytes) Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 10
ID カード のサポートサイト http://www.id.ee/ インストーラのダウンロード installer.id.ee 開発者向けの情報 証明書の説明や利 更新 モバイルによる証明書の利 Windows 7 以降 (x86, x64) MacOS-X Linux 10.9 (Mavericks) 以降 Ubuntu 14.04 以降 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 11
標準ソフトウェア概要 ID-card utility ID カード利 の為の管理ツール JPKI の利 者クライアントソフトに相当 認証 / 署名 の証明書の確認管理 ( 検証と PIN の変更 ) Mobile-ID の操作 e メール設定の確認 PUK コードによるリセット 動作環境の確認 (Diagnostic) DigiDoc3 client DigiDoc3 crypto 電 署名 / 検証ソフト ファイルへの署名と検証 暗号化 / 復号ソフト ファイルの暗号化と復号 エストニアの ID カードと Mobile-ID および リトアニアの Mobile-ID へ対応したオープンソフトウェア digidoc.sk.ee NO ICON Drivers & Plugins IC カード カードリーダーのドライバ (OpenSC/CSP/CDSA) ブラウザ のプラグイン ( 認証 /PKCS#11) Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 12
エストニアのソフトウェア開発 針 標準ソフト / ドライバはオープンソースの 針 https://svn.eesti.ee/projektid/idkaart_public/ https://github.com/open-eid/ ( ミラー?) ID カードドライバは OpenSC 等を利 PKCS#11 と CSP(Win) と CDSA (Mac) を提供 DigiDocライブラリ ( 署名等 ) も上記で公開 ソフトウェアのアーキテクチャ説明サイトも公開 http://open-eid.github.io/ オープンなソフト開発環境を提供している! Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 13
公開 svn ルート下のフォルダ名 cmake digidocservice digidocservice-testkit esteid-browser-plugin esteid-csp esteid-pkcs11 esteid-plugin-loader esteid-vaadin-component externals id-updater jdigidoc libdigidoc ライセンスは LGPL v2.1 OpenSC は標準のサポートなので OpenSC 公式サイトから が可能 libdigidocpp libltdl minidriver misc oldinsecureactivex packages pdf-signer qdigidoc qesteidutil smartcardpp SmartCardRemoval wiki ドキュメント類 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 14
ID-card utility 証明書画 リセット (PUK) 3 年間有効 認証 証明書 (PIN1) 署名 証明書 (PIN2) Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 15
@eesti.ee e-mail 転送設定のみ可能 パーソナルコード @eesti.ee 般利 不可 : 連絡 名 @eesti.ee 般利 可能 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 16
Mobile-ID 初期費 として政府に 10 ユーロが必要毎 プロバイダに約 1 ユーロが必要 利 可能なサービスは現在 3 つ SIM を購 してアクティベートする Police and Border Guard Boardʼs website. https://www.politsei.ee/en/ Mobile-ID の PIN1/PIN2/PUK を設定 ID カード同様に認証や署名が使えるようになる Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 17
Mobile-ID アプリケーション ios Android Android ( 複数ある ) これらのアプリにて BDOC 署名が可能 認証は標準のブラウザで対応しているようだ Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 18
DigiDoc フレームワーク Mobile applicatioh DigiDoc portal WebService DigiDoc3 client Applicatioh MSSP Mobile Signature Service Provider ETSI TS 102 204 Mobile-ID DigiDoc libraries (C, C++, Java) OCSP 証明書検証と署名時刻 BDOC XML XAdES PKCS#11 CSP/CDSA ID card Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 19
SK 証明書検証サービス CRL(12h 毎更新 ) は 24MB あり巨!( 実 的 ) Low security アプリの利 のみで他は 推奨 OCSP のアドレスは証明書には未記載 SK( 認証局 ) サイトに証明書検証サービスの記載 https://www.sk.ee/en/services/validity-confirmation-services/ 試験環境は公開 (http://demo.sk.ee/ocsp) 本番環境は有料 (http://ocsp.sk.ee/) 0.048 / 約 6 円 (400 回 ) 0.007 / 約 1 円 (750,000 回 ) SK と契約して IP アドレスを登録する必要がある 署名付き OCSP 要求なら 分の証明書の検証は可能 ( 無償?) DigiDoc3 Client は 10 回まで署名検証可能 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 20
余談 : エストニア証明書問題 2015 年 9 25 に以下で情報公開 https://cybersec.ee/2015/09/25/hundred-thousand-id-cardcertificates-issued-with-invalid-public-key-encoding/ エストニア ID カードの公開鍵の ASN.1 DER エンコーディングに問題があった! 公開鍵モジュラス値は正の整数なのに ASN.1 INTEGER で負の場合がある! 負値になる場合は先頭に x00 追加必要 駄 な確率は 1/2 ID カード中に 2 つ証明書あるので 3/4 が該当か? Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 21
余談 : 私の証明書はどうかな? 署名 ( 現状 ) <SEQUENCE> <INTEGER>97e7f3ac </INTEGER> <INTEGER>010001</INTEGER> </SEQUENCE> 認証 ( 現状 ) 両 アウトの可能性は 1/4 なのに 署名 ( 正解 : あるべき値 ) <SEQUENCE> <INTEGER>9a40dc40 </INTEGER> <INTEGER>010001</INTEGER> </SEQUENCE> <SEQUENCE> <INTEGER>0097e7f3ac </INTEGER> <INTEGER>010001</INTEGER> </SEQUENCE> 認証 ( 正解 : あるべき値 ) まあ標準署名 / 暗号ソフトの DigiDoc では使えてるし どちらもアウト! どちらもアウト正解はこちら! <SEQUENCE> <INTEGER>009a40dc40 </INTEGER> <INTEGER>010001</INTEGER> </SEQUENCE> Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 22
エストニア ID カードバージョン V1.0 V1.1 V3.0 V3.4/5 Platform MICARDO Multos Java Card RSA (bits) 1024 2048 1024 2048 HASH SHA-1, SHA-224 SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 ECC (bits) (Not Supported) 160 256 1 (RSA で 1024 3072bits 相当 ) 1 ECC の機能はあるがエストニア ID カードでは未使 詳しくは以下にスペックシートがある http://www.id.ee/public/tb-spec-esteid-chip-app-v3.4.pdf Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 23
エストニア ID カード Drivers Windows MacOS-X CSP Minidriver Linux PKCS#11 OpenSC CDSA Tokend driver Smartcardpp (eid card driverʼs helper component) PC / SC (Personal Computer / Smart Card) Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 24
エストニア ID カードオブジェクト $ pkcs15-tool -D PKCS#15 Card [NAOTO MIYACHI...]: PIN [PIN1] エストニアIDカードのPKCS#15は PIN [PIN2] エミュレートで実装されている OpenSC : pkcs15-esteid.c PIN [PUK] Private RSA Key [Isikutuvastus] Private RSA Key [Allkirjastamine] X.509 Certificate [Isikutuvastus] X.509 Certificate [Allkirjastamine] 認証 署名 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 25
エストニア ID カード PKCS#11 Windows(Windows/sys*) onepin-opensc-pkcs11.dll 署名 モジュールは無い?CSP があるから? 署名 認証 (FireFox) MacOS-X(/Library/EstonianIDCard/lib) esteid-pkcs11-onepin.so esteid-pkcs11.so esteid-pkcs11.so $ pkcs11-tool --module esteid-pkcs11.so -L Available slots: Slot 0 (0x0): ACS ACR 38U-CCID 00 00 token label : NAOTO MIYACHI (PIN1, Auth) Slot 1 (0x1): ACS ACR 38U-CCID 00 00 token label : NAOTO MIYACHI (PIN2, Sign) 認証 署名 認証 署名 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 26
PKCS#11 CK_MECHANISM PKCS#11 サポートメカニズム JPKI 種類補 CKM_SHA_1 CKM_SHA256 CKM_SHA384 CKM_SHA512 CKM_MD5 CKM_RIPEMD160 CKM_GOSTR3411 〇 〇 - - - HASH CKM_RSA_X_509 - SIGN/VERIFY/ CKM_RSA_PKCS CKM_SHA1_RSA_PKCS CKM_SHA256_RSA_PKCS - - 〇 - - ENCRYPT/ DECRYPT SIGN/VERIFY エストニア ID カードの PKCS#11 では 標準の SHA-1/2 はもちろん 欧州の RIPEMD-160 や 旧ソ連 ロシア系の GOST 標準規格の R3411 もサポート RSA_PKCS が最も重要な RSA 暗号 RSA_PKCS と OpenSSL で可能 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 27
参考 :JPKI PKCS#11 モジュール Windows(C: Program Files JPKI フォルダ下 ) JPKIPKCS11.dll (JPKIPKCS1164.dll) JPKIPKCS11Auth.dll (JPKIPKCS11Auth64.dll) JPKIPKCS11Sign.dll (JPKIPKCS11Sign64.dll) 住基カード 個 番号カード認証 個 番号カード署名 残念ながら Firefox/Thunderbird/Acrobat 等では利 できない! PKCS#11 の実装が 般的ではない箇所があることを解析して確認 個 番号カードの PKCS#11 の利 法はまだ未公開 以下にある情報は住基カード のみ ただし PKCS#11 としては同じか? https://www.j-lis.go.jp/data/open/cnt/3/855/1/02pkcs11.pdf Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 28
Windows CSP をレジストリから確認 HKEY_LOCAL_MACHINE SOFTWARE Microsoft Cryptography Calais SmartCards の下に Estonia ID カードの情報がある CSP は Microsoft Base Smart Card Crypto Provider を使った Mini Driver の形式になっている JPKI は CSP を直接提供する形式 JPKI Crypto Service Provider は住基カード これは公開されている JPKI Crypto Service Provider for Auth が個 番号カードの認証 で JPKI Crypto Service Provider for Sign は個 番号カードの署名 の CSP だと予想される これは現在 公開 https://www.j-lis.go.jp/data/open/cnt/3/855/1/01capi.pdf Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 29
エストニア ID カードと JPKI の CSP アプリケーション / ブラウザ / システム Windows の Smartcard 機能 / CAPI の機能 Microsoft Base Smart Card Crypto Provider エストニア ID カード Mini Driver JPKI Crypto Service Provider (Auth/Sign) CSP 全てを独 に記述 (PIN 画 等も 意 ) Smart Card Resource Manager Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 30
CSP 利 例 証明書選択時 認証時 JavaCard cold ATR と認識 Mini Driver なので標準 PIN 画 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 31
2 種類の署名フォーマット (DigiDoc3 client) BDOC が標準フォーマット BDOC: エストニア独 の署名フォーマット http://www.id.ee/public/bdoc-spec212-eng.pdf ASiC-E:EU 共通の署名フォーマット (EN 仕様 ) ZIP+XAdES なのは同じ 署名時刻の扱いが異なる Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 32
BDOC 署名の詳細画 nonce : Nnumber used ONCE 通信等で いられる使い捨ての乱数値 time-mark って何? Hash value of signature が OCSP nonce 値 OCSP time を何故? Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 33
ASiC-E 署名の詳細画 Signature Timestamp がある! ここは BDOC と同じ Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 34
BDOC と ASiC-E の 較 Container format Signature format BDOC ASiC-E application/vnd.etsi.asic-e+zip EPES/time-mark (XAdES-EPES) BES/time-stamp (XAdES-BES) Signature Timestamp 無し〇有り (RFC 3161) TS Certificate 無し SK TIMESTAMPING AUTHORITY OCSP Certificate SK OCSP RESPONDER 2011 Hash value of signature 署名値 <SignatureValue/> のハッシュ値 / ハッシュ 式 (OCSP nonce に BER 形式で埋め込まれている ) OCSP time 〇有り (BDOC では署名時刻になる ) Signerʼs computer time 〇有り ( 署名 PC のローカル時刻 ) Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 35
BDOC と ASiC-E の XAdES 構造 BDOC (XAdES-EPES + time-mark) <asic:xadessignatures> <ds:signature> <ds:signedinfo/> <ds:signaturevalue/> <ds:keyinfo/> <ds:object> <xades:qualifyingproperties> <xades:signedproperties> <xades:signedsignatureproperties> <xades:signingtime/> <xades:signingcertificate/> <xades:signaturepolicyidentifier/> <xades:signeddataobjectproperties> <xades:dataobjectformat> <xades:mimetype/> <xades:unsignedproperties> <xades:unsignedsignatureproperties> ASiC-E (XAdES-BES + time-stamp) <asic:xadessignatures> <ds:signature> <ds:signedinfo/> <ds:signaturevalue/> <ds:keyinfo/> <ds:object> <xades:qualifyingproperties> <xades:signedproperties> <xades:signedsignatureproperties> <xades:signingtime/> <xades:signingcertificate/> ポリシー定義が無いので BES <xades:signeddataobjectproperties> <xades:dataobjectformat> <xades:mimetype/> <xades:unsignedproperties> <xades:unsignedsignatureproperties> 署名タイムスタンプが無い <xades:signaturetimestamp/> <xades:certificatevalues> <xades:revocationvalues> <xades:ocspvalues/> 署名タイムスタンプが無いので正確には XAdES じゃない EPES OCSP 重要!( 時刻 ) <xades:certificatevalues> <xades:revocationvalues> <xades:ocspvalues/> ETSI 標準 署名時刻 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 36
EESTi e-estonia ポータルサイト 事業主サービス e-residency も多くが利 可能 居住者サービス e-residenc はほとんど利 不可 公的サービス https://www.eesti.ee/ Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 37
EESTi サービス 覧 多種多様なサービスが利 可能 Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 38
EESTi ドキュメント送受信 ID カードを使い安全にドキュメントの送受信 12 カ 間有効で 50MB まで保管が可能 つまり 電 私書箱サービス Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 39
まとめ ( 個 的な意 ) エストニア ID カードが普及した理由 1. カード / モバイル等のハードインフラ整備 少ない国 数だから成 した可能性はある 2. ソフト開発オープンソース化のエコ環境 3. 署名フォーマット等標準化 / ツール提供 4. ポータル機能充実によるオンライン化 マイナンバー / 国 番号カードも参考に! Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 40
ご清聴ありがとうございました 電子署名 WG への参加者募集中です! https://www.facebook.com/eswg.jnsa.org Copyright (c) 2000-2016 NPO 日本ネットワークセキュリティ協会 Page 41