二要素認証化
2018年、コンピュータ会に激震が走りました。CPUの投機的実行、分岐予測アーキテクチャに依存するセキュリティホールSpectreとMeltdown。未だに根本的解決策は提示されず、各OSベンダーが必死になって解決策を模索しています。今やクラウドやSNSは必須サービスとして定着しました。これらサービスを乗っ取られるのは非常に厳しいものがあります。そこで注目されているのが、二要素認証。二要素認証とは、通常のユーザ名、パスワードに加え、ワンタイムパスワードと呼ばれる一回のみの使い捨てパスワードを用いて認証する方式です。NextCloudにも導入してみます。
二要素認証についてお勉強
最初に二要素認証についてお勉強。二種類のパスワード生成方式があります。
- TOTP認証
- サーバから提供される秘密鍵と、時間(秒)を用いてパスワードを生成します
- HOTP認証
- トークンと呼ばれるハードウェアキーをサーバと結びつけ、ボタンを押した際に生成されるパスワードを用いて認証します。
TOTP認証は、秘密鍵と時間で生成出来るため、スマホ等のアプリとして提供されています。例えばGoogle認証、IIJ Smartkey、Authy等。認証を有効にすると、サーバからQRコードが表示されます。このQRコードを先程のスマホアプリからスキャンすると、各サービスのパスワード生成が登録されます。
- 利点は、スマホ一括で管理出来るため、スマホさえ持っていれば良い。また、時間でパスワードが更新されていくため、総当り攻撃が困難
- 欠点は、スマホの機種更新時、これらパスワードも更新しないといけないため、面倒。特にGoogle認証アプリは、パスワードのバックアップ機構も持っていないため大変です。IIJ SmartKeyは、アプリ間でエクスポートが可能なため、バックアップが便利。Authyは、複数デバイスで共用可能だけど、秘密鍵がサーバに保存されるため、セキュリティが下がります。また、通信が盗聴されている場合、30秒以内にリトライされると突破されてしまいます。その為、SSL等で保護されていることが重要となります。
HOTP認証は、トークンと呼ばれるハードウェアでパスワードを生成するタイプです。
- 利点は、ハードウェアを奪われない限り、パスワードの流出はありません。
- 欠点は、ハードウェアをなくすとアウト。サービス毎にトークンを管理しないといけないので大変。トークンのキーを押すたびにパスワードを更新するのですが、キーが押されない間は同一キーでログイン可能なため、総当たり攻撃に弱い
と、利点欠点があります。
さて、NextCloudでは、TOTP認証とU2J認証に対応しております。今回はTOTP認証を使用します。認証アプリとしては、アプリ間でのエクスポートが可能な、IIJ Smartkeyを選定しました。IIJさんは安心度高いし、アプリでのエクスポートも出来るので、機種変更時に安心できるので。さて、ではやってみましょう。
機能を有効化
これはユーザごとに有効/無効を設定します。まずは、二要素認証を有効化したいユーザでログインします。
- 右上の歯車マークで、「個人」をクリック
- 保険のために、「第二要素バックアップコード」をクリックします。10個のログインキーが表示されます。もし、TOTP認証アプリがない場合、この10個のログインキーでログインできますが、一回限りで消えていきます。安全な場所にメモっておきましょう。
- TOTP 第2認証の「有効化」をクリックします。有効化すると1回だけQRコードが表示されます。このQRコードをスマホの認証アプリでスキャンします。すると、アプリに認証キーが登録されます。
- QRコードの下に、ログインキーの有効性チェック窓があります。認証アプリで表示されたログインキーを入力し、正常に機能しているかをチェックします。
ここまでで二要素認証が有効化されます。
二要素認証に対応していないアプリはどうするねん
例えば、Thunderbird Lightning、PCのNextcloud同期アプリ、QownNotes、DAVdroid。これらはに要素認証に対応していないため、エラーになります。その場合は、以下でアプリパスワードを発行し、そのパスワードで認証します。
- 右上の歯車マークで、「個人」をクリック
- アプリパスワード蘭で、アプリ名を入力し、「新規アプリパスワードを生成」をクリックします。すると、一回のみパスワードが表示されるので、これをクリップボードにコピーし、各アプリの認証画面に入力してあげます。
以上で、各サービス、二要素認証に対応したNextCloudで動作できるようになります。セキュリティも向上し、安心ですね♪
Page Info | |
---|---|
Page Name : | Gentoo Linuxな生活/二要素認証化 |
Page aliases : | None |
Page owner : | maruo |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | No one |