Googleのオープンソースプロジェクト「OpenSK」とは?使い方から導入まで


「万全なセキュリティでインターネットを利用できる環境を普及したい」という目的から、米国時間1月30日にてGoogleは「OpenSK」というオープンソースプロジェクトを公開しました。

Googleが発表した「OpenSK」は俗に言うセキュリティキー向けの認証技術で、”FIDO2”や”FIDO U2F”を利用した『パスワードを使わない認証情報』を誰でも利用できるようになるというもの。

オープンソース化された「Solo Key」というセキュリティキーもすでに存在しますが、今回はソフトウェア大手Googleが開発に取り組んでいる点で注目を集めているようです。

今回はそんなOpenSKについて解説したうえで、実際に導入する方法や活用手段についてご紹介します。

この記事を読んでわかる3つのポイント
・OpenSKにまつわる技術的要素の簡易解説
・Google OpenSKを導入する方法
・Google OpenSKの使い方

Google OpenSKとは

Googleが提供をはじめた「OpenSK」は、セキュリティキーを誰でも作れることを目的とした認証技術のオープンソース化プロジェクトです。

Google OpenSKはプログラミング言語「Rust」で構成、OSにはIoT向けの「Tock OS」を採用しているため、「OpenSKで作られたセキュリティキーはロジカルアタックに対して脆弱性を低減できる」とGoogle社のElie Bursztein氏は語っています。*1

Google OpenSKのセキュリティキーは「FIDO2」と「FIDO U2F」の両方をサポートしており、フィッシング詐欺対策など情報セキュリティ対策にも役立つでしょう。

FIDOとは? FIDO2やU2Fの違い

FIDO(Fast IDentity Online)とは、パスワードレスでWebサイトやアプリにログインできる認証技術を推進する業界団体です。名を連ねているのは、GoogleやAmazon、MicrosoftといったIT大手の他にも、VISAやAmerican Expressなどセキュリティを求める金融業界が参加しています。

パスワードレスのログイン技術といえば、身近なものではAppleの「Touch ID」など、指先を使った指紋認証が挙げられるでしょう。

そんなFIDO仕様の認証方式には主に下記の3タイプが存在します。

・FIDO UAF
・FIDO U2F
・FIDO2

この中でも、Google OpenSKは”FIDO U2F”と”FIDO2”に対応しています。

“FIDO U2F”は、ユーザーIDとパスワードを入力した後に、ドングルなどの別デバイスを使って2段階認証を行うシンプルな手法。”FIDO2”は生体認証デバイスや簡単なPINを使い、Webブラウザを使ってオンラインサービスへ安全にログインする手法です。

FIDOの特徴として、セキュリティキーを使って認証をすれば、秘密鍵を使って暗号化された署名を公開鍵で認証することができます。Google OpenSKを利用すれば、FIDO準拠のパスワードが漏洩するリスクはないといえるでしょう。

Google OpenSKの導入方法

Google OpenSKはGitHubより誰でもダウンロードして使用することができます。*2
しかし、Google OpenSKを利用するには、対応したドングル(USBデバイス)を利用しなければなりません。

OpenSKに使えるドングルが必要

Google OpenSKとして利用できるボードには、Nordic Semiconductor社の2製品が動作テスト済みとされています。*2

・Nordic nRF52840-DK *3
・Nordic nRF52840-dongle *4

上記製品は2.4 GHz 独自のプロトコルをサポートしており、Bluetooth LE/Thread/Zigbee/802.15.4/ANTといった幅広い通信規格にも対応しています。

上記の2製品はテスト済みですので、Google OpenSKを確実に導入したい場合にはNordic nRF52840-dongleがおすすめです。しかし、あくまでドングルとしての機能だけで、基盤部分がむき出しになっている点は1つのデメリット。

そこで合わせてチェックしておきたいのが、上記対応ドングルのケースを3Dプリンターで印刷できる設計図の存在です。

3D印刷可能な収納ケースも公開されている

Google OpenSKの動作テスト済みドングルは基盤部分がむき出しになっているため、保護するためのケースを作らなければ持ち運びに不便だと言えます。そこでGoogleのセキュリティブログよりあわせて発表されているのが、3Dプリンターより印刷可能なドングル用カバーケースの存在です。*5

Google OpenSKのドングルカバーは「Thingverse」よりデザインファイルが公開されており、3Dプリンターを使っていつでも物理収納ケースを準備可能です。

実際にドングルとケースを組み立てる動画も公開されています。

 

ドングルと3Dプリンターがあれば、いつでもGoogle OpenSKを使ったセキュリティキーの製造が可能だといえるでしょう。

Google OpenSKを作るのに必要なソフト・ハードウェア

テスト済みのNordic nRF52840-dongleを使ってOpenSKを作る場合は、以下のハードウェアが必要だと案内されています。*2

ハードウェア
Segger J-Link JTAG probe.
TC2050 Tag-Connect programming cable
Tag-Connect TC2050 ARM2010 adaptor
必要な場合は「Tag-Connect TC2050 retainer clip」

