Ajaxで今よみがえる(^^;;-->[クロスブラウザ技術 ]DHTMLサンプル集
古籏一浩さんとのはじめての共著 発売中-->『Ajax実践テクニック』 古籏一浩/高橋 登史朗 (著)秀和システム
配本予約開始-->『入門Ajax 増補改訂版 』 高橋 登史朗 (著)ソフトバンククリエイティブ ; ISBN: 4797336242
【カテゴリー】 AjaSQL ( 9 ) Ajax ( 514 ) Arax ( 1 ) canvas ( 7 ) CSS ( 7 ) DLNA ( 1 ) Dojo ( 12 ) DOM ( 42 ) ES4 ( 2 ) 反重力物質 ( 1 ) Flash ( 42 ) Flash Remoting ( 11 ) FTP ( 2 ) GAF ( 9 ) Google Maps ( 105 ) GPS ( 38 ) HTTPヘッダサンプル ( 8 ) IPv6 ( 1 ) 漫画 ( 1 ) Java ( 39 ) JavaScript ( 193 ) jKamo ( 8 ) jQuery ( 4 ) jsGadget ( 18 ) jslb_ ( 3 ) jslb_ajax ( 8 ) JSON ( 44 ) JSR223 ( 5 ) kjscmd ( 1 ) KNOPPIX ( 1 ) Linux ( 13 ) Mac ( 4 ) Memo ( 3 ) Microformats ( 2 ) Mini AJAX ( 2 ) MochiKit ( 1 ) Movable Type ( 48 ) MySQL ( 7 ) NewGameWeb ( 2 ) Nucleus ( 8 ) OpenAJAX ( 3 ) OpenDocument ( 1 ) OS ( 3 ) P2P ( 2 ) Perl ( 7 ) PHP ( 36 ) PostGIS ( 1 ) PostgreSQL ( 3 ) prototype.js ( 17 ) ROBOT ( 1 ) RSSリーダー ( 14 ) Ruby on Rails ( 6 ) Spry ( 6 ) SQLite ( 9 ) SQLiteWorker ( 2 ) ssh ( 1 ) SSI ( 2 ) SVG ( 15 ) TRON ( 1 ) Video ( 1 ) VML ( 1 ) Webサービス ( 83 ) widget ( 6 ) Wiki ( 1 ) Win ( 6 ) WSH ( 1 ) X01HT ( 28 ) XML ( 27 ) XOOPS ( 1 ) XQuery ( 2 ) XUL ( 3 ) Yahoo! UI ( 49 ) 日付入力用カレンダー ( 1 ) 『Ajax実践テクニック』 ( 1 ) 『入門 Ajax』 ( 42 ) WinTips ( 2 ) チューニング ( 10 ) ダイナミックロード関数 ( 4 ) ライブラリ ( 44 ) レーダー雨量表示 ( 1 ) ハード ( 13 ) ペンギン ( 2 ) ブラウザ ( 47 ) ブログでBBS ( 1 ) アクセスグラフ ( 3 ) カレンダーによる日付入力スクリプト ( 2 ) クロスブラウザ ( 10 ) クロスブラウザ関数 ( 7 ) スマートフォン ( 7 ) セキュリティ ( 82 ) ソフトイーサ ( 1 ) マッシュアップ ( 20 ) 暗号 ( 4 ) 映画 ( 41 ) 河川の水位グラフ ( 3 ) 回線 ( 2 ) 開発ツール ( 10 ) 牛久大仏 ( 7 ) 携帯 ( 94 ) 言語 ( 12 ) 故障 ( 1 ) 洪水警報システム ( 2 ) 今日のひと言 ( 2 ) 仕様 ( 28 ) 雑談 ( 171 ) 書籍 ( 15 ) 親子ウインドウ有無の確認関数 ( 3 ) 新海誠 ( 3 )
【暗号 このページ内へのリンク】
【暗号】ケータイで使える軽い暗号方式「K2」
【暗号】md5.jsをPHPのmd5()と並べてみる
【暗号】MD5のJavaScriptライブラリ
【暗号】1024-bit RSA on JavaScript

[ 暗号 ]

このカテゴリーをyour [my del.icio.us]へ追加

2006年03月14日

【暗号】ケータイで使える軽い暗号方式「K2」 ()

暗号

ケータイで使える軽い暗号方式「K2」が登場http://www.atmarkit.co.jp/news/200603/15/k2.html

AESと比較して、同レベル以上の安全性を実現しながら、7〜10倍の処理速度を実現したという。また、K2にはAESでは困難な携帯電話上でのリアルタイム暗号化・復号処理ができるメリットがあるという。

投稿者 tato : 23:14 | トラックバック (0)

2005年04月28日

【暗号】md5.jsをPHPのmd5()と並べてみる ()

Ajax , 暗号

とりあえず、試しに、md5.jsで作ったハッシュ値をサーバーへ送り、PHPのmd5()関数と結果が同じになるかどうか軽いテストをしてみます。

簡単にするため、まず、FORMのGETで送ります。

       テスト

md5.jsは、今回は下記を使わせていただきました(_ _)。 http://www.onicos.com/staff/iz/amuse/javascript/expert/md5.txt

PHP側 http://jsgt.org/ajax/ref/test/md5/test1.php
<?php outputData(); //PHP側のmd5関数でハッシュ化 function md5_on_php() { //ハッシュ化したい文字列 $data = 'test1234567890'; //ハッシュ化 $md5_data = md5($data); return $md5_data ; } //比較出力 function outputData() { //PHPのMD5 echo ("<b>PHPのMD5:</b><br>".md5_on_php()); echo ('<br>'); //JavaScriptのMD5 echo ("<b>JavaScriptのMD5:</b><br>".$_GET['data']); } ?>


js側 http://jsgt.org/ajax/ref/test/md5/test1.htm
<script charset="Shift_JIS" src="./md5.js"></script> <script charset="Shift_JIS"> <!-- function chgToMD5(oj) { //MD5してセット(実際にはソースに答えを書いちゃダメ^^;) oj.form.data.value = MD5_hexhash('test1234567890'); } // --> </script> <body onload="chgToMD5(document.f0.data)"> <form action="http://jsgt.org/ajax/ref/test/md5/test1.php" name = "f0" > <br><br>テキスト'test1234567890'を md5 したテキストを送信します。 <br> <input size = "50" name = "data"><br><br> <input type = "submit" value = "送信"> </form>


ちなみに、MD5は、ハッシュ関数で Wikipediaを引き写すと、、、 といった用途で使われるようです。昔なつかしチェックデジットみたいなものでしょうかね。。。(そういえば、15年くらい前に振込用紙の戻り片に顧客コードのチェックデジットを打ち出して、改ざん?や入力間違いチェックとかしてたことがあります(旧式だなぁ、でもかなり役に立ちました。))。
そういえば、LinuxではパスワードのハッシュにMD5を使っているものもあります。私のFedoraはそうです。

さて、これで、とりあえず、送信の途中経路でTCPをモニタされても、
一応平文ではありませんから、解析が困難にはなります。。。と思ったら、
大間違い。もしパスワードなら、盗聴したデ−タをそのままコピーして送り込めば、 おしまいです(^^;;。

そもそも、この例のようにソースに元テキストを丸見えで埋め込んではいけませんが...^^;;;


では、どう使いましょうか?

送信データに対するレスポンスの正当性チェックとか、、?
うーん、、、たとえば、
これなんか、少し楽しげな、、、

HTTP クライアントを作ってみよう(6) - Digest 認証編 -
http://x68000.q-e-d.net/~68user/net/http-auth-2.html

Basic認証は平文が流れるので気持ちが悪いですが、Digest認証なら、MD5で暗号化されて流れるのです。そう、JavaScriptでこれ作れるんではないでしょうか?、、、でも、もしかして、サーバーから「WWW-Authenticate」ヘッダが帰ってきたところでダイアログでないかな、、、(^^;;;でも、やってみないとわからない。


追記
2005.4.29
ということで、やってみました。
通常のディレクトリへAjaxでアクセスした時のヘッダとDigest認証ディレクトリへアクセスした時のヘッダを比べてみました。ダイアログは出ますね、やはり。
http://jsgt.org/ajax/ref/test/auth/digest/test1.htm

ちなみに、onreadystatechange 内のソースはこんなのです。文字通りgetAllResponseHeaders() です。(参考までに、これはキャッシュの影響を受けます)
httpoj.onreadystatechange = function() { if (httpoj.readyState==4) { //ヘッダを全部くださいな headers = httpoj.getAllResponseHeaders() //こんなんでましたけど alert(headers) } }


でも、キャンセルしてもなぜか「Authentication required」ページへ飛ばされません。

「Authentication required」ページへ飛ばされてみたい方は、下記を直接叩いてみてください。
http://jsgt.org/ajax/ref/test/auth/digest/room/

うーむ、でも、そうすると、このまま、非同期ってことで、Digest認証なやりとりをはじめたらどうなるのかな?ヘッダは受け取れるわけですし、、、あるいは、自前のAjax的Digest認証を作ってしまうのがよいのかぁ、、、。今日は時間が無いので、つづく、、、(GW欲しいよ〜)

せっかくなのでこの2つのヘッダを採取しておきます(Win IE 6)。
まず、通常のヘッダ。(Opera8でみたらTransfer-Encoding行が無かった、、、)
Date: Fri, 29 Apr 2005 14:15:29 GMT Server: Apache/2.0.40 (Red Hat Linux) Vary: accept-language Accept-Ranges: bytes Keep-Alive: timeout=12, max=200 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html X-Pad: avoid browser bug

Digest認証のヘッダ
Date: Fri, 29 Apr 2005 14:20:47 GMT Server: Apache/2.0.40 (Red Hat Linux) WWW-Authenticate: Digest realm="realm", nonce="fU8E++P1AwA=7cf06025c89e445a237ff8e17196b70d7d6a9eb3", algorithm=MD5, domain="/ajax/ref/test/auth/digest/room/", qop="auth" Vary: accept-language Accept-Ranges: bytes Keep-Alive: timeout=12, max=199 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html
メモ

HTTP Authorization
http://www.studyinghttp.net/auth
Apache2でDigest 認証[ダイジェスト認証]
http://www.fkimura.com/apache14.html
第 16章PHP による HTTP 認証
http://php.s3.to/man/features.http-auth.html
RFC 2617
http://www.faqs.org/rfcs/rfc2617.html
投稿者 tato : 12:52 | トラックバック (0)

【暗号】MD5のJavaScriptライブラリ ()

Ajax , 暗号

そろそろ、下記ライブラリを使わせていただく時がきたのかも。

# ライト兄弟はすばらしいですけれど、兄弟2人の力だけでコンコルドは作れません。
# スタンドアロンで作業している方の多いJavaScriptにもライブラリは大事です。
# 感謝をこめつつ、リンク。

高度な JavaScript 技集
http://www.onicos.com/staff/iz/amuse/javascript/expert/
md5.js
http://www.onicos.com/staff/iz/amuse/javascript/expert/md5.txt

Paj's Home md5.js
http://pajhome.org.uk/crypt/md5/md5src.html

投稿者 tato : 10:18 | トラックバック (0)

【暗号】1024-bit RSA on JavaScript ()

Ajax , 暗号

AjaxはWebサービスで使われることが多いでしょうから、セキュリティへの考慮は大事かも。

PigPGP 0.2.3
JavaScriptによる1024-bit RSA 暗号系
http://www.faireal.net/demo/PigPGP/

JavaScript: 触って分かる公開鍵暗号RSA
http://www.faireal.net/articles/8/01/#d40204

高校数学で遊ぶ公開鍵暗号RSA
http://www.faireal.net/articles/5/24/#d20523

JavaScriptでPGPもどき
http://www.faireal.net/articles/5/24/#d20524

最速インターフェース研究会
[Ajax] location.hashを使ったセッション復元
http://la.ma.la/blog/diary_200502270128.htm


?username#passwordといったリクエストを送ることで

1. サーバーはusernameに対応した、暗号化された状態のデータをXMLHTTPで送る
2. クライアントは#passwordに指定された秘密鍵を使って、元のテキストに復元
3. データの更新時はクライアント側がテキストを暗号化し、サーバーにデータを預ける

これによりサーバー側が元のデータを絶対に知りえない
プライベートデータを保存できるストレージを用意することができる

素敵でござる。

投稿者 tato : 07:00 | トラックバック (0)