「RaspberryPiで同時多発テロ警報装置」の版間の差分

提供: ディーズガレージ wiki
移動先: 案内検索
(方向性)
(準備)
(同じ利用者による、間の49版が非表示)
8行目: 8行目:
 
量子乱数発生器を使うべきですが標準搭載のハードウェア乱数発生器から使ってみます。
 
量子乱数発生器を使うべきですが標準搭載のハードウェア乱数発生器から使ってみます。
  
メトリクスから見える可能性
+
メトリクスから見える可能性(疑似科学許容)
 
* 人類の意識が量子乱数発生器に影響を与え偏りが見えるようなので同時多発テロ警報装置
 
* 人類の意識が量子乱数発生器に影響を与え偏りが見えるようなので同時多発テロ警報装置
 
* 量子もつれと五次元世界は関係があるようなので五次元生命体ファーストコンタクト
 
* 量子もつれと五次元世界は関係があるようなので五次元生命体ファーストコンタクト
 
* 五次元は重力も操作でき2050年には地球に住めなくなるのでリアルインターステラー
 
* 五次元は重力も操作でき2050年には地球に住めなくなるのでリアルインターステラー
* 奇天烈すぎるので欲は言わず、幽霊や妖怪や五次元生命体や地球外知的生命体と居酒屋行きたい
+
* 奇天烈すぎるので欲は言わず、幽霊・妖怪・五次元生命体・地球外知的生命体と居酒屋行きたい
  
 
=='''環境'''==
 
=='''環境'''==
 
