FIDO at LINE: パスワードのいらない世界に向けて

パスワードのいらない世界

本日、LINEの認証サーバであるLINE Authentication Serverが、サービス提供会社として世界初のFIDO Universal Server1認証を取得できたことを報告できた事を嬉しく思っています。

LINEは近い将来、FIDO認証を通じてログイン、認証などを生体情報(顔、指紋など)やYubikeyGoogle Titan keyのような外部認証装置を通じて容易に手早く行うことができるように、研究開発を進めています。FIDOの導入によって認証手段を限定することなく、パスワードやPINなどの認証情報をサービスと共有する認証方式の代わりに公開鍵暗号化方式を活用して、非常に強力な認証をサービスを利用する皆様に提供することができます。

LINEの活動経緯

LINEメッセンジャーのリリース後、LINEの普及とともに、サービス利用者の皆さまが直面する危険も増加しており、実際に様々な形のセキュリティの攻撃が試みられました。 侵入者は、ソーシャルエンジニアリングや、ネットワーク機器のセキュリティを迂回してサービス利用者への攻撃を試みています。LINEはグローバルなインターネット企業として、LINEの利用者をターゲットとしたそのような脅威から、サービスとサービスを利用する皆さまを守ることを最優先事項の1つと考えています。

ユーザ認証はサービスの開始時点で要求されるため、ときには重要なユーザー体験の1つです。 またユーザ認証は、サーバーシステムと個人またはその他重要な情報に対するアクセスを保護する重要なセキュリティのレイヤとしても機能します しかし、より安全なユーザ認証を提供しようすると、利便性の劣化したユーザ体験を提供することになるため、それらを積極的に利用する利用者は限定的となってしまうという課題がありました。私たちは、LINEの利用者に安全で直観的、かつ使いやすいソリューションを提供するために多くの努力と時間を費やしてきまし  

その一環で、私たちは2017年5月、FIDO Allianceにボードメンバーとして加入をしました。以降、LINEはグローバルサービス提供会社としての経験や主要な要求事項を共有して、一般的な問題に対する実行可能なソリューションを提示することで、FIDOの設計や標準化に寄与してきました。

また、様々な認証技術、使用者のシナリオや関連業界のソリューションを調査及び検証をしてきました。LINEにとってモバイルサービスと、企業のDNAに相当する部分であるため、様々なプラットフォーム(デバイスやOS)への拡張ができるように準備しなければなりません。 したがって、様々なデバイスやOSを想定し、出来るだけ多くのLINEユーザーに安全なFIDO認証を提供しようと努力しています。この目標に向けて、私たちはFIDO Universal Serverを開発し、現在のFIDO標準の全てのプロトコル(UAF、U2F、FIDO2)をサポートすることに決定しました。

FIDO AllianceはFIDOのエコシステムを構成するベンダー間の相互運用性を検証することを主な目的とする認証プログラムを運営しています。また、FIDO Allianceは、FIDO・オペレーション(登録、認証、登録取り消し)の相互運用性を確立することが立証された製品に対して認証書を発行しますFIDO Allianceは90日ごとに相互運用性テストイベントを開催しており、現在、FIDO仕様を遵守しようとするすべてのベンダーは、自社製品の相互運用性を当該イベントで立証します。2018年11月、ソウルで開かれた相互運用性テストイベントに参加しており、私が開発したサーバーがFIDO UAF、U2FやFIDO2仕様を遵守して他のベンダーのFIDO認証装置(16種類) に対してイベントを通じて立証することができました。

