欧州ETSI定義の eID means とは。

今日は小ネタとして欧州標準化団体であるETSIのドキュメントから、リモート署名のセキュリティとして出てくるワード「**eID**」「**eID means**」「**eID means reference**」の定義を見て私なりの理解をまとめてみたいと思います。まず今回参照するETSIドキュメントは、ETSI TS 119 431-1 です。以下よりダウンロードできます。

<a href="https://www.etsi.org/deliver/etsi_ts/119400_119499/11943101/01.01.01_60/ts_11943101v010101p.pdf">**ETSI TS 119 431-1 V1.1.1 (2018-12)**</a>
Electronic Signatures and Infrastructures (ESI);
Policy and security requirements for trust service providers; 
Part 1: TSP service components operating a remote QSCD / SCDev

この文書はTSP（Trust Service Provider）のポリシーとセキュリティ要件を解説した文書シリーズですが、パート1では特に**リモートQSCD/SCDev**に関して解説した技術文書です。

QSCDとは **Qualified Signature/Seal Creation Device** の略となり、適格署名/シールの生成デバイスのことで、リモート上にQSCDを置くことで**リモート署名**を実現します。リモート署名とはオンラインのサーバ/クラウド上に署名鍵を置き、認証/認可により署名鍵を利用してデジタル署名を実現する方法のことです。

サーバ/クラウド上に置いたリソースを使う為の認証/認可だと考えると、リソースが署名鍵になるだけで、リモート署名も一般的な認証/認可の話の1つだと言えます。

ETSI TS 119 431-1 では、リモート署名の機能をサブコンポーネントに分解し、それぞれに関するセキュリティ要件を定めています。この中で eID means と言うワードが重要な要素として解説されています。例えば以下はリモート署名をサブコンポーネントに分けた図です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/867320/74591e57-db26-1b57-41ec-cfb38df9f7cb.png)
この中で「**eID means provision service**」と「**eID means linking service**」と言うサブコンポーネントがあります。簡単に言えば eID means provision service とは eID means の発行サービスであり、eID means linking service は eID means reference を署名鍵にリンクする（関連付ける）サービスです。と言っても良く分かりませんよね。そこで ETSI TS 119 431-1 の '3.1 Terms' から「**eID**」「**eID means**」「**eID means reference**」の定義を見てみましょう。

- **eID (electronic identification):**
    process of using person identification data in electronic form uniquely representing either a natural or legal person, or a natural person representing a legal person
NOTE: As defined in Regulation (EU) No 910/2014 [i.1].

- **eID (electronic identification) means:**
    material and/or immaterial unit containing person identification data and which is used for authentication for an online service
NOTE: As defined in Regulation (EU) No 910/2014 [i.1].

- **eID (electronic identification) means reference:**
    data used in the SSASC as a reference to an electronic identification means in order to authenticate the signer
    **EXAMPLE:**
    - When the eID means uses asymmetric keys, the public key can be the reference.
    - When a signed assertion is generated after a successful authentication of the signer, the assertion signer id and the user id can be the reference.
    - When the eID means uses a secret key (e.g. one time password generator) the secret key can be the reference. 

ひとつずつ見て行きましょう。**eID** の説明をGoogle翻訳すると「自然人または法人、または法人を代表する自然人を一意に表す電子形式の個人識別データを使用するプロセス」となります。まあ電子署名/eシール用なので署名者と言う**存在を一意に示すIDそのもの**と考えて良さそうです。

次に **eID means** の説明ですが「個人識別データを含み、オンラインサービスの認証に使用される有形および/または無形のユニット」となります。良く分かりませんねw eID means は個人の識別IDを含む **Authenticator（認証器/認証コード）** なのだと考えて良さそうです。有形または無形と言うのは、ハードまたはソフトによる認証要素と理解すれば良さそうです。means は「意味」では無く「手段」ですね。つまり eID means は eID手段 となります。

ここまでは NIST の SP 800-63-3 を理解し認証認可を学んでいれば素直に理解できそうです。では次の **eID means reference** とは何でしょう。訳してみると「署名者を認証するための eID 手段への参照として SSASC で使用されるデータ」となります。eID手段への参照として？良く分かりませんね。幸い例が3つ示してあります。

- eID 手段が非対称キーを使用する場合は、公開キーを参照として使えます。
- 署名者の認証が成功した後に署名付きアサーションが生成された場合は、アサーション署名者 ID とユーザー ID を参照として使えます。
- eID 手段が秘密鍵 (ワンタイム パスワード ジェネレーターなど) を使用する場合、秘密鍵を参照として使えます。

最初の例は公開鍵ペアを使うケースですが、ICカードやクライアント証明書を使う場合となります。この場合は公開鍵を eID means reference として使えると言っています。3つ目の例もワンタイムパスワードを使う場合には秘密鍵を eID means reference として使えると言っています。どちらもリソースサーバが、**利用者から提示された eID手段（eID means）を検証して本人確認する為に使われる情報**と言えそうです。

そう考えると2つ目の例は外部にあるIDプロバイダ（IdP）を使った場合に、アサーションとしてIdPが署名した情報（トークン？）を受け取り、その中にあるアサーション発行者IDとユーザIDを eID means reference として使って良いと言っていると理解できます。つまりどのIdPが認証した利用者（ユーザID）なのかと言う情報を認証結果として利用して良いと言う意味だと思えます。外部のIdPを利用する場合の図があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/867320/02eae175-bd09-b9a3-3b9f-713bbed81947.png)
この図では eID means provision service がありません。それは eID means を発行管理するのは IdP だからです。この図では中央上にある Auhtorized party ですね。

以上から考えると、**eID はオンライン上の識別子、eID means は認証要素（Authenticator）自体、eID means reference は認証要素を検証し情報を取得する為の情報**、と言えると思います。

eID means は利用者が保有する情報であり、eID means reference はリソースサーバが保有して eID means を検証・確認する為に利用する情報と言うことです。この関係を簡単に図にまとめると以下となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/867320/80798b31-bc6f-0463-dae4-b485940ffe78.png)
今日はここまでとします。私が最初に ETSI TS 119 431-1 を読んだ時に分かったようで全く理解していなかったのが eID means 関連でした。この部分を明確に理解しないと欧州の適格リモート署名も理解できないように感じました。もし私の理解に誤りがあるようであればコメントください。そのうち時間と機会があれば ETSI TS 119 431-1 のサブコンポーネント自体の説明もしてみたいと考えています。