DS1963S Monetary iButtonを使った電子マネー

これから次のことを考えます。
  • どのようにお金や
    クレジットカードが操作されるか
  • なぜe-Cash がいいのか
  • Secure eCash iButton の発展
  • The DS1963S Monetary iButton (MiB)
  • なぜSecurity は重要か
  • いかにDS1963Sはsecurityを持っているか

次のことにふれます。
  • iButtons は一般的になってきた
  • iButton の物理的なSecurity について
  • 様々な種類の暗号化
  • e-Cash化に対する攻撃
  • 様々なe-Cash の応用

電子マネーとは何か?
  • 価値のひとつの表現
  • 見た目、感触、熟知によって認識され認可されている
  • 価値は物理的に表現される (紙にインクで印刷)
  • 物理的な利益のために誰かによって盗まれる可能性がある

現金のいいところ
  • 匿名性- 売り手はあなたが誰だかは気にしない
  • 模造品を作るのが難しい(紙, 印刷技術, 多くの新しいトリック)
  • 政府の後ろだて
  • みんなに信用されている (我々皆が使っている)
  • 所持金の可視的表現 (どれだけ持っているかが分かる)


現金でよくない事
  • 肉眼あるいは高価なスキャナーでチェックしなければならない
  • 固定額面金額 - 両替が必要になる
  • インターネットでは不適切
  • 紙幣は場所をとる, 物理的に安全でなければならない
  • 使用記録がない

