製品進化とマネジメント風景 第58話 ブロックチェーン技術とデータセキュリティーマネジメント
前回までは、情報セキュリティーマネジメントの観点から、今日の主流である境界型防御システムと、その進化系であり今後の主流になるであろうゼロトラスト型防御システムについて議論してきました。これらが守ろうとするのは、当たり前の話ですがデータです。デジタル前時代の言葉で表現すれば、文書とそこに記載された情報です。今回はこのデータが主題です。
データを守るという意味はいくつかに分類できます。製品の設計方法や製造方法などの企業価値を生み出す秘密データに対しては、情報漏洩をさせないことを意味するでしょう。これに対して、秘密にする必要のない公開情報では、改ざんされないことが最も重要となるでしょう。最近しばしば話題になるプライバシー情報はこの中間に位置すると考えます。なぜなら、プライバシー情報は、身近な人には積極的に開示するものの、赤の他人には隠そうとするからです。そこで1つ疑問が出てきます。人間社会にとって、秘密情報が守られることと、正しい情報が改ざんされないことのどちらがより重要なのだろうかという疑問です。
私は正しい情報が改ざんされないことがより重要と考えます。
企業価値を生み出す秘密データが情報漏洩したとすれば、企業は大きな損失を被ることになるでしょう。しかし、日本の製造業に関する限り、致命傷にはならない場合が意外と多いのではないかと思います。なぜなら、設計や製造という活動では、紙に書かれた情報(あるいは電磁的に保存された情報)だけでは再現できず、そこに多くの暗黙知的ノウハウの投入が必要だからです。特に日本では、経験的にノウハウを体得するのが上手な人が多く、一方でこの暗黙的ノウハウから本質を絞り出し、再利用しやすい方法に一般化することが苦手な人も多いからです。
他方、正しい情報の改ざんはずっと恐ろしいと考えます。ジョージ・オーウェルのSF小説「1984」を読んだことがある方であれば、私の考えに共感いただけるのではないかと思います。そこでは、過去の歴史、現在起こっていること、個人のプライバシー情報の全てが書き換えられてしまう世界が描かれています。
現実感を持ってもらうために2つだけ例を挙げましょう。1つ目の例は、貴方はネット銀行のユーザーであり、過去の残高経過を全くプリントアウトしていなかったとします。昨日はたくさん残高があったのに、今朝起きてスマホでチェックしたら残高がゼロになっていました。実は、悪意のある者に記録を改ざんされ、全額奪われてしまったのです。驚いて過去の残高記録を確認すると、1年前から稼ぐよりも使う方が上回っており、今日の残高ゼロは必然にしか見えなくなっていました。銀行に問い合わせても、データには改ざんされた形跡を見つけることが出来ず、真実を語っていると言われて相手にされません。
もう1つ例を挙げましょう。昨日までは上手く動いていた素材の製造設備が今朝来てみると動かなくなりました。調べてみると設備に組み込んだプログラムにおける製造条件データが改ざんされていることに気付きました。そこで、製造条件が記載されている原本データを見て元に戻そうとしたら、原本データも改ざんされていました。バックアップは昨夜更新されたため、バックアップデータも改ざんされたデータになっていました。数年前からペーパーレス化が推進されてきたので、紙にプリントアウトしたデータもありません。
電磁的な情報しか存在しない世界ではこういう事が起こりかねません。ゆえに改ざん防止が最優先の課題だろうと考えるわけです。
今日、情報の主体は、紙から電磁的記録に移りつつあることは間違いありません。そのため、改ざんさせないための技術として注目を浴びているのがブロックチェーン技術です。ブロックチェーン技術は、電磁的な記録に対して改ざん防御と復元性のあるデータ保存手段として、今、世界中の政府、企業、個人から注目されています。
2010年代になって日本の製造業においては品質記録の改ざんがしばしば報道されてきました。これについては、品質記録の改訂について、誤記を含めて、部長や品質担当役員などの一定レベル以上の役職しか変更できない、しかも、変更記録は必ず残り、それを消すことが出来ないようにすれば、安易な改ざん行為は防げる可能性があります。暗号通貨については資金洗浄の道具になっているという話もあり、その善悪は議論の真っ最中ですが、純粋な情報システムとして考えるならば、少なくともビットコインは、未だに改ざんされたり、決済システムがダウンしたことはありません。みずほ銀行のATMがしばしばダウンしていることと比べると対照的です。取引所から盗まれたことはありますが、これは取引所の問題であり別の話です。
ブロックチェーン技術はビットコインという通貨システムとして有名になりましたが、むしろ、あらゆる重要データの改ざん防止技術、改ざん検知技術として高い価値があります。今の製造業、サービス業は自動化が進む一方ですが、そういうシステムでは、一旦なりすましに入られると非常に脆弱です。自動化は自社内だけでなく、パートナー企業、サプライチェーン企業あるいは顧客企業とのデータ授受に及びます。さらにIoTの世界では、取得した顧客データを悪意のあるハッカーに提供し続けてしまうリスクもあります。これらに備え、データ改ざんだけは検知してすぐに気付けるようにすることが、無人化や自動化を促進する企業の必要条件になるでしょう。
ブロックチェーンにおける耐改ざん性機能はハッシュ関数が提供しています。一方、復元性は多重バックアップに依拠しています。多重バックアップを持つということは、公開データの場合には全く問題になりませんが、秘密データの場合には秘匿が必要であり、暗号化が必須です。暗号化は前回までに十分に議論してきましたので割愛し、今回は、耐改ざん性の要であるハッシュ関数に焦点を当てたいと思います。
ハッシュ関数はある入力が与えられた時にあるハッシュ値を出力しますが、ハッシュ値から入力を予想できない一方向性を持つ関数です。複数のタイプのハッシュ関数がありますが、耐改ざん性を持ち認証に活用されるのは暗号学的ハッシュ関数であり、以後、ハッシュ関数といえばこれを指します。
Hashは切り刻んで混ぜるという意味を持ちます。実際のハッシュ関数は、入力の平文をあるビット数に区切り、それぞれを圧縮処理し、一定ビット数を持つハッシュ値に変換します。入力は原則として、いくら長いメッセージでも構いません。一方、出力は入力が圧縮され、一定ビット数に低減します。よって、原理的に同じ出力となる入力が存在することになります。この身近な例は誕生日です。誕生日は最大366個しかありません。よって、367人いれば、同じ誕生日の人が必ず1組以上いることになります。ハッシュ関数でも同様の現象が起こり、サイバー攻撃はハッシュ値の衝突性に向けられます。
同じ出力(ハッシュ値となる入力を複数集めていくと、入力を解読する手がかりとなり、この衝突性がハッシュ関数の安全性の限界を規定します。例えばハッシュ値が8ビットの場合、2の8乗、つまり256個のハッシュ値を取り得ますが、2の4乗、つまり16回程度、このハッシュ関数を使用してハッシュ値を集めていくと、同じハッシュ値が出てくる確率が50%を越え、解読されるリスクが生じます。衝突は意外と少ない数で起こりうることが分かります。よって、解読されないようにするにはハッシュ値のビット数を大きくする必要があります。今日では128ビット、256ビット、512ビットが使用されています。これは、ハッシュ関数が適切であれば、それぞれ、2の64乗、2の128乗、2の256乗の回数までは衝突を生じさせずに安全に使用することができます。ちなみに2の64乗はだいたい10の18乗、エクサのレベルに相当します。2030年にはエクサレベルでも危険になると言われています。
ハッシュ関数の構造は2タイプあり、それらはMerkle-Damgand構造(MD構造)とスポンジ構造と呼ばれています。
MD構造は、メッセージを同サイズのブロックに分割します。通常は、ハッシュ値のビット数の2倍とします。256ビットのハッシュ値を出力するハッシュ関数の場合には、分割メッセージのビット数は512です。分割メッセージを入力とした圧縮関数の出力値と初期値から個別ハッシュ値を求め、これを全メッセージ分に対して繰り返します。
圧縮関数の代表として2つがあります。1つは加算Addition, 回転Rotation, 排他的論理和XORを組み合わせたARX型であり、もう1つは非線形性を持つS-box型です。これらは以前のコラムで述べたAES暗号にも使われています。つまり、MD構造のハッシュ関数は、暗号化処理を繰り返し実施しているとも言えます。当然、演算量が増えるので計算負荷が大きくなります。
スポンジ構造型ハッシュ関数では、同等の安全性(衝突困難性など)を持ちつつ、暗号化処理を最小限に抑えて演算量を低減することが可能です。最初に吸収プロセスがあり、そこではMD構造とは異なり、よりシンプルな演算を繰り返します。ただし、演算空間のビット数はずっと大きく取ります。例えば256ビットのハッシュ値の演算空間は1600ビットが使われます。この演算空間はスポンジのようにデータを吸収していき、その後に絞り出しプロセスを行います。絞り出しでは演算空間内で非線形な暗号化処理を実施してかき混ぜをします。そして、先頭の256ビット分をハッシュ値として出力します。
ハッシュ関数は耐改ざん性の鍵であるため、国によって使用する系統が異なります。米国ではSHA系、中国はSM3系、ロシアはStreebog系などです。日本は米国系のSHA系を使っています。SHA-3のハッシュ関数を選ぶコンペでは日本からもエントリーがありましたが選定されませんでした。
ハッシュ関数の歴史を振り返ると、米国では1992年から2005年まではMD5が使用されていました。しかし、2005年に中国研究者がハッシュ値の衝突を突き止める方法を見つけ出し、SHA系への切り替えが勧告されました。SHA-1は1995年から使用が開始された160ビットのハッシュ関数です。本来、2の80乗の回数を使用するまでは衝突が起こってはならないのですが、理論研究の結果、2の63乗までの衝突困難性しか有していないことが後に判明し、現在ではSHA-2への切り替えが推奨されています。現実問題として、オンライン会議やVPNの認証などではSHA-1が多用されています。2の63乗ということは前述のエクサのレベルであり、2030年までは盗聴リスクは小さいのではないかと予想されます。
SHA-1では本来の衝突困難性を確保できなかったという失敗があったため、これを教訓としてSHA-2が開発され、現在の主流となっています。SHA-2は2001年にブロック暗号AESとともに使用されるようになりました。AESは現状最も信頼されている暗号化方法ですが、SHA-2はMD5, SHA-1と同じMD構造であるため、安全に使用できる期間はそう長くないだろうという意見が多く、SHA-3の開発・コンペが実施され、2015年にKeccakが選定されました。Keccakはスポンジ構造型のハッシュ関数であり、MD構造と異なり研究し尽くされていないことが選定に寄与したと言われています。
ここまでブロックチェーン技術の耐改ざん性の鍵であるハッシュ関数について述べてきましたが、実はブロックチェーン技術が凄いのはここからです。ブロックチェーン技術を使ったイーサリアムが開発され、スマートコントラクトが実現できるようになったからです。
スマートコントラクトの一番原始的な姿は自動販売機です。100円玉を入れて自分の好みの飲み物のボタンを押すとそれが出てくるプロセスは一種の無人契約の実行です。タバコの自動販売機では、成人証明であるtaposというIDの提示が必要であり、それが提示された条件の下、コインでタバコを買う契約が遂行されます。
2016年に、ロシアにおいてイーサリアムで書かれたスマートコントラクトによりドローン(無人機)が自律的な飛行をしました。スマートコントラクトは、契約内容の入力はありますが、プログラム起動後は契約遂行が完了するまで無人で自律的に動きます。この技術は、無人タクシーや無人攻撃機という武器にも応用可能です。
社会的に良い用途としては、例えば、太陽光発電、風力発電と火力発電を営む別々の会社があり、その3社がスマートコントラクトで締結した場合を考えます。太陽光の電力を供給している地域の天気が悪化して電力が減った時、風が出てきて風力の電力が増えていたならば、太陽光発電の不足を風力で自動的に補うことが可能です。また、太陽光発電も風力発電も出力が低下した場合には火力発電から電力を供給する形の連携も可能です。スマートコントラクトを使えば、3社間のやり取りを無人かつ自律的に遂行できるということです。
ここで質問です。仮に無人タクシーを想定した場合、中央集権的な管理室があってそこで全てを管理している場合と、前述のようにスマートコントラクトにより個々のタクシーが自律分散的に管理されている場合のどちらが良いでしょうか? 前者は万が一悪意のあるハッカーが管理室を占拠すると、全てのタクシーが乗っ取られることになります。これに対して分散型であれば、仮に乗っ取られたとしても1台だけです。ハッキングの悪影響を最小化するには自律分散型の方が良いように思われますが、ここは意見が分かれる所でしょう。
さらにスマートコントラクトを集めたDAO (Decentralized Autonomous Organization)が出現し始めています。これは一種の無人会社です。ミッションが与えられるとその目標を達成するまで止まることがありません。まだ、法人格を与えられていませんが、スマートコントラクトの中味を決めるのは、出資者(一種の株主)です。出資者は人間かもしれませんが、同じようなDAOあるいはAIかもしれません。SFのようですが、現実となりつつあります。スマートコントラクトはミッションを達成するまで止まらないように設定できるので、そこに危険を感じます。万が一暴走しても期限が来たら止まるように期限を短めに設定することを義務づけないと空恐ろしいですね。
以上、ブロックチェーン技術とデータセキュリティについて概観しました。データ改ざん検知の手段として役に立つ存在ですが、一方でスマートコントラクトとして自動化、無人化に適用される場合、合法的であることはあくまでも必要条件でしかなく、十分条件として道徳的な判断が求められるようになると思います。昔、アイザック・アシモフが小説の世界において「ロボット5原則」を作りましたが、これからは現実世界において類似の原則を作る必要がありそうですね。