Changes between Version 2 and Version 3 of HowTo/BoostStudy4


Ignore:
Timestamp:
Feb 26, 2011, 11:21:59 AM (14 years ago)
Author:
村山 俊之
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TabularUnified HowTo/BoostStudy4

    v2 v3  
    5656 * タプルに名前をもたらす
    5757 * ライブラリの設計に取り入れればユーザーコードが柔軟に
     58
     59
     60== C++プログラマの為のセキュリティ入門 ==
     61
     62 * 基本的且つ普遍的な事柄が中心ですよ~
     63
     64=== セキュリティって? ===
     65
     66 * ツッコミが恐い世界w
     67 * ここ数年のトレンドは常に追っていこう
     68 * こうしておけば安心というのは幻想
     69 * セキュリティはトータル
     70 * コスパは重要
     71   * 存在時の被害よりコストが増大では意味がない
     72   * 攻撃に成功するのにかかるコストが十分に大きければよい
     73 * リスクアセスメント
     74   * 情報資産の棚卸し
     75   * CIA の観点からリスクを列挙 (機密性、完全性、可用性)
     76   * コストパフォーマンス
     77 * そもそも何を防ぐべき?
     78   * 意図しない/許さない
     79     * 権限の取得
     80     * 処理の実行
     81   * 情報の漏洩、盗聴、削除、改ざん
     82   * DoS
     83   * spam/嵐
     84   * H/W の損壊/盗難
     85 * どう防ぐべき?
     86   * 権限管理
     87   * 入力チェック <- ?
     88   * 入出力の正確なエンコード/デコード/エスケープ/アンエスケープ
     89   * 暗号
     90   * 証明
     91   * ケンジントンロック
     92   * 法的圧力
     93   * etc...
     94 * 公開されているロジックで (暗号の話)
     95 * 安全性の定義
     96 * 暗号の安全性
     97   * 情報理論的安全性
     98     * 正解が (理論的に) わからない →強秘匿性
     99       * 暗号文と同じ分量の鍵情報が必要になる。使い回しできない。
     100   * 計算量的安全性
     101     * 大量のコスト (時間、CPU) をかけなければ解けない
     102       * コンピュータの進化は早い…
     103 * 事例を追いかけよう
     104
     105=== さまざまな問題 ===
     106
     107 * 通信の盗聴
     108 * バッファオーバーフロー
     109 * 整数オーバーフロー
     110 * エスケープ
     111 * セッションハイジャック
     112 * 辞書攻撃
     113 * ファイルパス
     114 * ファイルコンテンツ
     115
     116=== 歴史 ===
     117
     118 * DES の最強っぷりと衰退、そして AES へ
     119
     120=== さまざまな技術 ===
     121
     122 * ハッシュ関数
     123   * MD5, SHA1, SHA2
     124     * MD5, SHA1 は非推奨…
     125   * 一方向性関数
     126 * 暗号
     127   * 秘密分割
     128     * XOR
     129   * 秘密分散
     130     * 多項式+有限体
     131   * 上記 2つは情報理論的暗号性、強秘匿性があるよ
     132 * 乱数
     133   * 真性乱数
     134     * 偏りが現れる。
     135     * 一般的に遅い。
     136   * 疑似乱数
     137 * PKI
     138   * 実在証明でしかない
     139   * おれおれ証明書だとなりすましを防げないよ
     140   * 証明書の更新時には秘密鍵もちゃんと更新しよう!
     141 * TPI
     142
     143=== C++ では ===
     144
     145 * クライアントで動作するコードであれば
     146   * すべてクラック可能
     147   * システム管理者とユーザーとゲストとリモートアクセスに対してどのようにあるべきか
     148   * クラックにも難易度が
     149   * コードサイニング (署名)
     150 * サーバーで動作するコードであれば
     151   * 入出力チェックを厳格に
     152 * バッファーオーバーラン対策
     153   * 文字数上限チェック
     154     * マルチバイト周り、サロゲートペア周りでちょんぼしないこと
     155   * 整数オーバーフロー対策→値域上限チェック
     156   * 正しくエスケープ
     157 * 不正な文字エンコードの検出
     158   * UTF-8 でのチェック逃れ
     159   * マルチバイト文字列での閉じ文字喰い
     160 * ファイルパス
     161   * 相対パスのチェック
     162   * NGワードの除外
     163   * 偽バックスラッシュ
     164     * UNICODE 外のエンコードに変換時にバックスラッシュに化ける
     165   * UNICODE 制御文字
     166 * Shift と XOR を使った文字列の難読化
     167   * nul 文字を nul 文字のままに出来る
     168 * セキュアな乱数
     169   * Windows: CryptGenRandom()
     170   * Linux: /dev/random, /dev/urandom
     171     * /dev/random は長時間ブロックする場合がある。 /dev/urandom は必ずしもセキュアではない。
     172 * ライブラリ
     173   * Crypto++
     174   * Crypto API
     175 * Windows の Crypt API を使用する上での注意
     176 * JISEC と JCMVP
     177
     178=== 参考情報 ===
     179
     180 * IPA
     181   * セキュアプログラミング講座
     182   * JISEC
     183   * JCMVP
     184   * セミナー・イベント
     185 * JPCERT CC
     186 * セキュリティーホールmemo
     187 * 本当は恐い文字コードの話
     188 * それ Unicode で
     189 * 暗号技術大全