上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

まず、基礎知識、Javaのセキュリティのお話。

複数のプログラムを協調動作させる場合、単体プログラムを動かす場合と違ってちょっと特殊なセキュリティの問題がある。単体の場合、とても単純。書いた人が信用できるなら、そのプログラムに何でも出来るように権限を与えて動かせばいい。もし信用できないなら、パソコン上の重要なファイル等は読み書きさせないように制限すればいい。これが複数になると事はこう単純には行かなくなる。例えば、信用ある会社の書いたプログラム S(safety) がダウンロードしたネット上のどっかの誰かが書いたプログラム W(worning) と協調動作する場合を考える。

W 内からは重要な資源にアクセス出来なくする。(失敗)
この方法はWがSを呼び、Sに重要な資源にアクセスさせる可能性がある。 Sがそのような資源にアクセスするかは、Sが複雑なプログラムだった場合、W から S への呼び出しを見張るだけでは判断できないため、この方法は使えない。

ここでのセキュリティの破り方は誰か権限のある人に悪さをしてもらう構図。…まるで政治家と企業の癒着のよう…。お金の流れが複雑になると、献金の種類等で単純に規制してもうまくいきにくい所も似ている…。けど!Javaはもっとかしこい…振り込まれた口座から資金の出所を確認するまでいちいち一つ一つ追いかける…マルサのJava!! つまり、スタックトレースを調べ上げ (もしくはそれと同等の事をし)、呼び出しの背後関係を洗い出し、その中に一つでも怪しいプログラムがあればエラーにする。

役に立ったらぽちっとよろしく。 人気ブログランキングへ


ここからが本題

前述の方法で一つだけうまくいかないケースがある。Wに呼ばれたSだったが、Wの要求を満たすためというより、自分の作業用に何らかの資源にアクセスする可能性がある。例えば、Sはログファイルにアクセスするかもしれない。

そんな時でもJavaは強制調査権限を利用して「悪徳企業の手下め逮捕する」と言ってくる。そんな時に「これは国策捜査だ!」等と叫んでも後の祭りである。大事なのは、その前に「この公共工事は~建設に頼まれたからでなく、自分で判断しました」と 書類を出しておく(doPrivilegedメソッドを呼び出しておく)事が重要。ちなみに、明言しても工事着工までの間に、再び~建設と接触すると、やはりマルサがやってくるので御用心…。


…しかし、我ながらなかなかトレンディー、政治記者にでもなればよかったかもかも。
今回の記事ソースコード無いし…笑。

スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する

トラックバック
この記事のトラックバックURL
この記事へのトラックバック
Copyright © ふらふら技術者の日記 All Rights Reserved.
Powered by FC2 Blog
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。