セキュアIMEとか作ってみたかった

Merry Christmas!(執筆開始日 12/3)

こんな日に私の投稿となります,RSです。

さて,SYSKEN Advent Calendarも最終日となりました。
皆様,いかがお過ごしでしょうか。
Advent Calendarを見漁っていますか,そうですか。

今回は,Advent Calendarのまとめとかを書いてもいいのですが,さして面白くなりそうもありません。
普通に気取らず書いてみようと思います。
Advent Calendar漁りの一つとして楽しんでもらえたら幸いです。

導入

「自動暗号化IME作りたい」

8月頃,暗号技術入門のアリスとボブに翻弄されていた私は,変なアイデアを思いつきました。
ただ,この時期は色々とドタバタしていた(プロコン, あいちゃれ)ので,アイデアとして取っておいただけでした。
しかし,今になってまた作ってみたい欲が出たのでAdvent Calendarのついでにやろうかなと思ったという訳です。

やりたかったもの

  • 公開鍵暗号方式を採用して,テキストの入力中はその上に仮想テキスト領域を用意
  • 入力が終了したら,自動で暗号化を開始
  • 暗号化が終了し次第,テキスト入力領域に自動ペースト
  • 👍


こんな感じのイケイケIMEっぽいものが作りたかったのです。
Slackの入力からTwitterのツイートまで,全てを自動で暗号化する,まさにPretty GoodなIMEが作りたかったのです。

作ったもの

ざっくり言うと,暗号化文章の生成器です。
具体的には,PGPのうち,対称鍵暗号AES256で暗号化した文章を生成します。
リポジトリを上げておきますので,早々に完成させるようIssueをぶっ飛ばしてください。
GitHub: rikyuusima/secure-ime

技術的なお話

メインとなるアプリケーションは,Electronで開発しています。
PGPを取り扱うため,コンソールを引っ張ってこなくてはならないかとも思いましたが,便利なライブラリがあったのでご紹介します。
OpenPGP.jsです。
これが便利で,対称鍵暗号,公開鍵暗号などに対応しており,暗号化に加えて署名も可能なようです。
OpenPGP.jsをnpmからインストールして,requireを使って案外簡単に取り扱うことが出来ました。制作陣に感謝🙏。
現状の進捗は,読込した暗号鍵を用いて暗号化使用としている辺りです。

余談

私は,当初Advent Calendarで私の旧スマホたるKyocera URBANO L01にOSをぶち込んでなんちゃらしてみようと考えていました。
しかし,bootloaderの起動が難しく,残念な結果に終わってしまいました。
そのため急遽,少し前のアイデアであるセキュアIMEを作っているという次第です。
ここに,アイキャッチ予定写真を上げて供養したいと思います。

終わりに

今年も,SYSKEN Advent Calendarが何とか完走出来て良かったです。(例年通り,遅刻がチラホラあったようですが)
心残りなのは,Advent Calendarの特設ページを用意できなかったことでしょうか。
構成を考えて早めに作れるようになりたいものです…。

2年前の突然の企画から始まったAdvent Calendar,発案者である先輩が卒業した今年も変わらず完走出来たので,来年以降も続くのかな?
そんなことを考えながら,Advent Calendarを締めくくりたいと思います。
良いお年を!


コメントを残す

メールアドレスが公開されることはありません。