Sep 152005
 

キーボードのタイプ音から情報漏洩のおそれ–米研究者らが報告

本日付けCNET Japanの記事です。
なぁんか似たようなことを昔見かけたな、とWebを漁ってみたらこれですね。

新情報セキュリティ技術研究会、公開セミナーを開催――電磁波による情報漏洩の認識向上で

最初はUNIX Magazineで読んだのですが、「ディスプレイに写ってるコトがばれちゃんだ…」と、当時かなりの衝撃を受けたのを覚えてます。
ASCII24の記事を見直すと、キーボードの電磁波からもばれるらしいですね。

クリック音と電磁波。両方組み合わせたらさらに精度の高い割り出しが可能になったりするんでしょうか。
でも2年以上経ってますので、電磁波については何かしら対策が進んでいるかもしれません。

mod_auth_ldap

 article  Comments Off on mod_auth_ldap
Aug 282005
 

モジュールの有効化

Apache 2系列であれば、大抵組み込まれていると思います。

LoadModule ldap_module modules/mod_ldap.so
LoadModule auth_ldap_module modules/mod_auth_ldap.so

認証設定

Active DirectoryをLDAPサーバとして使う場合の設定例をいくつか掲載します。

Active Directoryでは、標準的な構成の場合認証前に権限のあるユーザで接続をしなければいけません。 そのユーザ名とパスワードをAuthLDAPBindDN、AuthLDAPBindPasswordで指定します。

  • ここではAdministratorを指定していますが、LDAPサーバとの間で認証情報が垂れ流しになりますので、お勧めしません。
  • Active Directoryに接続だけできるユーザ1を用意するのがよいでしょう。おそらくAuthenticated Usersであればよいと思われますが未確認です。

基本的な設定例

<Location /ldap-status>
  SetHandler ldap-status
  AuthType Basic
  AuthName "Members Only"
  AuthLDAPEnabled on
  AuthLDAPURL "ldap://dc1/CN=Users,DC=example,DC=jp?sAMAccountName?one"
  AuthLDAPBindDN "CN=Administrator,CN=Users,DC=example,dc=jp"
  AuthLDAPBindPassword ****************
  require valid-user
</Location>

認証ダイアログに入力するユーザ名にはsAMAccountname(NetBIOSユーザ名)を使っていますが、cn等のほかの値をを使うことも可能です。

所属グループを制限する例

AuthLDAPURLのフィルタ条件を指定することで、所属グループ(memberOf)でユーザを制限することができます。

AuthLDAPURL "ldap://dc1/CN=Users,DC=example,DC=jp?sAMAccountName?one(memberOf=CN=Sales,CN=Users,DC=example,DC=jp)"

LDAPサーバの複数指定

AuthLDAPURLのldap://~/には空白で区切ってサーバを複数記述できます。

AuthLDAPURL "ldap://dc1 dc2/CN=Users,DC=example,DC=jp?sAMAccountName?one"

mod_auth_kerb

 article  Comments Off on mod_auth_kerb
Aug 282005
 

環境

  • Fedora Core 1
  • Apache 2.0.49 (Fedora Core 1のhttpd-2.0.49-1.1パッケージ)

mod_auth_kerbモジュール導入

モジュールはFecora Core 2用のsrc.rpmをダウンロードしてビルド、インストールしました。

# wget -N ftp://rpmfind.net/linux/fedora/core/development/SRPMS/mod_auth_kerb-5.0-1.src.rpm
# rpmbuild --rebuild mod_auth_kerb-5.0-1.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/mod_auth_kerb-5.0.1.i386.rpm

Kerberos設定

/etc/krb5.confを設定します。今回は

  • レルムはEXAMPLE.JP
  • KDCはWindows 2000のドメインコントローラで、ホスト名はkdc.example.jp

であると仮定します。

[libdefaults]
 default_realm = EXAMPLE.JP
 default_tkt_enctypes = des-cbc-md5
 default_tgs_enctypes = des-cbc-md5

[realms]
 EXAMPLE.JP = {
  kdc = kdc.example.jp:88
  default_domain = example.jp
 }

[domain_realm]
 .example.jp = EXAMPLE.JP
 example.jp = EXAMPLE.JP

単純なBasic認証

単純にBasic認証をかける場合は、以下の設定ですみます。

AuthType Kerberos
AuthName "Kerberos authentication"
KrbAuthRealms EXAMPLE.JP
KrbVerifyKDC off
require valid-user

この認証をかけたドキュメントにアクセスすると、HTTP Basic認証のダイアログが表示され、入力したIDとパスワードは裏でKDCの認証を受けます。

Active DirectoryでのSSPI認証

更にクライアントPCがActive Directoryのドメイン(今回の例の場合、EXAMPLE.JP)に参加している場合は、「統合Windows認証」というものを使うことができます。 このためにはKDCであるドメインコントローラでKerbeorsのKeytabを作成し、コンピュータアカウントに関連付ける必要があります。

  1. コンピュータアカウントを作成する
  2. 普通に管理ツールを使って、コンピュータアカウントを作成します。今回はwww.example.jpと仮定して、コンピュータアカウントもwwwで作成しておきます。

  3. Support Toolsのktpassコマンドでキーを作成し、コンピュータアカウントと関連付ける
  4. C:\Program Files\Support Tools>ktpass /princ HTTP/www.example.jp@EXAMPLE.JP /mapuser www$ /pass ************ /out www.keytab
    Successfully mapped HTTP/www.example.jp to www$.
    Key created.
    Output keytab to www.keytab:
     
    Keytab version: 0x502
    keysize 70 HTTP/www.example.jp@EXAMPLE.JP ptype 1 (KRB5_NT_PRINCIPAL) vno 1 etype 0x1 (DES-CBC-CRC) keylength 8 (0xfd7c89d0da1a0bb5)
    Account has been set for DES-only encryption.
     
    C:\Program Files\Support Tools>
    

    プリンシパルのサービス名はデフォルトのHTTPとしていますが、これはmod_auth_kerbのKrbServiceNameで変更することができます。

  5. 作成したキーをApacheサーバ上に移し、ディレクティブを設定する
  6. キーを/etc/httpd/conf/www.keytabとして配置し、Apacheのユーザに読み込み許可を与えます(SSLキーと違い、rootに許可するだけではダメでした)。

    AuthType Kerberos
    AuthName "Kerberos authentication"
    KrbAuthRealms EXAMPLE.JP
    KrbVerifyKDC on
    Krb5KeyTab /etc/httpd/conf/www.keytab
    require valid-user
    

これで、「統合Windows認証を使用する」設定になっている(IEデフォルトのようです)Internet Explorerからアクセスすると、認証ダイアログなしにアクセスされるようになります。