ラベル 符号・暗号 の投稿を表示しています。 すべての投稿を表示
ラベル 符号・暗号 の投稿を表示しています。 すべての投稿を表示

2009年2月28日土曜日

任意のディレクトリ以下のファイル全部でメッセージダイジェスト(ハッシュ) を取得

メモエントリ
 
 

find でフルパスを貰って、xargs に投げるというだけだがメモ。
 

# find /etc -type f -exec ls -1d {} \; | xargs openssl dgst -sha1
 
"/etc" 以下で 属性がファイルのものをフルパス表示させて片っ端から openssl に投げてハッシュを出力する。
(これは sha1 でやってるけど、デフォルトの md5 のほうがはるかに早いです)
 

"/etc" 出力例
SHA1(/etc/logrotate.conf)= 7b323754d7a2235d2af27d033d0d9f4bc04d702d
SHA1(/etc/pcmcia/config.opts)= 0a5c34714920af23596fbf8b7e88ae8b1a32e9d3
SHA1(/etc/scsi_id.config)= fa2ed8a92d90c965842f2e5ca763fc02a89672f3
-- snip --
SHA1(/etc/modprobe.d/modprobe.conf.dist)= 950ba44077e82aaf2a17d11f2900e94cab208f8b
SHA1(/etc/modprobe.d/blacklist-firewire)= de82c03c535e9deb16aed94153883280891da2d7
SHA1(/etc/mail.rc)= 9197e3c08646d0be585103d88d041182460ca0e5

 

ディレクトリをコピーや移動して、心配な時に diff に食わせる。

2008年11月13日木曜日

ニンテンドーDS(無印)のWi-Fi接続をバッファローの Wi-Fi Gamers(WCA-G)で (がんばって)セキュアにやる

ニンテンドーDS(無印)では無線の通信暗号化方式が WEP しか使えない。
自宅に無線LANこそ導入はしているが、そこは当然 WPA(AES)を使ってる、WEPも選択できるが…ITPro:利用率7割のWEPは「1分」で破られる こんな現状なのではっきり言って使いたくない、使えない。
 
 

しかし実際に ニンテンドーDS を使う子はそんな事情なんて知ったこっちゃない、Wi-Fi やりたいと頼まれちゃあなんとかする方法を模索するしかない。なんでWiiはブリッジにならないんだよ!(言いがかり)
 

ちなみに新しい ニンテンドーDSi はWPA にきっちり対応している、それ買えって?
だって 古いDS壊れてないし DSi高いし WEBブラウザなんて余計な機能がついてる(注:もちろん制限できるんだけど…いまいち不安)しで却下、そんなにコスト掛けたくない。
 
 

で、既存の環境に影響がでないように安手のAPを追加として、これ使うことにした。

 
 

「BUFFALO Wi-Fi Gamers 無線LANアクセスポイント WCA-G」に電源スイッチを組み合わせた。


結論から言うと「電源OFFにしてWEPの脆弱性から身を守る」という運用を課すことで親子間のSLA合意した。
↓構成はこうだ。
[caption id="attachment_1045" align="alignnone" width="300" caption="写真:WCA-Gと電源スイッチ"]写真:WCA-Gと電源スイッチ[/caption]
 

子には「DSでWi-FiしたくなったらスイッチON、終わったら切ってくれ」とした。ACアダプタにくっついている電源スイッチだ、LED付き でお子様にも分かりやすくしている。
うちの環境では常時起動のマシンはない為、これで十分。 「Wi-Fi Gamers(WCA-G)」 の起動には15-20秒ほどかかるが特に気にするほどではない、ポケモンのWi-Fiセンターに突撃している間に準備は完了している。
 
 


予想以上にコンパクトサイズだった





[caption id="attachment_1046" align="alignnone" width="225" caption="写真:AirStatonとWCA-Gのサイズ比較"]写真:AirStatonとWCA-Gのサイズ比較[/caption][caption id="attachment_1047" align="alignnone" width="225" caption="写真:WCA-G持ってみた"]写真:WCA-G持ってみた[/caption]

 

