セミナー概要

これまで、なんとなく理解していた認証認可の考え方を、改めて基礎から学べるセミナー「認証と認可『基本のキ』」がBFT道場で開催された。IBMのDistinguished Engineerの経歴をもつ山下克司氏を講師に迎え、認証認可の基本的な構造からゼロトラスト・ネットワークの概念まで解説する。

基礎知識:3つのコンポーネントからなる認証システム

認証システムは3つのコンポーネントからなると山下氏は説明する。
「ユーザーが誰であるかを実証する『認証』、その権限を実証する『認可』、そしてユーザーを識別のための『ID管理』の3つだ」

認証システムの基本的な構造は次のようになる。
まず初めに、ユーザーIDとパスワードが入力され、ID情報が存在するかどうかの「認証」が行われる。認証が通ると、ID情報に、どのような権限が付与されているかを見て「認可」情報を返す。その後、認可情報に基づく制御が行われ、ログインが成功するという流れだ。

ID(アカウント)情報は、識別子(アイデンティファイアー)とアイデンティティ、クレデンシャルズで構成される。識別子とはユーザーIDなどといった、マシンが読み取り可能な固有の文字列だ。アイデンティティには、名前や性別などの「なりたい自分」の情報と「できること(権限)」が登録されている。クレデンシャルズはパスワード、生体情報などの本人確認の手段のことで、昔は単数系で「クレデンシャル」と言われていたが、今では、さまざまな本人確認の手段があるため複数形になっている。

ログインの強化:検証をローカルに移管する「FIDOの認証モデル」

パスワードでの本人認証には、覚えられない、漏洩しやすいなど多くの課題がある。また、総務省は「国民のための情報セキュリティサイト」において、「パスワードの定期変更はもはや不要だ」としている。総当たり攻撃(ブルーフォースアタック)への対策は、パスワードの桁数を増やすなどの対処療法ではもはや不十分となっているからだ。最近では、2要素認証や、ワンタイムパスワードなどといった新たな手法も用いられるようになってきている。

また、最近増えてきているのは、検証をローカルに移管する「FIDOの認証モデル」だ。「顔認証や指紋認証といった、スマートフォンなどのローカル側で検証し、認証プロトコルを走らせる仕組みのことを言う」と山下氏。これは、公開鍵の仕組みをうまく利用して実現している。

スマートフォンは出荷時に「認証器証明秘密鍵」を持っており、「FIDOアライアンスメタデータサービス」という公共機関に「認証器証明公開鍵」を登録する。このことにより、そのハードウェアが正しいものだと証明される。そして、ユーザーは顔画像を登録する際に、認証用の鍵ペアを生成し「認証秘密鍵」をスマートフォン側に保存。「認証器証明の署名と認証公開鍵」をFIDOサーバーに登録する。ユーザーがスマートフォンを利用する際、顔画像を読ませることで、ユーザーが適切な秘密鍵を保有しているかを公開鍵で検証し、認証が実現するという流れだ。

しかし、こうしたクライアント側の認証では、ユーザーの属性情報をいかに安全に公開でするかが課題となってくる。こうした仕組みを「Verified Certification」と呼び、「JSON Web Signatiure(JWS)」という形式が規格化された。これは、新型コロナワクチンの接種証明アプリでも利用されており、接種情報はJWS形式で登録されている。

APIアクセス:厳密なコーディングが求められる「OAuth2.0」

アプリケーションに対し、APIで認証情報をアクセスする仕組みは、さまざまなものあるが、最近は「OAuth2.0」の利用が広がってきている。これは、アクセストークンをやり取りして認証を実現するものだ。

「ここで気をつけなければいけないのは、標準形では認証鍵を用いた認証にならないことだ。コーディングを間違えると大きなセキュリティホールになる」と山下氏は注意を促す。

最近では、家計簿アプリなどが銀行口座と連携する際に、OAuth2.0を利用してAPIの認証認可を実施するのがデファクトとなっている。こうしたフィンテックを押し進めるため、政府は、2017年の改正銀行法により、銀行に対するオープンAPIの努力義務を規定した。金融庁は、その対応状況を公開しており、大手メガバンクはすでに対応済みだ。

