暗号とは、文書などのデータをある一定のルールで変換して、簡単には内容を理解できないようにしたもの。
元の文書やデータを平文、変換後のデータを暗号文といい、平文を暗号文にすることを暗号化、暗号文を平文にすることを復号化という。
暗号化に使うために付加するデータを鍵と呼ぶ。
【 公開鍵暗号方式 】
公開鍵暗号方式では暗号化に使う鍵と復号に使う鍵が分離されており、暗号化に使った鍵で復号化を行なうことはできず、片方からもう一方を割り出すことも容易にはできないようになっている。鍵の持ち主(受信者)は復号化に使う鍵のみを他人に知られないように管理し、暗号化に使う鍵は公開する。このため、暗号化に使う鍵は公開鍵、復号化に使う鍵は秘密鍵と呼ばれる。公開鍵暗号方式では、暗号化と復号化で別の鍵を使う。
公開鍵暗号方式ではデータの暗号化方式として RSA ( Rivest Shamir Adleman ) が利用される。RSA は、因数分解の計算時間がかかることを利用している。
【 共通鍵暗号方式 】
暗号化と復号化に同じ鍵を使用する方式。送信側と受信側に同じ鍵を使用するので、鍵の管理が大変になる。
データの暗号化方式としてDES ( Data Encryption Standard ) ,3DES, IDEA,CASTがある。
【 ブロック暗号利用モード 】
ブロック暗号とは、長文の平文を一定の長さのブロックに分け、そのブロックごとに暗号化処理を行います(DES は 64bit 毎、AES は 128bit 毎 )。このサイクルを繰り返す方法がいくつかあり、それを 暗号モード といいます。
しかし、ある平文のブロックを同じキーおよびアルゴリズムで暗号化した場合、同じ暗号文が返されることになるので、これを利用して暗号を解読することができます。そのため、前のブロックの暗号化の結果に基づいて次のブロックに対する暗号化処理を変えていく暗号モードが導入されました。
【 鍵管理 】
暗号化したデータを安全に保つためには、唯一の秘密情報である鍵を安全に保つことが非常に重要であり、また、この鍵がなければ一度暗号化したデータを復号化することもできません。
そのための鍵管理が重要です。鍵の管理手順を設定し、それに基づき鍵を適切に管理しなければなりません。
鍵の管理手順を設定するときは、まず、鍵の使用方法や強度、適用可能な期間などのポリシーを設定します。
【 AES 】(Advanced Encryption Standard)
AESは、アメリカ合衆国の新暗号規格 (Advanced Encryption Standard) として規格化された共通鍵暗号方式である。
AESは、ブロック長として128bit、鍵長として128、192、256bitが利用可能な共通鍵ブロック暗号方式
【 RSA 】(Rivest Shamir Adleman)
RSA暗号とは、公開鍵暗号方式の一つ
大きな数を素因数分解するのは、非常に時間がかかることを利用しているのがRSA暗号である。
【 CRYPTREC暗号リスト 】(電子政府推奨暗号リスト)
暗号化アルゴリズムは今までに多数考えられ、過去には安全と思われていたアルゴリズムでも、現在では解読のリスクがあるものも少なくありません。そのため安全に使える暗号化アルゴリズムをリストにして利用してもらうために、「CRYPTREC暗号リスト」が作成されました。
CRYPTREC暗号リストとはCRYPTRECが選定した推奨暗号化リストのことです。CRYPTRECは「Cryptography Research and Evaluation Committees」の略であり、暗号化技術の安全性の評価と監視を行い、暗号技術の適切な実装と運用方法の調査と検討を行うプロジェクトのことです。
CRYPTREC暗号リストは、以下の3つから構成されています。
【 ストレージ暗号化 】
ストレージ(補助記憶装置)全体を暗号化することで内部のデータを保護するセキュリティ対策です。正規のユーザーがストレージにアクセスした際は、データは復号された状態で表示されます。
PC本体の盗難やストレージのみの盗難などに対応する処置です。
名前 | 説明 |
---|---|
DES | Data Encryption Standard の略。1970年代にアメリカ標準として採用された共通鍵暗号です。64bit の長さの鍵 (そのうちの 8bit はパリティなので鍵長は実質 56bit) を使って 64 bit ずつ平文を暗号化するブロック暗号です。国際的に広く普及し、使われていました。しかし、現在では技術進歩によりその安全性が低下してきているため新規で使われることはありません。 |
3DES | 鍵を 3 つ (もしくは 2 つ) 用意して、平文に対して DES で暗号化 ➜ DES で復号化 ➜ DES で暗号化、という手順で暗号化します。DES の鍵長が実質 56bit と短いため、その鍵空間を拡張させるために生まれた手法ですが、DES を繰り返し施すため処理速度は遅くなります。察しはついてると思いますが DES を 3 回施すので 3DES と呼ばれます。 |
AES | Advanced Encryption Standard の略。世界では長い間 DES が使われてきましたが、時代は進み、コンピューターの性能が上がってきたことで DES の安全性が低下してきました。そこで 1997 年から DES の後継となる次世代のアルゴリズムが公募されることになりました。世界中から様々なアルゴリズムが応募されましたが 2000 年に入り、その中の 1 つ Rijndael (ラインダール) というアルゴリズムが AES として採択されることになりました。DES と同じく共通鍵方式でブロック暗号ですが、鍵長が 128bit / 192bit / 256bit から選択でき、また平文は 128bit ずつ暗号化されます。 |
DH | このアルゴリズムの開発者 2 人の頭文字 Diffie-Hellman を取って DH と呼ばれます。この 2 人は公開鍵暗号の概念を初めて公開した人たちで、DH 暗号はその具体的な方法の 1 つとして提案されたものです。つまり公開鍵暗号の一種で、離散対数問題という問題を解くのが困難であるという事実を安全性の根拠としています。2 種類の公開値と (これらを DH パラメータと呼んだりします)、その公開値を元に送信者/受信者がそれぞれ生成した秘密値から同じ共通鍵を生成して、以後それを共通鍵暗号の鍵として利用します。 一時的で短命な公開値をサーバー側で動的に生成してそれを利用することもあり、その場合は DHE (Ephemeral の E) と略記されます。また、オリジナルの DH について楕円曲線暗号を使うようにした ECDH (Elliptic Curve) という亜種もあります。さらに ECDH においても一時的で短命な公開値を使う場合は ECDHE (同じく Ephemeral の E) と略記されます。 |
RSA | このアルゴリズムの開発者 3 人の頭文字 Rivest-Shamir-Adleman を取って RSA と呼ばれます。おそらく最も有名な公開鍵暗号で、巨大な合成数の素因数分解が困難であるという事実を安全性の根拠としています。公開鍵で暗号化して、秘密鍵で復号化するというやつですね。 |
【 チャレンジレスポンス認証 (CHAP) 】
CHAP は Point-to-Point Protocol (PPP) が、リモートクライアントの正当性を確認するための認証方法として使用される。CHAP は3ウェイ・ハンドシェークによって、定期的にクライアントの正当性を確認する。これは、最初のデータ通信リンクを確立するときに行われ、その後はいつでも行われる可能性がある。この確認は、共有秘密 (例えばクライアントユーザのパスワード) に基づいている。
CHAP は、増加していく識別子と、可変の "チャレンジ" 値を用いることにより、相手からの反射攻撃に対する防御を提供する。 CHAP は、クライアントとサーバが秘密鍵の平文を知っていることを必要とするが、これがネットワークに対して送られることはない。
※ 反射攻撃とは、パスワードや暗号鍵などを盗聴し、そのまま再利用することでそのユーザになりすます方法。パスワードが暗号化されていたとしても、暗号化された後のデータを記録して使うので、受け取った方では「正しいパスワードを正しく暗号化している」と判断してしまう。パスワードを復号する必要がないので、強力な暗号化システムでもこの攻撃を防ぐことは困難とされている。これを防ぐために考案されたのが、毎回パスワードを変化させるという「ワンタイムパスワード」方式である。
【 ディジタル署名 】
ディジタル署名とは、ディジタル文書の正当性を保証するために付けられる暗号化した署名情報のことを指す。公開鍵暗号方式を応用したもので、送信者が自分の秘密鍵で暗号化(デジタル署名)、受信者は送信者の公開鍵を使って復号化し、正しく復号できれば本来の送信者の送ったものとして確認できる。
公開鍵暗号方式では、暗号化と復号化で別の「鍵」を使う。公開鍵は、誰でも閲覧可能な「鍵」であるが、秘密鍵は、本人しか知らない「鍵」である。
公開鍵で暗号化したものは秘密鍵でないと復号化できない。また、 秘密鍵で暗号化したものは公開鍵でないと復号化できない。
公開鍵の正当性を認証局の第三者機関が証明することで、デジタル署名の信頼性を確保している。
【 メッセージダイジェスト 】
元のメッセージから任意の長さのメッセージを演算処理して特徴的なパターンを生成し、データ通信のメッセージが正しいことを証明する技術。インターネットの標準技術であるMD5(Message Digest Algorithm 5)では、一方向ハッシュ関数を使った演算により、元のデータの長さに関係なく128ビットのデータを生成する。メッセージダイジェストは電子署名の基礎技術であり、電子署名ではダイジェストデータをさらに暗号化する。
暗号化のために、ハッシュ関数を使ってメッセージ・データを圧縮して生成したデータ。元のメッセージ・データが異なると生成されるメッセージ・ダイジェストは異なり、またメッセージ・ダイジェストから元のメッセージを再構成できないため、改ざんが検出できる。単にダイジェストと呼ぶこともある。
メッセージダイジェストとは
メッセージダイジェストを利用して、メッセージ認証を行う。
名前 | 説明 |
---|---|
MD5 | Message Digest の略。RSA 暗号の開発者のうちの 1 人によって開発されましたが、近年の技術の進歩で強衝突耐性が突破されているため、新規には SHA の使用が推奨されます。ハッシュ値の長さは 128 bit。32 桁の 16 進数で表されます。 MD5は,数十分程度の計算で,h(m)=h(n)となるメッセージm,nを生成可能 ⇒ 強衝突耐性は破られている。弱衝突耐性は破られていない。 |
SHA-1 | Secure Hash Algorithm の略。MD5 を元に設計され、2の64乗bit以下の原文から 160 bitの「ハッシュ値」を生成。40 桁の 16 進数で表されます。理論的な脆弱性が指摘されているため SHA-2 へ移行することが推奨されています。近年、証明書の署名に使われるハッシュ関数が SHA-1 から SHA-2 に移行されようとしていることからもわかります。SHA-1も強衝突耐性は破られている。 |
SHA-2 | SHA-1 をより安全になるように改良したもの。最長で2の64乗 bitまでの原文から、256 bitの ハッシュ値を算出することができます。SHA-2 の中には SHA-224、SHA-256、SHA-384、HA-512、SHA-512 / 224、SHA-512 / 256 という 6 種類のバリエーションが存在しておりそれぞれハッシュ値の長さが違います。 |
SHA-3 | SHA-1 及び SHA-2 は同じ構造をしており、かつ SHA-1 への理論的な脆弱性が指摘されるなどしたため、SHA-2 の後継となるような、かつハッシュ関数の構造が異なる次世代のアルゴリズムが公募されることになりました。(AES 暗号の時と同じ組織が公募しています。) 世界中から様々なアルゴリズムが応募されましたが、その中から Keccak (ケチャック?) と呼ばれるアルゴリズムが SHA-3 として採択されました。 |
【 弱衝突耐性 】
弱衝突耐性とは、あるハッシュ値から、それと同じハッシュ値が生成されるメッセージを見つけることが困難であること
与えられたh(m)から,h(m)=h(n)を満たすメッセージnを求めることができない。
【 強衝突耐性 】
強衝突耐性とは、同じハッシュ値を生成することができる異なる 2 種類のメッセージを見つけることが困難であること
m≠n かつ h(m)=h(n) を満たすメッセージ m,n を求めることができない。
【 メッセージ認証符号 】(MAC : Message Authentication Code)
メッセージ認証符号には、データの改ざん検出、通信相手の認証、この2つの機能がある。本体データにMAC情報を付加することにより、通信中の危険性をより多く排除することができ、通信はより一層安全なものとなる。
MACはデータ送信時に生成する。その意味としては送信データを要約したような情報と考えればよい。送信者は送信データにMACを付与してデータを送出する。次に、そのデータを受信した者は、まず自分が受信したデータに対して送信者と同じ手順で独自のMACを生成する。その独自のMACと、送信者が付与したMACを比較して、両者が一致すれば通信中の改ざんはなかったと判断できる、という原理である。
MACアルゴリズムは、入力として共通鍵と認証すべき任意長のメッセージを受け取り、MAC(「タグ」とも呼ばれる)を出力する。MAC値は、共通鍵を持つ検証者がメッセージの内容の変化を検出できるようにして、メッセージの完全性とその認証を保護する。このため、メッセージ認証完全性符号(Message Authentication and Integrity Code, MAIC)とも呼ばれる。
MACはデジタル署名とは異なり、MAC値の生成と検証は同じ鍵が使われるため(共通鍵暗号)、送信者と受信者は通信を行う前に鍵を共有しておく必要がある。
また、共通鍵暗号であるために、MACにより認証されるメッセージは、偽造ではなく送信者が作成し送信したという確証(否認不可性)を持たない。なぜなら、MAC値を検証するユーザー(メッセージの受信側)は、通信の相手から受け取ったメッセージではなく、受信側で捏造したメッセージについても共通鍵を使ってMAC値を生成することができるからである。
【 時刻認証 】(タイムスタンプサービス)
時刻認証とは、従来のPKI認証に正確な「時刻」を付加して、より認証精度を高める仕組み。
確定時刻に電子データが存在していたことを証明する機能(存在証明)と、確定時刻以降に電子データが不正に改ざんされていないことを証明する機能(完全性証明)がある。
インターネットを介した電子的やりとりにおいて、電子データの改ざんや、なりすましが簡単であることから生じる不安を解消する技術として注目されている。
正確な時刻を取得する方法として、GPS衛星からの情報を利用するものと、国際機関からの時刻認証を受けて正確な時刻を認証する方法とがある。
【 XML署名 】
XML 文書に対する改ざん、なりすましを防ぐための電子署名をXML(extensible markup language)文書に署名するためのフォーマットを規定したセキュリティ技術。
XML署名には、Enveloped署名・Enveloping署名・Detached署名の三つがある。
【 利用者IDとパスワード 】
利用者IDとパスワードは、対になって用いられ、コンピュータ内で記憶しているその利用者IDとパスワードと、操作者が入力した利用者IDとパスワードとが一致していることで、操作者をそのユーザIDの正規の持主であると確認する。
【 パスワードリマインダ 】
利用者がパスワードを忘れてしまった場合、あらかじめ利用者が事前に設定しておいた特定の質問に答えることにより、本人確認ができ、利用者自身でパスワードを修正することができる機能
【 2要素認証 】(2FA : 2 Factor Authentication)
利用者の本人確認などの認証において、二つの異なる認証方法を組み合わせることによりセキュリティを高める方法。
利用者が登録したパスワードとワンタイムパスワード、バイオメトリクス認証とパスワードなどを組み合わせて使う。
パスワード認証など本人しか知り得ない情報を用いる「WYK」(What You Know)型の認証方式と本人が所持している持ち物を利用する「WYH」(What You Have)型の認証方式(同じ原理の方式として乱数表などのカードを利用する手法、USBトークンやハードウェアトークンなどの装置を用いる手法がある)を組みあわせて二要素認証(二段階認証)を構成することが多い。
いずれか一つが盗まれたり偽造されるなどして攻撃者に突破されても、もう一方も同時に突破しなければ本人になりすますことはできず、セキュリティを高めることができる。
【 多段階認証 】
利用者の認証を行う際に、複数回続けて異なる認証方法を使い、それぞれにパスしたときのみ確かに本人であると確認される認証方法。
【 SMS認証 】
利用者認証の方式の一つで、携帯電話やスマートフォンのショートメッセージサービス(SMS)で認証コードを送り、これをその場ですぐに入力させることで本人確認を行う認証方式。
【 ソルト 】
ソルト(salt)とは、パスワードを暗号化する際に付与されるデータのこと。
通常、パスワードを保存する際には、何らかの「非可逆処理」を行うことが多い。例えば、ハッシュ関数と呼ばれる一定の関数により算出されたハッシュ値などが代表的なもので、ハッシュ値から入力値(平文のパスワード)を再現することはできない。
しかし、予め任意の文字列をハッシュ値に変換しておき、標的のパスワードのハッシュ値と比較することでパスワードを推察する「レインボー攻撃」というパスワード破りの手法がある。こうした攻撃に対し、ソルトをパスワードに付与してから非可逆処理を行うと、同じパスワードであっても、算出されるハッシュ値は違ったものになり、パスワードを解析されにくくする効果が期待できる。
【 コールバック 】
ダイアルアップ接続において社外から社内のネットワークに接続する際に、一旦接続を切断し、社内のネットワークにある認証サーバー側から登録されている電話番号へ掛けなおし、ネットワークに接続できるようにする。
【 ICカード 】
情報(データ)の記録や演算をするために集積回路(IC)を組み込んだカードの事である。国際的にはスマートカード (smart card)やチップカード (chip card) とも呼ばれ、日本では特に演算処理機能を持つものをスマートカードと呼ぶ。
そのカードを持つものを本人とすることで、認証に利用できる。
【 PINコード 】
PINコードとは、Personal Identity Number(個人識別番号)のこと。パスワードと同じ意味。
パスワードとの違いは、PINコードは端末上に格納されているので、PINコードを盗まれても、その端末がないとログインできない。つまり、PINコードと端末の2つが揃わないと使えない。
【 ワンタイムパスワード 】
認証するたびごとに、パスワードを作成し、そのパスワードを使って認証する。一度使ったパスワードは、捨てて、再度認証するときは新たなパスワードを作成し使用する。
【 CAPTCHA 】(Completely Automated Public Turing Test To Tell Computers and Humans Apart)
コメントスパム・自動解析などを防止するために、人間には判断できるが計算機には判断できないものを使って認証を行なうという方法。
文字を歪ませた画像をユーザに提示し、そこに書かれた文字列を入力させることで、相手が人間であるということを確認する手法が一般的。
身体的な特徴を利用して、本人認証を行う。バイオメトリクス認証ともいう。
【 PKI 】
PKI ( Public Key Infrastructure :公開鍵基盤)とは、公開鍵暗号方式を利用して、安全な通信ができるような環境を提供している。
公開鍵の正当性を認証局 CA ( Cerification Authority )が証明することでデータの安全性を保証する仕組み。
公開鍵の持ち主を証明するために認証局が発行する証明書をディジタル証明書という。
【 ルート証明書 】
デジタル証明書を発行する認証局が、その正当性を証明するために自ら署名して発行するデジタル証明書。
PKIの認証局が自分自身を証明するために作る証明書。通常、自分で自分の証明書に電子署名することになる(自己署名証明書)。
【 GPKI 】
GPKI ( Goverment Public key Infrastructure :政府認証基盤)とは、政府の各省庁が運営する認証局で構成されている公開鍵基盤。
政府認証基盤は行政機関側の認証局であるブリッジ認証局(BCA:Bridge Certification Autority)及び府省認証局等から構成される。
行政側の認証基盤として各省庁が運営する府省認証局とそれらをつなぐ総務省のブリッジ認証局が、民間側の認証基盤として商業登記認証局や民間認証局があり、これらがブリッジ認証局を通じて相互に認証することにより、申請書などに付加されるデジタル署名の有効性を担保する。外国政府の認証局や地方自治体の運営する認証局とも必要に応じて相互認証が行なわれる。
【 BCA 】(Bridge Certification Authority:ブリッジ認証局)
政府共用認証局と民間認証局等との間の信頼関係(「相互認証」といいます。)を仲介する認証局です。
GPKIのブリッジ認証局は、民間認証局等が発行する利用者の公開鍵証明書の有効性検証機能を各府省に対して提供することにより、政府認証基盤全体の効率的な構築・運用を可能なものとしています。
【 CRL 】(Certificate Revocation List:証明書失効リスト)
失効したデジタル証明書のリスト。認証局(CA)や検証局(VA)が管理する。
さまざまな理由により有効期間内に無効(取消された)となった公開鍵証明書のシリアル番号の一覧。証明書を発行した認証機関である認証局(CA)や検証局(VA)が管理を行い、失効した証明書シリアル番号、失効理由、CRLの発行者、発行日時 などを付加し、電子署名を付与する。 このことにより、CRLの情報が信頼できることとなる。
【 SSL 】
インターネット上で情報を暗号化して送受信するプロトコル。現在インターネットで広く使われているWWWやFTPなどのデータを暗号化し、プライバシーに関わる情報やクレジットカード番号、企業秘密などを安全に送受信することができる。
SSLは公開鍵暗号や秘密鍵暗号、デジタル証明書、ハッシュ関数などのセキュリティ技術を組み合わせ、データの盗聴や改ざん、なりすましを防ぐことができる。OSI参照モデルではセッション層(第5層)とトランスポート層(第4層)の境界で動作し、HTTPやFTPなどの上位のプロトコルを利用するアプリケーションソフトからは、特に意識することなく透過的に利用することができる。SSL 3.0をもとに若干の改良が加えられたTLS 1.0がRFC 2246としてIETFで標準化されている。
IE(Internet Explorer)やFirefoxなどのSSL/TLSに対応したWebブラウザを利用して、SSL/TLSで保護されたサイトに接続すると、そのサイトのWebサーバーはサーバー証明書をWebブラウザに送ります。Webブラウザは、このサーバー証明書に付された認証局の署名が真正なものであることを、事前に安全に入手していた認証局のルート証明書を用いて検証します。検証ができたら、WebブラウザはWebサーバーと暗号化通信のための鍵を交換し、その鍵を用いて通信データが自動的に暗号化されるようになります。
【 S/MIME 】(Secure Multipurpose Internet Mail Extensions)
電子メールの暗号化方式の標準。RSA Data Security社によって提案され、IETFによって標準化された。RSA公開鍵暗号方式を用いてメッセージを暗号化して送受信する。この方式で暗号化メールをやり取りするには、受信者側もS/MIMEに対応している必要がある。
【 OCSP 】(Online Certificate Status Protocol)
デジタル証明書の有効性をリアルタイムで確認するプロトコル。OCSPサーバは認証局 (CA)自身や、証明書失効リスト (CRL) を集中管理する検証局(VA)が運営する。
電子証明書の有効性をユーザー・サイドからリアルタイムに調べるためのプロトコル。
PKIが普及し始めた当初はOCSPがなく、CRL(certificate revocation list)という証明書失効リストをまるごと発行局(IA)からダウンロードして調べる仕組みしかなかった。電子証明書のユーザーが増えると、CRLのサイズも大きくなり、そのデータ・トラフィックがネットワークを圧迫する可能性が高まる。このため、米ベリサインなどは、OCSPが実用化されるまで認証局に電子証明書を検証する仕組みを導入していなかった。
OCSPでは、エンドユーザーの問い合わせに対し、各地に分散している検証局(VA)に置かれたCRLを参照して、有効かどうかを回答する。
OCSPクライアントはサーバに対してデジタル証明書を確認させることによって、自力でのCRL取得や照合の手間を省略できる。OCSPで確認できるのはデジタル証明書が失効しているか否かということだけなので、有効期限が切れていないかどうかの確認などはクライアントが自分で行う必要がある。
www.it-shikaku.jp