ソフトウェア
rustup(GitHub案内ページよりインストール可能)
python3とpip
OpenSSLコマンドラインツール

Google OpenSKの使い方やメリットとは?

IDとパスワードを使ってログインするWebサービスが多い一方で、1度パスワードが流出してしまえば大きな被害を生み出してしまう懸念があります。しかし、認証技術として2段階認証を取り入れることで、セキュリティをより強固にすることが可能です。

Googleアカウントセキュリティでは2段階認証プロセスに設定できる手順のうち、セキュリティキーを使った2段階認証がもっとも安全だと告知されています。*6
物理的なセキュリティキーがあれば、USBポートのあるPCを使っていつでも2段階認証を導入できる点がメリットとして期待できるでしょう。

Google OpenSKの使い方デモムービー

実際にElie Bursztein氏がOpenSKのセキュリティキーを使っているデモムービーがあります。

2段階認証の導入を考えている方にとって、OpenSKは最適なファームウェアの1つです。指定のドングルとGitHubに公開されているGoogleの「OpenSK」ソフトを使えば、誰でもセキュリティキーを作成できます。

1度セキュリティキーを作ることができれば、あとは簡単に2段階認証を活用することが可能です。

Google OpenSKをGoogleアカウントで使うには?

2段階認証を各プラットフォームで導入するにはセキュリティキーに対応していなければなりません。ここでは2段階認証に対応しているGoogleアカウントを使って、OpenSKセキュリティキーを導入する手順についてご紹介します。*7

(1) Google OpenSKを使ってセキュリティキーを製作
GitHub*2に公開されているファームウェアと対応したドングルを使ってセキュリティキーを製作します。
明確なインストール手段はGitHubのリポジトリより確認することが可能です。

(2) アカウントへセキュリティキーを登録する
Chromeなどの互換性があるブラウザを使いGoogleアカウントへログインします。その後、画面右上のプロフィール欄から[Googleアカウントを管理]→[セキュリティ]→[2段階認証プロセス]の順に選択をして、作成したセキュリティキーの登録を行います。

(3) セキュリティキーを実際に使う
セキュリティキーが登録できれば、あとはGoogle OpenSKで作ったセキュリティキーを必要なタイミングでUSBへ挿し込むことで2段階認証が可能となります。

すでにGoogle認証システムや電話番号認証を使っていても、Google OpenSKのセキュリティキーを登録すれば自動的に標準の2段階認証システムとして登録される点は注意ポイント。

もちろん他の手順で2段階認証プロセスをクリアすることもできますが、セキュリティキーを登録した場合は最初にセキュリティキーの2段階認証が求められる点は注意しましょう。

まとめ

Google OpenSKはオープンソース化されたセキュリティキーで誰でも利用することが出来ます。ただし、今現在はまだ開発段階で、一般消費者向けではありません。発表時点ではFIDOの正式な認定も受けていない点は注意が必要です。

ハードウェアベンダーやITリテラシーの高いユーザーニーズを満たすセキュリティキーですが、Google OpenSKはまだまだニッチなエンジニア向けのファームウェアだといえるでしょう。

*1 OpenSK is written in Rust and runs on TockOS to provide better isolation and cleaner OS abstractions in support of security. Rust’s strong memory safety and zero-cost abstractions makes the code less vulnerable to logical attacks.

https://security.googleblog.com/2020/01/say-hello-to-opensk-fully-open-source.html

*2 GitHub公開ページ
https://github.com/google/OpenSK

*3 Nordic Semiconductor(公式サイト)
https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK

*4 Nordic Semiconductor(公式サイト)
https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-Dongle

*5 Thingiverse
https://www.thingiverse.com/thing:4132768

*6 Googleアカウントヘルプ
https://support.google.com/accounts/answer/185839

*7 Google アカウントヘルプ
https://support.google.com/accounts/answer/6103523

▽Googleについての記事はこちらもチェック

GoogleがFitbitを買収?Apple Watchに対抗できるか

GooglePixel4はなぜ自社開発?スマホ参入の目的とは

Googleが開発したVR描画アプリ「Tilt Brush」で新感覚イラストレーション!

CONTACT

株式会社キャパでは、
IoT開発についてご相談を承っています。

営業時間:月~金 9:30~18:00 
土日・祝 定休日
FAXでのお問い合わせは24時間受付中 
FAX:03-5297-2879

▼キャパの公式Twitter・FacebookではITに関する情報を毎日更新しています!
・Twitter

・Facebook
キャパFacebookページへ

関連記事一覧

AR/VR ホワイトペーパー

we love develop
アプリやシステムの開発を通じて、お客様のビジネスを成長させることが私たちのビジネスです。お気軽にお問い合わせください。
 お問い合せ

お電話でのお問い合わせはこちらから
TEL:03-5297-2871

メールマガジンの登録

キャパでは誰かに話したくなるようなIT小ネタを、週に一回メルマガで配信しています。
ぜひ購読してみませんか?
 購読する

記事カテゴリ

月別投稿記事

PAGE TOP