実を言うと古い暗号を使った公開鍵はもうだめです。
突然こんなこと言ってごめんね。でも本当です。
2004年8月にNISTにより勧告された暗号技術に関するガイドライン
@see https://jp.globalsign.com/service/ssl/knowledge/1024bit.html
今回は暗号強度の強い楕円DSAによる公開鍵認証を行うTipsをご紹介します。
楕円曲線暗号(だえんきょくせんあんごう、Elliptic Curve Cryptography: ECC)とは、楕円曲線上の離散対数問題 (EC-DLP) の困難性を安全性の根拠とする暗号。1985年頃に ビクタ・ミラー (Victor Miller) とニール・コブリッツ (Neal Koblitz) が各々発明した。
具体的な暗号方式の名前ではなく、楕円曲線を利用した暗号方式の総称である。DSAを楕円曲線上で定義した楕円曲線DSA (ECDSA)、DH鍵共有を楕円化した楕円曲線ディフィー・ヘルマン鍵共有 (ECDH) などがある。公開鍵暗号が多い。
@see Wikipedia
環境
- CentOS7.3
下準備
SSH公開鍵認証用のユーザを作成
1 |
# useradd kurobokko |
1 |
# su kurobokko |
1 |
$ cd |
楕円曲線暗号で公開鍵を作ります。
作成してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ ssh-keygen -t ecdsa -b 521 -C "yuu@example.net" Generating public/private ecdsa key pair. Enter file in which to save the key (/home/kurobokko/.ssh/id_ecdsa): Created directory '/home/kurobokko/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/kurobokko/.ssh/id_ecdsa. Your public key has been saved in /home/kurobokko/.ssh/id_ecdsa.pub. The key fingerprint is: 4e:73:60:8f:fd:9a:6e:18:26:10:67:85:c6:64:82:63 yuu@example.net The key's randomart image is: +--[ECDSA 521]---+ | ..ooo. | | E .o* | | . . = o | | . . = | | . S + | | .ooo . | | o.o . | | . .o | | o+ | +-----------------+ |
SSH鍵があるディレクトリまで移動します。
1 |
$ cd .ssh |
場所の確認を行います。
1 2 |
$ pwd /home/kurobokko/.ssh |
鍵ファイルの確認
1 2 3 4 5 6 |
$ ls -laht total 16K drwx------ 2 kurobokko kurobokko 4.0K Sep 6 17:50 . -rw------- 1 kurobokko kurobokko 361 Sep 6 17:50 id_ecdsa -rw-r--r-- 1 kurobokko kurobokko 269 Sep 6 17:50 id_ecdsa.pub drwx------ 5 kurobokko kurobokko 4.0K Sep 6 17:50 .. |
公開鍵のファイル名の変更
1 |
$ mv id_ecdsa.pub authorized_keys |
パーミッションの設定を行います。
1 |
$ chmod 400 authorized_keys |
気になる中身を見てみよう
公開鍵を見てみます。
1 2 |
$ cat authorized_keys ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAFspTlebe9SRK8yYeWHOzbAnDvSwc0rQAypl543HxYSmWX7lC8SyRUPLGzg3Paro56ujK3ghFekImj7E/f+FO5R2wF2+ZKLDYO7NWHGHStY5jPzXN8S+ipu8kbtFMdj6Avy6QjapeUaWEm+JDJSfRGZmmL3HvL6OO6QSpdcljDQFIA2Fg== yuu@example.net |
秘密鍵の中身はこれだ!
1 2 3 4 5 6 7 8 |
$ cat id_ecdsa -----BEGIN EC PRIVATE KEY----- MIHbAgEBBEFsZoRaXfdyXmTVl2AtD1O5P/Aoivr7J3B/WzP3Lhjfv+ZnNo0Cpnm8 ebSig9Dj3I07yD6n2JC7gls3fe3NWqmtWaAHBgUrgQQAI6GBiQOBhgAEAWylOV5t 71JErzJh5Yc7NsCcO9LBzStADKmXnjcfFhKZZfuULxLJFQ8sbODc9qujnq6MreCE V6QiaPsT9/4U7lHbAXb5kosNg7s1YcYdK1jmM/Nc3xL6Km7yRu0Ux2PoC/LpCNql 5RpYSb4kMlJ9EZmaYvce8vo47pBKl1yWMNAUgDYW -----END EC PRIVATE KEY----- |
短い。
4096bitのRSA鍵を発行して比較してみます。
1 |
$ ssh-keygen -t rsa -b 4096 -C "yuu@example.net" |
1 2 |
$ cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIbWe+jreTcF/vHi0QBYXWbHshIl7F8xD1i/hjXOS0Tq+CIYALR3Vw4y1n7l/twOV0NVm+6AoujHRiGYM9JB26reMEXv0lzOQ2NnZyjO5lUygsEr+qysHvkyLA402Rfxkl69lD/XHchLiBDRIq1J0xTtOgAAa76kO6f6l6nVVnzPs1s2RmfC1skfjR1nV9XP7G1WlS6ifuuDFDfcjkBAgfmhHatBibCPBB81pr32ZKCSb+tdNfv/f7qbpoeviPGyjBAt2oMse2vwjxigKx2QibCiRIow06taeLj8Tok1JjXczAVa4D651j0J0YQ+IT5ju+wl+uCD+4U1FVYwjsjDRJ8DWGZlMBSnisNfdtESo60pBBbJO9HneSzewvw6UL0DKFPZL9XQsjN1CaPRjbpUTKMhyY+RcToHALPiM0i7MFgBuEPAOCaSV6VGDV1sGfci2u29QXbstpLsLXttoeMr9xvUmzBWNXJG7O7PHklDF2EM3XqUeAm/QC3Noc3unaP34SMEp/q1b1HcIuSpJBW2/JdsnC5yktQe/vIiT5EHA/sIJBeggAF8EgBAmtHxj0upmPd5ORi/BMPWqdFeNhxu+kdY61uhf4+asmHRxdcqp8bsZPfuGHMTA5ygNcoAPp/+9+zAf2w9M/doIbaowwkO/X2+UavWXPiSmzhRGgihAGYw== yuu@example.net |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
$ cat id_rsa -----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY----- |
長いですね。
楕円DSA公開鍵認証でログインしてみよう!
無事にログイン出来ました。
お疲れ様です。