私たちは本日ついに、LINEのユーザである皆さまのために、FIDO認証を提供する第一歩を踏み出すことができました。FIDO Universal Serverを活用してLINEサービスが提供されるすべてのプラットフォーム、ブラウザおよび認証装置ですべてのFIDO標準のプロトコル(UAF、U2FやFIDO2)について、FIDO認証を近い将来、提供することができるようになるでしょう また、現在のFIDO仕様を完璧に実装し、現在定義されているあらゆる署名(Signatureアルゴリズムおよび認証装置証明(Attestation)形式をサポートするよう進めています。

 

FIDOプロトコルの紹介

FIDOは公開鍵暗号を活用して、安全で便利な認証を提供するための認証標準として、オープンかつ相互運用可能であり、拡張できるように設計されています。 公開鍵およびローカルユーザー認証(User Verification)を基盤とするFIDOのオンライン認証プロトコルを活用した場合、サービスはより強力で手軽な認証を使用者に提供することができます。 また、FIDO認証情報は特定Origin(一般的にサービスのインターネット・ドメイン)と1対1の関係性となるため、システムは中間者攻撃(man-in-the-middle)やフィッシング攻撃のいずれについても安全です。

すべてのFIDOプロトコルは登録(Registration)と認証(Authentication)などの2つの主要フローがあります。

登録(Registration)

登録は認証のための使用者の鍵ペアを生成して、公開鍵をFIDOサーバーに登録するプロセスです。 以下はFIDOの登録手続きに対する簡単な説明です。

FIDOサーバーは認証装置(Authenticatorと呼ぶ。ブラウザ、OSまたは専用ハードウェア装置で実装される)に対してチャレンジコード(Random number)や追加的なパラメータを送ります。 次に、認証装置は使用者を(一般的には生体認証を通じて)検証して、新しい鍵ペアおよび認証装置証明(Attestation、生成された鍵及び認証装置に対する追加データ)を生成します。 その後認証装置は、認証用公開鍵と認証装置証明にAssertionを生成して署名を生成して、当該データをFIDOサーバーに伝送します。 最後にFIDOサーバーは署名を確認してAssertionを署名検証して、署名検証に成功すればサーバは受信された公開鍵を格納して、これを使用者アカウントと紐付けます。

認証(Authentication)

認証は、事前登録された公開鍵を活用してユーザを認証するプロセスです。 以下はFIDOの認証手続きに対する簡単な説明です。

登録が成功すると、使用者は登録された公開鍵を使った認証ができます。 認証プロセスは、登録プロセスと似ています。 まず、FIDOサーバーは認証者にチャレンジといくつかの追加パラメータを送ります。 次に、認証装置は(登録中に生成した)個人の秘密鍵をロック解除する前に、ローカルデバイス上での本人認証をします(例えば、生体認証など)。この本人認証に成功すると、以降、認証装置はAssertionを生成し、そのユーザの秘密鍵で署名した上で、署名されたAssertionをFIDOサーバーに送ります。 FIDOサーバーは、Assertionに含まれるキー識別子から使用する公開鍵を特定し、その公開鍵を使って署名を検証します。 署名検証に成功的したら、サーバは新しい認証のセッションを生成し、クライアントに認証トークンやクッキーを発行します。

FIDO標準のプロトコルは、最先端の標準技術を活用して開発されています。 詳しい内容は、次のリンクを参照してください

ユースケースの紹介

LINEで計画しているFIDO活用のユースケースを紹介しようと思います。 以下のユースケース以外にも、簡単なログイン、IoT装置に対するアクセス制御のための認証、など様々なサービスとの統合や追加活用を検討しています。

LINE Login integration

FIDOをLINE Loginに導入することによってLINE Loginを活用する当社のパートナー及び他社サービスは、ユーザが既に自身の機器に指紋や顔をスキャンできるようにしていることから、パスワードや暗証番号の入力が必要ない認証を提供できます。 また、セキュリティおよび個人情報保護に関心のあるユーザーは、外部セキュリティトークンを登録してアカウントに対するセキュリティを強化することができます。

私たちはユーザーのパスワード入力を要求する全ての認証画面を極力減らしていく予定です。最終的な目標はユーザがパスワードを使用する必要がないサービスを提供することです(そのためには多くの課題をクリアしなければなりませんが)。

私たちは、FIDOを現在のLINE Loginと統合して、LINEユーザーとパートナーに、便利で手軽な生体認証を提供することを期待しています。FIDOが適用されたLINE Loginは、2019年春の提供を目指しています。 

LINE Payや金融サービスの取引確認のための認証(トランザクション認証)

私たちは、LINE PayにFIDOを適用して支払いや送金に対して、安全で簡単な取引の認証(トランザクション認証)を可能にする計画を進めています。本人確認の方法(User Verification)として、指紋認識や顔認識など、すべてに対応する予定であるため、使用者は支払い等の際に、単純にスマートフォン上の指紋センサーをタッチしたり、スマートフォンのカメラを見つめるだけで完了できるようになります。

LINE Payは、さまざまな金融サービスに拡張を計画しており、他の金融サービスの基本的なプラットフォーム機能となることを目指しています。 結果的に、使用者はLINE Payの認証を基盤に、他の金融サービスで認証を遂行できるので、ユーザー体験がとてもシンプルになります。

IoT (Internet Of Things)への応用

照明機器から人工知能のスピーカーに至るまで、様々なIoT装置が我々の日常生活の一部になりました。IoTの有用性は否定できませんが、IoT装置は、インターネットを通じて相互接続されていたり、また、統制されていない複雑な環境に配置される場合が多いです。このような理由で、複雑なIoT環境で安全なサービスを提供することには多くの課題があります。 課題の一つは、IoT装置及び装置にアクセスし、制御するユーザー全員に安全な認証を提供することです。FIDOは、安全で便利な認証を提供するので、このIoTの特性によく合致すると思います。 

FIDOを「LINE Things」(LINEアプリ上のBLEプラットフォームとして開発中)と統合することにより、ユーザは安全にIoT装置にアクセスし、管理や制御ができるようになります。

FIDOのクイックな体験

さらに詳しい情報を入手したり、FIDO認証を直接経験したい方は、LINEが公開するFIDOデモサーバー (FIDO2及びU2Fをサポート)をご利用ください。

FIDOが支援されるブラウザに対する詳細は、次を参照してください。Mozilla MDN

LINEおよびFIDOについて意見や提案はいつでも歓迎します。LINE FIDO担当チーム 宛てにご連絡ください。


1.FIDO Universal Server: FIDO標準のプロトコルをすべてサポートし、全てのFIDO認証装置と相互互換性を保証するサーバー

2.FIDO Alliance: FIDO(Fast IDentity Online)Alliance。パスワードレス認証(生体認証、等)の技術仕様、認定仕様等の国際標準化を提唱する非営利団体で、2012年に結成。ホームページ: https://fidoalliance.org/