週末スペシャル: GnuPG 2.1.13 および Libgcrypt 1.7.1 がリリース

no extension
  1. GnuPG 2.1.13 および Libgcrypt 1.7.1 がリリース
  2. 学校で「プログラミング」を学ばせる必要はない
  3. 今週はセキュリティ・アップデート週間でした
  4. Pokémon GO
  5. その他の気になる記事

GnuPG 2.1.13 および Libgcrypt 1.7.1 がリリース

今回もセキュリティ・アップデートはなし。

GnuPG 2.1.13 の変更点は以下のとおり。

  • gpg: New command --quick-addkey. Extend the --quick-gen-key command.
  • gpg: New --keyid-formatnone” which is now also the default.
  • gpg: New option --with-subkey-fingerprint.
  • gpg: Include Signer’s UID subpacket in signatures if the secret key has been specified using a mail address and the new option --disable-signer-uid is not used.
  • gpg: Allow unattended deletion of a secret key.
  • gpg: Allow export of non-passphrase protected secret keys.
  • gpg: New status lines KEY_CONSIDERED and NOTATION_FLAGS.
  • gpg: Change status line TOFU_STATS_LONG to use ‘~’ as a non-breaking-space character.
  • gpg: Speedup key listings in Tofu mode.
  • gpg: Make sure that the current and total values of a PROGRESS status line are small enough.
  • gpgsm: Allow the use of AES192 and SERPENT ciphers.
  • dirmngr: Adjust WKD lookup to current specs.
  • dirmngr: Fallback to LDAP v3 if v2 is is not supported.
  • gpgconf: New commands --create-socketdir and --remove-socketdir, new option --homedir.
  • If a /run/user/$UID directory exists, that directory is now used for IPC sockets instead of the GNUPGHOME directory. This fixes problems with NFS and too long socket names and thus avoids the need for redirection files.
  • The Speedo build systems now uses the new versions.gnupg.org server to retrieve the default package versions.
  • Fix detection of libusb on FreeBSD.
  • Speedup fd closing after a fork.

一方, Libgcrypt 1.7.1 の変更点は以下のとおり。

  • Bug fixes:
    • Fix ecc_verify for cofactor support.
    • Fix portability bug when using gcc with Solaris 9 SPARC.
    • Build fix for OpenBSD/amd64
    • Add OIDs to the Serpent ciphers.
  • Internal changes:
    • Use getrandom system call on Linux if available.
    • Blinding is now also used for RSA signature creation.
    • Changed names of debug envvars

インストール後はこんな感じ。

$ gpg --version
gpg (GnuPG) 2.1.13
libgcrypt 1.7.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ********
サポートしているアルゴリズム:
公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
    CAMELLIA128, CAMELLIA192, CAMELLIA256
ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
圧縮: 無圧縮, ZIP, ZLIB, BZIP2

学校で「プログラミング」を学ばせる必要はない

単純に特定のプログラミング言語で「コーディングを覚えることが目的ではない」というのは一安心だが

プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むことであり

というのは全く以ていただけない。 「プログラミング的思考」に「時代を超えて普遍的に求められる力」はない。 はっきり言うが,それは全く無駄なことである。 それがやりたいのならコンピュータ系の専門学校にでも行かせればいい話である(まぁコンピュータ系の専門学校へ行ってモノになるのは全体の一割弱だろうけど)。

前に「「だれもがプログラミングを学ぶべき」ではない」でも書いたが,プログラミングもプログラミング言語も手段や道具でしかない。

プログラミングやプログラミング言語には前提となる学問体系が存在する。 それはたとえば「コンピュータ科学(computer science)」などと言われたりする。 また手段や道具を使うからには,それらを使う目的があるはずである。 たとえば「ドリルを買う人が欲しいのは「穴」である」といったようなことだ。

コンピュータオタクには偏執者が多く,彼等は手段や道具そのものに異常な執着を見せるが,一般の人達には関係のないことだし,そんな執着心を真似すべきではない。

コンピュータ科学や社会学・経済学(の基礎となるもの)について小さい頃から学ばせる事自体は賛成だ。 しかし,何度でも言うが「掛け算は順序が大事」などと言ってはばからない未開人の国がどうやってそれらを教えるというのだ。

ちなみに「人工知能」の台頭を意識しているのなら,なおさら「プログラミング教育」は不要である。 なぜなら「問題を解決する仕事」はこれからどんどん機械が奪っていくから。 そうなった時に望まれる人材は「問題を解決できる人」ではなく「正しい問いを立てられる人」である。 親や学校教師に言われた通りのことしかできない子どもは,大人社会の中では機械以下の底辺でしか生きられなくなる。

一時の流行り廃りに流されることなく,きちんと足元を見て,50年100年のタイムスケールで「教育」というものを考えて欲しい。

参考

今週はセキュリティ・アップデート週間でした

あと,最近は不正アクセスやアカウント情報漏洩に絡む記事が多い。

