インターネット上の情報からどこまで個人を特定出来るのか

こんちゃ。洋梨🍐です。

まれにソーシャルメディア上で「IPアドレスからお前ん家特定したわwww」とか言ってる人居たりしますが、実際インターネット上から得られる情報でどこまで特定(個人で)できるかを実際やってみながら解説したいと思います。

IPアドレスから特定

よくネット上で特定元として言われる「ipアドレス」。果たしてこれを使えば特定が可能なのか?

結論から言うと、「これだけで個人特定は不可能(個人では)」です。

しかし、強い手がかりの1つとなるのは確かです。

例えばグローバルIPアドレスから個人は特定できないが、同一人物かは特定できます。

つまりこういう事です。

例えばTwitterで例えると、裏垢と本垢のIPアドレスは同じです。これは手掛かりになりますね。

しかし、IPアドレス(グローバルIP)は環境・状況で変わるので注意が必要です。

ちなみにphpでのipアドレスの取得方法は次の通りです

その他得られる情報から特定

URLを相手に踏ませることで特定できる情報はいくつかあります。(ipアドレスもその内一つです)

例えば次のものがあります

・OS、ブラウザ等 情報

・ホスト名

・使用言語

これらも確認程度くらいの多少な手掛かりになりますよね。

※ちなみにJavaScriptでのアクセスが有効な場合は かなり正確な位置情報 を取得することが出来ます。どのくらい正確かといいますと、

こんくらいです😇

んーーーーこれはまずいですね^^;

スマホからのアクセスの場合、GPSなどを使った測位なので誤差はほぼ無いに等しいでしょう。くれぐれも位置情報を共有してしまわないように気を付けましょう~

ちなみにソースコードはこんな感じです

表示された緯度経度をGoogleマップなどで検索すれば位置が地図上に出てきますよ!

ユーザー名・IDから特定

これもよくある特定のされ方なのではないでしょうか?これは「ユーザーのIDがどのSNSでも一緒な人が多い」という所から特定されるパターンです。

フォロワーから特定

これはユーザー本人が個人情報を載せてなくても、よく話している・フォロワーいる人が個人情報を乗せているせいでバレるというパターンです。

友達から情報漏洩

炎上した時によくあるパターンです。

「誰が漏らしたかなんて分からないから言っちゃお」パターンです。誰が裏切ってくるか分からないという人、気をつけてくださいね。

まとめ

IPアドレスから特定されることはない。もし「なんで特定されたんだ?」と思っている人はどこかから情報が洩れてます。いま一度見直してみてくださいね☀

※ちなみにIPアドレスに(個人では)と書いてるのはプロバイダーに問い合わせればIPから本人が割り出せるためです。なのでばれたくない通信をする人はIPを隠せるTor等使いますよね。

炎上には気を付けよう👼


ここまで読んでくれてありがとうございました!!

ホームページでは他にも

・様々な記事や作った作品および過程
・ソースコード、素材ファイル
・あらゆる”モノ”の作り方

などなど随時、記事や作品を新規公開・更新していますので是非見ていってくださいね!見ていただけると本当に嬉しいです!

ポート開放のやり方・手順

まずポート開放とは?

そもそもポート開放とは何なのか?何のためにあるのか?を簡単に説明します。

まずスマホやゲーム機などは下図のような感じにインターネットにつながっています。

そこに外部から不正なデーターなどが来たとします。これをルーターなどは防ぎます。

しかしこれは不正じゃなく正しいものも防ぎます。

つまり「このデーターは通していいよ💛」とルーターに教える必要があるという事です。それがポート開放です。

ポート開放を正しく行えばこのようにデーターが行き来できるよう
(ゲーム内ではオープンと言ったりも) になります。

※とっても簡単に説明をしてます。Google先生に聞いたほうが詳しく知れます。

で、どうやるの?やり方はよ

はい。ではポート開放のやり方に移りますね👼

まずルーターの管理者ページに飛びます。

