技術めいた何か

社会人になってしまった

セキュリティ・ネクストキャンプ2019の応募用紙のサマリー

セキュリティ・ネクストキャンプ2019の応募用紙のサマリーです。
ざっくり何書いたかを書きます。
参考になるかわかりませんが要約したものを公開します。
セキュリティ・ネクストキャンプ2019の応募課題は分野の指定は特になく、自分のやってきたことや興味を問う問題が中心だったので、個人的には書きやすかったです。
そのため、他の方の応募用紙が見えないのでわからないですが人によって回答内容が大きく変わると思います。
以下が応募用紙の要約です。

質問は4つありました。 以下の問題文は全て、下記リンクより引用

セキュリティ・ネクストキャンプ2019 応募要項 :IPA 独立行政法人 情報処理推進機構

  • あなたに関する問い
  • 課題解決に関する問い
  • 興味ある分野に関する問い
  • その他に関する問い

あなたに関する問い

あなたは今までどのようなことをやってきましたか.どのようなことができて,どのようなことが得意で,どのようなことに自信がありますか. どのようなものを作りましたか.どのような情報を発信してきましたか. どのようにしてそうしたことをやってきましたか.なぜ,そのようなことをやってきましたか.やってきてどう思いましたか. 参加できた場合,セキュリティ・ネクストキャンプにどのようなことを期待し,どのようなことをやってみたいですか.

(4000文字くらい)
以下の順番で書きました。

参加できた場合に何をしたいか

自分の研究分野と絡めたい旨を書きました。 また、コミュニティの運営に携わっているので、 学んだことを還元していきたい旨を書きました。

何をやってきたか、どのようにしてやってきたか

今までやってきたことについて抽象化して箇条書きで列挙しました。
学校歴(大学〜)やコミュニティを含む所属等についても箇条書きで書きました。
論文リストへのリンクやCV、GitHubのリンクはこの設問に書きました。
加えて、学会や学内での受賞歴についても箇条書きで書きました。
2つピックアップして詳細を文章で書きました。
コミュニティ活動やコンテストの出場などに加え、 5月に2回イベントやエンジニア向けのカンファレンスでAndroidのセキュリティについて登壇したので、それについても触れました。

学部1,2年で出たハッカソンとか技術同人誌については触れませんでした。
(今思えば、加点方式なので書いても良かったかもしれない。)

課題解決に関する問い

自身で何らかの疑問・課題・問題を設定し,それについて取り組み,その過程を示すことで,自身の技術力や課題に取り組むやりかたを説明してください. 設定する課題は何でも構いませんし,解決しなくても構いません. 解決できたかどうかではなく,いかに課題に取り組むかという点を評価します.

(6000文字くらい)
過去のものを含めて2つの課題について書きました。

1.学部3年の時にIDベース暗号とプロキシ再暗号化の実装をしたことを振り返り、
その時に犯した3つミス(主に乱数の扱い)について失敗に至った思考の過程や指導教員と議論したり指導を受けて得た解決方法について考え、詳しく書きました。
(全て発表前に修正できたので再実験して事なきを得ました。) また、とりあえず手を動かして信頼できる人(この場合は指導教員や先輩)にレビューしてもらいながら知識を身につけることが多い旨を書きました。

2.Googleが発表した暗号利用モードであるAdiantumをTLSに組み込む遊びをした話を書きました。(こちらは未完)

去年のセキュリティ・キャンプ全国大会のTLS・暗号ゼミの内容が「TLSの実装をしてその上に好きな暗号を実装する」だった(違ってたらごめんなさい)のを思い出して、 行けなかったので、詳細わからないけど暗号を乗せる部分を自分でやってみようという気持ちで手をつけました。 こちらは未完だったのですが、できたところまで書きました。 Adiantumを選んだのはAdiantum自体が世の中に出てから日が浅いことと、Disk Encryption向けに開発されたものなので、遊び以外でTLSに乗っける人はすぐにはでてこないだろうなと考えたからです。
進捗はこんな感じでした。

  • TLS1.3の前に、TLS1.2を対象に挑戦
  • 追加する暗号はAdiantum
  • 時間がなかったので、Golangの実装に追加する方針で行った
  • 雑にCipher Suiteに追加してハンドシェイクの途中までできた(CHLO, SHLO)
  • 通信の内容を暗号化するところはまだできていない
    • Adiantumが採用しているHBSHはtweakを受け付けるなど、GolangTLSのCipher Suite関連のインタフェースには合わないため、以下1または2の方法を検討(注意:安全性については考察していないです)
      • 1.https://github.com/lukechampine/adiantum に合わせて、Golangのcipher suite関連のインタフェースにあらたにHBSHを追加する
      • 2.Block Cipher用のインタフェースに合わせるためのラッパーを書く
    • 時間作れなくて対応できなかったけど悔しいので、BlowfishをGolangのTLS1.2のCipher Suiteに追加して遊んだ

興味ある分野に関する問い

セキュリティ・ネクストキャンプの講義の一覧を見て,その中から興味のある講義を選び,その講義で扱うテーマに対して自分が考えること,興味,疑問,課題,自分なりの考察などを説明してください. その分野について知識があるかどうかではなく,いかに興味や疑問を持ち,課題を考え,自分なりに調べて考察するかといった点を評価します.

(600文字くらい)
次の講義について書きました。

講義5-1
暗号アルゴリズムFPGA実装
講師: 今岡 通博

正しく実装するだけでなく、乱数を無下に扱わないべきであると考えたことやハードウェア実装であるため、電力解析攻撃などに対する対策が必要であると考えていることなどについて書きました。
AdiantumのようなonCPUで高速に動作するように設計されている暗号利用モードとの差別化が必要だと考えていることについても書きました。

その他に関する問い

書きたいことは前の設問までで全て書いてしまっていたので、 この問題については空白で出しました。

おわり。

p1sces.hatenablog.com

今回はご縁があったのですが、 過去の話をすると、学部時代に全国大会に3回チャレンジして全てだめでした。
(正確には応募は2回。1回は締切直前にセッションが切れて間に合わなかった)
↑の記事は共感したので、一喜一憂せずコンスタントにやっていきたいです。