現金で本当に悪いことは
  • 保持者は現金の盗難の物理的な危険がある
  • 盗まれた現金は自由に使える
  • 紙幣は細菌を広げ、病気にする

  • warning!!

    “It is highly likely that an epidemic of global proportions - a serious threat to all human life - will be spread around the world quickly and efficiently on paper currency.” - From a joint statement by the World Health Organization and the United States Centers for Disease Control in 1994.


    クレジットカードとは何か
    • あなたの信頼性の表現
    • 現実にIDカードとして使える
    • 後ろだてはあなた - 個人的
    • 見た目、感触、熟知によって認識、確認される

    クレジットカードのいいところ
    クレジットカードでよくないことは
    • 匿名で無い。確実に誰であるかに依存する
    • データは磁気的に保存されている。機械的読取装置が高価
    • 使用記録はカード発行者と誰かが所有する?
    • 資産の分かりやすい視覚的表現が無い

    クレジットカードで本当に悪いことは
    お金は何故電子マネーに似ているのか
    • 価値の表現
    • 匿名性 - 売り手は誰が使っているかを気にしない

    電子マネーは何故クレジットカードに似ているのか
    • 額面金額が無い - 両替する必要が無い
    • 情報は電気的である, 使用は簡単で早い
    • 使用記録は任意で個人的である

    何故電子マネーは現金やクレジットカードより良いのか
    電子クレジットカードはどうでしょうか
    iButtonとは何か
    1. 消えない携帯用メモリー
    2. データアクセスを制御あるいは制限できる電子回路
    3. 暗証を保持できる
    4. 回路のつくりが物理的に安全
    5. スチール容器が物理的に安全

    不揮発性メモリー
    非常に簡単な接続
    接触させる
    最も重要な特徴
    • "ROM ID"と呼ばれる一意的なシリアルナンバー
    • 再プログラムできない永久的な識別子
    • 同じシリアルナンバーを持つiButtonsは二つと無い

    iButtonのシリアルナンバー

    iButtonシリアルナンバーについて
    iButtons の特別な機能
    • 温度センサー
    • 時間/温度ヒストグラム
    • 時計 (DS1994)
    • パスワードで保護されたメモリー (DS1991)
    • A/Dコンバーター

    復習して下さい
    • iButtons とその基本的な特徴が分かりましたか?
    • いかにiButtonsが日々色々な応用で使われているか分かりましたか?
    • 一意的なシリアルナンバーについて理解しましたか?

    進化する電子マネー
    iButtonの中にどのようにお金を入れるか
    • お金はまさしく数字である (残高と呼ぶ)
    • 銀行は現金を受け取り、iButton のメモリーに金額を書き込む
    • 販売店はその残高を読み取り、購入金額を差し引き、新しい残額をiButtonに書き戻す

    それを貨幣として考えてみよう
    RAMに保持してあるお金は安全でしょうか ?
    NO!?

    金持ちになろう
    • RAMの中の数字を変えることはたやすいこと
    • 自分の思うとおりに残金を増やすことができる
    • 即席貨幣!
    • 偽物と知り得るか?

    なぜだますのが簡単なのか?
    メモリーつきのiButton だけでは安全な電子マネーとしては不十分

    より良い電子マネー iButtonへの進化


    より良い電子マネートークンを作るには、いくつかの助けが必要になる
    • 特殊なハードウェアの特徴と機能
    • 特殊な安全な組み立て方法
    • 強力な暗号化技術
    • 全ての可能な攻撃に対する注意深い解析

    暗号の導入
    • 単純な代入暗号(substitution ciphers)から高度な数学的アルゴリズム
    • 暗号化はそれ自身科学である!
    • それ自身の言語、記号、専門用語がある

    暗号化の専門用語
    • Message
    • Plaintext
    • Ciphertext
    • Cryptogram Cipher
    • Algorithm
    • Key
    • Secret
    • Encode, Encrypt Decode, Decrypt
      Attacker, or “Bad Guy”

    “Message”
    Plaintext, Ciphertext
    • Plaintext(平文)はあなたが送りたいメッセージのこと
    • それは誰にでも明白に読めて理解できる
    • これは安全ではない
    • Ciphertext (暗号文)はメッセージを暗号化したもの
    • 読もうとしても誰も分からなくなっている
    • 実際の内容を読んだり理解することが出来ないため安全である

    “Cryptogram”
    「Cipher」 or アルゴリズム
    Key, Secret
    “Encrypt” < > “Decrypt”
    “Attacker”, “Bad Guy”
    暗号について少し説明します
    Single Key Ciphers
    • 古い “Decoder Ring”
    • 会話の両端は同じ暗証を知っていなければならない
    • 一人あるいは限られた数の受取人
    • 受取人は同じ暗証鍵を用いて暗号化できる

    何を言っているのか?
    全メッセージ認証(Whole-Message Authentication)
    もう一つの暗号化関数- Hashing
    • 情報を小さいダイジェスト表現に減らす方法
    • 暗号化/解読がより早い
    • 可逆性は必要ない
    • 任意の量の入力データは同じサイズのダイジェストになる

    Hashing はデータが変わっていないことを確信するときに用いられる
    simple hashの例 - A Check Digit System
    A Simple Hash - Check Digits
    典型的な部品あるいはアカウント番号: 12-3456-789
    数字の和 = 1+2+3+4+5+6+7+8+9 = 45
    一番右の数字をとる = 5
    部品番号のなかにcheck digitを入れる:  12-3456-7895
    部品番号の中にエラーを入れる: 13-3456-7895
    システムはcheck digitを再計算する: 1+3+3+4+5+6+7+8+9 = 46
    エラーは明白である: 6 = 5 ???
    重大な問題を起こす前にCheck Digitはkeyingエラーを起こします
    分かりましたか?
    • ハッシュの概念について理解しましたか?
    • メッセージが改変されていたときにどのようにハッシュが知らせるか理解しましたか?
    • これは重要な概念です

    Larger Scale Hashing Algorithms
    • 非常に長い量の入力データを扱うことができる
    • さらに安全にする特徴
      • 大きい出力サイズ
      • 広い拡散(Diffusing)
      • 大幅な圧縮(reduction)

    What Makes a Good Hashing Algorithm?
    • 出力ダイジェストから入力の任意の部分を復元するのは不可能
    • 異なった入力データから同じダイジェストを作るような“collision” は絶対にありえない
    • 世界中で時間をかけて、細かく検査し、きわめて細かく調べられている。
    • 政府によって認可され、規格化されている

    Secure Hash Algorithm (SHA-1)
    • なんだろう?
    • どのように動作するのか?
    • 何故それを使うのか?
    • 安全にするいくつかの方法:
      • 拡散(Diffusing) - 入力ビットの各々の変化は出力の多くのビットに影響を与える
      • 圧縮(Reducing) - 入力の多くは不可逆性処理を保持しながら計算中に失われる。
      • 不明瞭 (Obscuring) - 1ビット以上の入力ビットは全く同じ出力ビットにおいて変化を引き起こします

    Secure Hash Algorithm

    Secure Hash Algorithm A Good Example of Peer Review in Action
    • SHA-1は多くの先祖を持っている
    • SHA-1の進化:
      • MD-2 ひとつの方法であるが、ちょっと遅い
      • MD-4 弱点が見つかった、それで...
      • MD-5 決して破れないが怪しい、それで...
      • SHA 前のよりは良いが、しかし….
      • SHA-1 それらよりは最も信頼される

    ハッシュは残高の変化を安全にする
    • 残高は非常に短いメッセージである
    • iButton貨幣の中に残高と残高のハッシュを入れる
    • 残高が変ると、ハッシュはチェックしたときの残高と一致しない
    • ハッシュが変ると、残高はチェックしたときのハッシュと一致しない
    • どんな変化でもハッシュで検出される

    悪人に対してハッシュは私たちの残高に対して安全か?
    • 悪人は残高を変えて、それの新しいハッシュを計算できる
    • 金額が追加されたことを決して分からないだろう
    • ハッシュアルゴリズムは案の一部にすぎない

    本当に安全にするにはどうするのか?
    • 悪人に対して新しいハッシュを計算できなくする
    • 奴が金額を変えたら、ハッシュはもはや正しくないので検出できる

    悪人の新しいハッシュ作成から防ぐ方法

    • Hash algorithm は秘密のままだろうか?
      • 公になっているハードウェアに束縛されているアルゴリズムを保護するのは難しい。
      • 使える良いアルゴリズムはの数は限られている
      • 上手に細かく再確認出来なく、もしアルゴリズムが秘密のままだとしたら、アルゴリズムの全体的な承認も出来ない。

    Keeping A Part of the Message a Secret
    • 無制限の数の異なった「 secret parts 」が可能
    • その「secret part」はservice providers によって与えられ、それらの暗証を保存するときにiButton生産者を信用する必要は無く、その暗証が何であるかを知る必要も無い
    • アルゴリズムは普通に使えるように公開にされる

    メッセージと暗証をハッシュする

    iButtonの中にメッセージとハッシュを格納する。しかし暗証は入れない
    攻撃者はデータを
    変えるために必要な
    重要な情報を失っている
    Message + Hash
    がiButtonに保存される

    売主はメッセージをチェックする

    新しい暗号の用語: MAC
    • MAC はMessage Authentication Code
    • 入力の一部が暗証を保持しているときの単純なハッシュである
    • 暗証を知らなければ誰も変更された残高に対する正しいMACを計算できない

    MACとそれがどのように動作するか理解しよう
    • それを暗証(Secret)と呼ぶ (実際には鍵(Key)ではない)
    • 入力データと暗証はMACから計算することはできない
    • 変えられたメッセージは同じMACを発生するものを検索するために増加されることはできない
    • MACは暗号化されたデータではなくメッセージと暗証のダイジェストである

    Cryptographyについてのメモ
    • 暗号化システムの多くの失敗は履行の失敗にあって、暗号化自体ではない
    • 安全性を非常に低下させる手っ取り早い方法がいっぱいある
    • 暗号システムとそのアプリケーションに対する時間をかけて試験した規則がある。

    暗号システムの規則
    • 「不明瞭による安全性」 には決して依存しない。完全な暴露と厳格な再検査(peer-review)のみが暗号化システムを保証する望みがある。
    • 乱数は本当にでたらめである。悪い乱数は暗号化システムを奈落の底に落とす
    • 時間をかけて提案されたアルゴリズムの近道や抜け道を考え出すことは決してしない

    要約 - Hashing:
    • ハッシュとは何か?
    • ハッシュが我々に検出させるのは何か?
    • どんな改変をも検出できるような手紙をどのように送るか?
    • 送られるべき全てのデータはハッシュデータに関係付けられているのか?
    • いかにメッセージを改変でき、それに対する新しいハッシュを発生できる「悪人」を防ぐか?
    • ハッシュが計算され、入力データの一部分を暗証に保持しているとき、ハッシュの結果あるいはダイジェストと呼ばれるものはどうなるか?

    確認しよう
    • いかにMAC が権限の無い改変からデータを保護するか?
    • これは重要な概念です!

    電子マネー iButtonの話に戻ります
    • iButton のメモリーの中に残高を入れる
    • 残高と暗証のMACを計算する
    • 誰も残高を改竄できなく、同様に暗証無しでMACを正しく保持します

    我々の電子マネーは本当に安全でしょうか?


    いや! 安全ではない

    お金の複製
    • たとえ悪人が暗証を知らなくとも、彼は残高と正しいMACを読むことができる
    • 彼がさらにiButtons を得て、単純に残高と正しいMAC情報をコピーする
    • 彼はそれらを自由に使うことができる。それらは全て正しい電子マネーである。

    お札のコピーのように
    • お札を複写機で複製する
    • それらを使う
    • 電子データはコピーするのが簡単でそのコピーはオリジナルと見分けることが不可能である

    複製をどのように防ぐのか?
    • 全ての複写機の紙に変更できないシリアル番号が埋め込まれていたらどうだろうか?
    • 各々の iButton はレーザー刻印の永久的なシリアル番号が中にあるので唯一のものである
    • 入力としてMACの中にiButton の唯一のシリアル番号を含めることができる
    • これで悪人の複写機は無意味になる!

    何故か理解しましたか
    • MACの中のシリアル番号 が何故複製を不可能にするのか?
    • これは重要な点です!

    悪人は全く同じiButtonを再使用できるか?
    • 悪人は金額と正しいMACをディスクにコピーする
    • 悪人はiButtonの中にある大部分あるいは全額を使う
    • 悪人はディスクからオリジナルの金額とMACをiButton に書き戻す
    • 悪人は再び全く同じ金額を使う
    • これを 「Replay Attack」と呼ぶ

    貨幣の値の各々の「コピー」を一意にもする
    • これをするにはいくつかのハードウェアが必要になる - DS1963L Monetary iButtonを導入する
    • DS1963Lは残高をiButtonに書くたびに一回カウントアップするカウンターを持っている
    • MACの入力としてそのカウンターを含めるだろう
    • 攻撃者が正しい残高とハッシュを書き戻すときカウンターがひとつ増えて、MACはもはや正しくなくなる

    カウンターは特別な性質を持っている
    • カウンターはリセット、バックアップ、リロードできない
    • カウンターは大きく、回り込むことはできない - 4,294,967,296まで数えられる!
    • 特別の警戒がカウンターを戻したり影響を及ぼそうとすることを検出する (改竄ビットTamper Bits)
    • カウンターはメモリーに各々一意的な事項を書き込み、一意的なIDである各々の残高である「instance」を与えます

    分かりましたか!
    • 何故MACの中にカウンターを含ませるとreplay attackを不可能にさせるのか?

    DS1963Lで iButton 電子マネーを安全にしよう!


    ちょっと待った!
    それはそう簡単ではない!

    さらに進化した攻撃がある


    “Faking-Out” the Vendor
    • 賢い悪人はiButton のふりをする特別なハードウェアを作ることができる
    • 多くのマイクロ・コントローラと他のプログラム可能な回路はiButton のふりをすることができる。
    • これはiButton のエミュレータと呼ぶ
    • 悪人は本物のiButtonから正しい残高とMACをiButtonのエミュレータにコピーする
    • 悪人はiButton のエミュレータをお金として用い、元の残高に戻す度にカウンターをバックさせる(カウンターをコントロールできるのでRe-Play attackすることができる)

    どうやったらiButton が本物なのか確証できるか?
    • 賢い人はどのようにiButtonのふりをしているか分かる
    • iButton の認証が必要になる。 - 偽造で無いことを確実にする

    認証の方法


    いかにエミュレータ(偽造iButton)と
    本物のiButtonとを見分けるか


    スパイ対スパイ: 何が暗証か?
    • いかに詐欺師でないか調べるには?
    • 本人のみが知り得ることをたずねる
    • もし返答が正しければ、認証になる

    もし誰かが暗証を立ち聞きしてしまったら?
    • 誰かが暗証を立ち聞きしたならば、彼らは我々をも本人であるかのように後でそれを使うことが出来るだろう。
    • 「対話」電子データを盗聴して後で用いるために記録することは難しくはない。
    • あなたは暗証を盗まれたことも分からないだろう。

    認証するよりよい方法
    • でたらめに数字を選ぶ
    • その乱数に暗証を掛け算する
    • 暗証それ自体が解くようには提示されない。
    • もし悪人がその答えを立ち聞きしても、乱数はいつも異なるので次回には使えません。

    チャレンジ ー レスポンス
    • 乱数はチャレンジと呼ばれ、答えはレスポンスと言います。
    • 例えチャレンジ・レスポンスを媒介物に伝えたとしても、その二つの間には誰も悪さをすることはできない。
    • レスポンスを記録することは続いて起こる処理では意味が無い

    それが信じられると認証できるiButton を作ることが出来るだろうか?
    • 新しい特徴を持つ特別な iButton が必要になる - DS1963Sを導入しなさい
    • 暗証を安全に内側に隠すことができる
    • 内側でSHA-1MACを計算できる
    • チャレンジをしてレスポンスを発生させることができる。 (チャレンジと暗証のMAC)
    • iButtonが暗証を保持しているかどうか知るためにテストすることができる

    分かりましたか?
    • どのようにiButtonが認証する際に暗証を保存しチャレンジ・レスポンスを実行できるようにしているのか?
    • なぜチャレンジは乱数が必要なのか?
    • これは重要です

    セキュリティは悪人から暗証を守ることに依存します
    • 悪人はほしいと思ったときに欲しいだけiButtonを手に入れることができ、密かにそれらで仕事をしたいところに持っていくことができる

    暗証を保護する
    • 暗証はstatic RAMの中に保存されている
    • iButtonのスチール缶の中にある超小型のリチウム電池によって維持されている
    • 電池の接続は解体の時に維持され、 どんな中断もなしで調査されなければならなく、そうでなければ暗証は滅茶苦茶になり無くなる。

    安全な組み立て方法

    Flip-Chip技術は分解するのが非常に難しくなる
    「回路サンドイッチ」にする


    安全な組み立て
    • シリコンは金属層の下に暗証を隠す
    • シリコンはひっくり返され、回路基板に面が下に半田付けされる
    • 紫外線固化エポキシ樹脂が毛細管現象でシリコンチップと基板の間に注入される
    • 分解して調査するのはほとんど不可能

    アーチ型ステンレススチール

    ステンレススチールで全ての装置を密閉することは
    あけるのに非常に難しい丈夫な容器にします


    全てのこのデータは本当にiButtonからなのか?
    • 悪人は自分自身を認証するために正しいiButtonを持てる
    • 彼は取引の際に不当な金額の偽のiButtonに取り替える出来る。
    • iButtonから読んだ金額データは認証したのと まったく同じiButtonか信用できるだろうか?

    iButtonのデータ通信路を 信用できるか?
    • データ接続は攻撃されやすく、悪人に望むままに操ることができるようにさらされます
    • コンピュータ内蔵の電子装置を用いて正しい時間内に信号を切り替えることは難しくない

    分かりましたか!
    • iButtonから本当にきたデータを単純なチャレンジ・レスポンスの交換で保証できるか

    安全な電子マネーを 利用できる条件
    • iButtonデバイスがエミュレーションで無いことを認証する
    • 全てのデータがいかなる方法でも通信路で壊されたり改竄されていないことを確かめる
    • 残高金額を確認し、それが改竄されていないことを確かめる

    iButtonのチャレンジ・ レスポンスを完成させる
    • 全てのデータと暗証のMACは小細工からデータを保護し、デバイスが暗証を保持しそれゆえ認証になることが保証される
    • デバイスの相互のデータ交換は介入から保護されることができる
    • デバイスは世界規模のハッシング関数で速く実行できなければいけない

    安全なハッシングアルゴリズム
    • シリコン上に安全で信頼できよく試験されたハッシングアルゴリズムが実装されている必要があります
    • SHA-1 は要求された全ての特徴を持っていて、ハードウェア論理回路とレジスターに実装するために簡単なハッシュの一つである。

    SHA-1 は簡単な仕事ではない
    • 普通の方法でつくられたSHA-1はかなりの場所を使います。そうすると新しいiButtonは製造するのに費用がかかってしまう(少数部品は各々の処理されたウェハーから作られる)
    • その代わり、ハードウェアを小さく、コストダウンをしながら非常に効率的な方法を用いた独自のSHA-1を設計しました。

    特別なSHA-1エンジン
    • SHA-1 ハッシュを500μ秒で実行できる
    • ほとんど電池の電力を使わない
    • ほとんどシリコンの スペースを使わない
    • 妥協していないFIPS 180-1 から作られたSHA-1 アルゴリズムを使っている

    特別なSHA-1エンジン
    • SHA-1 ハッシュを500μ秒で実行できる
    • ほとんど電池の電力を使わない
    • ほとんどシリコンの スペースを使わない
    • 妥協していないFIPS 180-1 から作られたSHA-1 アルゴリズムを使っている

    iButtonばかりではなく同様にそれからのデータを認証せよ
    • MACの入力としてチャレンジ、残高、シリアル番号、暗証を含める
    • MACがチェックできたら、デバイスが暗証を持っていることを立証する
    • デバイスから得られる全てのデータは認証され正確でもある
    • 一度iButtonからのデータが認証されたものと分かれば、残高のMACをチェックでき、同様にそれが正当であると分かる

    全てを確認しよう!


    二重の安全に対する2つのMAC
    • 2つの MAC:
      • iButtonとデータを認証し、デバイスとの通信伝送を安全にする
      • 悪人によって変えられたりごまかされたりすることから残金を保護する
      • 全ての取引は検証できる
    • 全てのデータはチェックされる

    分かりましたか!
    • SHA-1のアルゴリズムがいかに攻撃者から電子マネーを安全にするか
    • iButtonの中にSHA-1エンジンを持つ利点は何か

    実生活の取引をみてみましょう
    コーラを買う
    • コーラの自動販売機の読み取り器に貨幣iButtonを触れさせる
    • 機械はランダムなチャレンジを発生し、それをiButtonに送る
    • 機械はiButtonから残高、一意的なiButtonシリアル番号、カウンターを読む
    • 残高、シリアル番号、カウンター、暗証のMACを発生させる
    • 機械はiButtonからMACを読む
    • 機械は同じデータ、暗証(機械は知っている)で同じMACの計算を行う
    • 機械はiButtonが確実かどうかを知るために2つのMACの一致を検証する
    • 機械はiButtonが実物であることが分かる (iButtonは暗証を知っていることを証明する)
    • 機械は通信路でデータが改竄されていないということも分かる
    • 機械は残高、シリアル番号、カウンターを持ってきて、暗証を用いてMACを発生する (機械は暗証を知っている)
    • そのMACがiButtonからのと一致したらば、そのお金は正当で変えられていないことが保証される
    • 機械は残高からコーラの料金を引き、知っている暗証を用いて新しい貨幣MACを発生する
    • 機械は差し引かれた金額、新しい正当なMAC、をiButtonに書き戻す

    機械がコーラを渡してしまうことを考えてみよう。そんなに難しくない
    • 新しい差し引かれた残高が書かれる前にiButtonが取り去られたらどうなるか?
    • お金は確認されたがお客様のiButtonからまだ取っていない
    • もし悪人が機械に差し引きが成功したと思わせるように騙したら、丁度その時抜かれるので事実iButtonは決して現実的には差し引かれない。
    • 悪人はコーラを永遠に買うことが でき、一円も使わない

    さらにやらなければ
    • 機械は 新しいランダムなチャレンジを発生させ、再びデバイスデータを読む
    • 機械はiButtonとデータが確実であり、機械が以前に書いたものを再生したものでないと確証するために発生させたデバイスからのMACをチェックする。
    • 再生は全く同じだろうが、チャレンジはその度に新しくなり、それでレスポンスは異なる
    • 暗証を知っているiButtonのみが適切なレスポンスすることができる
    • iButtonから読み戻した残高、シリアル番号、カウンター、金額MACが書いたものと全て一致した場合のみ、全ての取引が正常に終了したと分かります
    • コーラを渡す!
    • (It’s about time!)

    They call it “Tear”?
    • もう一つの暗号用語: “Tear” - 媒体 (この場合は iButton)が、 取引の終わりチェックする前に取り去られること
    • 取引の大部分の段階では、iButtonデバイスが非常に早くはずされ、なんの不都合もなければ中止できます(金銭、商品は変わらない)
    • チェックし、金銭取引が正常に終わったか分かり、iButtonがはずされたことが全て問題なくなされたらどうするか?

    事故あるいは故意?
    • 良識人は事故では非常に早期にiButtonを単に取りはずすだろう
    • 顧客の信頼と快適を非常に良く保つために「潔癖なtear」を取り扱う必要がある
    • 悪人は精密な接続不良を引き起こす原因となるだろう
    • 故意的なtearの結果は悪人に対して何の利益ももたらさないことを確実にしなさい

    The “Prisoner Exchange” Problem
    • あなたはある値打ちのものを持っている
    • あなたが信用できない奴も同様の価値のあるものを持っている
    • 二人はこれらの物を交換したい
    • どのようにしたらよいか?
      • 彼は両方とも掴んで走るかもしれない!
      • 彼はあなたが同様のことをすると思っている!

    子供でさえ分かる...
    • 相手を注意深く観察しなさい
    • 威嚇の表情をできるだけしなさい
    • 相手が有利にならない立場になりなさい
    • 突然そして急に交換しなさい
    • ほしい物を取り、行くな!

    同様の方法で取り扱います
    • iButtonは 本物で、それに入っている金銭は 正当であることを確実にする
    • できるだけ早く取引を行う (「tear」が起こるようなおかしなことを減らす)
    • 彼らが金銭を渡したと確証するまで商品を渡すな (iButtonを読み返して十分長く留まることによって)

    何をしたか分からないような人間の無能力さに寛容になりましょう。
    • 電子マネー自動販売機システム設計においてtearを処理する考え方がとても重要である。
    • もし単純に製品を拒否したらどうなりますか?
      • “取引をやめるかコーラを出さない!”
    • のどが渇いて苛立った人はiButtonを再び使う可能性が高い
    • 我々の機械は戻すために少し待ってそのようなことがされたらその仕事を終える

    もう一つの考え方
    • お金は持ち逃げされ、使われたら無くなるが、このような紛失は我慢しなければならない。
    • もう一つの方法は製品を販売するが、攻撃や多大な損害になるまでシステムを開く(tearは悪人にとっては儲けが多くなるから)T

    分かりましたか!
    • Tearはどういうもので、それが何故問題になるのか理解しましたか?

    多くの仕事
    • 機械の中では4つのハッシュ演算が行われます:
      -データとiButtonの認証
      -正当性のために金額残高をチェックする
      -新しい残高記入に対する新しいMACを発生させる
      -記入が適切に完了したか確かめるときのデータの読み戻しをチェック
    • iButtonの中では二つのハッシュ演算が行われる:
      -iButtonが挿入された時機械が読んだデータに対するMACを発生させる
      -記入の完了をチェックするため機械が読み戻したデータに対するMACを発生させる


    他に何を投げることが出来るか?
    • 説明してきたように、残額記入の後でiButtonが抜き取られたか確認するために自動販売機がiButtonから読み戻すことが非常に重要です。
    • しかし、もしiButtonが適切な残額記入がされたと思われるならば、その残高記入は 自分自身のであるとどのように知るのだろうか

    次はちょっと複雑…

    The A-B-A Cheat
    • いかさまのもう一つのシナリオ:
      • 悪人は機械Aでコーラを買おうと試みる
      • 悪人は残高記入が読み戻され、機械にチェックされる前にiButtonを取り外す。
      • 悪人はそのiButtonを用いて機械B(残高記入をしていない)に行く。
      • 悪人は機械Bで完全な取引をし、コーラを得る。彼のiButtonは一つのコーラに対しての残高が記入されている。
      • それまでは、とってもいい
      • 悪人は機械Aに戻り、そのiButtonを再度接続する
      • 機械AはiButtonを読んで、正しく残高記入、正しいシリアル番号、正しいカウンタになっているかをみて、Aは結局前の取引は完了したと当然思う。だから、機械はこの顧客にコーラを出すと当然思う。
      • 機械Aはコーラを販売する。
      • 顧客は一つの金額で二つのコーラを得てしまう。
      • そして、一つのコーラの費用が、異なった2つの料金箱に加えられた。 お金を複製した!
      • (銀行家はコーラの自動販売機が自分自身で新しいお金を作ったことはとても悪いことだと考える)


    A-B-Aいかさまを防ぐ
    • 各々の自動販売機は残高と一緒に乱数を含めます。(これを取引コードと呼びます) この取引コード番号は残高と一緒にiButtonの中に含められ、同様にMACの計算の入力の一部となります。
    • iButtonが外され、また戻されたとき、その乱数値はもしiButtonが異なった機械、あるいは異なった時刻に事実を記入されたならば、同じ値になりません。
    • 機械Aの中の残高記入は完了していないことが分かり、二重に製品が販売されることもなく、新しいお金も作られない。
    • 顧客は一つのコーラの価格で一つのコーラを得る。

    しかし、全てではない。考えなければいけないさらなる問題が…
    • もし誰かがiButtonの中に入り、貴重な暗証を取り出したとしたらどうだろうか?
    • そして、同じ暗証が全ての事業者の全てのiButtonに用いられている。
    • 全く同じ暗証を用いた全てのiButtonは危うくなる。

    新しい暗号用語: Class Break
    • システム中の全てのデバイスは一つのデバイスを壊すことによって破られる。
    • Class Breakの結果は本当に非常に重大になる。
    • 何百万もの採用されているiButtonのシステムに渡る鍵の変更をすることは、ほとんど不可能で費用がかかる。

    Class Breakを防ぐ方法How to Prevent a Class Break
    • 余分のものは取り除くか、難しくする
      • 物理的な安全性を高める(高価で最終的限定)
    • デバイスを破壊する試みを捕捉する。
      • 侵入して暗証を取り出そうとすると暗証を消し去る間抜け落とし。(高価で時々間違った警告をし、正当なお金を消し、最終的に限定される)

    各々のiButtonに対して異なった暗証はどうか?
    • 正当な販売機は接続してくる各々のiButtonに対する各々の暗証を知っている。
      • 何百万もの暗証になる。
      • 巨大なメモリー、あるいは各々の自動販売機のノットワーク接続が必要になる。
      • データベースの悪夢!

    各々のiButtonに固有の暗証を入れる良い方法A
    • マスター暗証とデバイスに固有のシリアル番号から 計算した暗証を各々のデバイスに与える。
    • その方法は固有のデバイス暗証に与えられたマスター暗証を解くことが不可能にしなければならない。
    • デバイスが接続されたとき各々のデバイスの固有の暗証を再生する高速の方法が必要になるだろう。

    固有暗証を作るためにSHA-1ハッシュアルゴリズムを用いる
    • 各々のiButtonはその固有のシリアル番号と組み合わせたマスター暗証のMACの暗証が与えられる。
    • コーラの自動販売機は接続された時にそのデバイスのシリアル番号を読み、マスター暗証を知り、そのデバイスに対する固有の暗証を解く。
    • 一つの取引に 7つのハッシュ演算をします。

    復習
    • Class Breakとはなんであるか理解しましたか?
    • なぜ各々のiButtonに異なった鍵を持たせるとClass Breakを防げるのか?

    これら全てのMAC、コーラを買うのに永遠に使われない? All those MACs! Won't it take forever just to buy a Cola?
    • 各々の取引において 7つの複雑なMAC演算をします。
    • MAC演算は何千ものステップと多くの計算を必要とします。

    MACを実行する時間は?
    • 典型的なマイクロコントローラでは、各々のMACに対して1/2秒かあるいはそれ以上遅くなる。
    • 単純なコーラの取引に3.5秒、あるいはそれ以上かかります。

    コプロセッサとしてのDS1963S
    • もう一つのDS1963SをiButtonのコプロセッサとして自動販売機の内部に用いることができます。
    • SHAは0.0005秒
    • 重要な暗証を保持し、安全に収集したお金を保存する。

    究極のコプロセッサThe Ultimate Co-Processor

    • 貨幣iButtonは非常に速くMACを演算できます。
    • デリケートなな暗証を示すことなしに他のiButtonからMACをチェックすることのできる機能がある。
    • どんなマイクロコントローラよりもよく暗証を保持する。
    • 自分自身の固有のシリアル番号を持っている。
    • 自分自身のステンレスの容器に入っている。
    • 自分自身のバックアップ電池を持っている。
    • 蓄積した資産を保存する安全な場所である。
    • 設定と価格データのための場所を持っている。
    • 簡単に導入、検索、交換できる。
    • 廉価である。

    復習
    • 同じDS1963SiButtonが電子マネーの入れ物とコプロセッサの両方に使えることが理解できましたか?

    他の危険についてはどうだろうか?
    • 一番大きい危険は自分自身の施設の人間あるいはシステムであることが度々である。
    • 従業員は作業中にアクセスしてマスター暗証を盗むことによって利益を得ることができる。
    • マスター暗証は鍵と錠の下で保存されなければならなく、このタイプのセキュリティは高価で、いつも確実に動作するわけではない。
    • 「Secret Sharing」法という暗号化がその助けなります。
    ヤフーBB顧客情報流出 恐喝未遂容疑で2人を逮捕 
    --------------------------------------------------------------------------------
    
     
     インターネット接続サービス「ヤフーBB」の契約者情報が流出した事件で、警視庁は30日、同サービスを運営するソフトバンクBB(本社・東京都中央区)から金を脅し取ろうとしたとして、無職冨安泰生(24)=東京都新宿区早稲田町=と無職森琢哉(35)=同文京区本駒込3丁目=の両容疑者を恐喝未遂容疑で逮捕した。冨安容疑者が同社のサーバーコンピューターに侵入して入手した顧客情報を使って、右翼団体元幹部らが同社を脅したとされる。 
    
     冨安容疑者は顧客情報を引き出したことは認めたうえで「恐喝に使われるとは思わなかった」と供述、森容疑者は容疑を認めているという。 
    
     捜査1課の調べでは、冨安容疑者は昨年春ごろ、知人でソフトバンクBBの元派遣社員の男性(30)が社員だった時に使用していた接続用IDやパスワードなどを入力して同社の保守管理用のサーバーコンピューターに侵入するのを盗み見て、IDなどを記憶。同コンピューターに侵入して、顧客情報を引き出すなどするようになった。 
    
     このことを聞いた知人の森容疑者が、義父で元右翼団体会長の森洋被告(67)=恐喝未遂罪で公判中=に伝え、洋被告が金を脅し取ろうと計画。洋被告の指示で冨安容疑者は1月上旬、新宿区内のインターネットカフェで同社のコンピューターに入り込み、約460万人分の顧客情報を引き出した。 
    
     洋被告がコンサルタント会社副社長の湯浅輝昭被告(62)=同=に指示。湯浅被告が1月21日、同社側に顧客情報の一部を示して、「外部に公表されたら大変なことになる」などと金を要求したとされる。 
    
     元派遣社員は、同社で保守管理用サーバーコンピューターのプログラムを作った一員だった。 (05/30 23:22) 
    
     
    

    マスター暗証を保護する
    • もう一つの暗号用語: 「Secret Sharing」
    • マスター暗証をいくつかの「部分暗証に」分割する。
    • 部分暗証はVIPの間で分配されるか、異なった保管容器に保存される(物理的にあるいは電気的に、iButton電子マネーのように)
    • 一人の従業員が全ての部分暗証にアクセスする必要は無い。
    • 部分暗証は他の全てなしでは部分暗証は使えません。
    • 部分暗証はマスター暗証が再現されるときにのみ一緒に持ってこなければならない。

    Shared/Split Secrets

    まだ危険はあるか?
    • Secret sharing法でさえもマスター暗証を完全に保護することはできない。
    • 部分暗証が一緒になり、マスターがiButtonの中に注入された時、 もし、コンピュータの中で少しの時間があれば、マスター暗証はやはり存在する。
    • でなければ…

    部分暗証をiButtonの内部で集める
    • Secret sharing ツールとして貨幣iButtonの内部のハッシュ機能を用いる。
    • 完全にiButtonの範囲と安全の中でマスター暗証を再構築する。
    • マスター暗証は決してiButtonの外では存在せず、従業員や他の誰にも曝されない。
    • 部分暗証は異なった都市、工場でさえも処理の間に様々な地点でで導入される。
    • 最終的な部分はiButtonに値が与えられ、顧客に操作されるまで導入されません。 ステップが攻撃者の為に使えなくなる前にiButtonはシステムから取り去られる。

    iButtonの中で部分を構築する
    各々の部分をiButtonの
    中に送り込み、新しい
    マスター暗証を一つ一つ
    作る。
    その結果はiButton
    の外に決して曝されること
    はありません。

    復習
    • いかにsecret sharingが行われるか理解しましたか。
    • 何故か理解しましたか。

    再復習:安全な電子マネーに対する仕組みとiButton
    • 電子マネーに対する安全な スチール缶を使用する。
    • ハッシュを用いて貨幣値を安全にする。
    • 複製に対する貨幣値を保護するために固有のiButton IDを用いる。
    • Re-play攻撃に対する貨幣値を保護するためにリセットできないカウンターを用いる。
    • 高速で効率的な暗号エンジンを用いる。
    • 各々、そして全てのiButtonに対して固有の暗証を発生す。- Class Break問題をなくす
    • チャレンジ・レスポンスとiButtonの中の暗証を用いてiButtonを認証する。
    • ハッシュとiButtonの中の暗証を用いてiButtonからの全てのデータをチェックする。
    • iButtonは暗証を保持することと取引を高速化するためにco-processor になることができる。
    • 暗証PINあるいはパスワードを知っているか調べるために持っている人にチャレンジすることによって使用者認証を行う。
    • 事業者の設備での暗証を保護するためにsecret-sharingを行う。

    もう一つ攻撃が残っている…
    悪人が単純に
    システムを
    破壊しようと
    したらどうだろうか

    The Sneakiest Attack of Them All The “Competitor Attack”
    • 多くの攻撃者は奮闘により利益を得たいと思ってる。
    • 顧客がシステムを不信用になるように、競争者は単純にシステムを破壊することによって利益を得るだろう。
    • 最も単純な攻撃は装置を破壊するが、背後には明白な証拠が残っている。
    • もう一つの方法は装置の中の貨幣データを破壊することであるが、これは同様にすぐに分かる。
    • 「sneakiest攻撃」は暗証を破壊するだろう。それを読むことができないため、動作しない部分が暗号化されているのか単に失敗なのか誰も確かめることができない。

    暗証上のカウンター
    • 「 競争者攻撃(competitor attacks)」の試みは、より簡単に検出でき分かりやすい。
    • データページのように各々の暗証は同様に 暗証が変わった時に一つ増えるカウンターを持っている。
    • これはハードウェアあるいはメモリーの故障にして、暗証上書きを検出するのに用いられます。
    • その暗証カウンターはiButtonと暗証の状態をさらに強固に貨幣値をロックさせるために貨幣MACの中に含めることができる。

    復習
    • 攻撃で直接的に利益を得なくともシステムを破壊したいと思う理由が理解できましたか?

    The DS1963S eCash iButton
    取引残高は安全に保存される
    確実に認証することができる
    ユーザーを確実に認証できる
    取引残高の改竄を検出できる
    I/Oデータ交換の改竄を検出できる
    暗証の改竄を検出できる
    物理的に安全で丈夫なスチール容器
    高速で、効率的な内部暗号化エンジン

    DS1963SiButtonはお金の表現しかできないのだろうか?
    • 他のデータも保護できるだろう
      • 従業員情報を保護する
      • 安全なアクセス権、ドア開城システム、安全レベル
      • クレジットカード情報を保護する
      • 写真を保護する
      • 医療データを保護する
    • 販売前開封防止
    • 従業員/学生ID

    本当のユーザー認証

    PINs and Passwords


    ユーザー認証
    • インターネットは極秘の情報にアクセスする前に、ユーザーを認証する方法と本当に本人であるかを確認することを必要とします。
    • ソフトウェアシステムはユーザーを認証する安全な方法を必要とします。
    • アクセス制御とドア開錠システムはさらに信頼でき、安全な鍵を必要とします。

    PINとパスワード使用上の問題
    • インターネットサーバーに対しては、非常に多くのユーザーPINやパスワードの処理が巨大な仕事量になる
    • ユーザー認証の時間は巨大なデータベースの中のPINやパスワードを参照する時間を含んでいる
    • ユーザーの暗証のデータベースの多くのコピーを持つことはよりたやすく危険にさらされます。
    • ネットワークを介してPINやパスワードを送ることは傍受の危険が生じます。

    PIN/Password -vs- Tokens
    • PINとパスワードは容易に危うくされます。
    • PINやパスワードが危ういかどうかは必ずしも自分で分かるとは限りません。
    • (鍵、カード、iButtonのような)トークンは盗まれ、誰か他の人に使われます。
    • 物理的なトークンは無くなったときに分かります(必要なときにそこに無い)

    良い方法…
    • トークンとパスワードの一番良いところを組み合わせる。
    • 持っているもの(the Token)
    • 知っていること(your Password)

    "持っているもの、知っていること
    • ユーザー認証は固有で物理的なトークンを 持ってきて提示しなければならない。
    • ユーザー認証は暗証であるなにかを 知っていて、それを知っているかを確かめなければいけない。
    • 暗証とトークンの両方が提示されたときだけ、本当の認証がなされる。

    ユーザーとトークンを結び付ける
    • ユーザーのPINまたはパスワードを最後の部分暗証として含める。
    • ユーザーをiButtonのトークンと結び付ける
    • ユーザーはデバイスが認証される前に正しいPINまたはパスワードを提示しなければならない。

    Other DS1963S Applications
    鍵としての貨幣iButton
    • アクセスコントロール、金庫、ロッカー、独立したドアの鍵など多くは複製できない多目的電子鍵が必要。
    • データは改竄から保護されているから、アクセスレベル、ドアリスト、従業員IDはiButtonの中に安全に保存される。

    付属品認証
    • 生産者は顧客が本当の付属品だけを着けていることを確かめたい。
    • 暗証保持とハッシュは付属品に接続し認証する装置を作ることができ、サードパーティの模造品を拒否できる。

    DS1963S iButton 容量
    • 16個ののデータページ
    • 8個の暗証
    • 8個のデータページ書き込みカウンター
    • 8個の暗証書き込みカウンター
    • 全部で5.12Kビットの電池でバックアップされたRAM

    Multiple Service Providers
    • 7つのサービスプロバイダーを共有することが出来る
    • 各々のプロバイダーの空間は他とは独立している。

    1-Wireファイルとの互換性
    • 1-Wireファイルディレクトリとファイル構造が用いられる。
    • 1-Wireファイルディレクトリページは保護することもできる。
    • プロバイダーが追加されたときに動的にRAMの割り当てを行う。

    DS1963S 暗号の安全性
    総当り攻撃(The "Brute Force" Attack)
    • 多くの暗号化システムは総当り攻撃を受けやすい
    • 攻撃者は動作するまで全ての可能な鍵を単純に試みる
    • 時間は試される鍵の最大の割合と可能な鍵の数に依存します。

    64bitの暗証は十分に大きいのだろうか?
    • 平均的に、暗証を見つけるには(264)/2 回のSHA演算、すなわち約9,223,000,000,000,000,000の演算が必要になります
    • 非常に速いコンピュータはSHA-1演算を1マイクロ秒で計算できます。
    • 1000台の超高速コンピュータを用いて約2900年暗証を破るのに時間がかかります。


    2,900年!

    他の暗号攻撃は?
    • 「SHAに対して分かっている暗号への攻撃は知られていない」

      "There are no known cryptographic attacks against SHA." - Applied Cryptography, Second Edition, by Bruce Schneier 1996


    iButton Data Security-Vs-Cost
    The DS1955/DS1957 Cryptographic iButton
    • Java強化暗号化iButtonはより良い物理的電気的安全性を持っている。
      • More metal layers covering secrets
      • Freeze and other tamper detectors
      • "Instant Zeroization" wipes secrets quickly
    • Dual-Key暗号を非常に速く計算する。
    • プログラミング能力を通していくつかの攻撃の見通しの限界を見ることができる。

    DS1955/DS1957 も欠点を持っている
    • より高価(とても大きいダイのサイズ)
    • 一部の顧客には輸出や売ることが不法になる
    • より多目的になるが、SHA-1のようないくつかの演算が遅くなる。
    • 小銭の利用に対して正当化するのが難しい

    認証に対する競争

    Dedicated Hardware
    Lock-and-Key Chipsets
    • 非常に弱いアルゴリズムと少ない鍵のサイズを用いている。簡単な攻撃を受けやすい。
    • 大部分は「難解による安全性」で、そのアルゴリズムを秘密に保とうとする。
    • ユーザーを認証するための組み込みの設備は無い。-鍵を盗んでいつでも使うことができる。

    電子マネー iButtonの応用
    • バス/電車料金
    • パーキングメーター
    • テレフォンカード
    • ガソリンカード
    • 学生証(Student Union Card)
    • 利用設備メーター
    • ロッカー/郵便箱アクセス

    結論
    • 金銭iButtonDS1963Sは安全、効果的で多用途の電子マネートークンとなります。
    • 物理的と暗号化安全性のレベルは財布で持ち運ぶと同等に適している。
    • 中にある世界的なアルゴリズムは以前に比べてコストの上で金銭的にもデータの安全性でも高いレベルを達成している。
    • 金銭iButtonは暗号化を実行しないので、輸出や国家安全制限にはかからない。
    • 金銭iButtonはインターネット、イントラネットあるいは他の電子的ユーザー認証製品に対する素晴らしいユーザー認証トークンになります。

    DS1963Sのさらなる使用法

    It just keeps getting better!


    小さいメッセージの暗号化
    • ワンタイム・パッドは暗号理論の基礎概念である
    • (不可逆になる)SHA-1は良いワンタイム・パッド発生器を作る。

    ワンタイム・パッドの理論
    • 与えられたバイトをPADと名付ける。
    • 秘密のランダムなバイトでそのバイトとXORを計算する。
    • その結果はランダムな数字になる。
    • 元のバイトについての情報はPADバイトが分からない限り無い。
    • これは最も安全な暗号化である。

    Padは最も基本的な暗号化
    • 会話をする双方の仲間がまったく同じpadを共有する。
    • Padは全て乱数を用いて作られる。
    • 破られることはない。
    • (PADが決して再び使われることが無ければ、各々のpadは一つのメッセージに有効である)

    Padを発生させるためにSHAを用いる
    • それを作るときに用いた暗証を知らなければ基本的にMACはランダムである。
    • 不可逆 - padは暗証をあばくことができない。
    • MACデータはワンタイム・パッドとして使われます。
    • 暗証はiButtonの安全を決してそのままにしない。
    • 仕事はiButtonの中で行われる。
    • ホストは単に単純なバイト幅のXORをするだけ。

    リプレイを防ぐためにランダム化する
    • 各々のメッセージをランダムにするランダムチャレンジ(この場合ではsaltと呼ぶ)を導入する。
    • メッセージの中にチャレンジを含める

    Small Message Encryption

    Small Message Decryption

    The DS1963S for Small Message Encryption/Decryption

    • 全てのメッセージは完全にランダムに見える。(同じメッセージが繰り返されたとしても)
    • 20byteのワンタイム・パッドは約1msでできる。
    • 非常に低コストの世界的クラスの安全性
    • XORを実行するのに1μ秒程度。
    • 暗証はDS1963Sの中に安全に保存される。
    • 組み込みの暗証回転装置


    匿名認証(Anonymous Authentication)

    • 彼が誰だか知らないが、彼が本人であると分かる。


    投票システム

    • 投票システムは各々、そして全ての投票者に安全に認証する必要がある。
    • 投票者の識別情報は秘密に保たれなければいけません。- 各人の投票は非公開である。
    • 今まで述べてきたDS1963Sの認証方式は全てトークンのシリアル番号を知るためにサーバーが要求します。


    匿名認証(Anonymous Authentication)

    • 暗証とデバイスのROM ID(シリアル番号)を結び付けない。
    • エージェント(ローカルコンピュータあるいはiButton読み取り器)はサーバーにROM IDを送らない
    • サーバーはiButtonを認証できるが、iButtonからは個人を得ることはできない。


    The DS1961S and DS2432

    • EEPROMを内蔵した新しいSHAデバイス


    特徴

    • 一つの暗証、4つのデータページ
    • 8byteのスクラッチパッド(32byteに対して)
    • 適切なMACがなければメモリーに書き込めない(デバイスに書く暗証を知らなければならない)
    • SHA演算がわずかに遅い
    • 電池が要らない!


    欠点(Drawbacks)

    • 一つの暗証(一つのサービスプロバイダー)
    • コプロセッサとしては動作しない(コプロセッサとしてDS1963Sを用いて動作するように設計されている)
    • EEPROMは間歇的な接続環境ではいくつかの特別な問題を持っている。
    • EEPROMは書き込み回数に限界がある。
    • 匿名能力を持たない。


    利点(Benefits)

    • 電源要らず
    • 小型
    • 安価


    将来(Future)

    • ICパッケージの中にDS1963Sコプロセッサを入れる
    • 匿名モードのDS1961Sトークン
    • デビットのみのコプロセッサ
    • 他の装置でのSHA-1