管理者ページに飛ぶ方法はルーターのIPアドレスでアクセスするのが一般的です。(よくわからない人はルーターの名前で調べれば出てくると思います。)

ipconfig からゲートウェイ調べてアクセスするのもありかも

管理者ページにアクセスするとこのようにログインを求められるので入力します。

当方の環境ではこんな感じ
JCOMで契約するとついてくる「HUMAX ルーター」です

初期設定のIDとパスワードはルーター名で調べると出てくるのですが、大抵はID「admin」「user」のパスワード「password」などです。

ログイン後のページを探っていくと、「ポート開放」「ポート転送」
「ポートフォワーディング」 などと書かれた設定画面があると思いますので開きます。

画面が開けたら設定していきます。

まず LAN側=家・WAN側=外 という事を頭に入れといてください。

まずLAN側IPアドレスに「ポート開放をしたい端末のIPアドレス」を入力します。

※なお、PCでは「ipconfig」、PS4など家庭用ゲーム機では「接続情報」などから確認できます。

次に開放する(使用したい)ポート番号・プロトコルを入力します。

使用するポート番号・プロトコルはソフトウェア・ゲーム等により異なるため調べる必要があります。「〇〇〇 ポート番号」などで調べれば出てきます。

※参考資料: Call Of Duty Minecraft

また、ポート番号を入力する欄が2つある事が多いのですがこれは開始番号終了番号です。どういうことかというと、例えば 10000 ~ 10010 のポートを開放したいとします。その時一つ一つ設定するとなると、10個も設定しないといけなくなります。この手間を省くためにあるものです。

つまり「10000番ポートだけでいい」という人は 10000 ~ 10000 と同じにすればいいだけの話です。 なお、普通WAN側のポート番号はLAN側のポート番号と同じにします。

最後にWAN側IPアドレスですがこちらは転送元のアドレスは大抵の場合わからないのですべてのIPアドレスから受付られるようにします。すべてから受け取るには「0.0.0.0」(機器によっては255.255.255.255の場合も) を設定します。

あとは「保存」して終了です。お疲れ様でした^^


なお「設定がめんどくさいーーー」と友達に言われたのもあり、設定を楽々できるアプリを開発中です。完成次第、ここに貼りたいと思います。
なお開発は1,2週間程度の予定です👼

ダウンロードはこちら


ここまで読んでくれてありがとうございました!!

ホームページでは他にも

・様々な記事や作った作品および過程
・ソースコード、素材ファイル
・あらゆる”モノ”の作り方

などなど随時、記事や作品を新規公開・更新していますので是非見ていってくださいね!見ていただけると本当に嬉しいです!

Arduinoで始めるIoT~外から家電の操作を行うまで~

こんちゃ!洋梨🍐です。

「スマホから家電の操作したいな~」なんて思ったこと皆さん無いでしょうか?

きっとあると思います(暴論)^^

そこで今回はスマホから家電を操作する為の手順を公開したいと思います~

今回使うもの

製作環境

・Unity + C#

スマートフォン(操作)側アプリの開発に使います。今回紹介するソースコードはC#で書かれているので.NET FrameworkやXamarinでも動きますよ。(確認済)

・Arduino + C

リモコン(実行)側にはArduinoを用います。なお言語はC言語ベースです。

材料

・Arduino 本体


HiLetgo® 2個セット NEWバーション UNO R3 ATmega328P USB CH340G Arduinoと互換性 + USB ケーブル [並行輸入品]

今回の主役です。C言語を使って電子部品を扱うことができます。

・赤外線LED

リモコンの操作信号を再現するために使います。波長は 950nmに近いものを使います。※850nmでは動きませんでした。

・赤外線 受光モジュール

リモコンの操作信号を再現するために使います。

ボタン

操作用に使います。

・Wi-Fiモジュール

スマートフォンから操作したい場合、使用します。Arduinoをインターネットに接続できるようにすればいいのでイーサネットでもOK!

オプション

・IC2 OLED (128×64)

