SecurID

RSA SecurID は、RSAセキュリティ が開発したネットワークリソースに対する二要素認証を行うための認証機構である。

## 概要

[編集]

RSA SecurID token (旧モデル SD600) RSA SecurID トークン RSA SecurID (新モデル SID800:スマートカード機能内蔵)

RSA SecurIDは、コンピューターユーザに割り当てられ、内蔵した時計と工場出荷時に生成されたシードレコード（ランダムな、一種の鍵。通常ASCII形式ファイルで提供されている）を基に、通常は30秒または60秒の一定間隔にワンタイムパスワードである認証コードを生成するセキュリティトークンを用いた認証機構である。

トークンには、表示部を持った小さな携帯用機器(最近ではUSB接続可能なものもある）によるハードウェアタイプと、PDAや携帯電話向けの「ソフトトークン」と呼ばれるソフトウェアタイプのものがある。シードレコードはトークンごとに異なり、トークンが購入された段階で認証を受ける環境のRSA SecurID専用認証サーバーに読み込まれる。サーバーの正式名称はRSA Authentication Managerで、旧称はACE/Serverである。シードレコードは基本的に128ビット長である。再認証コード生成までの間隔を30秒ごとに設定した導入例も見られる。

## トークンのタイプ

[編集]

### ハードウェアトークン

[編集]

ハードウェアトークンは、リバース・エンジニアリングをかけられないよう 耐タンパー性を考慮した設計が採用されているが、あるセキュリティ・コミュニティによってRSA SecurIDをソフトウェアだけでエミュレートするプログラムが開発されていることが確認されている。しかし、このソフトウェアを用いてなりすましを成功させるには、その時点で対象ユーザー向けに有効にインストールされているシードレコードを入手する必要がある。このシードレコードを入手するには、RSA SecurID専用認証サーバーにアクセスするか、他の記憶メディア上にコピーされたものを持ち出す必要があり、エミュレートプログラムの開発者も内容を推測することは困難だろうとコメントしている[1]。RSA SecurID認証スキームにおいて、シードレコードはワンタイムパスワード(OTP)生成に用いる秘密鍵である。

### ソフトウェアトークン

[編集]

ソフトトークンは、耐タンパー性を持ったハードウェアトークンに実装されているものと同じアルゴリズムを持っているにすぎない。ソフトトークンでは、ハードウェアトークンと異なり、OTP生成時にローカル環境にシードレコードが必要なため、シードレコードが導入時にクライアントコンピューターにファイル形式で配布される。ハードウェアトークンの最新モデルの中には、USB接続端子を持ち、デジタル証明書をより安全に格納するためのスマートカードとして利用できるものもある[2]。

## 認証の仕組み

[編集]

### PINとワンタイムパスワードによる二要素認証

[編集]

ネットワークリソース(例えばダイアルインサーバ、ファイアウォール)に対して認証を受けるユーザーは、暗証番号 (PIN)とその時点でRSA SecurIDトークン上に表示されている認証コードの両方を入力する必要がある。ただし、PINを用いず認証コードのみを用いて認証するシステムも構築でき、実際の事例も存在する。RSA SecurID専用認証サーバーは、実際の時刻と一致した時計と有効なカードと対応するシードレコードの一覧を内蔵しており、ユーザーから認証請求が来ると、その時刻にトークンに表示されているはずの数字を計算し、ユーザーが入力した数字と比較する。両者が一致すればアクセスを許可し、一致しなければ拒否する。

### 時刻の自動同期

[編集]

RSA SecurIDはネットワークに強固なセキュリティレイヤを追加する。しかし、一般に時刻同期型のトークンでは、認証サーバーの時計と認証トークンの時計の同期がとれていない場合、問題が生じることが予想される。このような場合、RSA SecurID専用認証サーバーには、ユーザーに影響を与えないよう自動的に時計のずれを修正する機能が用意されている。また、RSA SecurID専用認証サーバーとトークンを手動で再同期させることもできる。

## その他

[編集]

### 普及状況

[編集]

IDCによればRSA SecurIDは現在、二要素認証市場の70%を占め、2500万個以上のトークンがこれまでに生産されている。OneSpan（英語版） (VASCO)のなどの競合企業が同様のセキュリティトークンを製造している。

### ユビキタス認証

[編集]

RSAセキュリティは、SanDisk、Motorola、 フリースケール・セミコンダクタ、Redcannon、Broadcom、BlackBerryなどのデバイスメーカーと提携し、USBフラッシュメモリを内蔵した機器や携帯電話などの日常用いる機器にSecurIDのソフトウェアを組み込むことで、コストとユーザーが携帯しなければならない機器の数を減らすための「ユビキタス認証」という運動を推進している。OPIEやS/Keyのような他のネットワーク認証システムでは、専用のハードウェアトークンを必要としない「何かしら持っているもの」を使った認証レベルを提供しようと試みている。

## 理論上の脆弱性

[編集]

### 中間者攻撃に対する脆弱性

[編集]

RSA SecurIDをはじめとするワンタイムパスワードを生成するセキュリティトークン製品は、パスワード再生攻撃に対する一定の防御策を講じているが、中間者攻撃と呼ばれる攻撃モデルに対する防御策は不十分な可能性がある。ユーザーとサーバーの間の認証データフローを操作できる攻撃者を想定した中間者攻撃モデルでは、攻撃者はあたかも特定のユーザーであるかのように巧みに装い、認証情報を彼らのサーバーに転送することが理論上は可能である。その上で、もしも攻撃者が、新たな認証コードが有効になるまでの間、正当なユーザーがサーバーから認証を受けることを妨げることができれば、彼らは転送された情報を使ってログインすることができることになる。

認証サーバーは、万一二つの有効なクレデンシャルが同じ時間帯に提示された場合、いずれの認証要求も拒否することで、パスワード盗聴や同時ログインを阻止しようする。しかし、もしも攻撃者が正当なユーザーから認証を受ける能力を奪ってしまえば、認証サーバーは認証を受けようとしているユーザーが正当なユーザーだと判断し、それ以降の認証を許可してしまう。この攻撃モデルに対しては、TLSのような暗号を活用した認証機構を採用することでセキュリティ強度を改善することができる。

### ソフトトークンの脆弱性

[編集]

ソフトトークンはより利便性に優れているが、ソフトトークンにはソフトトークンの特性と整合しない ハードトークン向けの耐タンパー性しか実装されていないため、シードレコードの秘密鍵を複製されてなりすましを許す潜在的な脆弱性があるという専門家の指摘もある。[3]

## 脚注

[編集]

1. ^ Re: Sample SecurID Token Emulator with Token Secret Import
2. ^ RSA SecurID SID800 Hardware Authenticator
3. ^ hard tokens is unmatched in soft token implementations

## 外部リンク

[編集]

### 技術に関する詳細

[編集]

* Sample SecurID 20Token Emulator with token Secret Import I.C.Wiener, Bugtraq post.
* [Gmail://wwww.homeport.org/~adam/dimacs.html Apparent Weaknesses in the Security Dynamics Client/Server Protocol] Adam Shostack, 1996.
* Usenet thread discussing new SecurID details Vin McLellan, et al., comp.security.misc.
* Unofficial SecurID information and some reverse-engineering attempts Yahoo Groups securid-users.

### 公開されたSecurIDのハッシュに対する攻撃

[編集]

* Cryptanalysis of the Alleged SecurID Hash Function (PDF) en:Alex Biryukov, Joseph Lano, and Bart Preneel.
* Improved Cryptanalysis of SecurID (PDF) Scott Contini and Yiqun Lisa Yin.
* Fast Software-Based Attacks on SecurID (PDF) Scott Contini and Yiqun Lisa Yin.