YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-05-13 (月)


[一語一絵/IT系]

Basic認証の落とし穴 / 2015-05-22 (金)

とある案件で[External]RESTAPIによる"ユーザ認証"の振舞いを確認しようとして、予てより[External]Apache HTTP Serverに登録してあるユーザアカウントを流用して検証していたのだが、期待とは裏腹に"401:認証エラー"とならない事があった。

具体的には、"PaSsWoRd"というパスワード設定に対して"PaSsWoRdXyZ"を与えたのに「認証OK」と判断されてしまったので、「何か設定しくじってるのかな~?」とググったら、[External]【apache】ベーシック認証で8文字以上の長いパスワードを設定するときの注意というのを発見。

確かに[External]htpasswd - Manage user files for basic authenticationの「Security Considerations(セキュリティ考慮事項)」には

When using the crypt() algorithm, note that only the first 8 characters of the password are used to form the password. If the supplied password is longer, the extra characters will be silently discarded.
ざっくり意訳すると
crypt()アルゴリズムを使用する場合、パスワードの最初の8文字分しか使用されないことに注意してください。与えられたパスワードが長い場合、余分な文字は黙って破棄されます。
と書いてあったよ。

Windows版の場合は[External]MD5アルゴリズムがデフォルトとなっている事から最初の8文字の呪縛は無いそうなので、Linux版も[External]MD5をデフォルトにしなくちゃダメでしょ、と思ってUbuntu 14.04のhtpasswdを確認したところ

yano@GT110b:~$ htpasswd -nb userhoge password
userhoge:$apr1$UQ0/lsy.$gpZwn.kvveLE5pYxs5eaW.

yano@GT110b:~$ htpasswd -nb userhoge passwordXYZ
userhoge:$apr1$jpjd1bYr$Wv/R7ai0xF6j.v6HAMe4s0

…と異なる結果になったので、「おや?」と思いhelpをみたところ
yano@GT110b:~$ htpasswd --help
Usage:
        htpasswd [-cimBdpsDv] [-C cost] passwordfile username
        htpasswd -b[cmBdpsDv] [-C cost] passwordfile username password

        htpasswd -n[imBdps] [-C cost] username
        htpasswd -nb[mBdps] [-C cost] username password
-c  Create a new file.
-n  Don't update file; display results on stdout.
-b  Use the password from the command line rather than prompting for it.
-i  Read password from stdin without verification (for script usage).
-m  Force MD5 encryption of the password (default).
-B  Force bcrypt encryption of the password (very secure).
-C  Set the computing time used for the bcrypt algorithm
     (higher is more secure but slower, default: 5, valid: 4 to 31).
-d  Force CRYPT encryption of the password (8 chars max, insecure).
-s  Force SHA encryption of the password (insecure).
-p  Do not encrypt the password (plaintext, insecure).
-D  Delete the specified user.
-v  Verify password for the specified user.
On other systems than Windows and NetWare the '-p' flag will probably not work.
The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.
yano@GT110b:~$
という結果となり、デフォルトMD5になっている事が確認できたので、今回最初の8文字分しか効かなかったのは、10年近くも昔の設定を安易に使い回してきたのが原因のようだ。

何はともあれ[External]MD5アルゴリズムで/etc/apache2/htpasswdを再設定してOK。サーバー乗り換えなどで気付くチャンスは幾度もあったのに、急いて手抜きしてると見逃す事が多くて良くないな~、という事を再確認。

【参照】
●softelメモ https://www.softel.co.jp/
【apache】ベーシック認証で8文字以上の長いパスワードを設定するときの注意 2010年11月30日
●Apache HTTP Server http://httpd.apache.org/
Version 2.4:htpasswd - Manage user files for basic authentication
●Wikipedia http://ja.wikipedia.org/wiki/
REST
Apache
Basic認証
Digest認証
MD5


[一語一絵/IT系]

US-KBDキタ / 2015-05-21 (木)

2月に発表された新生[External]VAIO Z

ホワイト英字配列
[External]PC Watch記事より

