スポンサーリンク

電子メールの暗号化

2016 年 11 月 19 日 コメントはありません

電子メールは登場してもうかなり時間が経つし、未だによく使われているが、暗号化が進んでない。
(Googleは一度メールに置き換わるGoogle Waveというのを作ろうとしていたが大失敗した)
受信や送信には大分使われるようになっているが、メール自体の暗号化はほぼない。

メールの暗号化の方法、そして暗号化箇所はいくつかある。

一番使われているのは、プロバイダなどのサーバとパソコン間の暗号化。これはかなり普及している。
APOPやPOP3s、SMTPsなどだ。
一般のプロバイダのメールでも使えるところが増えている。
しかし、ちゃんと意識して設定しないと、初期設定のままだと暗号化されない。

次にサーバから相手サーバへの暗号化。これはGoogleが詳しい
暗号化して自分のメールサーバにメールを送っても、そのメールが今度はインターネットを経由して相手先のサーバに送られる際に、傍受されることがある。
そのため、インターネットの通信経路間も暗号化する必要がある。
これはメールサーバ対メールサーバのことなので、ユーザがコントロールするのは難しい。

最後が今回テーマのメール自体の暗号化だが、これは殆ど使われてない。

通信途中の暗号化がしっかりされていればと思うが、一般ユーザーは確認できない。
また、サーバ管理者やプロバイダが悪だったら?!
メール自体の暗号化はそれを解決する。
ようは、メール自体が暗号化されてさえいれば、プロバイダのメールサーバとの通信や、メールサーバ同士の通信で傍受されても、盗み読むことが難しいので、送信者と受信者にとって安心できる。

手間は若干かかる。
電子署名や暗号化に使う、電子証明書が必要になる。相手に信頼されるには認証局に認証された証明書が望ましい。
無料だと、Comodoのがあり、私も使ってる。
そして、Outlookなど、普通のメーラーソフトは大抵対応している。

覚えておこう!!
こちらから送るメールの暗号化には「相手」の証明書がいる(相手から電子署名付きメールをもらう)。
相手から送られるメールの暗号化は「自分」の証明書がいる(相手に自分の電子署名付きメールを送る)。
お互いに、自分の電子証明書をパソコンにインストールし、一度電子署名したメールを送りあえばいい。そのメールが傍受されても公開鍵暗号なので問題ない。

メールの暗号化は新しい技術ではないが、普及しないので書いた。

特にビジネスで普及して欲しいものだ。
中国当局に、日本企業の機密は相当抜かれているはず。まあ今や盗む必要があるほどの機密もないのかも知れないが..
ネット、取り分けセキュリティに疎い経営者は多いと思う。
情報戦で負けたらまず勝てない。

カテゴリー: 仕事 タグ: , ,

USBの規格についてまとめてみた

2016 年 11 月 17 日 コメントはありません

やっぱりUSBのことをまだまだ理解してないと感じた。
理由は、規格が沢山あり、さらにはコネクタ形状にも規格が色々あり、もっと言うと主に充電などに使う給電能力も規格がいくつかあるためだ。

USB 3.1やUSB Type-Cの規格と、その問題について調べてみた
さまざまな機器で採用が広がっているUSBですが、その一方でUSB関係の表記・規格が増えすぎていてわかりにくいというのも事実です。
そんなUSB関係の表記・規格ですが、以下の3つに分類することが可能です。
① USBの世代に関する規格
② USBの形状に関する規格
③ USBの給電に関する規格

これだけゴチャゴチャしていると表にまとめるのも大変。
一応無理やりまとめてみたのが下記の表である。

種類・世代 通信速度 通常給電 USB BC給電 USB PD給電
USB 2.0 (C to C) 480Mbps 1.5A 5V(3A 5V) 1.5A 5V 最大5A 最大20V *要E-Marker
USB 2.0 (その他) 480Mbps 0.5A 5V 1.5A 5V 最大5A 最大20V *要E-Marker
USB 3.0 (C to C) 5Gbps 1.5A 5V(3A 5V) 1.5A 5V 最大5A 最大20V *要E-Marker
USB 3.0 (その他) 5Gbps 0.9A 5V 1.5A 5V 最大5A 最大20V *要E-Marker
USB 3.1 Gen1 (C to C) 5Gbps 1.5A 5V(3A 5V) 1.5A 5V 最大5A 最大20V *要E-Marker
USB 3.1 Gen1 (その他) 5Gbps 0.9A 5V 1.5A 5V 最大5A 最大20V *要E-Marker
USB 3.1 Gen2 (C to C) 10Gbps 1.5A 5V(3A 5V) 1.5A 5V 最大5A 最大20V *要E-Marker
USB 3.1 Gen2 (その他) 10Gbps 0.9A 5V 1.5A 5V 最大5A 最大20V *要E-Marker