すごい小さい。
 
 

初期設置は楽なもんだった、液晶小窓もよい感じだ


ニンテンドーDS は AOSS に対応している、で、 この 「Wi-Fi Gamers(WCA-G)」 もAOSSで設定するようになっている。
説明書の設定方法には「AOSSでつなぐのでこのボタン(上についてるデカいボタン)押せ」程度のことしか書いてない。
まあそれで済むからいいや。
 
液晶小窓、ステータスが表示できる。 「起動中」 → 「起動完了」 ってちゃんとわかるので今回の運用方法にかなりマッチ。
画面下のカーソルキーで少し操作できる、環境確認やチャンネル変更が可。ファームのアップデートなんかもできるようだが、発売以来新しいのは一つもないようなので確認できず。
 
 


説明書にはなぜか載ってないWEB設定画面に注意、使いではあるが…


さてこの「Wi-Fi Gamers(WCA-G)」 説明書に載ってないWEB設定管理画面がある。
 
これがとってもいただけないことに、
「root / 空パスワード」 で設定画面に入れる。
んですね、初期設定では。
 
[caption id="attachment_1048" align="alignnone" width="500" caption="画像:WEB設定画面トップ"]画像:WEB設定画面トップ[/caption]
小窓でIPアドレス確認できる仕様にしといて、これはないだろ。
 

もし「Wi-Fi Gamers(WCA-G)」 を使う場合は、
WEB管理画面のパスワードを必ず設定してください
[管理設定] → [パスワード] で変更できます。
 

AOSS なので「無線ANY許可」、DS なので「WEP」 となかなか強力なカードがそろっている中、Root空パスはアカンやろうに。
 
 

パスワードさえ設定してしまえば、WEB設定画面はそれなりに使いでがある。クライアントモニタや許可済み機器の状況も把握できる。
[caption id="attachment_1049" align="alignnone" width="500" caption="画像:WEB管理画面の一部"]画像:WEB管理画面の一部[/caption]
 

まあ自宅ではこの構成に落ち着いたが、普通にWPA(AES)なども対応しているので安手の追加APとしても十分に使える。手軽に無線AP追加したかったらいい商品なのかもしれない、小さいし。
 

くれぐれもWEBのパスワードは忘れないように、液晶でIPわかっちゃうからね。
 
 

2008年11月4日火曜日

Windows上でRPMパッケージを展開する

「RPMの中身が見たい、でも手元にLinuxがない!」
 

自宅にLinux環境を置いてないのが悪いんだが、ブログ記事を作るときにたまに困る。
Linux系のネタでは、 Google Notebook にメモってから後で記事に起こすということをよくやるが、細かいところでRPMを展開して確認することがある。
 
 

RPMの展開は意外と有名な多機能アーカイバでは対応していない、下記のツールで展開する事ができる。

XacRett(公開サイトのトップはこちら)
http://www.kmonos.net/lib/xacrett.ja.html


 
 

使い方はいたって簡単。任意のRPMパッケージを XacRett.exe にドロップすればデスクトップに展開される。
デフォルトのコンフィグファイルとか、バイナリのインストールパスとかの確認で使っています。
 
なお、 XacRett.exe を直接起動すると展開先の指定ができる、デフォルトのデスクトップから変更したい場合などは指定したらよいでしょう。(.ini ファイルができます。)
 
 

折角なのでRpmForgeのrpmforge-releaseを展開してツリーを見てみた。
rpmforge-release-0
├─etc
│ ├─apt
│ │ └─sources.list.d
│ │ rpmforge.list
│ │
│ ├─pki
│ │ └─rpm-gpg
│ │ RPM-GPG-KEY-rpmforge-dag
│ │ RPM-GPG-KEY-rpmforge-dries
│ │ RPM-GPG-KEY-rpmforge-matthias
│ │
│ ├─smart
│ │ └─channels
│ │ rpmforge.channel
│ │
│ ├─sysconfig
│ │ └─rhn
│ │ sources.rpmforge.txt
│ │
│ └─yum.repos.d
│ mirrors-rpmforge
│ rpmforge.repo

