使用CoSign api和OTP批量签名

时间:2015-05-10 14:37:42

标签: cosign-api

我想使用CoSign api将CoSign签名解决方案添加到我公司的自定义Oracle表单系统中。为了扩展安全性并遵守当地法规,我想使用OTP(一次性密码)。

所需功能:

  1. 用户登录我的自定义应用程序
  2. 打开包含许多pdf(50-100)文件列表的自定义表单,旁边有一个复选框
  3. 如果他愿意,用户打开每个pdf。通常他不会,但这是他的决定
  4. 用户选中pdf文件列表旁边的所有复选框,然后按“签名”按钮
  5. 自定义弹出窗口询问用户他的CoSign用户名/密码和OTP
  6. 使用CoSign api对用户进行身份验证。首先,向CoSign发出关于用户名和密码的api呼叫。然后再向Radius服务器发出关于OTP的api调用。
  7. 如果身份验证成功,则会立即签署所有50-100个pdf,而无需再次询问用户username-password-otp。
  8. 如果用户想要签署另一套50-100 pdf文件,那么再次询问他的凭据是否正常。
  9. 以上是否可以或者用户必须在此批量签名自定义应用中为应用程序提供50-100次凭据?

    CoSign api支持上述流程吗?是否会出现关于otp或会话生命周期的持续时间问题?

1 个答案:

答案 0 :(得分:2)

我有两个我能想到的选择:

  1. 您的OTP令牌是软件令牌,并且 GetOTP()API 不提示用户输入。
  2. 获取一次OTP并签名 您可以在OTP有效时间窗口中输入的文件 并行并发)。
  3. <强>详情

    <强> 1。使用GetOTP()API

    的顺序批处理

    从(软件)令牌获得OTP后,您必须立即使用SAPI本地 Sign Ex *函数作为参数接收OTP。

    您也可以使用从批处理或power-shell脚本调用的ARFileSign实用程序来实现它。此外,OTP必须预先提取。

    <强> 2。并发批处理

    执行一次(每个流程)

    SAPICrypt SAPI = new SAPICryptClass();
    SAPI.Init();
    

    然后为每个文档生成一个将执行的不同线程:

    SAPI.HandleAcquire(out SesHandle);
    rc = SAPI.Logon(SesHandle, User, Domain, Password);
    //create signature field code comes here
    SAPI.SignatureFieldSignEx(SesHandle, sf, 0, OTP);
    

    可同时签署的最大文档数量应通过实验确定。从10开始,慢慢增加金额,直到你看到一些没有签名。这取决于客户端计算机的强度(内核数量,内存量,CoSign服务器质量链接等)以及OTP有效期的持续时间。

    在确定可以并发签名的数量之后,为了安全起见,您可以实现“无法签名的收集器”:第一次失败将停止并行执行;然后序列“未签名的收藏家”将插入所有计划签署但未签署到下一轮签名的文件。

    希望它有所帮助,

    Aviv Simionovici 销售工程师和项目经理, 的DocuSign