*C to Cとはケーブルの両端ともType-Cであることを表す。例えば、片方がStandard-Aコネクタもう片方がType-Cコネクタのケーブルだと、正規の規格としては0.9Aまでとなるが、守られておらず、問題になっている。なお、変換アダプタなどを使い、間に別のコネクタが入るとC to Cとはならない。

USBの世代規格としては通信速度(じゃあ3.0と3.1 Gen1の差は何なんだと聞かないで下さい..)のこと、コネクタ形状については本当にゴチャゴチャしすぎているが、今後はType-Cに統一されていくであろう、ということで理解されたい。
給電能力については、USBだけの問題ではなく、電源や端末にも対応が必要なので、PDがどこまで普及するかは分からない。現状だとQCなどの別の規格も乱立しているし。

ここを見ると、3.1じゃないとPDに対応しないように見えるが、USBの公式ページだとPDは2.0でも対応するようだここにもそうある。詳細はここ
ここは勘違いしやすい点だ。なので上記の表でも、USB PDは世代規格とは別にした。
ただし、コネクタ形状によっては、PDの最大20V 5AのProfile 5には対応しないようだ。また、もちろんだが既存のケーブルでPDは使えないので、対応したケーブルが必要となる。現時点で、給電PD 20V 5Aでかつ、データ転送3.1 Gen2にも対応した製品は少なく、これくらいかも知れない。

いずれにしろ、電圧はともかく、電流を上げるのであれば、抵抗値の低い、太いケーブルを使用すべきだと思う。

<参考>
USB Type-CとUSB 3.1、Thunderbolt 3、DisplayPort など
乱立するスマホ向け急速充電の規格について調べてみた
一部のQuick Charge 3.0対応USB Type-C充電器がケーブルを破壊する話
Type-Cポリスの憂鬱
USB Type-C 規格と試験のポイント
「USB Type-C」問題と安全に使える製品のまとめ―規格の解説やチェック方法など
USB Power Delivery ROHM BM92Txx series

カテゴリー: ガジェット タグ: ,

エックスサーバーとZenlogicとロリポップを使ってみた感想、そして常時SSL

2016 年 11 月 6 日 コメントはありません

今まで、10年以上、ロリポップのレンタルサーバーを借りていた。
借り始めた当時は価格が格安だったし、その後も特に大きな不満はなく、友人の分も含め、3つのサーバーを借りて、運営していた。
最近では、次世代のホスティングサービスなどと称し、新しいサーバーへの移転もあった。
このブログもロリポップで運用している(た)。

ところが、サーバーを検討するに至った事態が突然発生した。

きっかけは、SSL/TLSだった。
iPhoneをiOS 10にして、自作のウェブアプリ–ブラウザからGPSの位置情報を取得する–が使えなくなった。
調べて見るとブラウザのセキュリティ要求が高くなり、SSLに対応していないと使えなくなったことが判明した。

暗号化については以前から興味があったが、まさか個人サイトでもそれが必要になる時代が来るとは思っていなかった。
しかし、やりたいと思っても、SSL通信、つまり証明書は非常に高く、ハードルが高い。諦めて、ロリポップの共有SSLで我慢していた。

ところが、エックスサーバーというレンタルサーバーだと無料で独自ドメインのSSLが使えるということがたまたま分かった。
通常SSL証明書は有料だ。不思議に思って調べて見るとLet’s Encryptという無料証明書のサービスが始まったらしい。
エックスサーバーはそれを利用し、無料で独自ドメインの証明書を使うことができるらしいのだ。本来は面倒な設定が必要だが、エックスサーバーなら簡単に設定できるわけだ。
これは検討せざるを得ない。

問題は料金だ。
ロリポップはライトプランだと、1年契約で250円/月である。
エックスサーバーは一番安いX10プランで、1年契約で1000円/月。
4倍。かなりの差額だ・・ 私の場合はサーバーを3つ運営していたが、それでも躊躇せざるを得ない。
一時は3つのサーバーをロリポップのスタンダードプランに統合しようかとも考えたが、それではSSL通信はクリアできない。
ロリポップにも、SNI対応して、Let’s Encryptを導入しないのかと問い合わせたが、今のところ計画はなさそうだった。

