seccamp2017
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* セキュリティキャンプ2017用の特設ページ
-(by [[hikalium]], 2017-04.02)
** セキュアなCPUを自作しよう!〜OSECPU-VMゼミ〜 の基本情報
-セキュリティ・キャンプ全国大会2017の公式ページ: https://...
-時間帯: 3日間連続
-概要:
--講義「セキュアなCPUを自作しよう」では、2つのゼミがあり...
---ひとつは「OSECPU-VMゼミ」で、OSECPU-VMをFPGAに移植しま...
---もうひとつは「オリジナルCPUゼミ」で、自分で設計したCPU...
-必要機材: PCのみ
--FPGAボードは事前学習時に配布する予定です。キャンプ当日...
--PCに関しては、Quartus Prime Lite Edition v16.1 が動作す...
--http://dl.altera.com/requirements/16.1/
--- OSはWindowsもしくはLinuxであれば問題ありませんが、Mac...
-事前学習: あり
--このゼミは、事前学習を非常に重視しています。
---というのも、キャンプ当日の3日間だけでは、とてもCPUを移...
---事前学習では、一般的なCPUを構成する各回路の設計を学ん...
--ですから、事前学習に十分に時間を割ける自信があり、かつ...
---キャンプ当日は、実装済みのOSECPUで自作のアプリを走らせ...
** (0)そもそもOSECPU-VMとは?
- OSECPU-VMは、''圧倒的なバイトコード密度''と、''セキュリ...
-「30日でできる!OS自作入門」で有名な川合秀実氏(通称Kさ...
- ここOSECPU-Wikiは、その名の通り、OSECPUの情報がまとまっ...
-- しかし、ほとんどの情報は古くなってしまっているので、こ...
*** 圧倒的なバイトコード密度
- HelloWorldというプログラムを書いたことはありますか?そ...
- みなさんは、HelloWorldのプログラムをどれだけ小さくでき...
-- ちなみに何も考えずにCで書いてMacでコンパイルしたら8KB...
-- たぶん、"Hello, world"で12文字だから、12バイトよりは大...
- 大抵のみなさんは、小さくても100バイト程度かな、と思うで...
-- 100バイトにするのだって非常に困難です。
-- ちなみに、Linux(x86)では、58バイトで実現できるようです。
--- http://d.hatena.ne.jp/kikx/20061111
-- ここで、OSECPU-VMの場合を見てみましょう。
--- app0110_.ose
05 e2 51 6d 19 76 6c de b1 07 7d fc b6 64
--- OSECPUでは、''たったの&color(red){14バイト};でHelloWo...
- 「いやいや、きっと文字列表示に特化したCPUなんだろう。他...
-- そんなことはありません!
-- マンデルブロ集合:''&color(red){49バイト};''
~
http://osecpu.osask.jp/download/app0127a.png
~
~
-- インベーダーゲーム:''&color(red){430バイト};''
~
http://osecpu.osask.jp/download/invader.png
~
-- ちなみに他のOSでは:はりぼてOS: 1509バイト, win32: 256...
~
- もっと例を知りたいひとは、[[page0103]]を読むと良いでし...
-- ちなみに、マンデルブロ集合のプログラムは表示されるまで...
--- 30分くらいかかるそうです(Kさん曰く)。
-- 試す際は辛抱強く待ちましょう。
*** なぜこんなに高密度なアプリが書けるのか
- それは、コード体系を多層化し、フロントエンドコードでは...
-- OSECPU-VMのバイナリには、バックエンドコードとフロント...
-- フロントエンドコードは、''サイズをとにかく重視した設計...
--- 可変長の命令体系なのはもちろん、よく使う整数や命令は...
--- hh4エンコードの説明: [[page0106]]
--- フロントエンドコードの説明: [[page0107]]
-- バックエンドコードは、''シンプルさを追求した設計''にな...
--- 参考:[[page0072]]
--- 命令セットがシンプルなため、VMを移植することが容易に...
--- 私は実際にJavaScriptに移植しました。 > [https://githu...
*** OSECPU-VMとセキュリティ
- OSECPU-VMでは、セキュリティについてもバイトコードレベル...
- まず''メモリアドレスを指定してジャンプすること''が''で...
-- つまり、あらかじめ決められた位置にしか飛ぶことができな...
-- これにより、誤ってデータを実行してしまったり、中途半端...
- さらに''すべてのメモリアクセス''で''型チェックと範囲チ...
-- そもそも、メモリ上の任意のアドレスを読み込む命令自体が...
-- プログラムは「ポインタ」を介してのみメモリにアクセスで...
-- 悪さをしようとすると即座に「''&color(red){セキュリティ...
- これらの機能は、セキュリティだけでなく''バグの発見''に...
- もっと詳しく知りたい方は[[page0018]]を読んでみてくださ...
** (1)講義の概要
*** 講師について
- このゼミを主に担当する講師は[[hikalium]]です。
- 併設される「オリジナルCPUゼミ」を主に担当する今岡通博([...
-- 私は2013年からOSECPU-VMに関わっており、これまでVMのJav...
-- 今や、OSECPU-VMの開発者であるKさんに「OSECPUのことはhi...
--- なのでみなさん、OSECPU-VMのことは私に任せてください!...
- また、FPGAの実装に関しては、私以外にも今岡さんがサポー...
-- 今岡さんは、[[FPGAスタートアップ:https://fpgastartup.c...
-- 今岡さんはFPGAだけでなく低レイヤ全般について経験豊富な...
- というわけで、受講するみなさんは、サポート体制に関して...
-- いちばん大事なのは、''「OSECPUをFPGAに移植したい!」と...
*** OSECPU-VMとセキュリティ・キャンプについて
過去の特集ページは以下のとおりです。(かなり情報が古くな...
- [[seccamp2013]]
- [[seccamp2014]]
** (2)キャンプでは何をするのか
- このゼミの目標はただ一つ。「OSECPU-VMをFPGAに移植する!」
-- つまり「OSECPU」をつくる!ということです。(もはやVMで...
--- これ以降「OSECPU」と書かれているときには、FPGA上に実...
- なお、事前学習の比率が''それなりに大きい''ことだけは覚...
*** 事前学習ですること
- 事前学習では、まずFPGAに慣れるために、かんたんな組み合...
- 次に、CPUを構成する上で必要となる各回路(命令デコーダ、...
- 事前学習の終わりには、こちらの用意したFPGA版OSECPUを実...
-- このFPGA版OSECPUには、最低限の機能しか実装されていませ...
*** キャンプ当日にすること
- キャンプ本番では、みなさんが自分の手で書き込んだFPGA版O...
-- 例(ほんの一例なのでこれに従う必要は一切ありません!OS...
--- 簡単なアプリを書いてOSECPU上で実行させてみる
--- OSECPUからGPIOを操作できるようにして、OSECPUを用いてL...
--- 浮動小数点命令に対応してみる
--- VGA出力を追加して描画APIを実装する
--- パイプラインを実装して実行を高速化する
** (3)セキュリティの話は?
- OSECPU-VMはセキュリティを非常に重視した設計になっていま...
-- こんな脆弱性があるよ!とか、ここはもっとこうした方がい...
--- ちなみに、キャンプには設計者のKさんも別の授業の講師と...
- ただし、この講義は「ものづくりトラック」の一部ですから...
-- なので、セキュリティなんてわからないけれどCPUを作りた...
--- たとえそうだとしても、OSECPUの命令セットに触れること...
** (4)どんな学生に受講してほしいのか
- ''一生に1度くらいはCPUを作りたいと思っていた学生''
-- まさにその夢をかなえるのにぴったりな機会です!
-''事前学習に時間が取れる学生''
--試験期間(の前後)や修学旅行などの時期は事前学習を完全...
--手持ちのPCがない人は残念ながら事前学習に取り組めないた...
-''優秀な学生じゃないとだめですか?''
--もちろん優秀な学生は大歓迎ですが、まだ技術が足りないな...
~
- ''ただCPUをFPGA上に実装するなんてつまらない!''
- ''せっかくCPUをつくれるのだから、これまでにない命令セッ...
-- そういったみなさんに、この講義をおすすめします。
* こめんと欄
#comment
終了行:
* セキュリティキャンプ2017用の特設ページ
-(by [[hikalium]], 2017-04.02)
** セキュアなCPUを自作しよう!〜OSECPU-VMゼミ〜 の基本情報
-セキュリティ・キャンプ全国大会2017の公式ページ: https://...
-時間帯: 3日間連続
-概要:
--講義「セキュアなCPUを自作しよう」では、2つのゼミがあり...
---ひとつは「OSECPU-VMゼミ」で、OSECPU-VMをFPGAに移植しま...
---もうひとつは「オリジナルCPUゼミ」で、自分で設計したCPU...
-必要機材: PCのみ
--FPGAボードは事前学習時に配布する予定です。キャンプ当日...
--PCに関しては、Quartus Prime Lite Edition v16.1 が動作す...
--http://dl.altera.com/requirements/16.1/
--- OSはWindowsもしくはLinuxであれば問題ありませんが、Mac...
-事前学習: あり
--このゼミは、事前学習を非常に重視しています。
---というのも、キャンプ当日の3日間だけでは、とてもCPUを移...
---事前学習では、一般的なCPUを構成する各回路の設計を学ん...
--ですから、事前学習に十分に時間を割ける自信があり、かつ...
---キャンプ当日は、実装済みのOSECPUで自作のアプリを走らせ...
** (0)そもそもOSECPU-VMとは?
- OSECPU-VMは、''圧倒的なバイトコード密度''と、''セキュリ...
-「30日でできる!OS自作入門」で有名な川合秀実氏(通称Kさ...
- ここOSECPU-Wikiは、その名の通り、OSECPUの情報がまとまっ...
-- しかし、ほとんどの情報は古くなってしまっているので、こ...
*** 圧倒的なバイトコード密度
- HelloWorldというプログラムを書いたことはありますか?そ...
- みなさんは、HelloWorldのプログラムをどれだけ小さくでき...
-- ちなみに何も考えずにCで書いてMacでコンパイルしたら8KB...
-- たぶん、"Hello, world"で12文字だから、12バイトよりは大...
- 大抵のみなさんは、小さくても100バイト程度かな、と思うで...
-- 100バイトにするのだって非常に困難です。
-- ちなみに、Linux(x86)では、58バイトで実現できるようです。
--- http://d.hatena.ne.jp/kikx/20061111
-- ここで、OSECPU-VMの場合を見てみましょう。
--- app0110_.ose
05 e2 51 6d 19 76 6c de b1 07 7d fc b6 64
--- OSECPUでは、''たったの&color(red){14バイト};でHelloWo...
- 「いやいや、きっと文字列表示に特化したCPUなんだろう。他...
-- そんなことはありません!
-- マンデルブロ集合:''&color(red){49バイト};''
~
http://osecpu.osask.jp/download/app0127a.png
~
~
-- インベーダーゲーム:''&color(red){430バイト};''
~
http://osecpu.osask.jp/download/invader.png
~
-- ちなみに他のOSでは:はりぼてOS: 1509バイト, win32: 256...
~
- もっと例を知りたいひとは、[[page0103]]を読むと良いでし...
-- ちなみに、マンデルブロ集合のプログラムは表示されるまで...
--- 30分くらいかかるそうです(Kさん曰く)。
-- 試す際は辛抱強く待ちましょう。
*** なぜこんなに高密度なアプリが書けるのか
- それは、コード体系を多層化し、フロントエンドコードでは...
-- OSECPU-VMのバイナリには、バックエンドコードとフロント...
-- フロントエンドコードは、''サイズをとにかく重視した設計...
--- 可変長の命令体系なのはもちろん、よく使う整数や命令は...
--- hh4エンコードの説明: [[page0106]]
--- フロントエンドコードの説明: [[page0107]]
-- バックエンドコードは、''シンプルさを追求した設計''にな...
--- 参考:[[page0072]]
--- 命令セットがシンプルなため、VMを移植することが容易に...
--- 私は実際にJavaScriptに移植しました。 > [https://githu...
*** OSECPU-VMとセキュリティ
- OSECPU-VMでは、セキュリティについてもバイトコードレベル...
- まず''メモリアドレスを指定してジャンプすること''が''で...
-- つまり、あらかじめ決められた位置にしか飛ぶことができな...
-- これにより、誤ってデータを実行してしまったり、中途半端...
- さらに''すべてのメモリアクセス''で''型チェックと範囲チ...
-- そもそも、メモリ上の任意のアドレスを読み込む命令自体が...
-- プログラムは「ポインタ」を介してのみメモリにアクセスで...
-- 悪さをしようとすると即座に「''&color(red){セキュリティ...
- これらの機能は、セキュリティだけでなく''バグの発見''に...
- もっと詳しく知りたい方は[[page0018]]を読んでみてくださ...
** (1)講義の概要
*** 講師について
- このゼミを主に担当する講師は[[hikalium]]です。
- 併設される「オリジナルCPUゼミ」を主に担当する今岡通博([...
-- 私は2013年からOSECPU-VMに関わっており、これまでVMのJav...
-- 今や、OSECPU-VMの開発者であるKさんに「OSECPUのことはhi...
--- なのでみなさん、OSECPU-VMのことは私に任せてください!...
- また、FPGAの実装に関しては、私以外にも今岡さんがサポー...
-- 今岡さんは、[[FPGAスタートアップ:https://fpgastartup.c...
-- 今岡さんはFPGAだけでなく低レイヤ全般について経験豊富な...
- というわけで、受講するみなさんは、サポート体制に関して...
-- いちばん大事なのは、''「OSECPUをFPGAに移植したい!」と...
*** OSECPU-VMとセキュリティ・キャンプについて
過去の特集ページは以下のとおりです。(かなり情報が古くな...
- [[seccamp2013]]
- [[seccamp2014]]
** (2)キャンプでは何をするのか
- このゼミの目標はただ一つ。「OSECPU-VMをFPGAに移植する!」
-- つまり「OSECPU」をつくる!ということです。(もはやVMで...
--- これ以降「OSECPU」と書かれているときには、FPGA上に実...
- なお、事前学習の比率が''それなりに大きい''ことだけは覚...
*** 事前学習ですること
- 事前学習では、まずFPGAに慣れるために、かんたんな組み合...
- 次に、CPUを構成する上で必要となる各回路(命令デコーダ、...
- 事前学習の終わりには、こちらの用意したFPGA版OSECPUを実...
-- このFPGA版OSECPUには、最低限の機能しか実装されていませ...
*** キャンプ当日にすること
- キャンプ本番では、みなさんが自分の手で書き込んだFPGA版O...
-- 例(ほんの一例なのでこれに従う必要は一切ありません!OS...
--- 簡単なアプリを書いてOSECPU上で実行させてみる
--- OSECPUからGPIOを操作できるようにして、OSECPUを用いてL...
--- 浮動小数点命令に対応してみる
--- VGA出力を追加して描画APIを実装する
--- パイプラインを実装して実行を高速化する
** (3)セキュリティの話は?
- OSECPU-VMはセキュリティを非常に重視した設計になっていま...
-- こんな脆弱性があるよ!とか、ここはもっとこうした方がい...
--- ちなみに、キャンプには設計者のKさんも別の授業の講師と...
- ただし、この講義は「ものづくりトラック」の一部ですから...
-- なので、セキュリティなんてわからないけれどCPUを作りた...
--- たとえそうだとしても、OSECPUの命令セットに触れること...
** (4)どんな学生に受講してほしいのか
- ''一生に1度くらいはCPUを作りたいと思っていた学生''
-- まさにその夢をかなえるのにぴったりな機会です!
-''事前学習に時間が取れる学生''
--試験期間(の前後)や修学旅行などの時期は事前学習を完全...
--手持ちのPCがない人は残念ながら事前学習に取り組めないた...
-''優秀な学生じゃないとだめですか?''
--もちろん優秀な学生は大歓迎ですが、まだ技術が足りないな...
~
- ''ただCPUをFPGA上に実装するなんてつまらない!''
- ''せっかくCPUをつくれるのだから、これまでにない命令セッ...
-- そういったみなさんに、この講義をおすすめします。
* こめんと欄
#comment
ページ名: