スマートフォンでsshの秘密鍵管理まで行えるFIDO2対応のAkamai MFAとは
Akamai MFAとは
FIDO2に対応したスマートフォンのアプリとして利用できる多要素認証(MFA)です。
おまけにSSHの秘密鍵管理まで行える優れものです。
https://www.akamai.com/ja/products/akamai-mfa
従来はKryptonという製品で提供されていましたが、
Akamaiの買収により取り入れた製品がAkamai MFAになりました。
そのため、Kryptonの機能が一部引き継がれています。
利便性を維持しつつFIDO2セキュリティキーに対応
AWSやGithubなどの多くのSaaSでは多要素認証の1つとして、
FIDO2セキュリティを登録することができます。
FIDO2を利用する際には一般的には、USBデバイスなどの
ハードウェアキーを利用して多要素認証を実施することが多いですが、
ハードウェアを購入して物理的に配布する必要があります。
Akamai MFAはAndroid/iOSに対応したFIDO2のスマートフォン
アプリであり、専用のハードウェアを購入する必要がなく
FIDO2のセキュリティキーを実現することができます。

どのような仕組みで認証するのか
2つのアプリを使用して、FIDO2の実現を行います。
まずはブラウザに拡張機能をインストールする必要があります。
現状であれば、 Chrome, Microsoft Edge, Firefox, Safariに対応しています。
https://techdocs.akamai.com/mfa/docs/self-enroll-security-key
そして、スマートフォンのアプリをインストールします。
iOS, Androidに対応しています。
https://techdocs.akamai.com/mfa/docs/self-enroll-smartphone
両方ともインストールした後に、
ブラウザの拡張機能からスマートフォンを登録することにより
ペアリングが完了します。
このペアリングを行うことによって、
悪意のあるユーザーのブラウザからID/PWを利用して認証を行ったとして
も、ペアリングが行われていないためプッシュ通知すら来ず、
攻撃は失敗します。
この仕組みにより認証基盤を保護することが可能となります。

ペアリングの際には下記の図のように、拡張機能から
QRコードが発行されそれをアプリで読み込む形になります。


Akamai MFAと組合わせてIdPの認証を強化する
Akamai MFAは単体で動作するMFAだけでなく、エンタープライズの機能
としてIdPと組み合わせて多要素認証を導入することができます。
現在は、以下のIdPと組み合わせてAkamai MFAを追加する事が可能です。
- Akamai EAA
- AD FS
- Okta
- Okta password less login
- Shibboleth
https://techdocs.akamai.com/mfa/docs/manage-integrations
この連携機能により、既存IdPを導入している状態からAkamai MFAにより
FIDO2に対応することができます。
また、Akamai MFAでは複数の認証方式にも対応しているため、
用途にあったMFAの利用方法を導入することも可能です。
- Push notification
- Security key
- Push TOTP (time-based one-time passcode)
- Clientless push notification
- Phone call
- Email and SMS OTP (one-time passcode)
- Hardware token
- Bypass code
- Third-party OTP device
スマートフォンでSSHの秘密鍵を管理する
Kryptonでも利用されていた機能をAkamai MFAは引き継いでおり、
スマートフォンでの秘密鍵管理も可能となっております。
なお、この機能は現在Betaとなっており、
利用方法も過去のバージョンと異なっていることに注意が必要です。
Akamai MFAに変わってもこの機能はオープンソースとして
Githubに公開されております。
スマートフォンで秘密鍵を管理することにより、秘密鍵の漏洩を防ぐこ
とができ、利用時にFIDO2の認証を有効化することができます。
これは、今まで行いにくかったSSH接続にMFAを追加することができることを意味します。
実装方法は簡単で、接続元のクライアントでakrという仕組みを導入する
必要があります。
現在対応しているクライアントは以下の通りです。
- macOS (10.15+)
- Linux (64 Bit) (Debian, RHEL, and CentOS).
akr インストール (macOS)
akrを動作させるためには、
OpenSSHのバージョンが8.2以上である必要があります。
今回はHomebrewを利用したアップデート方法を記載します。
# SSH Version確認
ssh -V
# 8.1以下の場合はVersion UPを実行
brew install openssh
# shell 再読み込み
exec $SHELL -l
# SSH Version確認
ssh -V
OpenSSH_8.7p1, OpenSSL 1.1.1l 24 Aug 2021
OpenSSHのバージョンが上がったらakrをインストールとセットアップを行います。
このセットアップを行うと.ssh/configにakr経由で秘密鍵を読み込む設定が行われます。
これによりスマートフォンへの通知、秘密鍵の読み込みを行うようにできます。
# akr インストール
brew install akamai/mfa/akr
# akr セットアップ
akr setup
# 設定確認
cat .ssh/config
# Begin Akamai MFA SSH Config
Host *
IdentityAgent /Users/hisat/.akr/akr-ssh-agent.sock
# End Akamai MFA SSH Config
akr pair コマンドを利用すると、スマートフォンとペアリングするための
QRコードが発行されます。
このQRコードをAkamai MFAのアプリに読み込ませることで、
ペアリングが完了します。
# ペアリング設定
akr pair
# 秘密鍵の生成
akr generate --name <ssh_credential_name>
# 公開鍵の確認
akr load
接続確認はGithubへ公開鍵を登録することで行なうことができます。
Akamai MFAではSSHの接続テスト用のエンドポイントを用意しています。
# Githubへ公開鍵を登録した後に接続確認を行う。
ssh ssh.demo.krypt.co -p 5000
まとめ
いかがでしょうか。
Akamai MFAはスマートフォンによりFIDO2を利用できるだけではなく、
秘密鍵の管理まで行える利便性の高いMFAとして利用していくことが理解できたと思います。
ぜひこの機会に、よりセキュアな環境を目指してみてはいかがでしょうか。