暗号化HTTPSまかせだと、ネコにもネズミにも聞かれそうなので、少し悪あがきしてみた

カテゴリー:Perl・Javascript・python、サーバー管理メモ(記事数:75)



↑B


2017.01.27

暗号化HTTPSまかせだと、ネコにもネズミにも聞かれそうなので、少し悪あがきしてみた

 この前、中国人な知り合いと話していたんだけど、中国からだと、インターネットアクセス自体が検閲されていて、しかも、HTTPS接続は禁止されていて、でも今時不便すぎるから指定のproxy経由でアクセスする事が可能とのこと、それって、この前知った、proxy利用してHTTPSの中身を傍受するman-in-the-middleじゃね?って話をしたら、衝撃受けてた。

 アメリカ入国時にブログやSNSの登録求められるような世の中だし、何か出来ることはないかと考えたんだけど(別に悪いことしないけど)、どうせ、キーワードでトラップしたり、ひっかかるとログ保存されるようなシステムだろうから、簡単に解読出来るとしてもキーワードでひっかかりにくくすれば良いんじゃねと思い、このブログに投稿するシステムに少し悪あがきしてみた。

ちなみにちょっと前に相談したけど、復元時に、WAVE DASH問題とか言って、JavascriptがShift-JIS→utf-8変換時に「〜」の変換を間違って、ff5eとして送られてくるので、unicode表に乗っている301cに書き換えるというプロセスを入れています。

いんたーねっとの偉い人、コメント、ご指導あったらよろしく。

●原理
Webから送信(GET/POST)する時に、Javascriptでプチ暗号化して、それを送信、サーバー側で復元する。具体的には「あいうえお」って送られるところが「19A1,19A2,19A3,19A4,19A5」みたいな文字列にブラウザにより変換されて送信される。

これだと暗号キーは公開されているから、少し頑張れば簡単に解読出来るだろうけど、少なくともキーワードでひっかかって、目を付けられる可能性は減ると思う

●HTML側(HTML部分)
<form method="post" action="xxx.cgi">
<input type="text" id="commentdummy" value=""> ※入力される部分、nameが無いので送信されない
<input type="hidden" name="comment" value=""> ※実際に送信される部分、非表示
<input type="button" value="send" onclick="return chk(this.form)">※送信ボタン、Javascriptを呼び出すだけ
</form>
●HTML側(Javascript部分)
<script type="text/javascript">
var str2array = function(str) { ※プチ暗号化部分、文字ごとに文字コードを2倍して16進数にして、カンマでつなげているだけ
var array = [],i,il=str.length;
for(i=0;idummy=str.charCodeAt(i)*2;
array.push(dummy.toString(16));
}
return array;
};
function chk(frm){※送信ボタンで呼び出される、commentdummyに入力された内容をプチ暗号化してcommentに入れて、送信する
frm.elements["comment"].value=str2array(document.getElementById('commentdummy').value);
frm.submit();}
</script>

Category:Perl・Javascript・python、サーバー管理メモ

 Keyword:nico/33 nico./35 Java/40 ブログ/175 SNS/102 アメリカ/478



コメント

いいっすね!
001 [01.27 12:48]通りすがり@Plala:peer to peer でのHTTPSを解読することは基本的に不可能です。Proxy対策で、悪あがきするならば、VPN over HTTP とかのほうが、よいかと。
002 [01.27 13:02]002@NetHine:それって、他国にサーバーが在れば送んのは簡単で不明解読後の中国受信の考えではないんですかね。中国から送りたいか受信したいでやり方が変わるんでないでしょうか。
003 [01.27 13:09]002@NetHine:言葉足らずで申し訳ないです。他国のサーバー(グーグルなんか)に、解毒置いとけば。。間違ってたらすみません。
004 [01.27 13:37]匿名さん@OCN:前の記事?で当たり前すぎて誰も詳しい突っ込み入れなかったから管理人の妄想が広がったのか・・・
005 [01.27 23:53]匿名さん@Dion:いくらリクエストいじってもレスポンスが平文なら意味ないような気が…。それに国レベルでやっていることですから、下手に暗号文っぽいものをやり取りしている方が目付けられると思いますよ。「木の葉を隠すなら森の中」です。
006 [01.30 21:30]uspkt@OCN:httpsはPCにプレインストールされてるルート証明書以外の(不正な)証明書突っ込まないとman-in-the-middle出来ないってば。それなしで出来るって事は、秘密鍵の解読に成功してるって事だからproxy関係ない。不正なルート証明書入れた場合は、SSLは台無しにされるのでproxy通さなくても危険になる。

名前 ↑B

コメント(※改行は省略されます)

※3回以上の連続書き込み不可
この記事のアクセス数:


→カテゴリー:Perl・Javascript・python、サーバー管理メモ(記事数:75)
アクセス数の多い記事(過去1ヶ月)

すべて見る

nico
Java
SNS
中国
nico.
アメリカ
ブログ