と、ここで、新たな事実が判明する。
何と、第三のZenlogicというレンタルサーバーが、エックスサーバーと同じく、標準独自SSLとして、無料の独自SSLサービスを行っていると言うではないか・・!!
調べて見ると、驚くべきことに、通常は有料のRapidSSLの証明書も無料だそうだ(実際にはRapidSSLをベースにしたと謳われている)。
つまり、Zenlogicでは、Let’s EncryptかRapidSSLを選べる(もちろん別に有料の証明書もある)。

しかも!!
20周年記念として、2016年11月30日まで期間限定で、890円/月のプランSの申し込みができる。
期間限定は申し込みだけで、申し込んでしまえば、ずっとこの料金で使えるらしいのだ。
これには大きく惹かれた。

エックスサーバーは確かにネットでの評判が高く、ロリポップを卒業してエックスサーバーに移る人は多い。
一方Zenlogicは始まったばかりで知名度は高いとは言えない。以前、ファーストサーバという社名でサービスを行っていたが、数年前に大きな事故を起こしたことを覚えている人もいるかも知れない。
しかし、考えようによっては、事故対策は万全になっただろう・・とも思える。事実Zenlogicは大きくシステムを変換したらしい。

さて、エックスサーバーは10日間、Zenlogicは2週間の無料試用が可能だ。
もちろん独自ドメインの設定も可能である。ただ、エックスサーバーの方は、試用中にメールの利用ができない。メールのウェブアプリを構築している私としては、試せないのが不安だった。
一方Zenlogicはその点心配はなく、試用でもメールが使える。
早速申し込んで試用してみた・・

Zenlogicが分かり難いという記事もネットに見かけたが、私にとってこの辺りは特に大きな差を感じなかった。
レンタルサーバーを借りている人なら特に問題なく使えると思う。
速度も体感できるほどの差は感じなかった。その辺は、ここが大きな参考になった。

そして、一番の目的だったSSLの証明書。
これはどちらも簡単に導入できた。
まず、サーバー側で使用するドメインの設定を行う。
次に、サーバーに必要なファイルをアップロードする。
そして、ドメインのネームサーバーの設定で、サーバーのネームサーバーを指定するか、G Suite(Google Apps)などのメールを使っているなら、AレコードでIPアドレスを指定する
少し時間が経つと、独自ドメインで新しいサーバーにアクセスできるようになる。
その状態で、サーバーでSSLの申し込みを行う。無料SSLはあくまでドメインによる認証なので、サーバーとドメインが結びついた状態でないと申し込めないのだ。
もちろん認証レベルに違いは合っても、暗号化レベルに差は基本的にない。
もし常時SSLを導入するなら、.htaccessファイルなどで、常にSSLへアクセスされるように設定すればいい。
試用でも、常時SSLになるように設定した(というか基本的に常時SSL化される)。

さて、SSL証明書の認証方法に差があっても、暗号化に差はないと書いたが、実は各サーバーでの暗号化レベルには設定や対応に差が出る。
いくら高価なEV証明書を導入しても、セキュリティレベルの低いサーバーが存在するのだ。
つまり、セキュリティはサーバーのレベル次第・・となる。
それを検証できるのがSSL LABSだ。
このサイトでドメインを入力すると、そのドメインのサーバーのセキュリティレベルの判定をしてくれる。
自分も色々試したが、日本有数のECサイトでも最低のFレベルだったりするから恐ろしい。
SSLは証明書を導入したら終わりではない。もちろん平文垂れ流しよりはマシなのだろうけど、しっかりセキュリティ対策されたサーバーが必要なのだ。
ここで調べた結果、エックスサーバーはA-評価、ZenlogicはOpenSSL Padding Oracle vuln.(CVE-2016-2107)の対応ができていないらしく、評価は若干低くなっていた。
これについて問い合わせたところ、問題は認識しており、2016年度内を目途に対応するとのことだった。対応されれば評価はAレベルになるだろう。

ところで、上に書いた常時SSLだが、AOSSLとも言われる。
今までは、会員登録や個人情報を取り扱うページのみを暗号化していることが多かったが、今後はトップページを含む全てを暗号化するのがスタンダードになりそうなのだ。
Zenlogicがなぜ無料でRapidSSLの証明書が使えるかと言うと、どうやらこの常時SSLに力を入れているからのようだ。

事実、常時SSL Lab.という特設サイトも作って、常時SSL普及に努めている。
つまり、SSLを導入するなら、Zenlogicは期待できるだろう。

