Download - AWS KMSと鍵の話

Transcript
Page 1: AWS KMSと鍵の話

Amazon KMS(Key Management Service)

uji52

AWS勉強会5分間LT資料 vol2

Page 2: AWS KMSと鍵の話

uji52

自己紹介

• uji52

• 好きなAWSサービス• Lambda

• STS

• 好きなスペック• OpenID Connect

• 好きな署名アルゴリズム• RSA SHA-256

2

Page 3: AWS KMSと鍵の話

uji52

KMS

3

Page 4: AWS KMSと鍵の話

uji52

そもそも鍵とか暗号化ってなんだ

4

Page 5: AWS KMSと鍵の話

uji52

暗号化方式

• 公開鍵暗号• 公開鍵を相手に渡して利用

• 公開鍵暗号化してデータを渡す• 秘密鍵で署名してデータを渡す

• 共通鍵暗号• 同じ鍵で暗号化・復号化

5

Page 6: AWS KMSと鍵の話

uji52

公開鍵暗号の使いみち

• 暗号化してデータを送信• サーバ証明書• SSH

• 署名したのが自分だと証明• JWT Tokenの署名• SAML Responseの署名

6

Page 7: AWS KMSと鍵の話

uji52

本題に入る前に

7

KMSの話

Page 8: AWS KMSと鍵の話

uji52

よくググる内容

8

ここ最近はcertbotばっかり使ってるけど

Page 9: AWS KMSと鍵の話

uji52

よくやる内容

9

#RSAの秘密鍵を生成$ openssl genrsa 2048 > privkey

#公開鍵生成する場合$ openssl rsa -in privkey -pubout -out pubkey

# 認証局への署名リクエスト(Certification Signing Request)を生成# 自身が誰なのか説明するためにいろいろ入力$ openssl req -new -key privkey > server.csr

# 自身でリクエストの内容を見て署名する$ openssl x509 -days 3650 -req -signkey privkey < server.csr > server.crt

Page 10: AWS KMSと鍵の話

uji52

よくやる内容

1. 秘密鍵作って

2. 公開鍵の所有者明らかにして

3. その公開鍵に署名してもらって

4. その署名を公開する

10

Page 11: AWS KMSと鍵の話

uji52

ブラウザは証明書を見て相手が誰か判別して暗号化通

11

Page 12: AWS KMSと鍵の話

uji52

結局何が言いたいか

12

Page 13: AWS KMSと鍵の話

uji52

秘密鍵・共通鍵は

大事に保管しなきゃ

13

Page 14: AWS KMSと鍵の話

uji52

Amazon KMS

14

Page 15: AWS KMSと鍵の話

uji52

平文で重要情報保管

15

秘密鍵パスワード等

平文ダメ!ゼッタイ!

Page 16: AWS KMSと鍵の話

uji52

共通鍵で暗号化して保存

16

秘密鍵パスワード等

共通鍵

暗号化して保存

結局鍵を平文で保存とかダメ!ゼッタイ!!

平文

Page 17: AWS KMSと鍵の話

uji52

Amazon KMS

17

秘密鍵パスワード等

共通鍵

暗号化して保存

暗号化された共通鍵

復号化して鍵取り出し

Page 18: AWS KMSと鍵の話

uji52

Amazon KMS

18

データキーマスターキー

Page 19: AWS KMSと鍵の話

uji52

AWS KMSをCLIで叩く

• aws kms create-key• マスターキーを作る

• aws kms encrypt• マスターキーで暗号化する

• aws kms decrypt• マスターキーで復号化する

• aws kms generate-data-key• データキーを作る

19

使う場合には「結果はBase64エンコードされている」

ということを覚えておくと吉

Page 20: AWS KMSと鍵の話

uji52

まとめ

• マスターキーによる鍵管理• マスターキーを年単位でローテート可• マスターキーが盗まれることなんて…

• AWSに乗っかる• 安定のフルマネージド• Lambda・EC2から共通呼び出し• 鍵利用の情報の管理

20

Page 21: AWS KMSと鍵の話

uji52

おまけ(サーバ証明書の話)

21

Page 22: AWS KMSと鍵の話

uji52

よくやる内容

1. 秘密鍵作って

2. 公開鍵の所有者明らかにして

3. その公開鍵に署名してもらって

4. その署名を公開する

22

Page 23: AWS KMSと鍵の話

uji52

サーバ証明書取得フロー

23

秘密鍵

公開鍵

証明書署名要求

証明書

CA(認証局)

1.秘密鍵を作る

2.公開鍵と自分の情報に署名して証明書署名要求を作る

3.署名してって頼む

4.証明書もらえる

Page 24: AWS KMSと鍵の話

uji52

Private Key

24

modulus

publicExponent

privateExponent

prime1

prime2

exponent1

exponent2

coefficient

←公開鍵情報

$ openssl rsa -text < privkey

Page 25: AWS KMSと鍵の話

uji52

Public Key

25

Modulus

Exponent

$ openssl rsa -text -pubin < pubkey

Page 26: AWS KMSと鍵の話

uji52

Public Key

26

Data:

Version

Subject

Subject Public Key Info

Public Key Algorithm

Public-Key

Modulus

Exponent

Attributes

Signature Algorithm

$ openssl req -text -noout -in server.csr

←公開鍵情報

←自身の署名

Page 27: AWS KMSと鍵の話

uji52

Certificate

27

Certificate

Data

Version

Serial Number

Signature Algorithm

Issuer

Validity

Not Before

Not After

Subject

$ openssl x509 -in server.crt -text

Subject Public Key Info

Public Key Algorithm

Public-Key

Modulus

Exponent

Signature Algorithm

↑CAの署名

←CAの追記した情報署名


Top Related