└─usr
└─share
└─doc
└─rpmforge-release-0.3.6
mirrors-rpmforge.yum
RPM-GPG-KEY-rpmforge-dag
RPM-GPG-KEY-rpmforge-dries
RPM-GPG-KEY-rpmforge-matthias
rpmforge.apt
rpmforge.smart
rpmforge.up2date
rpmforge.yum

なるほど。

2008年10月10日金曜日

30kのJpegをBase64エンコードしました、さてお幾ら?@テクネ過去問

テクニカルエンジニア(ネットワーク)平成18年過去問午前を見ていた。もちろんスライスした参考書で。


30k バイトの JPEG ファイルを電子メールに添付するとき、大体どのくらいのサイズになるでしょう。添付ファイルのエンコードは MIME Base64 が使われますよ。


という問題があり、これってそのまま以前の記事、「Base64符号化で簡単な組み合わせを編み出す」の内容が活きてくるじゃないと思って驚いた。サイズは 4/3 になる。
 

ネタ重視のエントリも事前調査・裏づけを伴うものは役に立つ事もあるのだなあ。

2008年10月7日火曜日

Base64符号化で簡単な組み合わせを編み出す

頭に結論を書いてしまうと、一番簡単なのは
UUU(平文で3文字) ⇔ VVVV(Base64で4文字)
だと思うんです。もちろん「UUUUUU」 ⇔ 「VVVVVV」 もあり。
※追記:「DDD」⇔「RERE」 も覚えやすい。
 
 

Base64への道のり


ちょっとしたテストをTelnetでしたいときに、Base64エンコードが必要なケースがある。そんなときにツールやPerlを呼ばなくても簡単にできたらよいなと思って仕組みを調べてみた。
    平文はこのようなプロセスを経てBase64文字列になる
  1. 各文字をASCIIコードに変換する

  2. 得たASCIIコードを2進数(8ビット)に変換して並べる

  3. 並んだビット文字列を6桁(6ビット)ずつ区切る、最後足りない分は0をつける

  4. 6ビットの文字列をBase64文字列変換表を参考にBase64文字列に変換する、これは一応4文字づつ

  5. できた文字列が4の倍数に満たない場合は=(イコール)をパディング、符号化完了


 

Base64変換について、普通はperl一行野郎などで変換してもらう。
$ perl -MMIME::Base64 -e "print &MIME::Base64::encode_base64(hogehoge);"
encode_base64関数でhogehogeを変換して表示する。自分用メモ

 

最小公倍数の24ビットを軸にする


変換の仕組を調べて、暗算するには相応の努力が必要だということが分かったので楽な方法を考えることにした。。
 
「ASCII = 8ビット」、「Base64 = 6ビット」 ということは公倍数の24ビットの所で丁度キリがよくなる。
つまり平文3文字をBase64で符号化すると4文字になり、その組み合わせは1対1と言うことになるので、Base64変換表からよさそうなのを探す。
 
「010101 = V」
 
これならどこで切っても同じになる、これがよさそう。
 
 

変換して確かめる


さて、Base64なので4文字並べて「VVVV
これをそれぞれ6ビットに変換して「010101 010101 010101 010101」
8ビットに繋ぎかえて「01010101 01010101 01010101」
ASCIIに変換すると「UUU
 
 

3文字単位ならいくら並べてもOK、たまに使い道があるかもしれない。他にも簡単な組み合わせがあったら是非教えて欲しいですね。
 
 

まとめ


結局、Basic認証ではコロンがいるし、メールアカウントではアットマークが必要なことが多い、それがネックだ。
一応3文字のユニットとして扱えば覚えておけないこともないかも知れないので書いておこう。
 

U:U = VTpV
U@U = VUBV
 

よし、メールは複数ドメイン環境では無理だな。