So-net無料ブログ作成

AFPでのユーザ認証の仕組み [macOS]

AFPでのユーザ認証の仕組みは、ほとんど理解さていないようなので説明します。

次の手順で認証が行なわれます。

  1. Bonjour(TCP)、SLP(TCP)、NBP(AppleTalk)等でサーバの存在を知る。またはアドレスを既に知っている。
  2. サーバに対して、TCP/IPまたはAppleTalkで、どんなサーバなのか問い合わせする(GetStatus、別名GetSrvrInfo)。
  3. サーバから返答を受け取る。この返答の中に、どんな認証方法(UAM)が使えるか載っている。
  4. 最もセキュリティの強い方法で認証を試みる。

認証方法(UAM)には、次のようなものがあります。

No User Authent
ユーザ認証なし。パスワードは使わない。すなわちゲスト接続。
Cleartxt Passwrd
クリアテキスト(平文)パスワード。暗号化なし。8文字制限。
Randnum Exchange
乱数交換。56ビットDES。弱い暗号化。8文字制限。
2-Way Randnum Exchange
双方向乱数交換。56ビットDES。弱い暗号化。8文字制限。
DHCAST128
Diffie-Hellman交換。128ビットSSL。強い暗号化。
DHX2
Diffie-Hellman交換2。更に強い暗号化。
Client Krb v2
Kerberos V認証。
Recon1
再接続。


他にも、PGPuam 1.0Kerberos IVAFS Kerberosというのがあるらしいのですが、良く知りません。netatalkのマニュアルに解説がありますが、Appleの仕様書には出てきません。

netatalkにはasip-status.plというコマンドが付属しています。これはサーバにGetStatusを送り、返答の内容を表示するものです。次は、私の自宅サーバhatachanに対して問い合わせた結果です。

# asip-status.pl hatachan
AFP reply from hatachan:548
Flags: 1  Cmd: 3  ID: 57005
Reply: DSIGetStatus
Request ID: 57005
Machine type: Netatalk
AFP versions: AFPVersion 1.1,AFPVersion 2.0,AFPVersion 2.1,AFP2.2,AFPX03,AFP3.1
UAMs: DHCAST128,Cleartxt Passwrd
Flags: SupportsCopyFile,SupportsServerMessages,SupportsServerSignature,SupportsTCP/IP,SupportsOpenDirectory,SupportsUTF8Servername,SupportsSuperClient
Server name: hatachan
Signature: 01 01 c0 a8 01 01 c0 a8 01 01 c0 a8 01 01 c0 a8  ................

Network address: 192.168.1.1 (TCP/IP address)
Network address: 42750.172 (ddp address)
UTF8 Servername: hatachan

この例の場合は、DHCAST128(一般にDHXと呼ばれているもの)とCleartxt Passwrd(暗号化なし)の2種類に対応しているので、クライアントはセキュリティの強い方のDHCAST128で認証を試みる筈です。
クライアントが極めて古いMacOSだった場合は、高度な認証方法に対応していないので、弱い認証を使うかもしれません。

なお、Mac OS X 10.4 Tigerでは、セキュリティの弱いCleartxt Passwrdの送信は禁止になっています。現在の一般的なafpサーバはCleartxt Passwrdを削除し、ゲスト接続や暗号化パスワードのみに対応しているので問題ありません。
ただし、極めて古いafpサーバや、ライセンスの関係で暗号化に対応出来ないafpサーバだとCleartxt Passwrdしか使えないものがあります。これに対応する為にCleartxt Passwrdを送信可能にするオプションがあります。更に、Cleartxt Passwrdを送信するときに警告を出す事が出来ます。

Mac OS X 10.5 Leopardの場合は、このGUIによる設定が出来ません。つまり通常はCleartxt Passwrdが使えません。無理矢理Cleartxt Passwrdを送信可能にするには、隠し設定を使います。方法は速報4)に書いた通りです。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0