Microsoft PowerPoint FreeXAdES-miyachi.pptx

Similar documents
署名ツール検証報告書

Microsoft PowerPoint LE-miyachi.pptx

マイナンバーカードによる認証と署名

使用する前に

<4D F736F F F696E74202D204A4E E718F9096BC574795D78BAD89EF8E9197BF5F8CF68A4A97702E >

4. 環境要件 WebWrapper および WebWrapper 管理サーバ <Windows 版 > Windows2000Server ( サービスパック 3 また 4 適用済 ), Windows Server 2003 <Solaris 版 > SPARC CPU を搭載する Sun 製ワ

IM-SecureSignOn

HOLON/MD


WebReportCafe

XAdES長期署名プロファイル(案)

PowerPoint プレゼンテーション

最近の電子認証・署名の考え方

1. Java Development Kit ORACLE のサイトから JAVA の開発キットをダウンロードします バージョンは JDK の最新版 ( 現在 8u45) が必要です また定期的に更新されますが そのたびに入れ替えることをお勧めします JDK のダウンロード ORACLE サイト

セキュリティ関連XML規格の紹介

WebReportCafe

実行形式の作成と構成管理 2012 年 7 月 8 日 海谷治彦 1

スライド 1

bebras_slide.pptx

Code_Aster / Salome-Meca 中級者への道 2015年5月31日

OpenXML長期署名

Microsoft PowerPoint _jnsa-電子署名WG_a.pptx

Adobe Reader 署名検証設定手順書

2 ログイン ( パソコン版画面 ) Web サイトのログイン画面が表示されます 通知メールに記載されている ID と仮パスワードを入力して ログイン ボタンをクリックしてください ID パスワードを連続して 5 回間違うと 当 I D はロックアウト ( 一時的に使用不可 ) されるので ご注意く

FW APIServer 設定ガイド Version 年 2 月 3 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED

アマノタイムスタンプサービス 3161 中間 CA 証明書設定後の動作確認手順書 Ver 年 10 月 03 日株式会社ハイパーギア

V8.1新規機能紹介記事

農業・農村基盤図の大字小字コードXML作成 説明書

スライド 1

PFUタイムスタンプの使い方

Android 用.apk 形式編 改版履歴 版数 日付 内容 担当 V /4/1 初版 NII V /2/28 JKSコマンドの修正 署名確認作業の補足追加 V /2/26 動作環境を以下に変更 Windows10 NII NII V

Windows PowerShell 用スクリプト形式編 改版履歴 版数 日付 内容 担当 V /4/1 初版 NII V /2/26 動作環境の変更に伴う修正 NII V /8/21 タイムスタンプ利用手順の追加 NII 目次 1. コード署名用証明

事前確認内容 事前に下記が問題ではないかご確認ください 閲覧しているブラウザのJavaScriptが有効になっているか 閲覧しているブラウザのCookieが有効になっているか 推奨環境 ( に記載 ) 基本タグを設置しているか 参考

Eclipse マニュアル <作成目的> Eclipse のインストール方法などを紹介したページはいろいろありますが 専門用語がわからない初心者でもわか りやすく Eclipse のインストール方法 基本操作などをまとめたマニュアル作成を目的としています <目次> 1 Eclipse のインストール

ESET NOD32アンチウイルス V4.2 リリースノート

HULFT Series 製品における Javaの脆弱性(CVE )に対する報告

PowerPoint Presentation

intra-mart ワークフローデザイナ

storage-sdk-Java

Microsoft PowerPoint - Session4古賀様.ppt

部品ライブラリシステム

Microsoft PowerPoint - X-Road.pptx

JAVA.jar 形式編 改版履歴 版数日付内容担当 V /4/1 初版 NII V /2/28 JKSコマンドの修正 署名確認作業の補足追加 NII V /2/26 キーストアファイルの形式を JKS から PKCS12 に変更 動作環境の変更に伴う

V-Client for Mac ユーザーズガイド

intra-mart EX申請システム version.7.2 PDFオプション リリースノート

