皆さんの中で「人間を模倣する目的のロボット」に、意外な問題があることに気が付いた方もいるようですね(^^) 人形やロボットを、人間に似せようとすればするほど「不気味」に感じられることが多いという問題です(リアルな人形ほど「不気味で怖い」と感じますし、ホラー映画やサスペンス物でもそういうシーンが多く使われます)。これは造形やロボット分野ではよく知られている現象で、ロボット工学の分野では「不気味の谷」の現象と呼ばれています。なお、経験的には「不気味の谷」の現象は様々な場面で「実感」しますが、その客観的理由や原理などは、まだよくわかっていません。現在では「不気味の谷を超えることを目標」にすることもありますが、逆に「不気味の谷の直前を狙う」こともあります。 例えば、人間を模した「マネキン」は、過度に人間に似せることはせず「服を引き立てる造形美」を目指して作られますし、また、いくつかのロボットは「意図的に人間とは違うことがわかるようなデザイン(例えばアニメキャラ調とか)」にし、不気味の谷の手前で「不気味さを感じず、親しみを持てるもの」にしようとしています。 ペットロボット(愛玩、おもちゃ、セラピー用)なども同じで、本物の人間や動物に似せることより「ぬいぐるみや、親しみが持てる人形調」の、人間には似ていないデザインにすることも多いようです。ロボットや、AIのインターフェイスをどのように調整するかも様々な試みが行われており「人間と区別つかない程度に発展しきれていないもの」は、人間に近づけようと工夫すればするほど「不気味に感じられ、逆に、人間との円滑なコミュニケーションを阻害する」ため、中途半端な技術の実用化には、注意が必要です(^^; この問題は、造形(人形)・ロボット・AIだけでなく「アニメ、ゲームキャラ、3DCGなど」でも同じ問題があります。特に「人形、アニメや3DCGは、親しみのあるキャラを描くことが重要」ですから そのような分野での進んだ知見などが、AIやロボットにも、大きな影響を与えています。
余談ですが、音のデジタル化の話でも紹介た「(ミュージック)シンセサイザー」も初期は「普通の楽器とは違う電子音」が売りでそのような使われ方しましたが、十分発達した現在では「アコースティックかシンセサイザーか、言われなければ気が付かないし、誰も気にしない」段階へと発展しています。合成音声による原稿読み上げや対話なども、今は不気味に感じても「将来」そのくらい自然になっていくのでしょう。「十分に発達した、成熟した技術は、誰も、その技術を使っているかどうかには興味がなく「不気味とか不自然とか感じなくなる」ものでしょう。そのような意味でも、現在特に「最先端のAI技術による製品(サービス)!」なんてバズワードによる中身のない誇大な広告や、「何の目的のために、どのような学習データを使ったのか」に言及せずに、先端感を出すためだけに「AIやディープラーニングの技術を使った製品(サービス)!」と声高々に宣伝しているようなものは「まだ発展途上の未熟な製品(サービス)である(^^;」ととらえるほうが、適切な場合が多いように思います(ディープラーニングの技術自体は、今やどこにでも使われる当たり前の技術です)。なお、余談ついでに... 現在のスマートフォンなどでの「音声通話」は、「音声合成とよく似た技術」を、極めて高い「非可逆圧縮」技術として利用されています。人間が発する「声」は全ての波形を作れるわけではないので、人間の発声を模倣して「偽物の声」を生成する「音声合成器」用意します。これは少ない情報で「人間が声と感じるもの(機械の声)」を合成します。「送話者の音声」から、その音声合成機(機械の声)を動作させるための(元の音声情報よりずっと少ない量の)情報を取り出し、それを相手に伝送し、相手側の「音声合成器」によって、元々の音声ときわめてよく似た「音声(機械の声)」を作り出し、それを「受信者」は聞きます。人間に分からないほど人間とよく似た合成音声を生み出す声は、まるで「相手が直接話しているように」聞こえます。そのような仕組みで、現在のスマホの音声通話での「極めて高い圧縮率の、非可逆音声圧縮技術」が実現されています。ちょうどAIのGANsみたいですね... というか、そういう「音声や画像の合成AI技術(機械の声や機械の描く絵)」が、「極めて高い圧縮率を実現する技術」として「 多くの人は気づかずに、あたりまえに使われる世界」になっていくのでしょう。それが「高度に成熟した技術」の世界と思います。
なおロボットに興味ある方、見たことない方は、
【ボストンダイナミックス社の、2009年~2020年の犬型・人型ロボット】
ボストンダイナミックス社の、2009年の犬型・人型ロボット~2020年の犬型・人型ロボットや
【この人型ロボットについての、2021年のFNNの日本語の動画記事】
この人型ロボットについての、2021年のFNNの日本語の動画記事を見てみるのも面白いかも。後者の動画は、「このロボットのAIは、機械学習の技術によって作られている」ことがよくわかる動画と思います(正に「ロボット学校」の世界ですね)。また、別の人型ロボットですが、不気味の谷を越えることを目指した、このような試み、
【2021年、不気味の谷を越えることを目指したロボットAmeca】
2021年、不気味の谷を越えることを目指した試み
も行われています。これが「自然で親しみやすい(^^)」と感じるか「余計に不気味(^^;」と感じるかは、皆さんの判断にお任せします(笑) いずれにしても、「これが現実の、現代のロボット技術(機械技術+制御技術+AI技術)」であり、今までもそうだったように、当然、今後も、もっと発展するでしょう。でもまあ、「価格が、とても高い(それに、電子部品のコストは急激に下がったが、機械部分のコストはあまり下げられない)」ですので、身近な世界にはまだまだ登場できないと思いますが...(^^;
なお、余談ついでに、スパイダーマンのスタントロボット も紹介しておきます。 .... なんか、まさに古典的漫画「鉄腕アトム」の「ロボット学校」や「ロボットサーカス」の世界、そのままですね(^^; 当時、そのような世界を空想した「手塚治虫とトキワ荘の漫画家たち」に脱帽です!(手塚治虫らは「電子頭脳を持ったロボットの漫画を描くための1つの教養」として、当然、当時最先端だったチューリングの理論などは(教養の範囲で)学んでいたとは思います。なおチューリングは「最初から大人の知性を持つ機械を作るのではなく、子供の知性を持つ機械を作り、それを育てていく手法が有効かもしれない」ということ(今の言葉で言えば、機械学習の概念)も、気が付いていたようです。
ちなみに、別の話ですが、アポロ計画(20世紀の、現実の月面旅行)は、19世紀後半のジュールベルヌのSF小説「地球から月へ」「月世界へ行く」などと、驚くほど一致しています。
彼らは「予言者」だったのでしょうか?!.... 実はアポロ計画については関係者が「子供のころジュールベルヌのSFに熱狂していた」ことを明かしており、技術的に可能なことなどは「ベルヌの小説を実現する(ベルヌの小説に合わせる)」ように、いろいろしていたようです(笑) また、現在のロボット工学者の多くが、子供のころ、他の多くの子供たちと同様「鉄腕アトム(ASTRO BOY)」に熱狂していました。ホンダの人型ロボット「ASIMO」の開発メンバーには「アトムを作る」ことを夢見て開発に取り組んだ人もいたようです。
「夢」から「現実の未来」を作り出した例は多く、1970年頃にダイナブック構想で「未来の(現在のスマホやタブレットのような)コンピュータ環境」を言い当てたアラン・ケイは「未来を予測する最善の方法は、それを発明することだ」「未来はただそこにあるのではない。未来は我々が決めるものであり、宇宙の既知の法則に違反しない範囲で望んだ方向に向かわせることができる」という言葉を残しています。そういう目で「夢」とそれを受け継ぐ「多くの人の努力と技術の発展」と「現実の未来」を見てみるのも面白いかもしれません。 そういえば、ボストンダイナミックスの人型ロボットの名前は「アトラス」ですが、鉄腕アトムにも「アトラス」という名前の(アトムとほぼ同じ性能を持つ)ロボットが出てきます。ボストンダイナミックスの人型ロボット「アトラス」を開発した技術者たちは、子供のころ鉄腕アトム(ASTRO BOY)を見ていたのでしょうか....?
また、AIの代表的な作り方(ディープラーニングによるニューラルネットの構築)を実際に具体的に見て、ほとんどの方は「目的と、それを具体化した教師データ・評価値の設定(評価関数)次第で、様々な特性を持つAIが作れる」ことが理解できたようですね(^^) 特に「手段と目的の取り違え」には十分注意することが(AI開発でも日常生活でも)大切です。一部の(使いながら学習するタイプの)AIは、利用者側である程度(適切な追加の学習をさせて)目的や動作を調整できますが、工場で作って、その後固定化して使うタイプのAIの場合には「(自分の)目的に対して有用なものも、役に立たないものも」あり、そういうものは「自分(利用者)の目的」と「製作者が組み込む、目的」が一致しているかどうかを「チェックが必要な場合が多い」です。なお、「利用者の目的は、利用者ごと違うことが多い」ため、(自分にとって)役に立つAIを手に入れるには、ある程度「自分たち(利用者)もAIの開発に関わる」ことが大切です。もちろん関わり方はさまざまで、「自分で作る(紹介した開発ソフトNNCを使えば比較的簡単にできます)」「自分で(学習データを与えて)育てる(かな漢字変換のAIなどは、そうやって育ててつかっていますね)」「自分が目的を考えて学習データを用意し、専門家に作ってもらう(企業が専門業者にAIを作ってもらう場合はこれです)」という関わり方もありますが、「プロジェクトに参加して学習用データを提供する(たとえばりんなで遊ぶ、CharGPTで遊ぶ、Bing Chatで遊ぶ)=育てることに関わる)」というのもあれば、「大まかな仕組みや特徴を正しく知ったうえで、(自分が)便利と思う製品は受け入れる(買う)、便利と思わない製品は受け入れない(買わない)」という関わり方で、日常の行動をすることも、「自分たち(利用者)が、AIの開発に関わる」具体的な方法の1つです。また、「利用方法や目的を知ったうえで、Webやアプリやポイントカードなどで、自分の個人情報等を開発業者に提供する」ことも、その一つですね(^^;;;;;
そのような視点に立って「AIという、魔法のような、単一の完成した具体的な製品があるわけでない」ということは、押さえておくとよいでしょう。バズワード化している言葉や誤ったイメージは無視して「個々のAI技術とその特性(中身)に、目を向けるとよい」と思います。(「十分に発達した科学技術は、魔法と見分けがつかない」は(SF作家)クラークの3原則の1つです(^^; AIを、「魔法のようなもの」としてではなく、「現実の、技術として」捉えられると良いですね(^^))。 このシリーズの最初に「言葉にこだわらず、中身(具体的な技術=しくみ)を理解することが大切」と指摘していますし、そういう段階で躓いていた方は、もう一度、このシリーズの最初から、復習してみると良いと思います。
では、余談はこの辺にして、今日の本題に入ります。
コンピュータや情報機器は「故障せずに、期待した動作を、間違えなく行うもの」であることが望ましいですよね。しかし既にここまでの説明で皆さんは、大量化・複雑化している現在の「機械は間違えだらけ」(だから間違い訂正しながら動いている)などのことは、理解していると思います。また、AIもコンピュータですし、「AIは期待する動作をするとは限らない(アルゴリズム、教師データ、評価値の設定が、目的に合致しているとは限らない)」ことも学んでいると思います。なお、「AIは暴走する(人間は暴走しない?、機械は暴走しない?)」と、たぶん誤解した概念の方もいるかもしれませんが、コンピュータも間違えだらけだし、機械も間違えだらけだし、人間も間違えだらけです(^^;
しかし、1970年ごろまで、まだコンピュータがそれほど複雑でなかった時代は(比較的単純なので、機械は間違えずに正確と思っている人も多く)「大量の情報を高速に処理する」ことが、コンピュータの性能と考えられていました。そして、そのころは、米国IBM社が高性能な大型コンピュータの開発を行い、日本はそれを真似たコピー商品(互換機)を生産し始めた時代です。同じ価格同じ性能なら、誰も日本製を買いませんから、日本企業は、少しでも計算が早く大量の処理ができるものを開発していきました。しかし所詮「ものまね」ですから、当時の日本製品はトラブルが多かったのも事実です。「故障で動かなかった」なら、性能もへったくれもありませんよね。
そこでIBM社は、「コンピュータの性能は、速度や扱える情報量だけではない」と言うキャンペーン(広告)を始めます。そこで初めて、「信頼性、可用性、保守性」と言う性能が大切(そしてIBM社のコンピュータは、この視点で日本製と比較すると、格段に高性能)、と言う意識が生まれます。英語で言えば「Reliability, Availability, Serviceability」で、略してRASと呼ばれました。その後、「Integrity(完全性); Security(機密性)」の大切さも認識され、併せてRASIS(レイシス)と呼ばれ、「コンピュータなどの総合的な性能の指標」として使われるようになります。RASISは、現在でもコンピュータに限らず「システムの総合評価の指標、として、機器等の導入などに使われます」ので、言葉の意味を(Webや辞書などで)調べておくと良いでしょう。
さらに近年では「普通なら大丈夫だけど、大雨とか津波とか来たら?」と言うことも大切な要因であると認識されます。例えば40年ほど前、高知市内が大雨で水没しました。その時はまだ災害に対する「考え方」が不十分だったため、多くの企業が、「地下に」コンピュータ室を設置していました。そのため、銀行のシステムや新聞社のシステムが、大雨による水没で、壊滅したと聞いています。現在では、 コンピュータシステムだけに止まらず、コンピュータシステムを含む、全業務システム(人力の作業も含む)において、 DR(Disaster Recovery:災害対策)/ BCP(Business Continuity Plan:業務継続計画)を、検討しておくことも大切、ということが、広く認識されています。
では、どのようにしたら「故障しない、止まらない、間違えない、安心して使える」システムになるのでしょう?
いくつかの考え方や技術がありますが、「人間の思い違いや設計ミスなどによる誤り」とか「利用者の思い違いやうっかりによるミス」とか、「機械の故障によるミス」とか、「災害等による故障やミス」とかに対応する方法を、いくつか紹介しておきます。
これは、「人間の、ちょっとしたミスによる操作を、あらかじめ実行できないような仕組みにしておくこと」で、日本語で(トヨタ生産方式の用語で)「ポカヨケ」と呼ばれることもあり、海外でも[poka-yoke]呼ばれることもあります。コンピュータの操作でしたら、たとえば「数字しか想定していない項目の入力には、そこそも数値以外の文字が入力できないようにシステムを組む」などが、これにあたります。完全にミスをなくすことはできませんが、随所にこのような仕組みを組み込むことにより、ある程度「誤りを防止する」ことができます。操作に自由度が高いほど誤りやすいので、未然にそれを防ぐ、という仕組みです。たとえば「チャックデジッド」による誤り検出の仕組みがある単語入力の場合、即座に誤り検出の計算をして誤りであれば「その入力自体を受け付けない」ようにシステムを組めば、人間は容易に誤りに気づき、正しい入力に訂正することができます。また、人間が入力する場合だけでなく、機械でも(プログラムどおしの通信(API)においても)、この考え方は有効で「論理的に誤った指示や、想定外の範囲の入力を受け付けない(エラーコードを返して処理は行わない)」ようにシステムを構成する個々のプログラム(小人さん?(^^;)を作ることにより、1つのプログラムのうっかりミスが大事故つながることを、防止できる場合があります。
これは、もし誤りや故障が起きた時、常に「安全側に動作する」ように、システムを作ることです。たとえば「電力喪失」という事態に対して、暴走ではなく「(安全に)停止」するように設計することなどです。正常時にはどうでも良いことと思われがちですが、異常時や特に災害時には、大きな違いが生まれます。たとえば、「原子力発電所」を作るとき、制御用の外部電源(通常は電線や非常用電源からとる)が切れたとき「原子炉は、暴走するのか、自然に停止するのか」の違いです。福島原発の原子炉は、電源遮断に自動的に安全に停止するものでなく、非常用電源の確保は極めて重要であったにもかかわらず、コスト削減のために十分な災害対策がなされていなかったため、大惨事がおきました。また、ドアを内開きにするかするか外開きにするか? なんてどうでもいいようなことが、人間の生死を決める場合があります。アポロ1号では「ドアが内開き」だったたため、船内の火災事故から脱出できずに3名の飛行士は全員死亡しました。その後、宇宙船のドアは、「非常時に体当たりすれば逃げられるように」外開きになっています。平時にはどちらでもよいように思えることで「故障や異常時に、危険な方向に働くか、安全な方向に働くか」というのはとても大切なことになります。コンピュータで様々な機器を制御する場合「コンピュータの故障や停止、電力喪失などに対して、機器などが暴走することなく、安全に機能停止する」よう作ることが、「フェイルセーフ」です。
システム一部に問題が生じても、システム全体として、全機能停止にならないように処理を続行する仕組み(技術)を「フォールトトレランス(fault tolerance)」と言います。
人間(生物)なら、怪我(部分的な障害)をしても、少しくらいなら自然に治る(元に戻る)ので無視したり、多少の怪我や身体の不調などなら「応急処置をして、その部分をかばいながら」作業を続けたりします。場合によっては、ちょっと休憩して、一時処理を中断し、その後処理を続行することもあります(つまり、一部の機能に障害が生じても、全機能停止(死)に至ることはそれほど多くありません)。ところが(現在の、コンピュータやAIを含む、全ての)機械は、自然に治る機能を持っていませんし、昔の「単純な機械」でしたら、分解して故障箇所を直すと言うことも可能でしたが、現在の複雑な機械は、故障個所だけ直すことが不可能なものもあります。例えばCPUチップ内の1つの素子が壊れたからと言って、その場所だけを直すことは、現代の技術では不可能です。そして、(システムの組み方によっては)一部の機能喪失が即座に「全機能停止(人間でいえば死)」に直結します。
たとえば飛行機のエンジンが急に故障したとします。「フェイスセーフ」の仕組みになっていれば、そのエンジンは「爆発することなく、安全停止」しますが、飛行機は... 安全ではなく墜落しますね(^^; 飛んでる最中にエンジン修理することもできませんし...そこで、安心できる飛行機を作るときには「1つくらいエンジン停止しても飛べる」ように作りますし、最も安全を高めるには「全エンジン停止でも、グライダーのように安全に滑空して着陸できる」ように作ります。 余談:なおヘリコプターも同じです。「ヘリコプターは、エンジン停止すると、落ちる...」と思っていませんか?(^^; 実は「プロペラ」に見えるのは「回転翼」と呼ばれ、動力無しの場合でもグライダーが滑空できるのと同じ仕組みで「ヘリコプターは、エンジン停止しても、安全にゆっくり降りてくる」ことができます(^^)。
そのように「一部分、部品などが故障しても、被害を最小限に食い止めながら、「全体としては」性能を落としながらでも、なんとか機能させて、全機能停止を防ぐ」ということが、複雑な機械でもある程度可能で、そういう技術の総称が「フォールトトレランス(fault tolerance)」と呼ばれています。
具体的には、システム全体を1つの不可分のものとして作らず「幾つかの、独立の機能を果たす、独立な部品」から構成し故障などに備え、あらかじめ「それぞれの部品の予備」を準備しておくという方法が取られます。予備と言っても、言葉通りの予備の場合もありますが、飛行機のエンジンの話のように「無ければ無いで、なんとかなる(冗長性がある)」という形で「予備」の役割を果たすようにすることもあります。安心できる機械(システム)は一般に、こういう方法で、障害や不慮の事故、災害などに対応するよう、注意深く構成していきます。(なお、個人認証、支払い、通信・連絡、などの機能を「1台のスマホに集約していく、という方向性」は、フォールト・トレランスの技術とは正反対で、1つの障害による被害が拡大する方向だということも意識しておくとよいでしょう)
システムに冗長性を持たせることを、一般に「多重化」と呼んでいます。電源異常に備えた「電源の多重化」や補助電源の確保、通信機器の障害に備えた「通信機器の多重化」なども、これにあたります。 なおこれは、一般に「巨大システム」の構築では、とても大切な(実装は結構高度な)技術です。例えば電力網(発電所・変電所などを電線でつなぎ、組み合わせたもの)。安定な電力供給には、(発電所や変電所などの)1箇所の事故が「広範囲の電力喪失」に広がらない電力網を設計、構築する必要があります。実際には、多数の発電所や変電所の冗長性とか多重化とか連携システム(1つの発電所の障害を、他の発電所がカバーする仕組み)とか... 適度な冗長性を持たせて、いろいろな技術を高度に組み合わせて実現する必要があります。これを「全体の安定性」優先でなく「個々の発電所の安定性」や「コスト」優先で作ってしまうと... たとえば、2018年北海道の「ブラックアウト」が起こります。なお、連携(お互いに助けあう)システムを設計・実装するときには、いわゆる「トロッコ問題」を強く意識する必要があります。元々は「1人を助けるために、大勢を犠牲にする選択を行うべきか? 何もしないべきか?」という倫理の問題ですが、システムを作る場合には、二者択一の場合「多くの人を犠牲にする」あるいは「1人を犠牲にする」のどちらを選択すべきか?(どちらを選択する機械にするべきか?)という現実的かつ具体的な問題です。うっかり「障害のある部分を救う」ことを優先しすぎた電力システムを組むと、ある限度を超えた場合「ブラックアウト(全域停電)」という現象が起こりますし、実際に起きました。「助け合い」は(機械の世界でも)大切ですが「安全に助けることが無理そうな場合には、少数の犠牲は切り捨てる」という選択が必要な場合があります。人命救助やレスキュー等世界でも(二重遭難は、最悪の行動、として)「当たり前の最も大切なこと」ですが、そのようなセンスで「非常時に切り捨てる機能や部品」を想定し、予めその選択が出来るように(多少のコストを掛けて冗長な)予備を用意することが大切という教訓になりました。
では、「コンピュータシステム」の場合、何の予備をどのように準備し、どのように交換とかしていく方法があるのでしょう?
余談:こういう視点(常識)を持たない人や、持たない人が指導者の場合、に、「機械(AIも含む)の暴走」が全体に広がり、特に巨大システムであればあるほど、この問題は深刻になります。なお、まともな技術者であれば、適切なコストと、「安定性確保等の」適切な目的(目標)があれば、それを実現するシステムを組む能力があります(...というか、こういう話は、システム工学の初歩の初歩ですから、そういう分野を専門的学ぶ・学んだ人たちにとっては、当然すぎる、当たり前のことです。そのような業務(目的)を担う組織(会社など)として、コスト削減(という経営者の利益・実績)を優先するか、安定性や安全性を確保するためにある程度の程度のコストを掛けるか? という「組織の判断(組織が決める目的)」が、その組織が担う「本当の目的」と合致していない場合に、こういう「大災害(人災)」がおきます。本当に怖いのは「権力を握った、無知な人間」ですね(^^;
コンピュータシステムを構成する部品で、一番「壊れやすいもの」は、「可動部がある」ハードディスク(HDD)です。軸受けなどが摩耗しますので、5年程度が「寿命」と言われています。現在はフラッシュメモリを用いたSSDに置き換わってきていますが、フラッシュメモリの仕組みは「破壊しながら書き込む」ため「劣化」が起こり、それを見込んで「予備の記憶素子」を大量に用意し「高度な誤り訂正の技術」を用いて「予備の記憶素子が尽きるまで」読み書きができるようにしたものですので、HDDと同様に「寿命」があります。徐々に性能が上がり、現在では、通常の利用環境ならばHDDよりも寿命が長いと言われていますが、「大量の書き込み」に弱いですので、利用の仕方によってはHDDよりも寿命が短くなることもあるようです。いずれにしても、HDDやSSDは「寿命」があり、システムの中で最も壊れやすいものです(以下、似たようなものですのでHDDもSSDもまとめてHDDと書きます)。
ですから、HDDは定期的に(自動的に)バックアップを取ったりします。昔は磁気テープやFD、CDやDVD、BDなどにバックアップを取っていた時代もありましたが、現在ではHDDは数TBの容量がありますし、BDは最大の4層でも128GB しか入りませんから... なお磁気テープを使うバックアップ装置は、テープを自動交換するバックアップ装置もあり巨大なデータセンターなどではそういうものを使いますが... 通常、安価にバックアップを取る媒体として選択されるのは、HDDを利用したバックアップ装置です。個人レベルなら、普通に「外付けHDD」を付けてバックアップを取り、通常は使わないようにしておくだけで、そこそこ、バックアップの役割は果たせます。
ですが、バックアップした後、次にバックアップするまでの間は、バックアップを取っていませんので、障害時には「バックアップを取った時点まで」データが戻ってしまいます。
常にバックアップを取りながら運用するには、どうしたら良いのでしょう? それが「RAID技術の応用」です。なおRAID(レイド)という用語は、今では家庭用電気製品にも普通に使われる用語ですから、覚えておくと良いでしょう(例えば、TVやビデオのHDDがRAID1・RAID5に対応してるか、とか)。
「複数のHDD」を「1台のHDD」のように見せかける技術の総称です。RAID1のミラーリングが実質「常にバックアップをとっているのと同じ状態」になりますが、両方とも常に使っていますので、本当のバックアップとは若干違います。しかし、1台の故障が検出された時点で素早く(自動的に)予備のスペアHDDと交換する機能を組み合わせると、「2台中1台の故障」については実質スペアHDDがなくなるまで「障害が起こらない」仕組みになります。RAIDには高速化を実現するRAID0、常に2重にデータを格納して2台中の1台の故障に対応するRAID1, (パリティチェックによる1ビットの誤り訂正技術で)数台中1台の故障に対応するRAID5,(2ビットの誤りを訂正できる2重パリティチェックで)数台中2台以上の故障に対応するRAID6などがあります。それぞれ、安定性やコストが違いますので「必要な場合に、必要な程度の信頼性・安定性確保のために、必要な程度のコストを掛けて」、HDDの故障に備えます。なお本学のサーバなどでは、RAID6などを使っています。
いろいろありますが、「RAID0 (ストライピング), RAID 1(ミラーリング),RAID 5(パリティビットを利用した誤り検出と訂正)」が基本で、あとはその組み合わせ(あるいは誤り検出と訂正の高度化)ですから、この3つを知っていれば良いでしょう。
必要な時、詳しくは(方式、特徴)Webで(RAIDで検索して)調べてください。
HDD だけなら RAID + スペア + バックアップ で、なんとか対応できますが、「コンピュータ自体」が故障したら...? これも基本的には RAID と同じような「複数台のコンピュータを用意する」という方法で対応します。
2台の同じ性能を持つコンピュータを用意し、常に2台で同じ処理を行い、かつ誤り検出などの技術を駆使して「正常に動いているか否か」を常に自己診断します。2台中1台が故障した場合には、1台で作業を続行し、その間に壊れた1台を修理します。そして治ったら、2台で処理に戻ります。これをデュアルシステムと言います。例えば証券取引のシステムとか「中断したり、速度低下が許されない」場合に使われます。コストが2倍かかるので、もう少し安く、だと「性能の異なる2台のコンピュータ」を使う場合もあります。通常は性能の高い1台のコンピュータを主に使いますが障害時には性能の低いコンピュータで処理を代行します。障害時には若干性能は落ちますが、処理は止まりません。なお、予備の性能の低いコンピュータへ切り替える方式はいろいろあり、自動で瞬時に切り替わるもの(ホットスタンバイ)、や、手動で切り替えるもの(コールドスタンバイ)もあります。コールドスタンバイは、まあ「予備機(動作させずに)を用意しておいて、障害時には一旦処理は止まるけど、予備機の電源を入れて、必要があればつなぎ変えて、それから予備機で処理を続行する」という感じ。ホットスタンバイは「障害が起きても、自動的に予備機に切り替わって処理が続行されるから、末端の利用者は障害が起きたことも殆ど気がつかない」という感じになります。
ネットワーク技術の進展により、2台ではなくさらに沢山のコンピュータをつなげてそれを「1台のように見せかける」技術も生まれました。これが「クラスタシステム(Cluster System)」です(英単語Clusterの意味を知らない人は辞書で調べてください)。例えば10台のPCにクラスタ管理のソフトウエアをインストールし、ネット(高速なLAN)でつなげます。すると、10台のPCが、まるで1台のPCのように見える、という仕組みが作れます。個々の処理はクラスタ管理のソフトが10台のPCに指示して、分散して(複数のPCが個々の処理を分担して引き受け、全部が協力して)処理します。すると、利用者から見ると、見かけは1台のように見えますが、10台で処理しますから、10倍の処理能力があるPCのように見えます。これは「超高性能のコンピュータ」を作るときに用いられる手法ですが、この分担の仕組みを使うと「1台故障しても、他のPCにその処理をやって貰えば良い」という形で、全体としての処理に、数台の故障はあまり影響を与えなくなります。例えば、「人」に置き換えると、1人で仕事をする場合にはその人が倒れたら仕事も中断。会社などの組織で「大勢で分担して」仕事を行えば、数人くらい倒れても、他の人が仕事を肩代わりすれば、会社の仕事は続行できる、ということです。現在では、この「クラスタシステム」によって「スーパーコンピュータ」なども作られます。ですから、例えば米国国防省が昔「ゲームマシン3000台」買って、それでクラスタシステムを構築し「スーパーコンピュータ」として使ったとか、ゲームマシンなら、壊れたらそこらで買ってくればいいから、修理が簡単とか、そういう一見シュールなことが、現実に起こります。なお、PCを沢山集めるのにケースは要りませんから、通常はクラスタシステム構築用のマザーボードにCPUを沢山載せて複数台のPC(と同じもの)を作り(ブレードと呼びます)、それを1つの箱の中に沢山差し込み、1つの箱で数十台~数百台のPC(と同じもの)を入れ、その箱を並べて、大規模なスーパーコンピュータを作ります。Googleのサーバーとか、スーパーコンピュータ京とか富岳とか、そうやって作られていますので、でっかい箱(ラック)が、ずら~っと並んだような形になります。そしてこれらは「(中の)PC(と同じもの)が、数十個や数百個壊れても、(総合性能はやや落ちるが)全く支障なく動き続ける」ように組まれてます。また逆に「全部完成する前でも、(性能は低くなるけど)支障なく動かすことができる」ものですので、富岳の場合のもそうでしたが「完成する前に、コロナ対策の計算を始める」ということもしていました。
また「クラスタシステム」が「極めて障害に強い」コンピュータであれば、それを使い(高速を求めるのではなく)「多数の、障害に極めて強いコンピュータ」を作るのに利用する方向もあり得ます。これは既にソフトウェアのところで説明した「仮想コンピュータ」の技術を使います。仮想コンピュータとは「ソフトで作ったコンピュータ」であり、実態はデータだけですから、コンピュータ自体を(データとして)複製したり、バックアップを作ったりすることも容易です。ですから「巨大なクラスタシステム」上で「多数の、仮想コンピュータ」を動かせば、それらは「極めて障害に強く、現実的には故障しないと考えても良いくらい、安定した動作」が期待できるものになります。
現在、インターネットを利用した様々なサービス(googleの検索サービス等)が「止まっている」のを見たことがありますか? 人類には「壊れない機械、止まらない機械を作る技術はない」にも拘らず、「サービスは止まらない(常に動き続ける)」ことが可能なのは、こういう仕組みです。
なお、こういう「壊れないコンピュータ(特にサーバ)」を提供しましょう、というサービスが現在、いつくかの業者から提供されています(クラウドサーバ)。そういうサービスを利用すれば、小さな企業でもあるいは個人でも「壊れない、止まらない」ように見える、サーバーマシンを用いたサービスなども(リーズナブルな価格で)展開することが可能になっています。
現在では、機械の故障に対する対策(RAS)に関しては、自力で難しければ、前のページで紹介した「クラウドサーバ」を利用するという方法が可能になっています。また現在、大規模な(そして止まらない)ネット上のサービスは、このような仕組みで提供されています。ではRASISに関してはどうでしょう?クラウドサーバーの利用は、ネット経由になりますので、サービスを構築する方も、サービスを利用する方も、特に「機密性(セキュリティ)」の確保が、とても大切になってきます。
セキュリティ確保の原則は「物理的」「技術的」「人的」対策であり、これは、3つの視点から「破る方法がある」ということを意味しています(だから、3つの方法で対応しようということです)。例えば「部屋に進入して壊す(物理的)」「ウィルス仕掛けたりネット経由の攻撃で壊す(技術的)」「操作を任されている人が情報を盗む(人的)」などのことが、あり得ます。
ですからまず「重要な機器の置かれている場所」には鍵を掛け入室管理を行いましょう、重要な情報は(USBメモリなどで)持ち出せないようにしましょう、というのが「物理的」対策です。次に「重要なファイルなどにはアクセス制限を掛けたり、暗号化したり、また、パスワードや認証を掛けましょう」というのが「技術的」対策です。そして最後が一番重要なのですが「適切な人に適切に権限などを与え、人の管理をきちんとしましょう」ということで、例えば「担当業務に当たる人が、適切にパスワードを管理できるか(しているか)、特定の人が業務上の権限以上の作業ができる環境に有るか無いか、業務に当たる人が適切なセキュリティ知識を持ち合わせているか、業務にあたる人が適切な倫理を持ち合わせているか」などです。
今でもまだ、時々有るのが「社長はPC使えないから、秘書が社長のPC操作(メールなど)を、社長のアカウントで代行する」などです。これは「PCの操作ができなくても、ログインとパスワードなどの認証だけでも」できれば、そこまでは社長が行い「その後の操作は秘書などが、社長の見ている場で、行い、業務が終了したらログアウトする」、という手続きを取れば、簡単に対策ができます。同様な例では、業務用パスワードを複数人で共有したり、前任者の業務用パスワードを変えずにそのまま使ったり... パスワード管理は、(比較的若い)末端の利用者よりも、比較的年齢の高い管理者(管理職)の意識が低すぎて問題が生じるケースが多いように思います。例えば、退職者の業務用アカウントを無効化せずに、そのまま放置とか... また他にも、例えば大勢がいる部屋で、セキュリティが必要な作業を行うと「後ろからパスワードを盗み見られる」可能性がありますので、敷居を立てたり、特に重要な業務は個室で行ったり(物理的対策)、そのように業務管理を組むことが必要になります。
「セキュリティ意識」の問題は、とても面倒で、現実には「知らないのに知ったつもりで、おかしな指示を連発する人」が、多くいます。また、セキュリティの世界は日進月歩(破る、守るのいたちごっこの世界ですから)で、「今は通用しない昔の常識」を「しつけ」として守ってる(セキュリティ意識の低い)人もいます。そういう人は「自分が、セキュリティ意識が低く、現在のセキュリティの常識に追いついていない」ことに気がついていない場合が多いので、それが多分(少なくとも日本では)大きな問題です。
前に説明しましたが、例えば「パスワードは定期的に変えましょう」としつけられた方、それは「古い」常識です。「覚えやすく破りにくいパスワードの作り方の習得」と「パスワードは、必要に応じて、(言われてとか定期的にではなく)必要なときに、変更する」のが、総合的にリスク軽減につながります。
なお、「パスワードを相手に伝えるには別系統」であり、2段階認証は、そうなっています。そういうことも意識しながら、日本でいまだに流行っている「パスワードは別メールで」のPPAP文化の「危なさ」も意識すると良いと思います。なお「社内ルールで、パスワードは別メール」としているような、時代錯誤のセキュリティ意識0の企業も、日本には多くあるようですので、注意しましょう。なお日本固有の「パスワードは別メールで文化」の無意味な習慣は、いまさらながら、デジタル庁の議論でも真っ先に挙げられていますが...(^^; また、 セブンペイ事件なども知らない方はWebで調べてみると良いでしょう。
また「生体認証」は、簡単ですが、パスワードよりもずっと破りやすいことが多いので、それも、意識すると良いと思います。
では、破りにくい認証(パスワードなどや生体認証)は、どうしたらいいのでしょう? それは「組み合わせ」です。生体認証は「あまり意識しなくても使える」便利さがありますので、それを複数組み合わせる方法が、(特にセキュリティ確保が必要な場所では)使われています。指紋認証が良いのか顔認証が良いのかではなく、可能なら両方使って、組み合わせて認証を行う方法が「最も便利で、かつ強力」になります。民生品(普通の人が普通の店で買うもの)では、コストの問題がありますのでまだ「組み合わせ」を利用した製品は、極めて少ないと思いますが、それでも、顔認証で入った後、重要な操作はそれとは別のパスワード認証、そして「個人が持つもの」があればそれを利用した認証(スマホを使ったワンタイムパスワードを利用した2段階認証)に使うなど、現在でも必要に応じて、様々な形態の「異なる方法の認証の組み合わせ」が使われ始めています。
信頼性、可用性、保守性、保全性、機密性 (RASIS)、これらを満たしていくには「どうすれば、一番良い」のでしょうか?
これには決まった「正解」はありません。というのは、実際には、相反する要求であることが多いからです。
例えば、可用性と機密性。可用性は「利用できる(利用しやすい)」を求めるものですし機密性は「(権限がなければ)利用できなくする」ことを求めるものです。また、故障に備え「バックアップ」をとることは大切ですし、複数の場所に複数のバックアップをおけば、例え「コンピュータを設置している場所(都市、国)が、大災害で壊滅しても」、他の都市や国にあるバックアップデータから復旧する、ということも可能になりますが、バックアップをあちこちにおけば、その分「盗まれる危険性」も増えますから、機密性は低下します。また、認証を何重にもかけ、パスワードも複雑な異なるものを何回も入れなければ入れないようにすればセキュリティ(機密性)が高くなりますが、そうすると可用性に問題が生じ、使いにくくてたまらなくなると思います。
また、安定したサービスを提供するために「クラウド化」をするか「オンプレミス」で行うか?ということでも起こります。「オンプレミス」とは「自社運用」の意味で、自前でシステムを構えて自前で管理する方式です。「クラウド」は「インターネット経由で、Webを用いて、サーバー機能の提供サービスを行っている業者のサービスを利用」することで、例えばアマゾンの提供する「仮想マシンサービス」AWS(Amazon Web Service)などを用いて、その上に自社システムを構築するなどです。(Amazonのような)技術力のある業者に、(仮想)機械の管理を委託できれば、比較的低コストで利用者はそれを「故障しない、止まらない機械」と利用できます。ただし「(仕事場の端末からクライドサーバーまでの)セキュリティ(暗号化通信のセキュリティ)」の問題や「クラウドサービスが障害を受けた場合」の対応は、全くできませんから、そういう問題は「全部他人任せ」になります。一方オンプレミスの場合には、自社内にすべてのシステムがありますので、全ては自己責任になります。自前で管理技術や管理のための能力を持たなければなりませんのでそれなりのコストはかかりますが、敷地内のセキュリティとかある程度のネットセキュリティは、自社で気を付けることができます。どちらが良いかは「自社の技術力次第」です。掛けたコストを単に「そのシステムで提供するサービスに対するコスト」と思うか、装用の業務を自社展開するときにも使える「自社の技術力(ノウハウ)を蓄えるためのコスト(経済学で言う本当の意味での)投資」と捉えるかです。
では、「国の根幹きかかわる機能」は、どのように構築すべきでしょう? 「低いコストで比較的安定な運用を目指す」のであれば、技術が高い専門業者に頼る「クラウド」の方が安くて便利です。また「クラウド技術」は、国内企業よりもGoogleやAmazonの方が、技術力も高いし価格も安いです。そこで、2021年、日本(デジタル庁)は、国のクラウド基盤(ガバメントクラウド)を、googleとAmazonに委託することを決めたようです(^^) でもこれは、GoogleやAmazonが日本政府の機関情報の管理を他国の私企業が引き受ける、ということですので、もしここに何らかの問題が起きれば、日本政府が委託した機能は停止しますし、国内企業の技術力向上(日本の産業の競争力育成)には、繋がりません。なお「日本政府としては、それでよい」という判断のようです(^^; まあ、日本政府や日本の地方自治体や日本の民間企業より、米国の民間企業のGoogleやAmazonの方が信頼できる、といえば確かにそうかもしれません。平和が続くことが保障されている時代なら日本の技術力とか安全保障とか考えずに「やすい海外企業」に頼めば良いのですが、戦争もあれば国際紛争もある時代なら、「他国の民間企業」に頼っても安心なのか? という疑問もあります。もし仮に、日本と米国の関係が(数十年前の第2次世界大戦のころのように)悪くなったら、日本の行政は完全に停止します。 なお、技術力が低く価格も高い「官庁と癒着した、技術力の低い日本企業に任せた場合、セキュリティは確保できても、安定性が保証できるのか?」という懸念もありますが...(^^;
このように、現実には「様々な観点での性能要求」は、「相反する要求」であることも多いため「全てが完璧」というのは、少なくとも現在の技術や産業の構図や政府やお友達業者の意向などの関係で、「両立不可能」な場合も多いです。ですから、現実的に一番大切なことは「バランス」になります。
業務の性質を良く知り、それを踏まえて、機密性重視の部分、可用性重視の部分、保守性重視の部分、信頼性重視の部分... それぞれ「どの程度の重要性があり、それが損なわれたときにはどの程度の被害(損失)になるか」を踏まえて、それぞれの視点から「必要な程度」の対策を昂じる必要があります。「それぞれの個別の技術」については、コンピュータの専門技術者が知っていますから(お金を出しで)頼めばできますが、コンピュータ技術者は「そのシステムを使って行う業務の専門家では無い」ですから、その業務で、何をどの程度考慮すれば良いかは知りません(というか、業務ごとに全て違います)。各業務に携わる人が、コンピュタを利用したシステム開発をする業者に、「やりたいこと」を正確に伝えて、業務用システムを作る必要があります。そのためには、「各業務を行う人」には、それを正確に伝える程度の「常識」と「コミュニケーション能力」が必要になります。今本当に必要とされている「コミュニケーション能力」は、上司へのゴマスリ能力ではなく、多分そのような能力と思います。
皆さんは、そう言うことも経験しながら、「時代遅れ」になるリスクを感じていただき、特にセキュリティ関係は、「昔のしつけや昔作った社内ルール」とか、素人からの「注意喚起アナウンス」などに盲目的に従うのではなく、「常に自分で調べ、常に自分で学び続けること」が、一番大切だと思っていただければ良いと思います。
具体的な事例をいくつか紹介しておきます。皆さんも、現実の具体的な「様々な事例」について調べ、「現実はどうなっているのか?」を調べたりして、「どうしたらいいのか?」を、常に(時代変化に即して)考えることを、お勧めします。
【マイナカード、誤登録問題 】様々な問題が報道されていますが、一番大きな、おおもとの問題は「どの情報を、どのようにデジタル化するか?」の問題が、まったく片付いていないことです。本人であることの証明なら、何をもって本人とするか? 本人を特定するための属性情報は何か?という問題です。例えば「氏名」の情報ですが、おおもとの情報は「戸籍」という形で管理するように(明治時代に)作られました。当時は「手書きの漢字文化」でしたから、日本の戸籍制度は「手書きの漢字の書類」として管理されおり、「読み仮名」は記載されていませんし、同じ漢字でも字体が何種類もあったり、誤字も「そういう新しい字」として、戸籍に登録されていきます。さらに日本では「戸籍上の氏名と異なる氏名(例えば異なる漢字)を、通称として用いる」こともあります。同じことは「住所」の記載でもあります。これでは、「氏名のデジタル化(氏名とビット列を一対一に対応付けること)」ができません。ですから、デジタル処理が必要な場面(キャッシュカード、クレジットカード等)では「読み仮名(あるいはローマ字)」により、管理することが「1970年代の電算化が始まった時代から」普通になっています。しかし、戸籍など「行政の管理する情報」は、一向にデジタル化を前提とするように変更されず(明治時代のまま)、読むことが不可能ないわゆる「キラキラネーム」なども流行し、しかも「書体情報を含む手書き漢字と、漢字コード(デジタル)の間に一対一対応が無い(作れない)」ため、「戸籍情報に基づいた氏名の情報」は、印刷物を人間が見て判断するという手法でしか処理できない、という状況は、どんどんと時代遅れの方向に進みました。この問題は「氏名に使える書体を制限する(文字コードが存在する字のみ)」あるいは「一意的な読み仮名(フリガナ)」の情報を、氏名を識別するための情報として利用することが必要不可欠です。なお、電算処理が必要な、住民台帳や口座登録では、読み仮名(フリガナ)がありますが、あくまで「単一組織の単一処理システム内で使われる内部的な付加情報」という扱いであるため、その情報の正しさは、保証されていません(本人が主張しているだけ、何処にも「正式な読み仮名」は登録されていません)。これらの問題は「漢字文化(表意文字文化)」から起こる問題で、文字の個数が限られている「アルファベット文化(表音文字文化)」には存在しない問題です。同じことは「住所」のデジタル化(住所をビット列を、一対一対応させること)でも起こります。つまり、氏名や住所等の個人情報を、コンピュータを用いて管理(デジタル化)するためには、それらの情報を、ビット列と一対一対応するように「登録・管理方法」を定めなければ、コンピュータで処理できません。このような、本来、50年前に片づけておくべき問題が、未だにそのままになっています。これが「現在の日本の行政」の状況で、行政のデジタル化が50年ほど時代遅れになっている理由です。その段階で「見かけだけのデジタル化」で「カードで管理しようとしたり、暗号化技術を使ったICチップを使ったり」しても、そもそも「そこに格納されている情報自体が、(一対一対応していないために)、チェックも他の情報との紐づけも適切にできない」ものになります。
そのため、銀行口座の情報とか、健康保険の情報とか、「既に他の機関で適切にデジタル化されて利用されている情報」との不整合が、必然的に起こっています。銀行口座やクレジットカードなどは「読み仮名」を個人を特定する情報として用いていますが、戸籍には読み仮名がなく、マイナンバーのシステムでも「読み仮名」がありません。ですからマイナンバーに他人の口座が紐付けられてもはじかれません。
また、登録システムもずさんです。普通、入力システムには「フール・プルーフ(ポカヨケ)」を組み込み「論理的に誤った入力ができないようにして、人間のミスを事前に防ぐ」ことが必要であることは、すでにこの授業でも説明したと思います。他人の健康保険証や他人の口座との「誤った紐づけ」を防ぐには、あらかじめ健康保険や銀行口座などの管理システムに(自動的に)問い合わせて、それぞれのシステムに登録している「本人のものか?」をチェックし、もし論理的な不整合があれば登録できないようにする(誤入力を防ぐための、フール・プルーフを組み込む)ことが、必要不可欠です。なお、報道によると「業者が作ったシステムには、一旦ログアウトしないと次の作業に進めない(ログイン操作におけるフール・プルーフ)が組み込まれていたが、操作が複雑になるという理由で、外すように(行政から)指示された」ということです。
本来、このような「大規模なデジタル化」は、「人間の手作業(人海戦術)に頼るのではなく」「既に関係各所でデジタル化され、運用経験を踏まえて、そのデータの信頼性や正確性がチェックされたもの」をベースにして加工し「必要があれば、最終チェックのみ、簡単に本人(人間)が行う」 という方法を使います。入力ではなく、確認だけならそれほど面倒にはなりませんから。 そして、「異なるデータベース間で、同じ情報が異なる表現になっている」と、そのような作業を機械的にできなくなりますから、まず、マイナンバーカードを作る前に、対応付けの根拠になる「氏名や住所のデジタル化」が必要です。もちろん、システム(当該の機械だけでなく、その他の運用システムや、社会システムなど全部)が「マイナンバー」を用いて連結できるようになっていればよいですが、「それをこれから作り、普及させましょう」という段階では「マイナンバーをキーにして情報を連結」することができません。そのような根本的な問題をそのままにして「ともかくカードを作らせること」を目的としたことが、マイナンバーカードの失敗の原因です。
なお、本来、そのような作業を行うには、任意でなく「国などが、自らの責任で行うこと(問題が起きたら国が責任を取る)」ことが、一番自然と思いますが、「どんな誤りや不正利用や不正アクセスが起きても、自分たち(国)は責任を取らない(日本の行政特有の無責任体質)」ようにしたいため、強制ではなく「任意」という形なのでしょう。本当の意図は知りませんが、少なくともマイナカードの利用規約は「何かトラブルが起こっても、それは(任意ですから)あなたが選択したことで、私たち(国)は、一切の責任を取りません」という内容になっています。なお、コロナワクチンの接種も「任意」なので、いかなる問題が起ころうと(死亡を含む健康障害がいくつも起こっているようですが)因果関係証明できないとして処理され、誰も責任を取っていません。いたるところで、「任意」という形で「同調圧力で、実質的に強制」し、一切責任は取らないという手法が幅を利かせているのが「本当の、日本の問題点」なのかもしれません。
なお、2023年にマイナンバーカードに「フリガナ」を入れるように法改正をする予定だそうですが、そのような「最初の計画がきちんと練れていないための不備」が満載ですから、落ち着くまでには、多額の費用と労力と混乱が不可避でしょう。デジタル化(電算化)はデータや処理方法を「例外のない、論理的な構造にすること」がポイントなので、最初の部分で曖昧性や非論理的な問題があると「ボタンの掛け違い」になり、強引に進めれば進めるほど、多大な無駄が生まれ、被害が広がります。
丁度、auの大規模通信障害が起きましたので、いろいろ調べておくと、学ぶべき点が多くあると思います。今回も、1つの機器の異常がシステム全体に広がった例です(予算不足で十分な冗長性を持たずに「助け合うシステム」を組んだ場合に起こることです)。なお、auだけでなく、日本の携帯電話回線は全て、きわめて脆弱な状況にあります。また、電力網もきわめて脆弱ですので、そのようなことは踏まえておくといいでしょう。本来専用回線で安定性を保つべきところを、コスト削減のために携帯電話回線を使うと、今回のように、かなりの地点のアメダスの観測データやATM等が利用できなくなり、気象予報や決済などに影響が出ます。台風とか大雨の時期に1日以上気象観測データが止まるのは...
たぶん大規模災害に繋がるのでしょう。参考までに、
・2022. 7/ 2 auの大規模通信障害
・2021.10/14 ドコモ大規模通信障害
・2018.12/ 6 ソフトバンク大規模通信障害
です。フォールト・トレランス... 言うのは簡単ですが、(日本の社会では)実現するのは難しいですね... なお、今回のauの障害は、2021年のドコモの障害とほぼ同じ原因・ほぼ同じ仕組みで起きています(KDDI社長の記者会見は詳細で分かりやすい説明です)。なお、VoLTE とは(internet技術を使った携帯電話専用の)パケット通信網を使って音声データを配送する仕組みで、音声通話ですが、回線交換方式では無く、データ通信と同じくパケット通信方式です。ですから、インターネットの仕組みと同じく「配送経路は動的に変化し、お互いの機器が助け合って障害に強い」仕組みになっています。しかし種々の機器助け合いが有効なのは「十分な冗長性か確保されている場合」であり、今回の件では、ルーターと利用者管理のデータベース周りでの冗長性が十分でなかったため、1つの機器(ルーター)の保守(交換)作業で起きた1つの機器の障害が、auの全通信網停止という、大規模通信障害に広がってしまいました。でもまあ、他の携帯電話網とは独立でしたから、auだけの障害で済み、他社の携帯電話や通信網にまで広がることがなかったのが幸い、捉えるべきかもしれません。もし、非常時に、ドコモ・ソフトバンク・auがお互いに助け合うシステムになっていたら、全社携帯電話網全停止という事態になっていたかもしれませんので。
一部、いまだに生体認証を「信じて」いる人もいるようですが、生体認証の破りかたなどを調べ「意外な方法で簡単に盗める(破れる)」ことを知っている方もいると思います。生体情報は「守るという意識や習慣がない」ため比較的簡単に盗むことができるものです。グラスを渡して指紋採取や、それを使った指紋判子作りは子供でもできますし、顔認証破りも、寝顔を使ったり、スマホの動画を利用したり、まあ3Dの顔認証でも、3Dスキャンあるいは複数の写真からの3Dモデリングと3Dプリンタそれにプロジェクションマッビングによる立体的動画の組み合わせくらいなら、素人でもそこらで売られているものを適当に組み合わせて簡単にできますから... まあ普通にいろいろできます(簡単に破れます)。新しそうなものって、(守る・破るのいたちごっこの歴史が短いから)視点を変えると、意外と簡単に、破る方法を見つけられる場合が多いです(^^;; ちなみに、もし究極の生体情報であるDNAを認証を使うなら.... これは「とても簡単に盗めます」ので... もしそんな時代になったら「いつも宇宙服でも着ていないと」漏洩防止ができません(^^;; だから推理小説やドラマなどにはDNA鑑定を利用した偽装工作の手口がいっぱい紹介されていますし、現実にも... まあ、生体認証は(パスワードの代わりになるものではなく)「アカウント名の代わり」でその先に「パスワード」があると思えば良いかも? 最も歴史の古いパスワードが、破る技術も守る技術も進んでおり、それを踏まえた上での「破りにくいパスワード」が、現実には一番破りにくいように思います。
また、生体認証の一番の問題は「盗まれても、簡単に変えることができない」点です。例えば、自分の顔データや指紋データという認証情報が盗まれた場合でも、自分の顔や指紋を簡単には変えられ無い(盗まれっぱなしになる)ということです。また、生体認証などは(便利ですが)、その危険性を意識する人も増えています、「もし、自分の顔情報が、犯罪者や、犯罪捜査や国家権力や、世界各国の認証や預金引き出しなどに使われたら?そして不正に利用されたら?」と想像して見るのも面白いかもしれません。なお現在、スマホなどで使われる信頼のおける顔認証の情報はそのスマホ内にのみ保存されるようになっていて、また、そのスマホ内だけで有効(つまり、スマホと言う「物」が手元にあること+生体情報 とい組み合わせによるセキュリティ確保が有効と仮定」)な範囲で使われ、顔情報や認証情報の漏洩の危険は少ないと言われていますが、「自分のスマホ外のカメラを利用した、自分の顔認証」とか、自分のスマホを利用していてもその顔認証情報を「外部のサービス等で管理しているもの」などは... まあ容易に「顔認証の情報を盗めるし、流用できる」可能性があると思います。「スマホを利用して全国民の顔情報を集め、防犯カメラの顔認識システムと組み合わせ、犯罪防止(という名の国家権力の押しつけ)に利用...」などということは「技術的には既に普通にできること」ですので、そういうことを行う「国家」があるかどうかですね。今一番その可能性がありそうなのは.... ちなみに、「国家情報法」を制定した、とある国は、世界中から、警戒されています。その「とある国」の企業のSNS等で、自分の写真や相手の写真などを用い交信していれば、そのデータは、「とある国」の軍や情報部局で解析可能ですから、たとえば「香港や台湾などに対するとある国」の弾圧や、「不穏分子の特定や摘発」等に、普通に(とある国では普通に合法的に)使われる可能性があります。 生体認証は「信頼できる組織で使われる」場合には良いのですが、場合によっては「自分の生体情報を永遠に盗まれるきっかけになる」という意識も、たぶん現在では、必要な気がします。
2022.6/22の事件ですので、いろいろ学ぶべき情報の報道があるでしょう。 まず組織(市)の、「大量の機密情報」の扱い方が誤っています。通常機密情報は必ず「複数人で、(担当者の誤りや悪意による)漏洩が起こらないよう、相互チェック」する体制を取ります。また、やむを得ず外部に持ち出すときにも、最低限「複数人で運搬。必要ならば、盗難(強盗)に備え、(専門の)警備員を付ける」のが普通です。また、「外部の業者に作業を任せる」場合にも、「当該業者による不正や盗難(流用)」を防ぐため、必ず注文側が(委託業者が不正を行わないように)立ち会うのが普通です。契約で「秘密保持」の項目を定めても「普通に、それが破られる場合がある」ことを念頭に置くことが必要です。 今回の場合、「委託業者が、(当該業務を自社で行うため)依頼者(市)に無断で持ち出せる環境を作っていた」ことが、問題です。また、「セキュリティ意識の低い業者」を選定して、そこに丸投げ(頼めば全部やってくれるだろうという誤った意識)なことも、問題点でしょう。
しかし、一番の問題は、記者会見で市の担当者が「USBにはパスワードをかけていて、パスワードは13桁の英数字、1年ごとに変更、尼崎市として意味のある単語と数字、はじめは大文字に変えても文法的にも正しい(つまり最初は英小文字)」と答えたことでしょう(^^;;;;
これだけ情報があれば、「リテラシーの低い尼崎市」ならば、多分パスワードは... ということが簡単に想像できます。尼崎関係の単語と毎年変わる数字で13文字なら、amagasaki2022 ?? まあ、それ以外でも、これだけ情報があれば「簡単に、確実に」パスワードを破れます(^^;; ので、まあ「情報は、全部流出したと思ったほうが良い」でしょう(^^;; 記者会見をする「責任者」のITリテラシーが「小学生以下」で、「自分たちはちゃんとやている(責任逃れ)と言いたいために誤って話したこと」なのかもしれませんが、可能性としては、紛失ということにして、第3者に(パスワードが掛かった)USBを売り(46万人の個人情報を売り)、そのパスワードを(買った人の特定を困難にするために)記者会見で、パスワードを確実に破るための情報を「意図的に流した...」なんて想像(妄想)することもできます。真実が何かは知りませんが...(^^;;)
なお、その後「USBを入れたカバン」が見つかったそうです、が、既に「記者会見で、パスワードを瞬時に破るための情報が、公開された後」ですので、第3者が無事?(^^; データを抜いた後、鞄とUSBを、紛失しそうな場所に返した可能性もあるので... あんまり安心はできないでしょうね(^^; 業者がUSBでデータを持ち出したり紛失したことも問題ですが、一番大きな問題は「市が、ほぼ確実にパスワードを破るための情報を記者会見で公開した」ことでしょう。たぶん、USBだけでなく、尼崎市のつけるパスワードの傾向が見えますので、ほかのシステムで同様に安易なパスワードを使っていれば、それらのシステムは芋ずる式に、瞬時に破られるでしょう。多分今頃、地方自治体関係のシステムなどに「組織名+年」でパスワードを破る試みをしている人が多数いるはずです(^^;;
なお、このような問題は尼崎市だけでなく、多分日本の殆どの地方自治体や国も、似たり寄ったりの状況でしょう。また、USBを紛失した業者は、BIPROGY(旧 日本ユニシス)で、東証一部上場企業ですので、まあ、「日本の、一流企業(笑)」のセキュリティ意識も、こんなもんだったということでしょう(^^;; さらに、受託した業者はさらに「他の協力会社」に丸投げして、しかもその協力会社は、さらに丸投げで特定の人に丸投げで、そうやって「最終的に、丸投げで委託された人」が、実際の作業を行っていたようですので....(^^;;;; 「お友達業者優先(そして丸投げの、多重下請け)」という日本の産業構図が、全てを破綻に導いているような気がします(^^;;;
山口県阿武町の、紙とFD(フロッピーディスク)のデータによる、銀行への依頼のミスに端を発した事件です。 業務の引継ぎができていない、業務の内容を理解していない職員に、当該業務を任せたことが、最初の問題です。この問題が起きる原因は「(送金)業務を効率化・マニュアル化していない(担当者の記憶に頼っている)」からで、「紙やFDを使っていることとは無関係」な原因です。たとえFDによる依頼がオンラインによる依頼に変わっていたとしても、同じ誤りが起こりえます。なお、ITリテラシーの低い人は「デジタル化が遅れていたから」なんて、バズワードの「デジタル化」で捉えようとするかもしれませんね(^^;; 。
また、「誤りを発見」した時の対応の遅さ(誤り)もあったようで、これが事態を深刻にし多分「善良な1市民を、犯罪者に変えてしまった原因」でしょう。お役所的発想で「俺が『お願い』すれば、相手は従う」と思い込んでいたミスです。多額のお金が絡む場合には、直ちに「法的に適切な手」を打つ必要があります。
町のずさんな対応にもかかわらず、「この件の依頼を引き受けた弁護士がきわめて有能」でしたので、(マネーロンダリングを捜査されたくない金融業者に圧力を掛けるという、アクロバティックな手法で)この問題は解決に向かいました。でも、同じ問題は多分この件だけでなく、多数起きているのでしょう(^^; そもそも「コロナと無関係な業者が、コロナ給付金事務を委託されていて、そこに委託料として多額のお金が(合法的な委託料として)流れているでしょうし...(^^;
なお、このケースと似た、別の事件ですが、東京都葛飾区が、区内の私立認可保育所に対して、5億円超の補助金を過大支出しており、保育所からミスの可能性を指摘されていたにも関わらず、そのまま放置し「返還を求めない」方針を決定したとの報道もあります(^^;; まあ、葛飾区ですから、利益を得た関係者に、(漫画の)「両さん」みたいな人がいるのかもしれませんね(^^;;
「犯罪者」の方の視点もありますが、それ以上に、サービス提供側の問題が大きいです。その事件の背景や原因に目を向けて調べると、特に、社長などの「意思決定者の(多分、自分はIT苦手と自称する学生さんから見ても)非常識なほどの、勉強不足・認識不足・セキュリティ意識の甘さ」が、この事件の原因ということが分かると思います。なお、決済システムとアプリ(認証システム)は別チームで開発され、決済システムチームは「当然専用アプリによる強力な認証を行ったで、決済システムに処理が移行するもの」との前提で進め、アプリ開発チームは、上層部から「既存のセブンポイントのアプリと、セブンペイのアプリを別に開発すると、コストがかかるから、1つにする」と言う方針だけが伝えられ「なら、セキュリティは既存のセブンポイントアプリのレベルで良いのだな。決済に必要なセキュリティ確保のための仕組みは決済システムに組み込むと言うことだな」と解釈し、お互い別部門なので、直接技術的な意見を交わすことなくそれぞれの範囲のプロジェクトは独立に進められたようです。両者を合体した時点で、開発者たちは(当然)穴だらけであることに気が付き「こりゃダメだ!延期!」と思ったようですが、上層部が「(セブンだから?)7月1日の日程優先!予定通りの日程でセブンペイサービス開始!」で強行した。という経緯が、当時報道されていました。なお、運用開始直後に「認証の甘さやシステムの甘さを利用して儲けるのが(犯罪者、あるいは中国の)常識」と言う多くの人たちにより瞬時に破られ、「ITリテラシーの低い社長だけが、その後もしばらく、事態を全く把握できずに、呑気な会見や的外れな社内指示を出し続け...」完全にセブンペイは崩壊しました。
これが「ITリテラシーの低い人がトップにいるトップダウン組織」の宿命です。現在に目を向けると....「ITリテラシーが極端に低い」日本国内では至る所「同じ構図」が見えます。
過去の復習になりますが、「日本固有の「パスワードは別メールで文化」の無意味な習慣」の話、最近(と言う2020年)話題になっていますね(^^; 興味のある方は「PPAP(セキュリティ)」でWikipediaなどを調べてください。「PPAP全面禁止 ピコ太郎」で調べてもいろいろ出てくると思います(^^; 。なお調べればわかると思いますが、情報の専門家は最初から「この方法は無意味で危険」ということを知っていましたが(そして私の授業でも少なくとも10年以上前からそのことを学生さんに伝えていますが)、日本では通産省管轄の天下り組織(認証団体や監査法人など)が、日本国内で「資格ビジネス・認証ビジネス」の手法で、普及させた方法です(海外にはこういう悪習はありません)。日立やNECのようなまともな会社でさえ、(セキュリティ素人の)お役人からの指示には逆らえず、PPAPを使ったり、PPAPを支援する製品を販売していましたが、ようやく政府がPPAPの問題に気がつき(と言うか、その程度の常識のある人がデジタル担当になり)国が最近全面禁止にし始めましたので、ようやく(はじめから分かっていた)民間企業も、使用禁止の流れが始まったということです。名前は例のピコ太郎の歌をネタにして、なんとなくそれらしい正式名称の略語風にして「PPAP」という名前がつけられていましたが、デジタル庁が全面禁止の号令を掛け、多くのIT企業も公式に全面禁止を打ち出し「PPAP全面禁止」というニュースが溢れ... 「PPAPの元祖ピコ太郎がそれを見て、驚いた(^^;」という話がtwitterに投稿され、広がっています。
なお、PPAPが無意味である(機密性確保ならパスワードは別経路で)、ということは既に説明していますが「なぜ危険」かは、十分には説明していませんでしたね。暗号化されていると「ウィルスチェックソフト等」は、その中に暗号化されて潜んでいるウィルスなどを検出できません。最近は、メールなど「データ配送中にウィルスチェックを自動的に行う」という仕組み使って、ウィルスメールは配送しないというサービスも普及してきています(詳しく知りたい方は「WAF(Web Application Firewall)」などのキーワードでWebで調べてください)。ところでそのようなウィルスチェックの仕組みは、「メール等の通信の中身を、ウィルスチェックシステムに配送し、ウィルスチェックシステムが、メールの中身を機械的に分析する」ことが必要になりますので.... 実はこれ「盗聴システム」と同じ仕組みになります。ですから(通信経路側で盗聴防止するのは良いけど)、メール(データ)側で盗聴防止を行おうとすると、同時に「ウィルスも検出できなくする」ことになります。なおその設置や運用は「実質的な盗聴にならないように」注意する必要があります。セキュリティ確保は「バランス」が重要です。ですからPPAPのような「盗聴防止効果の無い無意味な暗号化とパスワード送信」だと、何もメリットがなく、単に、(ウィルスチェックを回避し)ウィルス侵入のリスクを高めるだけ、と言う結果になります。 メリットが無くデメリットだけというのが「PPAPが危険」という意味です。だから「PPAP全面禁止」は当然であり、何を今更? というものです。
みなさんの周りにも、未だに「PPAP推奨したり、義務付けたりする人や組織」もあるかもしれませんので、そういう人がいたら、このこと(PPAP全面禁止の流れ)を教えてあげると良いと思います。
本日の話はこのへんで終わりにし、次回は、著作権など「情報処理技術の進展によって、生み出された価値を、誰に帰属すべきか?」という、思想や法について、学んでいきましょう。