ヒネヒネ団

ひねくれ者の日記、9級IT技術者。同志が欲しいです

システム開発において、限りなく0は0として許されるのか?

なんか思ったんですよね。

TOTOのBIGくじで不正操作してるんではという問題があったよね。

同じ予想がされたチケットが2枚出てきたって話なんだけど、起こりえない事が起きたのでTOTOのBIGくじは不正をしている!!という問題ですね

っで確率的には10^32らしいんだけど・・・・

確かに起こりそうにない数だけど、あくまで確率で有って、起こりうる可能性はあるわけで現に起こったわけですし。。。。っということなんですが、数学的には限りなく0に近いものは0として扱うわけで、物理では限りなく0に近いものは0でないわけで、この狭間で揺れてるわけです。

大規模システムのテストをする時に無理やり起こりえないようなデータを、途中のロジックで挿入したりしてエラーを起こしたりしたことあるんですけど、それって必要だったのかは今でも謎なわけでして・・・

とういうことで皆さんに聞きたいのですが、限りなく0であるなら0として扱うでOKの場面とかを教えてください。

 

ESP8266でのIOTとかいってみる【アナログ信号からどのようにしてデジタル信号にするか】

引っ越しの為少しづつ片づけをしていると、電子部品がでるわでるわで論理回路好きなんだなと我ながら思う最近です。出来るかどうかは別

ほんで埃をかぶったESP8266が出てきましたので書いてみようと思います。

ESP8266はwifiモジュルーが一体となったマイコンですね。しかも600円とかで買えるんですんごいですよね。

 

っでESP8266は技術適合を受けてるので回路をくっつけて後はwifi接続のプログラムを書いちゃえば使えちゃうって代物です。SUGOI

ただESP8266はデジタル入力ですので、センサーを直付けすると壊れたり正しく動作しません。てか壊れます。

ではアナログなセンサーをデジタルにするにはどうするかと言うとオペアンプという部品を使いデジタル信号に変換してあげます。デジタル信号と言うのは1か0、電圧で言うと0Vと5Vということになります。

ESP8266 の場合はデジタル信号は3.2vでいいみたいですので電源電圧は5vか3vくらいあればおkですね。

あと大事な事なので、オペアンプは電源電圧をこえれません。

電源電圧とは、電池+電池-と汚く書いてある部分です。こいつが乾電池1本だと1.5vなので3.2vにたどり着くことが出来ません。なのでそこはきちんと計算しましょう・・

 

 

f:id:eboshikk:20170510015444p:plain

このPEってのは圧力センサーの事です。

つまり素子を押すと電気が流れるセンサーです。

ほんでそのあとに続く変な三角形がオペアンプです

っでここでようやくESP8266の入力端子io12に到達するんですね。

っでここからがESP8266に対するプログラミングを始めます。

 

 

f:id:eboshikk:20170510015452p:plain

全体のフローとして

1センサーから入力がある

オペアンプを通し電圧を増幅させる

オペアンプのアウトからESP8266の入力端子(I/o)に対して電気を流す。

4ESP8266は入力された信号をキャッチできる、ここからプログラミング

5あとはお好きに。

以上が大まかな流れです。これだけではIOTとは言えません・・・集められた膨大なデータを基に何をするか、どんなロジックやアルゴリズムを作るか、そして最終的にそれが人に対していい影響を与えれるか?そこまでがIOTであり、このセンサー入力をPCで表示するだけの事というのはマイコンと同じです。

 

安易にIOTと言われる方が多いですが、正直IOTと名前をうたってるだけです。ドローンやIOTこういった分野が熱病のように投資対象になり、IOTがエンドユーザーの人々が思ってるほど便利ではないという失望が生まれ、真面目に開発されてる方が損をするようなことは有ってはならないと思っております。なのでもし、皆さまがクラウドファンティングなどでIOTとうたう人達に投資するときはIOTとマイコンの差を見極めてから投資してください。

次はESP8266で出力の方法を書きます。

 

ただの製作欲求

最近、ものすごく色んな物を作ってみたい。

もう本当にプレス機とか、炭とか窯とか、バイオガスとか・・・バイオガスで動くエンジンとか・・・エンジンとか・・・発動機とか・・・

こう・・・・なんか色んなものを作りたい。

出来るなら工場のライン設計したい・・・人の手は最後の品質検査のみで最後までずーーーーーっと機械が作り続けるラインとか作ってみたい。

 

あぁ・・・レゴとか買ってきて欲求満たすかな

