Jump to navigation
2021-07-20
最近の活動内容を反映 [by miyachi]
私の活動のうち公開されている情報をまとめた
[公開情報]のページ を更新して最新の活動内容を反映しました。我ながら色々資料を作ってますねw まあ15年以上分ですから。最近はこのブログでは無く
Qiita に技術記事は書くようになりました。日々のたわいない記事はFacebookに書くようになってしまいましたので非公開になってしまいました。Facebookはオンラインも含めお会いしたことがある方のみフレンド登録させて頂いています。フレンドになりたい方は是非お仕事を(^^; あと
Twitter でも情報公開しています。これからも情報公開して行きますのでよろしくお願いします。
2018-12-21
OsSAL - オープンソース署名&認証ラボ 始動 [by miyachi]
オープンソース署名&認証ラボ、略称OsSAL(Open-src Sign and Auth Labo)と言う研究ラボをラング・エッジが主スポンサーとなって開始しました。詳しくはOsSALのサイトをご覧ください。
https://www.ossal.org/
本研究ラボの目的は認証を絡めた署名等の仕組みの研究や勉強と、関連したオープンソースのプロジェクト開発となります。署名認証系プログラマのお役に立てるように頑張ります。年に1~2回程度の勉強会(サルオフ)も計画しています。
プログラマが楽しめる活動にしたいと考えています。参加は無償かつ自由ですのでご興味があれば是非ご参加ください!
2015-03-03
電子署名(PKI)ハンズオン募集開始してます [by miyachi]
3月14日(土)に開催する電子署名(PKI)ハンズオンの募集を開始しました。AITCとJNSAの共同開催ですのでどちらから申し込んで頂いても大丈夫です。
AITC側の参加募集:
https://www.facebook.com/events/812737535430803
JNSA側の参加募集:
https://www.facebook.com/events/421110024706545
現在資料とハンズオン環境を準備しています。資料は私のこの8年くらいのノウハウを全てぶち込んでますw その為にページ数が…な、何はともあれ濃い内容にしますので是非!ハンズオン環境もPKI SandBox Projectでほぼ整いました。
来週前半には資料の公開等を行う予定です。技術者じゃ無くても雰囲気だけでも分かって貰い、法的な話など営業活動にも役立つ内容もありますので是非ご検討を!3月14日にお会いできることを楽しみにしております!よろしくお願いします!
2015-02-17
[宣伝] 無料セミナー「電子署名ハンズオン」JNSA/AITC共催 [by miyachi]
昨年からずっと準備して来ました電子署名を実際に使って貰い技術的な説明する勉強会の「電子署名ハンズオン」を開催します。電子署名やタイムスタンプに興味があるSEや技術者の皆さん是非ご参加ください!
日時:2015年03月14日(土) 13:30~18:30(受付開始13:00頃)
場所:インタセクト・コミュニケーション様 セミナールーム(神田錦町)
費用:無料(事前登録が必要です)
詳細:
こちら(申込もこちらから)
講師:有限会社ラング・エッジ 宮地直人
主催:
JNSA電子署名WG/
AITCオープンラボの共催
☆セミナー概要:
電子署名やタイムスタンプって興味があるけど使ったことが無いし技術も難しいそう…と言うあなたの為に実際に電子署名やタイムスタンプを使って試せるハンズオンの勉強会を開催します。クラウドやモバイル等の開発者の方もPKIの基本を学べるチャンスです。気軽にご参加ください!
☆ハンズオン内容:
-----------------------------------
第1部:電子署名とタイムスタンプ
電子署名とその基本技術を理解する
ハンズオン1:電子署名を生成してみよう
タイムスタンプ技術を理解する
ハンズオン2:タイムスタンプを取得してみよう
第2部:署名検証と長期署名
電子署名の検証技術を理解する
ハンズオン3:検証してみよう
長期署名を理解する
ハンズオン4:長期署名を作ってみよう
-----------------------------------
☆対象者:
-----------------------------------
技術者(プログラマ等)
ある程度具体的な情報の入手が可能。
Javaでタイムスタンプ取得するノウハウ。
仕様策定者(SE等)
具体的な内容はやや難しいかも。
電子署名・タイムスタンプの必要要件の情報入手。
非技術者(営業等)
技術説明部はついて来れないかも(^^;
ハンズオン部はコマンド実行できれば大丈夫。
Adobe Reader で PAdES-A も大丈夫なので是非!
-----------------------------------
と言うことで電子署名やPKI技術普及の為に頑張ります!ご興味があれば是非ご参加ください!
2013-09-11
フリータイムスタンプ局(FreeTSA)のすゝめ [by miyachi]
タイムスタンプ(RFC3161)を使うと
その時刻に指定したデータが存在しておりその後改ざんされていない事を保証できます。と言っても法的に有効にする為にはデ協の認定を受けた商用タイムスタンプサービスを利用しなきゃいけないのですが… オープン思考の私としては技術に国境は無い!と言う事で次の2つの実現を目指してみました。
・自分でTSAを構築する手順(FreeTSA Project)
・フリーに使えるTSAの提供(FreeTSA Service)
そもそもタイムスタンプを使ってみないとうまく動作するか試験もできませんし、使ってみたら新しいアイデアも浮かぶと思うのです。技術って使われてなんぼですよね。もちろん商用タイムスタンプ局さんでも登録をすればテストに使えるTSAが使える訳ですが、もっと手軽に自由に使いたいこともありますよね。それにタイムスタンプは電子署名と違ってHTTPで叩けば応えてくれるので使いやすいサービスだと思います。ただし所謂オレオレTSAになりますので現時点ではまともな運用には使えませんのでご注意を。以下のようになります。全て商用タイムスタンプ局さんの真逆になりますw
A)オレオレTSA証明書による署名です
B)運用規定も無く何かを保証はできません
C)時刻同期もntp利用なので数秒のずれはある
D)トラブルや都合により停止している場合がある
ちなみにかつてOpenTSAと言うプロジェクトがありましたので今回はFreeTSAと言う名前にしてみました。OpenTSAはソースを
OpenSSLに寄贈して解散しています。FreeTSAもOpenTSAが反映された
OpenSSL 1.0.0を利用しています。
FreeTSAその1:
フリータイムスタンプ局(FreeTSA)のすゝめ
FreeTSAその2:
10分でできるタイムスタンプ局(FreeTSA Project)
FreeTSAその3:
自由に使えるタイムスタンプ局(FreeTSA Service)
10分でできるタイムスタンプ局(FreeTSA Project) [by miyachi]
OpenTSAがあった時にはmod_tsaと言うApacheに組み込むモジュールがありました。ただOpenTSAが解散してOpenSSLに移管されてからこの辺りの状況が良く分かりません。OpenSSLコマンドではtsオプションでTimeStampRequestの生成・TimeStampResponseの生成・TimeStampTokenの検証が可能です。
FreeTSAではOpenSSLコマンドのtsオプションにより「TimeStampResponseの生成」をしてクライアントに返す事になります。材料は以下となります。
・TSA証明書と対応した秘密鍵(PEM形式)
・OpenSSL 1.0.0以降(opensslコマンド)
・Apache+CGI(Perl利用)
・ntpの設定
[続きを読む]
自由に使えるタイムスタンプ局(FreeTSA Service) [by miyachi]
ラング・エッジでは無保証ですがタイムスタンプサービスを公開します。以下の仕様で利用可能です。
アドレス:
https://www.langedge.jp/demotsa
ハッシュアルゴリズム:
SHA-1, SHA-256, SHA-512
時刻同期:
ntp で
ntp.nict.jp を指定
ポリシ(オプション):
2.5.29.32.0
認証(オプション):
無し
運用:
トラブルやメンテナンス等で停止する場合あり
連続したタイムスタンプ取得等はサーバがもたない可能性がありますので配慮頂けますようお願いします。利用するクライアントですがラング・エッジが公開している
XML長期署名ツール「LE:XAdES:Tool」も非商用でお試しであれば無償でお使い頂けます。タイムスタンプ取得のプログラミングに関しても後日まとめて公開したいと考えています。
それではぜひタイムスタンプを利用して色々試したり遊んでみてください。エンジョイ!
FreeTSAその1:
フリータイムスタンプ局(FreeTSA)のすゝめ
FreeTSAその2:
10分でできるタイムスタンプ局(FreeTSA Project)
FreeTSAその3:
自由に使えるタイムスタンプ局(FreeTSA Service)
2011-05-27
XAdEStoolのVer1.40の公開開始 [by 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署名がうまく動作しない可能性があります。ご注意下さい。調査して対応方法等が分かりましたらご報告します。
Le-XAdESのVer1.32ソース公開版の公開開始 [by miyachi]
弊社の
XML長期署名ライブラリLe-XAdESのソース公開版のバージョンを
1.32にアップして公開を開始しました。これは製品版の最新バージョンが
1.40になったことから1つ前の安定バージョンを公開することにしたものです。製品版と全く同じではありませんがRSA-SHA2署名に対応していない以外は大きな機能不足はありません。
ライセンスとしては非商用ライセンスとなりますので、開発の試用目的または個人利用目的の非商用の運用をする目的でお使い下さい。また商用目的であっても公共性が高い利用目的の場合には当社の判断により無償にて商用ライセンスでの利用を許諾する場合がありますのでお問合せ下さい。
ダウンロード時にはハッシュ値を確認下さい。ダウンロードは
こちらから。
なおハッシュ値の確認には弊社のフリーツールである
LeAsn1XmlToolが便利です。こちらは全くのフリー公開ですので商用も含めて自由にお使い下さい。
LeAsn1XmlToolのソースも
XML長期署名ライブラリLe-XAdESのソース公開版に含まれています。
商用利用も可能なソース公開では無くすみません。ただ自分で実装される方には参考になると思います。よろしければお使いになってみて下さい。ただソース公開版のサポートは基本的には行ないません。サポートを希望される場合は
製品版の購入をご検討下さい。
2010-06-18
MS-Office2010の署名レベル設定ツール Ofs2010Setupper Ver1.01 [by miyachi]
先日公開したOfs2010Setupperですが、kjurさんからTSALocation(タイムスタンプサーバのURL指定)に長いURLが指定できないとのバグ報告がありました。調べてみたところドロップリストにしているとその幅以上の入力が出来ないようでしたので、TSALocationをエディタに修正してバージョンアップした
Ver1.01をリリースします。Ver1.00をお持ちの方は入れ替えをお願いします。
File :
Ofs2010Setupper_v101.zip
SIZE : 154,482 Bytes
SHA-1 Hex : 3db952687287ad5d7d254f8c9b2dad21b7d82bdb
SHA-1 Base64 : PblSaHKHrV19JU+Mmy2tIbfYK9s=
なお前回の繰り返しになりますが、レジストリの変更をすると言うことは色々なリスクがありますし、そもそもあまり変更して欲しく無いのだと思います。ご利用はあくまで長期署名のテスト目的であり
自己責任と言うことでお願いしますm(_ _)m
利用環境等に関しては
Readme.txt をご覧下さい。
kjurさんご報告ありがとうございました。
2010-06-11
MS-Office2010の署名レベル設定ツール Ofs2010Setupper 公開 [by miyachi]
[2010-06-18]
Ver1.01が公開されました。
MS-Office2010ではデジタル署名としてこれまでのXML署名(XML-DSig)では無く、長期署名のXAdESが使われるようになりました。しかしながらまだ未成熟な部分もあるようで、署名レベルの変更は一般向けでは無くレジストリ変更によって指定されます。レジストリの変更は面倒であり間違いやすいので、簡単に署名レベルの変更が出来るツールとして
Ofs2010Setupper を作りましたので公開します。
File :
Ofs2010Setupper_v100.zip
SIZE : 154,314 Bytes
SHA-1 Hex : 89e905d1b9cc85fe01a838aa15b88ca4b2b0aed3
SHA-1 Base64 : iekF0bnMhf4BqDiqFbiMpLKwrtM=
ただしレジストリの変更をすると言うことは色々なリスクがありますし、そもそもあまり変更して欲しく無いのだと思います。ご利用はあくまで長期署名のテスト目的であり
自己責任と言うことでお願いします。さて使い方ですが、
通常はXAdESLevelとTSALocationの変更だけでテスト目的なら充分だと思います。TSALocationはRFC3161標準準拠のみで認証が必要となる商用タイムスタンプ局は使えませんのでご注意下さい。利用環境等に関しては
Readme.txt をご覧下さい。
それではMicrosoft初の長期署名機能をお楽しみ下さい!
2008-04-23
長期署名とオープンソース [by miyachi]
Le-XAdESの
ソース公開をしたところ、早速弊社の関連会社である
アンテナハウスのブログ
「PDF千夜一夜」で取り上げて頂きました。ありがとうございます。
> 長期署名は、まあ、会社がなくなっても検証されねばならないでしょうし、オープン・ソースにする方が良いかもしれませんね。
はい。ラング・エッジのような小さな会社が長期間に渡って使われるソフトを提供する場合に安心して頂けると言う意味でオープンソースは手段として有効だと考えています。ソースが無いばかりにメンテナンス不能になっているライブラリも世の中には沢山あると思います。
もう一つオープンソースのメリットとしては公開する以上それを意識したプログラミングをする必要があると言うのもあるかもしれません。Le-XAdESライブラリもまだまだお恥ずかしい箇所が沢山ありますが「単に動けば良い」時よりもしっかり作れるような気がします。これは内向きの理由ですね(^^;
他にもライセンス的にまだ問題があるとのご指摘も頂いています。それも実は理解していたのですがまずはソース公開を優先させた結果です。ライセンス関連は勉強して修正して行きたいと考えています。
最後に、PKIの世界は本来は仕組みが
パブリックなものです。その意味ではオープンソースとは本来相性が良いはずと考えています。弊社の取り組みが会社として成功するのか失敗するのかはまだこれからにかかっています。しかし失敗してもソースだけは残りますね!
2006-09-08
XML署名ツール LeSignedXml 公開 [by miyachi]
ご注意:現在公開中止しています。[2010-01-26]
Microsoft標準のXML署名機能であるSignedXmlクラスを使った、XML署名ツール
LeSignedXmlを公開しました。ほとんどSignedXmlクラスの機能に頼った実装なのでたいしたソースではありませんが、参考になれば幸いです。
公開のきっかけは先日XML署名の検証が出来るツールを探していたのですが、あまり世間に無いようでしたので、それなら作って公開しようと言うことにしたものです。
「
オープンソース活動」のページからダウンロードとドキュメントへのリンクを張ってありますので、まずはそちらをご覧ください。
何かコメントがあれば、本エントリのコメント欄に投稿ください。
2005-07-21
ルーク、ソースを使え (Use the Soruce, Luke) [by miyachi]
と古いSWネタですみません。
BouncyCastleを使おうとするとどうしてもソースを見る必要があると言う意味でした。オープンソースの最大の利点はソースを見る事が出来ると言えるでしょう。これは使う時に非常に参考になります。
BouncyCastleのソースを追っていると何だかデジャブに陥ります。昔々遠い銀河の彼方では…じゃ無くて、昔々アップルのMacintosh向けの開発を始めたばかりの頃と重なって見えるのです。当時は開発環境は
MPWでクラスライブラリとして
MacAppと言う物が提供されていました。Photoshopをはじめ古いマックのアプリのAbout画面には大抵MacAppを使っていると表記があったものです。
MPWはともかく、このMacAppは優れものでした。膨大な量のソースが提供され、最後の最後に低レベルのMacOSのAPIが呼ばれていたんです。MacAppのソースや説明を見る為の専用ブラウザ"MacApp Browser"も準備(SmallTalk風でした)されており、ノウハウの宝庫でした。何かやりたい処理があればソースを検索すると似たような処理をしているメソッドが見つかって、それを参考にして自分のコードをプログラミングしていました。
MacAppのクラス構成としては、MSの
MFCに近かった…と言うか最初はどう見てもMFCはMacAppのタイニー版としか見えませんでした。しかもMFCはソースを追ってもすぐにWindowsAPIに入ってしまい、当時はMacAppとは比べ物になりませんでした。が、他に選択肢が無かったので仕方が無くMFCを使っていたのですが、現在のMFCは拡張に拡張を重ねて当時と比較すると化け物みたいですね。ちなみにMacAppはダウンロードは出来ますが既に終わっている開発環境です。
何はともあれ昔も今もマックの開発環境は情報が少なく、あっても英語だけだったりと最後はMacAppのソースを見るのが基本でした。BouncyCastleや
Crypto++を使っていてもやはり最後はソースを見て何をどうやって行っているのかを見るのが重要だと思います。暗号関係も情報が少ないです…あっても英語と言うのも同じです。まぁ
BouncyCastleも
Crypto++もメーリングリストがあって検索が出来るだけマシとも思えますね。
他の人の優れたソースを見る事は自分のプログラマとしてのレベルアップには欠かせないようにも思います。ですから「ソースの力を信じろ。ルーク、ソースを使え!」と言っておきましょう。そうやって使っていると不満な点や足りない点が見えてくるかもしれません。そうしたら貢献のチャンスですね。早くそのレベル(ジェダイ・マスター?)になりたいと日々精進するのでした。
2005-07-19
BouncyCastleのインストール手順と確認 [by miyachi]
オープンソース活動と言う事でJava用暗号ライブラリである
BouncyCastleのインストール手順に関してまとめておきます。まずはインストール手順ですが、
手順1:
BouncyCastleのjarファイルを
http://www.bouncycastle.org/ から
ダウンロードする。利用するJDKのバージョンと一致した物か全てをダウンロードするが、jarファイル別々もダウンロードは可能。私は色々便利(ソースも含んでいるのでお勧め)なので全て含んでいる物をダウンロードしている。現在のVer1.29だと crypto-129.tar.gz か crypto-129.zip となります。情報が少ないから結局ソースを追う事が多いです(^^;
手順2:
BouncyCastleのjarファイル(例:bcprov-jdk14-129.jar/bcmail-jdk14-129.jar/bctsp-jdk14-129.jar/bcpg-jdk14-129.jar/bctest-jdk14-129.jar)をJREかJDKの jre/lib/ext/ の下にコピーする。
手順3:
JREかJDKの jre/lib/security/java.security を編集してBouncyCastleの行を挿入する。
---------------------------------------------------------------
:
#
# List of providers and their preference orders (see above):
#
security.provider.1=sun.security.provider.Sun
security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
:
---------------------------------------------------------------
※ この時に出来れば2番目に挿入して以下のリストを繰り上げて行く事が間違いが無くて望ましい。同じAPIが複数ある場合に別のプロバイダの物を使ってしまう事があるから。
以上でインストールは完了です。なお注意としてはWindows環境でJ2SDK(JDK)をインストールすると、JREと2重にインストールされる事があるので、最悪は両方の jre/lib 以下に設定をする必要がある事です。ちなみにJDKは指定場所にインストールされますが、JREは C:\Program Files\Java\j2re1.4.2_08 と言うようにインストールされてしまうようです。環境によって多少は異なるかもしれませんが参考まで。
また場合によっては
JUnit(junit.jar)や
JavaMail(mail.jar/src.jar)のモジュールも要求されるかもしれません。その場合にはダウンロードしてインストールしましょう。
次に以下のコードを実行してみて「
BouncyCastle Security Provider v1.29」と表示されればOKです。なおここでは全てBouncyCastleのバージョンはVer1.29を前提としてファイル名やメッセージを示していますが、BouncyCastleはバージョンアップも早いので最新の物を使いましょう。
---------------------------------------------------------------
import java.security.Provider;
import java.security.Security;
public class BcTest {
public static void main( String[] args ) throws Exception {
Provider provider = Security.getProvider ( "BC" );
System.out.println ( provider.getInfo() );
}
}
---------------------------------------------------------------
"BC"がBouncyCastleを示すプロバイダ文字列となります。さぁこれであなたもオープンソース&フリーソフトの暗号ライブラリBouncyCastleを使う準備が出来ました。暗号の世界を楽しみましょう!
[2006-12-01追記]
む?ある
お助け掲示板からリンクが。そうか確かにプログラムの一部だけだとわかり難いですね。と言う事で実行ソース例を修正しました。赤字の部分が今回追加した部分です。