Arduinoから情報を出力(可視化)するために今回は使いました。

・コンデンサー

リモコンの光を遠くまで飛ばせるようにするとき使います。

・リレー

赤外線操作ではなくコンセント操作を使いたいときにどうぞ

仕組み

簡単なイメージ図

例えば、普通は左のようにテレビの操作にリモコンを使いリモコンがテレビに信号を送っています。

しかし、スマホで操作したくてもスマホではテレビに信号を送ることができません。

そこで今回は信号を送る部分をArduinoに肩代わりしてもらい、スマホからArduinoを操作することで間接的にテレビに信号を送るというわけです。

作成 (Arduino側)

すべて説明すると長くなってしまうため簡単な説明です。

Arduinoでは赤外線信号を保存・再生します。

受光モジュールを使いリモコンの信号を事前にキャプチャーし、スマホからの信号が届いたら赤外線LEDを用いてキャプチャーした信号を 再生すればいいというわけです。

リモコンをキャプチャーする様子

まずキャプチャー(保存)するためのソースコードです。

次に再生するためのソースコードです。

このプログラムをボタンを押したときに呼び出すようにすればボタンを押したときにキャプチャーした信号が再生されるようになります。

赤外線LEDはカメラで点灯していることを確認できる。
上のGIFは実際に再生したところ。リモコンの信号と同じ点滅をしていることがわかる。

スマホからの操作に使用する際はUDPポートを監視し、信号が流れてきたら事前に決めたパケット構造に基づき対応した信号を再生するようにした。

操作用アプリ製作 (操作側)

紹介用に部屋の電気をON・OFFにする機能だけをつけたものにしてあります。C#で書かれています。なおUnityで動作確認済みです。

メインプログラム (Unity用)

ここで使っている「UDPSystem」のスクリプトは長いため以前書いた

こちらの記事をご覧ください。UDPパケットの送信には上記事のスクリプトを汎用しています。

スマートフォンで実行したときのスクリーンショット

これでスマートフォンからUDPでのパケットの送信ができるようになったと思います。もちろんTCPを使ってもできます。(むしろそっちのほうが良いかも)

テスト

このアプリで本当に信号(パケット)が出せているのか、しっかり届いているのかは調べないとわかりません。今回は「Wireshark」というパケットキャプチャーを使い、パケットが届いているかどうか確認したいと思います。

なお、外出先など外部からパケットを送信・受信(操作)するには「ポート開放」などが必要です。プログラムではUPnPやホールパンチングなど技術を使う必要があります。UPnPは比較的簡単なのでこちらを参考にしてみてください。

今回は外部(外出先)から使う事を推定しているのでテストではスマートフォンの4G回線(Docomo)からリクエストを送信します。

テストのイメージ図

今回テストで送信するリクエストは「ID(01)の機器の電源をON(01)にする」にします。つまりUDPで送るデーターは「0101」です。

先ほどのプログラムの「case 1:」の部分です!

パケットキャプチャー

アプリでプログラムを実行すると、自宅にあるPCの「パケットキャプチャー」で見るとUDPでパケット「0101」が届いているのが確認できました。これで外部からつけることができるという事が確認できました。

まとめ

今回はIoTデバイス作りの第一歩として家電操作を行いました。

この記事は以前私がレポートとしてやったものを記事に起こしたものになりますので詳しく知りたい方は こちらからレポートをダウンロード してください~

書いている途中で面倒になってしまったのもあり、説明がいくつか抜けて分からない部分があるかもしれませんでしたがすいませんです!(> 3 <)

「よくわかんないからプロジェクトファイルくれ」「もっと詳しく記事書いて」などリクエストはメールにお願いします!


ここまで読んでくれてありがとうございました!!

ホームページでは他にも

・様々な記事や作った作品および過程
・ソースコード、素材ファイル
・あらゆる”モノ”の作り方

などなど随時、記事や作品を新規公開・更新していますので是非見ていってくださいね!見ていただけると本当に嬉しいです!

Thank You Watching💛