security

開発用のRSA鍵ペア(バイナリ、テキスト)をopensslで作っておく

投稿日:2019年6月26日

環境

CentOS7.6に付属のopenssl 1.0.2k。

$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

$ openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

秘密鍵

テキスト(pem)

$ openssl genrsa -out private_key.pem 2048
Generating RSA private key, 2048 bit long modulus
.......+++
.............................................+++
e is 65537 (0x10001)

バイナリ(der)

$ openssl pkcs8 -in private_key.pem -topk8 -nocrypt -outform DER -out private_key.der

公開鍵

テキスト(pem)

$ openssl rsa -in private_key.pem -pubout -outform pem -out public_key.pem
writing RSA key

バイナリ(der)

$ openssl rsa -in private_key.pem -pubout -outform DER -out public_key.der
writing RSA key

まとめ

JavascriptはPEMで読み取る契機が多い、JavaはDERで読み込む契機が多い、とか言語によって読み込みやすいフォーマットが違うので予めテキスト、バイナリ両方のフォーマットで作っておくと検証プログラムを書く際に「あれ、opensslのオプション何だっけ」と思い出す面倒が無くなります。

-security
-,

執筆者:

関連記事

CentOSで暗号鍵用のパスワードを生成

そこそこ長くて文字種の入り混じった強度の高いものを自分で考えるのは面倒です。 暗号化処理を使う際に必要なパスワード文字列を、mkpasswdコマンドでいい感じに生成出来るようにしておきます。 目次1 …

インターネット上に流れる通信をTSUBAMEで俯瞰する

目次1 TSUBAMEとは1.1 四半期ごとに統計を公開してくれる1.2 週間レポートもしてくれる TSUBAMEとは JPCERTコーディネーションセンター TSUBAME(インターネット定点観測シ …

Chrome76でシークレットモード非検知を実現出来なかった件の検証

2019/07/30にChrome76がリリースされました。 76では以前からGoogleが問題視していた「閲覧者がシークレットモードでみているかどうか運営側が分かってしまう」が解決されるはずでした。 …

ブラウザでRSA暗号化したデータをサーバで復号する(Angular + JSEncrypt、Spring MVC)【前編】

セキュリティ的にクリティカルなデータをクライアントブラウザで暗号化保存するようにしてみます。 通信経路はHTTPSで暗号化されていてもスマホに重要なデータが平文で残っていたら珠に傷です。 目次1 環境 …

電子署名法で求められる「本人性」と「非改ざん性」の実現方法をざっくり理解する

2019年現在ではマイナンバーカードが流通し始め、インターネット上で公的な申請が完了できる体制が整いつつあります。 日本は古式ゆかしい申請制度がしっかりしているのでなかなか諸外国より電子化が進みません …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。