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
▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!