JP4866150B2 - Ftp通信システム、ftp通信プログラム、ftpクライアント装置及びftpサーバ装置 - Google Patents

Ftp通信システム、ftp通信プログラム、ftpクライアント装置及びftpサーバ装置 Download PDF

Info

Publication number
JP4866150B2
JP4866150B2 JP2006150192A JP2006150192A JP4866150B2 JP 4866150 B2 JP4866150 B2 JP 4866150B2 JP 2006150192 A JP2006150192 A JP 2006150192A JP 2006150192 A JP2006150192 A JP 2006150192A JP 4866150 B2 JP4866150 B2 JP 4866150B2
Authority
JP
Japan
Prior art keywords
ftp
core
tcp2
system core
client device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006150192A
Other languages
English (en)
Other versions
JP2007324727A (ja
Inventor
博嗣 尾崎
恵子 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INTO CO Ltd
Original Assignee
INTO CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by INTO CO Ltd filed Critical INTO CO Ltd
Priority to JP2006150192A priority Critical patent/JP4866150B2/ja
Publication of JP2007324727A publication Critical patent/JP2007324727A/ja
Application granted granted Critical
Publication of JP4866150B2 publication Critical patent/JP4866150B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、FTP(File Transfer Protocol)クライアントとFTPサーバ間の通信において、上位アプリケーションを変更することなく相互認証と暗号化を行うことができる、盗聴、漏洩、なりすまし、改ざん等に強いFTP通信システム及びそれを実現するためのFTP通信プログラムに関する。
近年、インターネットを利用した通信は、パソコンさえあれば、それをネットワークに接続するだけで、誰でもネットワーク上のコンピュータにアクセスできるため、社会の中で急速に普及拡大している。一方、このインターネット通信の普及拡大に伴って、ハッカー(hacker)やクラッカー(Cracker)が他人のコンピュータシステムに侵入して、ソフトウエアやデータを盗み見たり、改竄や破壊を行ったりするという社会問題も大きくなっている。
具体的な不正妨害のケースとしては、まず第1に、中心的なシステムが使えなくなるように、ネットワークから大量のメッセージを送りつけコンピュータシステムの運用を妨害するシステム妨害がある。この妨害によってホストが過負荷になるとシステムダウンに陥ってしまうことも起こりうる。
また、ホストのパスワードを入手し、機密情報を盗んだり、情報の改竄や破壊を行ったりする「不正アクセスとなりすまし」の不正妨害がある。この妨害にはコンピュータが保有する情報を勝手に書き換え、人を陥れる卑劣のものもある。また、特定のパソコンに忍び込み、メールアドレスやパスワードなど個人の機密データを搾取するスパイウエアといわれる不正行為も発生している。このようにネットワークに接続したコンピュータが持つデータベースの内容を不正に盗み見る、いわゆる盗聴行為も頻繁に行われている可能性も否定できない。
また、サイト若しくはサーバの運営元で、意図的に個人情報を盗むといった行為や、社内に潜むスパイなどによるサイバーテロ(Cyber terrorism)といった危機も全くないとはいえない状況である。
さらに、他人のコンピュータにコンピュータ障害をもたらすプログラムである「ウイルス」を送り込むという不正妨害が最近多くなっている。この送り込まれたウイルスに、メールなどを自宅で使用したパソコンが感染し、それを社内に接続した瞬間に社内のパソコン全体が感染したり、ウイルスがコンピュータの中のファイルを破壊させたり、更には、ネットワーク全体をダウンさせたりするといった問題も生じている。
このため、従来のTCP/IP(Transmission Control Protocol/Internet Protocol)やUDP(User Datagram Protocol)を利用したインターネット上での通信において、データの「漏洩」「改竄」等を防ぐ機能として、IPsec(アイピーセック:Security Architecture for Internet Protocol)やSSL(Secure Socket Layer)といわれる暗号化通信が利用されている。
IPsecの特徴は、単に特定のアプリケーションだけを暗号化するのではなく、ホストから送信されるあらゆる通信をIPレベルで暗号化する点にある。これによりユーザはアプリケーションを意識することなく安全な通信を可能とすることができる。また、IPsecは、将来にわたって使えるように、それ自体の仕組みを変えることなく使用する暗号アルゴリズムを変更することを可能としている。
また、SSLを利用することにより、クライアントとサーバは、ネットワーク上でお互いを認証できるようになり、クレジットカード情報などの機密性の高い情報を暗号化してやり取りすることが可能となる。これにより、データの盗聴、再送攻撃(ネットワーク上に流れたデータを盗聴して何度も繰り返して送ってくる攻撃)、なりすまし(本人の振りをして通信する)、データの改竄などを防止することができる。
本発明に用いられる暗号化通信では、トランスポート層(OSIの第4層)にあるTCP層に暗号化機能を追加している。このトランスポート層は、各ノード上で実行されている2つのプロセス間で、エラーのない、仮想的な通信路を実現するためのプロトコル層である。ネットワーク層ではデータを送ることはできるが、そのデータが確実に相手に届くという保証はない。また、送信した順に正しくデータが届くという保証もない。そこで、アプリケーションにとって使いやすくするために、エラーのない通信路を提供するのがトランスポート層である。この第4層のトランスポート層に暗号化機能を追加して、外部からの不正侵入に強い通信システムを実現した例は、本発明者らが世界に先駆けて提案したものであり、本発明者らはこの暗号化通信システムを「TCP2」と命名している(特許文献1参照)。
国際公開WO2005/015827号パンフレット
しかしながら、特許文献1に記載の発明は、TCP2を利用した一般的な暗号化通信システム、通信方法、通信装置及び通信プログラムにとどまり、このTCP2を搭載したFTPシステムはいまだに実現されていない。
本発明の目的は、発明者らが先に提案した「TCP2」を利用した通信システムを用いて、暗号化機能を付加したFTPシステムとそれを実現するプログラムを提供することにある。
すなわち、FTP通信のFTPクライアント装置とFTPサーバ装置にTCP2を実装し、End−to−Endで暗号化されたファイルデータの送受信を可能とするFTPシステム及びそのプログラムを提供することである。
前記課題を解決し、本発明の目的を達成するため、本発明は、ネットワークを介してFTPクライアント装置とFTPサーバ装置との間でファイル転送を行うFTP通信システムであって、FTPクライアント装置及びFTPサーバ装置には、既存のFTPアプリケーション部に加えて、TCP2コアとFTPシステムコアを備えたTCP2ドライバと、FTPシステム管理アプリケーション部が設けられており、TCP2ドライバのTCP2コアは、FTPクライアント装置あるいはFTPサーバ装置から送信されるFTPコマンドまたはFTP応答コードのパケットを確認して、FTPシステムコアに送り、FTPシステムコアは、FTPクライアント装置とFTPサーバ装置間で鍵交換を行うとともに、記憶メディアに保存された種々の設定情報に基づいて、FTPクライアント装置あるいはFTPサーバ装置から送られるFTPコマンドまたはFTP応答コードの暗号化または復号化を行って、FTPクライアント装置及びFTPサーバ装置との間で暗号文によりファイル転送を行い、FTPシステム管理アプリケーション部は、FTPシステムコアに送られるFTPコマンドまたはFTP応答コードに対して暗号化するか、あるいは暗号化しないかを設定し、また、FTPシステムコアに送られる暗号化されたファイルデータに対して復号化するか、あるいは復号化しないかを設定する設定部を有し、この設定部で設定した暗号化するかしないかの情報、及び復号化するかしないかの情報を設定情報としてFTPシステムコアの前記記憶メディアに格納することを特徴としている。
また、本発明のFTP通信プログラムは、TCP2ドライバを実装したFTPクライアント装置とTCP2ドライバを実装したFTPサーバ装置との間でファイル転送を行うFTP通信システムに用いられるプログラムである。すなわち、本発明のFTP通信プログラムは、FTPクライアント装置及びFTPサーバ装置のコンピュータに、以下のような手順を実行させることを特徴としている。
(a)ネットワーク環境に応じて、FTPコマンドメッセージの暗号化または非暗号化をTCP2ドライバが設定する手順、
(b)この設定情報を基に、FTPクライアント装置あるいはFTPサーバ装置自身が保有する鍵元値をTCP2ドライバが作成する手順、
(c)受信したFTPコマンドメッセージあるいはFTP応答メッセージに付加されている鍵元値とこの装置自身が保有する鍵元値からFTPクライアント装置及びFTPサーバ装置の双方で、TCP2ドライバが新たな鍵を生成し、交換する手順、
(d)FTPクライアント装置からFTPサーバ装置に対して、設定情報を基に、TCP2ドライバがFTPコマンドを暗号文または平文で送る手順、
(e)FTPサーバ装置からFTPクライアント装置に対して、設定情報を基に、TCP2ドライバがFTP応答コードを暗号文または平文で送る手順、
(f)FTPサーバ装置からFTPクライアント装置に対して、TCP2ドライバがファイルデータを暗号文で送る手順、
(g)FTPクライアント装置からFTPサーバ装置に対して、TCP2ドライバがファイルデータを暗号文で送る手順。
また、本発明のFTPクライアント装置は、既存のFTPアプリケーション部に加えて、TCP2コアとFTPシステムコアを備えたTCP2ドライバと、FTPシステム管理アプリケーション部を備えており、TCP2ドライバのTCP2コアは、FTPクライアント装置あるいはFTPサーバ装置から送信されるFTPコマンドまたはFTP応答コードのパケットを確認して、FTPシステムコアに送信し、FTPシステムコアは、FTPクライアント装置とFTPサーバ装置間で鍵交換を行うとともに、記憶メディアに保存された種々の設定情報に基づいて、FTPクライアント装置あるいはFTPサーバ装置から送られるFTPコマンドの暗号化または復号化を行って、FTPクライアント装置及びFTPサーバ装置との間で暗号文によりファイル転送を行い、FTPシステム管理アプリケーション部は、FTPシステムコアに送られるFTPコマンドに対して暗号化するか、あるいは暗号化しないかを設定するとともに、FTPシステムコアに送られる暗号化されたファイルデータに対して復号化するか、あるいは復号化しないかを設定する設定部を有し、前記設定部により設定した暗号化するかしないかの情報、及び復号化するかしないかの情報を設定情報としてFTPシステムコアの記憶メディアに格納し、FTPアプリケーション部で受信して保存した暗号文のファイルデータを平文で表示させることを特徴としている。
本発明のFTPサーバ装置も、FTPクアイアンと装置と同様に、既存のFTPアプリケーション部に加えて、TCP2コアとFTPシステムコアを備えたTCP2ドライバと、FTPシステム管理アプリケーション部を備えており、TCP2ドライバのTCP2コアは、FTPクライアント装置あるいはFTPサーバ装置から送信されるFTPコマンドまたはFTP応答コードのパケットを確認して、FTPシステムコアに送信し、FTPシステムコアは、FTPクライアント装置とサーバ装置間で鍵交換を行うとともに、記憶メディアに保存された種々の設定情報に基づいて、FTPクライアント装置あるいはFTPサーバ装置から送られるFTPコマンドの暗号化または復号化を行って、FTPクライアント装置及びFTPサーバ装置との間で暗号文によりファイル転送を行い、FTPシステム管理アプリケーション部は、FTPシステムコアに送られるFTP応答コードに対して暗号化するか、あるいは暗号化しないかを設定するとともに、FTPシステムコアに送られる暗号化されたファイルデータに対して復号化するか、あるいは復号化しないかを設定する設定部を有し、設定部により設定した暗号化するかしないかの情報、及び復号化するかしないかの情報を設定情報としてFTPシステムコアの記憶メディアに格納し、FTPアプリケーション部で受信して保存した暗号文のファイルデータを平文で表示させることを特徴としている。
本発明のFTP通信システムによれば、TCP2機能を使用して、FTPクライアント装置とFTPサーバ装置との間のファイルデータを暗号化したまま転送することができるので、他人に知られることなく、権限のあるものだけがファイルの内容を知ることができるようになる。
また、既存のFTPアプリケーションも備えているので、FTPクライアント装置で利用している従来のファイル転送機能をそのまま利用することができるという効果もある。
以下、図面を参照しながら本発明の実施の形態の例を説明する。
図1は、本発明の暗号化通信システムに用いられるTCP2のプロトコルスタックを示すものである。
<TCP2プロトコルスタックの説明>
このプロトコルスタックには、OSIの7階層の物理層(第1層)とデータリンク層(第2層)に相当する階層に、NIC(Network Interface Card)のドライバ11が配列されている。このドライバは、コンピュータなどのハードウエアをネットワークに接続するためのドライバであり、その内容はデータ送受信制御ソフトウエアである。例えばEthernet(登録商標)に接続するためのLANボードまたはLANカードがこれに相当する。
第3層のネットワーク層には、一部がトランスポート層(第4層)まで伸びたIPエミュレータ(emulator)13が存在している。上記トランスポート層に延びた部分には、トランスポートとしての機能は実装しておらず、セッション層(第5層)にネットワーク層の機能を提供しているだけある。このIPエミュレータ13は、暗号化通信を行うプロトコルである「IPsec on CP」13bと、「IP on CP」13aを用途に応じて切り換えて使う働きをするものである。ここで、「on CP」とは、クラッキング・プロテクタ(CP)による、「進入」「攻撃」の監視、破棄、切断ないし通過制限の対象となっていること、又は、設定によりなりうることを示している。
また、ネットワーク層にはARP on CP(Address Resolution Protocol on Cracking Protector)が配列されている。このARP on CPは、クラッカー(Cracker)への保護対策を具備したIPアドレスからEthernet(登録商標)の物理アドレスであるMAC(Media Access Control)アドレスを求めるのに使われるプロトコルである。MACは、媒体アクセス制御と呼ばれる、LANなどで利用される伝送制御技術であり、データの送受信単位であるフレームの送受信方法やフレームの形式、誤り訂正などを規定する技術として利用されている。
ここで、IPエミュレータ13は、本発明による各種のセキュリティ機能を、従来のIP周辺のスタックに整合させるためのソフトウエア又はファームウエアである。すなわち、IPエミュンレータ13は、ICMP(Internet Control Message Protocol)14a、IGMP(Internet Group Management Protocol)14b、TCP15、UDP16さらにソケット(Socket)インターフェース17に整合させるためのソフトウエア、又はファームウエア、ないしはハードウエア(電子回路、電子部品)である。このIPエミュレータ13により、IPsecの暗号化・復号化及び必要な認証情報付加・認証等の前後の適合処理を行うことができる。なお、ICMPは、IPのエラーメッセージや制御メッセージを転送するプロトコルであり、IGMPは、同一のデータを複数のホストに効率よく配送するための又は配送を受けるために構成されるホストのグループを制御するためのプロトコルである。
このIPエミュレータ13の上層のトランスポート層(第4層)には、TCPエミュレータ15とUDPエミュレータ16が配置されている。TCPエミュレータ15は、暗号化通信を行うプロトコルである「TCPsec on CP」15bと、通常の通信プロトコルである「TCP on CP」15aを用途に応じて切り換えて使う働きをする。同様に、UDPエミュレータ16は、暗号化通信を行うプロトコルである「UDPsec on CP」16bと、通常の通信プロトコルである「UDP on CP」16aを用途に応じて切り換えて使う働きをする。
また、TCP2の最も特徴とされる点は、トランスポート層(第4層)に、TCPsec15bと、UDPsec16bの暗号化通信プロトコルを搭載したことである。
このトランスポート層(第4層)の上層のセッション層(第5層)には、TCP及びUDP等のプロトコルとデータのやりとりを行うソケット(socket)インターフェース17が設けられている。このソケットの意味は、既に述べたようにコンピュータが持つネットワーク内の住所に当たるIPアドレスと、IPアドレスのサブアドレスであるポート番号を組み合わせたネットワークアドレスを意味している。実際には、一連のヘッダの追加ないし削除をまとめて行う、単一のソフトウエアプログラムモジュール(実行プログラム等)あるいは単一のハードウエアモジュール(電子回路、電子部品等)から構成されている。
TCPエミュレータ15は、トランスポート層において、データの漏洩・改竄の防止の機能、すなわち暗号化、完全性認証及び相手認証等の機能を持つTCPsec15bと、このような暗号化、完全性認証、及び相手認証等の機能を持たない通常のプロトコルTCP15aのいずれかにパケットを振り分ける働きをもっている。また、TCPsec15b及びTCP15aのいずれもクラッキング・プロテクタ(CP)を備えているため、そのいずれを選択した場合でも、クラッカーによる「進入」「攻撃」に対して防御する機能を実現することができる。TCPエミュレータ15は上位層であるソケットとのインターフェースの役割も果たしている。
また、既に述べたようにTCPがエラー補償機能を有するのに対して、UDPはエラー補償機能を持たないが、その分転送速度が速く、かつブロードキャスト機能を備えているという特徴がある。UDPエミュレータ16は、TCPエミュレータ15と同様に、データの漏洩・改竄の防止の機能、すなわち暗号化、完全性認証及び相手認証等の機能を持つUDPsec16bと、このような暗号化、完全性認証、及び相手認証等の機能を持たない通常のプロトコルUDP16aのいずれかにパケットを振り分ける働きを持っている。
図1に示すように、ソケット17、TCPエミュレータ15、UDPエミュレータ16、「TCPsec on CP」15b、「UDPsec on CP」16b、「TCP on CP」15a、「UDP on CP」16a、「ICMP on CP」14a、「IGMP on CP」14b、IPエミュレータ13、「IP on CP」13a、及び「ARPonCP」12からなるプロトコルスタックが本発明の暗号化処理を行うためのプロトコルスタックであり、以下、このプロトコルスタックを総称してTCP2と呼んでいる(特許文献1参照)。
本発明のメールシステムにおいて中心的な役割を果たすTCP2は、TCP、UDP、IP、IPsec、ICMP、IGMP、ARPの標準プロトコルにCP(クラッキング・プロテクト)を実装し、各プロトコルスタックに対する通信からの攻撃、及び、アプリケーション・プログラムからの攻撃(トロイの木馬、プログラムの改竄、正規ユーザの不正使用)を防御することができる。また、TCP2では、TCPエミュレータ15を実装し、このTCPエミュレータ15は、セッション層にあるソケット(Socket)17、及びネットワーク層にあるIPエミュレータ13から見て、互換性を保つため、外向きには標準TCPと同じに見せることができる。実際は、TCP2の機能として、TCPとTCPsecを切り替えて実行する。TCPsecは、トランスポート層での暗号化及び認証機能である。
また、同様に、TCP2では、UDPエミュレータ16を実装しており、UDPエミュレータ16は、セッション層であるソケット(Socket)17、及び、ネットワーク層であるIPエミュレータ13から見て、互換性を保つため、外部からは標準UDPとして見せることができる。実際は、TCP2の機能として、UDP、UDPsecを切り替えて実行する。但し、UDPsecは、本発明のメールシステムには利用されない機能であるので、これ以降の説明では触れない。
次に、TCP2において、特に重要な機能である「データ漏洩」を防ぐ機能であるTCPsec15bについて説明する。TCPsec15bのための暗号化・復号化の方法(アルゴリズム、ロジック(論理))としては、公知の秘密鍵(共通鍵)暗号アルゴリズムが用いられる。
また、本発明のメールシステムに用いられるTCPsec15bの暗号方式として、FEAL(Fast data Encipherment Algorithm)、MISTY、AES(Advanced Encryption Standard)といった暗号方式も利用されるほか、また、独自に作成した秘密の暗号化・復号化アルゴリズムを利用することもできる。ここで、FEALは、日本電信電話株式会社(当時)が開発した暗号方式で、暗号化と復号化に同じ鍵をもちいる秘密鍵型の暗号方式である。このFEALは、DES(Data Encryption Standard:米国IBM社が開発した共通鍵(秘密鍵)暗号化アルゴリズム)に比べて高速に暗号化と復号化ができるという利点がある。
次に、同じくTCP2に利用される暗号方式は、例えばMISTYが用いられるが、このMISTYは、IDEAと同様にデータを64ビットのブロックに区切って暗号化する。鍵の長さは128ビットである。暗号化と復号化には同じプログラムが使われる点はDESなどと同じである。
このように、本発明のTCPsec15bの暗号方式としては、既に知られているさまざまな秘密鍵の暗号アルゴリズムを採用することができるほか、ユーザが独自に開発した秘密鍵(共通鍵)暗号方式も利用することが可能である。
さらに、いわゆる「なりすまし」及び「データの改竄」などを防ぐための「相手認証」及び「完全性認証」の方法として、公開鍵や事前秘密共有(Pre-shared)を利用したアルゴリズム、例えば、MD5(Message Digest 5)、SHA1(Secure Hash Algorithm 1)などの認証アルゴリズムが用いられる。また、このような公知の認証アルゴリズムに代えて独自の一方向関数を利用したアルゴリズムを採用することもできる。
このMD5は、認証やデジタル署名に用いられるハッシュ関数(一方向要約関数)の一つであり、原文を元に固定長のハッシュ値を発生し、これを通信経路の両端で比較することにより、通信途中で原文が改竄されていないかを検出することができるものである。このハッシュ値は擬似的な乱数のような値をとり、これを基にしては原文を再生できないようになっている。また、同じハッシュ値を生成する別のメッセージを作成することも困難になっている。
SHA1も、認証やデジタル署名などに使われるハッシュ関数の一つであり、2の64乗ビット以下の原文から160ビットのハッシュ値を生成し、通信経路の両端で比較することにより、通信途上の原文の改竄を検出するものである。この認証アルゴリズムは従来のインターネットの暗号化通信の代表的なものであるIPsecにも採用されている。
なお、これらの認証アルゴリズムについては、DH(Diffie-Hellman)公開鍵配送法や、IPsecと同様のIKE(Internet Key Exchange)プロトコル(UDPの500番)などにより安全な鍵交換ができるように設計され、しかも、定期的に暗号化/完全性認証アルゴリズム(論理)自体やそのための鍵の集合/定義域が変更されるように、プロトコルドライバープログラム(TCPsec15b、UDPsec16bなど)によりスケジュールされている。
<TCP2データパケット構造の説明>
次に、図2に基づいて、本発明のメールシステムで用いられるデータのパケット構造と、その暗号化範囲及び完全性認証の適用範囲について説明しておく。
図2は、TCPsec/IPのパケット構造と暗号化範囲及び完全性認証の適用範囲を示したものである。図2に示すように、IPヘッダ21のすぐ後に、TCPヘッダ22及びTCPsec付加情報23が続き、更にアプリケーションデータ24が続く構造になっている。そして、アプリケーションデータ24の後には、TCPsecの付加トレーラ25とTCPsecの付加認証データ26が配列される構造となっている。TCPsecの付加トレーラ25は、ブロック暗号で発生するデータのブランクやそのブランクの長さ、次のヘッダの番号などの暗号データをサポートする情報である。
TCPsecの特徴であるこれらの情報は、採用する暗号化/認証アルゴリズムによっては、TCPsec/IPの使用していないヘッダフィールド部分などに分散したり、個々のパケットからは逆算・推測できない独立した事前取決め(ネゴシエーション)により省略したりできるものである。また、IP層の上層に当たるTCP及びIPを使用していないプロトコルフィールドを用いて、図2に示すようなTCPsec/IPパケットを構成することにより、より下層のIPのみに着目したIPsecパケットよりもパケット長を簡単に削減することができるようになる。なお、ここで暗号化範囲は、図示の通り、アプリケーションデータ24、TCPsec付加トレーラ25であり、認証範囲は上記暗号化範囲の他に、TCPsecの付加情報26が加えられる。
<TCP2を用いたFTPシステムの機能ブロック図の説明>
次に、本発明のTCP2を用いたFTPシステム、特にFTPクライアント装置とFTPサーバとの間で通信を行うFTPシステムの第1の実施の形態について図面を参照して説明する。
図3は、本発明のFTPシステムに用いられるFTPクライアント装置とFTPサーバ装置の実施形態例のブロック構成図である。FTPクライアント装置とFTPサーバとは、同じブロック構成図であるが、これらを区別するために、FTPクライアント装置では、記号“A”を、FTPサーバ装置では、記号“B”を付加することにする。FTPクライアント装置AとFTPサーバ装置Bは、ネットワーク40に接続されている。
FTPクライアント装置Aについてまずその構成を説明する。FTPクライアント装置Aは、入力装置31A、出力装置(表示装置)32A、既存のFTPアプリケーション部33Aの他に、FTPシステム管理アプリケーション部34AとTCP2ドライバ35Aを備えている。また、FTPサーバ装置Bから受信したファイルを保存する記憶メディア36Aを備えている。
TCP2ドライバ35Aは、図4で説明するTCP2コア37Aと、図5で説明するFTPシステムコア38A及び記憶メディア39Aから構成されている。記憶メディア39Aは、FTPクライアント装置Aが通常有する記憶メディア36Aとは異なる記憶メディアであり、FTPシステムコア38Aが持っている秘密鍵で暗号化された状態で、後述する種々の情報を記憶するものである。
ここで、FTPクライアント装置Aが接続されるネットワーク40には、FTPサーバ装置Bも接続されており、ネットワーク40を介してFTPクライアント装置AとFTPサーバ装置B間でファイルの転送が行われる。FTPサーバ装置Bの構成もFTPクライアント装置Aと同じになるので、その説明は省略する。
次に、図3に示すFTPクライアント装置Aにおける動作を簡単に説明しておく。詳しくは図4〜図6で説明する。
まず、FTPサーバ装置Bからネットワーク40を介して送信される暗号化されたファイルデータは、FTPクライアント装置Aに搭載されたTCP2ドライバ35AのTCP2コア37AAに送られる。そして、このTCP2コア37AでFTPポートのパケットであることを確認した後、このファイルデータをFTPシステムコア38Aに送る。そしてFTPシステムコア38Aで後述する処理がなされて既存のFTPアプリケーション部33Aに送られる。
このFTPシステムコア38Aは、FTPサーバ装置Bから送られるFTPメッセージを分析し、このメッセージの暗号化または復号化を行う部分である。さらに、このFTPシステムコア38Aにおいて、鍵の生成と鍵交換が行われる。さらに、FTPシステムコア38Aは記憶メディア39Aに接続されており、この記憶メディア39AにFTPサーバのIPアドレスとポート番号が保存される。また、この記憶メディア39Aには、種々の設定情報、ユーザIDとパスワード、鍵情報が保存される。FTPサーバ装置Bの記憶メディア39Bにも、同様な情報が保存されるが、FTPクライアント装置Aのポート番号は保存されない。FTPクライアント装置AのIPアドレスのみが保存される。
また、FTPシステムコア38Aは、FTPシステム管理アプリケーション部34Aに接続されている。このFTPシステム管理アプリケーション部34Aは、通信相手の情報を管理する部分であり、使用しているネット環境に応じて暗号化するか、あるいは暗号化しないかを設定している。また、FTPサーバ装置Bから受信したファイルデータのうち、ディレクトリ情報以外のファイル情報を「復号化するか、しないか」を設定する。
以上、本発明のFTPクライアント装置Aの実施形態例の構成と動作を説明したが、FTPサーバ装置Bも、FTPクライアント装置Aとほぼ同じ動作をするので、ここでは説明を省略する。
次に、FTPクライアント装置Aを構成する各要素の具体例を、図4〜図6のブロック図と図7〜図14のフローチャートに基づいて説明する。
図4は、TCP2ドライバ35の構成要素であるTCP2コア37をより詳細に説明するための機能ブロック図である。FTPクライアント装置AとFTPサーバ装置Bで同じ構成なので、図3で付加したA,Bは省略して同一番号の符号を付している。
図4に示すように、TCP2コア37は、FTPシステムコア38からのポートサーチ要求を受けて指定ポートをサーチする指定ポートサーチ部42と、同じくFTPシステムコア38からのフック要求を受けて要求に合致するパケットをフックするフック処理部43を備えている。
FTPクライアント装置Aの既存のFTPアプリケーション部33からのFTPコマンドのメッセージパケットを受信し、それがFTPコマンドのメッセージパケットであることを確認するFTPコマンドメッセージパケット確認部44とその応答メッセージを確認するためのFTP応答メッセージパケットを確認部45とを備えている。さらに、これらFTPコマンドメッセージ確認部44とFTP応答メッセージパケット確認部45をFTPシステムコア38に接続するパケットインターセプト部46を有している。
フック処理部43は、FTPシステムコア38からのフック要求(所定のパケットを受信したらそれを捕まえなさいという要求)があったものを補足する処理を行う部分である。すなわち、フック処理部43では、FTPコマンドメッセージパケット確認部44と連携して、予めフック要求があるIPアドレスやポートが確認されたらこれを捕捉して、FTPシステムコア38に送る。また、FTP応答メッセージパケットの確認部45も同様にそれぞれのメッセージパケットを確認すると、それをフック処理部43で捕捉し、その結果を、パケットインターセプト部46を経由してFTPシステムコア38に送る。以上がTCP2コア37の構成と動作である。
次に、図5に基づいて、FTPシステムコア38の構成と動作について説明する。図3、図4と同一の構成は同一符号を付し、説明は省略する。
FTPシステムコア38は、TCP2コア37から送られるFTPコマンドメッセージパケットの分析と認証を行う認証/分析部50と、この認証/分析部50で分析されかつ認証されたFTPコマンドメッセージパケットを暗号化する暗号化部51と、同様に認証/分析部50で分析されかつ認証されたFTPコマンドメッセージパケットを復号化する復号化部52と、FTPクライアント装置間で鍵交換を行う鍵交換部53を備えている。また、上述したように、FTPクライアント装置Aでは、FTPシステムコア38Aに接続される記憶メディア39Aには、各種設定情報、ユーザIDとパスワード、FTPサーバのIPアドレスとポート番号、及び鍵情報等が暗号化した状態で保存されている。ここで、記憶メディア39AとしてFTPサーバ装置Bの記憶メディア39Bと区別したのは、FTPサーバ装置Bの記憶メディア39Bには、FTPクライアントのIPアドレスは保存されるが、そのポート番号は保存されないからである。
また、FTPシステムコア38は、FTPシステム管理アプリケーション部34と接続するためのインターフェース部54を具備している。このインターフェース部54を介してFTPシステムコア38の記憶メディア39がFTPシステム管理アプリケーション部34と接続されるようになっている。
以下、図5に示すFTPシステムコア38の動作の説明を行う。上述したように、FTPシステムコア38からのフック要求に基づいて、TCP2コア37でフックされたコマンドメッセージパケットは、TCP2コア37からFTPシステムコア38の認証/分析部50に送られる。
FTPシステムコア38の暗号化部51は、認証/分析部50で分析されたFTPコマンドメッセージパケットを暗号化し、このFTPコマンドメッセージパケットを、TCP2コア37を介してFTPサーバ装置B(又はクライアント装置A)に送る。
復号化部52は、認証/分析部50で認証されたFTPコマンドメッセージを復号化して、TCP2コア37を介して、不図示の既存のFTPアプリケーション部33に送信する。また、鍵交換部53は、FTPクライアント装置AとFTPサーバ装置Bとの間で鍵交換を行う部分である。
このFTP通信の暗号化と復号化に関連して、FTPクライアント装置AとFTPサーバ装置Bとの間に、ルータ/ファイアオール等のパケットフィルタリング機能を持つ中継装置がある場合について説明する。このような場合には、ルータ/ファイアオールがFTPのデータセッションの待ち受けポートを認識するので、必要なFTPコマンドとFTP応答コードを暗号化せずに平文のまま送信している。これにより、既存のネットワークに影響を与えることなく、FTP通信が可能となる。
このため、TCP2を用いてFTP通信を行う際には、最初に一部のFTPコマンドとFTP応答コードについて、「暗号化するか/あるいは暗号化しないか」の設定を行う必要がある。
次に、図6に基づいてFTPシステム管理アプリケーション部34の構成と動作について説明する。FTPシステム管理アプリケーション部34もFTPクライアント装置AとFTPサーバ装置Bとで構成が変わらないので、単に番号のみを示しクライアントを表す‘A’とサーバを表す‘B’は付加しないで説明する。
FTPシステム管理アプリケーション部34は、FTPシステムコア38と入力装31、出力装置32とを接続するソフトウエアであり、インターフェース61、ユーザ登録部62、通信相手情報管理部63、暗号文ファイルを平文表示する表示部64及び入出力制御部65から構成されている。
入出力制御部65からインターフェース61を介してFTPシステムコア38でユーザ登録を行い、ユーザ登録が完了すると、FTPシステムコア38からユーザ登録完了通知が、インターフェース61を介してユーザ登録部62に送られ、ユーザ登録と鍵交換が完了していることを認識する。
また、平文での表示部64は、記憶メディア39に暗号文で保存されているファイルを平文に変えて、出力装置32の表示画面に表示させる機能を有している。
また、通信相手情報管理部63は、FTPシステムコア38からの通信相手情報を受け取り、これを管理する。また、設定部66は、FTPメッセージを受信し、これを暗号化する部分と暗号化しない部分に分ける設定を行うとともに、FTPサーバ装置Bから受信したファイルデータのうち、ディレクトリ情報以外のファイル情報をも復号化するかしないかの設定を行う。
<FTPシステムの流れ(クライアント側:初回)の説明>
次に、図7、図8に基づいて、FTPクライアント装置AがFTPサーバ装置Bからファイルデータをダウンロードする際のクライアント側のFTPシステムの流れ(初回)を説明する。ここで、「初回」としたのは、2回目以降、この手続は不要となることを意味している。ここで説明するのは、クライアント装置A側のTCP2ドライバ35Aの動作説明が中心となるので、クライアント側を表す‘A’を付けて説明し、後述するFTPサーバ側のシステムの説明(‘B’を付加)と区別することとする。
まず、FTPシステム管理アプリケーション部34Aの設定部66Aにおいて、FTPメッセージの暗号化または非暗号化する部分が設定される(ステップS1)。この設定は、使用しているネットワーク環境に応じて設定される。また、ステップS1においては、FTPサーバ装置Bから受信したファイルデータを復号化するか、しないかの設定も設定部66Aが行うことになる。なお、この設定は、TCP2のダウンロードサーバから取得することもできる。また、設定データを保存したFD,CD、USBメモリから取得することも可能である。
FTPシステムコア38Aは、FTPシステム管理アプリケーション部34Aから送られる設定情報を基に、鍵元値を作成し、これを記憶メディア39Aに保存する(ステップS2)。そして、FTPシステムコア38AからTCP2コア37Aに対してFTPのサーチ要求がなされる。このサーチ要求を受けて、TCP2コア37Aは、指定通信ポートをサーチし(ステップS3)、FTPのパケットであると認識すれば、後述するようにFTPシステムコア38にサーチしたポートを通知する。
ここで、FTPクライアント装置Aは、FTPサーバ装置Bから送られるファイルのダウンロードの要求を行う(ステップS4)。まず、FTP接続要求(FTP IPアドレスorホスト名)をFTPサーバ装置Bに送信する。ここで「FTP IPアドレスorホスト名」は「IPアドレスorホスト名」のFTPサーバに対して接続を要求するFTPコマンドである。TCP2コア37Aは、この送信されたFTP接続要求を受信し、FTPメッセージからFTPのポートであることを認識すると、サーチ結果をFTPシステムコア38Aに通知する(ステップS5)。また、FTP接続要求のパケットをFTPシステムコア38Aに送る。
FTPシステムコア38Aは、TCP2コア37Aのサーチ結果を受けて、TCP2コア37Aにパケットのインターセプトを要求するとともに、FTPサーバに対して、FTP接続要求メッセージ(FTPクライアントのIPアドレスとホスト名)に鍵元値を付加してFTPサーバ装置Bに送る(ステップS6)。
TCP2コア37AはFTPシステムコア38Aからの要求を受けて、パケットのインターセプトを開始する(ステップS7)。この段階で、FTPクライアント装置AからFTPサーバ装置BへのTCP通信が確立されることになる。すなわち、「ポート21」への接続が完了する。
続いて、FTPサーバ装置BからFTPクライアント装置Aに、応答コード「220」が発せられる。この応答コード「220」は、サービスが新規ユーザに対して使用可能であること(「FTP server ready」)を通知するFTPの応答コードである。
TCP2コア37Aは、FTP接続応答のパケットを確認し、そのパケットをFTPシステムコア38Aに送る(ステップS8)。FTPシステムコア38Aは、その認証/分析部50Aで「220」応答コードと「FTP」メッセージを分析し、FTP応答メッセージに付加されている鍵元値とFTPシステムコアに保存されている鍵元値から、新たな鍵を生成する。この鍵の生成は、FTPシステムコア38Aの中の鍵交換部53Aで行われる。この新たに生成された鍵は記憶メディア39Aに保存される。また、FTPサーバ装置BのIPアドレスとポート番号を記憶メディア39Aに保存する(ステップS9)。そして、FTPサーバ装置Bから送られた「220」の応答コード「FTP server ready」をFTPクライアント装置Aに送る。
次に、FTPクライアント装置Aから、FTPサーバ装置Bに対して、ユーザID(「USER ユーザ名」)が送信される。ここで「USER ユーザ名」は指定のユーザ名でログインすることを告げるFTPコマンドである。この時、TCP2コア37Aは、このユーザIDのパケットを確認し(ステップS10)、FTPクライアント装置Aからの「USER」メッセージをFTPシステムコア38Aに送る。FTPシステムコア38Aは、この「USER」メッセージを分析し、記憶メディア39A(図5参照)に、ユーザIDを一時的に保存(仮保存)しておく(ステップS11)。ここで、一時的に保存とは、パスワードの確認等によって認証ができていない段階、すなわち、認証後の正式な保存の前段階の保存を意味している。そして、ユーザIDをFTPサーバ装置Bに送る。
FTPサーバ装置Bからは、このユーザIDに対する応答として、パスワードを求める「331」応答コードが出される。すなわち、「331 Password required for ユーザ名」というものである。TCP2コア37Aは、このユーザID応答のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS12)。FTPシステムコア38Aは、この「331」メッセージを分析し、暗号文であればこれを復号化する(ステップS13)。なお、平文の場合は特別な処理をしない。そして、「331」応答コード(「331 Password required for ユーザ名」)をFTPクライアント装置Aに送る。
続いて、FTPクライアント装置Aからパスワードが送信され、TCP2コア37Aでこれを確認する(ステップS14)。そして、この確認したパスワードをFTPシステムコア38Aに送る。FTPシステムコア38Aは、「PASS」メッセージを分析し、記憶メディア39Aにパスワードを仮保存する(ステップS15)。また、FTPシステムコア38Aは、その設定部66A(図6参照)で設定された内容にしたがって、暗号化/非暗号化の処理を行う。
すなわち、上述したように、ルータやファイアオール等のパケットフィルタリング機能を持つ中継装置がある場合であれば、ルータやファイアオールがFTPのデータセッションの待ち受けポートを認識するので、必要なFTPコマンドとFTP応答コードを暗号化せずに平文のまま送信する。FTPシステムコア38Aは、暗号化するか、暗号化しないかを設定する設定部66A(図6参照)を有し、この設定部66Aで、最初に一部のFTPコマンドとFTP応答コードについて、「暗号化するか/あるいは暗号化しないか」の設定を行うようにしている。そして、パスワードをFTPサーバ装置Bに送る。
次に、このパスワードを受信したFTPサーバ装置Bは、ログインが完了したことを告げる「230」応答コードをFTPクライアント装置Aに送る。TCP2コア37Aは、このパスワード応答のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS16)。FTPシステムコア38Aは、「230」メッセージを分析し、記憶メディア39Aに仮保存してあったユーザIDとパスワードを正式に保存する(ステップS17)。そして、FTPクライアント装置Aにユーザ名がログインされたことを通知する。
続いて、FTPクライアント装置AからFTPサーバ装置Bに対して、カレントディレクトリの表示、つまり現在のワーキングディレクトリを示すFTPコマンド「PWD」が送られる。TCP2コア37Aは、このカレントディレクトリの表示のパケットを確認し、その結果をFTPシステムコア38Aに送る(ステップS18)。
FTPシステムコア38Aは、この「PWD」メッセージを分析し、設定にしたがって暗号化/非暗号化の処理を行う(ステップS19)。FTPシステムコア38Aは、「PWD」メッセージの分析と暗号化/非暗号化処理を終えると、「PWD」をFTPサーバ装置Bに送る。
これを受けてFTPサーバ装置Bは、カレントディレクトリの表示応答「257」を発生する。この応答コード「257」は、パスが作成されたことを伝える応答コードであり、例えば「“/home /fred/ ”is current directory」という表示応答になる。TCP2コア37Aは、このカレントディレクトリの表示応答のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS20)。
FTPシステムコア38Aは、この「257」メッセージを分析し、暗号文であれば復号化処理を行う。平文であればそのままの状態で特別な処理を施さない(ステップS21)。そして、「257」応答コードをFTPクライアント装置Aに送る。
続いて、図8に進み、クライアント側のFTPシステムの流れ(初回)の第2段階について説明する。
第2段階では、FTPクライアント装置AからFTPサーバ装置Bに対して、「PORT IPアドレスとポート番号」というFTPコマンドが送られる。このコマンドは、データコネクションで使用するIPアドレス(通常はクライアント)とポート番号を指示するコマンドである。この命令を受けると、TCP2コア37Aは、IPアドレスとポート番号のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS22)。FTPシステムコア38Aは、「PORT」メッセージを分析し、設定部66A(図6参照)の設定に従って暗号化/非暗号化処理を行う。そして、この「PORT IPアドレスとポート番号」メッセージをFTPサーバ装置Bに送る(ステップS23)。
これに対して、FTPサーバ装置Bは、コマンドの使用が可能になったことを告げる応答コード「200」を発生する。TCP2コア37Aはこの応答コード「200」のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS24)。FTPシステムコア38Aは、認証/分析部50で「200」メッセージを分析し、その復号化部52で暗号文の復号化処理を行う(ステップS25)。そして、この応答コード「200」をFTPクライアント装置Aに送る。
続いて、FTPクライアント装置Aからダウンロード要求を求める「RETR ファイル名」のメッセージがFTPサーバ装置Bに向けて発信される。「RETR ファイル名」は、指定した内容のファイルをFTPサーバ装置Bから取得することを命じるFTPコマンドである。TCP2コア37Aは、このコマンドを受けてFTPコマンドメッセージパケットの確認部44Aでこのパケットの確認を行い、このコマンドをFTPシステムコア38Aに送る(ステップS26)。
FTPシステムコア38Aは、その認証/分析部50Aでコマンド「RETR」メッセージを分析し、記憶メディア39Aに記憶されている設定情報に従って、暗号化処理を行う(ステップS27)。そして、このコマンド「RETR」をFTPサーバ装置Bに送る。この段階でポート20への接続が完成し、FTPクライアント装置AとFTPサーバ装置BとのデータセッションのTCP通信が確立されたこととなる。
FTPサーバ装置BからFTPクライアント装置Aに対して、応答コード「150」が発信される。この応答コード「150」は、アスキーモードのデータを送信する通知(「150 ASCII data connectionファイル名」)であり、「ファイルの送信が正常に開始されること、及びデータ接続がオープンであることを示す」コードである。
TCP2コア37Aは、その応答メッセージパケットの確認部45Aで、この応答コード「150」のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS28)。FTPシステムコア38Aは、その認証/分析部50において、この「150」メッセージを分析し、暗号文の復号化処理を行う(ステップS29)。そして、この「150」応答コードをFTPクライアント装置Aに送る。
続いて、FTPサーバ装置Bからクライアント装置Aにファイルデータが送信される。このファイルデータを受信したTCP2コア38Aは、FTP応答メッセージパケットの確認部45Aでファイルデータのパケット確認を行い、これをFTPシステムコア38Aに送る(ステップS30)。FTPシステムコア38Aは、その認証/分析部50Aにおいて、このファイルデータを分析し、記憶メディア39Aに保存されている設定情報に従って復号化処理、あるいは復号化しないで処理を行う(ステップS31)。ここで、復号化するか、あるいは復号化しないで暗号のまま送信するかの決定はシステムが行うこととなる。そして、ファイルデータをFTPクライアント装置Aに送る。
この段階でFTPクライアント装置AとFTPサーバ装置Bは、ポート20から切断され、データセッションのTCP通信が切断される。
続いて、FTPサーバ装置Bから、データ転送の終了を告げる「226」応答コードがFTPクライアント装置Aに送られる。この「226」応答コードは、「226 ASCII Transfer complete」と記述されるもので、データの接続がクローズであること、及び要求されたファイルの処理が正常に完成したことを通知する応答コードである。
TCP2コア37Aは、応答コードメッセージ確認部45Aで、この「226」応答コードのパケットを確認し、これをFTPシステムコア38Aに送る(ステップS32)
FTPシステムコア38Aは、その認証/分析部50Aで「226」応答コードを分析し、暗号文を復号化し、「226」応答コードをFTPクライアント装置Aに送る(ステップS33)。
最後に、FTPクライアント装置AからFTPサーバ装置Bに向けて、接続を解除することを伝える終了宣言(QUIT)が送られる。この終了宣言は、ログアウトすることを告げるFTPコマンドであり、TCP2コア37Aはこの終了宣言をそのFTPコマンドメッセージ確認部44Aで確認し、これをFTPシステムコア38Aに送る(ステップS34)。
FTPシステムコア38Aは、その認証/分析部50Aで、この「QUIT」メッセージを分析し、暗号化処理を行い、終了宣言(QUIT)をネットワーク40に接続されているFTPサーバBに送る(ステップS35)。その後、FTPサーバ装置Bからコネクションの終了を告げる終了宣言応答「221」メッセージがFTPクライアント装置AのTCP2コア37Aに送られる。TCP2コア37Aは、この終了宣言応答のパケットを確認し(ステップS36)、この結果をFTPシステムコア38Aに送る。
FTPシステムコア38Aは、TCP2コア37Aからの「221」メッセージを分析して、暗号文を復号化し、終了宣言応答である「221」メッセージをFTPクライアント装置Aに送る(ステップS37)。この段階で、ポート21の接続も切断され、FTPクライアント装置AとFTPサーバ装置B間のTCP通信の制御セッションが切断される。
以上が、FTPシステムのクライアント側の流れ(初回のみ)の説明である。
<FTPシステムの流れ(サーバ側:初回)の説明>
次に、図9、図10に基づいて、FTPクライアントがFTPサーバからファイルデータをダウンロードする際のサーバ側のFTPシステムの流れ(初回)について説明する。ここでの説明は、図7、図8で説明したクライアント側の説明と同じであるが、ここで説明するのは、FTPサーバ装置B側のTCP2ドライバ35Bの動作説明が中心となるので、サーバ側を表す‘B’を付けて説明する。
まず、FTPサーバ装置BのFTPシステム管理アプリケーション部34Bの設定部66Bにおいて、FTPメッセージの暗号化または非暗号化する部分が設定される(ステップS40)。この設定は、使用しているネットワーク環境に応じて設定される。また、ステップS40においては、FTPサーバ装置Bから受信したファイルデータを復号化するか、しないかの設定も設定部66Bが行うことになる。なお、この設定は、TCP2のダウンロードサーバから取得することもできる。また、設定データを保存したFD,CD、USBメモリから取得することも可能である。
FTPシステムコア38Bは、FTPシステム管理アプリケーション部34Bから送られる設定情報を基に、鍵元値を作成し、これを記憶メディア39Bに保存する(ステップS41)。その後、FTPシステムコア38BからTCP2コア37Bに対してFTPのサーチ要求がなされる。このサーチ要求を受けて、TCP2コア37Bは、指定通信ポートをサーチする(ステップS42)。
次に、FTPクライアント装置Aより、FTP接続要求がFTPサーバ装置Bに送信される。FTPサーバ装置BのTCP2コア37Bは、この送信されたFTP接続要求を受信し、そのFTPメッセージからFTPのポートであることを認識する。そして、ステップS42のサーチ結果をFTPシステムコア38Bに通知する(ステップS43)。また、FTP接続要求のパケットをFTPシステムコア38Bに送る。
FTPシステムコア38Bは、TCP2コア37Bのサーチ結果を受けて、TCP2コア37Bにパケットのインターセプトを要求する。また、FTP接続要求メッセージに付加されている鍵元値とFTPシステムコアに保存されている鍵元値から、新たな鍵を生成する。この鍵の生成は、FTPシステムコア38Bの中の鍵交換部53Bで行われる。そして、新たに生成された鍵を記憶メディア39Bに保存する。また、FTPクライアント装置AのIPアドレスが記憶メディア39Bに保存される(以上、ステップS44)。これらの処理が終了すると、FTPシステムコア38BはFTP接続要求をFTPサーバ装置Bに送る。TCP2コア37BはFTPシステムコア38Bからのパケットのインターセプト要求を受けて、パケットのインターセプトを開始する(ステップS45)。
この段階で、「ポート21」への接続が完了し、FTPクライアント装置AからFTPサーバ装置BへのTCP通信が確立される。続いて、FTPサーバ装置BからFTPクライアント装置Aに、応答コード「220」が発せられる。この応答コード「220」は、サービスが新規ユーザに対して使用可能であること(「FTP server ready」)を通知するFTPの応答コードである。
FTPサーバ装置Bから応答コード「220」を受けたTCP2コア37Bは、FTP接続応答コード「220」のパケットを確認し、その結果をFTPシステムコア38Bに送る(ステップS46)。FTPシステムコア38Bは、その認証/分析部50Bで「220」応答コードと「FTP」メッセージを分析し、FTP接続応答メッセージ(「FTP server ready」)に鍵元値を付加してFTPクライアント装置Aに送る(ステップS47)。
次に、FTPクライアント装置Aから、FTPサーバ装置Bに向けてユーザID「USER ユーザ名」が送信される。ここで「USER ユーザ名」は指定のユーザ名でログインすることを告げるFTPコマンドである。このユーザID(ユーザ名)を受信したFTPサーバ装置BのTCP2コア37Bは、そのFTPコマンドメッセージ確認部44Bで、このユーザIDのパケットを確認し(ステップS48)、FTPクライアント装置Aからの「USER」メッセージをFTPシステムコア38Bに送る。FTPシステムコア38Bは、認証/分析部50Bで、この「USER」メッセージを分析し、ユーザIDを記憶メディア39A(図5参照)に一時的に保存(仮保存)する(ステップS49)。ここで、一時的に保存とは、パスワードの確認等によって認証ができていない段階、すなわち、認証後の正式な保存の前段階の保存を意味している。そして、ユーザIDをFTPサーバ装置Bに送る。
次に、FTPサーバ装置Bから、このユーザIDに対する応答として、パスワードを求める「331」応答コードが出される。すなわち、「331 Password required for ユーザ名」というものである。TCP2コア37Bは、このユーザID応答のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS50)。FTPシステムコア38Bは、その認証/分析部50Bで「331」メッセージを分析し、記憶メディア39Bに記憶されている設定情報に従った処理(暗号化または非暗号化処理)を行う(ステップS51)。
すなわち、上述したように、ルータやファイアオール等のパケットフィルタリング機能を持つ中継装置がある場合であれば、ルータやファイアオールがFTPのデータセッションの待ち受けポートを認識するので、必要なFTPコマンドとFTP応答コードを暗号化せずに平文のまま送信する。FTPシステムコア38Bの記憶メディア39Bには、暗号化されるFTPコマンドとFTP応答コード、及び暗号化されないFTPコマンドとFTP応答コードが設定情報として記憶されている。
この設定情報は、FTPシステムアプリケーション部35Bの設定部66B(図6参照)で設定される情報である。この設定情報に基づいて、FTPシステムコア38Bは、「PWD」メッセージの分析を行い、暗号化または非暗号化処理を行う。そして、「331」応答コード(「331 Password required for ユーザ名」)をFTPクライアント装置Aに送る。
続いて、FTPクライアント装置AからFTPサーバ装置Bにパスワード「PASS」が送信される。FTPサーバ装置BのTCP2コア37Bは、この受信したパスワードのパケットを確認し(ステップS52)、この確認したパスワードをFTPシステムコア38Bに送る。FTPシステムコア38Bは、その認証/分析部50Bで「PASS」メッセージを分析し、暗号文であれば複号化し、平文であれば特別な処理を施さない。また、記憶メディア39Bにパスワードを仮保存する(ステップS53)。そして、パスワードをFTPサーバ装置Bに送る。
次に、このパスワードを受信したFTPサーバ装置Bは、ログインが完了したことを告げる「230」応答コードをFTPクライアント装置Aに送る。TCP2コア37Bは、そのFTP応答メッセージパケットの確認部45Bで、パスワード応答のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS54)。FTPシステムコア38Bは、この「230」メッセージを分析し、記憶メディア39Bに保存されている設定情報にしたがって「暗号化または非暗号化」の処理を行う。そして、ステップS49で一時的に保存していたユーザIDとパスワードを正式なものとして記憶メディア39Bに保存する(ステップS55)。これらの処理を終えると、FTPクライアント装置Aにユーザ名がログインされたことを通知する。
続いて、FTPクライアント装置AからFTPサーバ装置Bに対して、カレントディレクトリの表示、つまり現在のワーキングディレクトリを示すFTPコマンド「PWD」が送られる。TCP2コア37Bは、このカレントディレクトリの表示のパケットを確認し、その結果をFTPシステムコア38Bに送る(ステップS56)。
FTPシステムコア38Bは、この「PWD」メッセージを分析し、暗号文であれば復号化し、平文であれば特別な処理を施さない(ステップS57)。そして、「PWD」をFTPサーバ装置Bに送る。
FTPサーバ装置Bは、FTPクライアント装置Aからの「PWD」(現在のディレクトリ情報)を受け取ると、カレントディレクトリの表示応答「257」を発生する。この応答コード「257」は、パスが作成されたことを伝える応答コードであり、例えば「“/home /fred/ ”is current directory」という表示応答になる。TCP2コア37Bは、このカレントディレクトリの表示応答のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS58)。
FTPシステムコア38Bは、この「257」メッセージを分析し、設定にしたがって暗号化または非暗号化処理を行う(ステップS59)。そして、「257」応答コードをFTPクライアント装置Aに送る。
続いて、図10に進み、サーバ側のFTPシステムの流れ(初回)の第2段階について説明する。
第2段階では、FTPクライアント装置AからFTPサーバ装置Bに対して、「PORT IPアドレスとポート番号」というFTPコマンドが送られる。このコマンドは、データコネクションで使用するIPアドレス(通常はクライアント)とポート番号を指示するコマンドである。この命令を受けたFTPサーバ装置BのTCP2コア37Bは、IPアドレスとポート番号のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS60)。FTPシステムコア38Bは、「PORT」メッセージを分析し、暗号文であれば復号化し、平文であれば特別な処理を施さない。そして、この「PORT IPアドレスとポート番号」メッセージをFTPサーバ装置Bに送る(ステップS61)。
これに対して、FTPサーバ装置Bは、コマンドの使用が可能になったことを告げる応答コード「200」を発生する。TCP2コア37Bはこの応答コード「200」のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS62)。FTPシステムコア38Bは、その認証/分析部50Bで「200」メッセージを分析し、暗号化処理を行う(ステップS63)。そして、この応答コード「200」をFTPクライアント装置Aに送る。
続いて、FTPクライアント装置Aからダウンロード要求を求める「RETR ファイル名」のメッセージがFTPサーバ装置Bに向けて発信される。「RETR ファイル名」は、指定した内容のファイルをFTPサーバ装置Bから取得することを命じるFTPコマンドである。TCP2コア37Bは、このコマンドを受けてFTPコマンドメッセージパケットの確認部44Bでこのパケットの確認を行い、このコマンドをFTPシステムコア38Bに送る(ステップS64)。
FTPシステムコア38Bは、その認証/分析部50Bでコマンド「RETR」メッセージを分析し、暗号文の復号化処理を行い、コマンド「RETR」をFTPサーバ装置Bに送る(ステップS65)。この段階でポート20への接続が完了し、FTPサーバ装置BとFTPクライアント装置AとのデータセッションのTCP通信が確立される。
続いて、FTPサーバ装置BからFTPクライアント装置Aに対して、応答コード「150」が発信される。この応答コード「150」は、アスキーモードのデータを送信する通知(「150 ASCII data connectionファイル名」)であり、「ファイルの送信が正常に開始されること、及びデータ接続がオープンであることを示す」コードである。
TCP2コア37Bは、その応答メッセージパケットの確認部45Bで、この応答コード「150」のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS66)。FTPシステムコア38Bは、その認証/分析部50Bにおいて、この「150」メッセージを分析し、暗号化を行う(ステップS67)。そして、この「150」応答コードをFTPクライアント装置Aに送る。
続いて、FTPサーバ装置Bからクライアント装置Aにファイルデータが送信される。このファイルデータを受信したTCP2コア38Bは、FTP応答メッセージパケットの確認部45Bでファイルデータのパケット確認を行い、これをFTPシステムコア38Bに送る(ステップS68)。FTPシステムコア38Bは、その認証/分析部50Bにおいて、このファイルデータを分析し、これを暗号化した後(ステップS69)、ファイルデータをFTPクライアント装置Aに送る。
この段階でFTPサーバ装置BとFTBクライアント装置Aは、ポート20から切断され、データセッションのTCP通信が切断される。
続いて、FTPサーバ装置Bから、データ転送の終了を告げる「226」応答コードがFTPクライアント装置Aに送られる。この「226」応答コードは、「226 ASCII Transfer complete」と記述されるもので、データの接続がクローズであること、及び要求されたファイルの処理が正常に完成したことを通知する応答コードである。
TCP2コア37Bは、応答コードメッセージ確認部45Bで、この「226」応答コードのパケットを確認し、これをFTPシステムコア38Bに送る(ステップS70)。
FTPシステムコア38Bは、その認証/分析部50Bで「226」応答コードを分析し、暗号化処理を行う。そして、「226」応答コードをFTPクライアント装置Aに送る(ステップS71)。
最後に、FTPクライアント装置AからFTPサーバ装置Bに向けて、接続を解除することを伝える終了宣言(QUIT)が送られる。この終了宣言は、ログアウトすることを告げるFTPコマンドであり、TCP2コア37Bはこの終了宣言をそのFTPコマンドメッセージ確認部44Bで確認し、これをFTPシステムコア38Bに送る(ステップS72)。
FTPシステムコア38Bは、その認証/分析部50Bで、この「QUIT」メッセージを分析し、暗号文を復号化し、終了宣言(QUIT)をFTPサーバBに送る(ステップS73)。その後、FTPサーバ装置Bからコネクションの終了を告げる終了宣言応答「221」メッセージがFTPサーバ装置BのTCP2コア37Bに送られ、TCP2コア37Bは、この終了宣言応答のパケットを確認し(ステップS74)、この結果をFTPシステムコア38Bに送る。
FTPシステムコア38Bは、TCP2コア37Bからの「221」メッセージを分析して、暗号化処理を行う(ステップS75)。その後、終了宣言応答である「221」メッセージをFTPクライアント装置Aに送る。この段階で、ポート21の接続も切断され、FTPクライアント装置AとFTPサーバ装置B間のTCP通信の制御セッションが切断される。
以上が、FTPシステムのサーバ側の流れ(初回のみ)の説明である。
以上、FTPシステムのクライアント側(図7、8)とサーバ側(図9、10)の初回の流れを説明した。次に、2回目以降の流れを説明する。
<FTPシステムの流れ(クライアント側:2回目以降)の説明>
まず、図11、図12に基づいて、FTPクライアントがFTPサーバからファイルデータをダウンロードする際のクライアント側のFTPシステムの流れ(2回目以降)について説明する。初回のときと同様に、クライアント装置A側のTCP2ドライバ35、TCP2コア37、FTPシステムコア38等には、クライアント側を表す‘A’を付けて説明し、後述するFTPサーバ側のシステムには‘B’を付加して説明する。
まず、クライアント装置AのFTPシステムコア38AからTCP2コア37Aに対してFTPのフック要求が出される。TCP2コア37Aは、このフック要求を受けて、登録してある全ユーザのFTPサーバのIPアドレスとポート番号を含むパケットを捕捉(フック)する(ステップS80)。ここで、FTPクライアント装置Aは、FTPサーバ装置Bからファイルのダウンロードを行う。
その後、FTPクライアント装置AからFTPサーバ装置Bへ、FTP接続要求が送信される。その際に、クライアント装置AのTCP2コア37Aは、この送信されたFTP接続要求を受け付け、FTPメッセージからFTPのパケットであることを認識してパケットをフックする。そして、フック結果をFTPシステムコア38Aに通知する(ステップS81)。また、FTP接続要求のパケットをFTPシステムコア38Aに送る。
FTPシステムコア38Aは、TCP2コア37Aのフック結果を受けて、TCP2コア37Aにパケットのインターセプトを要求するとともに、FTPサーバ装置BにFTP接続要求を送る。また、FTPシステムコア38Aは、その認証/分析部50AでFTPメッセージを分析し、記憶メディア39Aに保存されている設定情報にしたがって暗号化あるいは非暗号化処理を行う(ステップS82)。すなわち、上述したように、ルータやファイアオール等のパケットフィルタリング機能を持つ中継装置がある場合であれば、ルータやファイアオールがFTPのデータセッションの待ち受けポートを認識するので、必要なFTPコマンドとFTP応答コードを暗号化せずに平文のまま送信する。
TCP2コア37Aは、FTPシステムコア38Aからのインターセプトの要求を受けて、パケットのインターセプトを開始する(ステップS83)。この段階で、「ポート21」への接続が完了し、FTPクライアント装置AからFTPサーバ装置BへのTCP通信が確立される。
続いて、FTPサーバ装置BからFTPクライアント装置Aに、応答コード「220」が発せられる。この応答コード「220」は、サービスが新規ユーザに対して使用可能であること(「FTP server ready」)を通知するFTPの応答コードである。
TCP2コア37Aは、FTP接続応答のパケットを確認し、その結果をFTPシステムコア38Aに送る(ステップS84)。FTPシステムコア38Aは、その認証/分析部50Aで「220」応答コードと「FTP」メッセージを分析し、暗号文であれば復号化し、平文であれば特別な処理を施さない(ステップS85)。そして、FTPサーバ装置Bから送られた「220」の応答コード「FTP server ready」をFTPクライアント装置Aに送る。
次に、FTPクライアント装置Aから、FTPサーバ装置BにユーザID(「USER ユーザ名」)が送信される。ここで「USER ユーザ名」は指定のユーザ名でログインすることを告げるFTPコマンドである。TCP2コア37Aは、このユーザIDのパケットを確認し(ステップS86)、この「USER」メッセージをFTPシステムコア38Aに送る。FTPシステムコア38Aは、この「USER」メッセージを分析し、記憶メディア39Aに記憶されている設定情報に基づいて、暗号化処理または非暗号化処理を行う(ステップS87)。そして、ユーザIDをFTPサーバ装置Bに送る。
続いて、FTPサーバ装置Bから、このユーザIDに対する応答として、パスワードを求める「331」応答コードが出される。この応答コードは、「331 Password required for ユーザ名」というものである。TCP2コア37Aは、このユーザID応答のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS88)。FTPシステムコア38Aは、この「331」メッセージを分析し、暗号文であればこれを復号化する(ステップS89)。なお、平文の場合は復号化する必要がないので特別な処理を施さない。そして、「331」応答コード(「331 Password required for ユーザ名」)をFTPクライアント装置Aに送る。
続いて、FTPクライアント装置AからFTPサーバ装置Bにパスワードが送信される。TCP2コア37Aはこのパスワードを確認し(ステップS90)、この確認したパスワードをFTPシステムコア38Aに送る。FTPシステムコア38Aは、「PASS」メッセージを分析し、記憶メディア39Aに保存されている設定情報にしたがって暗号化処理または非暗号化処理を行う(ステップS91)。そして、パスワードをFTPサーバ装置Bに送る。
次に、このパスワードを受信したFTPサーバ装置Bは、ログインが完了したことを告げる「230」応答コードをFTPクライアント装置Aに送る。TCP2コア37Aは、このパスワード応答のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS92)。FTPシステムコア38Aは、「230」メッセージを分析し、暗号文であれば復号化処理を行い、平文であれば特別な処理を施さない(ステップS93)。そして、FTPクライアント装置Aにユーザ名がログインされたことを通知する。
続いて、FTPクライアント装置AからFTPサーバ装置Bに対して、カレントディレクトリの表示、つまり現在のワーキングディレクトリを示すFTPコマンド「PWD」が送られる。TCP2コア37Aは、このカレントディレクトリの表示のパケットを確認し、その結果をFTPシステムコア38Aに送る(ステップS94)。
FTPシステムコア38Aは、この「PWD」メッセージを分析し、設定にしたがって暗号化/非暗号化の処理を行う(ステップS95)。そして、「PWD」をFTPサーバ装置Bに送る。
これを受けてFTPサーバ装置Bは、カレントディレクトリの表示応答「257」を発生する。この応答コード「257」は、パスが作成されたことを伝える応答コードであり、例えば「“/home /fred/ ”is current directory」という表示応答になる。TCP2コア37Aは、このカレントディレクトリの表示応答のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS96)。
FTPシステムコア38Aは、この「257」メッセージを分析し、暗号文であれば復号化処理を行う。平文であれば特別な処理を施さない(ステップS97)。そして、「257」応答コードをFTPクライアント装置Aに送る。
続いて、図12に進み、クライアント側のFTPシステムの流れ(2回目以降)の第2段階について説明する。
第2段階では、FTPクライアント装置AからFTPサーバ装置Bに対して、「PORT IPアドレスとポート番号」というFTPコマンドが送られる。このコマンドは、データコネクションで使用するIPアドレス(通常はクライアント)とポート番号を指示するコマンドである。この命令を受けると、TCP2コア37Aは、IPアドレスとポート番号のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS98)。FTPシステムコア38Aは、「PORT」メッセージを分析し、設定にしたがって暗号化/非暗号化処理を行う。そして、この「PORT IPアドレスとポート番号」メッセージをFTPサーバ装置Bに送る(ステップS99)。
これに対して、FTPサーバ装置Bは、コマンドの使用が可能になったことを告げる応答コード「200」を発生する。TCP2コア37Aはこの応答コード「200」のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS100)。FTPシステムコア38Aは、認証/分析部50Aで「200」メッセージを分析し、その復号化部52で暗号文の復号化処理を行う(ステップS101)。そして、この応答コード「200」をFTPクライアント装置Aに送る。
続いて、FTPクライアント装置Aからダウンロード要求を求める「RETR ファイル名」のメッセージがFTPサーバ装置Bに向けて発信される。「RETR ファイル名」は、指定した内容のファイルをFTPサーバ装置Bから取得することを命じるFTPコマンドである。TCP2コア37Aは、このコマンドを受けてFTPコマンドメッセージパケットの確認部44Aでこのパケットの確認を行い、このコマンドをFTPシステムコア38Aに送る(ステップS102)。
FTPシステムコア38Aは、その認証/分析部50Aでコマンド「RETR」メッセージを分析し、暗号化処理を行う(ステップS103)。そして、このコマンド「RETR」をFTPサーバ装置Bに送る。この段階でポート20への接続が完成し、FTPクライアント装置AとFTPサーバ装置BとのデータセッションのTCP通信が確立される。
次に、FTPサーバ装置BからFTPクライアント装置Aに対して、応答コード「150」が発信される。この応答コード「150」は、アスキーモードのデータを送信する通知(「150 ASCII data connectionファイル名」)であり、「ファイルの送信が正常に開始されること、及びデータ接続がオープンであることを示す」コードである。
TCP2コア37Aは、その応答メッセージパケットの確認部45Aで、この応答コード「150」のパケットを確認し、これをFTPシステムコア38Aに送る(ステップS104)。
FTPシステムコア38Aは、その認証/分析部50Aにおいて、この「150」メッセージを分析し、暗号文の復号化処理を行う(ステップS105)。そして、この「150」応答コードをFTPクライアント装置Aに送る。
続いて、FTPサーバ装置Bからクライアント装置Aにファイルデータが送信される。このファイルデータを受信したTCP2コア38Aは、FTP応答メッセージパケットの確認部45Aでファイルデータのパケット確認を行い、これをFTPシステムコア38Aに送る(ステップS106)。FTPシステムコア38Aは、その認証/分析部50Aにおいて、このファイルデータを分析し、記憶メディア39Aに保存されている設定情報に従って復号化処理、あるいは復号化しない処理を行う(ステップS107)。ここで、復号化するか、あるいは復号化しないで暗号のまま送信するかの決定はシステムが行うこととなる。そして、ファイルデータをFTPクライアント装置Aに送る。
この段階でFTPクライアント装置AとFTPサーバ装置Bは、ポート20から切断され、データセッションのTCP通信が切断される。
続いて、FTPサーバ装置Bから、データ転送の終了を告げる「226」応答コードがFTPクライアント装置Aに送られる。この「226」応答コードは、「226 ASCII Transfer complete」と記述されるもので、データの接続がクローズであること、及び要求されたファイルの処理が正常に完成したことを通知する応答コードである。
TCP2コア37Aは、応答コードメッセージ確認部45Aで、この「226」応答コードのパケットを確認し、これをFTPシステムコア38Aに送る(ステップS108)FTPシステムコア38Aは、その認証/分析部50Aで「226」応答コードを分析し、暗号文を復号化し、「226」応答コードをFTPクライアント装置Aに送る(ステップS109)。
最後に、FTPクライアント装置AからFTPサーバ装置Bに向けて、接続を解除することを伝える終了宣言(QUIT)が送られる。この終了宣言は、ログアウトすることを告げるFTPコマンドであり、TCP2コア37Aはこの終了宣言をそのFTPコマンドメッセージ確認部44Aで確認し、これをFTPシステムコア38Aに送る(ステップS110)。
FTPシステムコア38Aは、その認証/分析部50Aで、この「QUIT」メッセージを分析し、暗号化処理を行い、終了宣言(QUIT)をネットワーク40に接続されているFTPサーバBに送る(ステップS111)。その後、FTPサーバ装置Bからコネクションの終了を告げる終了宣言応答「221」メッセージがFTPクライアント装置AのTCP2コア37Aに送られる。TCP2コア37Aは、この終了宣言応答のパケットを確認し(ステップS112)、この結果をFTPシステムコア38Aに送る。
FTPシステムコア38Aは、TCP2コア37Aからの「221」メッセージを分析して、暗号文を復号化し、終了宣言応答である「221」メッセージをFTPクライアント装置Aに送る(ステップS113)。この段階で、ポート21の接続も切断され、FTPクライアント装置AとFTPサーバ装置B間のTCP通信の制御セッションが切断される。
以上が、FTPシステムのクライアント側の流れ(2回目以降)の説明である。
<FTPシステムのサーバ側の流れ(2回目以降)の説明>
次に、FTPクライアントがFTPサーバからファイルデータをダウンロードする際のFTPシステムのサーバ側の流れ(2回目以降)について、図13、図14に基づいて説明する。
ここでの説明は、図11、図12で説明したクライアント側の説明(2回目以降)とほぼ同じであるが、その説明の中心は、FTPサーバ装置B側のTCP2ドライバ35Bの動作説明となるので、FTPサーバ側を表す‘B’を付けて説明する。
まず、FTPサーバ装置BのFTPシステムコア38BからTCP2コア37Bに対してFTPのフック要求が出される。TCP2コア37Bは、このフック要求を受けて、登録してある全クライアントのIPアドレスを含むパケットを捕捉(フック)する(ステップS120)。
その後、FTPクライアント装置AからFTPサーバ装置Bへ、FTP接続要求が送信される。FTPサーバ装置BのTCP2コア37Bは、この送信されたFTP接続要求を受け付け、FTPメッセージからFTPのパケットであることを認識してパケットをフックする。そして、フック結果をFTPシステムコア38Bに通知する(ステップS121)。また、FTP接続要求のパケットをFTPシステムコア38Bに送る。
FTPシステムコア38Bは、TCP2コア37Bのフック結果を受け取り、TCP2コア37Bにパケットのインターセプトを要求する。また、FTPシステムコア8Bの認証/分析部50Bにおいて、FTPメッセージを分析し、暗号文であれば復号化処理を行い、平文であれば特別な処理を施さない(ステップS122)。
そして、FTPシステムコア38BはFTP接続要求をFTPサーバ装置Bに送る。また、TCP2コア37BはFTPシステムコア38Bからのパケットのインターセプト要求を受けて、パケットのインターセプトを開始する(ステップS123)。
この段階で、「ポート21」への接続が完了し、FTPクライアント装置AからFTPサーバ装置BへのTCP通信が確立される。続いて、FTPサーバ装置BからFTPクライアント装置Aに、応答コード「220」が発せられる。この応答コード「220」は、サービスが新規ユーザに対して使用可能であること(「FTP server ready」)を通知するFTPの応答コードである。
FTPサーバ装置Bから応答コード「220」を受けたTCP2コア37Bは、FTP接続応答コード「220」のパケットを確認し、その結果をFTPシステムコア38Bに送る(ステップS124)。FTPシステムコア38Bは、その認証/分析部50Bで「220」応答コードと「FTP」メッセージを分析し、記憶メディア39Bに記憶されている設定情報に従った処理(暗号化または非暗号化処理)を行う(ステップS125)。そして、「220」応答コードをFTPクライアント装置Aに送る。
次に、FTPクライアント装置Aから、FTPサーバ装置Bに向けてユーザID「USER ユーザ名」が送信される。ここで「USER ユーザ名」は指定のユーザ名でログインすることを告げるFTPコマンドである。このユーザID(ユーザ名)を受信したFTPサーバ装置BのTCP2コア37Bは、そのFTPコマンドメッセージ確認部44Bで、このユーザIDのパケットを確認し(ステップS126)、FTPクライアント装置Aからの「USER」メッセージをFTPシステムコア38Bに送る。FTPシステムコア38Bは、認証/分析部50Bで、この「USER」メッセージを分析し、暗号文であれば復号化処理を行い、平文であれば特別な処理を施さない(ステップS127)。そして、ユーザIDをFTPサーバ装置Bに送る。
次に、FTPサーバ装置Bから、このユーザIDに対する応答として、パスワードを求める「331」応答コードが出される。すなわち、「331 Password required for ユーザ名」というものである。TCP2コア37Bは、このユーザID応答のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS128)。FTPシステムコア38Bは、その認証/分析部50Bで「331」メッセージを分析し、記憶メディア39Bに記憶されている設定情報に従った処理(暗号化または非暗号化処理)を行う(ステップS129)。そして、「331」応答コード(「331 Password required for ユーザ名」)をFTPクライアント装置Aに送る。
続いて、FTPクライアント装置AからFTPサーバ装置Bにパスワード「PASS」が送信される。FTPサーバ装置BのTCP2コア37Bは、この受信したパスワードのパケットを確認し(ステップS130)、この確認したパスワードをFTPシステムコア38Bに送る。FTPシステムコア38Bは、その認証/分析部50Bで「PASS」メッセージを分析し、暗号文であれば復号化処理を行い、平分であれば特別な処理は行わないで、パスワードをFTPサーバ装置Bに送る(ステップS131)。
次に、このパスワードを受信したFTPサーバ装置Bは、ログインが完了したことを告げる「230」応答コードをFTPクライアント装置Aに送る。TCP2コア37Bは、そのFTP応答メッセージパケットの確認部45Bで、パスワード応答のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS132)。FTPシステムコア38Bは、この「230」メッセージを分析し、記憶メディア39Bに保存されている設定情報にしたがって「暗号化または非暗号化」の処理を行う。そして、クライアント装置Aにユーザ名がログインされたことを通知する(ステップS133)。
続いて、FTPクライアント装置AからFTPサーバ装置Bに対して、カレントディレクトリの表示、つまり現在のワーキングディレクトリを示すFTPコマンド「PWD」が送られる。TCP2コア37Bは、このカレントディレクトリの表示のパケットを確認し、その結果をFTPシステムコア38Bに送る(ステップS134)。
FTPシステムコア38Bは、この「PWD」メッセージを分析し、暗号文であれば復号化処理を行い、平文であれば特別な処理を施すことなくFTPサーバ装置Bにこの「PWD」メッセージを送る(ステップS135)。
FTPサーバ装置Bは、FTPクライアント装置Aからの「PWD」(現在のディレクトリ情報)を受け取ると、カレントディレクトリの表示応答「257」を発生する。この応答コード「257」は、パスが作成されたことを伝える応答コードであり、例えば「“/home /fred/ ”is current directory」という表示応答になる。TCP2コア37Bは、このカレントディレクトリの表示応答のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS136)。
FTPシステムコア38Bは、この「257」メッセージを分析し、設定にしたがって暗号化または非暗号化処理を行う(ステップS137)。そして、「257」応答コードをFTPクライアント装置Aに送る。
続いて、図14に進み、サーバ側のFTPシステムの流れ(2回目以降)の第2段階について説明する。
第2段階では、FTPクライアント装置AからFTPサーバ装置Bに対して、「PORT IPアドレスとポート番号」というFTPコマンドが送られる。このコマンドは、データコネクションで使用するIPアドレス(通常はクライアント)とポート番号を指示するコマンドである。この命令を受けたFTPサーバ装置BのTCP2コア37Bは、IPアドレスとポート番号のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS138)。FTPシステムコア38Bは、「PORT」メッセージを分析し、暗号文であれば復号化し、平文であれば特別な処理を施さない。そして、この「PORT IPアドレスとポート番号」メッセージをFTPサーバ装置Bに送る(ステップS139)。
これに対して、FTPサーバ装置Bは、コマンドの使用が可能になったことを告げる応答コード「200」を発生する。TCP2コア37Bはこの応答コード「200」のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS140)。FTPシステムコア38Bは、その認証/分析部50Bで「200」メッセージを分析し、暗号化処理を行う(ステップS141)。そして、この応答コード「200」をFTPクライアント装置Aに送る。
続いて、FTPクライアント装置Aからダウンロード要求を求める「RETR ファイル名」のメッセージがFTPサーバ装置Bに向けて発信される。「RETR ファイル名」は、指定した内容のファイルをFTPサーバ装置Bから取得することを命じるFTPコマンドである。TCP2コア37Bは、このコマンドを受けてFTPコマンドメッセージパケットの確認部44Bでこのパケットの確認を行い、このコマンドをFTPシステムコア38Bに送る(ステップS142)。
FTPシステムコア38Bは、その認証/分析部50Bでコマンド「RETR」メッセージを分析し、暗号文の復号化処理を行い、コマンド「RETR」をFTPサーバ装置Bに送る(ステップS143)。この段階でポート20への接続が完了し、FTPサーバ装置BとFTPクライアント装置AとのデータセッションのTCP通信が確立される。
続いて、FTPサーバ装置BからFTPクライアント装置Aに対して、応答コード「150」が発信される。この応答コード「150」は、アスキーモードのデータを送信する通知(「150 ASCII data connectionファイル名」)であり、「ファイルの送信が正常に開始されること、及びデータ接続がオープンであることを示す」コードである。
TCP2コア37Bは、その応答メッセージパケットの確認部45Bで、この応答コード「150」のパケットを確認し、これをFTPシステムコア38Bに送る(ステップS144)。
FTPシステムコア38Bは、その認証/分析部50Bにおいて、この「150」メッセージを分析し、暗号化処理を行う(ステップS145)。そして、この「150」応答コードをFTPクライアント装置Aに送る。
続いて、FTPサーバ装置Bからクライアント装置Aにファイルデータが送信される。このファイルデータを受信したTCP2コア38Bは、FTP応答メッセージパケットの確認部45Bでファイルデータのパケット確認を行い、これをFTPシステムコア38Bに送る(ステップS146)。FTPシステムコア38Bは、その認証/分析部50Bにおいて、このファイルデータを分析し、これを暗号化した後、ファイルデータをFTPクライアント装置Aに送る(ステップS147)。
この段階でFTPサーバ装置BとFTBクライアント装置Aは、ポート20から切断され、データセッションのTCP通信が切断される。
続いて、FTPサーバ装置Bから、データ転送の終了を告げる「226」応答コードがFTPクライアント装置Aに送られる。この「226」応答コードは、「226 ASCII Transfer complete」と記述されるもので、データの接続がクローズであること、及び要求されたファイルの処理が正常に完成したことを通知する応答コードである。
TCP2コア37Bは、応答コードメッセージ確認部45Bで、この「226」応答コードのパケットを確認し、これをFTPシステムコア38Bに送る(ステップS148)FTPシステムコア38Bは、その認証/分析部50Bで「226」応答コードを分析し、暗号化の処理を行う。そして、「226」応答コードをFTPクライアント装置Aに送る(ステップS149)。
最後に、FTPクライアント装置AからFTPサーバ装置Bに向けて、接続を解除することを伝える終了宣言(QUIT)が送られる。この終了宣言は、ログアウトすることを告げるFTPコマンドであり、TCP2コア37Bはこの終了宣言をそのFTPコマンドメッセージ確認部44Bで確認し、これをFTPシステムコア38Bに送る(ステップS150)。
FTPシステムコア38Bは、その認証/分析部50Bで、この「QUIT」メッセージを分析し、暗号文の復号化処理を行い、この終了宣言(QUIT)をFTPサーバ装置Bに送る(ステップS151)。その後、FTPサーバ装置Bからコネクションの終了を告げる終了宣言応答「221」メッセージがFTPサーバ装置BのTCP2コア37Bに送られ、TCP2コア37Bは、この終了宣言応答のパケットを確認し(ステップS152)、この結果をFTPシステムコア38Bに送る。
FTPシステムコア38Bは、TCP2コア37Bからの「221」メッセージを分析して、暗号化処理を行う(ステップS153)。その後、終了宣言応答である「221」メッセージをFTPクライアント装置Aに送る。この段階で、ポート21の接続も切断され、FTPクライアント装置AとFTPサーバ装置B間のTCP通信の制御セッションが切断される。
以上が、FTPシステムのサーバ側の流れ(2回目以降)の説明である。
<FTPシステムの実施例の説明>
最後に、図15に基づいて、いままで説明してきたFTPシステムの全体の流れを概観しておく。
図15に示されるように、FTPクライアント装置AとFTPサーバ装置BはそれぞれTCP2ドライバ35A、35Bを介在して接続されている。
まず、初回のみの鍵交換の手順について説明する。FTPクライアント装置AからFTP接続要求の送信がFTPサーバ装置Bに発信されると、FTPクライアント装置AのTCP2ドライバ35Aで鍵元値が付加された状態で、FTPサーバ装置Bに送られる。
FTPサーバ装置Bでは、TCP2ドライバ35Bでこの鍵元値を保存し、FTPのサーバソフトでFTP接続要求を受信する。次に、FTPサーバ装置BからFTP接続応答送信がFTPクライアント装置Aに向けて発せられる。このとき、TCP2ドライバ35Bにおいて、既に保存されている鍵元値と受信した鍵元値とで新たな鍵が生成され、この鍵元値が付加された状態でFTPクライアント装置AにFTP接続応答が送られる。
このFTP接続応答を受信したFTPクライアント装置AのTCP2ドライバ35Aは、既に保存されている鍵元値と受信した鍵元値とから新たな鍵を生成する。これにより、FTPクライアント装置AとFTPサーバ装置Bとの鍵交換が完了する。
この鍵交換は初回のみ行われるだけであり、2回目以降は不要となる。
次に、鍵交換後のFTPシステムによるファイル転送について説明する。まず、FTPクライアント装置AからFTPサーバ装置Bに向けて、FTPコマンドが送信される。このとき、FTPクライアント装置AのTCP2ドライバ35Aにおいて、記憶されている設定情報に従ってFTPコマンドを暗号化するか、暗号化しないで平文で送信するかが決定される。この決定はシステムが予め定める決定である。
暗号化されたFTPコマンドは暗号文で送られ、暗号化されなかったFTPコマンドは平文で送られる。
このFTPコマンドを受信したFTPサーバ装置Bでは、そのTCP2ドライバ35Bにより、暗号文は復号化され、また平文はそのままの状態で受信されて、FTPサーバソフトで処理される。そして、FTPサーバ装置BからFTPクライアント装置Aに対して、FTPの応答コードが送信される。ここでも、TCP2ドライバ35Bにより、記憶されている設定情報に従って暗号化されて送信される応答コードと暗号化されないで送信される応答コードに分けられる。
FTPクライアント装置AのTCP2ドライバ35Aは、暗号文で受信した応答コードは復号化処理を行い、平文で受信した応答コードは処理を施さずにそのまま受信する。これにより鍵交換後のFTPコマンドとその応答コードの送受信が完了する。以上がFTPシステムの制御セッションの説明である。
制御セッションのTCP通信が確立すると、次にデータセッションの手順、すなわちファイル転送の手順に移行し、FTPサーバ装置BからFTPクライアント装置Aにファイルが転送される。このとき、FTPサーバ装置BのTCP2ドライバ35Bではファイルが暗号化されて転送される。暗号文で送られたファイルはFTPクライアント装置AのTCP2ドライバ35Aで復号化されて平文として受信されるか、あるいは復号化されずに暗号文のまま受信される。このようにして、ファイルの転送が完了する。以上が、FTPシステムの概要である。
以上説明したように、本発明のFTPシステムでは、高いセキュリティ機能を持つTCP2を用いてファイル転送を行うので、既存の暗号化処理によるFTP通信と比べても、特にデータの漏洩、改ざん、なりすまし、進入そして攻撃に対して極めて強力な防御機能を発揮する。
本発明は、以上説明した実施の形態に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない範囲において、さらに多くの実施形態を含むものであることは言うまでもない。
本発明のFTPシステムに用いられるTCP2のプロトコルスタックを示す図である。 本発明のFTPシステムに用いられるメッセージパケットの構造を示す図である。 本発明のFTPクライアント装置A及びFTPサーバ装置Bを含むFTPシステムにおけるブロック構成図である。 本発明のFTPシステムの構成要素であるのTCP2コアの概略を説明するためのブロック構成図である。 本発明のFTPシステムの構成要素であるのFTPシステムコアの概略を説明するためのブロック構成図である。 本発明のFTPシステムの構成要素であるのFTPシステム管理アプリケーション部の概略を説明するためのブロック構成図である。 本発明のFTPシステムにおけるクライアント側の流れ(初回)の一部を示すフロー図である。 本発明のFTPシステムにおけるクライアント側の流れ(初回)の一部を示すフロー図である。 本発明のFTPシステムにおけるサーバ側の流れ(初回)の一部を示すフロー図である。 本発明のFTPシステムにおけるサーバ側の流れ(初回)の一部を示すフロー図である。 本発明のFTPシステムにおけるクライアント側の流れ(2回目以降)の一部を示すフロー図である。 本発明のFTPシステムにおけるクライアント側の流れ(2回目以降)の一部を示すフロー図である。 本発明のFTPシステムにおけるサーバ側の流れ(2回目以降)の一部を示すフロー図である。 本発明のFTPシステムにおけるサーバ側の流れ(2回目以降)の一部を示すフロー図である。 本発明のFTPシステムの実施例全体の概要を説明するための図である。
符号の説明
31・・・入力装置、32・・・出力装置、33・・・既存のFTPアプリケーション部、34・・・FTPシステム管理アプリケーション部、35・・・TCP2ドライバ、36、39・・・記憶メディア、37・・・TCP2コア、38・・・FTPシステムコア、40・・・ネットワーク、50・・・認証/分析部、51・・・暗号化部、52・・・復号化部、53・・・鍵交換部、54、61・・・インターフェース、62・・・ユーザ登録部、63・・・通信相手情報管理部、65・・・入出力制御部、66・・・設定部