「VAIO Z Canvas」の正式発表に合わせて[External]「VAIO Z」の英語キーボードオプション追加が発表された。

先月、わざわざ「英語キーボード載せてよ!」と書いた甲斐があったな。

すでに購入したユーザー向けにもキーボードの交換サービスを1万円で提供する
という対応も良心的で高く評価したい。

ただ、[External]ThinkPad T450sではプラス1,000円程の差額なのに、「VAIO Z」のプラス5,000円という価格設定はちょっと一言申し上げたくなるのだが、ワールドワイドで捌けるボリュームを考えると単価高になるのは致し方ないのかな…

【参照】
●マイナビニュース http://news.mynavi.jp/
VAIO製品のタッチ&トライができる「VAIO Cafe」、VAIOグッズも販売決定! 2015年5月1日
クリエイター向けタブレット「VAIO Z Canvas」が29日発売、約25万円から 2015年5月21日
「VAIO Z」に英語配列キーボード登場、既存ユーザーも有償交換可 2015年5月21日
【レビュー】VAIOウォッチャーが試す「VAIO Z」ロードテスト 2015年5月21日
●PC Watch http://pc.watch.impress.co.jp/
クリエイター向けタブレット「VAIO Z Canvas」が正式発表 ~CPUは8スレッド、SSDは3.2GB/secのモンスタータブレット 2015年5月21日
VAIO Zに英語キーボード仕様が追加 ~既存ユーザーにキーボード交換サービスも実施 2015年5月21日
●Engadget 日本版 http://japanese.engadget.com/
VAIO Z Canvas は5月29日発売、25万円前後から。ペン対応のクリエイター向けタブレット PC 2015年5月21日
vaio Z Canvas動画レビュー。怪物級タブレットPCのベンチマーク計測、気になるファン音などチェック 2015年5月21日
●My Sony Club http://www.sony.jp/msc/
モンスターPC VAIO® Z
●VAIO https://vaio.com/
VAIO Z
VAIO Z Canvas
●Wikipedia http://ja.wikipedia.org/wiki/
VAIO株式会社
VAIO


[一語一絵/IT系]

mt7610uをDKMSに / 2015-05-21 (木)

先日mt7650u_staモジュールで[External]PLANEXのGW-450D[External]ELECOMのWDC-433SU2MBKを動かす事に成功したので、[External]mediatek_mt7610u_sta_driver_linux-64bitドライバをDKMS化しておく事に。

apt-getdkmsパッケージをinstallした後、まずはmediatek_mt7610u_sta_driver_linux-64bitフォルダを/usr/src配下にコピー。

yano@T60:~$ sudo apt-get install dkms
yano@T60:~$ cp -pr ~/mediatek_mt7610u_sta_driver_linux-64bit /usr/src/mt7610u-20150318
次に、dkmsの設定ファイル/usr/src/mt7610u-20150318/dkms.confを作成します。
yano@T60:/usr/src$ sudo vi /usr/src/mt7610u-20150318/dkms.conf
PACKAGE_NAME="mt7610u"
PACKAGE_VERSION="20150318"
CLEAN="make clean"
MAKE[0]="make KERNELVER=${kernelver}"
BUILT_MODULE_LOCATION[0]="os/linux"
BUILT_MODULE_NAME[0]="mt7650u_sta"
DEST_MODULE_LOCATION[0]="/kernel/drivers/net/wireless"
AUTOINSTALL="yes"
続いてdkms.confで対象kernel版数を指定できるようMakefileの"$(shell uname -r)"を変数"$KERNELVER"に書き換え、
yano@T60:/usr/src$ diff -u ~/mediatek_mt7610u_sta_driver_linux-64bit/Makefile ./mt7610u-20150318/
--- ~/mediatek_mt7610u_sta_driver_linux-64bit/Makefile 2015-05-18 12:35:14.000000000 +0900
+++ ./mt7610u-20150318/Makefile 2015-05-21 15:19:09.465401780 +0900
@@ -1,3 +1,5 @@
+KERNELVER=`uname -r`
+
ifeq ($(WIFI_MODE),)
RT28xx_MODE = STA
else
@@ -196,12 +198,12 @@

