セキュリティキャンプ2017用の特設ページ
- (by hikalium, 2017-04.02)
基本情報
- タイトル: セキュアなCPUを自作しよう
- 時間帯: 3日間連続
- 概要:
- 講義「セキュアなCPUを自作しよう」では、2つのゼミがあります。
- ひとつは「OSECPU-VMゼミ」で、OSECPU-VMをFPGAに移植します。(このページで説明します。)
- もうひとつは「オリジナルCPUゼミ」で、自分で設計したCPUをFPGA上に実装します。(今岡さんが担当します。このページでは説明しません。)
- 必要機材: PCのみ(FPGAは事前学習時にボードを配布する予定です。キャンプ当日も忘れずに持ってきてください!)
- この講義で使用するソフトウエアには、PCの性能と空き容量がそれなりに必要です。もし不安な場合は、事前に相談してください。
- 事前学習: あり
- このゼミは、事前学習を非常に重視しています。
- というのも、キャンプ当日の3日間だけでは、とてもCPUを移植するには時間が足りないからです。
- ですから、事前学習に十分に時間を割ける自信があり、かつ十分なやる気がある人を募集します。
(1)背景情報
このゼミの講師について
- このゼミの講師はhikaliumです。OSECPU-VMを開発したKさん(川合秀実氏)ではありません!
- えー、そんな人から教わっても面白くないよ!と思った方。少し待ってください。
- Kさんはキャンプで別のゼミを担当していらっしゃいます(言語自作ゼミ)。もし会いたいのなら、キャンプに来れば会えます!
- OSECPU-VMの話も、聞けば色々と教えていただけるはずです。
- 私、hikaliumは、hikarupspという名前で、このWikiに2013年からいます。
- OSECPU-VMのJavaScript移植版 WebCPU-VM を開発しました。
- OSECPU-VM向けのC言語風独自言語 ELCHNOS も開発しました。
- OSECPU-VMのC言語実装をより読みやすくした HeavyOSECPU も開発しました(ttwilbさんと共同開発)。
- というわけで、私はOSECPU-VMのことを、Kさんの次くらいによく知っていると自負しています!
- なのでみなさん、OSECPU-VMのことで分からないことがあったらなんでも聞いてください。すぐに答えます。
- また、FPGAの実装に関しては、私以外にも今岡さんがサポートしてくださいます。
- というわけで、受講するみなさんは、サポート体制に関して不安に思う必要は特にありません。
- いちばん大事なのは、「OSECPUをFPGAに移植したい!」という熱意です!
OSECPU-VMとセキュリティ・キャンプについて
過去の特集ページは以下のとおりです。(かなり情報が古くなってしまったので参考程度に。)
(2)キャンプでは何をするのか
- このゼミの目標はただ一つ。「OSECPU-VMをFPGAに移植する!」
- つまり「OSECPU」をつくる!ということです。(もはやVMではない!)
- なお、事前学習の比率がそれなりに大きいことだけは覚悟してください。
事前学習ですること
- 事前学習では、まずFPGAに慣れるために、かんたんな組み合わせ回路や順序回路を構成するところから始めます。
- 次に、CPUを構成する上で必要となる各回路(命令デコーダ、ALU、レジスタ)の構成方法を学びます。
- 事前学習の終わりには、こちらの用意したFPGA版OSECPUを実際にFPGAに書き込んで実行してもらいます。
キャンプ当日にすること
- キャンプ本番では、みなさんが自分の手で書き込んだFPGA版OSECPUを用いて、好きなように遊んでください。
(3)セキュリティの話は?
- OSECPU-VMはセキュリティを非常に重視した設計になっています。それを命令セットを通して学んでもらえれば十分です。
- こんな脆弱性があるよ!とか、ここはもっとこうした方がいいのでは?という意見も大歓迎です。ぜひ、自分の手でOSECPUを改造して組み込んでみてください!
- ただし、この講義は「ものづくりトラック」の一部ですから、セキュリティよりも「ものづくり」を重視しています。
- なので、セキュリティなんてわからないけれどCPUを作りたいんだ!という学生でも全くかまいません!
(4)どんな学生に受講してほしいのか
- 一生に1度くらいはCPUを作りたいと思っていた学生
- 事前学習に時間が取れる学生
- 試験期間(の前後)や修学旅行などの時期は事前学習を完全にお休みしていただいて構いませんが、それ以外は1週間あたり5時間くらいは事前学習に費やしてほしいです。ですからたくさんの塾を掛け持ちしていて忙しくてたまらない、アルバイトが大変すぎる、部活動が大変すぎて時間がない、という人は、申し訳ありませんが他の講義を選択してください。
- 手持ちのPCがない人は残念ながら事前学習に取り組めないため、この講義には参加できません。ごめんなさい。また、この講義で使用するソフトウエアはそれなりにCPUパワーとメモリ容量を要求します。ですから、自分のPCの性能に不安がある方は再検討をおすすめします。
- 優秀な学生じゃないとだめですか?
- もちろん優秀な学生は大歓迎ですが、まだ技術が足りないなあ…と感じている方にもぜひ参加していただきたいです。もしかすると、初心者だからこそ気付けるバグや直したい点がみつかるかもしれませんよ。もちろん、初心者だからといって、こちらも特別扱いはできませんが、自分で解決していける意欲がある方なら誰でも歓迎します!
こめんと欄