ログ出力について

12/4
Oracle の仕様定義より
目的:
  • 透過的暗号化はDBtableにkeyを置くことがセキュリティを担保するか
  • dbtableの外(webサーバーとか)に配置するべきではないか
二つの暗号化実現手法をOracleは提唱している。
  1. TDE列暗号化
  2. TDE表領域暗号化
今回はTDE表領域暗号化の適用だが、技術要素はほぼ同じ。適用範囲が違う。
[TDE列暗号化]
[TDE表領域暗号化]

[両者の違い]
  • 列の反映か全体の反映か
  • 鍵の持ち方、鍵を単一テーブルで持つのか。それぞれのテーブルごとに持たせるのか
  • 持ち方の違いで、パフォーマンスの実現方式が違う。表領域はバルク暗号化とキャッシュで全体最適
[共通点]
  • 2層の鍵ベース・アーキテクチャ
仕様:
  • 機密データを列レベルまたは表領域レベルで暗号化
  • TDE列暗号化とTDE表領域暗号化では、どちらも2層の鍵ベース・アーキテクチャを使用
→セキュリティ攻撃を試みている侵入者など、許可されていないユーザーは、データを復号化するTDEマスター暗号化鍵を持っていないかぎり、ストレージおよびバックアップ・メディアのデータを読み取れません。
→TDEマスター暗号化鍵の保存と安全性が今回の焦点になりそう。。。
挙動:

TDE列暗号化では、2層の鍵ベース・アーキテクチャを使用して、機密の表の列を透過的に暗号化および復号化します。TDEマスター暗号化鍵は、外部セキュリティ・モジュールに格納され、このモジュールは、Oracleソフトウェア・キーストアまたはハードウェア・キーストアにすることができます。このTDEマスター暗号化鍵はTDE表キーを暗号化および復号化し、TDE表キーは表の列のデータの暗号化および復号化を行います。

→外部モジュールに別口で保存してるらしい。。。

→外部モジュールって具体的にどこだろうか。。。


図が示すように、TDEマスター暗号化鍵は、データベースの外側にあって、適切な権限を付与されたユーザーのみがアクセスできる外部セキュリティ・モジュールに格納されます。この外部セキュリティ・モジュールの場合、Oracle Databaseは、Oracleソフトウェア・キーストア(以前のリリースではウォレット)またはハードウェア・セキュリティ・モジュール(HSM)・キーストアを使用します。このようにTDEマスター暗号化鍵を格納することで、不正使用を防止できます。

表に暗号化列が含まれる場合、暗号化列の数に関係なく、TDEは単一のTDE表キーを使用します。各TDE表キーは、TDEマスター暗号化鍵によって個別に暗号化されます。
→そもそもの建て付けで、暗号鍵は外部保存される。からOKという認識かな。。。
→しかし、外部モジュールではなく具体的にはどこに置かれるのか。

TDEマスター暗号化鍵の具体的な保存先:
→外部セキュリティ・モジュール(ソフトウェア・キーストアまたはハードウェア・キーストア)に格納
→キーストアの動作ってどうなの??安全??

TDEマスター暗号化鍵の格納用のキーストアの動作:

  • Oracle Databaseは、透過的データ暗号化用のキー管理フレームワークを提供します。
  • キー管理フレームワークには、TDEマスター暗号化鍵を安全に格納するキーストア、および様々なデータベース・コンポーネント用のキーストアおよびキー操作を安全かつ効率的に管理する管理フレームワークが含まれています。
  • Oracleキーストアにはそれまで使用されたTDEマスター暗号化鍵の履歴が格納されますが、これにより、TDEマスター暗号化鍵を変更したり、以前のTDEマスター暗号化鍵で暗号化されたデータを復号化することができます。

→Oracle Databaseが独自フレームワークを作っている
→だから安全と主張したいのかな。独自フレームワークは何が便利なのだろう。。。

