SlideShare ist ein Scribd-Unternehmen logo
1 von 58
C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京  ( 2011-02-26 )
この発表の内容について 具体的なコード寄りの話・・・ではなく、そもそもどういったことをやらなければならないのかと言った基本的かつ普遍的な事柄を中心とした内容になっています。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 2
概要 セキュリティって? さまざまな問題 歴史 さまざまな技術 C++では JISECとJCMVP 参考情報 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 3
セキュリティって? C++プログラマの為のセキュリティ入門
セキュリティって? はじめに・・・ C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 5
ツッコミ怖い!><
セキュリティって? 後でもそのツッコミの怖さを紹介しますが、とにかくツッコミがいろんな意味で怖い世界です。 ここ数年のトレンドはしっかり追跡してないんでその点についてはご容赦を。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 7
セキュリティって? 多くの方がこの発表に求めているであろうもの: 「こうしておけば大丈夫/安心です!」という類のもの そんなものはあり得ません! そんな幻想は今すぐ捨ててください! C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 8
セキュリティはトータル システム全体のセキュリティの強度はそのシステム全体の中でもっとも脆弱な部分の強度にほぼ等しい。 ガチガチのセキュリティで固めたつもりでも1点の脆弱性で台無しになることもある。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 9
コストパフォーマンスは重要 各種セキュリティの導入・運用には一般的にコストがかかるが、そのコストがセキュリティを破られ時の損害を上回るようでは意味がない。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 10
コストパフォーマンスは重要 万が一の損害からセキュリティにかけていい適切なコストを考える。 適切なレベルでの損害/リスクの最小化を考える。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 11 × 絶対に破られてはいけない。 絶対になんてものがそもそも幻想。 そんなスタンスでは無尽蔵にコストがかかる。 ○
コストパフォーマンスは重要 攻撃者視点に立っても、攻撃者がその攻撃を成功させたときに得られるメリットより、攻撃を成功させる為に必要なコストを上回らせることができれば一般的には十分。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 12
リスクアセスメント 情報資産の棚卸 CIAの観点からリスクを列挙 機密性 Confidential 完全性 Integrity 可用性 Availability それぞれのリスクの対策に必要なコストと損害発生時の被害を天秤にかけ総合的に判断しどのような対策を施すのか決定する。 リスクとしては小さいが対策には非常にコストがかかる場合には「対応しない」という選択もあり。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 13
そもそもなにを防ぐべきか? 意図していない/許していない権限の取得 意図していない/許していない処理の実行 情報の漏えい/盗聴/削除/改ざん DoS スパム/荒らし ハードウェアの損壊/盗難 直接的にはソフトウェアの範疇ではないが、そういった事態に対し損害を最小化するソフトウェア設計になっていることが望ましい。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 14
どう防げばいいのか? 適切且つ正確な権限管理 入力チェック 自分のコードにとっては問題ないデータでもシステムの提供するAPIやシェル等(Webアプリではブラウザなど)がやられてしまうケースが存在する。 入出力の正確なエンコード/デコード/エスケープ/アンエスケープ 暗号 証明 ケンジントンロック 法的圧力 etc C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 15
公開されているロジックで ロジック自体が秘匿にされている暗号製品なんかもありますが、セキュリティ業界ではロジック自体を秘匿にするような暗号はよくないとされ実際一般的には脆弱な暗号であることが多いようです。 ロジックが公開されていれば、外部の第三者によるツッコミが入り洗練されます。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 16
安全性の定義 各種情報セキュリティ関連の技術や製品には普通その技術や製品を使うことでなにがどう安全なのか明確な定義があります。 それが無いようなものの信頼性は推して知るべし。 多くの場合、それを正しく理解したうえで正しく利用しないと台無しになります。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 17
安全性の定義 ダメな例(錠前編): 錠前をつけても鍵をかけていない。 錠前に鍵を刺しっぱなし。 錠前をつけてる扉の耐久力が極度に脆弱。 錠前の耐久力に対して保管物の価値が異常に高い。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 18
暗号の安全性 情報理論的安全性 情報理論的安全性を持つ暗号文はどんなに時間をかけても解くことは不可能。->強秘匿性 計算量的安全性 計算量的安全性を持つ暗号文は一般的に現実的な時間の範囲では解けない。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 19
暗号の安全性 情報理論的安全性のデメリット 暗号文と同じ分量の鍵情報が必要になる。 この鍵情報は使い回しが効かない。(使い回すと情報理論的安全性は失われる。) この鍵情報は素の真性乱数でなければならない。(疑似乱数などのアルゴリズムに頼った場合、情報理論的安全性は失われる。) C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 20
暗号の安全性 計算量的安全性のデメリット 理屈的には時間をかければ解ける。 コンピュータの進化が速いこともこの問題に拍車をかける。 より高速に解く手法が発見される度に、脆弱になっていく。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 21
事例を追いかけよう セキュリティ関連はこれだけやれば完璧・・・となかなか断言できるようなテーマではない。 仕事や趣味で手を出す分野のセキュリティインシデントをウォッチし続けよう。 他山の石としよう。 クラッカーは飽きもせずあの手この手を試し続けるので既知の問題の対策を十分に施しているつもりでも、新しい攻撃手法により思わぬ穴を突かれることもある。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 22
さまざまな問題 C++プログラマの為のセキュリティ入門
さまざまな問題 通信の盗聴 バッファーオーバーフロー 整数オーバーフロー エスケープ セッションハイジャック 辞書攻撃 ファイルパス ファイルコンテンツ C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 24
歴史 C++プログラマの為のセキュリティ入門
歴史 DESの最強っぷりと衰退、そしてAESへ。 DESとは米国で公式連邦情報処理基準として採用された共通鍵のブロック暗号 DESの類似暗号の大量発生->DES以外全滅 DESの類似暗号には通じた攻撃も、DESだけには通じないという事態が多発。 最後はDESも・・・ AESへの道のり AES2 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 26
さまざまな技術 C++プログラマの為のセキュリティ入門
さまざまな技術 ハッシュ関数 代表的なハッシュ関数アルゴリズム MD5,SHA1,SHA2 MD5やSHA1 は古いので改竄防止目的などではもう非推奨なので注意。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 28
さまざまな技術 ハッシュ関数 一方向性関数 一般的なハッシュ関数の特徴 入力値によって出力値が変化する。 入力値が同じならば同じ出力値が得られる。 入力値が1ビットでも違えば出力値のビットパターン全体がごっそりと変化する。 入力値は可変長で出力値は固定長。 セキュアなハッシュ関数の特徴 出力値から部分的な入力値の予想すらも困難であること。 特定の出力値が得られる入力値の計算が困難であること。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 29
さまざまな技術 ハッシュ関数 ハッシュ関数の用途 入力値を保存/記録しないで、以前の入力値と同値であるかどうかを検証 破損チェック 改ざん防止 ハッシュ関数を使用する際、非公開のマジックワードを入力値に加えておくと KDF拡張 出力値=H(入力値) -> 出力値=H(H(入力値)+シーケンス番号)の形でハッシュ値を引き延ばすことが可能。 シーケンスの部分は int等の整数値を使用する。 10GB以上の規模に引き延ばす場合は64bit整数を使用する。 疑似乱数としても使用可能。 値空間は元のハッシュ関数と同じ 次世代ハッシュ関数は並列処理化が可能 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 30
さまざまな技術 暗号 鍵暗号 共通鍵暗号 公開/秘密鍵暗号 ブロック暗号/ストリーム暗号 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 31
さまざまな技術 暗号 秘密分割 XOR 秘密分散 多項式+有限体 ->秘密分割・秘密分散には一般的に情報理論的安全性と強秘匿性があります。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 32
さまざまな技術 暗号 データ長やエントロピーの問題 一般的に暗号化では平文のデータ長は暗号されない。データ長がバレるだけでも望ましくないケースもあるので注意が必要。 例えばパスワードのようなデータは短いってのがばれるだけでも、ブルートフォースで簡単に敗れることがわかるのまずい。 そもそもパスワードなんかはハッシュ値で保存するべきですが。 性別のようなbool値なデータは単独で同じ鍵を使ったブロック暗号で暗号化してもほとんど意味がない。 対策:必要に応じて暗号化前にランダムな値で適当な長さにパディングする。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 33
さまざまな技術 乱数 真性乱数 ほぼ間違いなく偏りが現れる。 一般的に疑似乱数に比べ遅い。 疑似乱数 質の良くない疑似乱数では、アルゴリズム特有の偏りが現れる。 シードが同じなら同じ出力が得られる。 ハッシュ関数とほぼ逆の特性となる。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 34
さまざまな技術 PKI 詳細はこの発表では触れません自分で調べてください。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 35
さまざまな技術 PKI ポイント 実在証明でしかない。 実在するその会社なりお店なりがブラックでないことまでは保証されない。 盗聴/改竄/成りすましなどを防ぐことのできる正しいSSLの通信を利用する為には問題の無い証明書が必要。 所謂オレオレ証明書では成りすましを防げない為、盗聴/改竄/成りすましを防げない。 証明書の更新時には秘密鍵をちゃんと更新しよう! その為の証明書の更新です。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 36
さまざまな技術 TPM( Trusted Platform Module ) ハードウェア耐タンパー性をもつセキュリティチップ TPMは以下の機能を提供する。 RSA  演算 鍵生成 鍵格納 SHA-1ハッシュ  ハッシュ値計算 ハッシュ値保管 乱数生成 TPM1.2から以下の機能が追加された。 カウンタ  単純増加カウンタ ティックカウンタ オーナー権委任 (パスワードは公開しない) 不揮発性ストレージ保存機能 ※http://ja.wikipedia.org/wiki/Trusted_Platform_Moduleより抜粋 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 37
C++では C++プログラマの為のセキュリティ入門
C++では クライアントで動作するコードであれば 全てクラック可能。 システム管理者とユーザーとゲストとリモートアクセスに対してどのようにあるべきなのか? クラックにも難易度がある。 コードサイニング C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 39
C++では サーバーで動作するコード(外部との入出力を行うコード)であれば 入力チェックを厳格に 入出力のエンコード/デコード/エスケープ/アンエスケープを正しく アクセス権を正しく設定・処理 必要に応じてSSLを使用し安全に通信を行う。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 40
C++では バッファーオーバーラン対策 ->文字数上限チェック マルチバイトまわりでチョンボしないこと。 サロゲートペアまわりでチョンボしないこと。 整数オーバーフロー対策->値域上限チェック 正しくエスケープ どこかのフェーズでNUL文字となるコードを挿入された場合も考慮すること->これを気を付けていないとconst char * で処理を行った際にNUL文字以降の部分がエスケープ等の処理を免れることが発生してしまう。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 41
C++では 不正な文字エンコードの検出 UTF-8 でのチェック逃れ マルチバイト文字列での閉じ文字喰い ファイルパス 相対パスのチェック NGワードの除外( Windows での CON, AUX 等 ) 偽バックスラッシュ UNICODE制御文字 ShiftとXORを使った文字列の難読化 NUL文字はNUL文字のままにできる。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 42
C++では セキュアな乱数 Windows であれば  CryptGenRandom() を使う。 Linux であれば /dev/random あるいは /dev/urandomを使う。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 43
C++では ライブラリ Crypto++ Crypto API OpenSSL C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 44
C++では Windows の Crypto API を使用する上での注意。 CryptAcquireContext() を呼び出した際に環境によっては NTE_BAD_KEYSET エラー(GetLastError()の戻り値)になる場合がある。 その場合にのみ CRYPT_NEWKEYSET を指定して CryptAcquireContext()の最後の引数に加えて呼び出す必要がある。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 45
C++では C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 46 //  Crypto Provider Handle の初期化 HCRYPTPROV handle; if (!CryptAcquireContext(&handle, NULL, NULL, PROV_RSA_FULL, CRYPT_SILENT)) {   if (GetLastError() == (DWORD)NTE_BAD_KEYSET) {     if (!CryptAcquireContext(&handle, NULL, NULL, PROV_RSA_FULL, CRYPT_SILENT | CRYPT_NEWKEYSET)) {       handle = NULL;     }   } else {     handle = NULL;   } } assert(NULL != handle); //  Crypto Provider Handle を使った処理 ... //  Crypto Provider Handle の解放 CryptReleaseContext(handle, 0); handle = NULL;
C++では Unix/Linux 系での注意。 /dev/random および/dev/urandomが無い環境もある。 必要に応じてこれらの実装をインストールする必要があることをなんらかの形でユーザーに通知。 /dev/random の読み込むコードは十分なエントロピーが確保できるまで待たされる場合がある。 /dev/urandomは /dev/random のように待たされることはないが、セキュアな乱数であることの担保はない。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 47
JISECとJCMVP C++プログラマの為のセキュリティ入門
JISECとJCMVP 本当に大丈夫なのか疑問な製品も多いし、残念ながら明らかにそりゃ駄目だろうって製品も多い。 ほんとうにこの製品に情報をあずけて大丈夫なの? ->適切な対策が施されてることを知りたい。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 49
JISECとJCMVP JISEC IPAが運営しているITセキュリティ評価及び認証制度 CC 国際的なセキュリティ評価基準 ISO/IEC 15408 CEM 国際的なセキュリティ評価方法 ISO/IEC 18045 ST確認制度 限定的な確認制度 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 50
JISECとJCMVP JCMVP IPAが運営している暗号モジュール試験及び認証制度 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 51
JISECとJCMVP 製品/サービスの売りになる セキュリティ関連の為の開発工数の予算をゲットできる。 申請そのものの直接の費用は規模に応じて変わる。( 審査を行う第三者機関の人件費分は最低でもかかるよね?ってあたりから想像してください。 ) C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 52
参考情報 C++プログラマの為のセキュリティ入門
参考情報::IPA IPA IPA セキュア・プログラミング講座http://www.ipa.go.jp/security/awareness/vendor/programmingv2/ JISEChttp://www.ipa.go.jp/security/jisec/ JCMVPhttp://www.ipa.go.jp/security/jcmvp/ セミナー・イベントhttp://www.ipa.go.jp/security/seminar/seminar.html JPCERT/CChttp://www.jpcert.or.jp/ C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 54
参考情報::個人Webサイト セキュリティホールmemohttp://www.st.ryukoku.ac.jp/~kjm/security/memo/ 本当は怖い文字コードの話http://gihyo.jp/admin/serial/01/charcode それ Unicode でhttp://openmya.hacker.jp/hasegawa/public/20061209/momiji.html C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 55
参考情報::書籍 暗号技術大全ISBN-10: 4797319119ISBN-13: 978-4797319118 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 56
質疑応答 C++プログラマの為のセキュリティ入門
ご清聴ありがとうございました。 C++プログラマの為のセキュリティ入門

