PSM/Korean Financial Transactions

Today

Open Questions & Action Items

  • What is KISA's recommendation for what we should do?
  • What are the current regulations? Are the current regulations still mandating SEED? (bsmith heard that these regulations were being relaxed in order to support smartphones and other novel computing devices.)
  • Besides the KISA security ActiveX control, are these sites using other ActiveX controls? If so, for what purpose?
  • Who develops the ActiveX control? The Korean government?
  • Who distributes the ActiveX control? Do websites make it available to users? Is it pre-installed on Korean computers? Does the government offer it for download?
  • What API does the ActiveX control implement?
  • Can we develop a NPAPI plugin that is implemented in terms of the ActiveX control?
  • What is the license for the ActiveX control? Could we bundle it with Firefox? Is the Korean government willing to open-source the ActiveX control?
  • If we develop an alternative implementation of the ActiveX control's functionality, to emulate it, would we need to have that implementation certified by some government organization? If so, what is the process?
  • Does the ActiveX control require the KISA government root CA certificates to be installed in the Windows certificate store?
  • Is our current SEED support in PSM/NSS sufficient? Do we need to expand it? (This is easy to do.) Do we need to have it certified by KISA?
  • Do we need to start trusting the KISA root CA certificates to enable this functionality? Are the KISA roots acceptable according to our root CA policy? If not, can/should we need to limit how we trust the cert and distribute it anyway? See also Bug:335197.
  • How widely distributed is the ActiveX control? That is, how many sites rely on it?
  • Of the sites that rely on this functionality, how many of them would otherwise work (partially or completely) in Firefox? That is, are these sites all so IE-centric that they would need major changes to work in Gecko?
  • We need to have a user of a Korean banking site walk through the process of installing the ActiveX control and logging in/out of affected sites and making transactions in IE, so that bsmith and kaie can understand what is happening.

References

Hints at ActiveX control's API

 nsIXecurePluginInstance.BlockDec( xgate_addr, cipher));
 nsIXecurePluginInstance.BlockEnc ( xgate_addr, path,  "", "POST" );
 nsIXecurePluginInstance.BlockEnc ( xgate_addr, path,  escape(posting_data), "POST" );
 nsIXecurePluginInstance.BlockEnc(xgate_addr, "/", "", "GET");
 nsIXecurePluginInstance.BlockEnc(xgate_addr, path, escape(qs),"GET");
 nsIXecurePluginInstance.BlockEnc(xgate_addr,"/",plain,"GET");
 nsIXecurePluginInstance.BlockEnc(xgate_addr,PATH,, "GET");
 nsIXecurePluginInstance.DeleteCertificate ( escape(dn));
 nsIXecurePluginInstance.EndSession( xgate_addr );
 nsIXecurePluginInstance.GenerateCertReq( 1024 );
 nsIXecurePluginInstance.InstallCertificate(cert_type, cert );
 nsIXecurePluginInstance.LastErrCode();
 nsIXecurePluginInstance.LastErrMsg());
 nsIXecurePluginInstance.LastErrMsg();
 nsIXecurePluginInstance.PutBigBannerUrl( xgate_addr, bannerUrl);
 nsIXecurePluginInstance.RenewCertificate2( ca_port, ca_ip, ca_type + 256 , pwd_fail );
 nsIXecurePluginInstance.RenewCertificate2( crosscert_ca_port, crosscert_ca_ip, crosscert_ca_type + 256 , pwd_fail );
 nsIXecurePluginInstance.RenewCertificate2( koscom_ca_port, koscom_ca_ip, koscom_ca_type + 256 , pwd_fail );
 nsIXecurePluginInstance.RequestCertificate2 ( crosscert_ca_port, crosscert_ca_ip, ref_code, auth_code, crosscert_ca_type + 256 );
 nsIXecurePluginInstance.RequestCertificate2 ( koscom_ca_port, koscom_ca_ip, ref_code, auth_code, koscom_ca_type + 256 );
 nsIXecurePluginInstance.RequestCertificateEx2 ( ca_port, ca_ip, ref_code, auth_code,1 + 256 ,0,"","",1);
 nsIXecurePluginInstance.ShowCertManager();
 nsIXecurePluginInstance.SignData (xgate_addr,escape(accept_cert),escape(plain),show_plain,escape(sign_desc) );
 nsIXecurePluginInstance.SignData (xgate_addr,escape(yes_accept_cert),escape(plain),show_plain,escape(sign_desc) );
 nsIXecurePluginInstance.SignData (xgate_addr,escape(yes_accept_cert_bill),escape(plain),show_plain,escape(sign_desc) );
 nsIXecurePluginInstance.SignData (xgate_addr,escape(yes_accept_cert_sERP),escape(plain),show_plain,escape(sign_desc) );
 nsIXecurePluginInstance.SignData2 (xgate_addr,escape(accept_cert),escape(plain),option,escape(sign_desc),pwd_fail);