aws kmsと鍵の話

Post on 28-Jan-2018

968 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Amazon KMS(Key Management Service)

uji52

AWS勉強会5分間LT資料 vol2

uji52

自己紹介

• uji52

• 好きなAWSサービス• Lambda

• STS

• 好きなスペック• OpenID Connect

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

2

uji52

KMS

3

uji52

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

4

uji52

暗号化方式

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

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

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

5

uji52

公開鍵暗号の使いみち

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

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

6

uji52

本題に入る前に

7

KMSの話

uji52

よくググる内容

8

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

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

uji52

よくやる内容

1. 秘密鍵作って

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

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

4. その署名を公開する

10

uji52

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

11

uji52

結局何が言いたいか

12

uji52

秘密鍵・共通鍵は

大事に保管しなきゃ

13

uji52

Amazon KMS

14

uji52

平文で重要情報保管

15

秘密鍵パスワード等

平文ダメ!ゼッタイ!

uji52

共通鍵で暗号化して保存

16

秘密鍵パスワード等

共通鍵

暗号化して保存

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

平文

uji52

Amazon KMS

17

秘密鍵パスワード等

共通鍵

暗号化して保存

暗号化された共通鍵

復号化して鍵取り出し

uji52

Amazon KMS

18

データキーマスターキー

uji52

AWS KMSをCLIで叩く

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

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

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

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

19

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

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

uji52

まとめ

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

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

20

uji52

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

21

uji52

よくやる内容

1. 秘密鍵作って

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

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

4. その署名を公開する

22

uji52

サーバ証明書取得フロー

23

秘密鍵

公開鍵

証明書署名要求

証明書

CA(認証局)

1.秘密鍵を作る

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

3.署名してって頼む

4.証明書もらえる

uji52

Private Key

24

modulus

publicExponent

privateExponent

prime1

prime2

exponent1

exponent2

coefficient

←公開鍵情報

$ openssl rsa -text < privkey

uji52

Public Key

25

Modulus

Exponent

$ openssl rsa -text -pubin < pubkey

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

←公開鍵情報

←自身の署名

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