Labo)と言う研究ラボをラング・エッジが主スポンサーとなって開始しました。詳しくはOsSALのサイトをご覧ください。https://www.ossal.org/本研究ラボの目的は認証を絡めた署名等の仕組みの研究や勉強と、関連したオープンソースのプロジェクト開発となります。署名認証系プログラマのお役に立てるように頑張ります。年に1~2回程度の勉強会(サルオフ)も計画しています。プログラマが楽しめる活動にしたいと考えています。miyachi]3月14日(土)に開催する電子署名(PKI)ハンズオンの募集を開始しました。AITCとJNSAの共同開催ですのでどちらから申し込んで頂いても大丈夫です。AITC側の参加募集:https://www.facebook.com/events/812737535430803JNSA側の参加募集:https://www.facebook.com/events/421110024706545現在資料とハンズオン環境を準備しています。Projectでほぼ整いました。来週前半には資料の公開等を行う予定です。miyachi]昨年からずっと準備して来ました電子署名を実際に使って貰い技術的な説明する勉強会の「電子署名ハンズオン」を開催します。☆セミナー概要:電子署名やタイムスタンプって興味があるけど使ったことが無いし技術も難しいそう...と言うあなたの為に実際に電子署名やタイムスタンプを使って試せるハンズオンの勉強会を開催します。クラウドやモバイル等の開発者の方もPKIの基本を学べるチャンスです。電子署名の検証技術を理解するハンズオン3:検証してみよう長期署名を理解するハンズオン4:長期署名を作ってみよう-----------------------------------☆対象者:-----------------------------------技術者(プログラマ等)ある程度具体的な情報の入手が可能。Javaでタイムスタンプ取得するノウハウ。仕様策定者(SE等)具体的な内容はやや難しいかも。(営業等)技術説明部はついて来れないかも(^^;ハンズオン部はコマンド実行できれば大丈夫。miyachi]タイムスタンプ(RFC3161)を使うとその時刻に指定したデータが存在しておりその後改ざんされていない事を保証できます。オープン思考の私としては技術に国境は無い!と言う事で次の2つの実現を目指してみました。Service)そもそもタイムスタンプを使ってみないとうまく動作するか試験もできませんし、使ってみたら新しいアイデアも浮かぶと思うのです。技術って使われてなんぼですよね。商用タイムスタンプ局さんでも登録をすればテストに使えるTSAが使える訳ですが、もっと手軽に自由に使いたいこともありますよね。それにタイムスタンプは電子署名と違ってHTTPで叩けば応えてくれるので使いやすいサービスだと思います。所謂オレオレTSAになりますので現時点ではまともな運用には使えませんのでご注意を。以下のようになります。全て商用タイムスタンプ局さんの真逆になりますwA)オレオレTSA証明書による署名ですB)運用規定も無く何かを保証はできませんC)時刻同期もntp利用なので数秒のずれはあるD)トラブルや都合により停止している場合があるちなみにかつてOpenTSAと言うプロジェクトがありましたので今回はFreeTSAと言う名前にしてみました。OpenTSAはソースをOpenSSLに寄贈して解散しています。1.0.0を利用しています。miyachi]OpenTSAがあった時にはmod_tsaと言うApacheに組み込むモジュールがありました。OpenTSAが解散してOpenSSLに移管されてからこの辺りの状況が良く分かりません。OpenSSLコマンドではtsオプションでTimeStampRequestの生成・TimeStampResponseの生成・TimeStampTokenの検証が可能です。FreeTSAではOpenSSLコマンドのtsオプションにより「TimeStampResponseの生成」をしてクライアントに返す事になります。材料は以下となります。miyachi]ラング・エッジでは無保証ですがタイムスタンプサービスを公開します。以下の仕様で利用可能です。指定ポリシ(オプション):2.5.29.32.0認証(オプション):無し運用:トラブルやメンテナンス等で停止する場合あり連続したタイムスタンプ取得等はサーバがもたない可能性がありますので配慮頂けますようお願いします。利用するクライアントですがラング・エッジが公開しているXML長期署名ツール「LE:XAdES:Tool」も非商用でお試しであれば無償でお使い頂けます。タイムスタンプ取得のプログラミングに関しても後日まとめて公開したいと考えています。それではぜひタイムスタンプを利用して色々試したり遊んでみてください。miyachi]RSA-SHA2の署名と検証に対応したXML長期署名Le-XAdESライブラリのVer1.40のリリースに対応して、RSA-SHA2署名もお試し頂ける長期書名ツールXAdEStoolのVer1.40を公開開始しました。新たにメイン画面の右上にて「RSA/SHA1署名」「RSA/SHA256署名」「RSA/SHA384署名」「RSA/SHA512署名」の選択が可能になっています。長期書名ツールXAdEStoolは商用利用は不可のライセンスですが機能に制限等はありません。お使い頂いてXAdESの長期署名をお試し下さい。[2011-06-02追記]USBトークンやICカード等のドライバを必用とする場合にはRSA-SHA2署名がうまく動作しない可能性があります。調査して対応方法等が分かりましたらご報告します。miyachi]弊社のXML長期署名ライブラリLe-XAdESのソース公開版のバージョンを1.32にアップして公開を開始しました。これは製品版の最新バージョンが1.40になったことから1つ前の安定バージョンを公開することにしたものです。製品版と全く同じではありませんがRSA-SHA2署名に対応していない以外は大きな機能不足はありません。ライセンスとしては非商用ライセンスとなりますので、開発の試用目的または個人利用目的の非商用の運用をする目的でお使い下さい。商用目的であっても公共性が高い利用目的の場合には当社の判断により無償にて商用ライセンスでの利用を許諾する場合がありますのでお問合せ下さい。ダウンロード時にはハッシュ値を確認下さい。ダウンロードはこちらから。ハッシュ値の確認には弊社のフリーツールであるLeAsn1XmlToolが便利です。こちらは全くのフリー公開ですので商用も含めて自由にお使い下さい。LeAsn1XmlToolのソースもXML長期署名ライブラリLe-XAdESのソース公開版に含まれています。商用利用も可能なソース公開では無くすみません。自分で実装される方には参考になると思います。よろしければお使いになってみて下さい。ソース公開版のサポートは基本的には行ないません。サポートを希望される場合は製品版の購入をご検討下さい。miyachi]先日公開したOfs2010Setupperですが、kjurさんからTSALocation(タイムスタンプサーバのURL指定)に長いURLが指定できないとのバグ報告がありました。調べてみたところドロップリストにしているとその幅以上の入力が出来ないようでしたので、TSALocationをエディタに修正してバージョンアップしたVer1.01をリリースします。Ver1.00をお持ちの方は入れ替えをお願いします。PblSaHKHrV19JU+Mmy2tIbfYK9s=なお前回の繰り返しになりますが、レジストリの変更をすると言うことは色々なリスクがありますし、そもそもあまり変更して欲しく無いのだと思います。kjurさんご報告ありがとうございました。Ver1.01が公開されました。MS-Office2010ではデジタル署名としてこれまでのXML署名(XML-DSig)では無く、長期署名のXAdESが使われるようになりました。未成熟な部分もあるようで、署名レベルの変更は一般向けでは無くレジストリ変更によって指定されます。作りましたので公開します。iekF0bnMhf4BqDiqFbiMpLKwrtM=ただしレジストリの変更をすると言うことは色々なリスクがありますし、そもそもあまり変更して欲しく無いのだと思います。ご利用はあくまで長期署名のテスト目的であり自己責任と言うことでお願いします。通常はXAdESLevelとTSALocationの変更だけでテスト目的なら充分だと思います。TSALocationはRFC3161標準準拠のみで認証が必要となる商用タイムスタンプ局は使えませんのでご注意下さい。miyachi]Le-XAdESのソース公開をしたところ、早速弊社の関連会社であるアンテナハウスのブログ「PDF千夜一夜」で取り上げて頂きました。ありがとうございます。長期署名は、まあ、会社がなくなっても検証されねばならないでしょうし、オープン・ソースにする方が良いかもしれませんね。ラング・エッジのような小さな会社が長期間に渡って使われるソフトを提供する場合に安心して頂けると言う意味でオープンソースは手段として有効だと考えています。ソースが無いばかりにメンテナンス不能になっているライブラリも世の中には沢山あると思います。一つオープンソースのメリットとしては公開する以上それを意識したプログラミングをする必要があると言うのもあるかもしれません。Le-XAdESライブラリもまだまだお恥ずかしい箇所が沢山ありますが「単に動けば良い」時よりもしっかり作れるような気がします。これは内向きの理由ですね(^^;他にもライセンス的にまだ問題があるとのご指摘も頂いています。それも実は理解していたのですがまずはソース公開を優先させた結果です。ライセンス関連は勉強して修正して行きたいと考えています。最後に、PKIの世界は本来は仕組みがパブリックなものです。その意味ではオープンソースとは本来相性が良いはずと考えています。弊社の取り組みが会社として成功するのか失敗するのかはまだこれからにかかっています。miyachi]ご注意:現在公開中止しています。[2010-01-26]Microsoft標準のXML署名機能であるSignedXmlクラスを使った、XML署名ツールLeSignedXmlを公開しました。ほとんどSignedXmlクラスの機能に頼った実装なのでたいしたソースではありませんが、参考になれば幸いです。公開のきっかけは先日XML署名の検証が出来るツールを探していたのですが、あまり世間に無いようでしたので、それなら作って公開しようと言うことにしたものです。「オープンソース活動」のページからダウンロードとドキュメントへのリンクを張ってありますので、まずはそちらをご覧ください。何かコメントがあれば、本エントリのコメント欄に投稿ください。miyachi]と古いSWネタですみません。BouncyCastleを使おうとするとどうしてもソースを見る必要があると言う意味でした。オープンソースの最大の利点はソースを見る事が出来ると言えるでしょう。これは使う時に非常に参考になります。BouncyCastleのソースを追っていると何だかデジャブに陥ります。昔々遠い銀河の彼方では...じゃ無くて、昔々アップルのMacintosh向けの開発を始めたばかりの頃と重なって見えるのです。当時は開発環境はMPWでクラスライブラリとしてMacAppと言う物が提供されていました。Photoshopをはじめ古いマックのアプリのAbout画面には大抵MacAppを使っていると表記があったものです。MPWはともかく、このMacAppは優れものでした。膨大な量のソースが提供され、最後の最後に低レベルのMacOSのAPIが呼ばれていたんです。Browser"も準備(SmallTalk風でした)されており、ノウハウの宝庫でした。何かやりたい処理があればソースを検索すると似たような処理をしているメソッドが見つかって、それを参考にして自分のコードをプログラミングしていました。MacAppのクラス構成としては、MSのMFCに近かった...と言うか最初はどう見てもMFCはMacAppのタイニー版としか見えませんでした。MFCはソースを追ってもすぐにWindowsAPIに入ってしまい、当時はMacAppとは比べ物になりませんでした。他に選択肢が無かったので仕方が無くMFCを使っていたのですが、現在のMFCは拡張に拡張を重ねて当時と比較すると化け物みたいですね。ちなみにMacAppはダウンロードは出来ますが既に終わっている開発環境です。何はともあれ昔も今もマックの開発環境は情報が少なく、あっても英語だけだったりと最後はMacAppのソースを見るのが基本でした。BouncyCastleやCrypto++を使っていてもやはり最後はソースを見て何をどうやって行っているのかを見るのが重要だと思います。暗号関係も情報が少ないです...あっても英語と言うのも同じです。BouncyCastleもCrypto++もメーリングリストがあって検索が出来るだけマシとも思えますね。他の人の優れたソースを見る事は自分のプログラマとしてのレベルアップには欠かせないようにも思います。「ソースの力を信じろ。ルーク、ソースを使え!」と言っておきましょう。やって使っていると不満な点や足りない点が見えてくるかもしれません。したら貢献のチャンスですね。早くそのレベル(ジェダイ・マスター?)になりたいと日々精進するのでした。miyachi]オープンソース活動と言う事でJava用暗号ライブラリであるBouncyCastleのインストール手順に関してまとめておきます。利用するJDKのバージョンと一致した物か全てをダウンロードするが、jarファイル別々もダウンロードは可能。私は色々便利(ソースも含んでいるのでお勧め)なので全て含んでいる物をダウンロードしている。