[go: up one dir, main page]

JP2009296190A - 秘匿通信方法 - Google Patents

秘匿通信方法 Download PDF

Info

Publication number
JP2009296190A
JP2009296190A JP2008146402A JP2008146402A JP2009296190A JP 2009296190 A JP2009296190 A JP 2009296190A JP 2008146402 A JP2008146402 A JP 2008146402A JP 2008146402 A JP2008146402 A JP 2008146402A JP 2009296190 A JP2009296190 A JP 2009296190A
Authority
JP
Japan
Prior art keywords
server
random number
client
number data
password
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.)
Pending
Application number
JP2008146402A
Other languages
English (en)
Other versions
JP2009296190A5 (ja
Inventor
Masakatsu Matsuo
正克 松尾
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2008146402A priority Critical patent/JP2009296190A/ja
Priority to US12/476,373 priority patent/US8307208B2/en
Publication of JP2009296190A publication Critical patent/JP2009296190A/ja
Publication of JP2009296190A5 publication Critical patent/JP2009296190A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】SSL暗号通信では、中間者攻撃の脅威を防ぐために、サーバ証明書を用いているものの、その運用は簡単ではなく、中間者攻撃を十分に防げるものではない。
【解決手段】クライアント、サーバ間でパスワードを共有しているSSL暗号通信において、クライアントで、乱数データを発生させ、これを公開鍵、及びパスワードで暗号化して、サーバに渡すことで、クライアント、サーバ間で、パスワードよりビット長の長い乱数データを安全に共有し、この乱数データを用いて、安全な暗号通信を行うか、またはこの乱数データのハッシュ値を互いに提示し合うことで、中間者を排除した、安全な暗号通信を行う。
【選択図】図9

Description

本発明は、2点間で通信を安全に行う秘匿通信方法に関するものである。
近年、インターネットを介する通信では、フィッシングなどのように、中間者攻撃の脅威が増加しており、暗号通信だけでは、通信を安全に行えなくなっており、この中間者攻撃対策が望まれている。
従来、通信を安全に行う方法の1つとして、SSL暗号通信がある。RSA型のSSL暗号通信では、すでに中間者攻撃を軽減するしくみが備えられている。ここでは、サーバ証明書を確認することで、正しい相手との通信であるか否かを判別する方法が取られている。
しかし、サーバ証明書の確認は基本が目視のため、手間を要する。また、攻撃者が本物のサーバ証明書に似せたサーバ証明書を用意すると判断が難しい。この課題を解決するため、HTTPブラウザは、サーバ証明書に問題がある場合に、自動で警告を表示するつくりになっている。しかし、これは予め登録されている認証機関によって、サーバ証明書が認証されているか、有効期限やデジタル署名などサーバ証明書の形式に問題がないかなどをチェックしているだけであって、攻撃者が正式なサーバ証明書を保持している場合や、攻撃者がウィルス等を利用して、攻撃者のサーバ証明書を信頼するように登録した場合には要をなさない。
最近はこの自動チェックを強化するため、EV証明書という更に強化されたサーバ証明書も登場しているが、攻撃が多少困難になるだけで、本質的な課題は変わらない。
このように、互いに知らない2点間での暗号通信では、中間者攻撃を防ぐ、真に有効な手段は現在のところ知られていない。
そこで、2点間でパスワードのような秘密の情報を共有している場合だけでも、中間者攻撃を防御できないかというのが、テーマとなる。このような制限を設けたとしても、その意義は大きい。
例えば、オンラインバンキングやネットワークカメラの視聴のような、パスワードによってユーザが特定されるインターネット通信では、ユーザに一定の権利行使権があるので、攻撃者にとって、攻撃を行う魅力がある。逆に言えば、通信者が不特定の場合は、情報価値が低いので、攻撃者にとっては、攻撃を行う魅力に欠ける。従って、2点間でパスワードを共有している場合だけでも、中間者攻撃を防御できれば、被害の大きさから言って、意義は非常に大きい。
もし2点間で、暗号的に安全と判断される程度にビット長が長いパスワードを、秘密裏に保持していれば、これを共通鍵として利用することで、暗号通信は安全に行える。しかし、これを一般の人が記憶することは困難である。
そこで、人が記憶可能なパスワード、つまり暗号的に安全と判断される程度のビット長がない秘密の情報によっても、中間者攻撃を防御できることが望まれる。
このような方法として、PAKE(Password Authenticated Key−Establishment)が知られている(非特許文献1参照)。
S.Bellovin and M.Merritt.Encrypted key exchange: Password−based protocols secure against dictionary attacks.In Proc.IEEE Computer Society Symposium on Researchin Security and Privacy, 72−84.1992.
しかしながら、前記従来の技術では、サーバのみならず、クライアントにおいても負荷の重い計算処理を行わなくてはならない。またSSL暗号通信を行っている場合、ここで行うRSA暗号処理とは別に、異なる暗号処理を実行しなくてはならないので、サーバにおいても負荷が大きくなる。しかも、実装メモリも増加する。
また、サーバ、クライアント間でのネゴシエーションに要する手順が増加するので、ネゴシエーション完了までの時間も延びる。
そのため、クライアントのCPU処理機能が低い場合や、サーバがSSL暗号通信において大量のクライアントと通信を行っている場合に、クライアント、サーバにおいて、パフォーマンスが低下するという問題を有している。
一般のユーザが利用する暗号通信としては、非対称な公開鍵暗号方式であるRSA型のSSL暗号通信が最もポピュラーであり、すでに広く実装され、普及している。
従って、このRSA型のSSL暗号通信に適した、パスワードを用いた、安全な中間者攻撃防御が望まれる。
本発明は、このような従来の技術の問題点を解消するべく案出されたものであり、その主な目的は、RSAのような非対称な公開鍵暗号方式において、パスワードを用いて、中間者攻撃の被害を低減させることを目的としている。
このような課題を解決するために、本願発明の第1の発明に係る秘匿通信方法では、パスワードを共有しているクライアント、サーバ間での非対称な公開鍵暗号化方式の通信で、クライアントが、公開鍵を用いた公開鍵暗号化方式による暗号化手段である公開鍵暗号化方式型暗号化手段、及び、パスワードを利用した暗号化手段であるパスワード暗号化手段、及び、乱数データを生成、若しくは他の装置から取得する乱数データ発生手段とを有し、一方サーバが、公開鍵暗号化方式型暗号化手段によって暗号化されたデータを復号する、公開鍵暗号化方式型復号化手段、及び、パスワード暗号化手段によって暗号化されたデータを復号する、パスワード復号化手段を有するものであって、クライアントは、乱数データ発生手段を用いて、乱数データを発生させ、この乱数データの暗号化を、公開鍵暗号化方式型暗号化手段を用いて行い、更にこの公開鍵暗号化方式型暗号化手段を用いて暗号化された乱数データの暗号化を、パスワード暗号化手段を用いて行い、サーバは、公開鍵暗号化方式型暗号化手段とパスワード暗号化手段によって暗号化された乱数データの復号を、公開鍵暗号化方式型復号化手段とパスワード復号化手段を用いて行うものとし、クライアント、サーバ共に、共通鍵暗号・復号を行う、パスワード暗号化手段と等価、あるいはこれとは別の共通鍵暗号化手段を有し、乱数データの少なくとも一部から生成した共通鍵、若しくは、乱数データの少なくとも一部を元鍵として生成した共通鍵を、共通鍵暗号化手段に用いることよって、クライアント、サーバ間で暗号通信を行うものとした。
これによると、非対称な公開鍵暗号化方式であるRSA型のSSL暗号通信を行っている場合に、このしくみをそのまま利用して、パフォーマンスを落とすことなく、しかも中間者の介在を受けずに、正規クライアント、正規サーバ間で安全に通信を行える基盤を構築できる。尚、これはメール通信においても非常に有益である。S/MIMEのようにデジタル証明書を用いずとも、この方式であれば、パスワード交換しておくことで、中間者攻撃を簡単に防御できる。
ここで、攻撃者が正規サーバのふりをして、正規クライアントと通信を行っても、乱数データがパスワードによって暗号化されているため、攻撃者は、公開鍵暗号方式における秘密鍵を保持しているにもかかわらず、クライアントが送信しようとしている乱数データを知ることができない。乱数データのビット長を十分に長くすれば、オフライン攻撃さえも、ほぼ不可能である。
但し、本願に示した暗号化の順番とは逆に、乱数データをパスワードで暗号化し、それを公開鍵で暗号すると、中間者攻撃が成立する。攻撃者が、正規クライアントに対して、攻撃者の公開鍵を渡せれば、正規クライアントは攻撃者から渡された公開鍵とパスワードで暗号化を行うため、攻撃者は、自らの秘密鍵を用いて、パスワードで暗号化された乱数データを算出できる。パスワードはビット長が短いので、攻撃者は、パスワードを手がかりに、オフライン攻撃を行うことができる。
尚、攻撃者が、正規クライアント、正規サーバ間に入り込んで、クライアントがサーバを認証する間は、やりとりされるデータをスルーさせたとしても、中間者攻撃は成立しない。これではクライアントに正規サーバの公開鍵が渡るので、攻撃者は盗聴できなくなる。
逆に、攻撃者が正規クライアントのふりをして、正規サーバとの通信を行ったとしても、公開鍵暗号化方式における秘密鍵を知らないので、自らが送信したデータを逆算して、パスワードを抽出することは、離散対数問題であるため、非常に難しい。オフライン攻撃さえも、ほぼ不可能である。
尚、サーバは多人数で利用されるので、サーバは各ユーザのパスワードを保持している。ここでは、サーバがどうやって該当のパスワードを選択するかを明示していないが、これはパスワード認証で用いられるように、IDを利用するとするのが最も簡単である。しかし、IDを用いずに、サーバが、暗号通信で自らが理解できるコマンドが出てくるまで、順に各パスワードを呼出し、計算するとすることも可能である。
尚、ここで、公開鍵暗号化方式型暗号化手段と公開鍵暗号化方式型復号化手段は、鍵が異なるだけで、データ処理方法としては、同じものでも良い。また、公開鍵暗号化方式とは、共通鍵を公開鍵暗号方式で暗号化し、この共通鍵を用いてデータを暗号するという、ハイブリッド暗号を含む。
また、ここで、パスワード暗号化手段としているものは、パスワードを鍵とする暗号であり、DESやAESのようなよく知られた共通鍵暗号手法でも、パスワードをデータに対して掛け合わせるとするような手法でも良く、その手法は限定されない。
また、ここで、乱数データとしているものは、第三者に推測されないデータであれば良く、真の乱数であることを限定しているものではない。従って、乱数データ発生手段とは、そのようなデータを発生させるものであって、必ずしも、世の中で知られている乱数アルゴリズムに従った処理でなくても良い。
尚、乱数データというのは、データすべてがランダムというものでなく、既知のデータがいくつかあり、この並びをランダムにしたデータや、一部のデータ部分がランダムなデータというものであっても良い。但し、乱数の乱雑さも、安全性を確保する上で重要なので、実装にあたっては、十分な乱雑さを確保しなくてはならない。
また、ここで、クライアント、サーバと呼んでいるものは、単に、非対称の公開鍵暗号化方式における公開鍵だけを持つ方をクライアント、非対称の公開鍵暗号化方式における秘密鍵を持つ方をサーバと呼んでいるだけのものである。
もし、どちらも、異なる非対称の公開鍵暗号化方式の秘密鍵を、それぞれ保持するのであれば、どちらもクライアント、サーバという構成になる。
また、ここで、共通鍵暗号方式というのは、公開鍵暗号方式でないというだけのことであり、その暗号手法は様々である。また用いる共通鍵も、何らかの形で乱数データが関与していればよく、乱数データそのものである必要はない。例えば、SSL暗号通信を行っているのであれば、これにより生成した共通鍵と、この乱数データを掛け合わせて、新しい共通鍵を生成することもできる。
また、ここで、乱数データを共通鍵としているが、これを使って、更に新たな共通鍵を交換することができるが、時間や手間を要するだけ良くない。
このような課題を解決するために、本願発明の第2の発明に係る秘匿通信方法では、請求項2に示すとおり、少なくとも、クライアントがサーバに対して、乱数データそのものや、公開鍵暗号化方式型暗号化手段とパスワード暗号化手段を用いて暗号化された先の乱数データとは異なる、乱数データの手がかりを与える別のデータや、パスワードそのものや、パスワードの手がかりを与えるデータを与える前までには、サーバがパスワードを保持するか否かの確認を、クライアントが行うものとした。
これによると、クライアントは、明確に中間者攻撃の可能性を検知できるので良い。尚、このサーバ認証は、乱数データから生成した共通鍵を用いた暗号通信を開始する前に行うとするのが安全上、望ましい。
しかし、乱数データのビット長が十分に長ければ、クライアントがサーバを認証しなくても、乱数データから生成した共通鍵を用いた暗号通信で、十分安全である。たとえ、攻撃者が、サーバのふりをして、正規クライアントとの間で通信していたとしても、暗号通信が成立しないだけで、通信内容やパスワードが攻撃者に漏れることはない。
尚、システム上の都合で、クライアントがサーバ間に対して、パスワードや乱数データを示す必要がある場合には、少なくとも、その前には、クライアントは必ずサーバを認証しておかなければならない。
また、クライアントは、サーバがパスワードを保持することの確認を行った後、これをサーバに通知することは必ずしも必要ではない。問題がなければ、この後、クライアントからアクセスをすれば良い。
本願発明に係る第3の発明に係る秘匿通信方法においては、クライアントが、任意の認証データを用意して、共通鍵暗号化手段を用いて暗号化を行い、そしてこの暗号化された認証データを、サーバに送信し、サーバが、これを、共通鍵暗号化手段を用いて復号化を行うものであって、クライアント、サーバ共に、逆算が非常に困難な逆計算困難型計算処理手段を有し、サーバは、認証データの少なくとも一部を、逆計算困難型計算処理手段によってデータ加工を行い、クライアントに対してこのデータ加工された認証データを提示するものとし、クライアントは、認証データを、サーバと同じく、逆計算困難型計算処理手段によってデータ加工を行い、このデータ加工された認証データと、サーバから受け取ったデータ加工された認証データとを比較し、一致するか否かで、サーバがパスワードを保持するか否かの判定を行うものとした。
これによると、より安全にサーバの認証を行えるようになる。但し、これはクライアントが乱数データを公開鍵で暗号化しているために、安全なのであって、この乱数データを公開鍵で暗号化せず、単にパスワードで暗号化するのみの場合、中間者攻撃が成立する。攻撃者は、パスワードを順次変えて行き、正規サーバが提示した認証データに合致するパスワードを見つけることができる。
ここで任意の認証データとは、例えば、新たな乱数データとすることができる。
また、ここで、逆計算が困難である計算処理と言っているものは、ハッシュや2乗など、一方向性関数だけに限られるものではない。例えば、ある特定ビットだけを抜き出したものとすることや、乱数データを除数、この認証データを被除数として計算した剰余を提示することなどによっても行うことがでる。これも逆計算が困難な計算処理の1つである。このように攻撃者が逆算できないものであれば、その手法は限定されない。
尚、上記方法を使えば、この認証データを新たな共通鍵として暗号化に用いることで、更に新たな認証データを送受信して認証を行うとする構成も可能である。これは何段にも渡って行えるが、計算、及びネゴシエーションに時間を要するので、好ましくない。
本願発明の第4の発明に係る秘匿通信方法では、サーバがパスワードを保持することの確認を、クライアントが行った後に、クライアントがパスワードを保持するか否かの確認を、サーバが行うものとした。
これによると、クライアント、サーバ間で相互認証を行うので、請求項1の共通鍵を用いずとも、安全に通信を行えるようになる。例えば、SSL暗号通信を行っているのであれば、これで生成した共通鍵を用いても、安全に通信を行えるようになる。従って、SSL暗号通信のような既存の暗号通信に手を入れる必要がなくなる。
尚、サーバがクライアントを認証する方法は、クライアントがサーバを認証するのに用いる方法を流用できる。例えば、サーバが乱数データのハッシュ値を提示するのであれば、クライアントは、乱数データの2乗や別のハッシュ値を提示するとすることが可能である。
しかし、クライアントがパスワードを保持するか否かを、サーバが確認する時点においては、クラインによるサーバ認証は終わっているので、他の手段を活用することもできる。例えば、クライアントは、乱数データそのものやパスワードそのものを、公開鍵暗号方式で暗号化し、サーバに送信することで、認証を受けることが可能である。しかし、パスワードは当然として、乱数データそのものも、平分で送信してはならない。先に送信した暗号化された乱数データと、平分の乱数データがあれば、簡単にパスワードを逆算されてしまう。
尚、サーバの認証より先に、クライアント認証を行ってはならない。攻撃者がサーバのふりをしていると、パスワードを知らない時点では、サーバ認証を成功させることには失敗するものの、クライアント認証の際に提示されたデータと、暗号化された乱数データを用いて、オフライン攻撃を行うことができる。
尚、サーバは、クライアントがパスワードを保持することの確認を行ったことを、クライアントに通知する必要はない。むしろ、攻撃者が自動プログラムを使って、オンライン攻撃をしかけてくる可能性もあるので、認証結果は知らせない方が良い。同様に、認証結果が悪くても、通信を切断しない方が良い。この場合は、適当なダミー通信すると良い。
本願発明に係る第5の秘匿通信方法においては、クライアント、サーバ共に、共通鍵暗号・復号を行う、パスワード暗号化手段、若しくは共通鍵暗号化手段と等価、若しくはこれとは別の共通鍵暗号化手段を有し、サーバとクライアントが、公開鍵暗号化方式型暗号化手段と公開鍵暗号化方式型復号化手段、若しくはパスワード暗号化手段とパスワード復号化手段、若しくは共通鍵暗号化手段、若しくはサーバからクライアントに対する、パスワードを利用した暗号通信を用いて交換した、乱数データとは別の交換データの少なくとも一部から生成した共通鍵、若しくは、交換データの少なくとも一部を元鍵として生成した共通鍵を、共通鍵暗号化手段に用いることよって、クライアント、サーバ間で暗号通信を行うものとした。
これによると、非対称な公開鍵暗号化方式であるRSA型のSSL暗号通信を行っている場合に、このしくみをそのまま利用して、パフォーマンスを落とすことなく、しかも中間者の介在を受けずに、正規クライアント、正規サーバ間で安全に通信を行える基盤を構築できる。
尚、ここで、交換データとは、例えば、新たな乱数データとすることができる。例えば、SSL暗号通信を行っているのであれば、これで生成した共通鍵が、ここで言う交換データに当たる。クライアント、サーバ間で相互認証を行うので、乱数データを共通鍵として用いずとも、例えば、SSL暗号通信を行っているのであれば、これで生成した共通鍵を用いるだけで、安全に通信を行えるようになる。
尚、交換データの交換は、サーバ認証やクライアント認証とは関係なく、いつ行っても構わない。同様に、交換データを共通鍵とする暗号通信も、サーバ認証やクライアント認証とは関係なく、いつ行っても構わない。しかし、クライアント認証前に行った通信は中間者攻撃によって盗聴されている危険があるので、盗聴されても構わない通信に限らないといけない。
本願発明に係る第6の秘匿通信方法においては、パスワードを共有しているクライアント、サーバ間での非対称な公開鍵暗号化方式の通信で、クライアントが、公開鍵を用いた公開鍵暗号化方式による暗号化手段である公開鍵暗号化方式型暗号化手段、及び、パスワードを利用した暗号化手段であるパスワード暗号化手段、及び、乱数データを生成、若しくは他の装置から取得する乱数データ発生手段とを有し、一方サーバが、公開鍵暗号化方式型暗号化手段によって暗号化されたデータを復号する、公開鍵暗号化方式型復号化手段、及び、パスワード暗号化手段によって暗号化されたデータを復号する、パスワード復号化手段を有するものであって、クライアントは、乱数データ発生手段を用いて、乱数データを発生させ、この乱数データの暗号化を、公開鍵暗号化方式型暗号化手段を用いて行い、更にこの公開鍵暗号化方式型暗号化手段を用いて暗号化された乱数データの暗号化を、パスワード暗号化手段を用いて行い、サーバは、公開鍵暗号化方式型暗号化手段とパスワード暗号化手段によって暗号化された乱数データの復号を、公開鍵暗号化方式型復号化手段とパスワード復号化手段を用いて行うものとし、クライアント、サーバ共に、共通鍵暗号・復号を行う、パスワード暗号化手段と等価、あるいはこれとは別の共通鍵暗号化手段を有し、少なくともクライアントがサーバに対して、乱数データそのものや、公開鍵暗号化方式型暗号化手段とパスワード暗号化手段を用いて暗号化された先の乱数データとは異なる、乱数データの手がかりを与える別のデータや、パスワードそのものやパスワードの手がかりを与えるデータを与える前までには、サーバがパスワードを保持することの確認を、クライアントが行い、この後に、クライアントがパスワードを保持することの確認を、サーバが行い、サーバとクライアントが、公開鍵暗号化方式型暗号化手段と公開鍵暗号化方式型復号化手段、若しくはパスワード暗号化手段とパスワード復号化手段、若しくはサーバからクライアントに対する、パスワードを利用した暗号通信を用いて交換した、乱数データとは別の交換データの少なくとも一部から生成した共通鍵、若しくは、交換データの少なくとも一部を元鍵として生成した共通鍵を、共通鍵暗号化手段に用いることよって、クライアント、サーバ間で暗号通信を行うものとした。
これによると、非対称な公開鍵暗号化方式であるRSA型のSSL暗号通信を行っている場合に、このしくみをそのまま利用して、パフォーマンスを落とすことなく、しかも中間者の介在を受けずに、正規クライアント、正規サーバ間で安全に通信を行える基盤を構築できる。
尚、ここで、交換データとは、例えば、新たな乱数データとすることができる。尚、クライアント、サーバ間で相互認証を行えば、乱数データを共通鍵として用いずとも、例えば、SSL暗号通信を行っているのであれば、これで生成した共通鍵を用いるだけで、安全に通信を行えるようになる。従って、SSL暗号通信で生成した共通鍵を、ここで言う交換データとすることができる。こうすれば、SSL暗号通信のような既存の暗号通信に手を入れる必要がなくなる。
尚、交換データの交換は、サーバ認証やクライアント認証とは関係なく、いつ行っても構わない。同様に、交換データを共通鍵とする暗号通信も、サーバ認証やクライアント認証とは関係なく、いつ行っても構わない。しかし、クライアント認証前に行った通信は中間者攻撃によって盗聴されている危険があるので、盗聴されても構わない通信に限らないといけない。
尚、サーバがパスワードを保持することの確認を行った後に、直ちにクライアントがパスワードを保持することの確認を行えるので、クライアントは、サーバがパスワードを保持することの確認を行ったことを、サーバに通知する必要はない。
また、サーバも、クライアントがパスワードを保持することの確認を行ったことを、クライアントに通知する必要はない。むしろ、攻撃者が自動プログラムを使って、オンライン攻撃をしかけてくる可能性もあるので、認証結果は知らせない方が良い。同様に、認証結果が悪くても、通信を切断しない方が良い。この場合は、適当にダミー通信すると良い。
本願発明に係る第7の秘匿通信方法においては、クライアント、サーバ共に、逆算が非常に困難な逆計算困難型計算処理手段を有し、サーバは、乱数データ、若しくは、乱数データと同様の方法で新たに取り交わした乱数データの少なくとも一部を、逆計算困難型計算処理手段によってデータ加工を行い、クライアントに対してこのデータ加工された乱数データを提示するものとし、クライアントは、乱数データを、サーバと同じく、逆計算困難型計算処理手段によってデータ加工を行い、このデータ加工された乱数データと、サーバから受け取ったデータ加工された乱数データとを比較し、一致するか否かで、サーバがパスワードを保持するか否かの判定を行うものとした。
これによると、より安全にサーバの認証を行えるようになる。但し、これはクライアントが乱数データを公開鍵で暗号化しているために、安全なのであって、請求項1とは異なり、この乱数データを公開鍵で暗号化せず、単にパスワードで暗号化するのみの場合、中間者攻撃が成立する。攻撃者は、正規クライアントが送信した、パスワードで暗号化された乱数データと、正規サーバが提示したデータとを使って、オフライン攻撃を行える。
また、サーバがクライアントに対して、乱数データそのものを提示したとした場合にも、中間者攻撃が成立する。攻撃者が、正規クライアントに対して、攻撃者の公開鍵を渡せれば、正規クライアントは、攻撃者から渡された公開鍵とパスワードで暗号化を行うので、攻撃者が、これをそのまま正規サーバに転送し、サーバから提示された乱数データを、サーバの公開鍵と攻撃者の秘密鍵で復号化すれば、攻撃者は、乱数データそのものを得ることができる。
また、ここで、逆計算が困難である計算処理と言っているものは、ハッシュや2乗など、一方向性関数だけに限られるものではない。例えば、ある特定ビットだけを抜き出したものとすることもできる。攻撃者が逆算できないものであれば、その手法は限定されない。
本願発明に係る第8の秘匿通信方法においては、クライアント、サーバ共に、乱数データを記憶装置に記憶し、かつ記憶装置から記憶した乱数データを呼出す、乱数データ記憶手段を有し、クライアント、サーバ共に、乱数データを取得した後に、乱数データ記憶手段を用いて、乱数データを記憶装置に記憶し、クライアント、サーバ間での次回接続時に、クライアント、サーバ共に、乱数データ記憶手段を用いて、記憶装置から乱数データを呼出すものとした。
これによると、通信再開時に、簡単、かつ安全に再接続を行うことができる。尚ここで乱数データを、ワンタイムパスワードとして利用することも可能である。
本願発明に係る第9の秘匿通信方法においては、サーバがパスワードを保持することの確認を、クライアントが行う場合において、暗号通信を用いて、サーバが、自らの通信先情報をクライアントに対して知らせ、クライアントは自らが通信しているサーバの通信先情報と、受け取った通信先情報とから、クライアント、サーバ間に中間者が介在しないことを確認するものとした。
ここで、通信先情報というのは、例えばIPアドレスを利用することができる。
これによると、中間者の介在が完全に排除されるので、クライアントが、同じ接続先に再接続する際には、SSLなど通常の暗号通信を行うだけで、安全な通信を行うことができる。
但し、通信の切断から再接続までの時間が長い場合は、サーバのIPアドレスは、攻撃者によって付け替えられている可能性があるので、注意が必要である。
本願発明に係る第10の秘匿通信方法においては、クライアントがパスワードを保持することの確認を、サーバが行う場合において、暗号通信を用いて、クライアントが、自らの通信先情報をサーバに対して知らせ、サーバは自らが通信しているサーバの通信先情報と、受け取った通信先情報とから、クライアント、サーバ間に中間者が介在しないことを確認するものとした。
これによると、中間者の介在が完全に排除されるので、クライアントが、再接続する際には、SSLなど通常の暗号通信を行うだけで、安全な通信を行うことができる。
但し、通信の切断から再接続までの時間が長い場合は、サーバのIPアドレスは、攻撃者によって付け替えられている可能性があるので、注意が必要である。
このように本発明によれば、暗号的に脆弱な、ビット長の短いパスワードを用いながら、SSLのような非対称の公開鍵暗号通信において、中間者を排除した安全な通信を、簡単かつ軽量に行える効果を得られる。
以下、本発明の実施の形態を、図面を参照しながら説明する。
図1は、本発明に係る秘匿通信方法の一例を示すフローチャートである。この秘匿通信では、クライアント、サーバ間で取り交わした乱数データを、共通鍵として用いることで、安全な暗号通信を行うことができる。
クライアント、サーバ間で通常のSSLネゴシエーションを行う。この時点で、クライアントには、サーバのSSL通信で用いる公開鍵(以降、SSL公開鍵と呼ぶ)が渡る。但し、公開鍵の受け渡しは、SSL通信に限定されるものでなく、メールや手渡しで送ることもできる。この公開鍵の受け渡しに関しては、どのような手段を用いても良い。
クライアントにおいては、(1)乱数データを生成し、(2)これをSSL公開鍵で暗号化する。ここで、乱数データのビット長は、オフライン攻撃を受けないために、暗号的に安全な程度に長いものが望ましい。そして、(3)そのSSL公開鍵で暗号化された乱数データを、パスワードを用いて、暗号化する。尚、パスワードのビット長は極端に短くなければ、中間者攻撃は困難であり、安全である。但し、暗号化の順番を変えると、中間者攻撃が可能となるので、正しく順番を守る必要がある。そして、(4)このパスワードとSSL公開鍵とで暗号化された乱数データを、サーバに送信する。
一方、サーバにおいては、(5)このパスワードとSSL公開鍵とで暗号化された乱数データを、クライアントから受信する。そして、(6)このパスワードとSSL公開鍵とで暗号化された乱数データを、まずパスワードを用いて復号化して、SSL公開鍵で暗号化された乱数データを取得する。もし、ここで攻撃者がサーバのふりをできたとしても、パスワードを知らないので、乱数データの復号はできない。また、暗号化された乱数データ以外に、他に手がかりもないので、オフライン攻撃も困難である。尚ここで、サーバがどのようにしてクライアントのパスワードを特定したかを記述していないが、例えば、通常のパスワード認証のように、パスワードを指定するIDを、クライアントが送信することによって、特定したものとすることができる。他にも、パスワードをクライアントの通信先情報に関連づけて記憶しているとすることも可能である。
次に、(7)このSSL公開鍵で暗号化された乱数データを、サーバのSSL通信で用いる秘密鍵(以降、SSL秘密鍵と呼ぶ)で復号化して、乱数データを取得する。
クライアントは、(8)送信データを準備し、(9)この送信データを、乱数データを共通鍵として、暗号化する。そして、(10)この乱数データで暗号化された送信データを、サーバに送信する。
サーバは、(11)この乱数データで暗号化された送信データを、クライアントから受信する。そして、(12)この乱数データで暗号化された送信データを、乱数データを共通鍵として、復号化を行い、送信データを取得する。尚、図1では共通暗号方式として、DESを例として掲示しているが、これはAESなどでも良く、安全な暗号方式であれれば、その方式は何でも構わない。
これにより、パスワードを保持しない中間者を排除して、安全な暗号通信を行える。尚、ここでは、クライアントが先に送信データを準備しているが、サーバが先に送信データを準備するとすることもできる。また、クライアントが最初に送信データを送る場合には、送信データは乱数データの送信と、同期する必要はなく、いつ送信しても構わない。但し、サーバが最初に送信データを送る場合には、サーバは、乱数データを取得した後に、送信データの暗号化を行うので、同期が必要である。
図2は、図1のブロック図である。クライアントは、パスワード入力部170を用いて、パスワードをユーザから取得し、予めパスワードを記憶保持しているサーバと秘匿通信を行うようになっている。尚、クライアントもサーバと同様に、パスワードを予め記憶保持しているとすることも可能である。
はじめに、クライアント1がサーバ2に接続を開始し、SSLネゴシエーションを行う。この時点で、クライアント1には、サーバ2のSSL公開鍵が渡る。そして、そのSSLネゴシエーションの前後で、クライアント1は、ユーザに対して、パスワード入力を、パスワード入力部170を用いて求める。
ユーザが、パスワード入力部170を用いてパスワードを入力する。これとは非同期に、乱数生成部180が乱数データを生成する。これを、公開鍵暗号部130がSSL公開鍵を用いて暗号化を行う。そして、ユーザのパスワード入力を待って、このSSL公開鍵で暗号された乱数データを、パスワード暗号部140が、パスワードを用いて、更に暗号化し、このパスワードとSSL公開鍵とで暗号化された乱数データを、データ送信部110を通して、サーバ2に送信する。
パスワード復号部240は、このパスワードとSSL公開鍵とで暗号化された乱数データを、データ受信部211を通して受信し、予め登録されているパスワードを用いて、このパスワードとSSL公開鍵とで暗号化された乱数データを、復号化して、SSL公開鍵で暗号化された乱数データを取得する。
次に、公開鍵復号部230は、SSL秘密鍵を用いて、このSSL公開鍵で暗号化された乱数データを復号化し、乱数データを取得する。ここで、SSL秘密鍵は、先のSSL公開鍵と対となる鍵である。
通信部120は、送信したい送信データを用意し、これを共通暗号通信部150に送る。共通暗号通信部150では、乱数データを共通鍵として、この送信データを暗号化して、これを、データ送信部110を通してサーバ2に送信する。
共通暗号通信部250は、この共通鍵で暗号化された乱数データを、データ受信部211を通して受信し、乱数データを共通鍵として、この共通鍵で暗号化された送信データを復号化して、この乱数データを通信部220に送る。通信部220では、クライアントから送られてきた送信データを解釈する。
図3は、本発明に係る秘匿通信方法の一例を示すフローチャートである。この秘匿通信では、クライアントがサーバを認証することで、攻撃者がサーバのふりをしていないかを確認するものである。
図1との相違点は、サーバが乱数データを取得した後、乱数データを、クライアントに提示することで、サーバ認証を行っているところである。
(7)までは、図1と説明は同じである。サーバにおいては、(8)取得した乱数データを、特定のビットパターンでマスク化し、(9)マスク化された乱数データをクライアントに送信する。ここでは、取得した乱数データを、特定のビットパターンでマスク化しているが、これは第三者に気づかれないようにデータ加工できれば、どのような手法でも構わない。例えば、これをハッシュ関数など一方向性関数によって処理するとするのは、望ましいデータ加工の1つである。尚、ここで、乱数データそのものや、乱数データをパスワードで暗号化したものを提示するのは、中間者攻撃を受ける可能性があり、危険である。
クライアントにおいては、(10)このマスク化された乱数データを受信する。(11)クライアントもサーバと同様のマスク化を、自らが発生させた乱数データに対して
行い、(12)この結果と、サーバから取得したマスク化された乱数データとを比較する。つまりサーバ認証を行う。これが一致すれば、サーバがパスワードを保持していることになる。もし、不一致であれば、サーバがにせものであることが判明する。尚、ユーザがパスワードを入力し間違った可能性もあるが、何度再入力しても結果が悪ければ、中間者攻撃を受けている可能性が高いことになる。
この後は、図1の(8)以降のように、乱数データを共通鍵として共通鍵暗号を行うことができる。
図4は、本発明に係る秘匿通信方法の一例を示すブロック図である。このサーバ認証では、クライアントが、乱数データとは異なる認証データを別途用意し、これをサーバに送信して、サーバがこの認証データをクライアントに対して提示できるか否かで、判定を行うようになっている。
はじめに、クライアント1がサーバに接続を開始し、SSLネゴシエーションを行う。この時点で、クライアント1には、サーバ2のSSL公開鍵が渡る。そして、このSSLネゴシエーションの前後で、クライアント1は、ユーザに対して、パスワード入力を、パスワード入力部170を用いて求める。
ユーザが、パスワード入力部170を用いてパスワードを入力する。これとは非同期に、乱数生成部180が乱数データ1(共通鍵)を生成する。これを、公開鍵暗号部130がSSL公開鍵を用いて暗号化を行う。そして、ユーザのパスワード入力を待って、パスワード暗号部140が、このSSL公開鍵で暗号された乱数データ1を、パスワードを用いて、更に暗号化し、このパスワードとSSL公開鍵とで暗号化された乱数データ1を、データ送信部110を通して、サーバに送信する。
パスワード復号部240は、このパスワードとSSL公開鍵とで暗号化された乱数データ1を、データ受信部211を通して受信し、予め登録されているパスワードを用いて、このパスワードとSSL公開鍵とで暗号化された乱数データ1を、復号化して、SSL公開鍵で暗号化された乱数データ1を取得する。
次に、SSL秘密鍵を用いて、このSSL公開鍵で暗号化された乱数データ1を、公開鍵復号部230において復号化し、乱数データ1(共通鍵)を取得する。ここで、SSL秘密鍵は、先のSSL公開鍵と対となる鍵である。
そして、乱数生成部180は、乱数データ2(認証データ)を生成する。共通鍵暗号通信部150は、乱数データ1を共通鍵として、乱数データ2を暗号化し、この暗号化された乱数データ2を、データ送信部110を通してサーバ2に送信する。尚、この乱数データ2の生成は、乱数データ1の生成と同期を取る必要はない。また、乱数データ2の暗号化の時点では、共通鍵である乱数データ1が必要であるが、乱数データ2の送信は、乱数データ1の送信と同時に行っても良い。
共通鍵暗号通信部250は、この暗号化された乱数データ2を、データ受信部211を通して受信し、乱数データ1を共通鍵として、この暗号化された乱数データ2を復号化し、乱数データ2を取得する。
次に、ハッシュ処理部260が、この乱数データ2のハッシュ値を計算して、この乱数データ2のハッシュ値を、データ送信部210を通して、クライアントに送信する。ここで例え攻撃者が、この乱数データ2のハッシュ値を入手できたとしても、これを逆算できないので、乱数データ2を知ることはできない。従って、乱数データ1やパスワードを逆算することもできない。尚ここで、ハッシュ化する方法としては、MD5やSHA1などを用いることができる。またここでは、ハッシュ値を暗号化していないが、より安全に通信を行うために、これを乱数データ1で暗号化するものとしても良い。その際は、クライアントで復号化が必要となる。
次に、サーバ認証部190は、この乱数データ2のハッシュ値を、データ受信部111を通して受信し、これと、自らがハッシュ処理部160を用いて行った、乱数データ2のハッシュ値との比較を行う。つまりサーバ認証を行う。これが一致すれば、サーバがパスワードを保持していることなる。もし、不一致であれば、サーバがにせものであることが判明する。尚、ユーザがパスワードを入力し間違った可能性もあるが、何度再入力しても結果が悪ければ、中間者攻撃を受けている可能性が高いことになる。
尚、ここでは、サーバ認証を行うのに、共通鍵である乱数データ1とは異なる乱数データ2を用いているが、乱数データ1を、乱数データ2と同じ方法で提示することでも、サーバ認証を行うことができる。従って、乱数データ2は、必ずしも認証を行うのに必要なものではない。
図5は、本発明に係る秘匿通信方法の一例を示すブロック図である。この秘匿通信では、サーバ認証だけでなく、クライアント認証も行うので、攻撃者がクライアント、及びサーバのふりをしていないかを確認することができる。
サーバが乱数データ2をクライアントに提示するところまでは、図4と同じである。この後、クライアントがサーバに乱数データ2を提示して、クライアント認証を行う。
サーバ認証部190が、サーバの認証を行うところまでは、図4と説明は同じである。次に、サーバ認証部190でサーバ認証を終えたら、これを受けて、ハッシュ処理部160が、乱数データ2のハッシュ値を計算して、この乱数データ2のハッシュ値を、サーバ2に送信する。尚、ここで用いたハッシュ計算方法は、図4のサーバ認証で用いたハッシュ計算とは異なるものでなければならない。例えば、サーバ認証ではMD5を用い、クライアント認証ではSHA1を用いるとするなど、異なるハッシュアルゴリズムを用いることもできれば、同じハッシュアルゴリズムを、違う初期値で計算することもできる。
クライアント認証部290は、この乱数データ2のハッシュ値を、データ受信部211を通して取得し、これと、自らがハッシュ処理部260を利用して計算した、乱数データ2のハッシュ値とを比較する。これが一致すれば、クライアントがパスワードを保持していることなる。もし、不一致であれば、クライアントはにせものであることが判明する。
尚ここでも、図4と同様に、クライアント認証に、乱数データ1ではなく、乱数データ2を用いているが、図4の説明と同様で、乱数データ1を、乱数データ2と同じ方法で提示することでも、クライアント認証を行うことができる。
最後に、クライアント認証部290は、認証結果を、データ送信部210を通して、サーバに通知する。通信部120は、この認証結果を、データ受信部111を通して、受信し、クライアント認証が終了したことを知る。
但し、クライアントは、この認証結果とは非同期に、この後データを送信することが可能なので、この認証結果の通知は必ずしも必要ではない。むしろ、攻撃者が自動プログラムを使って、オンライン攻撃をしかけてくる可能性もあるので、認証結果は知らせない方が良い。但し、認証結果ではなく、認証終了を通知するだけなら、問題はない。
図6は、本発明に係る秘匿通信方法の一例を示すフローチャートである。ここでは、クライアント、サーバの相互認証によって、中間者を排除し、その後に、SSL通信の共通鍵だけで、安全に暗号通信を行う方法例を示している。
サーバが乱数データ2をクライアントに提示するところまでは、図4のフローチャート説明になっており、クライアントが乱数データ2をサーバに提示するところまでは、図5のフローチャー説明にもなっている。
クライアント、サーバ間で通常のSSLネゴシエーションを行う。この時点で、クライアントには、サーバのSSL公開鍵が渡る。またこの時、このSSL暗号通信で用いる共通鍵暗号化方式が決定される。図6では、これをDESとして説明しているが、この共通鍵暗号化方式に制限はない。
クライアントにおいては、(1)乱数データを生成し、(2)これをSSL公開鍵で暗号化する。ここで、乱数データのビット長は、オフライン攻撃を受けないために、暗号的に安全な程度に長いものが望ましい。そして、(3)このSSL公開鍵で暗号化された乱数データを、パスワードを用いて、更に暗号化する。尚、パスワードのビット長は極端に短くなければ、中間者攻撃は困難であり、安全である。但し、暗号化の順番を変えると、中間者攻撃が可能となるので、正しく順番を守る必要がある。そして、(4)このパスワードとSSL公開鍵とで暗号化された乱数データを、サーバに送信する。
一方、サーバにおいては、(5)このパスワードとSSL公開鍵とで暗号化された乱数データを受信する。そして、(6)このパスワードとSSL公開鍵とで暗号化された乱数データを、まずパスワードを用いて復号化して、SSL公開鍵で暗号化された乱数データを取得する。ここで、サーバがどのようにしてクライアントのパスワードを特定したかを記述していないが、例えば、通常のパスワード認証のように、パスワードを指定するIDを、クライアントが送信することによって、特定したものとすることができる。他にも、パスワードをクライアントの通信先情報に関連づけて記憶しているとすることも可能である。
次に、(7)このSSL公開鍵で暗号化された乱数データを、サーバのSSL秘密鍵で復号化して、乱数データを取得する。もし、ここで攻撃者がサーバのふりをできたとしても、パスワードを知らないので、乱数データの復号はできない。また、暗号化された乱数データ以外に、他に手がかりもないので、オフライン攻撃も困難である。
クライアントは、(8)認証データ(別の乱数データ)を生成し、(9)この認証データを、乱数データで暗号化する。そして(10)この乱数データで暗号化された認証データをサーバに送信する。
サーバは、(11)この乱数で暗号化された認証データを受信し、(12)この乱数データで暗号化された認証データを、乱数データで復号化し、認証データを取得する。次に、(13)この認証データのハッシュ値を計算し、(14)この認証データのハッシュ値を、クライアントに送信する。
クライアントでは、(15)この認証データのハッシュ値を受信する。そして、(16)自らも、サーバと同様の方法で、認証データに対してハッシュ計算を行い、認証データのハッシュ値を取得する。そして、(17)サーバから受け取った認証データのハッシュ値と、自らが計算した認証データのハッシュ値を比較する。これが一致すれば、サーバは、パスワードを保持するものと判断する。つまりサーバ認証を行う。
続いて、(18)先に計算したハッシュ計算とは異なる方法で、認証データのハッシュ計算を行い、(19)この認証データのハッシュ値を、サーバに送信する。
サーバでは、(20)この認証データのハッシュ値を受信する。そして、(21)自らも、サーバと同様の方法で、認証データに対してハッシュ計算を行い、認証データのハッシュ値を取得する。そして、(22)サーバから受け取った認証データのハッシュ値と、自らが計算した認証データのハッシュ値を比較する。これが一致すれば、クライアントは、パスワードを保持するものと判断する。つまりクライアント認証を行う。
この後、(23)サーバはクライアントに対して、認証終了を通知する。そして、(24)クライアントはこの通知を受信する。
これ以降は、先にSSL通信で生成した共通鍵(以降SSL共通鍵と呼ぶ)で暗号通信を行う。これまでに、クライアント、サーバ共に互いに認証を行っているので、SSL共通鍵だけの暗号通信でも安全に通信を行うことができる。
図7は、図6のブロック図である。従って、サーバがクライアント認証の結果通知を行うところまでは、図5と同じである。
次に、通信部120は、送信データを準備する。そして、共通鍵暗号通信部150は、この送信データを、SSL通信共通鍵で暗号化して、データ送信部110を通して、サーバ2に送信する。
共通暗号通信部250は、このSSL通信共通鍵で暗号化された送信データを、データ受信部211を通して受信し、このSSL通信共通鍵で暗号化された送信データを、SSL共通鍵で復号化し、これを通信部220に送る。
通信部220は送信データの解釈を行う。この後は、通常のSSL通信を行う。ここでは、クライアント1からデータ送信を開始しているが、これをサーバ2からとすることもできる。
図8は、本発明に係る秘匿通信方法の一例を示すフローチャートである。ここでも、クライアント、サーバの相互認証によって、中間者を排除し、SSL通信の共通鍵だけで、暗号通信を安全に行う方法例を示している。
但し、図6とは異なり、乱数データを共通鍵としては用いていない。
クライアント、サーバ間で通常のSSLネゴシエーションを行う。この時点で、クライアントには、サーバのSSL公開鍵が渡る。またこの時、このSSL暗号通信で用いる共通鍵暗号化方式が決定される。図8では、これをDESとして説明しているが、この共通鍵暗号化方式に制限はない。
クライアントにおいては、(1)乱数データを生成し、(2)これをSSL公開鍵で暗号化する。ここで、乱数データのビット長は、オフライン攻撃を受けないために、暗号的に安全な程度に長いものが望ましい。そして、(3)そのSSL公開鍵で暗号化された乱数データを、パスワードを用いて、更に暗号化する。尚、パスワードのビット長は極端に短くなければ、中間者攻撃は困難であり、安全である。但し、暗号化の順番を変えると、中間者攻撃が可能となるので、正しく順番を守る必要がある。そして、(4)このパスワードとSSL公開鍵とで暗号化された乱数データを、サーバに送信する。
一方、サーバにおいては、(5)このパスワードとSSL公開鍵とで暗号化された乱数データを受信する。そして、(6)このパスワードとSSL公開鍵とで暗号化された乱数データを、まずパスワードを用いて復号化して、SSL公開鍵で暗号化された乱数データを取得する。ここで、サーバがどのようにしてクライアントのパスワードを特定したかを記述していないが、例えば、通常のパスワード認証のように、パスワードを指定するIDを、クライアントが送信することによって、特定したものとすることができる。他にも、パスワードをクライアントの通信先情報に関連づけて記憶しているとすることも可能である。
次に、(7)このSSL公開鍵で暗号化された乱数データを、サーバのSSL秘密鍵で復号化して、乱数データを取得する。もし、ここで攻撃者がサーバのふりをできたとしても、パスワードを知らないので、乱数データの復号はできない。また、暗号化された乱数データ以外に、他に手がかりもないので、オフライン攻撃も困難である。
次に、(8)この乱数データのハッシュ値を計算し、(9)この乱数データのハッシュ値を、クライアントに送信する。
クライアントでは、(10)この乱数データのハッシュ値を受信する。そして、(11)自らも、サーバと同様の方法で、乱数データに対してハッシュ計算を行い、乱数データのハッシュ値を取得する。(12)サーバから受け取った乱数データのハッシュ値と、自らが計算した乱数データのハッシュ値を比較して、これが一致すれば、サーバは、パスワードを保持するものと判断する。つまりサーバ認証を行う。
続いて、(13)乱数データを、SSL共通鍵で暗号化し、(14)このSSL共通鍵で暗号化された乱数データをサーバに送信する。
サーバでは、(15)このSSL共通鍵で暗号化された乱数データを受信する。そして、(16)このSSL共通鍵で暗号化された乱数データを、SSL共通鍵で復号し、(17)復号した乱数データと、先に取得した乱数データとを比較する。これが一致すれば、クライアントは、パスワードを保持するものと判断する。つまりクライアント認証を行う。
この後、(18)サーバはクライアントに対して、認証終了を通知する。そして、(19)クライアントはこの通知を受信する。
これ以降は、SSL共通鍵で、暗号通信を安全に行うことができる。
図9は、図8のブロック図である。
はじめに、クライアントがサーバに接続を開始し、SSLネゴシエーションを行う。この時点で、クライアントには、サーバのSSL公開鍵が渡る。またSSLネゴシエーション後には、SSL共通鍵が生成されている。
ユーザが、パスワード入力部170を用いてパスワードを入力する。これとは非同期に、乱数生成部180が乱数データを生成する。これを、公開鍵暗号部130がSSL公開鍵を用いて暗号化を行う。そして、ユーザのパスワード入力を待って、パスワード暗号部140が、このSSL公開鍵で暗号された乱数データを、パスワードを用いて、更に暗号化し、このパスワードとSSL公開鍵とで暗号化された乱数データを、データ送信部110を通して、サーバ2に送信する。
パスワード復号部240は、このパスワードとSSL公開鍵とで暗号化された乱数データを、データ受信部211を通して受信し、予め登録されているパスワードを用いて、このパスワードとSSL公開鍵とで暗号化された乱数データを、復号化して、SSL公開鍵で暗号化された乱数データを取得する。
次に、SSL秘密鍵を用いて、このSSL公開鍵で暗号化された乱数データを、公開鍵復号部230において復号化し、乱数データを取得する。ここで、SSL秘密鍵は、先のSSL公開鍵と対となる鍵である。
次に、ハッシュ処理部260が、この乱数データのハッシュ値を計算して、この乱数データのハッシュ値を、データ送信部210を通して、クライアント1に送信する。ここで例え攻撃者が、この乱数データのハッシュ値を入手できたとしても、これを逆算できないので、乱数データを知ることはできない。従って、パスワードを逆算することもできない。尚ここで、ハッシュ化する方法としては、MD5やSHA1などを用いることができる。またここでは、ハッシュ値を暗号化していないが、より安全に通信を行うために、これをSSL共通鍵で暗号化するものとしても良い。その際は、クライアント1で復号化が必要となる。
次に、サーバ認証部190は、この乱数データのハッシュ値を、データ受信部111を通して受信し、これと、自らがハッシュ処理部160を用いて行った、乱数データのハッシュ値との比較を行う。つまりサーバ認証を行う。これが一致すれば、サーバ2がパスワードを保持していることになる。もし、不一致であれば、サーバ2はにせものであることが判明する。尚、ユーザがパスワードを入力し間違った可能性もあるが、何度再入力しても結果が悪ければ、中間者攻撃を受けている可能性が高いことになる。
次に、サーバ認証部190で認証が終了したら、これを受けて、共通鍵暗号通信部150が、乱数データを、SSL共通鍵で暗号化して、このSSL共通鍵で暗号化乱された乱数データを、サーバ2に送信する。尚ここでは、乱数データそのものをサーバ2に提示するために、SSL共通鍵で暗号化を行っているが、この乱数データに対して、サーバ認証で用いたハッシュ計算とは異なる、ハッシュ計算を行い、これを提示するものとすれば、暗号化を行う必要はない。またこの時点では、サーバ認証は終了しているので、正規クライアント1は、SSL共通鍵で暗号化した乱数データをサーバ2に渡しても、通信の安全が脅かされることはない。
共通鍵暗号通信部250は、このSSL共通鍵で暗号化された乱数データを、データ受信部211を通して取得し、これを、SSL共通鍵を用いて復号化して、乱数データを取得する。
そして、クライアント認証部290は、先に取得した乱数データと、今取得した乱数データとを比較する。これが一致すれば、クライアントがパスワードを保持していることになる。もし、不一致であれば、クライアントはにせものであることが判明する。
次に、クライアント認証部290は、認証終了を、データ送信部210を通して、クライアント1に通知する。通信部120は、この認証結果を、データ受信部111を通して、受信し、クライアント認証が終了したことを知る。
但し、クライアントは、この認証終了通知とは非同期に、送信データを送信することが可能なので、この認証終了通知は必ずしも必要ではない。むしろ、攻撃者が自動プログラムを使って、オンライン攻撃をしかけてくる可能性もあるので、認証結果は知らせない方が良い。但し、認証終了を通知するだけなら、問題はない。
この通知を受けて、通信部120は、送信したいデータを準備する。そして、共通鍵暗号通信部150は、この送信データを、SSL通信共通鍵で暗号化して、データ送信部110を通して、サーバに送信する。
共通暗号通信部220は、このSSL通信共通鍵で暗号化された送信データを、データ受信部211を通して受信し、このSSL通信共通鍵で暗号化された送信データを、SSL共通鍵で復号化し、これを通信部220に送る。
最後に、通信部220は送信データの解釈を行う。この後は、通常のSSL通信を行う。尚ここでは、クライアントからデータ送信を開始しているが、これをサーバからとすることもできる。
図10は、本発明に係る秘匿通信方法の一例を示すフローチャートである。この秘匿通信では、クライアント、サーバ間で乱数データを取り交わした後、一旦通信を切断し、その後、先に取り交わした乱数データを用いて、通信を再開する。
クライアント、サーバ間で通常のSSLネゴシエーションを行う。この時点で、クライアントには、サーバのSSL公開鍵が渡る。但し、公開鍵の受け渡しは、SSL通信に限定されるものでなく、メールや手渡しで送ることもできる。公開鍵の受け渡しに関しては、どのような手段を用いても良い。
クライアントにおいては、(1)乱数データを生成し、(2)この乱数データをHDDなど不揮発メモリに記憶し、(3)これをSSL公開鍵で暗号化する。ここで、乱数データのビット長は、オフライン攻撃を受けないために、暗号的に安全な程度に長いものが望ましい。そして、(4)そのSSL公開鍵で暗号化された乱数データを、パスワードを用いて、更に暗号化する。
尚、パスワードのビット長は極端に短くなければ、中間者攻撃は困難であり、安全である。但し、暗号化の順番を変えると、中間者攻撃が可能となるので、正しく順番を守る必要がある。そして、(5)このパスワードとSSL公開鍵とで暗号化された乱数データを、サーバに送信する。尚ここで、乱数データの不揮発メモリへの記憶は、通信切断とは非同期に行える。乱数データの不揮発メモリへの記憶は、少なくとも、クライアントの電源が落とされる前までに行えば良い。但し、通信切断で、揮発性メモリにある乱数データが消去されるのであれば、通信切断前に、不揮発性メモリに記憶しなければならない。
一方、サーバにおいては、(6)このパスワードとSSL公開鍵とで暗号化された乱数データを、クライアントから受信する。この後、(7)クライアント、サーバ間の通信が切断される。そしてサーバは、(8)このパスワードとSSL公開鍵とで暗号化された乱数データを、まずパスワードを用いて復号化して、SSL公開鍵で暗号化された乱数データを取得する。ここで、サーバがどのようにしてクライアントのパスワードを特定したかを記述していないが、例えば、通常のパスワード認証のように、パスワードを指定するIDを、クライアントが送信することによって、特定したものとすることができる。他にも、パスワードをクライアントの通信先情報に関連づけて記憶しているとすることも可能である。
次に、(9)このSSL公開鍵で暗号化された乱数データを、サーバのSSL秘密鍵で復号化して、乱数データを取得し、(10)この乱数データHDDなど不揮発メモリに記憶する。もし、ここで攻撃者がサーバのふりをできたとしても、パスワードを知らないので、乱数データの復号はできない。また、暗号化された乱数データ以外に、他に手がかりもないので、オフライン攻撃も困難である。尚、ここで通信切断を(7)としたが、これは、(10)の後でも良い。また、クライアントと同様で、乱数データの不揮発メモリへの記憶は、通信切断とは非同期に行える。少なくとも、サーバの電源が落とされる前までに行えば良い。但し、通信切断で、揮発性メモリにある乱数データが消去されるのであれば、通信切断前に、不揮発性メモリに記憶しなければならない。
そして、クライアントが通信を再開する。尚ここで、サーバが該当する乱数データの呼出す方法は、クライアントがサーバに再度IDを指定する方法でも、サーバがクライアントの通信先情報から記憶している乱数データを呼出す方法でも良く、特に制限はない。
このようにして、クライアント、サーバ共に乱数データを不揮発性メモリから呼出し、クライアントは、(11)送信データを準備し、(12)この送信データを、乱数データを共通鍵として、暗号化する。そして、(13)この乱数データで暗号化された送信データを、サーバに送信する。
サーバは、(14)この乱数データで暗号化された送信データを受信する。そして、(15)この乱数データで暗号化された送信データを、乱数データを共通鍵として、復号化を行い、送信データを取得する。尚、図1では共通暗号方式として、DESを例として掲示しているが、これはAESなどでも良く、安全な暗号方式であれれば、その方式は何でも構わない。
尚ここでは、クライアントから先に送信データを送信しているが、これをサーバから先に送信データを送信することもできる。
図11は、図10のブロック図である。
はじめに、クライアント1がサーバ2に接続を開始し、SSLネゴシエーションを行う。この時点で、クライアント1には、サーバ2のSSL公開鍵が渡る。
ユーザが、パスワード入力部170を用いてパスワードを入力する。これとは非同期に、乱数生成部180が乱数データを生成する。この乱数データは、乱数記憶部181によって記憶される。また、この乱数データを、公開鍵暗号部130がSSL公開鍵を用いて暗号化を行う。そして、ユーザのパスワード入力を待って、パスワード暗号部140が、このSSL公開鍵で暗号された乱数データを、パスワードを用いて、更に暗号化し、このパスワードとSSL公開鍵とで暗号化された乱数データを、データ送信部110を通して、サーバ2に送信する。
パスワード復号部240は、このパスワードとSSL公開鍵とで暗号化された乱数データを、データ受信部211を通して受信し、予め登録されているパスワードを用いて、このパスワードとSSL公開鍵とで暗号化された乱数データを、復号化して、SSL公開鍵で暗号化された乱数データを取得する。
次に、SSL秘密鍵を用いて、このSSL公開鍵で暗号化された乱数データを、公開鍵復号部230において復号化し、乱数データを取得し、この乱数データを、乱数記憶部281に記憶する。ここで、SSL秘密鍵は、先のSSL公開鍵と対となる鍵である。
クライアント1が、パスワードとSSL公開鍵とで暗号化された乱数データをサーバ2に渡した後のいずれの時点で、クライアント1、サーバ2間の通信が一旦切断される。そして、クライアント1は、通信を再開する。尚ここで、サーバ2が該当する乱数データの呼出す方法は、クライアントがサーバに再度IDを指定する方法でも、サーバがクライアントの通信先情報から記憶している乱数データを呼出す方法でも良く、特に制限はない。
通信部120は送信データを生成し、共通鍵暗号通信部150が、この送信データを、乱数データを共通鍵として暗号し、この乱数データで暗号化された送信データを、データ送信部110を通して、サーバに送信する。
共通鍵暗号通信部250は、この乱数データで暗号化された送信データを、データ受信部211を通して受信し、この乱数データで暗号化された送信データを、乱数データを共通鍵として復号する。通信部220はこの送信データを解釈する。
尚ここでは、クライアント1が先に送信データを送信しているが、これをサーバ2が先に送信データを送信することもできる。
図12は、本発明に係る秘匿通信方法の一例を示すフローチャートである。これは図10と、(10)乱数データを記憶するところまでは、同じである。この後、呼出した乱数データを利用して、サーバ認証、クライアント認証を行い、通常のSSL暗号通信を行うものである。
次に、クライアントは、通信を再開するため、SSLネゴシエーションを行う。この時、このSSL通信で用いる共通鍵暗号化方式が決定される。図8では、これをDESとして説明しているが、この共通鍵暗号化方式に制限はない。
また、ここで、サーバが該当する乱数データを呼出す方法は、クライアントがサーバに再度IDを指定する方法でも、サーバがクライアントの通信先情報から記憶している乱数データを呼出す方法でも良く、特に制限はない。また、乱数データの呼出しは、SSLネゴシエーションの前であっても良い。
このようにして、クライアント、サーバ共に乱数データを不揮発性メモリから呼出し、サーバは、(11)乱数データのハッシュ値を計算し、(12)この乱数データのハッシュ値を、クライアントに送信する。
クライアントでは、(13)この乱数データのハッシュ値を受信する。そして、(14)自らも、サーバと同様の方法で、乱数データに対してハッシュ計算を行い、乱数データのハッシュ値を取得する。(15)サーバから受け取った乱数データのハッシュ値と、自らが計算した乱数データのハッシュ値を比較する。これが一致すれば、サーバは、パスワードを保持するものと判断する。つまりサーバ認証を行う。
続いて、(16)乱数データを、SSL共通鍵で暗号化し、(17)このSSL共通鍵で暗号化された乱数データをサーバに送信する。
サーバでは、(18)このSSL共通鍵で暗号化された乱数データを受信する。そして、(19)このSSL共通鍵で暗号化された乱数データを、SSL共通鍵で復号し、(20)復号した乱数データと、先に取得した乱数データとを比較する。これが一致すれば、クライアントは、パスワードを保持するものと判断する。つまりクライアント認証を行う。
この後、(21)サーバはクライアントに対して、認証終了を通知する。そして、(22)クライアントはこの通知を受信する。
これ以降は、先にSSL通信で生成した共通鍵(以降SSL共通鍵と呼ぶ)で暗号通信を行う。
図13は、図12のブロック図である。従って、図11と、乱数データを記憶するところまでは、同じである。この後、呼出した乱数データを利用して、サーバ認証、クライアント認証を行い、通常のSSL暗号通信を行うものである。
次に、クライアント1は、通信を再開するため、SSLネゴシエーションを行う。
また、ここで、サーバ2が該当する乱数データの呼出す方法は、クライアント1がサーバ2に再度IDを指定する方法でも、サーバがクライアントの通信先情報から記憶している乱数データを呼出す方法でも良く、特に制限はない。また、乱数データの呼出しは、SSLネゴシエーションの前であっても良い。
次に、乱数記憶部281が乱数データを呼出す。次に、ハッシュ処理部260が、この乱数データのハッシュ値を計算して、この乱数データのハッシュ値を、データ送信部210を通して、クライアント1に送信する。ここで例え攻撃者が、この乱数データのハッシュ値を入手できたとしても、これを逆算できないので、乱数データを知ることはできない。従って、パスワードを逆算することもできない。
尚、ここで、ハッシュ化する方法としては、MD5やSHA1などを用いることができる。またここでは、ハッシュ値を暗号化していないが、より安全に通信を行うために、これをSSL共通鍵で暗号化するものとしても良い。その際は、クライアントで復号化が必要となる。
次に、サーバ認証部190は、この乱数データのハッシュ値を、データ受信部111を通して受信し、これと、自らがハッシュ処理部160を用いて行った、乱数データのハッシュ値との比較を行う。つまりサーバ認証を行う。これが一致すれば、サーバがパスワードを保持していることになる。もし、不一致であれば、サーバがにせものであることが判明する。尚、ユーザがパスワードを入力し間違った可能性もあるが、何度再入力しても結果が悪ければ、中間者攻撃を受けている可能性が高いことになる。
次に、サーバ認証部190で、認証が終了したら、これを受けて、共通鍵暗号通信部150が、乱数データを、SSL共通鍵で暗号化して、このSSL共通鍵で暗号化された乱数データを、サーバ2に送信する。
尚、ここでは、乱数データそのものをサーバ2に提示するために、SSL共通鍵で暗号化を行っているが、この乱数データに対して、サーバ認証で用いたハッシュ計算とは異なる、ハッシュ計算を行い、これを提示するものとすれば、暗号化を行う必要はない。またこの時点では、サーバ認証は終了しているので、正規クライアントは、SSL共通鍵で暗号化した乱数データをサーバ2に渡しても、通信の安全が脅かされることはない。
共通鍵暗号通信部250は、このSSL共通鍵で暗号化された乱数データを、データ受信部211を通して取得し、これを、SSL共通鍵を用いて復号化して、乱数データを取得する。
そして、クライアント認証部290は、先に呼出した乱数データと、今取得した乱数データとを比較する。これが一致すれば、クライアントがパスワードを保持していることになる。もし、不一致であれば、クライアントはにせものであることが判明する。
次に、クライアント認証部290は、この認証終了を、データ送信部210を通して、クライアント1に通知する。通信部120は、この認証終了を、データ受信部111を通して、受信し、クライアント認証が終了したことを知る。
但し、この認証終了通知は必ずしも必要ではない。
この認証終了通知を受けて、通信部120は、送信データを準備する。そして、共通鍵暗号通信部150は、この送信データを、SSL通信共通鍵で暗号化して、データ送信部110を通して、サーバ2に送信する。
共通暗号通信部250は、このSSL通信共通鍵で暗号化された送信データを、データ受信部211を通して受信し、このSSL通信共通鍵で暗号化された送信データを、SSL共通鍵で復号化し、これを通信部220に送る。
通信部220は送信データの解釈を行う。この後は、通常のSSL通信を行う。ここでは、クライアントからデータ送信を開始しているが、これをサーバからとすることもできる。
図14は、本発明に係る秘匿通信方法の一例を示すフローチャートである。ここでは、クライアント、サーバの相互認証によって、中間者攻撃を排除するだけでなく、サーバが自らの通信先情報をクライアントに送ることで、中間者を経由した通信をも排除するものである。
クライアント、サーバ間で通常のSSLネゴシエーションを行う。この時点で、クライアントには、サーバのSSL公開鍵が渡る。またこの時、このSSL通信で用いる共通鍵暗号化方式が決定される。図14では、これをDESとして説明しているが、この共通鍵暗号化方式に制限はない。
クライアントにおいては、(1)乱数データを生成し、(2)これをSSL公開鍵で暗号化する。ここで、乱数データのビット長は、オフライン攻撃を受けないために、暗号的に安全な程度に長いものが望ましい。そして、(3)そのSSL公開鍵で暗号化された乱数データを、パスワードを用いて、暗号化する。尚、パスワードのビット長は極端に短くなければ、中間者攻撃は困難であり、安全である。但し、暗号化の順番を変えると、中間者攻撃が可能となるので、正しく順番を守る必要がある。そして、(4)このパスワードとSSL公開鍵とで暗号化された乱数データを、サーバに送信する。
一方、サーバにおいては、(5)このパスワードとSSL公開鍵とで暗号化された乱数データを、クライアントから受信する。そして、(6)このパスワードとSSL公開鍵とで暗号化された乱数データを、まずパスワードを用いて復号化して、SSL公開鍵で暗号化された乱数データを取得する。ここで、サーバがどのようにしてクライアントのパスワードを特定したかを記述していないが、例えば、通常のパスワード認証のように、パスワードを指定するIDを、クライアントが送信することによって、特定したものとすることができる。他にも、パスワードをクライアントの通信先情報に関連づけて記憶しているとすることも可能である。
次に、(7)このSSL公開鍵で暗号化された乱数データを、サーバのSSL秘密鍵で復号化して、乱数データを取得する。もし、ここで攻撃者がサーバのふりをできたとしても、パスワードを知らないので、乱数データの復号はできない。また、暗号化された乱数データ以外に、他に手がかりもないので、オフライン攻撃も困難である。
次に、(8)この乱数データのハッシュ値を計算し、更に(9)サーバの通信先情報を、SSL共通鍵で暗号化する。ここで通信先情報としてはIPアドレスなどを利用すると良い。尚ここで、サーバの通信先情報を、SSL共通鍵で暗号化しているところを、乱数データで暗号化するとするのは望ましくない。このような決まりきったデータを乱数データで暗号化すると、オフライン攻撃が可能となる。またこれを暗号化しないというのも良くない。攻撃者が中間にいた場合、攻撃者はこれを自らの通信先情報に付け替えることができてしまう。但し、このような値が決まりきったデータを、SSL共通鍵で暗号するのも、SSL共通鍵を推測する手がかりを与えかねないので、望ましいとは言えない。そこで、新たな乱数データをかけてデータを拡散させ、その乱数データと拡散した通信先情報をSSL共通鍵で暗号化するような工夫を行うと良い。
尚、ここで、通信先情報を暗号化している理由は、内容を秘匿するためでなく、データを改ざんさせないためのものである。
そして、(10)この乱数データのハッシュ値とSSL共通鍵で暗号化されたサーバの通信先情報とを共に、クライアントに送信する。
クライアントでは、(11)この乱数データのハッシュ値とサーバの通信先情報を共に受信する。そして、(12)自らも、サーバと同様の方法で、乱数データに対してハッシュ計算を行う。(13)サーバから受け取った乱数データのハッシュ値と、自らが計算した乱数データのハッシュ値とを比較して、これが一致すれば、サーバは、パスワードを保持するものと判断する。つまりサーバ認証を行う。
同時に、(14)SSL共通鍵で暗号化されたサーバの通信先情報をSSL共通鍵で復号化し、(15)自らが通信しているサーバの通信先情報と、復号化した通信先情報とを比較し、中間者を経由することなく、通信を行っていることを確認する。
これにより、この後、通信を遮断、再開する場合に、通常のSSL通信だけで安全な通信を行うことが可能となる。但し、再開までの時間が長い場合は、その間に、攻撃者が正規サーバの通信先情報を変更している可能性があるので、注意を要する。インターネットバンキングのように、攻撃者が正規サーバにアクセスできない環境であれば、その心配はほとんどない。
続いて、クライアントは、(16)乱数データを、SSL共通鍵で暗号化し、(17)このSSL共通鍵で暗号化された乱数データをサーバに送信する。
サーバでは、(18)このSSL共通鍵で暗号化された乱数データを受信する。そして、(19)このSSL共通鍵で暗号化された乱数データを、SSL共通鍵で復号し、(20)復号した乱数データと、先に取得した乱数データとを比較する。これが一致すれば、クライアントは、パスワードを保持するものと判断する。つまりクライアント認証を行う。
この後、(21)サーバはクライアントに対して、認証終了を通知する。そして、(22)クライアントはこの通知を受信する。
これ以降は、SSL共通鍵で暗号通信を行う。尚、このように、クライアント、サーバ間で相互認証を行う場合は、この後に、サーバがクライアントに対して、通信先情報を知らせるとするのが、安全上、望ましい。
図15は、本発明に係る秘匿通信方法の一例を示すフローチャートである。ここでも、クライアント、サーバの相互認証によって、中間者攻撃を排除するだけでなく、サーバが自らの通信先情報をクライアントに送ることで、中間者を経由した通信をも排除するものである。図14との違いは、クライアントの方が、サーバに対して、自らの通信先情報を知らせているところである。尚、双方が、互いの通信先情報を知らせるとするのが、安全上は望ましい。
クライアント、サーバ間で通常のSSLネゴシエーションを行う。この時点で、クライアントには、サーバのSSL公開鍵が渡る。またこの時、このSSL暗号通信で用いる共通鍵暗号化方式が決定される。図15では、これをDESとして説明しているが、この共通鍵暗号化方式に制限はない。
クライアントにおいては、(1)乱数データを生成し、(2)これをSSL公開鍵で暗号化する。ここで、乱数データのビット長は、オフライン攻撃を受けないために、暗号的に安全な程度に長いものが望ましい。そして、(3)そのSSL公開鍵で暗号化された乱数データを、パスワードを用いて、暗号化する。尚、パスワードのビット長は極端に短くなければ、中間者攻撃は困難であり、安全である。但し、暗号化の順番を変えると、中間者攻撃が可能となるので、正しく順番を守る必要がある。そして、(4)このパスワードとSSL公開鍵とで暗号化された乱数データを、サーバに送信する。
一方、サーバにおいては、(5)このパスワードとSSL公開鍵とで暗号化された乱数データを、クライアントから受信する。そして、(6)このパスワードとSSL公開鍵とで暗号化された乱数データを、まずパスワードを用いて復号化して、SSL公開鍵で暗号化された乱数データを取得する。尚ここで、サーバがどのようにしてクライアントのパスワードを特定したかを記述していないが、例えば、通常のパスワード認証のように、パスワードを指定するIDを、クライアントが送信することによって、特定したものとすることができる。他にも、パスワードをクライアントの通信先情報に関連づけて記憶しているとすることも可能である。
次に、(7)このSSL公開鍵で暗号化された乱数データを、サーバのSSL秘密鍵で復号化して、乱数データを取得する。もし、ここで攻撃者がサーバのふりをできたとしても、パスワードを知らないので、乱数データの復号はできない。また、暗号化された乱数データ以外に、他に手がかりもないので、オフライン攻撃も困難である。
次に、(8)この乱数データのハッシュ値を計算し、(9)この乱数データのハッシュ値をクライアントに送信する。
クライアントでは、(10)この乱数データのハッシュ値を受信する。そして、(11)自らも、サーバと同様の方法で、乱数データに対してハッシュ計算を行う。(12)サーバから受け取った乱数データのハッシュ値と、自らが計算した乱数データのハッシュ値とを比較して、これが一致すれば、サーバは、パスワードを保持するものと判断する。つまりサーバ認証を行う。
続いて、(13)乱数データをSSL共通鍵で暗号化し、更に(14)クライアントの通信先情報を、SSL共通鍵で暗号化する。ここで通信先情報としてはIPアドレスなどを利用すると良い。尚、ここではクライアントの通信先情報を、SSL共通鍵で暗号化している部分を、乱数データで暗号化するのは望ましくない。このような決まりきったデータを乱数データで暗号化すると、オフライン攻撃が可能となる。またこれを暗号化しないというのも良くない。攻撃者が中間にいた場合、攻撃者はこれを自らの通信先情報に付け替えることができてしまう。
但し、このような値の決まりきったデータを、SSL共通鍵で暗号するのも、SSL共通鍵を推測する手がかりを与えかねないので、望ましいとは言えない。そこで、新たな乱数データをかけてデータを拡散させ、その乱数データと拡散した通信先情報をSSL共通鍵で暗号化するような工夫を行うと良い。
尚、ここで通信先情報を暗号化している理由は、内容を秘匿するためでなく、データを改ざんさせないためのものである。
続いて、クライアントは、(15)このSSL共通鍵で暗号化された乱数データと、同じくSSL共通鍵で暗号化されたクライアントの通信先情報とをサーバに送信する。
サーバでは、(16)このSSL共通鍵で暗号化された乱数データと、同じくSSL共通鍵で暗号化されたクライアントの通信先情報とを受信する。そして、(17)このSSL共通鍵で暗号化された乱数データを、SSL共通鍵で復号し、(18)復号した乱数データと、先に取得した乱数データとを比較して、これが一致すれば、クライアントは、パスワードを保持するものと判断する。つまりクライアント認証を行う。
乱数データの処理と同時に、(19)SSL共通鍵で暗号化されたクライアントの通信先情報をSSL共通鍵で復号化し、(20)自らが通信しているクライアントの通信先情報と、復号化した通信先情報とを比較し、中間者を経由することなく、通信を行っていることを確認する。
これにより、この後、通信を遮断、再開する場合に、通常のSSL通信だけで安全な通信を行うことが可能となる。但し、再開までの時間が長い場合は、その間に、攻撃者が正規クライアントの通信先情報を変更している可能性があるので、注意を要する。
その後、(21)サーバはクライアントに対して、認証終了を通知する。そして、(22)クライアントはこの通知を受信する。
これ以降は、先にSSL通信で生成した共通鍵(以降SSL共通鍵と呼ぶ)で暗号通信を行う。
本発明に係る秘匿通信は、暗号的に脆弱な、ビット長の短いパスワードを用いながら、SSLのような非対称の公開鍵暗号通信において、中間者を排除した安全な通信を、簡単かつ軽量に行える。特に、SSL機能を搭載した機器に対しては、実装を非常に簡単に行うことができて、有用である。
本発明に係る秘匿通信方法の一例を示すフローチャート 図1のブロック図 本発明に係る秘匿通信方法の一例を示すフローチャート 本発明に係る秘匿通信方法の一例を示すブロック図 本発明に係る秘匿通信方法の一例を示すブロック図 本発明に係る秘匿通信方法の一例を示すフローチャート 図6のブロック図 本発明に係る秘匿通信方法の一例を示すフローチャート 図8のブロック図 本発明に係る秘匿通信方法の一例を示すフローチャート 図10のブロック図 本発明に係る秘匿通信方法の一例を示すフローチャート 図12のブロック図 本発明に係る秘匿通信方法の一例を示すフローチャート 本発明に係る秘匿通信方法の一例を示すフローチャート
符号の説明
1 クライアント
2 サーバ
100 ネットワーク制御部(クライアント側)
110 データ送信部(クライアント側)
111 データ受信部(クライアント側)
120 通信部(クライアント側)
130 公開鍵暗号部(公開鍵暗号方式型暗号化手段)
140 パスワード暗号部(パスワード暗号化手段)
150 共通鍵暗号通信部(共通鍵暗号化手段、共通鍵暗号化手段1、共通鍵暗号化手段2)
160 ハッシュ処理部(逆計算困難型計算処理手段)
170 パスワード入力部
180 乱数生成部(乱数データ発生手段)
181 乱数記憶部(乱数データ記憶手段)
190 サーバ認証部
200 ネットワーク制御部(サーバ側)
210 データ送信部(サーバ側)
211 データ受信部(サーバ側)
220 通信部(サーバ側)
230 公開鍵復号部(公開鍵暗号方式型復号化手段)
240 パスワード復号部(パスワード復号化手段)
250 共通鍵暗号通信部(共通鍵暗号化手段、共通鍵暗号化手段1、共通鍵暗号化手段2)
260 ハッシュ処理部(逆計算困難型計算処理手段)
281 乱数記憶部(乱数データ記憶手段)
290 クライアント認証部

Claims (10)

  1. パスワードを共有しているクライアント、サーバ間での非対称な公開鍵暗号化方式の通信で、
    クライアントが、公開鍵を用いた公開鍵暗号化方式による暗号化手段である公開鍵暗号化方式型暗号化手段、及び、前記パスワードを利用した暗号化手段であるパスワード暗号化手段、及び、乱数データを生成、若しくは他の装置から取得する乱数データ発生手段とを有し、
    一方サーバが、前記公開鍵暗号化方式型暗号化手段によって暗号化されたデータを復号する、公開鍵暗号化方式型復号化手段、及び、前記パスワード暗号化手段によって暗号化されたデータを復号する、パスワード復号化手段を有するものであって、
    クライアントは、前記乱数データ発生手段を用いて、乱数データを発生させ、この前記乱数データの暗号化を、前記公開鍵暗号化方式型暗号化手段を用いて行い、更にこの前記公開鍵暗号化方式型暗号化手段を用いて暗号化された前記乱数データの暗号化を、前記パスワード暗号化手段を用いて行い、
    サーバは、前記公開鍵暗号化方式型暗号化手段と前記パスワード暗号化手段によって暗号化された前記乱数データの復号を、前記公開鍵暗号化方式型復号化手段と前記パスワード復号化手段を用いて行うものとし、
    クライアント、サーバ共に、共通鍵暗号・復号を行う、前記パスワード暗号化手段と等価、あるいはこれとは別の共通鍵暗号化手段を有し、前記乱数データの少なくとも一部から生成した共通鍵、若しくは、前記乱数データの少なくとも一部を元鍵として生成した共通鍵を、前記共通鍵暗号化手段に用いることよって、クライアント、サーバ間で暗号通信を行うことを特徴とする秘匿通信。
  2. 少なくとも、クライアントがサーバに対して、前記乱数データそのものや、前記公開鍵暗号化方式型暗号化手段と前記パスワード暗号化手段を用いて暗号化された先の前記乱数データとは異なる、前記乱数データの手がかりを与える別のデータや、前記パスワードそのものや、前記パスワードの手がかりを与えるデータを与える前までには、
    サーバが前記パスワードを保持するか否かの確認を、クライアントが行うことを特徴とする請求項1に記載の秘匿通信。
  3. クライアントが、任意の認証データを用意して、前記共通鍵暗号化手段1を用いて暗号化を行い、そしてこの暗号化された前記認証データを、サーバに送信し、サーバが、これを、前記共通鍵暗号化手段を用いて復号化を行うものであって、
    クライアント、サーバ共に、逆算が非常に困難な逆計算困難型計算処理手段を有し、
    サーバは、前記認証データの少なくとも一部を、前記逆計算困難型計算処理手段によってデータ加工を行い、クライアントに対してこのデータ加工された前記認証データを提示するものとし、
    クライアントは、前記認証データを、サーバと同じく、前記逆計算困難型計算処理手段によってデータ加工を行い、このデータ加工された前記認証データと、サーバから受け取ったデータ加工された前記認証データとを比較し、一致するか否かで、サーバが前記パスワードを保持するか否かの判定を行うことを特徴とする請求項2に記載の秘匿通信。
  4. サーバが前記パスワードを保持することの確認を、クライアントが行った後に、クライアントが前記パスワードを保持するか否かの確認を、サーバが行うことを特徴とする請求項2に記載の秘匿通信。
  5. クライアント、サーバ共に、共通鍵暗号・復号を行う、前記パスワード暗号化手段、若しくは前記共通鍵暗号化手段と等価、若しくはこれとは別の共通鍵暗号化手段2を有し、
    サーバとクライアントが、前記公開鍵暗号化方式型暗号化手段と前記公開鍵暗号化方式型復号化手段、若しくは前記パスワード暗号化手段と前記パスワード復号化手段、若しくは前記共通鍵暗号化手段、若しくはサーバからクライアントに対する、パスワードを利用した暗号通信を用いて交換した、前記乱数データとは別の交換データの少なくとも一部から生成した共通鍵、若しくは、前記交換データの少なくとも一部を元鍵として生成した共通鍵を、前記共通鍵暗号化手段に用いることよって、クライアント、サーバ間で暗号通信を行うことを特徴とする請求項4に記載の秘匿通信。
  6. パスワードを共有しているクライアント、サーバ間での非対称な公開鍵暗号化方式の通信で、
    クライアントが、公開鍵を用いた公開鍵暗号化方式による暗号化手段である公開鍵暗号化方式型暗号化手段、及び、前記パスワードを利用した暗号化手段であるパスワード暗号化手段、及び、乱数データを生成、若しくは他の装置から取得する乱数データ発生手段とを有し、
    一方サーバが、前記公開鍵暗号化方式型暗号化手段によって暗号化されたデータを復号する、公開鍵暗号化方式型復号化手段、及び、前記パスワード暗号化手段によって暗号化されたデータを復号する、パスワード復号化手段を有するものであって、
    クライアントは、前記乱数データ発生手段を用いて、乱数データを発生させ、この前記乱数データの暗号化を、前記公開鍵暗号化方式型暗号化手段を用いて行い、更にこの前記公開鍵暗号化方式型暗号化手段を用いて暗号化された前記乱数データの暗号化を、前記パスワード暗号化手段を用いて行い、
    サーバは、前記公開鍵暗号化方式型暗号化手段と前記パスワード暗号化手段によって暗号化された前記乱数データの復号を、前記公開鍵暗号化方式型復号化手段と前記パスワード復号化手段を用いて行うものとし、
    クライアント、サーバ共に、共通鍵暗号・復号を行う、前記パスワード暗号化手段と等価、あるいはこれとは別の共通鍵暗号化手段を有し、
    少なくともクライアントがサーバに対して、前記乱数データそのものや、前記公開鍵暗号化方式型暗号化手段と前記パスワード暗号化手段を用いて暗号化された先の前記乱数データとは異なる、前記乱数データの手がかりを与える別のデータや、前記パスワードそのものや前記パスワードの手がかりを与えるデータを与える前までには、サーバが前記パスワードを保持することの確認を、クライアントが行い、この後に、クライアントが前記パスワードを保持することの確認を、サーバが行い、
    サーバとクライアントが、前記公開鍵暗号化方式型暗号化手段と前記公開鍵暗号化方式型復号化手段、若しくは前記パスワード暗号化手段と前記パスワード復号化手段、若しくはサーバからクライアントに対する、パスワードを利用した暗号通信を用いて交換した、乱数データとは別の交換データの少なくとも一部から生成した共通鍵、若しくは、前記交換データの少なくとも一部を元鍵として生成した共通鍵を、前記共通鍵暗号化手段に用いることよって、クライアント、サーバ間で暗号通信を行うことを特徴とする秘匿通信。
  7. クライアント、サーバ共に、逆算が非常に困難な逆計算困難型計算処理手段を有し、
    サーバは、前記乱数データ、若しくは、前記乱数データと同様の方法で新たに取り交わした乱数データの少なくとも一部を、前記逆計算困難型計算処理手段によってデータ加工を行い、クライアントに対してこのデータ加工された前記乱数データを提示するものとし、
    クライアントは、前記乱数データを、サーバと同じく、前記逆計算困難型計算処理手段によってデータ加工を行い、このデータ加工された前記乱数データと、サーバから受け取ったデータ加工された前記乱数データとを比較し、一致するか否かで、サーバが前記パスワードを保持するか否かの判定を行うことを特徴とする請求項2、及び6に記載の秘匿通信。
  8. クライアント、サーバ共に、乱数データを記憶装置に記憶し、かつ記憶装置から記憶した乱数データを呼出す、乱数データ記憶手段を有し、
    クライアント、サーバ共に、乱数データを取得した後に、前記乱数データ記憶手段を用いて、乱数データを記憶装置に記憶し、
    クライアント、サーバ間での次回接続時に、クライアント、サーバ共に、前記乱数データ記憶手段を用いて、記憶装置から乱数データを呼出すことを特徴とする請求項1及び6に記載の秘匿通信。
  9. サーバが前記パスワードを保持することの確認を、クライアントが行う場合において、前記暗号通信を用いて、サーバが、自らの通信先情報をクライアントに対して知らせ、クライアントは自らが通信しているサーバの通信先情報と、受け取った通信先情報とから、クライアント、サーバ間に中間者が介在しないことを確認することを特徴とする請求項2、及び6に記載の秘匿通信。
  10. クライアントが前記パスワードを保持することの確認を、サーバが行う場合において、前記暗号通信を用いて、クライアントが、自らの通信先情報をサーバに対して知らせ、サーバは自らが通信しているサーバの通信先情報と、受け取った通信先情報とから、クライアント、サーバ間に中間者が介在しないことを確認することを特徴とする請求項4、及び6に記載の秘匿通信。
JP2008146402A 2008-06-04 2008-06-04 秘匿通信方法 Pending JP2009296190A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008146402A JP2009296190A (ja) 2008-06-04 2008-06-04 秘匿通信方法
US12/476,373 US8307208B2 (en) 2008-06-04 2009-06-02 Confidential communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008146402A JP2009296190A (ja) 2008-06-04 2008-06-04 秘匿通信方法

Publications (2)

Publication Number Publication Date
JP2009296190A true JP2009296190A (ja) 2009-12-17
JP2009296190A5 JP2009296190A5 (ja) 2011-07-14

Family

ID=41401379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008146402A Pending JP2009296190A (ja) 2008-06-04 2008-06-04 秘匿通信方法

Country Status (2)

Country Link
US (1) US8307208B2 (ja)
JP (1) JP2009296190A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012093921A (ja) * 2010-10-27 2012-05-17 Nec Engineering Ltd 情報漏洩防止ストレージシステム
JP2012235214A (ja) * 2011-04-28 2012-11-29 Panasonic Corp 暗号通信装置および暗号通信システム
JP2015130633A (ja) * 2014-01-08 2015-07-16 パナソニックIpマネジメント株式会社 認証システム
JP2015231177A (ja) * 2014-06-06 2015-12-21 日本電信電話株式会社 装置認証方法、装置認証システム及び装置認証プログラム

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9106628B2 (en) * 2009-07-07 2015-08-11 Alcatel Lucent Efficient key management system and method
JP5225412B2 (ja) * 2011-03-03 2013-07-03 株式会社東芝 通信装置および通信方法
KR20130024996A (ko) * 2011-08-24 2013-03-11 한국전자통신연구원 멀티캐스트 환경에서 싱글 버퍼 해시를 이용한 소스 인증 방법 및 장치
US8819428B2 (en) * 2011-10-21 2014-08-26 Ebay Inc. Point of sale (POS) personal identification number (PIN) security
JP6008316B2 (ja) 2012-08-24 2016-10-19 パナソニックIpマネジメント株式会社 秘密分散装置および秘密分散プログラム
US9171163B2 (en) 2013-03-15 2015-10-27 Intel Corporation Mutually assured data sharing between distrusting parties in a network environment
RU2530228C1 (ru) * 2013-05-21 2014-10-10 Федеральное государственное казенное учреждение "27 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации Устройство технической защиты передаваемой информации
US8745394B1 (en) 2013-08-22 2014-06-03 Citibank, N.A. Methods and systems for secure electronic communication
JP6187251B2 (ja) * 2013-12-27 2017-08-30 富士通株式会社 データ通信方法、およびデータ通信装置
CN104092540B (zh) * 2014-06-25 2017-10-31 安徽云盾信息技术有限公司 一种可靠的芯片内部时钟的同步方法
CN104092551B (zh) * 2014-07-24 2017-04-12 福建升腾资讯有限公司 一种基于rsa算法的安全密钥传输方法
US9774591B2 (en) * 2014-10-15 2017-09-26 Airbnb, Inc. Password manipulation for secure account creation and verification through third-party servers
US9930067B1 (en) * 2014-12-18 2018-03-27 Amazon Technologies, Inc. Techniques for secure session reestablishment
AU2016309943A1 (en) * 2015-08-14 2018-04-12 Identitii Pty Ltd A computer implemented method for processing a financial transaction and a system therefor
TWI554908B (zh) * 2015-11-03 2016-10-21 澧達科技股份有限公司 資料加密系統
CN107294937B (zh) * 2016-04-11 2020-11-24 平安科技(深圳)有限公司 基于网络通信的数据传输方法、客户端及服务器
US10616192B2 (en) 2017-06-12 2020-04-07 Daniel Maurice Lerner Devices that utilize random tokens which direct dynamic random access
WO2018231753A1 (en) * 2017-06-12 2018-12-20 Daniel Maurice Lerner Devices that utilize random tokens which direct dynamic random access
US11153077B2 (en) * 2018-12-14 2021-10-19 Westinghouse Air Brake Technologies Corporation Secure vehicle to vehicle communication
US10903997B2 (en) 2017-10-19 2021-01-26 Autnhive Corporation Generating keys using controlled corruption in computer networks
US11329817B2 (en) 2017-10-19 2022-05-10 Devi Selva Kumar Vijayanarayanan Protecting data using controlled corruption in computer networks
CA3079371A1 (en) 2017-10-19 2019-04-25 Autnhive Corporation System and method for generating and depositing keys for multi-point authentication
US10693849B2 (en) * 2017-11-15 2020-06-23 International Business Machines Corporation Sending message in multilayer system
US10990691B2 (en) * 2018-05-11 2021-04-27 Arris Enterprises Llc Secure deferred file decryption
US11611430B2 (en) * 2019-04-15 2023-03-21 Axell Corporation Arithmetic apparatus, arithmetic system and arithmetic method
CN111865877B (zh) * 2019-04-29 2023-03-24 深信服科技股份有限公司 一种上网行为控制方法、系统及电子设备和存储介质
CN111490876B (zh) * 2020-04-03 2021-12-28 北京达龙上东文化艺术传播有限责任公司 一种基于usb key的通信方法和usb key
CN111818106B (zh) * 2020-09-14 2020-12-11 飞天诚信科技股份有限公司 一种数据传输的方法及设备
CN114157419B (zh) * 2021-11-29 2023-08-08 军事科学院系统工程研究院网络信息研究所 一种基于ospf的安全路由协议方法和系统
CN119156799A (zh) * 2022-05-31 2024-12-17 华为技术有限公司 通信方法及相关装置
CN115314223B (zh) * 2022-08-08 2025-03-21 江苏亨通问天量子信息研究院有限公司 一种量子随机数应用方法及应用系统
TW202420776A (zh) * 2022-10-14 2024-05-16 愛沙尼亞商加爾默科技有限公司 客戶端-伺服器系統、非暫時性電腦可讀取儲存媒體、安全地操控密碼散列之方法以及確保於客戶端中恢復使用者提供密碼僅經由認證伺服器之方法
US20250370767A1 (en) * 2024-05-31 2025-12-04 Dell Products L.P. Managing out-of-box experience (oobe) configuration at a client information handling system
US20250392444A1 (en) * 2024-06-21 2025-12-25 International Business Machines Corporation Instruction to accelerate cryptographic processing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02134940A (ja) * 1988-11-16 1990-05-23 Secom Co Ltd データ暗号化アダプタ装置、データ復号化アダプタ装置、およびこれらを用いたデータ通信システム
JPH06169306A (ja) * 1991-10-02 1994-06-14 American Teleph & Telegr Co <Att> 安全な通信のためのプロトコルおよび装置
JP2008099058A (ja) * 2006-10-13 2008-04-24 Murata Mach Ltd ネットワークシステム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4759063A (en) 1983-08-22 1988-07-19 Chaum David L Blind signature systems
US6542610B2 (en) * 1997-01-30 2003-04-01 Intel Corporation Content protection for digital transmission systems
JP2004040717A (ja) 2002-07-08 2004-02-05 Matsushita Electric Ind Co Ltd 機器認証システム
JP4584545B2 (ja) 2003-04-16 2010-11-24 日本電信電話株式会社 可変識別子送信装置および可変識別子送信プログラム
EP1669877B1 (en) 2003-09-26 2017-11-15 Nippon Telegraph And Telephone Corporation Tag privacy protecting method, tag device, backend device, updating device, update requesting device, programs for these devices, and recording medium storing these programs
KR101099880B1 (ko) 2003-12-18 2011-12-28 파나소닉 주식회사 애플리케이션 프로그램을 인증 및 실행하는 방법
CN101668167A (zh) 2003-12-18 2010-03-10 松下电器产业株式会社 用于存储、认证以及执行应用程序的方法
CN1713570A (zh) 2004-06-14 2005-12-28 松下电器产业株式会社 先授权后认证的服务方法及其装置
KR20120002625A (ko) 2004-07-14 2012-01-06 파나소닉 주식회사 애플리케이션 프로그램 인증 및 실행 방법
JP2007029378A (ja) 2005-07-26 2007-02-08 Baba Kagu:Kk フットレスト及びそのフットレストを備えるフットレスト付ソファ
JP2007233960A (ja) 2006-03-03 2007-09-13 Matsushita Electric Ind Co Ltd 認証処理装置および認証処理方法
EP2000939B1 (en) 2006-03-29 2013-04-17 The Bank of Tokyo-Mitsubishi UFJ, Ltd. Person oneself authenticating system and person oneself authenticating method
JP2008181178A (ja) 2007-01-23 2008-08-07 Matsushita Electric Ind Co Ltd ネットワーク出力システム、認証情報登録方法、および認証情報登録プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02134940A (ja) * 1988-11-16 1990-05-23 Secom Co Ltd データ暗号化アダプタ装置、データ復号化アダプタ装置、およびこれらを用いたデータ通信システム
JPH06169306A (ja) * 1991-10-02 1994-06-14 American Teleph & Telegr Co <Att> 安全な通信のためのプロトコルおよび装置
JP2008099058A (ja) * 2006-10-13 2008-04-24 Murata Mach Ltd ネットワークシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012093921A (ja) * 2010-10-27 2012-05-17 Nec Engineering Ltd 情報漏洩防止ストレージシステム
JP2012235214A (ja) * 2011-04-28 2012-11-29 Panasonic Corp 暗号通信装置および暗号通信システム
US8577039B2 (en) 2011-04-28 2013-11-05 Panasonic Corporation Cryptographic communication apparatus and cryptographic communication system
JP2015130633A (ja) * 2014-01-08 2015-07-16 パナソニックIpマネジメント株式会社 認証システム
JP2015231177A (ja) * 2014-06-06 2015-12-21 日本電信電話株式会社 装置認証方法、装置認証システム及び装置認証プログラム

Also Published As

Publication number Publication date
US8307208B2 (en) 2012-11-06
US20090307495A1 (en) 2009-12-10

Similar Documents

Publication Publication Date Title
JP2009296190A (ja) 秘匿通信方法
CN100388244C (zh) 远程更改通讯密码的方法和系统
US20220385644A1 (en) Sharing encrypted items with participants verification
KR100811419B1 (ko) 공개키 암호화를 이용하는 인증 프로토콜에서의서비스거부공격에 대한 방어 방법
US7930542B2 (en) MashSSL: a novel multi party authentication and key exchange mechanism based on SSL
CN109347835A (zh) 信息传输方法、客户端、服务器以及计算机可读存储介质
US8737617B2 (en) Encryption apparatus, decryption apparatus, encryption method, decryption method, and encryption/decryption system
JP2011125020A (ja) 非証明書公開キーインフラストラクチャーに基づく、安全なクライアント・サーバー間の通信を設計するシステムおよび方法
CN110020524B (zh) 一种基于智能卡的双向认证方法
CN112312393A (zh) 5g应用接入认证方法及5g应用接入认证网络架构
CN101860546A (zh) 一种改进ssl握手协议的方法
CN115766119B (zh) 通信方法、装置、通信系统及存储介质
KR100860573B1 (ko) 사용자 인증 방법
Chen et al. An efficient nonce-based authentication scheme with key agreement
CN103986716B (zh) Ssl连接的建立方法以及基于ssl连接的通信方法及装置
Castiglione et al. An efficient and transparent one-time authentication protocol with non-interactive key scheduling and update
KR20080005344A (ko) 인증서버가 사용자단말기를 인증하는 시스템
CN119402183A (zh) 单包认证方法、电子设备和存储介质
KR101014849B1 (ko) 제 3의 신뢰기관의 도움 없이 공개키에 대한 상호 인증 및키 교환 방법 및 그 장치
Kuegler et al. Password authenticated connection establishment with the internet key exchange protocol version 2 (ikev2)
CA3166510C (en) Sharing encrypted items with participants verification
Anitha et al. Analysis of quantum safe wireguard protocol for securing internet of things
Rani et al. A Study of XMPP Chat Servers: Improving Security with Cryptography
WO2025112759A1 (zh) 一种口令检测方法、服务端、用户端以及口令检测系统
Bhola et al. Dynamic password authentication protocol using android device and one-way function

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110530

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110530

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20121213

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130409