2019年10月16日水曜日

多要素認証時代到来!その鍵はクライアント証明書

クライアント証明書を用いて認証を強化するという話を耳にすることが増えてきました。いったいどのような仕組みで認証が強化されるのか、少しだけ踏み込んで、あまり難しくならないよう、技術面の話は抜いてご説明したいと思います。

PKI(Public Key Infrastructure)とは?

インターネットには「なりすまし」「改ざん」「盗聴」「事後否認」といった様々なリスクが潜んでいます。PKIは、「公開鍵暗号」という技術をベースに「公開鍵の正しさを保証するための仕組み」を整備することで、暗号化や電子署名を安心して使える保証されたものとして扱えるようにし、これらのリスクを排除することを可能にしたものです。

アリスとボブとアイヴァンで
それではまず、暗号通信などの書籍でよく登場するアリスとボブという具体的な名前を使って、例え話をしたいと思います。

ここでは、アリスがボブに、自分がアリスであることを証明するシーンを考えてみます。ボブがアリスを知らない場合、アリスがいくら「私はアリスよ」と言ったところで、ボブはそれを信用することができません。ですがこのまま二人だけの状態では埒が明かなくなってしまうので、アリスは自分がアリスであることを証明する何かをボブに示す必要があります。

そこで登場するのが第三者です。

第三者としてこの度、アリスをボブに紹介しようとしているアイヴァンを登場させましょう。アイヴァンはボブの親友で曲がったことが大嫌い、嘘はつかないし、とっても信用できるやつです。アイヴァンの手引でアリスとボブが初めて会います。残念ながらアイヴァンは別の予定があって行けそうにありません。ボブがとっても疑い深いやつだと知っているアイヴァンは、アリスに「この子がアリスだよ アイヴァン」と署名入の手紙を託します。



初めてアリスとあったボブは、アリスからアイヴァンに託された手紙を見せられ、この人は間違いなくアリスに違いないと信用するわけです。

第三者がいることでようやく自身の証明ができる。これは日常生活でもよくあるケースです。日常生活ではこういった場合、免許証やパスポートなどの公的証明書を提示することが多いですね。

改めてPKIとは?

では、上記の例え話をPKIに置き換えてみましょう。

PKIでは、アリスのように自身を証明したいものが主体者、ボブのように証明を求めるものが検証者、そして署名入りの手紙を証明書といい、これを作成して誰かの素性を保証するのが認証局(CA)となります。

もう少し具体的には、PCやスマホのブラウザ(主体者)が、証明を必要とするWebサイト(検証者)を閲覧する際に、認証局が発行した「証明書」を送ることで、自身を証明出来るようになる、という流れです。

このように、主体者も検証者も認証局を信頼していることによって、証明書が正しいものとみなされ、結果として、このような身元保証が成立します。

ただし、これまでのお話は、あくまでも証明書が正しいものであることを保証する枠組みでしかないので、証明書を盗まれたりしてもそのままでは「正しい証明書」として扱われてしまいます。もし証明書をなくした場合には「失効」の手続きをする必要があります。当然ですが、PKIにはこの失効も含めて検証する枠組みが整備されています。

認証局の信頼度はとても重要

これまでにも記述してきたとおり、認証局(CA)は証明書を発行する重要な機関です。 サイバートラストやグローバルサイン、日本RA等の商用CAもあれば、最近では Let’s Encrypt などの無償のCAも出てきました。(※ Let’s Encrypt はサーバ証明書のためのサービスであり、クライアント証明書としては使えません。) また、プライベート認証局を立てるケースもあります。どの認証局を信用するかは、検証者に委ねられている部分があります。

銀行の口座開設や役所等の手続きでは、マイナンバーカードや運転免許証といった公的な身分証が求められるでしょうし、とあるお店の会員登録では健康保険証でもOKなケースもあるでしょう。場合によってはクレジットカードの提示でサービスを受けられるようなこともあります。このように、日常生活でもどういった証明書を求めるかは、検証者に委ねられています。

この認証局の信頼ですが、保つことは想像以上に大変です。社内に認証局を立てていたら、悪意のある誰かが勝手に発行しないとも限りません。失効の手続きももれなくやる必要がありますし、データ消失や乗っ取りなどへの対策も必要です。認証局は、アクセスさせるシステムの内容や運用の手間、運用レベル等のバランスを検討し、商用CAを利用するのか、プライベート認証局を建てるのかは、慎重に検討する必要があります。

”クライアント”証明書

証明書の利用シーンはサーバ証明書、電子署名なども含めて幅広いのですが、今回はこのうち「クライアント証明書」としての利用についてのご説明です。クライアント証明書は、クライアント端末にインストールし、そのインストール端末以外からのアクセスを禁止するような際に利用されます。

検証者が信頼する認証局で発行されたクライアント証明書がインストールされた端末からのアクセスのみを許し、それ以外の端末からのアクセスは禁止することができます。

証明書のみを利用して認証を通してしまうことも可能ですが、ID/PWなどの I know 認証(知識認証)と組み合わせて利用するケースが多いです。

証明書認証を用いた多要素認証に対応したGluegent Gate

Gluegent Gate はクライアント証明書を利用した端末認証にも対応しています。また、Gluegent Gate を通じての配布も可能となっており、運用面含めて喜んでいただけています。昨今、多要素認証が求められるケースが着実に増えてきています。Gluegent Gate で、ID/PW認証(I Know 認証)に加えて、証明書認証(I have 認証)を組み込むことで、容易に多要素認証に踏み出すことができます。特にスマートデバイス全盛のこの時代、認証時の手間を増やさずに認証要素を増やし、なおかつ利用するデバイスの制限もできるという面は高くご評価頂いています。

以前の記事でも、セキュリティと運用のバランスとしてクライアント証明書をご紹介しましたが、弊社でも運用実績が豊富にございますので、ご興味があれば是非ご連絡ください。

 Gluegent Gate