しかし、2020年、電子決済サービスの不正引き出し事件などがあり、一部の日本の金融機関のセキュリティレベルが低いことが判明した。マネーロンダリングの温床にもなりかねないため、本人確認の手続き(KYC:Konw Your Cutomer)を厳密に行う機運が高まっている。
「政府は、マイナンバーカードを使えばより簡単にKYCが実現できるとして、民間への利用促進を期待している」と山下氏は語る。

こうしたAPI認証では、一つのアプリケーションから個別に多くのサービスを利用しようとすると非常に複雑になる。Assertion Tokenの保持だけでなくタイムアウトなどのライフサイクルも管理しようとするとなおさらだ。そこで認証システムを一括で管理する「API Gateway」が登場してきている。ただ、このAPI Gatewayは非常に重くなりがちだ。せっかくマイクロサービスにしたのに、API Gatewayが巨大なモノリスとなり、意味がないという状況になってしまう。そこで登場したのが、「Micro-service Backend for Frontend(BFF)」という考え方だ。

「一つのフロントエンドに対して、一つのバックエンドのプロセスを配置し、それぞれ個別のAutheticationを走らせることで、マイクロサービス的なアサーション管理を実現する。このBFFという考え方は、今後重要なものとなっていくだろう」と山下氏は説明する。

エンタープライズIAM:ロール(役職)情報で権限を管理

これまで企業は、さまざまな手法で認証を実現してきたが、その中でも大きな問題となるのが、インターネットクラウドサービスに対し、社内イントラネットのIDでアクセスできるようにするには、どうすればよいかという点だ。

旧来、物理的に守られてきたイントラネットだが、そこから外へのアクセスは、さまざまな認証機器で管理されている。Wi-Fi機器であったりVPNサーバーであったり、IdPといったID Federationを実行するものなどだ。これらは、認証のプロトコルをきちんと走らせることができるため、逆にクラウドサービスの方が、セキュリティレベルを上げる手段があると考えられる。

これまでは、これらの機器がユーザー情報を個別に管理してきていたが、これを統合しようというのが「Enterprise IAM(Identify and Access Management)」だ。中心にID管理システムを持ち、社内の人事システムや外部と接続する「ネットワーク認証基盤」、クラウドサービスやWebアプリの認証を行う「統合認証基盤」などと連携する。

このIAMが管理する情報の中でも、最も重要なのがロール(役職)情報だ。会社の組織構造そのものを登録し、権限を管理する。「新入社員のIDを作ったり、退職した人のIDを削除するだけでなく、不正行為を行った社員のIDを緊急停止するような機能も必要だ。企業のリスク管理を確実にするためには重要な仕組みと言えるだろう」と山下氏は語る。

ゼロトラストと統合認証:境界内も境界外も信頼せず、すべて検証する

これまでは、イントラネットの境界内は信頼されているので検証せず、その境界外は信頼できないので検証するという考え方であった。しかしゼロトラストとは、どちらも信頼せず、IAM登録して検証するという、管理の視点を変えたものになる。

「IAMに登録されたら、その人はインターネットにいようがイントラネットにいようが管理対象である。イントラネットはもはやインターネット上にあると考えるべきだ。ネットワークの形態に関わらず、登録されたユーザーの利用の可否を規定できている範囲がエンタープライズネットワークだと捉えるべきなのだ」と山下氏は説く。

認証認可の仕組みを、こうした統合的なアーキテクチャにすること自体が、ゼロトラストに向かうために最も重要なポイントだ。企業が利用するネットワークをセキュアに保つために、最大の努力のしどころとなるだろう。

アンケート結果紹介:大半が「役に立った」と回答

セミナー後の受講生へのアンケートでは、大半が「役に立った」という回答だった。
もともと、ある程度の認証認可の知識を持っていた受講生からは「自身の提供してきた認証認可方式の問題がないと再認識できた」「今回は基礎の話だったので、もっと応用の認証認可の話も聞きたい」などの声をもらった。

しかし、あまり前提となる知識がなかった受講生からは「聞きな慣れない単語が多く難しかった」という意見もあり、受講生の知識基準をどこに想定するかは、今後の課題となるだろう。
また、多くの受講生が、ゼロトラストに関心を持っており、ゼロトラスト導入の気運がさらに高まると予想されるアンケート結果となった。

本セミナーは、BFT道場の教育サービスご契約者、受講者であれば誰でも受講できる無料セミナーとして実施した際の内容をレポート化したものだ。
BFT道場では現役のインフラエンジニア講師による実践型IT技術研修を提供している。詳しくはBFT道場をご覧いただきたい。