ここまで来ればあとは好みの問題かも知れない。
エックスサーバーは独自ドメインのプレゼントキャンペーンをやっているので、それを考えればコストは少し安くなると言えるかも知れないが、やはり890円/月のZenlogicも魅力的である。しかも、レンタルサーバー契約につきものの、初期費用もZenlogicは無料である。
コスト面ではZenlogicに分があると言えるだろう。

SSLが導入したくなって、サーバー移転を検討しているのなら参考にしてほしい。
これまでは試用だったが、このブログも間もなくSSLを本導入するつもりである。その際には当然常時SSL化するつもりだ。

GoogleのランキングでもHTTPS化(SSL化)されているかどうかが評価の基準になったそうだ。
私の場合はウェブアプリがきっかけだったが、個人サイトでもメールを送ったり、コメントを記入したり、個人情報の取り扱いには注意が必要だ。
そういった意味でも常時SSL化することは求められている。
SSL化を検討されては如何だろうか。

自分で電子証明書を作ってPDFを暗号化してみた

2016 年 10 月 16 日 コメントはありません

ビジネスで使われることも多いPDFファイル。
確かにExcelなどに比べ、PDFは編集しづらいファイルですが、Illustratorなどを使えば簡単に編集できます。

PDFは閲覧したり、編集したりすることを制限するパスワードを設定できますが、結構簡単に破られるそうです。つまり、パスワードだけでは安全と言えないのです。
また、そもそもそのパスワードを相手にどうやって伝えるのか、という昔からの暗号の伝統的問題があります。
パスワードを誰かに盗まれたら、PDFにパスワードをかける意味が低下しますよね..

それらを解決するのが、電子証明書(デジタルID)による暗号化です。
公開鍵を使った暗号化は20世紀に考えられ、今でも有効に使える暗号化方式です。
暗号を受け取る人が暗号を指示する、というのがこの暗号の大きなブレイクスルーでした。
暗号業界ではRSA暗号が有名ですね。

暗号の理論は非常に難解で、複雑な数学が出てきますが、実際に使うのはシステム上難しくないのがポイントで、それゆえ普及しています。
「生卵から玉子焼きを作るのは誰でも簡単だが、玉子焼きから生卵を作るのは事実上不可能」というような数学的理屈を基にしています。
RSA暗号は巨大な素数を掛け合わせ、それを素因数分解するのは難しいということを根拠にしているそうです。

さて、本来公開鍵暗号は一対一のやり取りで使うことができるのですが、それだけだと通信相手が本物なのか証明する術がありません(なりすまし)。
そのため、一般的には、信頼できる第三者機関を間に挟み、相手が本物だと電子証明書を認証してもらいます。
認証してもらうのにはお金がかかります。
ちょっと調べてみたのですが、個人用の簡易認証でも年間3500円くらいするようです。

テストだけならなりすましを心配する必要もありませんし、可能であれば相手からFace to Faceで電子証明書をもらえば安心でしょう。
ということで、PDFの暗号化を電子証明書を用いて行ってみました。
今回はPDFですが、メールなどを暗号化する場合でも理屈は同じだと思います。

必要なもの:
・Windows パソコン (使ったバージョンは10です)
・Adobe Acrobat (使ったバージョンはPro DCです)

流れとしては、自分の電子証明書を作り、それを相手に渡します。
相手はその電子証明書を使って、送るPDFファイルを暗号化します。
暗号化されたファイルは自分しか開くことができません。暗号化した人も開けないのです。

1. 電子証明書を作る(ファイルを受け取る側)
Acrobatで電子証明書を作ります。
Acrobatで適当なファイルを開き、ツール > 保護 > 暗号化 > 証明書による暗号化 > この文章のセキュリティ..「はい」 > 設定を適当に.. 次へ > デジタルIDを追加 > 今すぐデジタルIDを新規作成 次へ > Windows証明書ストア 次へ > 名前とメールアドレスを入力.. 完了
これでWindows証明書ストアに自分の証明書が作られました。
この後はAcrobatを閉じて構いません。
なお、電子証明書はOfficeを使っても作れます。
C:\Program Files (x86)\Microsoft Office\root\Office16\SELFCERT.EXE
などからになります。

2. 電子証明書を送る(ファイルを受け取る側)
コントロールパネル > ネットワークとインターネット > インターネットオプション > コンテンツ > 証明書 > 個人
ここに先ほど作成した証明書が入っているはずです。
エクスポートを選び、次へ > いいえ、秘密キーをエクスポートしません 次へ > DER encoded binary X.509 次へ > 参照で保存する場所とファイル名を入力.. 次へ > 完了
これで相手に送る証明書が作られました。これを相手に送ります。
送る方法は何でもいいです。メールでもいいですし、USBメモリなどに入れて手渡しでもいいです。
*本来は電子証明書を受け取る人(暗号化したファイルを送る人)が、その電子証明書が本当に正しい相手(暗号化したファイルを受け取る人)から来たかどうかをしっかり確認する必要があります。なりすましを防ぐためです。

