diff --git a/adm/config_form.php b/adm/config_form.php index fc1af2fda..32a180bb9 100644 --- a/adm/config_form.php +++ b/adm/config_form.php @@ -409,6 +409,11 @@ if (!isset($config['cf_cert_kg_mid'])) { ADD COLUMN `cf_cert_kg_mid` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_cert_kg_cd`; "; sql_query($sql, false); } +if (!isset($config['cf_cert_use_seed'])) { + $sql = "ALTER TABLE `{$g5['config_table']}` + ADD COLUMN `cf_cert_use_seed` TINYINT(4) NOT NULL DEFAULT '0' AFTER `cf_cert_kg_mid`; "; + sql_query($sql, false); +} if (!$config['cf_faq_skin']) { $config['cf_faq_skin'] = "basic"; } @@ -1003,6 +1008,16 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) { + + + + + + + diff --git a/adm/config_form_update.php b/adm/config_form_update.php index dafa85ce5..cfe8e16cb 100644 --- a/adm/config_form_update.php +++ b/adm/config_form_update.php @@ -105,6 +105,7 @@ $check_keys = array( 'cf_cert_ipin' => 'char', 'cf_cert_hp' => 'char', 'cf_cert_simple' => 'char', + 'cf_cert_use_seed' => 'int', 'cf_admin_email' => 'char', 'cf_admin_email_name' => 'char', 'cf_add_script' => 'text', @@ -284,6 +285,7 @@ $sql = " update {$g5['config_table']} cf_cert_ipin = '{$_POST['cf_cert_ipin']}', cf_cert_hp = '{$_POST['cf_cert_hp']}', cf_cert_simple = '{$_POST['cf_cert_simple']}', + cf_cert_use_seed = '".(int)$_POST['cf_cert_use_seed']."', cf_cert_kg_cd = '{$_POST['cf_cert_kg_cd']}', cf_cert_kg_mid = '" . trim($_POST['cf_cert_kg_mid']) . "', cf_cert_kcb_cd = '{$_POST['cf_cert_kcb_cd']}', diff --git a/extend/default.config.php b/extend/default.config.php index 0df67714a..f634e939f 100644 --- a/extend/default.config.php +++ b/extend/default.config.php @@ -1,6 +1,8 @@ no_profile'); diff --git a/install/gnuboard5.sql b/install/gnuboard5.sql index 64c39a8a9..060375457 100644 --- a/install/gnuboard5.sql +++ b/install/gnuboard5.sql @@ -292,6 +292,7 @@ CREATE TABLE IF NOT EXISTS `g5_config` ( `cf_cert_simple` varchar(255) NOT NULL DEFAULT '', `cf_cert_kg_cd` varchar(255) NOT NULL DEFAULT '', `cf_cert_kg_mid` varchar(255) NOT NULL DEFAULT '', + `cf_cert_use_seed` tinyint(4) NOT NULL DEFAULT '0', `cf_cert_kcb_cd` varchar(255) NOT NULL DEFAULT '', `cf_cert_kcp_cd` varchar(255) NOT NULL DEFAULT '', `cf_lg_mid` varchar(100) NOT NULL DEFAULT '', diff --git a/plugin/inicert/ini_request.php b/plugin/inicert/ini_request.php index 3eaa70599..d7f4c110d 100644 --- a/plugin/inicert/ini_request.php +++ b/plugin/inicert/ini_request.php @@ -17,7 +17,7 @@ if($config['cf_cert_use'] == 2) { // 실서비스 일때 $mTxId ='SIR_'.$max_cr_id; } $reqSvcCd ='01'; // 요청구분코드 ["01":간편인증, "02":전자서명] -$reservedMsg ='isUseToken=Y'; // 결과조회 응답시 개인정보SEED 암호화 처리 요청 +$reservedMsg = (defined('KGINICIS_USE_CERT_SEED') && KGINICIS_USE_CERT_SEED) ? 'isUseToken=Y' : ''; // 결과조회 응답시 개인정보SEED 암호화 처리 요청 // 등록가맹점 확인 $plainText1 = hash("sha256",(string)$mid.(string)$mTxId.(string)$apiKey); diff --git a/plugin/inicert/ini_result.php b/plugin/inicert/ini_result.php index 1fd810281..2299c6b9a 100644 --- a/plugin/inicert/ini_result.php +++ b/plugin/inicert/ini_result.php @@ -54,11 +54,13 @@ if ($txId && isset($_POST["resultCode"]) && $_POST["resultCode"] === "0000") { $birth_day = $res_data['userBirthday']; // 생년월일 $ci = $res_data['userCi']; // CI - // 개인정보SEED 암호화 된것을 복호화 합니다. - $user_name = decrypt_SEED($user_name, $SEEDKEY, $SEEDIV); - $phone_no = decrypt_SEED($phone_no, $SEEDKEY, $SEEDIV); - $birth_day = decrypt_SEED($birth_day, $SEEDKEY, $SEEDIV); - $ci = decrypt_SEED($ci, $SEEDKEY, $SEEDIV); + if (defined('KGINICIS_USE_CERT_SEED') && KGINICIS_USE_CERT_SEED) { + // 개인정보SEED 암호화 된것을 복호화 합니다. + $user_name = decrypt_SEED($user_name, $SEEDKEY, $SEEDIV); + $phone_no = decrypt_SEED($phone_no, $SEEDKEY, $SEEDIV); + $birth_day = decrypt_SEED($birth_day, $SEEDKEY, $SEEDIV); + $ci = decrypt_SEED($ci, $SEEDKEY, $SEEDIV); + } @insert_cert_history($member['mb_id'], 'inicis', $cert_type); // 인증성공 시 내역 기록 diff --git a/plugin/inicert/libs/INILib.php b/plugin/inicert/libs/INILib.php index a640688bb..335fe456a 100644 --- a/plugin/inicert/libs/INILib.php +++ b/plugin/inicert/libs/INILib.php @@ -67,10 +67,11 @@ function decrypt_SEED($str, $bszUser_key, $bszIV) { $pdwRoundKey = array_pad(array(), 32, 0); $bszPlainText = null; + $planBytresMessage = array(); // 방법 1 $bszPlainText = KISA_SEED_CBC::SEED_CBC_Decrypt($keyBytes, $IVBytes, $planBytes, 0, count($planBytes)); - for ($i = 0; $i < sizeof($bszPlainText); $i++) { + for ($i = 0; $i < sizeof((array) $bszPlainText); $i++) { $planBytresMessage[] = sprintf("%02X", $bszPlainText[$i]); } return Hex2String($planBytresMessage); diff --git a/plugin/inicert/libs/KISA_SEED_CBC.php b/plugin/inicert/libs/KISA_SEED_CBC.php index 6a3498480..d45374d00 100644 --- a/plugin/inicert/libs/KISA_SEED_CBC.php +++ b/plugin/inicert/libs/KISA_SEED_CBC.php @@ -171,7 +171,7 @@ if (!defined('_KISA_SEED_KEY_')) { var $key_data = null; - function KISA_SEED_KEY() { + function __construct() { $this->key_data = array_pad(array(), 32, 0); } @@ -192,7 +192,7 @@ if (!defined('_KISA_SEED_INFO_')) { var $cbc_last_block = null; var $last_block_flag = 0; - function KISA_SEED_INFO() { + function __construct() { $this->ivec = array_pad(array(), 4, 0); $this->seed_key = new KISA_SEED_KEY(); $this->cbc_buffer = array_pad(array(), 4, 0);