公開資料は再現可能な実装パターンを中心にします。再配布制限のあるSDK、ファームウェア、メーカー資料は承認済み経路に限定します。
方法、バージョン、制約を伴う比較可能な根拠。
- 承認されたセキュリティ所有者と定義されたテスト フィクスチャまたはカード セット。
- キー、PIN、 APDU データ、証明書、支払いホスト統合の明確な境界。
- ログが編集され、顧客の資格情報が存在しないプライベート テスト環境。
公開基準
版管理された根拠とともにAndroid業務連携を構築。
公開資料は再現可能な実装パターンを中心にします。再配布制限のあるSDK、ファームウェア、メーカー資料は承認済み経路に限定します。
- 01
カードとセキュリティ境界に名前を付けます
ICC、 PSAM、 PICC、磁気ストライプ、 PIN パッド、セキュア エレメントは異なるワークフローです。すべてを「カード サポート」と呼ぶのではなく、カード タイプ、スロット、プロトコル、所有者、ターゲット デバイスを記録します。
- 02
デモ以外では秘密を守る
パブリック パターンでは、不透明なテスト ハンドルと編集された結果を使用します。キー、 PIN ブロック、トラック データ、 KSN 値、証明書、および顧客フィクスチャは、承認されたプライベート統合内に残ります。
- 03
アクティベーションとリリースを対称にする
1 つのセッションをアクティブ化し、応答の長さとステータスを検証してから、最終パスで非アクティブ化します。トランザクションが失敗した場合、カードまたはセキュア モジュールを開いたままにしてはいけません。
- 04
ハードウェアのクレームの前にセキュリティレビューを要求する
ローカルの SDK サンプルはモジュールの検出には役立ちますが、コンプライアンス、支払いの承認、または運用の互換性を確立するものではありません。これらの主張には別の証拠記録が必要です。
サンプルアプリ / Kotlin
SDK・APIパターン
これは意図的に不透明なテスト ハンドルを使用します。これは支払いの実装ではなく、キーや資格情報は含まれません。
data class SecureRequest(
val operation: String,
val testHandle: String,
)
sealed interface SecureResult {
data object Accepted : SecureResult
data class Declined(val reason: String) : SecureResult
data class Failed(val reason: String) : SecureResult
}
interface SecurePort {
suspend fun execute(request: SecureRequest): SecureResult
}
suspend fun executeApprovedOperation(port: SecurePort): SecureResult =
runCatching {
port.execute(SecureRequest("approved-test", "fixture-01"))
}.getOrElse {
SecureResult.Failed("secure-operation-failed")
}SDK配布
公開ゲート
ベンダーのバイナリ、APIリファレンス、ファームウェア、ソースコード例は、再配布許可と対応範囲を記録してから公開します。
パブリック ワークフローからの応答を破棄し、編集された失敗を記録して、セッションを解放します。
テストを停止し、影響を受ける資格情報をローテーションして、テスト環境からアーティファクトを削除します。
互換性レコードを分割し、デバイス固有のセキュリティ レビューをリクエストします。
証拠ステータス
方法、バージョン、制約を伴う比較可能な根拠。
- 01
承認されたテスト資格情報とフィクスチャはプライベート環境でのみ使用してください。
- 02
アクティブ化、成功、タイムアウト、失敗、およびリリースのパスを確認します。
- 03
レポートまたはサンプルを共有する前に、編集されたログ スキャンを実行します。
- 04
セキュリティ所有者、デバイス、ファームウェア、 SDK 、および承認範囲を記録します。
資料
SDK・APIパターン
ベンダーのバイナリ、APIリファレンス、ファームウェア、ソースコード例は、再配布許可と対応範囲を記録してから公開します。