3. ファイルを暗号化する(ファイルを送る側)
ファイルを受け取る側から受け取った電子証明書を使ってファイルを暗号化します。
Acrobatで送るファイルを開き、ツール > 保護 > 暗号化 > 証明書による暗号化 > この文章のセキュリティ..「はい」 > 設定を適当に.. 次へ > キャンセル > 証明書セキュリティ警告 続行 > 受信者の選択 参照 受け取った電子証明書を選んで 次へ > 完了 > Acrobatのセキュリティ OK > 名前を付けて保存でPDFファイルを保存します
これで完了です。このPDFファイルは暗号化した人も開くことができません。もちろん第三者も開けません。
1の電子証明書を作って、ストアにインストールしている、秘密鍵を持っている人しか開けないのです。
後はこの暗号化したPDFファイルを電子証明書を送った人に送り返します。

如何だったでしょうか、複雑な暗号理論を理解しなくても、スーパーコンピュータを使っても解読が難しいと言われる暗号化したPDFファイルを作成することができました。
ファイルをやり取りする人と電子証明書をお互いに交換しておけば、データを安全にやり取りすることが出来るようになります。

今回はPDFを取り上げましたが、他のファイルやメール、ウェブページも基本的には同じ理屈です。

仕事で安全にファイルをやりたい時にご参考にされて下さい。

<参考>
技術者でなくても分かる 電子証明書とPKI入門

カテゴリー: 仕事 タグ: , ,

海外旅行では銀行で両替するな!

2016 年 9 月 19 日 コメントはありません

皆さんは海外旅行や海外出張の際、どこで現地通貨に両替していますか?

まず問題外なのが、日本の空港での両替だと思います。
余程のことがない限り、レートの超悪い日本の空港で両替することはお勧めできません。

次にお勧めできないのが、現地到着後の空港での両替。
これも大抵の場合、レートがあまり良くなかったり、手数料が高かったりします(日本の空港での両替よりはマシですが)。

基本になるのが、現地に到着して、街へ移動してから、現地の銀行や両替商での両替。
そこそこのレートと手数料で両替できます(ただしホテルなどで両替するとレートが悪いことが多いです)。

一番良さそうなのが、現地空港にあるATMでのクレジットカードを使ったキャッシングです。
間違えないで下さい、現地ATMで使えるキャッシュカードではないです、クレジットカードのキャッシングです。
海外で使えるキャッシュカードは良くない両替方法の一つです。レートが超悪いです。
一般の日本人はクレジットカードのキャッシングは手数料や金利が高い、キャッシングなら手数料も金利もかからない・・と思っています。しかしそこが落とし穴。それは国内利用での話です。
海外でのキャッシュカードによる現金引き出しは、当たり前ですがレートというモノが存在し、ずる賢い銀行はそのレートを悪くすることで暴利を得ています。

海外において、クレジットカードでキャッシングはレートがとてもいい事が多いです。
もちろん金利は発生しますが、レートが現金両替に比べ良く、手数料も低い場合が多いので、トータルで比べると一番良い両替レートになることが多いのです!!

これらは海外旅行フリークが昔から言っていたことですが、今回実際に試してみました。

場所は香港。 使ったのはVISAのクレジットカード。
日時は6月1日。1日ですから、金利が多めにかかる日です。
HSBCのATMで100香港ドルキャッシングしました。
当日、重慶マンションにある比較的レートの良いと思われる両替商では、1398.6円=HKD100でした。

それからしばらくし、カードの請求書が到着・・
結果、金利分合わせても、クレジットカードのキャッシングの請求は、1390円=HKD100でした。

金利期間の少ない下旬でしたら、もっとお得だったでしょう。
大差ないですが噂は本当ぽいです。
いちいち銀行で両替に並ぶよりも、レートの悪い空港で両替するよりも、 空港のATMでキャッシングした方が賢いですね。
ただし、楽天カードのように罠がある場合もあるのでご注意を・・

あ、もちろんクレジットカード払いができるお店では直接クレジットカードで払った方が金利がかからない分トクになります。
ホテルなどでは大抵クレジットカードが使えますので、そこも考えてキャッシング額を調整してみて下さい。

以上ご参考になれば幸いです。

スポンサーリンク
スポンサーリンク