ifeq ($(PLATFORM),PC)
# Linux 3.x
-LINUX_SRC = /usr/src/linux-headers-$(shell uname -r)
+LINUX_SRC = /usr/src/linux-headers-$(KERNELVER)
# Linux 2.6
-# LINUX_SRC = /lib/modules/$(shell uname -r)/build
+# LINUX_SRC = /lib/modules/$(KERNELVER)/build
# Linux 2.4 Change to your local setting
#LINUX_SRC = /usr/src/linux-2.4
-LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/
+LINUX_SRC_MODULE = /lib/modules/$(KERNELVER)/kernel/drivers/net/wireless/
CROSS_COMPILE =
endif

@@ -217,7 +219,7 @@

ifeq ($(PLATFORM),INF_TWINPASS)
# Linux 2.6
-#LINUX_SRC = /lib/modules/$(shell uname -r)/build
+#LINUX_SRC = /lib/modules/$(KERNELVER)/build
# Linux 2.4 Change to your local setting
LINUX_SRC = /project/stable/twinpass/release/2.0.1/source/kernel/opensource/linux-2.4.31/
CROSS_COMPILE = mips-linux-
@@ -247,7 +249,7 @@

ifeq ($(PLATFORM),INF_AMAZON_SE)
# Linux 2.6
-#LINUX_SRC = /lib/modules/$(shell uname -r)/build
+#LINUX_SRC = /lib/modules/$(KERNELVER)/build
# Linux 2.4 Change to your local setting
LINUX_SRC = /backup/ifx/3.6.2.2/source/kernel/opensource/linux-2.4.31
#CROSS_COMPILE = mips-linux-
最後にdkmsコマンドでadd/installすれば良い。
yano@T60:/usr/src$ sudo dkms add -m mt7610u -v 20150318

Creating symlink /var/lib/dkms/mt7610u/20150318/source ->
                 /usr/src/mt7610u-20150318

DKMS: add completed.
yano@T60:/usr/src$ sudo dkms install -m mt7610u -v 20150318

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
make KERNELRELEASE=3.13.0-29-generic KERNELVER=3.13.0-29-generic...............................
cleaning build area....

DKMS: build completed.

mt7650u_sta.ko:
Running module version sanity check.

Good news! Module version 3.0.0.2 for mt7650u_sta.ko
exactly matches what is already found in kernel 3.13.0-29-generic.
DKMS will not replace this module.
You may override by specifying --force.

depmod......

DKMS: install completed.
yano@T60:/usr/src$

【参照】
●Gunlance Network http://www.aozorawaon.com/
UbuntuでELECOMのWi-FiアダプタWDC-433SU2Mを使う 2015年2月15日
DKMSでドライバを自動ビルドする 2015年2月28日
●Git and Mercurial code management for teams https://bitbucket.org/
sanrath / MediaTek_mt7610u_STA_driver_Linux 64bit
●Amazon.co.jp https://www.amazon.co.jp/
ELECOM 無線LANアダプタ 433Mbps 11ac ブラック WDC-433SU2MBK 1,745円
【Amazon.co.jp限定】PLANEX 無線LAN子機 (USBアダプター型) 小型モデル 11ac/n/a/g/b 433Mbps MacOS X10.10対応 FFP-450D (FFP) 1,694円


[一語一絵/IT系]

Kickstarterの功罪 / 2015-05-20 (水)

[External]わずか1000円の激安コンピューター「CHIP」

Kickstarter
[External]Kickstarterより

2万6000人の出資者により、調達目標の5万ドルに対して27倍の135万ドルを集めたそうだ。

あくまでも出資者への提供を前提とした予定価格という事であり、実際の販売目標が1,000円ほどというわけでは無い。

無闇に出資者を集め過ぎると実際の資材調達や量産自体が困難になり、[External]Kickstarterで5000万円以上の出資を集めるも中止・返金措置に至ったプロジェクトのようになる心配もあるので、成り行きを注目したい。