Claims (4)

  1. ネットワークを介してFTPクライアント装置とFTPサーバ装置との間でファイル転送を行うFTP通信システムであって、
    前記クライアント装置及び前記サーバ装置には、
    既存のFTPアプリケーション部に加えて、TCP2コアとFTPシステムコアを備えたTCP2ドライバと、FTPシステム管理アプリケーション部が設けられ、
    前記TCP2ドライバの前記TCP2コアは、前記クライアント装置あるいは前記サーバ装置から送信されるFTPコマンドまたはFTP応答コードのパケットを確認して、前記FTPシステムコアに送信し、
    前記FTPシステムコアは、
    前記クライアント装置と前記サーバ装置間で鍵交換を行うとともに、記憶メディアに保存された種々の設定情報に基づいて、前記クライアント装置あるいは前記サーバ装置から送られるFTPコマンドの暗号化または復号化を行って、前記クライアント装置及び前記サーバ装置との間で暗号文によりファイル転送を行い、
    前記FTPシステム管理アプリケーション部は、
    前記FTPシステムコアに送られるFTPコマンドまたはFTP応答コードに対して暗号化するか、あるいは暗号化しないかを設定するとともに、前記FTPシステムコアに送られる暗号化されたファイルデータに対して復号化するか、あるいは復号化しないかを設定する設定部を有し、前記設定部により設定した暗号化するかしないかの情報、及び復号化するかしないかの情報を設定情報として前記FTPシステムコアの前記記憶メディアに格納し、
    前記FTPアプリケーション部で受信して保存した暗号文のファイルデータを平文で表示させる
    ことを特徴とするFTP通信システム。
  2. TCP2ドライバを実装したFTPクライアント装置とTCP2ドライバを実装したFTPサーバ装置との間でファイル転送を行うFTP通信システムに用いられるプログラムであって、
    前記FTPクライアント装置及び前記FTPサーバ装置のコンピュータに、以下のような手順を実行させるコンピュータプログラム。
    (a)ネットワーク環境に応じて、FTPコマンドメッセージの暗号化または非暗号化をTCP2ドライバが設定する手順、
    (b)前記設定情報を基に、FTPクライアント装置あるいはFTPサーバ装置自身が保有する鍵元値をTCP2ドライバが作成する手順、
    (c)受信したFTPコマンドメッセージあるいはFTP応答メッセージに付加されている鍵元値と前記装置自身が保有する鍵元値から前記FTPクライアント装置及び前記FTPサーバ装置の双方で、TCP2ドライバが新たな鍵を生成し、交換する手順、
    (d)前記FTPクライアント装置から前記FTPサーバ装置に対して、前記設定情報を基に、TCP2ドライバがFTPコマンドを暗号文または平文で送る手順、
    (e)前記FTPサーバ装置から前記FTPクライアント装置に対して、前記設定情報を基に、TCP2ドライバが前記FTP応答コードを暗号文または平文で送る手順、
    (f)前記FTPサーバ装置から前記FTPクライアント装置に対して、TCP2ドライバがファイルデータを暗号文で送る手順、
    (g)前記FTPクライアント装置から前記FTPサーバ装置に対して、TCP2ドライバがファイルデータを暗号文で送る手順。
  3. ネットワークを介してFTPサーバ装置との間でファイル転送を行うFTPクライアント装置であって、
    該FTPクライアント装置は、既存のFTPアプリケーション部に加えて、TCP2コアとFTPシステムコアを備えたTCP2ドライバと、FTPシステム管理アプリケーション部を備えており、
    前記TCP2ドライバの前記TCP2コアは、前記FTPクライアント装置あるいは前記FTPサーバ装置から送信されるFTPコマンドまたはFTP応答コードのパケットを確認して、前記FTPシステムコアに送信し、
    前記FTPシステムコアは、
    前記FTPクライアント装置と前記FTPサーバ装置間で鍵交換を行うとともに、記憶メディアに保存された種々の設定情報に基づいて、前記FTPクライアント装置あるいは前記FTPサーバ装置から送られるFTPコマンドの暗号化または復号化を行って、前記FTPクライアント装置及び前記FTPサーバ装置との間で暗号文によりファイル転送を行い、
    前記FTPシステム管理アプリケーション部は、
    前記FTPシステムコアに送られるFTPコマンドに対して暗号化するか、あるいは暗号化しないかを設定するとともに、前記FTPシステムコアに送られる暗号化されたファイルデータに対して復号化するか、あるいは復号化しないかを設定する設定部を有し、前記設定部により設定した暗号化するかしないかの情報、及び復号化するかしないかの情報を設定情報として前記FTPシステムコアの前記記憶メディアに格納し、
    前記FTPアプリケーション部で受信して保存した暗号文のファイルデータを平文で表示させる
    ことを特徴とするFTPクライアント装置。
  4. ネットワークを介してFTPクライアント装置との間でファイル転送を行うFTPサーバ装置であって、
    該FTPサーバ装置は、
    既存のFTPアプリケーション部に加えて、TCP2コアとFTPシステムコアを備えたTCP2ドライバと、FTPシステム管理アプリケーション部を備えており、
    前記TCP2ドライバの前記TCP2コアは、前記FTPクライアント装置あるいは前記FTPサーバ装置から送信されるFTPコマンドまたはFTP応答コードのパケットを確認して、前記FTPシステムコアに送信し、
    前記FTPシステムコアは、
    前記FTPクライアント装置と前記サーバ装置間で鍵交換を行うとともに、記憶メディアに保存された種々の設定情報に基づいて、前記FTPクライアント装置あるいは前記FTPサーバ装置から送られるFTPコマンドの暗号化または復号化を行って、前記FTPクライアント装置及び前記FTPサーバ装置との間で暗号文によりファイル転送を行い、
    前記FTPシステム管理アプリケーション部は、
    前記FTPシステムコアに送られるFTP応答コードに対して暗号化するか、あるいは暗号化しないかを設定するとともに、前記FTPシステムコアに送られる暗号化されたファイルデータに対して復号化するか、あるいは復号化しないかを設定する設定部を有し、前記設定部により設定した暗号化するかしないかの情報、及び復号化するかしないかの情報を設定情報として前記FTPシステムコアの前記記憶メディアに格納し、
    前記FTPアプリケーション部で受信して保存した暗号文のファイルデータを平文で表示させる
    ことを特徴とするFTPサーバ装置。