Have I been pwned?” のサイトには過去漏洩したアカウント情報のデータベースがあり,自分のアカウントが漏洩しているかどうか調べれることができる。 ご利用の際は自己責任でどうぞ。

なお,パスポート番号については

担当者は「番号や取得日が流出していても、パスポートの冊子じたいを手元にお持ちであれば、過剰な心配には及ばない」と話し、番号が漏れてしまった人も、再発行手続きなどは「不要だと考えている」という。外務省としても、今回の問題に伴う特別な対応などは「考えていない」という。

なんだそうで,あくまでもパスポートの原本が大事,ということらしい。

パスワード認証についてはいつものとおり。

  1. 可能な限り2要素認証を使うこと
  2. サービス間で同じパスワードを使いまわさないこと
  3. パスワードは推測の難しい充分に複雑なものにすること

を最低限守っておけばいざというときの被害が少なくて済む1。 パスワードの強度については,いつものあの表を引用するが,


利用する文字種類数と内訳 パスワード長
種類数 数字 文字 シンボル 4文字 8文字 12文字 16文字
10種0-9なしなし1円未満
($2^{13.3}$)
1円未満
($2^{26.6}$)
約35円
($2^{39.9}$)
約35万円
($2^{53.2}$)
36種0-9a-zなし1円未満
($2^{20.7}$)
約100円
($2^{41.4}$)
約1.65億円
($2^{62.0}$)
約276兆円
($2^{82.7}$)
62種0-9a-z
A-Z
なし1円未満
($2^{23.8}$)
約7,500円
($2^{47.6}$)
約1,120億円
($2^{71.5}$)
約165京円
($2^{95.3}$)
94種0-9a-z
A-Z
! " # $ %
& ' ( ) =
~ | - ^ `
¥ { @ [
+ * ] ; :
} < > ? _
, . /
1円未満
($2^{26.2}$)
約21万円
($2^{52.4}$)
約16.5兆円
($2^{78.7}$)
約129,000京円
($2^{104.9}$)
パスワード解読の想定コスト例(情報漏えいを防ぐためのモバイルデバイス等設定マニュアル 解説編 2.4.2.2項より)

12文字を目安に数字と英字(大文字小文字)を絡めたランダムな文字列にする。 人間の脳は無意識に規則性を求めてしまうものなので,横着せずパスワード生成ツールを使ったほうがよい。 もっと言うなら「パスワードを覚えるなんて脳みその無駄遣い」である。 KeePass のようなパスワード管理ツールを使うこと。

ちなみに GitHub は2要素認証が使えるが,2要素認証を使うと https で git push する際にパスワードが有効でなくなる。 この場合は access token を取得してパスワードとして使えばよい。 また master branch にプロテクトを掛けることで直接 master branch に push させないようにする手もある(pull request でのみ merge 可能にする)。

Branch Protection

更に,前にも紹介したが, commit に OpenPGP 署名を付与することで不正な merge を検出しやすくできるかもしれない。

GitHub アカウントはエンジニアにとっては Twitter や Facebook よりも重要な identity なので,きっちり管理していきたいものである。

Pokémon GO

すっかり忘れていたが,いよいよ出るらしい。

いやぁ NIANTIC が絡んでて面白くならないわけがないよね。

イングレスで「ポータル」として指定されている地点は、いまや1,500万にもなる。図書館、博物館、歴史的な場所、彫像、パブリックアートワークといったそれらのランドマークが、Pokémon GOではポケストップやジムとして使われるわけだ。
各地のデータを集めてくれたイングレスプレイヤーたちのおかげでPokémon GOはそのスタートから「ロケットスタート」を迎えられる。ちなみに、先週末カリフォルニアのマウントディアブロで登山をしていたハンケは、その途中でポケストップやジムになっているピースマーカー(山頂の基準点)やトレイルマーカー(道標)を見つけた。

さらにこれは朗報。

Pokémon GOを詳しく知るための、もう1つのパズルのピースが「Pokémon GO Plus」だ。Bluetooth接続するタイプのウェアラブルデヴァイスで、これを持ち歩けばスマートフォンを見続けずに済む。「そう、頭を下げて歩き回る必要はないのです」と、ハンケも言う。
「ポケストップやポケモンに近づくと、点滅し振動します。アイテムを取得し、ポケモンを捕獲することもできます。スマホを見ることなく、毎朝の通勤中に使えます」

Ingress でもこれがあれば良かったのに。 ねぇ。 そういえば,脚を痛めて以来 Ingress はご無沙汰だったんだよな。 忙しいからオフ会とかも出れないし。

というわけで,今更だけどフィールドテストに申し込んでみた。 もう無理かな。

さて,世のお父さんお母さんたちはどうなる(笑) どえらいおもちゃが出てしまいますよ。

その他の気になる記事


  1. アカウント情報を含む個人情報漏洩はもはや「あり得べきもの」として事後をふまえた備えが必要。これを「未然防止」という。 ↩︎