Dark background with blue code overlay
Blog

スマートフォンでsshの秘密鍵管理まで行えるFIDO2対応のAkamai MFAとは

執筆者

Hiroyuki Sato

December 02, 2021

執筆者

Hiroyuki Sato

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

https://techdocs.akamai.com/mfa/docs/auth-mfa

スマートフォンでSSHの秘密鍵を管理する

Kryptonでも利用されていた機能をAkamai MFAは引き継いでおり、

スマートフォンでの秘密鍵管理も可能となっております。

なお、この機能は現在Betaとなっており、

利用方法も過去のバージョンと異なっていることに注意が必要です。

Akamai MFAに変わってもこの機能はオープンソースとして

Githubに公開されております。

https://github.com/akamai/akr

 

スマートフォンで秘密鍵を管理することにより、秘密鍵の漏洩を防ぐこ

とができ、利用時に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 

image.png

秘密鍵の生成をコマンドで行います。

この秘密鍵はスマートフォン内で生成され、端末で保存されることはありません。


そのため、秘密鍵の読み込みはペアリング済みの端末である必要があり、

漏洩防止になります。

generateした際に公開鍵が表示されますので、

そちらを指定のサーバーやGithubに登録することができるようになります。

公開鍵の確認は akr loadで行えます。

  
# 秘密鍵の生成
akr generate --name <ssh_credential_name>

# 公開鍵の確認
akr load

接続確認はGithubへ公開鍵を登録することで行なうことができます。

Akamai MFAではSSHの接続テスト用のエンドポイントを用意しています。

公開鍵の登録手順
https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account

  
# Githubへ公開鍵を登録した後に接続確認を行う。
ssh ssh.demo.krypt.co -p 5000

 

接続時にスマートフォンにプッシュ通知が来るため許可します。

image.png

接続が成功すると以下のような表示がされます。

 

image.png

まとめ

いかがでしょうか。

Akamai MFAはスマートフォンによりFIDO2を利用できるだけではなく、

秘密鍵の管理まで行える利便性の高いMFAとして利用していくことが理解できたと思います。


ぜひこの機会に、よりセキュアな環境を目指してみてはいかがでしょうか。



執筆者

Hiroyuki Sato

December 02, 2021

執筆者

Hiroyuki Sato