キーストア格納フレームワークの利点:
  • データベース管理者と鍵を管理するセキュリティ管理者の間で責務を分離できます。

  • コンプライアンスを容易にします。

  • キーストア・バックアップ要件を容易にし、これの実施に役立ちます。

  • すべての重要なキーストア操作用にキーストアのバックアップを作成する必要があります。このTDEマスター暗号化鍵の再設定またはキー更新を行う前に、TDEマスター暗号化鍵のバックアップを作成する必要もあります。

  • ASMファイル・システムにキーストアを格納できるようにします。

  • ハードウェア・セキュリティ・モジュール(HSM)・キーストアからファイルシステム・ベースのソフトウェア・キーストアへの逆移行を可能にします。

→とりあえず便利です。と言いたいのかもしれない。
キーストアのタイプ:
  1. ソフトウェアキーストア
  2. ハードウェアキーストア(HSM)
TDE暗号化鍵の暗号と復号は全てHSMで行います。

暗号化と整合性のアルゴリズム:
  • デフォルトでは、透過的データ暗号化(TDE)列暗号化では、192ビット長の暗号化鍵を使用するAdvanced Encryption Standard (AES192)が使用。また、特に指定しないかぎり、暗号化の前に平文にsaltがデフォルトで追加
  • 透過的データ暗号化(TDE)表領域暗号化の場合、128ビット長の暗号化鍵を使用するAdvanced Encryption Standard (AES128)がデフォルトで使用されます。また、常に、暗号化の前に平文にsaltが追加されます。

ここまで虱潰しに書いてるってことは、昔しつこく聞かれたんじゃね?って気すらしてきた。
本当にガチで詳しく書いてるんだけどw 
---------------
12/3

暗号化について

file_key_managementのkey_fileを分けることは可能か。

■暗号化:db外にkeyを配置する
encryption_key_management
Eperi Key Management Plugin¶
The Eperi Key Management plugin is a key management and encryption plugin that uses the eperi Gateway for Databases. The eperi Gateway for Databases stores encryption keys on the key server outside of the database server itself, which provides an extra level of security. The eperi Gateway for Databases also supports performing all data encryption operations on the key server as well, but this is optional.
For more information, see Eperi Key Management Plugin.

にて可能?

Eperi ==>なんかだめそうな感じが...

API

■理解するための概念

  • Data-at-Rest Encryption Overview
  • Encryption Key Management
  • Eperi
  • Encryption plugin API
  • https://en.wikipedia.org/wiki/Key_management
    https://mariadb.com/ja/about-us/partners/eperi/
    https://runebook.dev/ja/docs/mariadb/eperi-key-management-encryption-plugin/index

    これが日本語

    どうでもいいけど笑ったw。StackOverFlow
    In the words of one of our devops guys - "File key management is somewhat akin to taping your car's key to the windscreen". So, we are looking for a secure way to implement data-at-rest encryption, but we are having trouble with both of the other options listed in the documentation.
    ■DB暗号化の仕様書
    Oracle の仕様書
    ■Railsのログ

    出力先:log/development.log

    自分でログ出力:loggerオブジェクト

    logger.info "task : #{@task.attributes.inspect}"

    ログレベルの設定: config/enviorments/development.rb


    ■チケット起票ポリシー

    • チケットを起票した段階:10%
    • しかかり前半:30%~
    • しかかり後半:60%~
    • チケット完了してレビュー待ち:90%
    • チケットレビュー完了・終了:100%
    ■起票手順
    • Trelloにチケットを登録する
    • Trelloではそれだけ。
    • 他の情報はガントチャートで作成すること
    • サブタスクなどの情報はガントチャート
    ■スケジュール
    -合議(何作る、何が必要、とか)
    -起票(起票のやり方とかは定める)
    -確認(進捗の確認)
    -gitとか定型的な処理の明文化
    • https://trello.com/b/ZlW3uuzd/uims
    • https://prod.teamgantt.com/gantt/schedule/?ids=2428398#ids=2428398&user=&custom=&company=&hide_completed=false&date_filter=&color_filter=

    feature/UIMS-xx

    ■rake fileについて
    ruby用のbuildツール、maven
    buildツール
    「Maven」とは、要するにJavaプログラムをビルドするためのツールです。
    C言語を触ったことがある人は、makeのようなものと言えばイメージがしやすいかと思います。

    rails aborted はmigration error




    Next Post Previous Post
    No Comment
    Add Comment
    comment url