人気があるからと言って、手放しで喜んでばかりもいられない。

【参照】
●INTERNET Watch http://internet.watch.impress.co.jp/
【やじうまWatch】お値段なんと約1000円、超小型のLinux PCにKickstarterで注文殺到 2015年5月11日
●ITmedia http://www.itmedia.co.jp/
約1000円の超小型コンピュータ「C.H.I.P.」登場 1GHzプロセッサにWi-Fi&Bluetooth搭載 2015年5月11日
●クラウド Watch http://cloud.watch.impress.co.jp/
【Infostand海外ITトピックス】“9ドルコンピューター”の衝撃 クラウドファンドに飛び出した「CHIP」 2015年5月18日
●GIGAZINE http://gigazine.net/
「Kickstarter」へ出資してゲットする方法&出資しまくった経験からわかった注意点まとめ 2014年1月3日
約600億円を世界中から集めてアイデアを現実にしたKickstarterプロジェクト2014年まとめ 2015年1月6日
Kickstarterで5000万円以上の出資を集めるもプロジェクト中止・返金措置に至ったチームが学んだこととは? 2015年3月5日
AmazonがKickstarterで成功した製品を集めた「Amazon Exclusives」ストアを開店 2015年3月12日
Kickstarterでこれまで最も多くの出資額を集めたプロジェクトは何か? 2015年4月14日
わずか1000円の激安コンピューター「CHIP」とは? 2015年5月8日
●Wikipedia http://ja.wikipedia.org/wiki/
クラウドファンディング
Kickstarter


[一語一絵/IT系]

11acなLinux Wifi / 2015-05-19 (火)

LinuxなWifi環境に、802.11acな[External]PLANEXのGW-450D[External]ELECOMのWDC-433SU2MBKを動かす為のメモを追加。

製品名VID:PIDコントローラドライバ使用可否
GW-US54GXS2019:5303zd1211bzd1211rw
GW-USMicroN2019:ed14RT3070-×
GW-USWExtreme2019:ed17RTL8188CUSrtl8192cu
GW-US300MiniS2019:ab24RT2870rt2800usb
WLI-UC-GN0411:015dRT3070rt2800usb
WLI-UC-GNM0411:01a2RT8070rt2800usb
WLI-UC-GNM20411:01eeRT3070rt2800usb
WDC-433SU2M7392:b711MT7610Umt7650u
GW-450D2019:ab31MT7610Umt7650u
[External]PLANEXの無線LANアダプターにLinux用のドライバーがリリースされた!という記事を見つけたので、調べてみたところ[External]Raspberry Piで11ac無線LAN子機『GW-450D』を使うための設定方法を発見。[External]無線LAN USBアダプタ(開発者向け情報)によると[External]GW-450D[External]ELECOMのWDC-433SU2MBKは同じ[External]MediaTek[External]MT7610U USBという事なので、802.11acなところにもチャレンジする事に。

ちなみに[External]GW-450D KATANAもUSBデバイス情報は全く同じなので[External]GW-450Dのアンテナ強化版という事になるらしい。逆に[External]WDC-433SU2MBKと同じ5GHz専用の超小型版である[External]GW-450Sの方は"RTL8811AU"というのは意外だった。こちらは[External]PLANEX GW-450S 手裏剣を Ubuntu 14.04 で使用するが参考になりそうだ。

取り敢えず[External]UbuntuでELECOMのWi-FiアダプタWDC-433SU2Mを使うを参考にトライしてみたが、GW-450Dを認識して"ra0"インタフェースはできるものの一向にリンクアップする気配が無い。[External]Elecom WDC-433SU2Mで802.11acな通信を実現したのかわからないけどとりあえず動いたによると、大変残念な事に[External]MediaTek提供のMT7610U USBドライバx86-64非対応という事らしい。