Weitere ähnliche Inhalte

Was ist angesagt?

雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先Taketo Sano
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Yuya Unno
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用nishio
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計sairoutine
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpsonickun
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定Akira Masuda
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについてmoai kids
 
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度Seiichi Uchida
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!Kazuhide Okamura
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介MITSUNARI Shigeo
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章Hakky St
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement LearningPreferred Networks
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門hoxo_m
 
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)Kensuke Otsuki
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろHiroshi Yamashita
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門Shintaro Fukushima
 

Was ist angesagt? (20)

雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
 
π計算
π計算π計算
π計算
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門
 

Ähnlich wie C++プログラマの為のセキュリティ入門

第3回web技術勉強会 暗号技術編その1
第3回web技術勉強会 暗号技術編その1第3回web技術勉強会 暗号技術編その1
第3回web技術勉強会 暗号技術編その1tzm_freedom
 
Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cythonfuzzysphere
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cythonAtsuo Ishimoto
 
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93hiyohiyo
 
2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMFAtomu Hidaka
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)Kuniyasu Suzaki
 
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオンHyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン健一 茂木
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)NTT DATA Technology & Innovation
 
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...グローバルセキュリティエキスパート株式会社(GSX)
 
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼 [CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼 CODE BLUE
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCYoshifumi Kawai
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23Masashi Shibata
 
Recording and Replay on HoloLens [dotNET 600]
Recording and Replay on HoloLens [dotNET 600]Recording and Replay on HoloLens [dotNET 600]
Recording and Replay on HoloLens [dotNET 600]Tomoki Hayashi
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)marsee101
 
