Windows linux セキュリティ

【OpenSSL1.1.1】passwdオプションが増えてた

2019年4月29日

OpenSSL1.1.1が2018年9月よりリリースされ、passwdオプションの種類も増えていたのを最近知った。

passwdオプション

passwdオプションはパスワード用の書式としてハッシュ化するためのオプションになります。
基本的な書式は
$【バージョン】$XXXXXXXXXXX
$【バージョン】$【ソルト文字】$XXXXXXXXX
$ 【バージョン】$rounds=【ストレッチ数】 $【ソルト文字】$
になります。(最後の書式はOpenSSLではできないですが…)

OpenSSL1.1.0g

[root@local bin]# ./openssl passwd --help
Usage: passwd [options]
Valid options are:
 -help       Display this summary
 -in infile  Read passwords from file
 -noverify   Never verify when reading password from terminal
 -quiet      No warnings
 -table      Format output as table
 -reverse    Switch table columns
 -salt val   Use provided salt
 -stdin      Read passwords from stdin
 -apr1       MD5-based password algorithm, Apache variant
 -1          MD5-based password algorithm
 -crypt      Standard Unix password algorithm (default)

OpenSSL1.1.1b

[root@local bin]# ./openssl passwd --help
Usage: passwd [options]
Valid options are:
 -help               Display this summary
 -in infile          Read passwords from file
 -noverify           Never verify when reading password from terminal
 -quiet              No warnings
 -table              Format output as table
 -reverse            Switch table columns
 -salt val           Use provided salt
 -stdin              Read passwords from stdin
 -6                  SHA512-based password algorithm
 -5                  SHA256-based password algorithm
 -apr1               MD5-based password algorithm, Apache variant
 -1                  MD5-based password algorithm
 -aixmd5             AIX MD5-based password algorithm
 -crypt              Standard Unix password algorithm (default)
 -rand val           Load the file(s) into the random number gen

SHA256とSHA512が使えるようになってる!

使ってみた

[root@local bin]# ./openssl passwd -5 -salt test test
$5$test$mE81Hk6jfF7kPRvM6bmJqs2BJ3jxWduOAHAwURD2Ev9

SHA256でハッシュ化できるようになりましたね。これで毎回pythonとかperl、php経由でハッシュ化したパスワードの確認をしなくてもよくなるかも。

雑感

CentOS6だとgrub-cryptで使えてたけどCentOS7からなくなったので代替案として使えるかもですね。(既にインストールされているOpenSSLと共同で使えるようにしないといけないなど少しめんどくさいところはあるが・・・)

あとは、OpenSSLでもストレッチングはできないですね。なくても問題ないといえばないですが、作るのならついでに入れてくれてもよかったのでは?と思いました。(ほかのオプションでは 「iter」でストレッチングができるようになったので) 

ストレッチングなどいろいろ行いたいならば、OpenLDAPを使った方法もありますが…PHPやPythonで十分ですね。

-Windows, linux, セキュリティ
-,