HOME»データベーススペシャリスト掲示板»H28 午後1 問1 設問3 復号関数名
投稿する
H28 午後1 問1 設問3 復号関数名 [0315]
LNRACさん(No.1)
よろしくお願いします。
本問に「復号関数名が盗まれると問題」という話があるのですが、
個人的に実務でこのあたりを触ったことが無く、
理由がいまいち分かりません。
「RDBMSの復号関数によって復号」と問題文にありますが、
これがRDBMS既定の、マニュアルに載っている関数とは違って、
個々の会社が個々に作り込んだものなのでしょうか???
本問に「復号関数名が盗まれると問題」という話があるのですが、
個人的に実務でこのあたりを触ったことが無く、
理由がいまいち分かりません。
「RDBMSの復号関数によって復号」と問題文にありますが、
これがRDBMS既定の、マニュアルに載っている関数とは違って、
個々の会社が個々に作り込んだものなのでしょうか???
2022.08.16 05:44
LNRACさん(No.2)
すみません、上は設問1(3)です
2022.08.16 05:45
GinSanaさん(No.3)
★DB ゴールドマイスター
この投稿は投稿者により削除されました。(2022.08.16 17:47)
2022.08.16 17:47
GinSanaさん(No.4)
★DB ゴールドマイスター
この投稿は投稿者により削除されました。(2022.08.16 17:48)
2022.08.16 17:48
GinSanaさん(No.5)
★DB ゴールドマイスター
これは午後2じゃないですかね。
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2016h28_1/2016h28h_db_pm2_qs.pdf
たとえばpostgresならOpenPGP(pgp_sym_encrypt, pgp_sym_decrypt)って暗号化の仕方をして、そこで暗号アルゴリズムを指定する
PostgreSQL 9.4.5文書
付録 F. 追加で提供されるモジュール
わけですが、
暗号化/復号化(Oracle) | IT系の備忘録(開発)
なので実装によります。SQL標準じゃないですね。
pgp_sym_decryptの引数を見ると
どこのDBかによってではありますが、どこのDBかと暗号化関数、復号鍵(基本は共通鍵か)がわかれば
解かれちゃうというのは、こういう理屈です。
※:Oracleは暗号化アルゴリズムも訊かれるよう。
www.shift-the-oracle.com/plsql/dbms_crypto/encrypt-decrypt.html
DBMS_CRYPTO 使用方法 〜暗号化〜 - オラクル・Oracleをマスターするための基本と仕組み
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2016h28_1/2016h28h_db_pm2_qs.pdf
たとえばpostgresならOpenPGP(pgp_sym_encrypt, pgp_sym_decrypt)って暗号化の仕方をして、そこで暗号アルゴリズムを指定する
pgp_sym_encrypt(data, psw, 'compress-algo=1, cipher-algo=aes256')
pgp_sym_decrypt(msg bytea, psw text [, options text ]) returns text
www.postgresql.jp/document/9.4/html/pgcrypto.htmlpgp_sym_decrypt(msg bytea, psw text [, options text ]) returns text
PostgreSQL 9.4.5文書
付録 F. 追加で提供されるモジュール
わけですが、
値: bf, aes128, aes192, aes256 (OpenSSL-only: 3des, cast5)
デフォルト: aes128
oracleならデフォルト: aes128
vRaw := DBMS_CRYPTO.DECRYPT(
src => vRaw,
typ => DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC
+ DBMS_CRYPTO.PAD_PKCS5,
key => UTL_I18N.STRING_TO_RAW(RPAD(pPwd, 32, CHR(0)), 'AL32UTF8'));
itbibo.php.xdomain.jp/oracle-encrypt-decrypt/src => vRaw,
typ => DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC
+ DBMS_CRYPTO.PAD_PKCS5,
key => UTL_I18N.STRING_TO_RAW(RPAD(pPwd, 32, CHR(0)), 'AL32UTF8'));
暗号化/復号化(Oracle) | IT系の備忘録(開発)
なので実装によります。SQL標準じゃないですね。
pgp_sym_decryptの引数を見ると
pgp_sym_decrypt(msg bytea, psw text [, options text ]) returns text
わかるように、暗号アルゴリズムとかは求められない(※)ので、どこのDBかによってではありますが、どこのDBかと暗号化関数、復号鍵(基本は共通鍵か)がわかれば
解かれちゃうというのは、こういう理屈です。
※:Oracleは暗号化アルゴリズムも訊かれるよう。
typ => DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC
+ DBMS_CRYPTO.PAD_PKCS5,
と書くようなので・・・+ DBMS_CRYPTO.PAD_PKCS5,
www.shift-the-oracle.com/plsql/dbms_crypto/encrypt-decrypt.html
DBMS_CRYPTO 使用方法 〜暗号化〜 - オラクル・Oracleをマスターするための基本と仕組み
2022.08.16 17:53
LNRACさん(No.6)
丁寧なお返事恐れ入ります。
たびたびすみません(汗)
私も検索してみまして、そして思ったのは
暗号化関数の種類(「復号関数名」)自体は決して多くない、総当たりしてもたやすい、
それより引数のほうが何だかややこしそうだな……
ということではありました。
ORACLE の例を見れば、暗号化アルゴリズムの種類の情報を盗むほうが価値が高そうですが、
標準的なテーマとして納得です。
ありがとうございました。
>これは午後2じゃないですかね。
たびたびすみません(汗)
私も検索してみまして、そして思ったのは
暗号化関数の種類(「復号関数名」)自体は決して多くない、総当たりしてもたやすい、
それより引数のほうが何だかややこしそうだな……
ということではありました。
ORACLE の例を見れば、暗号化アルゴリズムの種類の情報を盗むほうが価値が高そうですが、
標準的なテーマとして納得です。
ありがとうございました。
2022.08.16 18:43