しかし、[External]x86_64 Linux上でELECOM WDC-433SU2Mを用いて802.11acな通信を実現するによると、有志によるx86-64対応のforkが公開されているという事なので、https://bitbucket.org/sanrath/mediatek_mt7610u_sta_driver_linux-64bit.gitから入手し、下記の修正を適用して[External]Ubuntu 14.04.2 LTS (Trusty Tahr)のdesktop(AMD64)で動作させる事ができた。

diff --git a/Makefile b/Makefile
index 25d87aa..72eab8e 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ endif
# rt8592(for rt85592), mt7650e, mt7630e, mt7610e, mt7650u, mt7630u, mt7610u

ifeq ($(CHIPSET),)
-CHIPSET = mt7610u
+CHIPSET = mt7650u mt7630u mt7610u
endif

MODULE = $(word 1, $(CHIPSET))
@@ -195,8 +195,10 @@ CROSS_COMPILE = mips-wrs-linux-gnu-
endif

ifeq ($(PLATFORM),PC)
+# Linux 3.x
+LINUX_SRC = /usr/src/linux-headers-$(shell uname -r)
# Linux 2.6
-LINUX_SRC = /lib/modules/$(shell uname -r)/build
+# LINUX_SRC = /lib/modules/$(shell uname -r)/build
# Linux 2.4 Change to your local setting
#LINUX_SRC = /usr/src/linux-2.4
LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/
diff --git a/common/rtusb_dev_id.c b/common/rtusb_dev_id.c
index 061362a..2fcab21 100644
--- a/common/rtusb_dev_id.c
+++ b/common/rtusb_dev_id.c
@@ -38,6 +38,8 @@ USB_DEVICE_ID rtusb_dev_id[] = {
#ifdef MT76x0
        {USB_DEVICE(0x148F,0x7610)}, /* MT7610U */
        {USB_DEVICE(0x13B1,0x003E)}, /* MT7610U */
+    {USB_DEVICE(0x7392,0xb711)}, /* ELECOM WDC-433SU2M */
+    {USB_DEVICE(0x2019,0xAB31)}, /* PLANEX GW-450D/KATANA */
        {USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7630, 0xff, 0x2, 0xff)}, /* MT7630U */
        {USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7650, 0xff, 0x2, 0xff)}, /* MT7650U */
#endif
diff --git a/conf/RT2870STA.dat b/conf/RT2870STA.dat
index 0240bd5..172df59 100644
--- a/conf/RT2870STA.dat
+++ b/conf/RT2870STA.dat
@@ -1,12 +1,12 @@
#The word of "Default" must not be removed
Default
-CountryRegion=5
-CountryRegionABand=7
-CountryCode=
+CountryRegion=1
+CountryRegionABand=1
+CountryCode=JP
ChannelGeography=1
-SSID=11n-AP
+SSID=
NetworkType=Infra
-WirelessMode=8
+WirelessMode=14
EfuseBufferMode=0
Channel=0
BeaconPeriod=100
build手順は以下の通り。
yano@T60:~$ git clone https://bitbucket.org/sanrath/mediatek_mt7610u_sta_driver_linux-64bit.git
yano@T60:~$ cd ~/mediatek_mt7610u_sta_driver_linux-64bit
yano@T60:~/mediatek_mt7610u_sta_driver_linux-64bit$ ~~ 上記差分の適用 ~~
yano@T60:~/mediatek_mt7610u_sta_driver_linux-64bit$ make
yano@T60:~/mediatek_mt7610u_sta_driver_linux-64bit$ sudo make install
[External]PLANEXのGW-450Dを差してみたところ、
yano@T60:~$ lsmod | grep mt7650u_sta
mt7650u_sta           145174  0
yano@T60:~$ iwconfig ra0
ra0       Ralink STA  ESSID:"1F11a-TESTWIFI"  Nickname:"MT7610U_STA"
          Mode:Managed  Frequency=5.22 GHz  Access Point: 00:22:CF:E3:26:39
          Bit Rate=433.5 Mb/s
          RTS thr:off   Fragment thr:off
          Link Quality=100/100  Signal level:-56 dBm  Noise level:-92 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