CommonMP Ver1.5 インストール手順書 目 次 1. 概要 目的 必要動作環境 ハードウェア構成 ソフトウェア構成 CommonMP のインストール手順 利用フロー

Rational Roseモデルの移行 マニュアル

Microsoft PowerPoint pptx

ゲームプログラミング講習 第0章 導入

MC-04 暗号アルゴリズム移行における オペレータ認証基盤の運用ガイドライン 平成 23 年 12 月 26 日 1.0 版 一般社団法人電波産業会 高度無線通信研究委員会 モバイルコマース部会

SystemDirector Developer's Studio(V3.2) 適用ガイド

Himawari の異常な暗号

Microsoft PowerPoint - グリッド協議会GT4演習資料_2007_配布用

CodeGear Developer Camp

パソコン決裁7 サービスリリース1 リリースノート

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

1 開発ツールのインストール 最初に JDK をインストールし 次に IDE をインストールする という手順になります 1. JDK のインストール JDK のダウンロードとインストール JDK は次の URL でオラクル社のウェブページからダウンロードします

ページ閲覧を計測する 手順 1: カスタム HTML タグ からタグを設定する まず タグタイプを選択 の画面で カスタム HTML を選択します タグの設定画面が開くので ユーザグラムで発行されたタグを HTML 欄に直接貼り付けてください document.write をサポートする はオフのま

不動産登記用 Le- 図面 XML 署名ツール LeZumenSign 製品マニュアル 2011 年 05 月 Ver 1.00 版 有限会社ラング エッジ

Chromeleon 7 for Chromeleon 7.2 全バージョン共通 Build: --- 新しいシーケンスの作成に使用できるワークリストファイル (.wlex) Doc. Nr: FAQ_CM7_2SS_00009 Doc. Ver.: Doc. Type

製品ラインアップ ハードウェア < 部品としてのご提供 > ーお客様でソフトエアの開発が必要ですー弊社で受託開発も可能です チャレンジ & レスポンス Web 構築に最適ドライバレスタイプ : epass1000nd チャレンジ & レスポンス方式 電子証明書の格納に両方対応可能汎用型タイプ : e

BOM for Windows Ver

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

PowerPoint プレゼンテーション

(Microsoft PowerPoint - Java\221\3462\225\224\211\357\224\255\225\\\216\221\227\ ppt)

ETOS 画面の Web 化 / 帳票印刷のオープン化体験お試し変換サービスのご紹介 ACOS-4 システムの業務改善提案

DigiCert EV コード署名証明書 Microsoft Authenticode署名手順書

PowerPoint プレゼンテーション

MasterDetailFlow SettingsActivity 2. Android Lint Checks 以前のバージョンよりコンパイルのチェックが厳しくなりました このような厳しいチェックを Android Lint Checks と言います Abdroid プログラミング Bible で

Microsoft Word - tutorial3-dbreverse.docx

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

JACi400のご紹介~RPGとHTMLで簡単Web化~

intra-mart Accel Platform — intra-mart Sphinxドキュメント ビルド手順書   第2版  

Microsoft Word - ModelAnalys操作マニュアル_

まう不具合を解消 Windows10 バージョン1803で ディスプレイのサイズを125% 150% にすると STORM VのTOP 画面がズレてしまう不具合を解消しました 6. 動画 + 音声 コンテンツをインポートすると再編集出来なくなる不具合を解消 スライド+ 動画 + 音声 コンテンツをイ

Oracle SQL Developer Data Modeler

Encryption Security

DNSSECの基礎概要

目次 1. PDF 変換サービスの設定について )Internet Explorer をご利用の場合 )Microsoft Edge をご利用の場合 )Google Chrome をご利用の場合 )Mozilla Firefox をご利

組込みシステムにおける UMLモデルカタログの実践研究

ServerView Resource Orchestrator V3.0 ネットワーク構成情報ファイルツール(Excel形式)の利用方法

