PARSECを使ったシステムはどうなるのかを示したのが図3である。
PARSECは、マイクロサービスとして稼働するので、アプリケーションからはPSA Crypto APIを使ってIPC(Inter Process Communication)の形でセキュリティ関連のリクエストを出し、PARSECサービスが個別のセキュリティハードウェアにアクセスを行ってその結果をクライアントに返すという形になる。
もちろん、図1や図2で出てくるDiscrete TPMなどさまざまなHSM(Hardware Security Module)などは、個々のハードウェアベンダーというか、ハードウェアプロバイダーがサポートする(PARSECサービスのプロバイダーにするためのソフトウェアを記述する)必要があるが、PARSECそのものは先述した通りソースが全て公開されているから対応はそう難しくない。
ちなみに、クライアントから見たPARSECへのアクセスであるが、通常は高レベルのAPIやライブラリを経由することで意識せずにアクセス可能だが、必要であればClient Library Coreに直接アクセスすることできめ細かい(≒面倒だが細かな制御ができる)とされる(図4)。
図4 このClient Library Coreは、要するにPSA Cryptography API Specificationに準ずるものとなる。現状だとRelease 1.0 beta3がリリースされている(クリックで拡大)このPARSEC、2020年4月時点での進捗は図5のような感じだ。
図5 本稿の原稿執筆時点(2021年2月1日)では、例えばRustとGoのClient Libraryは既に公開されているが、なぜかCのライブラリはないとか、このスライドの時点から紆余曲折があった模様(クリックで拡大)まだ広範に利用できるというレベルではないのだが、それでも必要なコンポーネントは次第にそろいつつある。何より2019年あたりからのスタートだから、全部そろうまでには時間もかかるし、PARSECのベースであるPSAそのものの普及もこれからだから、PSAが実用になる頃にはPARSECも利用可能なレベルに到達しそうである。少なくともArm自身はPARSECを前提にセキュアな環境構築を想定しているためだ(図6)。
Copyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク