セキュリティ対策
このページで扱うトピック
加盟店向けセキュリティベストプラクティス
関連ドキュメント: 本ガイドは、オンラインで決済を受け付ける際の加盟店としての責務とベストプラクティスを説明します。トークン化、暗号化、PCI DSS 準拠などの基本概念については、セキュリティ概要を参照してください。
本ドキュメントをお読みになってご不明な点がございましたら、Omise サポートへお問い合わせください。
1. クライアントデバイスからカード情報を送信する
Omise は PCI DSS 準拠の認定サービスプロバイダーとして認定されています。PCI DSS は、カード情報が安全に処理・保存・送信されることを保証する業界標準の要件です。
これらの要件を遵守するため、提供されているクライアントサイドのライブラリまたはプラグインのいずれかを使用して、ユーザーのクライアントデバイスから Omise の暗号化されたボルトサーバーへ直接カード情報を送信することが必須です。これらのライブラリはワンタイムトークンを返し、バックエンドサーバーはそのトークンを使用して請求の作成やその他のカード操作を行います。実際のカード情報は、お客様のサーバーを一切経由しません。

例外: PCI DSS 認定加盟店であっても、カード情報を直接取り扱う予定がある場合は、Omise への通知が必須です。
プラットフォームに応じた適切なクライアントサイド連携を使用してください:
| プラットフォーム | 連携方法 |
|---|---|
| Web(ブラウザ) | Omise.js および事前構築済みの決済フォーム |
| iOS | Omise iOS SDK |
| Android | Omise Android SDK |
| プラグイン | 承認済みの Omise プラグイン — ソースコードを改変しないこと |
センシティブなカード情報の誤取得を防ぐ
決済フォームを構築する際は、カード情報を含むフォームパラメーターが意図せずサーバーに送信されたり、サーバーログに記録されたりしないよう注意してください。
チェックアウトページでは、Mixpanel や Google Analytics などのアナリティクスおよびトラッキングツールを無効にしてください。これらのツールはページ上のデータを収集するため、センシティブなユーザー情報が含まれる可能性があり、その情報が第三者に送信されます。
2. ウェブサイトで HTTPS を有効にする
HTTPS はチェックアウトページでは必須であり、ウェブサイト全体への適用が強く推奨されます。
チェックアウトページで HTTPS を有効にすることで、ユーザーのセンシティブなデータを保護し、アカウントの不正アクセスを防ぎ、ユーザーの信頼を高めることができます。これにより、コンバージョン率の向上につながります。また、HTTPS 対応サイトは検索エンジンでのランキングも高くなります。
Transport Layer Security(TLS)は SSL の後継プロトコルです。ウェブサーバーで HTTPS を有効にするには、TLS バージョン 1.2 以降とサポートされている暗号スイートを使用することが必須です。証明書の取得には Let's Encrypt の利用を推奨します。
注意: アカウントで Webhook が有効になっている場合、Webhook エンドポイント URL にも HTTPS が必須です。
サポートされている TLS 暗号スイート
以下の暗号スイートがサポートされています。これより安全性の低い TLS 暗号は受け付けられない場合があります:
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
3. シークレットキーを安全に保存・送信する
すべての Omise アカウントには公開キーとシークレットキーがあります。詳細は API 認証を参照してください。
- 公開キーは、クレジットカードのトークン化などの限られた安全な操作にのみ使用できます。
- シークレットキーは、請求の作成、返金の発行、送金の開始、顧客データの取得など、その他すべての API 操作へのアクセスを許可します。
シークレットキーを安全に保つために、以下の手順を実施してください:
- シークレットキーをコードリポジトリにコミットしないこと。 代わりに環境変数を使用してください。例については Heroku の Config Vars ドキュメントを参照してください。
- アカウントを他者と共有しないこと。 アカウントへのアクセス履歴を確認するには、dashboard.omise.co/sessions にアクセスしてください。
- Omise ダッシュボードおよび使用しているその他の EC・管理バックエンドで、強力なパスワードを使用し、二要素認証(2FA)を有効にすること。
シークレットキーが漏洩した場合、直ちにダッシュボードにログインしてキーをロールすることが必須です。また、アカウントのセキュリティを確認できるよう、できるだけ早く Omise に通知することを推奨します。
4. 不正利用防止に関する推奨事項に従う
Omise の不正利用防止システムは、各トランザクションのリスクスコアを算出するために詳細なトランザクションデータを必要とします。
安全な決済フォームの提供に加え、Omise.js はユーザーのクライアント IP アドレス、ブラウザエージェント、ブラウザ履歴などの補足シグナルを自動的に収集し、不正利用防止システムがリスク評価に使用します。たとえば、サーバーホスティングプロバイダー、Tor 出口ノード、または公開プロキシから発生したトランザクションは、カード発行国の住宅用接続から発生したトランザクションよりもリスクスコアが高くなります。
自動不正利用防止の効果を最大化するために、以下を推奨します:
- 特に米国およびカナダの顧客に対して、請求先住所の詳細を取得すること。
- 請求リクエストに
charge.ip、charge.description、customer.emailパラメーターを含めること。 - 商品数、商品の種類、配送予定日など、購入に関する補足情報を提供すること。
- プロキシやサーバー IP ではなく、顧客の実際の IP アドレスを提供すること。
推奨パラメーターの完全なリストについては、不正利用防止ガイドを参照してください。
5. ログを監視する
業種によっては、不正利用のリスクが高い場合があります。参考として、Omise の禁止事業リストを確認してください。
例: モバイルチャージなどのサービスでは、返金や取消処理が行われる前に、悪意ある者が現金価値を引き出すことが可能です。
お客様のビジネスがリスクの高いカテゴリに該当する場合は、不審なアクティビティを定期的にトランザクションログで監視してください。ログにアクセスするには、Omise ダッシュボードにログインし、ナビゲーションメニューからログを選択してください。
6. 常に最新の状態を維持する
セキュリティの脅威は常に進化しています。Omise はバグや潜在的な脆弱性に対処するため、クライアントライブラリの更新版を定期的にリリースしています。
- すべての Omise ライブラリおよびプラグインを最新バージョンに保つこと。
- オンライン決済を安全に受け付けるための最新の推奨事項について、本ページを定期的に確認すること。
- API の稼働状況やインシデントの更新情報については、status.omise.co を監視すること。
7. よくある質問(FAQ)
Q: カード情報を直接自社サーバーに送信してはいけないのはなぜですか?
カード情報を自社サーバーを経由して送信すると、インフラが PCI DSS 準拠の対象範囲に含まれることになり、コストと手間のかかる認証プロセスが必要になります。Omise.js またはモバイル SDK を使用して、クライアントデバイスから直接 Omise の暗号化されたボルトにカード情報を送信することで、サーバーが生のカードデータを扱うことがなくなり、コンプライアンスの負担を大幅に軽減できます。
Q: ワンタイムトークンとは何ですか?どのように機能しますか?
ユーザーが Omise.js の決済フォームまたはモバイル SDK にカード情報を入力すると、その情報は直接 Omise のサーバーに送信され、短命の使い捨てトークンが返却されます。このトークンをクライアントからバックエンドサーバーに渡し、API を通じて請求を作成します。トークンは再利用できず、特定の加盟店のみに有効なため、傍受されても使用可能なカードデータは含まれていません。
Q: ホスト型決済ページを使用している場合も HTTPS は必要ですか?
はい。決済フォームを自社でホストするか、ホスト型ソリューションを使用するかにかかわらず、チェックアウトページには HTTPS が必要です。設定した Webhook エンドポイント URL にも同様に必要です。Omise はウェブサイト全体での HTTPS の有効化を強く推奨します。
Q: シークレットキーが漏洩したと思われる場合はどうすればよいですか?
直ちに Omise ダッシュボードにログインし、API キーをロールしてください。キーをロールすると、漏洩したキーが無効化され、新しいキーが発行されます。また、チームがアカウントのセキュリティを調査・確認できるよう、速やかに Omise サポートへ通知することを推奨します。
Q: シークレットキーをクライアントサイドで使用できますか?
いいえ。シークレットキーはクライアントサイドのコード、公開リポジトリ、またはブラウザ環境に公開してはなりません。クライアントサイドの連携には公開キー(pkey_)のみを使用してください。シークレットキー(skey_)は、環境変数またはシークレット管理サービスを通じてのみアクセスできるよう、サーバー上に安全に保存してください。
Q: チェックアウトページで安全に使用できるアナリティクスツールはありますか?
チェックアウトページでサードパーティのアナリティクスまたはトラッキングツールを使用すべきではありません。Google Analytics や Mixpanel などのツールはページレベルのデータを収集するため、センシティブなカード情報を誤って取得し、第三者に送信する可能性があります。チェックアウトページおよび決済確認ページでは、これらのツールをすべて無効にしてください。
Q: Omise が不審なトランザクションを検出した場合はどうなりますか?
Omise の不正利用防止システムは、IP ジオロケーション、トークン化、事前承認チェック、およびリアルタイムの機械学習モデルを使用して、トランザクションを継続的に監視しています。不審なアクティビティが検出された場合、システムはトランザクションをブロックし、ダッシュボード上で請求を failed fraud check としてマークする場合があります。不審なアクティビティの繰り返し、過度の異議申立て、またはポリシー違反が発生した場合、Omise はアカウントを停止または制限する場合があります。詳細は不正利用防止ガイドを参照してください。
Q: サポートする必要がある最低 TLS バージョンは何ですか?
チェックアウトページおよび Webhook エンドポイントを含む、決済データを処理するすべてのサーバーで TLS 1.2 以降を使用することが必須です。TLS 1.0 および 1.1 はサポートされていません。本ドキュメントのサポートされている TLS 暗号スイートに記載された暗号スイートのみを使用するよう、ウェブサーバーを設定してください。