C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)Takashi Kawasaki
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようStudy Group by SciencePark Corp.
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMFAtomu Hidaka
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後Shingo Sasaki
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021Atsushi Nakamura
 

Ähnlich wie C++プログラマの為のセキュリティ入門 (20)

第3回web技術勉強会 暗号技術編その1
第3回web技術勉強会 暗号技術編その1第3回web技術勉強会 暗号技術編その1
第3回web技術勉強会 暗号技術編その1
 
Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cython
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cython
 
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
 
2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
 
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオンHyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
 
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
 
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼 [CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
 
Recording and Replay on HoloLens [dotNET 600]
Recording and Replay on HoloLens [dotNET 600]Recording and Replay on HoloLens [dotNET 600]
Recording and Replay on HoloLens [dotNET 600]
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
 
Boost17 cpplinq
Boost17 cpplinqBoost17 cpplinq
Boost17 cpplinq
 
C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
 

Mehr von 道化師 堂華

Reflection with xamarin.forms
Reflection with xamarin.formsReflection with xamarin.forms
Reflection with xamarin.forms道化師 堂華
 
独りガラパゴス開発
独りガラパゴス開発独りガラパゴス開発
独りガラパゴス開発道化師 堂華
 
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編道化師 堂華
 
C++ tips2 インクリメント編
C++ tips2 インクリメント編C++ tips2 インクリメント編
C++ tips2 インクリメント編道化師 堂華
 
エラーハンドリングモデル考察
エラーハンドリングモデル考察エラーハンドリングモデル考察
エラーハンドリングモデル考察道化師 堂華
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング道化師 堂華
 
マスタリング バベル
マスタリング バベルマスタリング バベル
マスタリング バベル道化師 堂華
 
並列プログラミング 入門!&おさらい!
並列プログラミング入門!&おさらい!並列プログラミング入門!&おさらい!
並列プログラミング 入門!&おさらい!道化師 堂華
 
LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介道化師 堂華
 

Mehr von 道化師 堂華 (13)

Reflection with xamarin.forms
Reflection with xamarin.formsReflection with xamarin.forms
Reflection with xamarin.forms
 
独りガラパゴス開発
独りガラパゴス開発独りガラパゴス開発
独りガラパゴス開発
 
C++ tips4 cv修飾編
C++ tips4 cv修飾編C++ tips4 cv修飾編
C++ tips4 cv修飾編
 
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
 
C++ tips2 インクリメント編
C++ tips2 インクリメント編C++ tips2 インクリメント編
C++ tips2 インクリメント編
 
C++ tips1 #include編
C++ tips1 #include編C++ tips1 #include編
C++ tips1 #include編
 
エラーハンドリングモデル考察
エラーハンドリングモデル考察エラーハンドリングモデル考察
エラーハンドリングモデル考察
 
C++0x総復習
C++0x総復習C++0x総復習
C++0x総復習
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング
 
マスタリング バベル
マスタリング バベルマスタリング バベル
マスタリング バベル
 
並列プログラミング 入門!&おさらい!
並列プログラミング入門!&おさらい!並列プログラミング入門!&おさらい!
並列プログラミング 入門!&おさらい!
 
バグベアード入門
バグベアード入門バグベアード入門
バグベアード入門
 
LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介
 

C++プログラマの為のセキュリティ入門