以下のソフトウェアに専用ライセンスを設定することで 変換機能が使えるようになります アプリケーション名バージョン日付 JPGIS-XML ビュー F 7.1.0α 以降 2013/06/27 以降 フリーウェア JPGIS-XML ビュー F のバージョン から XML の 筆 と 図郭

クライアント証明書導入マニュアル

Microsoft PowerPoint - A1-2_株式会社ネクスト_藤澤正通_S _005.pptx

PowerPoint プレゼンテーション

開発ツールのコラボレーション機能を検証する

CouchbaseLiveTokyo2015 講演資料

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

EPSON PS Folder

自己紹介 氏縄武尊 (Ujinawa Takeru) Work 株式会社オージス総研テミストラクトソリューション部 3 年目 ID 管理 認証周りの開発 OpenID Connect, AWS Private 滋賀県彦根市出身 Copyright 2016 OGIS-

デザインパターン第一章「生成《

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

SeciossLink クイックスタートガイド

スライド 1

大阪ガス株式会社 情報通信部 御中

Microsoft Word - NaviPortalFAQ-master.doc

SmartGS-ReleaseNote-V132

7 PIN 番号入力後 以下のアプレットエラーが表示されます 署名検証が失敗しました 署名検証が行なわれませんでした 8 PIN 番号入力後 以下のアプレットエラーが表示されます APPLET-ERROR APPLET-ERROR APPL

目次 1. 概要 2. サーバーへの設置 3. 設定 4. ユーザーアクセス記録の収集 5. 利用規定 6. 更新履歴

Transcription:

LangEdge,Inc. 1 JNSA 電 署名 WG 五 祭 もう紙の時代じゃない! オープンソース 期署名 FreeXAdES 第 1 回 XAdES-BES 編 宮地 (miyachi@langedge.jp) 2016 年 5 23

2 本題の前に 紹介 miyachi naoto( 宮地直 ) 有限会社ラング エッジプログラマ 社製品 :XAdES/PAdES ライブラリ開発 受託開発 :PKI 系 ドキュメント (PDF) 系他 http://www.langedge.jp/ JNSA 電 署名 WG サブリーダー スキルアップ TF リーダー ( イベント好きです w) 普及活動 :PKI Sandbox Project/ 勉強会 公開活動 :FreeTSA( タイムスタンプサーバ ) http://eswg.jnsa.org/

3 オープンソースの XAdES xadesjs - JavaScript 実装の XAdES https://www.npmjs.com/package/xadesjs 最近公開された Pure JavaScript な新実装 webcrypto を使って実装されている kjur さんがそのうちきっと試して情報が出てくる OpenXAdES - エストニアのオープンソース http://www.openxades.org/ だったのだけど http://www.id.ee/ の下に ばされる 昔からあるけど DigiDoc の 部になった? DigiDoc は C/C++/Java 版がありソース 可 DigiDoc は LGPKI v2.1 で公開されている

4 Java でフリーな XAdES ライブラリ? XAdES 成は XML 署名を使えば簡単!? Java6 以降で XMLSignature をサポート.NET では SignedXml をサポート Java/.NET での XAdES 提供の は近い? 依存が少ない XAdES 実装があると便利 xadesjs も OpenXAdES も使うのが 倒 Java 標準機能だけで実装できないか? 期署名普及と勉強の為に作りますか Java 標準だけで FreeXAdES を作る JNSA 勉強会ネタとして 1 年間かける 今ココ

