Cyber_security, GitHub

Abstract#

暗号化関係での疑問をまとめます。

Topics#

ファイル変換系#

  • Pem から PPKにしたい
[7]参照
$ puttygen input.pem -o output.ppk
もちろんputtygenをインストールした後に。
  • Pem から公開鍵を作りたい
[8]参照
$ ssh-keygen -y -f input.pem > output.pub

etc#

Windowsのようには簡単ではなかった。[6]に従い、MacPortsをインストールしてからsudo port install puttyとコマンドを打つのが比較的楽だった。Brewを入れるか、Linux上でやるかも考えたが。。
  • SourceTreeで秘密鍵を使ってGitHubにアクセスしたい
秘密鍵をインポートする。Macだったら
$ ssh-add private.pemで良い[9]
  • EdDSAを使いたい
EdDSAの実装の一つであるed25519を使うには
$ ssh-keygen -t ed25519
これでパスフレーズを入力すると、秘密鍵と公開鍵のセットが手に入る。
  • des3とRSAの関係が知りたい

RSAとは公開鍵暗号方式の一つ。公開鍵暗号には、RSAやDSAや楕円曲線暗号がある[1]。暗号化のアルゴリズムというより、鍵のやり取りに関するアルゴリズムというイメージと理解[2]。とにかく、DESとかAESなどの暗号化アルゴリズムとは違う種類。だからAESを使った共通鍵暗号化方式を使った暗号というのもあり得る[3]
$ ssh-keygen -t rsa
これでRSA方式の秘密鍵、公開鍵のペアができる。

DES3とは暗号化アルゴリズムの一つ。比べるべき相手にAESなどがいる。
$ openssl genrsa -des3 -out server.key 2048
これで、3DES暗号化アルゴリズムに対応した秘密鍵ができる。ちなみに3DESもAESも指定しないとパスワードなしの秘密鍵ができる。
  • DES3ではなくAESでつくれるか?
$ openssl genrsa -aes256 2048
でいけそう。AESの方が最近は推奨!?
  • AESで作った秘密鍵をDES3で出しなおせるか?
$ openssl rsa -in private.pem -out private_des3.pem -outform PEM -des-ede3-cbc
でいけそう。でもputtyは、AES256だとunsupported cipherとかいって読み込んでくれない。その時これが必要。
  • PEMって何?
ファイル保存方式。大体これと思っておいてよさそう。DERというのもあるようだ。
  • HTTPS用とSSH用、共用できるか?
漏れないように一層注意だけど、できる[5]
  • 秘密鍵を作る
$ openssl gensra -aes256 2048 > private.pem
  • 秘密鍵から公開鍵を作る
$ openssl rsa -in private.pem -pubout > public.pem
  • 公開鍵をSSH用にする。
$ ssh-keygen -y -f private.pem > public2.pem

Reference#

  1. [#1] angel_p_57, 2019年01月14日, 2つの公開鍵暗号(公開鍵暗号の基礎知識), https://qiita.com/angel_p_57/items/897bf94160be8d637585
  2. [#2]tkengo, 2015, 理解してるつもりの SSL/TLS でも、もっと理解したら面白かった話, https://tkengo.github.io/blog/2015/12/01/https-details/
  3. [#3]kaoru, 2017, OpenSSLコマンドを用いた共通鍵暗号, https://kaworu.jpn.org/security/OpenSSL%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E5%85%B1%E9%80%9A%E9%8D%B5%E6%9A%97%E5%8F%B7
  4. [#4]OSCA, OpenSSL で RSA の秘密鍵を作成する方法, https://weblabo.oscasierra.net/openssl-genrsa-secret-1/
  5. [#5]Masa, 2012年9月11日, ssh の RSA 鍵を openssl コマンドで扱ってみる, https://mhayashi1120.hatenadiary.org/entry/20120911/1347334880
  6. [#6]https://www.puttygen.com/#Download_PuTTYgen_for_Mac
  7. [#7]How to convert PEM file to PPK using PuTTYgen in Ubuntu, https://stackoverflow.com/questions/28042777/how-to-convert-pem-file-to-ppk-using-puttygen-in-ubuntu
  8. [#8]秘密鍵から公開鍵作る, https://qiita.com/koudaiii/items/45f9f5929afb0039ffdb
  9. [#9]macOS で個人用 SSH キーをセットアップする, https://support.atlassian.com/ja/bitbucket-cloud/docs/set-up-personal-ssh-keys-on-macos/#Start-the-SSH-agent