Kindle2国際版のSIMを検証してみた。
最初に断っておくが、全てのkindle hack系ブログでも書かれている通り、文鎮化の危険がある。また、分解により保証を受けられない恐れもある。そしてAT&T、amazonが不正な通信をしているSIMをロックする可能性もある。試してみようと思う人は覚悟して行ってもらいたい。

そのままSIMフリー端末(iPhone3G OS3.01 JB Ultrasn0wによるSIM Free端末)に挿し込んでみたが、通話は勿論の事、データー通信もできなかった。SIM自体に電話番号も振られていないようだ。最初にkindle2SIMをiPhoneに挿して検証された代助のブログさん、kindle2まとめを書かれているをぢの日記さんの記事にも書かれている通り、キャリアはAT&Tで、私の環境ではドコモローミングをしているようである。


# また、余談だが、この作業中に解った事だが、kindle2はどうやらSIM Freeであるようだ。ドコモSIMもSoftbank SIMも認識した。意味は無いかもしれないが、APNを正しく設定すると通信できる可能性はある。逆に言えば、下記で書いたように外部からアクセスできないkindle2がSIMを変えることによりhttp鯖やftp鯖として使用できる可能性もある事はある。kindle2の通信無料という魅力とのトレードオフになるが。

 

-----
まず最初にkindle2のネットワークの状況であるが、Setting>611を見ると10.x.x.xのクラスAのプライベートアドレスが振られている。
そして、内蔵のブラウザからのアクセスを調べてみると、8.18.145.0/24のアドレスにてアクセスしている。
このアドレスはwhoisすると
OrgName:    Amazon Inc. 
OrgID:      AMAZON-5
NetRange:   8.18.145.0 - 8.18.145.255 
CIDR:       8.18.145.0/24 
NetName:    LVLT-AMAZON-5-8-18-145
NetHandle:  NET-8-18-145-0-1
Parent:     NET-8-0-0-0-1
NetType:    Reassigned
という事で、amazonのアドレスである事がわかる。
つまり、kindle2自体にはプライベートが割り振られ、amazonのネットワークを経由して外部にアクセスしている事がわかる。

次に kindle2 USB Network hack を行って、kindleの中を覗いてみた。

Linuxでppp接続をする設定通りの所に、APN設定ファイル等があった。

# define PDP context 1
OK 'AT+CGDCONT=1,"IP","xxxxxxxxx.xxxxxx.com","",0,0'

まず、APNをiPhoneに設定する事で、kindle2で割り振られるセグメントのプライベートアドレスを得ることは出来た。
だが、このままではiPhoneから外に出る事が出来ない。

そこで、ある場所に設定しているproxy関連のファイル

HTTP_INSERTION_PREFIX : xxxxx
HTTP_PROXY_HOST : xxxxxxx.xxxxxx.com
HTTP_PROXY_PORT : 80
HTTP_NON_PROXY_HOST : *.xxxxxx.com|*.xxxxxx-xxxxxx.com
HTTPS_PROXY_HOST : xxxxxxx.xxxxxx.com
HTTPS_PROXY_PORT : 80
HTTPS_NON_PROXY_HOST : *.xxxxxx.com|*.xxxxxx-xxxxxx.com

を参考に、kindle2のブラウザと同じ環境(Port80での通信)をiPhoneで再現するべく、iPhoneのpreferences.plistを書き換え、UAFakerにてkindleのUAに偽装し、proxy.pacに、上記のproxy関連の設定を書き込みiPhoneのSafariにて通信した結果

の様に、とりあえず、iPhoneから出る事が出来たが、amazonのプライベートネットワークからは出る事が未だ出来ていない。www.amazon.comにアクセスしても同じ画面であった。
iPhone Safariの画面表示"There is a problem with your Kindle account.Please call Amazon Customer Service at 電話番号"から見るに、Proxyでのaccount認証の可能性を含め、iPhoneの3G環境のDNS設定、Default Gateway設定等、現状、もう少しの考察が必要なようだ。

尚、この実験を試した時、自鯖へのPPTP VPN接続を試してみたが、接続は不可能であったし、鯖のログには一切記録されていなかった。よって、port1723も到達が不可能なようだ。(尚、この結果は、DNSがきちんと設定されていない場合は、自鯖はドメインで指定しているので意味がない。)

本来ならば、iPhoneへSSH接続した上で色々試してみたかったのだが、該当端末にはOpenSSHを入れていなかったので、不可能であった。

以下、kindle2にてifconfig と netstat -nr の結果

ifconfig
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.178.80.xx P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:112 (112.0 B) TX bytes:64 (64.0 B)

netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 usb0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0

である。"usb0"は、USB Network hackにて作られたネットワーク、"ppp0"はamazonとのネットワークなので、上記から見る以上では、VPNも行っていない様であるし、Proxyarpも行っていない様に見える。

その後、proxy等の設定ファイル内に、"REGISTER_COMMAND_EMAIL"等の記載に気が付いた。
これは、kindle storeでの認証に必要な記述なのか、そもそもamazonネットワークに入るために必要な物なのかtcpdump等で通信内容の確認が必要だと思われる。
iPhone Safariでのアクセスの際、エラーメッセージが、"There is a problem with your Kindle account."であった。accountに問題がある旨だと思われるので、ネットワーク内でなんらかの認証が行われている事が考えられると思う。

しかし、認証に使う場所にはなんの記載もなかった。iPhoneにAPN設定後、プライベートアドレスが割り振られる事からも考えるに、接続時には認証は行われていないと思われる。

以上の事柄と、Proxy関連の設定ファイルの内容から、amazonネットワークに接続した後に認証されていると思われる。

よって、iPhoneにてkindleSIMを使用するためには、アプリケーション的に認証を行うか、内部的に認証を行う方法を取る必要があると思われる。

#上記の内容には、固有番号についての検証はまったく行っていない事を最後に記述しておく事とする。



index