Category tech.


一種は絶対に必要ないが、高圧受電の低圧部は万が一触ることがあるかもしれないので比較的コスパの良い認定電気工事従事者認定講習を受けてきた。(一種は定期講習を受ける義務があるので維持にコストがかかる。二種+認定電気工事従事者なら維持費はかからない)

長いしまぁまぁ退屈 (二種とる上で必要な知識も改めて説明されたりする)。だけど建築との兼ね合いとか実務上はここまでが電気工事士の仕事です、みたいなのは試験には出ない知識なので面白かった (実務やればわかることだが、実務やることはないと思うので、単に興味として)。

二種は学生も多かったのと、この講習は特に実務経験もいらないので (実務経験が3年あればそもそも申請するだけで認定される)、若い人が受けるものだと予想してたが、どうもそうではないようで、受講者の年齢層が高く感じた。40〜50代ぐらいに見える人が多かった。どういう経緯なのだろう……

後ろの席の人がイビキかいて寝ててめちゃくちゃうるさくてさすがに勘弁してほしかった。

法律解釈みたいなのはややこしいので、とにかく内線規定を読みましょうっていう温度感みたい。

内線規程 (東京電力) 第13版: JEAC 8001-2016 - 一般社団法人 日本電気協会需要設備専門部会

一般社団法人 日本電気協会需要設備専門部会

5.0 / 5.0

  1. トップ
  2. tech
  3. 認定電気工事従事者認定講習をうけてきた

大規模なマンション (具体的には1敷地で 50kW 以上消費する) の場合高圧受電 (6600Vなど) することがある。この場合はマンション敷地内に変電設備が置いてある。

借室電気室

高圧受電ということは自家用電気工作物になるのでその建物は第二種電気工事士では工事できないことになる。が、借室電気室で変電されて個別住居に配電される場合は、個別住居は低圧で受電する一般用電気工作物扱いになり、第二種電気工事士でも工事可能になる。(共有部は自家用なのでダメ)。個別住居は電力会社と直接に低圧の契約をする (管理組合を通さない) ので電気料金は電力会社へ払う。

マンション一括受電

一方 マンション一括受電の場合はマンション全体が個別住居も含めて自家用電気工作物になるので、第二種電気工事士では工事できない (第一種電気工事士または認定電気工事従事者が必要)。電気料金は管理組合へ払い、管理組合が電力会社へ払う。

備考

500kW 以上になると電気工事士法の範囲ではなくなるので資格不要になる。奇妙に思えるが、要は選任の電気主任技術者が監督し工事の全責任を負うことになるので個別資格はもはや問わないということ (現実的には選任の電気主任技術者が有資格者を作業者とするので、無資格者が作業することはまずないらしい)

  1. トップ
  2. tech
  3. 高圧受電のマンションで個別住居の電気工事をする場合の資格

考えてみるとほとんどパスワードを保存するコードを書いたことがない。現状のベストプラクティスを知らなかったのでメモ書き。

現状では bcrypt 使うのがいいみたい。b は Blowfish の b。

Modular Crypt Format というフォーマットとコンパチの出力をする。crypt (3) はもともと DES の短いフォーマットだが、弱すぎたため md5 拡張なりSHA512 拡張などが存在している。(htpasswd でも使われているので見たことある人は多いだろう)

これの Blowflish を使ったものが bcrypt で、prefix に $2$, $2a$, $2x$, $2y$ $2b$ がついている。prefix の違いはバージョンの違いであり、現在は 2b を使うのが良い。ストレッチング回数も出力に含まれるので、あるとき急にストレッチング回数を増やしても特に問題はない。

このフォーマットは出力に salt も含むので、生成された MCF はそのまま保存すれば良い。

Blowfish ってなんだ

Blowfish 自体は一方向ハッシュ化アルゴリズムではなく共通鍵暗号化アルゴリズム。処理速度が早く鍵長がある程度可変でライセンスフリーというのが特徴。

共通鍵暗号なのになんでハッシュとして使えるの?

bcrypt は "OrpheanBeholderScryDoubt" という決まった文字列を 64回 Blowfish で暗号化する。 このとき暗号に使う状態 (暗号化の鍵) を password や salt から初期化する。この初期化にも Blowfish の暗号化が使われる。

暗号化済みテキストに鍵の情報が入ることはない (もしあったとしたら暗号化アルゴリズムではない) ので一方向になる。

また "OrpheanBeholderScryDoubt" に復号化できるキーを探す (クリブ / plain text attack) も Blowfish では難しいため、実質的にブルートフォースアタックしかできない。

備考: salt を別途保存する必要がないのは bcrypt に限らない

そもそも Modular Crypt Format のものは des crypt ですら salt も出力に含んでいる。ググると「bcrypt なら salt は別に保存する必要がない」と書いてる人がいたりする。間違いではないが正しくはない。

Modular Crypt Format のいくつかのパターンを引用する

des_crypt    : {salt}{checksum}
md5_crypt    : $1${salt}${checksum}
bcrypt       : $2a${rounds}${salt}{checksum}
sha256_crypt : $5$rounds={rounds}${salt}${checksum}

( https://passlib.readthedocs.io/en/stable/modular_crypt_format.html から一部をコピペ)

備考: パスワード保存は必要か?

そもそも現代ではプラットフォーマーでなければパスワードを保存しなければならないケースがかなり少ない。OAuth などで外部サービスに認証を委託したほうがはるかに楽だからだ。パスワードを保存するということはそれ自体が難しいうえに、パスワードリセットや2段階認証なども含めてトータルで抜け道がないか考える必要がある。

ref.

  1. トップ
  2. tech
  3. パスワード保存のベストプラクティスと bcrypt のメモ書き