Submit Search
PostgreSQLのパスワードの謎を追え!
Download as PPTX, PDF
0 likes
402 views
T
Takashi Meguro
第18回 PostgreSQLアンカンファレンスで発表したスライドです。
Technology
Read more
1 of 17
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Most read
15
16
17
More Related Content
What's hot
(20)
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
PPTX
Dbts 分散olt pv2
Takashi Kambayashi
PDF
使ってみて気づいた AGPL ライセンスの メリット・デメリット
Fumito Mizuno
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
PDF
私にとってのテスト
Takuto Wada
PDF
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
PDF
コンピュータに「最長しりとり」「最短距離でのJR線全線乗り尽くし」を解いてもらった方法
Hiro H.
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
PDF
オススメの標準・準標準パッケージ20選
Takuya Ueda
PDF
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
aha_oretama
PDF
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
PDF
マイクロにしすぎた結果がこれだよ!
mosa siru
PPTX
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQL 15 開発最新情報
Masahiko Sawada
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PDF
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Dbts 分散olt pv2
Takashi Kambayashi
使ってみて気づいた AGPL ライセンスの メリット・デメリット
Fumito Mizuno
Dockerからcontainerdへの移行
Akihiro Suda
私にとってのテスト
Takuto Wada
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
コンピュータに「最長しりとり」「最短距離でのJR線全線乗り尽くし」を解いてもらった方法
Hiro H.
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
オススメの標準・準標準パッケージ20選
Takuya Ueda
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
aha_oretama
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
マイクロにしすぎた結果がこれだよ!
mosa siru
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
PostgreSQL 15 開発最新情報
Masahiko Sawada
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
Recently uploaded
(8)
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
Ad
PostgreSQLのパスワードの謎を追え!
1.
PostgreSQLのパス ワードの謎を追え! まぐろ
2.
はじめに これは、C言語のプログラミング経験がないにも関わらず、無謀にも PostgreSQLのソースに挑んだ1人の男の物語です 小ネタだと思って気負わずお付き合いください
3.
自己紹介 まぐろ(Twitter:tameguro) 都内某SI勤務のSE
普段はPostgreSQLの設計・導入・保守などをやっています PostgreSQL歴はだいたい6年くらい PostgreSQLの技術同人誌をいくつか書いてます 「まぐろのみぞおち」で検索! Cのプログラミング経験なし プログラミング経験はJavaがほとんど ここ数年は仕事でプログラミングしてない… Slackだとこんな感じのアイコンです
4.
ある日・・・ 顧客 まぐろ わかりました! 調べてみます!
5.
ググってみたものの・・・ PostgreSQLと連携するツールでの制限はツールごとに存在する PostgreSQLで規定されているパスワードの文字数や文字種などの制限は見 つからない
6.
マニュアルを見てみたものの・・・ CREATE ROLE
パスワードの制限についての記述なし… CREATE USER パスワードの制限についての記述なし… passwordcheck contribだし、そもそもこれが必要とされているということは素のPostgreSQLは パスワードの制限気にしないのでは… 結局よくわからない。マニュアルに書いてないということは、パスワードの 制限はないということ? そんなことある??
7.
こうなったらソースを 見るしかない!
8.
というわけでダウンロードして展開 12.4のソースをダウンロード、展開 展開した直下はわかりやすい構成 srcフォルダにソースがあるに 違いない
9.
わ、わからねえ… 予想外にたくさんフォルダ どのフォルダが何を表しているのか まるでわからない
10.
パスワードが関わる部分を探す 「password」でgrep 検索結果ありすぎてわけがわからない
明らかに無関係そうなフォルダ(test、template等)以外を探す 「backend」フォルダにuser.cがある CreateRole関数がある!きっとこれに違いない! 見つけられたのは運が良かったとしか言えない CreateRoleがbackendにあるのは見つけた後ならなんとなく理解できるが、何 も知らない状態ではまずわからなかった…
11.
user.cのパスワード関係の処理を追 う パスワードのハッシュ化はデフォルトだとMD5で行うという意味かな?制限 とはちょっと違いそう check_passwordとは実にそれっぽい!でも値はNULL…?何もチェックしない ということ?
12.
CreateRole関数 パスワードの何かをチェックしているようだけど、エラーメッセージから推察 するに、CREATE ROLEのオプションの指定に誤りがあった場合に通る? 同時にdpassword変数に何かを格納している。
password変数に指定されたパスワードを格納している…のか?
13.
CreateRole関数(パスワードチェッ ク?) まさにここでパスワードのチェックをしているのでは!? でもcheck_password_hookはNULLが格納されて、特にその後変更はなかったか ら、このチェックは実際には行われない?
14.
CreateRole関数 (パスワードの ハッシュ化) パスワードが存在してい たら、パスワードをハッ シュ化(md5で)して、 pg_authidの新規レコー ドの配列に格納している passwordオプションが 指定されていなかったら pg_authidの新規レコー ドのnullフラグを立てて いる
制限のチェックはしてい ないようだ
15.
CreateRole関数(終わり) この後pg_authidに格納される処理があり、特にパスワードが関わる処理はあり ませんでした user.cには他にAlterRoleやRenameRoleなどの関数がありますが、CreateRoleと 似たような処理で、パスワードの制限を明示しているような処理はありません でした
あれ、これ本当にどんな文字でも何文字でもいいんじゃね?
16.
やってみた マルチバイト 1024文字 やっぱり作れた 作れた ログインできた
17.
結論 いかがでしたか? 結局PostgreSQLのユーザのパスワードの文字数や文字 種についての制限は見つけられませんでした
見当違いのところを探していたかも? マルチバイト文字を使ったり異常に長いパスワードを使ったりすると、 PostgreSQLと連携するツールでパスワード入力ができないなどの弊害が考 えられます パスワードは常識の範疇で考えましょう! ソースの読み方教えて下さい
Download