JP2006150192A 2006-05-30 2006-05-30 Ftp通信システム、ftp通信プログラム、ftpクライアント装置及びftpサーバ装置 Active JP4866150B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006150192A JP4866150B2 (ja) 2006-05-30 2006-05-30 Ftp通信システム、ftp通信プログラム、ftpクライアント装置及びftpサーバ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006150192A JP4866150B2 (ja) 2006-05-30 2006-05-30 Ftp通信システム、ftp通信プログラム、ftpクライアント装置及びftpサーバ装置

Publications (2)

Publication Number Publication Date
JP2007324727A JP2007324727A (ja) 2007-12-13
JP4866150B2 true JP4866150B2 (ja) 2012-02-01

Family

ID=38857167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006150192A Active JP4866150B2 (ja) 2006-05-30 2006-05-30 Ftp通信システム、ftp通信プログラム、ftpクライアント装置及びftpサーバ装置

Country Status (1)

Country Link
JP (1) JP4866150B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4843116B1 (ja) * 2011-08-22 2011-12-21 株式会社Into ネットワークゲートウェイ装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4458764B2 (ja) * 2003-04-04 2010-04-28 株式会社日立製作所 データ伝送装置、データ伝送装置の識別情報管理装置、データ伝送装置の管理システム、及びデータ伝送装置の管理方法
JP3783142B2 (ja) * 2003-08-08 2006-06-07 ティー・ティー・ティー株式会社 通信システム、通信装置、通信方法、及びそれを実現するための通信プログラム

