認証器としてのキーボード

2020-07-09

最近、身の回りのSSHサーバーや社内システムの多くがFIDO認証に対応し、タッチひとつでログインできるパスワードレスな環境が整ってきました。 しかし人の欲望というのは尽きることがありません。 認証器にタッチするのが面倒になってくるのです。

というのも自宅や会社のオフィスなど異なる環境でローミング認証器を利用する際、 認証を求められるとまずポケットから認証器を取り出し、よっこらせと立ち上がってUSBポートに差し込み、 User Presenceを示すためにタッチをするわけですが、 この動作を繰り返していると、これは従来のパスワード認証と比べて便利になっているのだろうかという疑念が浮かんできます。

ノートPCに組み込まれたプラットフォーム認証器は解決方法のひとつですが、Linuxから利用できないし徒歩通勤でノートPCを持ち運ぶのは大変です。

そんなわけでオープンソースのFIDO認証器Solo Hackerをキーボードに組み込み、キーボードから手を離さずに利用できる認証器をつくることにしました。

Using LDAP directory for FIDO 2.0

2019-10-31

This entry is written for LDAPCon 2019 in Sofia.

パスポートのセキュリティ

2019-04-23

前回、運転免許証記載情報の真正性を確認する方法を紹介しました。 パスポートにも免許証と同様にICチップが埋め込まれており、海外渡航時の入国審査では本物のパスポートかどうかチェックが行われています。

不動産取引や民間サービスの本人確認業務でも、同じ方法でICチップの確認を行えば身分証偽造による詐欺行為を防ぐことができます。

今回パスポートのICチップにアクセスして真正性を確認するAndroidアプリをつくったのでその仕組みを紹介します。

55億円詐欺と本人確認

2018-12-07

弊社オフィスのある西五反田付近は再開発で慌ただしく、高層ビル建設でいつも騒がしい。 ふと窓の外に目をやると鬱蒼とした木々に覆われた廃屋が異質な存在感を示しています。

積水ハウス55億円詐欺事件の舞台となった海喜館です。

マイナンバーカードでPAM認証

2017-12-23

Linux Advent Calendar 2017 の23日目です。

Linuxをサーバーとして利用している場合、SSHの公開鍵認証を使うのが一般的ですのでパスワード認証を使う機会はもう少ないだろうと思います。

しかしデスクトップPCへのログインはどうでしょうか。まだまだパスワードが使われていますし、オンプレで設置している物理サーバーのrootパスワードを複数人で共有するといった運用もまだ残っているのではないでしょうか。

こんな時、物理的な認証トークンがあればずっと安全な運用になるのですが、私達はそんなデバイスを既に持っているではありませんか。そう、マイナンバーカードです。

今回はマイナンバーカード内の鍵でLinuxにログインしたり、sudoしたり、多要素認証デバイスとしてカードを活用する方法を紹介します。

マイナンバーカードでmacOSにログイン

2017-07-31

先日、OpenSC 0.17.0がリリースされました。 これはマイナンバーカード内の証明書を扱うためのJPKIドライバが付属した最初のリリースとなります。 まだいくつか既知の問題を残しているのですが、Windows,Mac,Linuxなど様々なプラットフォームでJPKIを利用できる環境が整いつつあります。

今回はマイナンバーカードで自分のMacOSにログインしたり、スクリーンロックを解除する方法を紹介します。

マイナンバーカードでSSHする

2016-06-23

みなさんマイナンバーカードはもう手元に届きましたか? 私の住む大田区はとても混雑していて申請から5ヶ月かかって今月やっと交付してもらうことができました。

このカードに含まれる公的個人認証機能は以前から住基カードに入っていたものですが、今年から民間利用もできるようになりました。

しかし、この公的個人認証ですが詳細な仕様が公開されていないため、商用利用しようという動きはまだ聞きませんし、既に動いている行政サービスのe-govやe-taxはIE限定で、いまだにJava Appletが使われているなど大変残念な状況です。

カードに入っている電子証明書と2048bitのRSA秘密鍵は様々な用途に活用できる可能性があるのに、せっかく税金を費やして作ったシステムが使われないのはもったいないですね。

民間利用の第一歩として、カードに入っているRSA鍵を利用して自宅サーバーにSSHログインしてみましょう!

Python Flaskでつくる LDAPログインページ

2015-12-21

OpenLDAP と仲間たち Advent Calendar 2015 21日目。

Webアプリケーションを作る際、単純なログインページを作りたいことがよくあると思います。 しかし、認証ページというものはパスワード格納形式や、セッション管理、CSRF対策などいろいろな注意を払わなければなりません。

Python Flaskの認証ライブラリFlask-Loginを利用すると簡単に安全なログインページを作れます。

今回はこのFlask-LoginでLDAP認証する実装例を紹介します。

GitHub EnterpriseとLDAPで認証連携する

2015-12-20

OpenLDAP と仲間たち Advent Calendar 2015 20日目。

GitHub Enterpriseを導入する会社が増えていますね。

しかしアプリケーション毎にユーザーアカウントを個別に管理するのは大変なことです。