フェイクニュースにおける社会的な改革とブロックチェーン【ブロックチェーン利用・応用】

せっかく学んだブロックチェーン技術をふいにしたくないので、通貨以外の利用方法を考えてます・・・。

タイトルの通りフェイクニュース対策においてブロックチェーン技術を導入すべしという話なのですが・・・。

まずブロックチェーンの話について。

ブロックチェーンは前後で情報の保全性を高めます

f:id:eboshikk:20170418015603p:plain

まずこの汚い画像で説明しますと、所有者Aが所有者BにノードXを渡すとします。

そうすると所有者Aの所有履歴が書き込まれたノードXが所有者Bに渡ります。

これが1回のやり取りです。

そしてこのノードXにはAの所有権、さらに現時点での所有者Bの名前が記載されています。

つまり簡単に言うならお札に名前を書いていくようなものです。

さらにこのお札の利用履歴は管理されておりすべての人が見れる状況なのです。

つまり中央のシステムは存在せず、さらにはそのお札の通し番号台帳を全員が持ち、そこへ利用履歴、所有者情報が書き込まれていくのです。

これが仮想通貨の仕組みなのです。

 

この技術的思想を応用しますと、政府、要人発言などをノードX、第一所有者Aとしニュースの情報源とします。

するならば要人発言ノードXを第一所有者であるAが各報道機関に配布します。すると第二の所有者である各報道機関Bが各々に解釈をし勝手に要約をしたXBn1,XBn2,XBn3,XBn4,XBn.........っと情報が作られます。

すると次に視聴者C1がXBn1の情報を元にtwitterfacebookなどのSNSで発言を行います。

ここまでは通常のフローですし、追えますね。

しかし次に視聴者CがXBn1を元にまとめサイトなどを作ろうと考え2chや類似サイトに上げ曲解した記事を記載するとします。その情報XBCn1が更に掲示板を見ていたユーザーDによりXBCDn1として拡散されるとします。そうすると意図して情報を操作しようとする人がノードXAが真にもかかわらず、ノードXBCDn1を真として報道を行ったりするのである。

この様な2次的3次的ソースによる偏向を防ぐ為にもしっかりとした情報提供の仕組みを作るべきである。

正直今書いたことは、当たり前でありテクノロジーの進化により昔より遥かに簡単に1次ソースを見ることが出来るのだが、殆どの人間がgoogleの上位を正しい情報として見ているという現実があり大変危険である(キュレーションサイト問題からの考察)。

正直テクノロジーを使うには少々おそまつであるとも言えよう。

嘘を嘘と見抜けないものが安易にネットを使える現実が問題と言われれば、それでお終いであるが・・・

しかしそれでは自動車事故が起きるため自動車事故を必ず起こさな為に難解極まりない免許制度にしては、ここまで自動車文明は発展しなかっただろう。

 

以上の用な利用方法を出したところで現状の社会との問題を挙げるとするならば

  1. 未だに記者クラブ制度があり、政府そのものがメディアとの癒着体質である
  2. 難解な法律用語・外交儀礼的発言により現代口語訳の必要性がありマスメディアを通さねば大衆に理解できない用な言葉を用いらない。
  3. 各マスコミが横一線の報道をしている現状を憂うならネットメディアによる1次ソースの提供をしなければならない。
  4. 検索エンジン2次利用をするメディア等はノードの記載を必須とし、ソースが無い場合は信用しないという市場の成熟が必要である。

 

書けば山ほどあるけどこれくらいに・・・

ようは引用するなら1次ソース元をしっかりと書いて、そのソースも政府や要人は自ら書かねばならぬということだ!!!

これだけネットが進化しても古典的なプロパガンダが効いてることを恥れ!!!!

情報はいつでも、だれでも、求めるなら1次ソースを確認できるのがネットでありシステムであり情報工学なのだ!!!

 

 

 

 

 

ディクショナリーアタックの方法と防御手法

ソースとかは載せないんですけど、普通にプログラミングとかを仕事でしてるならわかると思いますが・・・。

ディクショナリーアタックの8桁英数文字だけなら23 日と 1時間36分0でで全てのパスワードを網羅します。

総当たり攻撃 - Wikipediaコンピュータ性能によるパスワード解読時間の関係(Lockdown.co.uk,2009)

100MHzの30倍にあたる3GHzとして計算してます

こちらをもとに算出しております。

しかしこちらが2corなり並列で動かした場合の理論値は倍になりますし、さらに3corなら3倍です。

っというのを考えると最長で6時間と9分4秒で終わります。