Also Published As

Publication number Publication date
JP2007324727A (ja) 2007-12-13

Similar Documents

Publication Publication Date Title
JP3783142B2 (ja) 通信システム、通信装置、通信方法、及びそれを実現するための通信プログラム
US8904178B2 (en) System and method for secure remote access
US7039713B1 (en) System and method of user authentication for network communication through a policy agent
US7987359B2 (en) Information communication system, information communication apparatus and method, and computer program
US7574603B2 (en) Method of negotiating security parameters and authenticating users interconnected to a network
JP4855147B2 (ja) クライアント装置、メールシステム、プログラム及び記録媒体
US20130227286A1 (en) Dynamic Identity Verification and Authentication, Dynamic Distributed Key Infrastructures, Dynamic Distributed Key Systems and Method for Identity Management, Authentication Servers, Data Security and Preventing Man-in-the-Middle Attacks, Side Channel Attacks, Botnet Attacks, and Credit Card and Financial Transaction Fraud, Mitigating Biometric False Positives and False Negatives, and Controlling Life of Accessible Data in the Cloud
Bellovin et al. Security mechanisms for the Internet
KR101089269B1 (ko) 보안 기능을 제공하는 안전한 에스아이피 프로토콜을 이용한 공격 탐지 방법 및 시스템
JP4866150B2 (ja) Ftp通信システム、ftp通信プログラム、ftpクライアント装置及びftpサーバ装置
JP2007324726A (ja) ファイル共有サーバ装置、クライアント装置、印刷装置、ファイル共有システム、ファイル共有プログラム
JP4757088B2 (ja) 中継装置
JP2007329750A (ja) 暗号化通信システム
JP2006121440A (ja) 医療システム、医療データ管理方法、及び医療データ管理用通信プログラム
EP1576783A2 (en) Proxy method and system for secure wireless administration of managed entities
CA2414830C (en) Proxy method and system for secure wireless administration of managed entities
JP4783665B2 (ja) メールサーバ装置
JP2008060817A (ja) 通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体
JP2007329751A (ja) 暗号化通信システム
CN113890844A (zh) 一种ping命令优化的方法、装置、设备及可读介质
CN117879899A (zh) 一种gpon设备集中安全鉴权系统
Thurimella et al. Cloak and dagger: Man-in-the-middle and other insidious attacks
JP2007019633A (ja) 中継コネクタ装置及び半導体回路装置
Bellovin et al. RFC3631: Security Mechanisms for the Internet
JP2006295401A (ja) 中継装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080313

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090507

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090515

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090529

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20101216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111006

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111108

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4866150

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250