yano@T60:~$
…という事でmt7650u_staドライバがロードされて"ra0"インタフェースができていれば良い。リンク速度は"433.5 Mb/s"と11acなりに動いてるらしい事はわかったので、試しに"WirelessMode=9"で11g/nにしてやり直したところ、
yano@T60:~$ iwconfig ra0
ra0       Ralink STA  ESSID:"1F11b-TESTWIFI"  Nickname:"MT7610U_STA"
          Mode:Managed  Frequency=2.457 GHz  Access Point: 00:22:CF:E3:26:36
          Bit Rate=135 Mb/s
          RTS thr:off   Fragment thr:off
          Link Quality=100/100  Signal level:-32 dBm  Noise level:-68 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

yano@T60:~$
…という事でリンク速度は"135 Mb/s"となったものの、どちらのモードでもiperfで70~90Mbps程度のスループットとなった。

[External]ELECOMのWDC-433SU2MBKも差し替えただけで11acなリンク速度"433.5 Mb/s"で接続し、iperfで90Mbps以下、と[External]PLANEXのGW-450Dと同等であった。

ただ昨年1月のWDC-433SU2MBK導入時に測定した145~157Mbpsよりも随分残念な感じかな…と思ったのだが、前回は2010年製Core i7-640LM(2.0→2.8GHz)のThikPad X201sだったのに対して今回は2006年製Intel Core Duo T2500(2GHz)搭載のThikPad T60だったのでそもそもの性能が違う事から、ThikPad T60Windows XPでも試したところ[External]ELECOMのWDC-433SU2MBKで50~60Mbps、[External]PLANEXのGW-450Dで30~40Mbpsだったので、どちらかというと70Mbps以上出したLinux版ドライバの方が頑張ってるという事になりそうだ。

いずれもpingで時折秒オーダの遅延が発生していたのがちょっと気になるのだが…

【参照】
●Ubuntu日本語フォーラム https://forums.ubuntulinux.jp/
PLANEXの無線LANアダプターにLinux用のドライバーがリリースされた! 2013年11月18日
●プラネックス http://www.planex.co.jp/
カッ飛び! 11ac/n/a/g/b 433Mbps USB2.0対応無線LAN子機 GW-450D
無線LAN USBアダプタ(開発者向け情報)
Raspberry Piで11ac無線LAN子機『GW-450D』を使うための設定方法
●WikiDevi https://wikidevi.com/wiki/
Elecom WDC-433SU2M
Planex GW-450D
●パリッと行こう! http://paritparit.blogspot.com/
Planex GW-450Dをlinuxで使う 2013年8月21日
●カメノドットコム http://kame-no.com/
GW-450D KATANA を Debian で使ってみる
●どせいけいさんき。 http://xr0038tech.hatenadiary.jp/
PLANEX GW-450S 手裏剣を Ubuntu 14.04 で使用する 2015年1月30日
●Gunlance Network http://www.aozorawaon.com/
UbuntuでELECOMのWi-FiアダプタWDC-433SU2Mを使う 2015年2月15日
DKMSでドライバを自動ビルドする 2015年2月28日
●テクニカルプア http://nosada.hatenablog.com/
Elecom WDC-433SU2Mで802.11acな通信を実現したかった 2014年5月31日
Elecom WDC-433SU2Mで802.11acな通信を実現したのかわからないけどとりあえず動いた 2015/03/08 追記
●grafi.jp http://grafi.jp/
x86_64 Linux上でELECOM WDC-433SU2Mを用いて802.11acな通信を実現する 2015年3月10日
●Git and Mercurial code management for teams https://bitbucket.org/
sanrath / MediaTek_mt7610u_STA_driver_Linux 64bit
●Amazon.co.jp https://www.amazon.co.jp/
ELECOM 無線LANアダプタ 433Mbps 11ac ブラック WDC-433SU2MBK 1,745円
【Amazon.co.jp限定】PLANEX 無線LAN子機 (USBアダプター型) 小型モデル 11ac/n/a/g/b 433Mbps MacOS X10.10対応 FFP-450D (FFP) 1,694円