これは00000000~ZZZZZZZZまでの値である為これだけの時間は持たないでしょう。

手元にある安価なPCでも、1日当たり最低4アカウントをハックできますね。

 

実際の攻撃者はこの様な攻撃を行いませんが、標的が決まっている場合はこのような攻撃をしてくるでしょう。

そこでディクショナリー攻撃が疑われる場合は、パスワードが複数回間違えている場合は自動でロックをかける仕組みを入れるべきでしょう。

centos6であるならば

/etc/pam.d/system-authの配下に

【auth        required      pam_tally2.so deny=3 onerr=fail unlock_time=60】

を追記すべきである。

これは全てのuserが deny(何回)onerr(fail or tru 失敗か成功か)unlock_time(ロックする時間)を決めるものです。

こちらの詳しい記事は

https://wiki.centos.org/HowTos/OS_Protection?highlight=%28pam_tally2%29

こちらに記載されております。(公式です)

 

 

まぁunlock_timeを記載しなければ永久にロックフラグが立ちますが。

以上です。

 

 

サイバーセキュリティー【第3層 - ネットワーク層】

なんか2017/04/12 昨日から断続的に日本が攻撃受けてますね。

なので攻撃の第一段階OSI参照モデルの第三層ーネットワーク層について書こうかなと。

まず攻撃レポートにでてる2014年頃からの攻撃で猛威をふるう53413ポートに対するUDP攻撃。

中国製品のNetis製ルータに対する攻撃がすさまじい。なぜここまで猛威を振うかと言うとファームウェアのパスワードがパスワードがばれた・・PCでいうBIOSパスワードですね。

 

まぁルーターとか触ったことある人ならわかると思うのですが、ルータには全て緊急時用のエンジニア向けスーパールート権限(super root)が設定されております(物理的なディップスイッチ含め)。

でもこの権限を貰えるのはベンダー資格に合格してISOを持ってる会社に勤めてたり、メーカー勤務であったりと色々と厳しい要求事項がありますね。

コンシューマー向けは説明書に書いてあったりするのかな?それとも箱の内側とかにかいてあるのかな・・・??

 

ほんでばれたものだからここでパケットキャプチャーされたり、踏み台やゾンビPCを作るためにバンバンとこの53413ポートに対して攻撃がなされまくったのです。

っでUDPが襲われたりルーターが乗っ取られると何が起きるかというと、攻撃元や犯罪者が分からなくなってしまうのです。なぜかというとルーターを経由する度にIPが変わっていくのですがルータ自身は、A・IPがB・IPに変換したというのを記憶してるのです。記憶させておかなければデータが見れないからですね。

応答しようにも戻し先が分からないと返せないのです。

よってこのルーター内にあるIPから、又はあったであろうIPアドレスであるが存在しない為、攻撃者がどうやってここから攻撃したかわからない・・・という追跡上の疑問が生まれるわけです。

 

これが2軒先や3軒先の家ならまだしも世界中に張り巡らせられたインターネットを飛び回り、攻撃をしたら現在では追いかけられません。

 

個人的な技術思想

IPv4でLANを考えるときは2次元で考えるようにしてます。第三オクテットまでがXとYの座標が書かれた紙、第四オクテットが座標位置。

この座標位置を奥の紙に移動させたいときはZ軸移動が必要であり、Z軸こそが別ネットワークであり、積み重ねがWANであるという風な。。。技術的思想です。。。

 

ああとAIによる自己修復型ランサムウェアがでてきて環境変数を抜き取る事があるみたいですね。ではでは

 

 

php-fpm 【fast-cgi】を用いたときの反省文的話。

とにかくサーバーで設定していてドはまった・・・・

 php-fpm 、fastCGIで動かす時!!

動かすとき!iniファイルを書き換えて service httpd restart だけではなく!!!

iniファイルを書き換えたらfastCGIでは【/etc/init.d/php-fpm restart】もする!

iniファイルを書き換えたらfastCGIでは【/etc/init.d/php-fpm restart】もする!

iniファイルを書き換えたらfastCGIでは【/etc/init.d/php-fpm restart】もする!

iniファイルを書き換えたらfastCGIでは【/etc/init.d/php-fpm restart】もする!

iniファイルを書き換えたらfastCGIでは【/etc/init.d/php-fpm restart】もする!

iniファイルを書き換えたらfastCGIでは【/etc/init.d/php-fpm restart】もする!

iniファイルを書き換えたらfastCGIでは【/etc/init.d/php-fpm restart】もする!

 

以上!!!