Suche senden
Hochladen
C++プログラマの為のセキュリティ入門
•
Als PPTX, PDF herunterladen
•
3 gefällt mir
•
2,955 views
道化師 堂華
Folgen
C++プログラマ向け、セキュリティ入門。 Boost.勉強会 #4 ( http://atnd.org/events/11551 )にて発表。
Weniger lesen
Mehr lesen
Technologie
Bildung
Business
Melden
Teilen
Melden
Teilen
1 von 58
Jetzt herunterladen
Empfohlen
ZDD入門-お姉さんを救う方法
ZDD入門-お姉さんを救う方法
nishio
Greed is Good: 劣モジュラ関数最大化とその発展
Greed is Good: 劣モジュラ関数最大化とその発展
Yuichi Yoshida
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
A3C解説
A3C解説
harmonylab
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
最適輸送入門
最適輸送入門
joisino
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
Empfohlen
ZDD入門-お姉さんを救う方法
ZDD入門-お姉さんを救う方法
nishio
Greed is Good: 劣モジュラ関数最大化とその発展
Greed is Good: 劣モジュラ関数最大化とその発展
Yuichi Yoshida
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
A3C解説
A3C解説
harmonylab
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
最適輸送入門
最適輸送入門
joisino
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
Taketo Sano
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Genya Murakami
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
nishio
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
Akira Masuda
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度
Seiichi Uchida
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
Kazuhide Okamura
π計算
π計算
Yuuki Takano
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
MITSUNARI Shigeo
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
Hakky St
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
Preferred Networks
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
hoxo_m
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
Kensuke Otsuki
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
Rユーザのためのspark入門
Rユーザのためのspark入門
Shintaro Fukushima
第3回web技術勉強会 暗号技術編その1
第3回web技術勉強会 暗号技術編その1
tzm_freedom
Wrapping a C++ library with Cython
Wrapping a C++ library with Cython
fuzzysphere
Weitere ähnliche Inhalte
Was ist angesagt?
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
Taketo Sano
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Genya Murakami
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
nishio
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
Akira Masuda
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度
Seiichi Uchida
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
Kazuhide Okamura
π計算
π計算
Yuuki Takano
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
MITSUNARI Shigeo
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
Hakky St
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
Preferred Networks
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
hoxo_m
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
Kensuke Otsuki
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
Rユーザのためのspark入門
Rユーザのためのspark入門
Shintaro Fukushima
Was ist angesagt?
(20)
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
Twitterのsnowflakeについて
Twitterのsnowflakeについて
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
π計算
π計算
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Rユーザのためのspark入門
Rユーザのためのspark入門
Ähnlich wie C++プログラマの為のセキュリティ入門
第3回web技術勉強会 暗号技術編その1
第3回web技術勉強会 暗号技術編その1
tzm_freedom
Wrapping a C++ library with Cython
Wrapping a C++ library with Cython
fuzzysphere
Introduction to cython
Introduction to cython
Atsuo Ishimoto
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
hiyohiyo
2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF
Atomu Hidaka
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
Kuniyasu Suzaki
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
健一 茂木
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
グローバルセキュリティエキスパート株式会社(GSX)
[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# RPC
Yoshifumi Kawai
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Masashi Shibata
Recording and Replay on HoloLens [dotNET 600]
Recording and Replay on HoloLens [dotNET 600]
Tomoki Hayashi
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
marsee101
Boost17 cpplinq
Boost17 cpplinq
miki_hirofumi
C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)
Takashi Kawasaki
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
Study Group by SciencePark Corp.
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
Atomu Hidaka
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
Shingo Sasaki
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
Ähnlich wie C++プログラマの為のセキュリティ入門
(20)
第3回web技術勉強会 暗号技術編その1
第3回web技術勉強会 暗号技術編その1
Wrapping a C++ library with Cython
Wrapping a C++ library with Cython
Introduction to cython
Introduction to cython
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
2015 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)
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
[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# RPC
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Recording and Replay on HoloLens [dotNET 600]
Recording and Replay on HoloLens [dotNET 600]
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
Boost17 cpplinq
Boost17 cpplinq
C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Mehr von 道化師 堂華
Reflection with xamarin.forms
Reflection with xamarin.forms
道化師 堂華
独りガラパゴス開発
独りガラパゴス開発
道化師 堂華
C++ tips4 cv修飾編
C++ tips4 cv修飾編
道化師 堂華
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
道化師 堂華
C++ tips2 インクリメント編
C++ tips2 インクリメント編
道化師 堂華
C++ tips1 #include編
C++ tips1 #include編
道化師 堂華
エラーハンドリングモデル考察
エラーハンドリングモデル考察
道化師 堂華
C++0x総復習
C++0x総復習
道化師 堂華
エラーハンドリング
エラーハンドリング
道化師 堂華
マスタリング バベル
マスタリング バベル
道化師 堂華
並列プログラミング入門!&おさらい!
並列プログラミング入門!&おさらい!
道化師 堂華
バグベアード入門
バグベアード入門
道化師 堂華
LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介
道化師 堂華
Mehr von 道化師 堂華
(13)
Reflection with xamarin.forms
Reflection with xamarin.forms
独りガラパゴス開発
独りガラパゴス開発
C++ tips4 cv修飾編
C++ tips4 cv修飾編
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
C++ tips2 インクリメント編
C++ tips2 インクリメント編
C++ tips1 #include編
C++ tips1 #include編
エラーハンドリングモデル考察
エラーハンドリングモデル考察
C++0x総復習
C++0x総復習
エラーハンドリング
エラーハンドリング
マスタリング バベル
マスタリング バベル
並列プログラミング入門!&おさらい!
並列プログラミング入門!&おさらい!
バグベアード入門
バグベアード入門
LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介
C++プログラマの為のセキュリティ入門
1.
C++プログラマの為のセキュリティ入門 Boost.勉強会 #4
東京 ( 2011-02-26 )
2.
この発表の内容について 具体的なコード寄りの話・・・ではなく、そもそもどういったことをやらなければならないのかと言った基本的かつ普遍的な事柄を中心とした内容になっています。 C++プログラマの為のセキュリティ入門
Boost.勉強会 #4 東京 2
3.
概要 セキュリティって? さまざまな問題
歴史 さまざまな技術 C++では JISECとJCMVP 参考情報 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 3
4.
セキュリティって? C++プログラマの為のセキュリティ入門
5.
セキュリティって? はじめに・・・ C++プログラマの為のセキュリティ入門
Boost.勉強会 #4 東京 5
6.
ツッコミ怖い!><
7.
セキュリティって? 後でもそのツッコミの怖さを紹介しますが、とにかくツッコミがいろんな意味で怖い世界です。 ここ数年のトレンドはしっかり追跡してないんでその点についてはご容赦を。
C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 7
8.
セキュリティって? 多くの方がこの発表に求めているであろうもの: 「こうしておけば大丈夫/安心です!」という類のもの
そんなものはあり得ません! そんな幻想は今すぐ捨ててください! C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 8
9.
セキュリティはトータル システム全体のセキュリティの強度はそのシステム全体の中でもっとも脆弱な部分の強度にほぼ等しい。 ガチガチのセキュリティで固めたつもりでも1点の脆弱性で台無しになることもある。
C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 9
10.
コストパフォーマンスは重要 各種セキュリティの導入・運用には一般的にコストがかかるが、そのコストがセキュリティを破られ時の損害を上回るようでは意味がない。 C++プログラマの為のセキュリティ入門
Boost.勉強会 #4 東京 10
11.
コストパフォーマンスは重要 万が一の損害からセキュリティにかけていい適切なコストを考える。 適切なレベルでの損害/リスクの最小化を考える。
C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 11 × 絶対に破られてはいけない。 絶対になんてものがそもそも幻想。 そんなスタンスでは無尽蔵にコストがかかる。 ○
12.
コストパフォーマンスは重要 攻撃者視点に立っても、攻撃者がその攻撃を成功させたときに得られるメリットより、攻撃を成功させる為に必要なコストを上回らせることができれば一般的には十分。 C++プログラマの為のセキュリティ入門
Boost.勉強会 #4 東京 12
13.
リスクアセスメント 情報資産の棚卸 CIAの観点からリスクを列挙
機密性 Confidential 完全性 Integrity 可用性 Availability それぞれのリスクの対策に必要なコストと損害発生時の被害を天秤にかけ総合的に判断しどのような対策を施すのか決定する。 リスクとしては小さいが対策には非常にコストがかかる場合には「対応しない」という選択もあり。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 13
14.
そもそもなにを防ぐべきか? 意図していない/許していない権限の取得 意図していない/許していない処理の実行
情報の漏えい/盗聴/削除/改ざん DoS スパム/荒らし ハードウェアの損壊/盗難 直接的にはソフトウェアの範疇ではないが、そういった事態に対し損害を最小化するソフトウェア設計になっていることが望ましい。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 14
15.
どう防げばいいのか? 適切且つ正確な権限管理 入力チェック
自分のコードにとっては問題ないデータでもシステムの提供するAPIやシェル等(Webアプリではブラウザなど)がやられてしまうケースが存在する。 入出力の正確なエンコード/デコード/エスケープ/アンエスケープ 暗号 証明 ケンジントンロック 法的圧力 etc C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 15
16.
公開されているロジックで ロジック自体が秘匿にされている暗号製品なんかもありますが、セキュリティ業界ではロジック自体を秘匿にするような暗号はよくないとされ実際一般的には脆弱な暗号であることが多いようです。 ロジックが公開されていれば、外部の第三者によるツッコミが入り洗練されます。
C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 16
17.
安全性の定義 各種情報セキュリティ関連の技術や製品には普通その技術や製品を使うことでなにがどう安全なのか明確な定義があります。 それが無いようなものの信頼性は推して知るべし。
多くの場合、それを正しく理解したうえで正しく利用しないと台無しになります。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 17
18.
安全性の定義 ダメな例(錠前編): 錠前をつけても鍵をかけていない。
錠前に鍵を刺しっぱなし。 錠前をつけてる扉の耐久力が極度に脆弱。 錠前の耐久力に対して保管物の価値が異常に高い。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 18
19.
暗号の安全性 情報理論的安全性 情報理論的安全性を持つ暗号文はどんなに時間をかけても解くことは不可能。->強秘匿性
計算量的安全性 計算量的安全性を持つ暗号文は一般的に現実的な時間の範囲では解けない。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 19
20.
暗号の安全性 情報理論的安全性のデメリット 暗号文と同じ分量の鍵情報が必要になる。
この鍵情報は使い回しが効かない。(使い回すと情報理論的安全性は失われる。) この鍵情報は素の真性乱数でなければならない。(疑似乱数などのアルゴリズムに頼った場合、情報理論的安全性は失われる。) C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 20
21.
暗号の安全性 計算量的安全性のデメリット 理屈的には時間をかければ解ける。
コンピュータの進化が速いこともこの問題に拍車をかける。 より高速に解く手法が発見される度に、脆弱になっていく。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 21
22.
事例を追いかけよう セキュリティ関連はこれだけやれば完璧・・・となかなか断言できるようなテーマではない。 仕事や趣味で手を出す分野のセキュリティインシデントをウォッチし続けよう。
他山の石としよう。 クラッカーは飽きもせずあの手この手を試し続けるので既知の問題の対策を十分に施しているつもりでも、新しい攻撃手法により思わぬ穴を突かれることもある。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 22
23.
さまざまな問題 C++プログラマの為のセキュリティ入門
24.
さまざまな問題 通信の盗聴 バッファーオーバーフロー
整数オーバーフロー エスケープ セッションハイジャック 辞書攻撃 ファイルパス ファイルコンテンツ C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 24
25.
歴史 C++プログラマの為のセキュリティ入門
26.
歴史 DESの最強っぷりと衰退、そしてAESへ。 DESとは米国で公式連邦情報処理基準として採用された共通鍵のブロック暗号
DESの類似暗号の大量発生->DES以外全滅 DESの類似暗号には通じた攻撃も、DESだけには通じないという事態が多発。 最後はDESも・・・ AESへの道のり AES2 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 26
27.
さまざまな技術 C++プログラマの為のセキュリティ入門
28.
さまざまな技術 ハッシュ関数 代表的なハッシュ関数アルゴリズム
MD5,SHA1,SHA2 MD5やSHA1 は古いので改竄防止目的などではもう非推奨なので注意。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 28
29.
さまざまな技術 ハッシュ関数 一方向性関数
一般的なハッシュ関数の特徴 入力値によって出力値が変化する。 入力値が同じならば同じ出力値が得られる。 入力値が1ビットでも違えば出力値のビットパターン全体がごっそりと変化する。 入力値は可変長で出力値は固定長。 セキュアなハッシュ関数の特徴 出力値から部分的な入力値の予想すらも困難であること。 特定の出力値が得られる入力値の計算が困難であること。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 29
30.
さまざまな技術 ハッシュ関数 ハッシュ関数の用途
入力値を保存/記録しないで、以前の入力値と同値であるかどうかを検証 破損チェック 改ざん防止 ハッシュ関数を使用する際、非公開のマジックワードを入力値に加えておくと KDF拡張 出力値=H(入力値) -> 出力値=H(H(入力値)+シーケンス番号)の形でハッシュ値を引き延ばすことが可能。 シーケンスの部分は int等の整数値を使用する。 10GB以上の規模に引き延ばす場合は64bit整数を使用する。 疑似乱数としても使用可能。 値空間は元のハッシュ関数と同じ 次世代ハッシュ関数は並列処理化が可能 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 30
31.
さまざまな技術 暗号 鍵暗号
共通鍵暗号 公開/秘密鍵暗号 ブロック暗号/ストリーム暗号 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 31
32.
さまざまな技術 暗号 秘密分割
XOR 秘密分散 多項式+有限体 ->秘密分割・秘密分散には一般的に情報理論的安全性と強秘匿性があります。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 32
33.
さまざまな技術 暗号 データ長やエントロピーの問題
一般的に暗号化では平文のデータ長は暗号されない。データ長がバレるだけでも望ましくないケースもあるので注意が必要。 例えばパスワードのようなデータは短いってのがばれるだけでも、ブルートフォースで簡単に敗れることがわかるのまずい。 そもそもパスワードなんかはハッシュ値で保存するべきですが。 性別のようなbool値なデータは単独で同じ鍵を使ったブロック暗号で暗号化してもほとんど意味がない。 対策:必要に応じて暗号化前にランダムな値で適当な長さにパディングする。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 33
34.
さまざまな技術 乱数 真性乱数
ほぼ間違いなく偏りが現れる。 一般的に疑似乱数に比べ遅い。 疑似乱数 質の良くない疑似乱数では、アルゴリズム特有の偏りが現れる。 シードが同じなら同じ出力が得られる。 ハッシュ関数とほぼ逆の特性となる。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 34
35.
さまざまな技術 PKI 詳細はこの発表では触れません自分で調べてください。
C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 35
36.
さまざまな技術 PKI ポイント
実在証明でしかない。 実在するその会社なりお店なりがブラックでないことまでは保証されない。 盗聴/改竄/成りすましなどを防ぐことのできる正しいSSLの通信を利用する為には問題の無い証明書が必要。 所謂オレオレ証明書では成りすましを防げない為、盗聴/改竄/成りすましを防げない。 証明書の更新時には秘密鍵をちゃんと更新しよう! その為の証明書の更新です。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 36
37.
さまざまな技術 TPM( Trusted
Platform Module ) ハードウェア耐タンパー性をもつセキュリティチップ TPMは以下の機能を提供する。 RSA 演算 鍵生成 鍵格納 SHA-1ハッシュ ハッシュ値計算 ハッシュ値保管 乱数生成 TPM1.2から以下の機能が追加された。 カウンタ 単純増加カウンタ ティックカウンタ オーナー権委任 (パスワードは公開しない) 不揮発性ストレージ保存機能 ※http://ja.wikipedia.org/wiki/Trusted_Platform_Moduleより抜粋 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 37
38.
C++では C++プログラマの為のセキュリティ入門
39.
C++では クライアントで動作するコードであれば 全てクラック可能。
システム管理者とユーザーとゲストとリモートアクセスに対してどのようにあるべきなのか? クラックにも難易度がある。 コードサイニング C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 39
40.
C++では サーバーで動作するコード(外部との入出力を行うコード)であれば 入力チェックを厳格に
入出力のエンコード/デコード/エスケープ/アンエスケープを正しく アクセス権を正しく設定・処理 必要に応じてSSLを使用し安全に通信を行う。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 40
41.
C++では バッファーオーバーラン対策 ->文字数上限チェック
マルチバイトまわりでチョンボしないこと。 サロゲートペアまわりでチョンボしないこと。 整数オーバーフロー対策->値域上限チェック 正しくエスケープ どこかのフェーズでNUL文字となるコードを挿入された場合も考慮すること->これを気を付けていないとconst char * で処理を行った際にNUL文字以降の部分がエスケープ等の処理を免れることが発生してしまう。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 41
42.
C++では 不正な文字エンコードの検出 UTF-8
でのチェック逃れ マルチバイト文字列での閉じ文字喰い ファイルパス 相対パスのチェック NGワードの除外( Windows での CON, AUX 等 ) 偽バックスラッシュ UNICODE制御文字 ShiftとXORを使った文字列の難読化 NUL文字はNUL文字のままにできる。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 42
43.
C++では セキュアな乱数 Windows
であれば CryptGenRandom() を使う。 Linux であれば /dev/random あるいは /dev/urandomを使う。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 43
44.
C++では ライブラリ Crypto++
Crypto API OpenSSL C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 44
45.
C++では Windows の
Crypto API を使用する上での注意。 CryptAcquireContext() を呼び出した際に環境によっては NTE_BAD_KEYSET エラー(GetLastError()の戻り値)になる場合がある。 その場合にのみ CRYPT_NEWKEYSET を指定して CryptAcquireContext()の最後の引数に加えて呼び出す必要がある。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 45
46.
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;
47.
C++では Unix/Linux 系での注意。
/dev/random および/dev/urandomが無い環境もある。 必要に応じてこれらの実装をインストールする必要があることをなんらかの形でユーザーに通知。 /dev/random の読み込むコードは十分なエントロピーが確保できるまで待たされる場合がある。 /dev/urandomは /dev/random のように待たされることはないが、セキュアな乱数であることの担保はない。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 47
48.
JISECとJCMVP C++プログラマの為のセキュリティ入門
49.
JISECとJCMVP 本当に大丈夫なのか疑問な製品も多いし、残念ながら明らかにそりゃ駄目だろうって製品も多い。 ほんとうにこの製品に情報をあずけて大丈夫なの?
->適切な対策が施されてることを知りたい。 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 49
50.
JISECとJCMVP JISEC IPAが運営しているITセキュリティ評価及び認証制度
CC 国際的なセキュリティ評価基準 ISO/IEC 15408 CEM 国際的なセキュリティ評価方法 ISO/IEC 18045 ST確認制度 限定的な確認制度 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 50
51.
JISECとJCMVP JCMVP IPAが運営している暗号モジュール試験及び認証制度
C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 51
52.
JISECとJCMVP 製品/サービスの売りになる セキュリティ関連の為の開発工数の予算をゲットできる。
申請そのものの直接の費用は規模に応じて変わる。( 審査を行う第三者機関の人件費分は最低でもかかるよね?ってあたりから想像してください。 ) C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 52
53.
参考情報 C++プログラマの為のセキュリティ入門
54.
参考情報::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
55.
参考情報::個人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
56.
参考情報::書籍 暗号技術大全ISBN-10: 4797319119ISBN-13:
978-4797319118 C++プログラマの為のセキュリティ入門 Boost.勉強会 #4 東京 56
57.
質疑応答 C++プログラマの為のセキュリティ入門
58.
ご清聴ありがとうございました。 C++プログラマの為のセキュリティ入門
Jetzt herunterladen