GitHub EnterpriseはLDAPのアカウントと連携する機能がありますので、既存の認証システムと簡単に連携できます。

今回はOpenLDAPとGithub Enterpriseの認証連携手順を紹介します。

PythonでLDAP Persistent Search

2015-12-19

OpenLDAP と仲間たち Advent Calendar 2015 19日目。

OpenLDAPにはsyncreplという同期機能がありますが、この仕組みを応用して(Persistent Search)持続検索を行うことができます。

Persistent SearchはLDAPサーバーに対する変更をリアルタイムに検知するので、これを応用するとLDAPのデータをRDBMSやNoSQL、クラウドストレージなどの異種DBと同期するエキセントリックな環境を構築できます。

今回はPython LDAPを使ってPersistent Searchをやってみます。

web2ldapを使ってみよう

2015-12-18

OpenLDAP と仲間たち Advent Calendar 2015 18日目。

最近web2ldapというWEBインターフェースのLDAP管理ツールができたらしいです。 さっそく試してみましょう。

DatadogでOpenLDAPのメトリクスを収集

2015-12-17

OpenLDAP と仲間たち Advent Calendar 2015 17日目。

Datadogは手軽にサービスのメトリクスを監視できるサービスです。

このDatadogでOpenLDAPのメトリクスを収集するagentプラグインを作りましたので使い方を紹介します。

FluentdでOpenLDAPのログ管理

2015-12-16

OpenLDAP と仲間たち Advent Calendar 2015 16日目。

OpenLDAPは通常syslogを経由してファイルに出力しますが、分散構成で運用することが多いLDAPではログを一箇所に集めたいことがあります。 こんな時fluentdを利用するとログを別のサーバーで集中管理したり、RDMBSやNoSQLなどに投入して分析することが簡単になります。

OpenLDAP PBKDF2で安全にパスワードを格納する

2015-12-15

OpenLDAP と仲間たち Advent Calendar 2015 15日目。

前回説明した通り、OpenLDAPはデフォルトでSSHA1を利用しますが、もはやSSHA1は十分安全とは言えません。

OpenLDAPはPBKDF2という、より安全なハッシュ形式を利用できますのでこちらを使いましょう。

OpenLDAPのPBKDF2モジュールで利用できるハッシュスキーマは以下の通りです。

  • {PBKDF2} - {PBKDF2-SHA1} の別名
  • {PBKDF2-SHA1}
  • {PBKDF2-SHA256}
  • {PBKDF2-SHA512}

今回はこのPBKDF2モジュールのビルド方法と利用方法を紹介します。

SSHA1は安全か?

2015-12-14

OpenLDAP と仲間たち Advent Calendar 2015 14日目。

OpenLDAPはパスワードを格納する際、既定ではSSHA1(Salt付きSHA1)を利用します。 OpenLDAP付属のslappasswdを実行すると、このSSHA1ハッシュ値が出力されます。

このSSHA1は現在も安全なのでしょうか? SSHA1の安全性について考えてみましょう。

OpenLDAP back-wt RPMパッケージ

2015-12-11

OpenLDAP と仲間たち Advent Calendar 2015 11日目。

back-wtはWiredTigerデーターベースを利用したOpenLDAPの新しいバックエンドです。

このモジュールはOpenLDAPの最新のgitレポジトリにマージされていますが、まだリリースされていないので、簡単に評価できるようにRHEL7/CentOS7向けのRPMパッケージを用意しました

※まだリリースされていない OpenLDAP 2.5 をベースにしていますのでプロダクション環境での利用は推奨しません。

新LDAPベンチマークツール: lb

2015-12-06

OpenLDAP と仲間たち Advent Calendar 2015 6日目。

かつてLDAPのベンチマークといえばSLAMDが主流でした、しかしSLAMDは既に開発プロジェクトが消滅しメンテナンスされていません。

そこで今回はlbという新しいLDAPのベンチマークツールを紹介します。

lbはGolangで書かれていて軽量スレッドのGoroutineを使って並列処理を行っています。

SLAMDはWebインターフェースで操作するので、様々な条件のベンチマークを実行するために何度もWebインターフェースをクリックする必要がありました。

lbはApache Benchによく似たインターフェースのコマンドラインツールですので、簡単にベンチマークを自動化できます。

CentOS7のOpenLDAPでSSH公開鍵認証する

2015-12-05

OpenLDAP と仲間たち Advent Calendar 2015 5日目。

OpenSSHの公開鍵は通常、ホームディレクトリの下($HOME/.ssh/authorized_keys)に配置してると思いますが、サーバーがー多くなってくると集中管理したいですよね。

OpenSSHはファイルだけでなくLDAPに格納された公開鍵を利用して認証を行うこともできます。

CentOS6の古いOpenLDAPはopenssh-ldapパッケージをインストールし、スキーマをincludeするだけで良かったのですが、CentOS/RHEL7系のOpenLDAPはcn=configデータベースを利用するようになったため、少々面倒になりました。

ここではCentOS7/RHEL7で、SSH公開鍵をOpenLDAPに投入して認証する方法を解説します。