サーバの証明書に ECC (楕円曲線暗号) を使ってみる


どうも、みむらです。

先日まで海外旅行に行っていまして、
旅行中に SSL 証明書の有効期限が切れたようで、本サーバもエラー連発になっておりました。

本当にすみません。

 

そのようなわけで証明書を更新するのですが、
どうせやるなら最近話題の楕円曲線暗号を使ったやつを使ってみるのもいいんじゃね!
とふと思いましてやってみることに。

これを機にちゃんと勉強したいですね。

作業する OS は CentOS 7.2 です。


1. 秘密鍵を作る。

生成に際し、どのような曲線が使えるのか知っておきたいので、
次のコマンドで調べてみます。

# openssl ecparam -list_curves
  secp384r1 : NIST/SECG curve over a 384 bit prime field
  secp521r1 : NIST/SECG curve over a 521 bit prime field
  prime256v1: X9.62/SECG curve over a 256 bit prime field

というわけで、上記の3つに対応しているということが分かります。

NSA Suite B を参照してみると (https://www.nsa.gov/ia/programs/suiteb_cryptography/
P-384 にするのがいいよ! とのことなので、
今回は secp384r1 を使ってみることにしてみます。

 

注釈:
実は最初、何も見ずに secp521r1 で行ったのですが、
Chrome において ERR_SSL_VERSION_OR_CIPHER_MISMATCH ということで開けなくなることが分かり
再発行を行いました。

http://security.stackexchange.com/questions/100991/why-is-secp521r1-no-longer-supported-in-chrome-others
こういう記述もあったのですが、具体的に書かれている箇所を見つけられず・・
もし、当該する記述の場所をご存じの方はこっそりと教えて下さい・・。

 

生成に必要な情報が分かったところで、
秘密鍵の生成を次のコマンドで行います。

# openssl ecparam -out server.key -name secp384r1 –genkey

 


2. CSR (署名要求, Certificate Signing Request) を作る。

このあたりは RSA の鍵で CSR を作るときと同じような流れです。

# openssl req -new -sha256 -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

( 意訳:証明書要求に含める情報について答えてください。無回答にしたければ「.」を入力すれば空にもできますよ。)

-----

Country Name (2 letter code) [XX]: JP
State or Province Name (full name) []: Tokyo
Locality Name (eg, city) [Default City]: Taito
Organization Name (eg, company) [Default Company Ltd]: mimumimu.net
Organizational Unit Name (eg, section) []: .
Common Name (eg, your name or your server's hostname): mimumimu.net
Email Address []: customer@mimumimu.net

Please enter the following 'extra' attributes
to be sent with your certificate request

A challenge password []: (何も入れずに Enter )
An optional company name []: (何も入れずに Enter )

 

というわけで CSR が出来ましたので、署名してもらいに行きます。

余談ですが、CSR ファイルの中身はテキストファイルになっていまして、

-----BEGIN CERTIFICATE REQUEST-----
MIIB44KE44GCIO+8iMK044O7z4njg7vvvYApDQrjgojjgYbjgZPjgZ3jgIHjg5Dj
g7zjg5zjg7Pjg4/jgqbjgrnjgbjjgILjgZPjga7jg4bjgq3jg7zjg6njga/jgrXj
g7zjg5PjgrnjgaDjgYvjgonjgIHjgb7jgZrpo7LjgpPjgafokL3jgaHnnYDjgYTj
gabmrLLjgZfjgYTjgIINCuOBhuOCk+OAgeOAjOOBvuOBn+OAjeOBquOCk+OBoOOA
gua4iOOBvuOBquOBhOOAguS7j+OBrumhlOOCguOBo+OBpuiogOOBhuOBl+OBreOA
geisneOBo+OBpuioseOBl+OBpuOCguOCieOBiuOBhuOBqOOCguaAneOBo+OBpuOB
hOOBquOBhOOAgg0KDQrjgafjgoLjgIHjgZPjga5DU1LjgpLopovjgZ/jgajjgY3j
gIHlkJvjga/jgIHjgY3jgaPjgajoqIDokYnjgafjga/oqIDjgYTooajjgZvjgarj
gYQg44CM44Go44GN44KB44GN44CN44G/44Gf44GE44Gq44KC44Gu44KS5oSf44GY
-----END CERTIFICATE REQUEST-----

こんな感じのファイルになっています。 (もちろん、上記のテキストはサンプルですよ!)

 


3.CA (認証局, Certification Authority) に署名してもらう。

ここから先、導入まではすべて通常の RSA での SSL 証明書の手続きと同一ですので、

残りの説明はすべて comodo の公式マニュアルにゆだねます・・!
http://comodo.jp/beginner/setup.html


..というわけで設定が完了しますと、

image

このような感じで、楕円曲線暗号を使用した通信が出来るようになります。

 

ブームに乗れた中二病的なうれしさを感じつつ、
金岡先生の資料 ( http://www.jnsa.org/seminar/pki-day/2011/data/02_kanaoka.pdf ) を
拝読して、これを機に学んでみたいと思います・・!

Windows 10 で 3本指ジェスチャで仮想デスクトップを制御出来るようにしてみた。


どうもみむらです。
なんだかんだドタバタな日々を過ごしております。

 

いつものように Twitter を見ていましたら、
Windows 10 向けの3本指スワイプ(3本指ジェスチャ)でのデスクトップ操作のプログラムを
公開しわすれていたということに気づきまして。。。

 

実は情報セキュリティ系の学会の一つである、コンピュータセキュリティシンポジウム (CSS) 2015 にて交流会の余興のようなもので Windows 10 版を発表していまして。。。

 

・・・というわけで公開いたしました。


ダウンロードは次のリンクから可能です:
http://mimumimu.net/beta/programs/Synaptics_SwitchDesktop_10.zip

 

動作風景としてはこんな感じです・・

 

OS は Windows 10 のみを想定しており、
タッチパッドには「3本指が認識可能な」Synaptics 社製タッチパッドを想定しております。

 

また本ソフトウェアは
ソニー株式会社製 VAIO Pro 13 及び
VAIO 社製 VAIO Pro 13 mkII にて動作を確認しております。

 

仕掛けとしては、前作のものを細工し、自前でデスクトップ切り替えを行っていた部分を
キーボードジェスチャを送信するように書き換えてあるだけです。

 


 

要望等ありましたら、可能な範囲で対応します・・
https://mimumimu.net/community/
https://mimumimu.net/bbs/

 


Windows 7 及び 8 ユーザの皆様に関しましては、
Windows 7, 8 での3本スワイプによるデスクトップ切り替えの発表資料 / バイナリを公開しました。 – みむらの手記手帳
より、当該OS 向けのバージョンを入手可能です。

 


余談:

実は純正で機能は持ってるんです。

Windows 10の新しい「タッチパッドジェスチャー」を使いこなす – itmedia

ただ、ハードウェア要件(装置自体が要求する仕様を満たせているかどうか)が満たせていない場合、
Windows 10 で新しく乗っかったジェスチャが無効になってしまいます。

私が使用していた VAIO も要件を満たしていない部類でしたので、
このようなソフトウェアを使用して「似たような動作が出来るようにした」という
背景があります。

 

Microsoft Surface など、要件を満たしているハードウェアでは、
本ソフトウェアを使用せず(むしろ誤作動の元になります)純正機能で楽しんで戴き、
そうでない場合、本ソフトウェアで動作すれば御の字、というような代物です。

TeX Support for Visual Studio を作ってみた。


どうも。みむらです。
論文を書く日々が続いております。そろそろ完成させなきゃなんですが・・。

tex_vsaddon

そんなこんなで、
ちまちまと作っていた Visual Studio の TeX Support アドオンがいい感じに形になりましたので
ベータ版ではありますが公開いたします。

 

利点としては、次のような点があげられます:

Visual Studio のプロジェクトとして追加出来るため、他のプロジェクトと一緒に管理出来る。
F5 キーで pdf がビルドされる。 Debug ビルドにすれば、リーダーで自動的に開く。
画像ファイルは勝手にビルド時に extractbb される。
・ちゃんと色が付く。

こんなところでしょうか。

 

image

もし、やるならこんな感じですよね。

 

繰り返しになりますが、まだベータ版です。
分かる人のみが使用してください。

 

また、このプロジェクトは私の修論の気分転換の一環で作成されているため、
コードが非常に汚いです。

落ち着いたらリファクタリングしたいです。。


2016/01/27 17:11 update:

本日8時頃に公開いたしましたバージョンではシンタックスハイライトが
上手く動作しない事が判明しましたので、先ほどファイルを更新いたしました。

既にインストール済みの場合は再度ダウンロード頂き、
vsix ファイルから上書きアップデートが行えるようになっています。

 

2016/01/27 22:50 Update:

複数行に渡る TeX コードのハイライトの際に問題がありましたので
修正いたしました。
 


ダウンロードページ : http://mimumimu.net/beta/#VsTeXProj
直接ダウンロード: http://mimumimu.net/beta/programs/VsTeXProject.zip

ソースコード : https://github.com/mimura1133/vstex

ライセンスとしては今のところ MIT ライセンスです。


使い方:

1. 環境を準備する。

1.1. TeX の実行環境を準備する。

 

このプログラムの実行には、LaTeX 環境が必要になります。
具体的には、 pLaTeX or LaTeX,  bibtex, extractbb, dvipdfmx を使用します。

もし環境が準備できていない場合は、阿部さんというかたが作成し提供されている
「TeX インストーラ3」を使用しますと簡単に準備が出来ます。

ダウンロード:http://www.math.sci.hokudai.ac.jp/~abenori/soft/abtexinst.html

ページ下部の「最新版」と書かれたリンクからプログラムがダウンロード出来ます。

image

 

展開したファイルのうち、 abtexinst.exe を実行します。

image

後は「次へ」をクリックして画面に従っていくだけですが(デフォルトのままで大丈夫です)

もし「不明なエラーが発生。ログファイルを見ると何か分かるかも知れません」と出る時は、

image

image

ダウンロード先の URL をこのように、“core.ring.gr.jp” にすると
上手くいくかも知れません。

 

あとはひたすら完了するのを待ちます・・。

image

 

1.2. Visual Studio の実行環境を準備する。

Visual Studio が入っていない場合は、こちらもインストールをお願いします。

ダウンロード: https://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs.aspx

image

Visual Studio Community で動作しますが、それ以外にも Professional や Enterprise でも動作します。
(Express でも動作するようには設定してありますが、動作確認はしていません。)

またインストール時にメモリが不足していると、コンポーネントのインストールに失敗した表示が出てセットアップに失敗するようです。 VM 上で行おうとする方は気をつけてください。


 


2. アドオンをインストールする

下記リンクよりアドオンのファイルをダウンロードします。

ダウンロード: http://mimumimu.net/beta/programs/VsTeXProject.zip

 

中に入っている VsTeXProject.vsix をダブルクリックしますと、インストーラが起動します。

image

よろしければ、「インストール」をクリックしてインストールを完了させてください。

なお、このとき Visual Studio が起動中の場合
インストール後に Visual Studio を起動し直してください。

 


3. TeX プロジェクトを作る

起動させましたら、
他のプロジェクトを作るときと同じように、プロジェクトを作成します。

image

 

左側のテンプレート一覧“TeX Project” が追加されますので、それを選択すると、
TeXProject が選択できるようになります。

image

 

作成画面になれば、プロジェクトの作成は完了です。

image

 


4. TeX を書いて pdf を作る。

このページの「ファイルの作成」にある内容を書き込んで見ましょう。

https://texwiki.texjp.org/?LaTeX%E5%85%A5%E9%96%80%2F%E6%9C%80%E5%88%9D%E3%81%AE%E4%BE%8B

image

おそらく上記の画面のようになったと思います。
(撮影用に文字サイズを大きくしてあります。)

その状態で F5 キーを押してみましょう。

pdf がビルドされ、上手くいけば関連づけられたプログラムで pdf が開きます。

..もし開かなかった場合(特に初回):
ベータ版特有のあれですが、プロジェクトファイルを再読込すると治ります。

また “Debug ビルド” になっているか確認してください。
Release ビルドでは出力ファイルを開かないようになっています。

 

手っ取り早く再読込するには:

1.プロジェクトを右クリックし、「プロジェクトのアンロード」を選択。

image

 

2.アンロードされるので、もう一度右クリックして「再読み込み」を選択。

image

 

。。。たぶんこれで F5 キーを押した時に、ちゃんと開くようになるはずです。

 


5. pdf ファイルを取りだそう

プロジェクトファイルの置いてあるフォルダに “pdf” というフォルダが出来ており、
最後に正常にビルド出来た pdf ファイルがここに置かれています。

image

 


6. 画像を入れてみよう

6.1. 画像をプロジェクトに入れる

プロジェクトの中に画像をドラッグ&ドロップするなどして追加します。

image

このとき、画面下部の「プロパティ」の “Build Action”
”Picture File” になっていることを確認してください。

image

 

また、ファイルをマウスオーバーすると画像が表示されます。

image

 

6.2. tex の中に画像を参照するコードを書く。

ドライバとしては dvipdfmx になりますので、
頭に dvipdfmx を usepackage して、画像を挿入したいところで includegraphics をします。

コードとしては こんな感じになります:

\documentclass{jsarticle} \usepackage[dvipdfmx]{graphicx} \begin{document} 吾輩は猫である。名前はまだ無い。 どこで生れたかとんと見当がつかぬ。 何でも薄暗いじめじめした所で ニャーニャー泣いていた事だけは記憶している。 吾輩はここで始めて人間というものを見た。 \includegraphics[width=4cm]{img101.png} \end{document}

 

 

そして、これをビルドするとこのような感じになります:

image

 


7. そのほかの機能

7.1. カスタムビルド

既定のビルド方法ではなく、独自のビルドを行いたい場合、
プロパティの “Custom Tool” 欄に記述します。

image

ここに書かれたプログラムにパラメータとして対象のファイルのパスが渡されますので、
後は煮るなり焼くなり。

込み入ったことをしたい場合は、バッチファイルを別途作成し、
ここの欄にそのファイルへのパスを書くといいと思います。

 

7.2. ビルドアクションについて

ビルドアクションには Compile,  Picture, Content の3つがあります。

それぞれ次のようになっています:

Picture:
画像処理用。ビルドの一番最初に処理される。
指定されたファイルを “extractbb” コマンドに与え、 xbb ファイルを生成する。

Content:
コンテンツ処理用。ビルドの二番目に処理される。
何も書かなければ何もしない。
eps ファイルなど、処理をしなくても直接読み込める形式のファイル
分割した TeX ファイルのうち、 include で読み込まれるファイルをこれに指定します。

Compile:
TeX ファイル処理用。ビルドの最後に処理される。
pLaTeX → bibtex → pLaTeX → dvipdfmx の順番で実行されて処理される。

 

7.3. プロジェクトプロパティについて

image

Processor:
LaTeX の処理ソフトを指定します。既定は platex です。

Path:
LaTeX のコマンド類が置かれているフォルダを指定します。
空欄の場合は %PATH% の中から検索します。(既定)

 


8. サポートについて

何かありましたら、サポート掲示板 ( http://mimumimu.net/bbs/Support/ ) までお願いします。

また、開発者の方で Pull-Request を投げてくださる方は、
Github に対して直接お願いします。 ( https://github.com/mimura1133/vstex )

また、直接連絡が必要な場合は、
連絡先ページ ( http://mimumimu.net/community/ ) よりお願いします。

 


そんなわけで、もし使う人が居れば・・どうぞ・・!

Visual Studio での TeX 編集を頑張ってみる。


どうもみむらです。絶賛修論作成期間です。

修論書きたくない?なら書くな。いやいや。
こう、楽しく書きたいんですよね。修論。

そんなわけで、こっそりですが Visual Studio の TeX 対応拡張を
修論の現実逃避目的で開発を開始しました。

こうすると、TeX を書くのは「デバッグ」の一環になるのでとても楽しいです。


現状はこんなところ:

2016-01-18 (4)

2016-01-18 (5)

 

以前、色づけとビルドの部分のみを取り出して、

 

こういう感じで作ったことがありましたが、
今回はこのレベルではなくてカッチリと作り込む感じです。

例えば、画像ファイルはビルド時に自動的に extractbb されるとか。
あとは tex ファイルを eps 化して、プレビュー画面を付けてみようかなぁ・・とか。

もちろん、エラー欄にビルドエラーとかの表示は出しますけどね!

 

本来の修士論文の方をあくまでも優先するのと、
修士論文が仕上がってしまったら開発を投げてしまう可能性があるので、
そうしたら・・いえ、なんでもないです。

 

もし気になる方が居れば、こちらにてソースコードを公開しています。
https://github.com/mimura1133/vstex

基本的に、私が書いた部分に関してのライセンスは MIT ライセンスで。

であであー。

Visual Studio 2015 で独自言語に対応させてみる。


みむらです。
新年初めての記事ですかね。明けましておめでとうございます。

一年の計は元旦にありということで、元旦から大幅に過ぎてしまいましたが
書き初めを。


何をするか、ということですが
タイトルにあるとおり「独自言語に対応させてみよう」ということで。

2016-01-16 (1)

たとえばこういう感じのが30分ほどで作成できます。


とはいえ、こんなことをしようとする人は、
たぶん放っておいても大丈夫そうな皆さんしかいなさそうな気もしますので、さくっとポイントのみ。

 

まず、作るためには “MPF for Projects” というのを使用するのが楽ちんなのですが、
Visual Studio 2015 用が出ていないようでしたので適当に作って公開しました。

https://github.com/mimura1133/uo_mpfproj14

この中にある “Samples/UsagiProject” の中身を見ると、大体の作り方が見えてくるかと思います。


1. とりあえず、新しい言語プロジェクトを作る:

CustomProjectPackage.cs を開くと、
このようにプロジェクト名とプロジェクトファイルの拡張子を指定できますので、
ここを適当にごにょごにょ。

image

次に上記でごにょごにょした形に合うように、 Templates フォルダ内を設定します。

Projects の中に作ったプロジェクトファイルとアイコンが、
新規作成時のプロジェクト一覧に並びます。

image

デフォルトのままですと、こんな感じですね。

image

 

重要な点として、このとき “Template” フォルダの中身について
ビルドアクションを “コンテンツ” そして “Include in VSIX” を “True” にする
必要があります。

これを忘れると、プロジェクト一覧に出てこなくなります。

image

 


2. 作ったはいいけれど、コンポーネントが読み込めないとかのエラーが出る。

主に、 “Microsoft.VisualStudio.Project” が読み込めないエラーだと思います。

デバッグ中に例外が出て、読み込みが無視されている場合は再ビルドで治る事がありますが、
それでも治らない場合。

extension.vsixmanifest および source.extension.vsixmanifest の “資産” のところに、
”MefComponent” として自身が登録されているか
どうかを確認してみてください。

image

私もこれで2時間潰しました orz.

 


あともう一つ。

ソリューションのファイル群が置いてある場所までのパスに日本語が
入っていないかどうか。

vsix に閉じ込めるファイルやソースのファイルは日本語でも問題なさそうなのですが、
そのソリューション一式のファイルまでのパス中に日本語が入っていると、
インストールしても何も出てこない vsix ファイルが生まれます。

たぶん vsixmanifest の処理あたりで問題が起きていそうな気がしますが、
詳しい所はよく分かりません。。


3.F5 でデバッグしたい!

まず、自身の参照のところに

Microsoft.VisualStudio.Modeling.SDK.Integration.14.0

を入れておきます。
次に、プロジェクトのプロパティより、「デバッグ」の「外部プログラムの開始」に

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe

と記述し、コマンドライン引数に

/rootsuffix Exp

と書くといい感じに F5 でデバッグできるようになります。


 


そんなこんなで、色々と楽しい事が出来そうな Visual Studio さん。

image

Visual Studio 2015 の vsixmanifest を見ると、
このように Express 版に対してもインストール設定ができるようなので
私のようなフリーソフト作者にとっては、わざわざお高いソフトを導入してもらわなくても試してもらえるってことで、とてもわくてかです。

 

そんなこんなで、私の書き初めは今年も C# から。
それではみなさん Happy Visual Studio Life を。

No Visual Studio, No…. いや、 VS なくても頑張れるかな・・

Private