SMTP (Simple Mail Transfer Protocol) (US)は、インターネットで送信されるメールのデファクト・スタンダードです。実際に、最初の仕様は、Web が登場する前の 1982 年に公開された標準 (RFC821) です。(なお、URL を定義する標準は 1994 年に公開されています。)インターネットでメールを送信するときは SMTP を使用します。Notes/Domino は SMTP メッセージングを完全にサポートし、メッセージをセキュアに保つための強力なメカニズムを数多く提供します。
SMTP が定義されたほぼ同じ時期に、PKI も開発されています。PKI (公開鍵基盤)(US) は、信頼された第三者 (認証機関または CA と呼ばれます) が、ユーザーとサーバーにデジタル ID を提供し、X.509 V3 デジタル証明書を使用してこれらの ID を発行するセキュアなシステムです。ID は、公開鍵と秘密鍵という非対称の鍵ペアで構成されます。公開鍵は誰もが使用でき (名前のとおりです)、秘密鍵はユーザーだけが知っている固有の鍵です。このデジタル ID を使用すると、鍵ペアを用いて暗号化することにより、テキストをセキュアに交換できます。
Return-Path: <JethroB@jedco.xyz>
Received: from relay.hondo.texas.vendor.biz ([10.11.12.13])
by amailserver.somecompanysomwhere.biz
(InterMail vM.6.00.05.02 201-2115-109-103-1231231231) with ESMTP
for <Ellie-May@thevendorcompany.xyz>; Tue, 23 Mar 2004 04:05:11 -0500
Date: Tue, 23 Mar 2004 04:04:13 -0500 (EST)
Message-Id: <11234234-23864-64000886-1234234>
From: Jethro VP at Jeds Company <Jethro@jedco.xyz>
To: <Ellie-May@thevendorcompany.xyz>
Subject: Please order all of this stuff for me
MIME-Version: 1.0
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: 7bit
隠されたヘッダー情報 (終了)
Dear Cousin Ellie:
Jed wants me to rent some equipment. We are going to drill for oil
over in front of my home. Send me this stuff -
30 tanker trucks
14 drilling rigs
Thanks,
Jethro
メッセージが本当に Jethro から送信されたものかどうかを確認するオープン・スタンダードな方法について見ていきましょう。前に説明したように、S/MIME はセキュアな MIME メッセージを送受信する方法を提供します。MIME (Multipurpose Internet Mail Extensions)(US) は、電子メッセージをどのようにフォーマットするかを定義します。MIME 仕様は、さまざまな文字セットやマルチメディアを介してテキストを配布する方法を規定しています。
メッセージの機密性
セキュアなメッセージは、デジタル証明書のシステムを介して作成されます。証明書は、特定のユーザーまたはサーバーに割り当てられたデジタル ID の一部です。先ほどの例では、デジタル ID (非対称鍵のペア) は各ユーザーのメール・システムに置かれていました。デジタル ID の最初の部分 (公開鍵) はデジタル証明書という形で公開ディレクトリーに置かれていて、2 番目の部分 (秘密鍵) はメール・クライアントに組み込まれています。
閉鎖型のプライベート証明書発行システム
閉鎖型システムは、認証機関を 1 つのエンティティーの一部として持ちます。理論的には、複数の組織と組織単位を管理できます。また、これらの組織認証者をサポートおよび維持する責任を分担できます。閉鎖型システムでは、自分の会社が CA としての役割を果たします。これを行うにはいくつかの理由があります。その 1 例として、複数の銀行支店を持ち、各支店間でのデータのやり取りを暗号化したい場合が考えられます。この場合、あなたが CA となり、証明書を発行します。現実には、鍵のかかる安全な場所に認証者を配置する必要があり、強力な制御方法のもとで鍵の持ち出しを監視する (実際の人によって) こともあります。会社全体をカバーする 1 つの CA または複数の CA を使用できます。
閉鎖型 CA システムの最大の欠点は、CA であるがゆえに、その責任を果たすためのサポート構造が必要になることです。これには、解決のための適切なソフトウェアおよびハードウェアのインストールと管理も含まれます。また、証明書を管理するサポート・スタッフも必要です。(証明書の期限切れや、ユーザー名の変更なども発生します。)さらに、退社した人をどのように扱うかを定めたポリシーも必要です (後で詳しく説明します)。
あなたが CA となる場合は、他の人が CA にならない限り、その CA を自分自身で制御します。残念ながら、証明書を作成するには、誰か (または何か) が CA にアクセスし、認証者として動作する必要があります。CA 認証者は、いずれかの場所 (文書、ファイル、ハードドライブ、フロッピーなどの中) に存在する物理的なエンティティーです。このため、不正なユーザーは、防護されていない CA のコピーを常に入手することが可能です。また、CA ファイルにパスワードが設定されていても、管理者が退職または転職すると、その情報が漏れてしまう可能性もあります。さらに、CA 証明書が悪意のユーザーの手に渡ると、組織の正当なメンバーになりすますための証明書を部外者が作成できることになります。自分自身が CA になるときは、CA 証明書を保護する方法をソフトウェア・ベンダーと相談してください。
開放型のパブリック証明書発行システム
個人または会社は、パブリック・システムにアクセスし、証明書を要求できます。一般的に、パブリック CA は独立したエンティティーで、証明書を発行するサービスを提供します。この CA は、第三者 CA と呼ばれることもあります。
開放型のパブリック・システムの利点は次のとおりです。
あなた自身は CA ではありませんが、自分自身の代わりに証明書を提供するためにパブリック CA を介してサービスをセットアップできます。証明書を制御できますが、ルート証明書は制御できません。
この方法を使用すれば、認証者 ID と ID パスワードへの直接のアクセスを各管理者に与える必要がありません。CA プロセスの認証者を有効にした後、Jed は [registration RA] ロールを管理者の一人に割り当てました。RA を割り当てられた管理者は、認証者 ID とパスワードに直接アクセスしなくても、ユーザーを登録したり、証明書要求を管理できます。各認証者は、[発行済み証明書リスト (ICL)] データベースを持ちます。このデータベースは、認証者が CA プロセスに移行されるときに作成されます。ICL データベースには、このデータベースが発行し、期限切れになっていない各証明書のコピーが保存されています。
Jed は、スタンドアロンの CA 登録サーバーをセットアップすることを決定しました。これにより、CA は他のすべてのサーバーから分離されることになります。次に、Jed は server.id ファイルにパスワードを設定しました。パスワードによって、サーバーのセキュリティーがさらに高められます。(もちろん、このサーバーは自動的に再起動できなくなります。このように、CA サーバーを分離する理由の 1 つは、CA サーバーがダウンした場合でも、SLA ベースの実動サーバーに影響を与えないためです。)さらに、このサーバーへのアクセスは、サーバー文書のアクセス制限を介して、CA と RA だけに制限されています。また、このサーバーの相互認証は発行されません。結果として、このサーバーは分離され、サーバーへのアクセスはごく少数のユーザーまたはサーバーだけに限定されます。(Jed はこのサーバー上で IDPR プロセスもセットアップしています。)
次に、Jed はスタンドアロンの X.509 CA サーバーをセットアップしました。CA の作成後、Jed はメインの管理者と共に作業し、X.509 CA を Domino CA プロセスに移行しました。これを行うために、2 つの CA ロールを作成しました。1 つは Jed 自身用のロールで、もう 1 つは、いとこの Billy Joe Bob 用のロールです。次に、Billy Joe Bob、Bubba、および自分自身用にそれぞれ 1 つの RA ロール、つまり全部で 3 つの RA ロールを設定しました。
筆者について
Timothy Speed :
IBM Software Services for Lotus (ISSL) のインフラストラクチャーおよびセキュリティー設計者。1992 年より、インターネットとメッセージングのセキュリティーに取り組む。また、長野オリンピックの Domino インフラストラクチャーに参加し、シドニー・オリンピックでは Lotus Notes システムを支援した。MCSEc、VCA (VeriSign Certified Administrator)、Lotus Domino CLP Principal Administrator、および Lotus Domino CLP Principal Developer などの資格を持つ。また、『The Internet Security Guidebook』(ISBN: 0122374711、2001 年 2 月)、『The Personal Internet Security Guidebook』(ISBN: 0126565619、2001 年 10 月)、『Enterprise Directory and Security Implementation Guide: Designing and Implementing Directories in Your Organization』(ISBN:0121604527)、『Internet Security: A Jumpstart for Systems Administrators and IT Managers』(ISBN 1555582982)、という 4 冊の書籍の共著者でもある。
Raj Balasubramanian :
IBM Software Services for Lotus (ISSL) の Consulting IT 設計者。顧客と提携した配布アプリケーションおよびインフラストラクチャー関連のプロジェクトに携わる。顧客先への出張や数学関連の読書以外の時間は、息子たちとロボットや火星探査機ローバーの話をしている。