SAP FI(Financial Accounting) 모듈에서 전자 결제는 기업의 금융 업무를 디지털화하는 핵심 요소다. 보안을 위해 암호화(Encryption) 및 복호화(Decryption) 기술을 적용하여 데이터를 보호한다.
- 데이터 무결성(Integrity): 전송 중 데이터가 변경되지 않도록 보호해야 합니다.
- 기밀성(Confidentiality): 승인된 사용자만 금융 데이터를 볼 수 있도록 암호화가 필요합니다.
- 인증(Authentication): 송신자와 수신자가 신뢰할 수 있는 대상인지 확인해야 합니다.
- 불가부인성(Non-repudiation): 결제 요청이 변경되거나 부인되지 않도록 보장해야 합니다.
위의 요구사항을 충족하기 위해 암호화 및 복호화 기술을 활용합니다.
데이터 전송 암호화
SAP FI는 전자 결제 데이터를 내부 및 외부 시스템과 주고받을 때 강력한 전송 계층 보안(Transport Layer Security, TLS) 및 **보안 파일 전송 프로토콜(SFTP)**을 사용하여 암호화한다.
- TLS(Transport Layer Security): HTTPS 및 SSL을 기반으로 하는 보안 프로토콜로, SAP NetWeaver 및 SAP Gateway에서 지원
- SFTP(Secure File Transfer Protocol): 결제 파일 전송 시 데이터 암호화를 통해 보안을 강화.
저장 데이터 암호화
저장된 은행 계좌 정보, 결제 내역 등의 민감한 데이터를 보호하기 위해 AES(Advanced Encryption Standard) 및 RSA 암호화 알고리즘을 활용
- AES-256: 금융 데이터 암호화에 사용되는 강력한 대칭키 암호화 방식
- RSA: 비대칭키 암호화를 활용하여 데이터 무결성을 보장하는 방식
SAP Data Encryption 기능을 통해 주요 금융 데이터를 암호화하며, 고객 요구 사항에 따라 HSM(Hardware Security Module)과 같은 추가적인 보안 장치를 사용하기도 함
복호화 처리 방식
암호화된 금융 데이터를 사용할 경우, SAP FI에서는 인증된 사용자만 데이터에 접근할 수 있도록 복호화 프로세스를 적용한다
- 사용자가 금융 데이터를 요청하면 SAP은 접근 권한을 확인
- 암호화된 데이터는 AES 또는 RSA 키를 사용하여 복호화
- 복호화된 데이터는 보안 로깅을 통해 감사(Audit) 기록을 남기며 사용
키 관리 및 보안
암호화 및 복호화에서 가장 중요한 요소는 키 관리(Key Management)다.
SSAP Data Custodian 또는 SAP HANA SecureStore를 활용하여 키를 관리한다.
- SAP Data Custodian: 데이터 보호 및 암호화 키를 클라우드에서 안전하게 관리하는 서비스
- SAP HANA SecureStore: 온프레미스 환경에서 암호화 키를 안전하게 저장하는 SAP 솔루션
ABAP을 활용한 암호화 방법
CL_SEC_SXML_WRITER (AES 암호화)
SAP에서는 AES(Advanced Encryption Standard) 알고리즘을 사용하여 데이터를 암호화할 수 있다.ABAP에서는 CL_SEC_SXML_WRITER
클래스를 사용하여 AES 암호화를 적용가능하다.
CL_SEC_SXML_WRITER
클래스를 사용하여 AES 암호화를 적용가능하다.예제 코드 (AES 암호화 및 복호화)
DATA: lv_plain_text TYPE string VALUE 'Hello SAP!',
lv_encrypted TYPE string,
lv_decrypted TYPE string.
DATA(lo_writer) = cl_sec_sxml_writer=>create( ).
lo_writer->set_encryption_algorithm( 'AES' ).
lo_writer->set_encryption_key( 'MySecretKey1234' ).
lv_encrypted = lo_writer->encrypt( lv_plain_text ).
WRITE: / 'Encrypted:', lv_encrypted.
lv_decrypted = lo_writer->decrypt( lv_encrypted ).
WRITE: / 'Decrypted:', lv_decrypted.
CL_SEC_SXML_WRITER
클래스를 활용하여 AES 방식으로 암호화를 수행- 특정 키(
MySecretKey1234
)를 사용하여 데이터를 암호화 및 복호화 - 결과적으로 원래 메시지를 암호화한 후 다시 복호화하여 원본 데이터를 확인
ABAP에서 SHA 해시 적용 (비밀번호 저장 시)
비밀번호와 같은 중요한 데이터는 일반적으로 해시(Hashing) 방식으로 저장된다. 해시는 되돌릴 수 없는 암호화 방식으로, 보안성을 높이는 데 사용된다.
예제 코드 (SHA-256 해싱)
DATA: lv_password TYPE string VALUE 'mypassword',
lv_hashed_pw TYPE string.
CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'
EXPORTING
algorithm = 'SHA256'
data = lv_password
IMPORTING
hash = lv_hashed_pw.
WRITE: / 'Hashed Password:', lv_hashed_pw.
CALCULATE_HASH_FOR_CHAR
함수는 주어진 문자열을 SHA-256 방식으로 해시 처리
- 해싱된 값은 복호화가 불가능하여 비밀번호 저장 시 사용
DATA: lv_password TYPE string VALUE 'mypassword',
lv_hashed_pw TYPE string.
CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'
EXPORTING
algorithm = 'SHA256'
data = lv_password
IMPORTING
hash = lv_hashed_pw.
WRITE: / 'Hashed Password:', lv_hashed_pw.
CALCULATE_HASH_FOR_CHAR
함수는 주어진 문자열을 SHA-256 방식으로 해시 처리
- 해싱된 값은 복호화가 불가능하여 비밀번호 저장 시 사용
SAP Secure Store & Forward (SSF) 암호화
예제 코드 (SSF 암호화)
DATA: lv_plain_text TYPE string VALUE 'Sensitive Data',
lv_encrypted TYPE ssf_encdata,
lv_decrypted TYPE string.
CALL FUNCTION 'SSF_KRN_ENVELOPE'
EXPORTING
cleartext = lv_plain_text
IMPORTING
ciphertext = lv_encrypted.
WRITE: / 'Encrypted Data:', lv_encrypted.
CALL FUNCTION 'SSF_KRN_DEVELOPE'
EXPORTING
ciphertext = lv_encrypted
IMPORTING
cleartext = lv_decrypted.
WRITE: / 'Decrypted Data:', lv_decrypted.
SSF_KRN_ENVELOPE
를 사용하여 데이터를 암호화SSF_KRN_DEVELOPE
를 사용하여 데이터를 복호화
SAP FI에서 암호화가 적용되는 사례
적용 분야 | 암호화 방식 | 설명 |
---|---|---|
은행 계좌 정보 보호 | AES-256 | 은행 계좌 정보를 안전하게 저장 |
SAP FI-CO 인터페이스 보안 | TLS/SSL | 외부 시스템과 통신 시 보안 유지 |
전자 결제(Payment File) 보호 | PGP | 은행과 결제 파일 주고받을 때 사용 |
사용자 비밀번호 관리 | SHA-256 | 비밀번호를 복호화 불가능한 해시로 저장 |
SAP GRC 접근 통제 | RSA | 디지털 서명 및 인증 적용 |
Tags:
sap fi