5 FreeXAdES / 勉強 にシンプルな XAdES を実装 度な機能が必要なら弊社製品版のご検討を (^^; Java 標準機能で実装 ( 他に依存しない ) 簡単でシンプルに使えること XAdES レベル毎に勉強会で説明して く 本 が第 1 回です! 次回からスキルアップ TF で MPL v2.0 (Mozilla Public License) で公開 http://mozilla.org/mpl/2.0/ ソースを公開し 商 利 も可能です

6 MPL v2 ライセンス ソース公開義務 GPL MPL BSD OSS 本体への修正 / 追加分 〇公開必須 〇公開必須 公開不要 OSS を利 したプログラム 〇公開必須 公開不要 公開不要 私の理解 : 間違っていたらご指摘ご指導を m( )m FreeXAdES を使うプログラム / システムはソース公開義務無し FreeXAdES 自体を修正したら修正部はソース公開義務あり 可能なら GitHub に修正分を反映ください!

7 FreeXAdES 公開 ( 現在 BES-β1 版 ) 公開リポジトリ https://github.com/miyachi/freexades 開発環境 Eclipse IDE for Java Developers Version:Mars.2 Release (4.5.2) Java 環境 :Java8 (JDK/JRE 1.8.0) その他 :JUnit4 を利 Java7 以前の環境はそのままでは動作しません GitHub と Eclipse の使い は説明しません

8 Java 環境と XML 署名 XAdES の実装に XML 署名と Base64 が必要 機能 Java 5 Java 6 Java 7 Java 8 javax.xml.crypto.dsig. XMLSignature 〇〇〇 java.util. Base64 1 1 〇 1 非標準の org.apache.commons.codec.binary.base64 は利用可能 XML コンソーシアムセキュリティ部会 署名ツール検証報告書 2010 年 01 月 27 日 Java6 と.NET の XML 署名利用と相互運用性 http://xmlconsortium.org/public_doc/securitytool /SignToolVerificationReport20100127.pdf

9 XML 署名と 期署名 XAdES 注 :XML 署名済みファイルを XAdES 化はできない! 機能 XML 署名 XAdES レベル デジタル署名 〇 〇 XAdES-B 署名証明書保護 1 (XAdES-BES) 署名時刻証明 TS 使えない〇 XAdES-T 検証情報保持 2 〇 XAdES-LT (XAdES-X Long) 期保管 ( 期署名 ) TS 使えない〇 XAdES-LTA (XAdES-A) 1 KeyInfo を参照 (Reference) 追加すれば可能 2 証明書認証パスの証明書群は KeyInfo の下に格納可能

10 XAdES の XML 構造例 XML 署名要素に XAdES 要素を追加 Signature(XmlDsig: ルート ) することでXAdES 化 SignedInfo(XmlDsig: 署名情報 ) Reference URI= #Sign-Target ( 対象参照 ) Reference URI= #XAdES-Sign-Atrb (XAdES 参照 ) SignatureValue(XmlDsig: 署名値 ) 署名属性領域に KeyInfo(XmlDsig: 鍵情報 ) ついては次回以降! Object(XmlDsig:XAdESオブジェクト ) QualifyingProperties(XAdES: 属性情報 ) SignedProperties Id= XAdES-Sign-Atrb (XAdES: 署名属性領域 - 署名証明書ハッシュ値等 ) UnsignedProperties(XAdES: 署名属性領域 ) Object Id= Sign-Target (XmlDsig: 署名対象 )

11 XAdES のバージョン きく分けて v1.3.2 と v1.4.1 の実装が必要 v1.4.1 は追加要素のみでベースは v1.3.2 v1.3.2 = v1.3.2 v1.4.1 = v1.3.2 + v1.4.1 v1.3.1 は v1.3.2 とは別の名前空間で別仕様 v1.4.2 は v1.4.1 のバグ修正で同じ名前空間 v1.4.1 の以下の 2 要素を追加 / 変更が重要 TimeStampValidationData 新規追加 ArchiveTimeStamp(v1.4.1) 仕様変更 EN 化された ETSI 最新も基本 v1.4.1 である

12 XML 署名の署名 式 きく分け以下 4 種類で組み合わせ利 も可 署名 式機能概要 外部 Detached 外部参照 内部 Detached 内部参照 Enveloping Enveloped 対象内包 外部ファイルを参照署名ファイルは別管理 XML 以外も参照可能 同 XML 内を参照署名の 要素は不可 署名対象を署名内に Object として含み参照 XML 以外も利 可能 埋め込み 般の XML 情報の中に XML 署名要素を埋め込む 複数 Enveloped は不可

13 外部 Detached( 外部参照 ) URI 指定 ( 間接可 ) で外部ファイルを参照 <Signature> <SignedInfo> <Reference URI="target.xml"> </SignedInfo> </Signature> DetachedOut.xml XML ファイル以外でもバイナリ扱いで指定可能 <MyData> <Data> </Data> </MyData> Target.xml 〇署名ファイル 体が さくシンプルなので良く使われている〇バイナリ扱いにより XML 以外に何でも署名対象に可能 署名ファイルと署名対象は別ファイルとして別管理が必要

14 内部 Detached( 内部参照 ) 同 XML ファイル内の別要素を Id 指定で参照 <MyData> <Data Id="D1"> </Data> <MySign> <Signature> <SignedInfo> <Reference URI="#D1"> </SignedInfo> </Signature> </MySign> </MyData> 埋め込み場所はどこでも良い DetachedIn.xml 〇署名対象の XML 構造を崩さずに署名の埋め込みが可能〇複数 Detached により複数の署名対象を指定可能 XML 要素のみ署名対象として可能

15 Enveloping( 対象内包 ) 署名対象を Object 要素下に含み参照 <Signature> <SignedInfo> <Reference URI="#MyObjId"> </SignedInfo> <Object Id="MyObjId"> <MyData> <Data> </Data> </MyData> </Object> </Signature> Enveloping.xml Base64 化してバイナリ情報も埋め込み可能 〇電 封筒として複数の署名対象を 1 つのファイルにできる〇 Base64 化により XML 以外に何でも署名対象に可能 署名がメインであり内包されたデータの利 が少し 倒

16 Enveloped( 埋め込み ) 署名対象 XML の中に XML 署名を埋め込む <MyData> Enveloped.xml <Data> </Data> <Signature> URIが空だと全体が範囲 <SignedInfo> <Reference URI=""> </MyData> <Transform Algorithm=" #enveloped-signature"> </Reference> </SignedInfo> </Signature> XPath の Transform で署名場所の指定可能 〇署名対象の XML 構造を崩さずに署名の埋め込みが可能〇 較的良く使われている ( 考え がシンプル ) Enveloped 可能な署名対象は 1 つで 複数は不可

17 XML 署名の署名 式まとめ 元の XML 構造をそのまま かして署名したい 内部 Detached を選択 (Id 名は固定にする ) 部のみか複数要素を対象にするなら内部 Detached が良い Enveloped を選択 ( 基本全体が署名対象 ) ほぼ全体を対象にするなら Enveloped が良い 量の外部ファイルにまとめて署名したい 外部 Detached を選択 ( 別管理が必要 ) 1 つの署名ファイルに全てを れて管理したい Enveloping を選択 ( バイナリは きくなる ) 複数署名 式を組み合わせることも可能!

18 FreeXAdES 利 サンプル JUnit4 の IFreeXAdESTest.java 参照! testdetachedout : 外部 Detached 試験 testdetachedin : 内部 Detached 試験 testenvelopingxml :Enveloping 試験 (XML) testenvelopingbase64 :Enveloping 試験 (Binary) testenveloped :Enveloped 試験 testverify ; 検証試験 ( 共通 ) 検証試験は testdetachedin で失敗する為に簡易実装 各試験で利 する ファイルと 成された XAdESファイルは test フォルダ下にある

19 FreeXAdES 利 順例 ( 署名 成 ) 1. インスタンス 成 初期化設定 setrootdir / sethashalg ( オプション ) 2. オプション :XML の読み込み setxml / loadxml ( 内部 Detached か Enveloped のみ ) 3. 署名対象の追加 ( 複数呼び出し可 ) adddetached / addenveloping / addenveloped 4. XAdES 署名実 (P12 ファイル指定 ) execsign 5. XAdES 署名結果の取得 / 保存 getxml / savexml

20 FreeXAdES オプション ルートディレクトリ指定 外部 Detached のファイル位置ベース指定可 ハッシュアルゴリズム指定 SHA256( 標準 )/SHA512/SHA1 指定可 C14N 正規化アルゴリズム指定 TRANS_C14N ( 標準 )/TRANS_C14N_EX 指定可 XAdES オブジェクトを追加しない NO_XADES_OBJ ( 標準オフ ) 指定すると XML 署名 SigningTime 出 しない NO_SIGN_TIME ( 標準オフ )

21 Java8 の XMLSignature 問題 1 Enveloping 参照先のハッシュ計算が異常! Java6(2010 年 ) の時代からあった 互換性 課題と対策 XML 署名ツール検証報告 XML コンソーシアム Week2010 発表資料 http://xmlconsortium.org/seminar09/100310-11+16-18/data /100316/20100316week-wgsec-3_2-signtool.pdf <Signature> <SignedInfo> <Reference URI="#MyObjId"> </SignedInfo> <Object Id="MyObjId"> <MyData xmlns= "> <Data> </Data> </MyData> </Object> </Signature> Enveloping.xml 署名対象 名前空間名 (xmlns) が指定されていない Java 生成結果は他実装では検証エラーに

22 名前空間無し Enveloping 署名対象のオリジナル XML <Object Id="MyObjId" xmlns="http://www.w3.org/2000/09/xmldsig#"> <MyData xmlns=""><data Id="D1">book</Data</MyData> </Object> 正しいハッシュ値の正規化後の XML( 注 : 改 が追加されています ) <Object xmlns="http://www.w3.org/2000/09/xmldsig#" Id="MyObjId"> <MyData xmlns=""><data Id="D1">book</Data></MyData> </Object> Java ハッシュ値の正規化後の XML( 注 : 改 が追加されています ) <Object xmlns="http://www.w3.org/2000/09/xmldsig#" Id="MyObjId"> <MyData><Data Id="D1">book</Dat></MyData> </Object> MyData 要素の空名前空間 xmlns="" が省略されている 名前空間に何か指定すれば問題無くなるので回避可能

23 名前空間 /Id 指定あり Enveloping 署名対象のオリジナル XML <Object Id="MyObjId" xmlns="http://www.w3.org/2000/09/xmldsig#"> <MyData Id="D1" xmlns="http://testns"><data>book</data</mydata> </Object> 正しいハッシュ値の正規化後の XML( 注 : 改 が追加されています ) <Object xmlns="http://www.w3.org/2000/09/xmldsig#" Id="MyObjId"> <MyData xmlns="http://testns" Id="D1"><Data>book</Data></MyData> </Object> Java ハッシュ値の正規化後の XML( 注 : 改 が追加されています ) <Object xmlns="http://www.w3.org/2000/09/xmldsig#" Id="MyObjId"> <MyData Id="D1" xmlns="http://testns"><data>book</dat></mydata> </Object> MyData 要素の名前空間属性と Id 属性の順番が逆だぞ

24 Java8 の XMLSignature 問題 2 内部 Detached のハッシュ計算に失敗する! Java6 では正常に動作していた Java6 と同じソースで Java8 ではエラーに Java8 署名時も検証時もエラーになってしまう FreeXAdES 署名時は 分でハッシュ値計算 FreeXAdES 検証時はまだ未実装 何か API を追加する必要があるのかも Java のバグとして報告しなきゃ orz

25 FreeXAdES BES-β1 版の課題 1. 内部 Detached の署名値検証に失敗する 署名は対応済みなので ToDo 項 です 2. 署名 の秘密鍵 / 証明書が PKCS#12 のみ P8 の署名ツール検証報告書を よ! 3. XAdES 要素 ( 署名属性 ) 部のみ実装 SigningCertificate/SigningTime のみ 4. 署名したインスタンスでそのまま検証できない 倒なので検証できないように変更予定 5. 速度やメモリ利 量の調整等はしていない まあこれはおいおい確認して対応で

26 以上で今回は終了! 次回 第 2 回 XAdES-T 編 タイムスタンプを使おう! 次回は電 署名 WG スキルアップ TF (JNSA 会員のみ ) で 7 開催予定! 会員なら是 JNSA にご 会を! http://www.jnsa.org/