55億円詐欺と本人確認

Fri, Dec 7, 2018

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

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

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

Sat, Dec 23, 2017

Linux Advent Calendar 2017 の23日目です。

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

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

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

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

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

Mon, Jul 31, 2017

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

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

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

Thu, Jun 23, 2016

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

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

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

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

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

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

Mon, Dec 21, 2015

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

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

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

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

GitHub EnterpriseとLDAPで認証連携する

Sun, Dec 20, 2015

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

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

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

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

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

PythonでLDAP Persistent Search

Sat, Dec 19, 2015

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

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

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

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

web2ldapを使ってみよう

Fri, Dec 18, 2015

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

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

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

Thu, Dec 17, 2015

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

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

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

FluentdでOpenLDAPのログ管理

Wed, Dec 16, 2015

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

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

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

Tue, Dec 15, 2015

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

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

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

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

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

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

SSHA1は安全か?

Mon, Dec 14, 2015

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

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

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

OpenLDAP back-wt RPMパッケージ

Fri, Dec 11, 2015

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

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

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

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

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

Sun, Dec 6, 2015

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

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

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

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

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

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

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

Sat, Dec 5, 2015

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に投入して認証する方法を解説します。