{| class="wikitable" style="width:480px;"
 
{| class="wikitable" style="width:480px;"
 
| style="padding-left:10px;padding-right:10px;"| ボード
 
| style="padding-left:10px;padding-right:10px;"| ボード
| style="padding-left:10px;padding-right:10px;"| Raspberry Pi 3 Model B
+
| style="padding-left:10px;padding-right:10px;"| Raspberry Pi 2 Model B
 
|-
 
|-
 
| style="padding-left:10px;padding-right:10px;"| OS
 
| style="padding-left:10px;padding-right:10px;"| OS
31行目: 31行目:
 
=='''方向性'''==
 
=='''方向性'''==
 
* [http://dz.plala.jp/wiki/index.php/RaspberryPi%E3%81%A7netdata RaspberryPiでnetdata]のMasterに設定
 
* [http://dz.plala.jp/wiki/index.php/RaspberryPi%E3%81%A7netdata RaspberryPiでnetdata]のMasterに設定
* Moduleで乱数発生器のエントロピー偏り割合を取得し、グラフ表示と異常を通知する設定をし有効性を確認
+
* Moduleで乱数発生器のエントロピー偏り割合を取得し、グラフ表示と通知設定で有効性を確認
* 量子乱数発生器・ハードウェア乱数発生器・その他、リソースの切り替えだけで対応できるよう考慮
+
* 量子乱数発生器など、リソースの切り替え程度で対応できるよう考慮
  
=='''準備'''==
+
=='''Module'''==
===rng===
+
===RNG===
{| class="wikitable" style="width:540px;"
+
参考: [http://scruss.com/blog/2013/06/07/well-that-was-unexpected-the-raspberry-pis-hardware-random-number-generator/ “The Raspberry Pi’s Hardware Random Number Generator]<br />
| style="padding-left:10px;padding-right:10px;"| Raspberry Pi
+
ハードウェア乱数発生器はデフォルトで有効の様子
| style="padding-left:10px;padding-right:10px;"| SoC
+
$ ls -l /dev/hwrng
|-
+
$ ps aux | grep rngd
| style="padding-left:10px;padding-right:10px;"| 2B
+
$ sudo nano /etc/default/rng-tools
| style="padding-left:10px;padding-right:10px;" | BCM2836 BCM2837(2016年10月以降のリビジョン 2B v1.2)
+
確認
|-
+
$ sudo dd if=/dev/hwrng bs=1 count=128 | od -t x1 -An
| style="padding-left:10px;padding-right:10px;"| 3B
+
$ sudo head -c 128 /dev/hwrng | od -t x1 -An
| style="padding-left:10px;padding-right:10px;" | BCM2837
+
$ sudo head -c 128 /dev/hwrng | hexdump
|-
+
$ sudo cat /dev/hwrng | hexdump
| style="padding-left:10px;padding-right:10px;"| 3B+
+
$ sudo cat /dev/hwrng | rngtest -c 1000
| style="padding-left:10px;padding-right:10px;" | BCM2837B0
+
$ sudo dd if=/dev/hwrng of=/dev/null bs=1 count=128
|}
+
$ sudo dd if=/dev/random of=/dev/null bs=1 count=128
  
=='''Module'''==
 
 
===Python===
 
===Python===
 +
<!--
 
  $ sudo apt-get install python3-pip
 
  $ sudo apt-get install python3-pip
 
  $ pip3 install influxdb
 
  $ pip3 install influxdb
57行目: 57行目:
 
  $ cd random_metrics
 
  $ cd random_metrics
 
  $ sudo nano random_metrics.py
 
  $ sudo nano random_metrics.py
 +
-->
 
調整中
 
調整中
 +
_
  
 
<!--
 
<!--

2019年6月15日 (土) 06:11時点における版

書き直し中

「量子もつれ遊び」をしたいが手頃なものが売ってなく簡単なところから始めてみます。
量子乱数発生器を使うべきですが標準搭載のハードウェア乱数発生器から使ってみます。

メトリクスから見える可能性(疑似科学許容)

  • 人類の意識が量子乱数発生器に影響を与え偏りが見えるようなので同時多発テロ警報装置
  • 量子もつれと五次元世界は関係があるようなので五次元生命体ファーストコンタクト
  • 五次元は重力も操作でき2050年には地球に住めなくなるのでリアルインターステラー
  • 奇天烈すぎるので欲は言わず、幽霊・妖怪・五次元生命体・地球外知的生命体と居酒屋行きたい

環境

ボード Raspberry Pi 2 Model B
OS Raspbian Stretch with desktop 2019-04-08
ストレージ SanDisk Ultra microSDHC 16GB
LAN 標準搭載の有線LAN

方向性

  • RaspberryPiでnetdataのMasterに設定
  • Moduleで乱数発生器のエントロピー偏り割合を取得し、グラフ表示と通知設定で有効性を確認
  • 量子乱数発生器など、リソースの切り替え程度で対応できるよう考慮

Module

RNG

参考: “The Raspberry Pi’s Hardware Random Number Generator
ハードウェア乱数発生器はデフォルトで有効の様子

$ ls -l /dev/hwrng
$ ps aux | grep rngd
$ sudo nano /etc/default/rng-tools

確認

$ sudo dd if=/dev/hwrng bs=1 count=128 | od -t x1 -An
$ sudo head -c 128 /dev/hwrng | od -t x1 -An
$ sudo head -c 128 /dev/hwrng | hexdump
$ sudo cat /dev/hwrng | hexdump
$ sudo cat /dev/hwrng | rngtest -c 1000
$ sudo dd if=/dev/hwrng of=/dev/null bs=1 count=128
$ sudo dd if=/dev/random of=/dev/null bs=1 count=128

Python

調整中

_

保存: Ctrl + o リターン
終了: Ctrl + x

EntropyBias.conf

$ sudo nano /usr/lib/netdata/conf.d/python.d/EntropyBias.conf

ソース

# netdata python.d.plugin configuration for example
#
# This file is in YaML format. Generally the format is:
#
# name: value
#
# There are 2 sections:
#  - global variables
#  - one or more JOBS
#
# JOBS allow you to collect values from multiple sources.
# Each source will have its own set of charts.
#
# JOB parameters have to be indented (using spaces only, example below).

# ----------------------------------------------------------------------
# Global Variables
# These variables set the defaults for all JOBs, however each JOB
# may define its own, overriding the defaults.

# update_every sets the default data collection frequency.
# If unset, the python.d.plugin default is used.
update_every: 1

# priority controls the order of charts at the netdata dashboard.
# Lower numbers move the charts towards the top of the page.
# If unset, the default for python.d.plugin is used.
priority: 60000

# retries sets the number of retries to be made in case of failures.
# If unset, the default for python.d.plugin is used.
# Attempts to restore the service are made once every update_every
# and only if the module has collected values in the past.
retries: 60

# ----------------------------------------------------------------------
# JOBS (data collection sources)
#
# The default JOBS share the same *name*. JOBS with the same name
# are mutually exclusive. Only one of them will be allowed running at
# any time. This allows autodetection to try several alternatives and
# pick the one that works.
#
# Any number of jobs is supported.
#
# All python.d.plugin JOBS (for all its modules) support a set of
# predefined parameters. These are:
#
# job_name:
#     name: myname     # the JOB's name as it will appear at the
#                      # dashboard (by default is the job_name)
#                      # JOBs sharing a name are mutually exclusive
#     update_every: 1  # the JOB's data collection frequency
#     priority: 60000  # the JOB's order on the dashboard
#     retries: 5       # the JOB's number of restoration attempts
#
# Additionally to the above, example also supports the following:
#
# - none
#
# ----------------------------------------------------------------------
# AUTO-DETECTION JOBS
# only one of them will run (they have the same name)

保存: Ctrl + o リターン
終了: Ctrl + x

debug

$ sudo su -s /bin/bash netdata
$ /usr/libexec/netdata/plugins.d/python.d.plugin EntropyBias debug trace

登録

$ sudo /etc/netdata/edit-config python.d.conf

末尾に追記

EntropyBias: yes

保存: Ctrl + o リターン
終了: Ctrl + x

再起動

$ sudo service netdata restart

確認

http://127.0.0.1:19999
http://192.168.1.187:19999

更新履歴

  • 2019.XX.XX 書き直し