Friday, April 18, 2014

SunJCE の Diffie-Hellman アルゴリズムで 1024 ビットを超える素数が使えない

何か問題が解決したとか, いろいろ苦労した軌跡を残したいとか, そういうわけではありません. 昨年, JCE を使って Diffie-Hellman をやってみる (27 Oct 2013) という記事で触れたことの再確認に過ぎません.

Saturday, February 1, 2014

まだ AttributeConverter が使いこなせていません

JPA で enum を永続化する際, ordinal を使うのも name を使うのも一長一短があると思っていて, それ以外にも何かおもしろい手はないものかなと探していました。 ふと見かけた Mapping enums done right with @Convert in JPA 2.1 (June 3, 2013) という記事に, AttributeConverter を使うという方法が紹介されていました。 おもしろそうだなと思って試してみたのですが, これまでのところほぼ挫折した状態にあります。

Sunday, January 12, 2014

UnboundID SDK には Persistence Framework というものが

UnboundID LDAP SDK for Java には, ディレクトリサービスにおけるエントリと Java におけるオブジェクトとを橋渡しする試みとして, Persistence Framework というものがあります。 リレーショナルデータベースとオブジェクト指向言語における JPA や Hibernate などの ORM に比べたらまだまだかもしれませんが, なかなかおもしろそうな気がしてはいます。

Thursday, January 9, 2014

UnboundID SDK で LDAP over SSL/TLS を

手元の環境の LDAP サーバー (OpenLDAP 2.4.38) をビルドしなおし, SSL/TLS 対応させてみました。 今回は, UnboundID LDAP SDK for Java を使って, LDAP over SSL/TLS (いわゆる LDAPS) 経由で LDAP サーバーに接続する方法をいくつかためしてみましたので, それらについて書き残しておきたいと思います。

Sunday, January 5, 2014

もう少しだけ LDAP API の比較を

昨日の 記事 に続きまして, 今回はごくごく簡単な SEARCH をおこない, Apache Directory LDAP API と UnboundID LDAP SDK for Java とを比較してみました。

Saturday, January 4, 2014

JNDI 以外のものを使って LDAP 関連のことを

あけましておめでとうございます。 仕事中にさぼって書いています。

LDAP サーバーを利用するコードを Java で書くとしたら, たぶん JNDI を利用するケースが多いんだろうなと思います。 とはいえ, JNDI 自体は LDAP の取り扱いに特化した API というわけではありませんので, そうとは気づかずにさわりはじめると, 最初のうちは戸惑います。 たとえば DirContextbind とか unbind とかのメソッドは, LDAP における BIND や UNBIND とはまったく別の意味を持っています。 また, JNDI を使って LDAP 関連のコードを書こうとすると, Hashtable とか Enumeration とかが視界に入ってくるというのも, やや苦しいところです。

Tuesday, December 31, 2013

JNDI で LDAP インジェクション対策のささやかなこころみ

SQL に 「SQL インジェクション」 があるように, LDAP にも 「LDAP インジェクション」 というものがあるようです。 ただ, ネット上で調べても, SQL に比べると LDAP の事例はあまり多くは見かけない印象があります。 LDAP を利用するアプリケーションが世の中にそれほど多くないから, ということだけではなく, LDAP で利用する BIND や SEARCH や MODIFY などの構文は, 単なる文字列の組み立てだけで書くことができるわけではないから, ということも理由なのかなという気がしています。 とはいえ, 文字列の組み立てが発生しないわけでもないので, 無関心でいるよりは, 多少なりとも関心を持っておきたいとも思います。

Monday, December 30, 2013

LdapContext を close() するときのことについて

久しぶりに LDAP をさわってみています。 いろいろ忘れてしまったので, まずは手元の環境に用意した LDAP サーバー (OpenLDAP 2.4.38) に簡易認証で接続して, そのあとその接続を閉じるということから始めてみました。 そんな中で, 接続を閉じる際に, UNBIND リクエストを送らずに接続を閉じてしまうケースがあったので, それについてメモを残しておくことにしました。

Sunday, October 27, 2013

JCE を使って Diffie-Hellman をやってみる

VPN を実現するプロトコルのひとつに IPsec というものがあります. IPsec においては鍵交換プロトコルとして IKE を利用するのが一般的なのではないかと思いますが, その IKE において利用することのできる鍵交換アルゴリズムのひとつに Diffie-Hellman 鍵交換アルゴリズムがあります.

このアルゴリズムは, 大雑把に言うと, 秘密鍵を共有していない当事者間において, 各自が乱数などを使って計算して生成した値を互いに相手に送り合い, 各自が相手から受け取った値をもとに再び計算すると, 結果的に双方が同じ秘密鍵を保持することができる, というものです. 通信経路上に存在する盗聴者が当事者間でやりとりされる値だけから秘密鍵を推測することは容易ではないらしく, そのことがこのアルゴリズムの効能となっています.

Sunday, October 20, 2013

複数の要素と複数の属性 - JAXB 入門的な何か

きょうは JAXB (Java Architecture for XML Binding) のことについて少し書き留めておこうと思います. 全然大したことを書こうというつもりはなく, ただ単に XML って何? 的な状態の者が JAXB クラスを触り始めたところで気づいたことを 2 点ばかりメモ書きしておこうと思った, 程度のことです.