格尔安全认证网关的Web系统开发规范
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目(图片等),提高 SSL 的连接性能。 ² 减少使用重定向功能,避免使用多重重定向功能。 ² 系统提供统一的固定端口对外提供服务,避免使用动态及多个端口。 ² 对每个网页都必须对获取的用户身份 cookie 与应用保存的用户 session 值进
行对比,防止另一个用户使用未关闭的 IE 进行访问。 ² 若网页包含多框架或多窗口,则网页内容的获取应统一由 HTTPS 方式获取,
3 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
为了避免应用的错误判断,SSL 服务在设定绑定 cookie 的前提下,无论是否 获取到证书信息,都在用户信息中加入名称为 SSL_VERIFY_CERT 的 cookie 项, 证书通过验证则 cookie 的值为 yes,若为通过证书验证值为 no。因此,应用可 以通过 SSL_VERIFY_CERT 来判断用户是否通过了证书验证。
证书主题 T 项值
职级
7. KOAL_CERT_E
证书主题 E Байду номын сангаас值
EAMIL 地址
8. KOAL_CERT_ST
证书主题 ST 项值 机构
9. KOAL_CERT_L
证书主题 L 项值
地点
10. KOAL_CERT
B64 编码的用户证书
11. KOAL_CERT_ISSUER 证书颁发者通用名 _CN
3 应用接口
3.1 接口描述
SSL 与应用系统的接口以 cookie 的方式实现,SSL 服务将证书及其他信息以
cookie 方式发送到应用服务器,每一个 cookie 的名称都有其确定的含义。cookie
名称的定义如下(假定):
序 Cookie 名称
Cookie 值含义
应用含义
备注
号
1. KOAL_CERT_CN
可以去掉登录页面。 ² 在使用超级连接时尽可能使用相对链接,禁止使用 HTTP 的绝对链接本地服
务,否则无法访问,本地服务用户只能通过 HTTPS 访问。 ² 避免使用协议的特有功能,保持 HTTP 与 HTTPS 的通用性。 ² 不得使用 KOAL_开头的 cookie 作为有用信息,否则会被过滤。 ² 避免使用过多的 cookie 信息,建议不要超过 1000 字节。 ² 对于网页中参数的传递尽可能以 POST 方式,避免 GET 方式。 ² 在网页美观的前提下,保证网页的简洁性,尽量减少网页中的帧数和资源数
证书主题 CN 项值 用户编码
具体内
2. KOAL_CERT_G 3. KOAL_CERT_DN
证书主题 GN 项值 证书主题项值
用户姓名
容以具 体 CA 制
4. KOAL_CERT_O 5. KOAL_CERT_OU
证书主题 O 项值 证书主题 OU 项值
组织 单位
定的含 义为准
6. KOAL_CERT_T
i 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
目录
1 规范描述 ..........................................................................................1 2 开发常见问题....................................................................................2
2.3 采 用 可 选 验 证 时 , 应用如何判断用户是否提交了证 书?
l 问题描述: SSL 服务采用可选验证时,用户既可以提交证书验证,也可以不提交证书进 行验证,都可以访问后台应用,应用如何区分用户是否进行了证书验证呢,是否 可以采取应用获取证书内容的 cookie 方式来来判断呢?即能够获取到 cookie 就 认为用户通过了证书认证,获取不到 cookie 就认为用户未提交证书。 l 问题分析: 当用户提交证书验证通过后,SSL 服务获取证书信息并以 cookie 方式发送到 应用服务器,在加入证书信息的 cookie 前,SSL 服务会对原有请求信息进行分 析,若有相同 cookie 名称的内容则进行破坏处理,保证应用获取的证书信息的 正确性;当用户不提交证书信息时,SSL 服务无法获取证书信息,因此不会加入 新的 cookie 信息,当然也不会检查用户请求信息中的内容了,因此用户在不提 交证书情况下完全可以在请求中伪造出相应的 cookie 信息,而 SSL 服务误认为 是应用所需要的信息而不加处理,造成应用也可以获取到“证书内容的 cookie”, 误认为用户已经经过了证书验证。 l 问题解决
l 问题解决: 通过以上问题分析,问题的解决其实就是解决不同网站(应用)间共用用户 session 的问题,由于上述“两个网站”其实是一个,因此只要解决客户端发送 问题就可以了。一种简单的方法是在切换 https 的时候,在 https 页面中加入隐 含表单,在提交服务器之前通过客户端脚本将原有用户端信息自动填入,服务器 通过获取隐含表单内容来判断用户,而不是简单的通过页面 session 判断(页面 session 肯定不一样)。
2.1 如何保证应用用户与 SSL 连接用户的一致性? ...........................2 2.2 http 与 https 进行切换时应用如何保持用户 session?..................2 2.3 采用可选验证时,应用如何判断用户是否提交了证书?...............3 3 应用接口 ..........................................................................................4 3.1 接口描述...............................................................................4 3.2 接口实例...............................................................................5
2 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
应用方式对于客户端来说是两个网站(http 访问的地址与 https 访问的地址不 同),因此通过 https 访问的时候客户端不会把先前的用户信息发送到第二个地 址。所以,应用无法获取用户 session 并不是 SSL 网关将用户信息过滤掉,而是 客户端根本没有发送用户信息。
格尔安全认证网关的 Web 系统开发 规范
v1.1
上海格尔软件股份有限公司 2004 年 12 月
保密事宜:
本文档包含上海格尔软件股份有限公司的专有商业信息和保密信息。 接受方同意维护本文档所提供信息的保密性,承诺不对其进行复制,或向评 估小组以外、非直接相关的人员公开此信息。对于以下三种信息,接受方不向格 尔公司承担保密责任: 1 ) 接受方在接收该文档前,已经掌握的信息。 2 ) 可以通过与接受方无关的其它渠道公开获得的信息。 3 ) 可以从第三方,以无附加保密要求方式获得的信息。
2 开发常见问题
2.1 如何保证应用用户与 SSL 连接用户的一致性?
l 问题描述: 通过 SSL 访问应用,提交用户证书并正确进入,此时在 IE 不关闭的情况下 更换用户证书,进行访问时会提示重新输入证书密码并验证,使用新的证书建立 连接访问后,发现应用中的用户还是先前的用户,并没有与当前证书对应。(此 种现象仅会在客户端实现较为完善,对硬件证书时刻监控的情况下才会发生,否 则 IE 还是采用原有 SSL 连接进行,并不以新证书进行连接)。 l 问题分析: 通常用户 session 有效期是与客户端进程关联的,由于 IE 没有关闭,因此用 户的 session 继续有效,虽然 SSL 连接已经发现用户发生变化,但应用还是根据 原有的用户 session 进行判断,导致应用身份与 SSL 连接身份不一致。 l 问题解决: 在这种情况下,由于 SSL 连接已经发现了身份变更,因此只要应用始终与 SSL 连接的身份保持一致就可以了。实现的方法是:应用每次收到请求时都可以 通过 cookie 方式获取用户身份,然后将此身份与用户 session 保存的身份进行对 比,若发生变化,则重新设定用户信息。
客户IP地址
17. SSL_VERIFY_CERT yes 或 no
验证证书时为 yes 在 服 务 不验证证书时为 no 为 可 选
验证时 需要
3.2 接口实例
下面提供 Asp 脚本取 cookie 的示例: <html> 用户编码=<%=Request.Cookies("KOAL_CERT_CN")%> <BR> 用户姓名=<%=Request.Cookies("KOAL_CERT_GN")%> <BR> 客户IP=<%=Request.Cookies("KOAL_CLIENT_IP")%> <BR> 职级=<%=Request.Cookies(" KOAL_CERT_T")%> <BR> EMAIL 地址=<%=Request.Cookies("KOAL_CERT_E")%>
12. KOAL_CERT_ISSUER 证书颁发者组织名 _O
4 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
13. KOAL_CERT_SERIAL 证书序列号
避免混用其他方式(HTTP,about:blank 空页面等)获取,否则会提示网页 包含不安全内容。
1 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
2.2 http 与 https 进 行 切 换 时 应 用 如 何 保 持 用 户 session?
l 问题描述: SSL 网关保护部分 Web 资源,具体方式如下,用户首先通过 http 方式登录 网站,在进行某些重要操作时候使用 https 方式通过 SSL 网关认证访问应用,此 时 Web 应用无法获取原有用户 session。 l 问题分析: 通常的用户 session 是根据用户访问的地址来匹配的,通常是域名,但以上
ii 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
1 规范描述
SSL 安全网关能够对用户的数字证书进行验证,在浏览器与 Web 服务器之间 建立安全加密通道,可以为 Web 应用系统提供用户身份认证和数据保密的功能。 为了充分利用 SSL 安全网关的安全功能,保证系统可操作性和性能,实现系统与 安全网关的顺利结合,在 Web 应用系统的开发过程中应注意以下几点: ² 系统中的用户标志设置必须以用户数字证书中的标志为基础。 ² 用户身份的获取必须以安全网关提供为准,用户身份从 cookie 中获取,系统
证书序列号
_NUMBER
14. KOAL_NOT_BEFORE 证 书 启 用 日 期 时 间 生效期
(
格
式:yyyy-mm-dd-hh-
mm-ss)
15. KOAL_NOT_AFTER 证 书 失 效 日 期 时 间 失效期
(
格
式:yyyy-mm-dd-hh-
mm-ss)
16. KOAL_CLIENT_IP
行对比,防止另一个用户使用未关闭的 IE 进行访问。 ² 若网页包含多框架或多窗口,则网页内容的获取应统一由 HTTPS 方式获取,
3 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
为了避免应用的错误判断,SSL 服务在设定绑定 cookie 的前提下,无论是否 获取到证书信息,都在用户信息中加入名称为 SSL_VERIFY_CERT 的 cookie 项, 证书通过验证则 cookie 的值为 yes,若为通过证书验证值为 no。因此,应用可 以通过 SSL_VERIFY_CERT 来判断用户是否通过了证书验证。
证书主题 T 项值
职级
7. KOAL_CERT_E
证书主题 E Байду номын сангаас值
EAMIL 地址
8. KOAL_CERT_ST
证书主题 ST 项值 机构
9. KOAL_CERT_L
证书主题 L 项值
地点
10. KOAL_CERT
B64 编码的用户证书
11. KOAL_CERT_ISSUER 证书颁发者通用名 _CN
3 应用接口
3.1 接口描述
SSL 与应用系统的接口以 cookie 的方式实现,SSL 服务将证书及其他信息以
cookie 方式发送到应用服务器,每一个 cookie 的名称都有其确定的含义。cookie
名称的定义如下(假定):
序 Cookie 名称
Cookie 值含义
应用含义
备注
号
1. KOAL_CERT_CN
可以去掉登录页面。 ² 在使用超级连接时尽可能使用相对链接,禁止使用 HTTP 的绝对链接本地服
务,否则无法访问,本地服务用户只能通过 HTTPS 访问。 ² 避免使用协议的特有功能,保持 HTTP 与 HTTPS 的通用性。 ² 不得使用 KOAL_开头的 cookie 作为有用信息,否则会被过滤。 ² 避免使用过多的 cookie 信息,建议不要超过 1000 字节。 ² 对于网页中参数的传递尽可能以 POST 方式,避免 GET 方式。 ² 在网页美观的前提下,保证网页的简洁性,尽量减少网页中的帧数和资源数
证书主题 CN 项值 用户编码
具体内
2. KOAL_CERT_G 3. KOAL_CERT_DN
证书主题 GN 项值 证书主题项值
用户姓名
容以具 体 CA 制
4. KOAL_CERT_O 5. KOAL_CERT_OU
证书主题 O 项值 证书主题 OU 项值
组织 单位
定的含 义为准
6. KOAL_CERT_T
i 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
目录
1 规范描述 ..........................................................................................1 2 开发常见问题....................................................................................2
2.3 采 用 可 选 验 证 时 , 应用如何判断用户是否提交了证 书?
l 问题描述: SSL 服务采用可选验证时,用户既可以提交证书验证,也可以不提交证书进 行验证,都可以访问后台应用,应用如何区分用户是否进行了证书验证呢,是否 可以采取应用获取证书内容的 cookie 方式来来判断呢?即能够获取到 cookie 就 认为用户通过了证书认证,获取不到 cookie 就认为用户未提交证书。 l 问题分析: 当用户提交证书验证通过后,SSL 服务获取证书信息并以 cookie 方式发送到 应用服务器,在加入证书信息的 cookie 前,SSL 服务会对原有请求信息进行分 析,若有相同 cookie 名称的内容则进行破坏处理,保证应用获取的证书信息的 正确性;当用户不提交证书信息时,SSL 服务无法获取证书信息,因此不会加入 新的 cookie 信息,当然也不会检查用户请求信息中的内容了,因此用户在不提 交证书情况下完全可以在请求中伪造出相应的 cookie 信息,而 SSL 服务误认为 是应用所需要的信息而不加处理,造成应用也可以获取到“证书内容的 cookie”, 误认为用户已经经过了证书验证。 l 问题解决
l 问题解决: 通过以上问题分析,问题的解决其实就是解决不同网站(应用)间共用用户 session 的问题,由于上述“两个网站”其实是一个,因此只要解决客户端发送 问题就可以了。一种简单的方法是在切换 https 的时候,在 https 页面中加入隐 含表单,在提交服务器之前通过客户端脚本将原有用户端信息自动填入,服务器 通过获取隐含表单内容来判断用户,而不是简单的通过页面 session 判断(页面 session 肯定不一样)。
2.1 如何保证应用用户与 SSL 连接用户的一致性? ...........................2 2.2 http 与 https 进行切换时应用如何保持用户 session?..................2 2.3 采用可选验证时,应用如何判断用户是否提交了证书?...............3 3 应用接口 ..........................................................................................4 3.1 接口描述...............................................................................4 3.2 接口实例...............................................................................5
2 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
应用方式对于客户端来说是两个网站(http 访问的地址与 https 访问的地址不 同),因此通过 https 访问的时候客户端不会把先前的用户信息发送到第二个地 址。所以,应用无法获取用户 session 并不是 SSL 网关将用户信息过滤掉,而是 客户端根本没有发送用户信息。
格尔安全认证网关的 Web 系统开发 规范
v1.1
上海格尔软件股份有限公司 2004 年 12 月
保密事宜:
本文档包含上海格尔软件股份有限公司的专有商业信息和保密信息。 接受方同意维护本文档所提供信息的保密性,承诺不对其进行复制,或向评 估小组以外、非直接相关的人员公开此信息。对于以下三种信息,接受方不向格 尔公司承担保密责任: 1 ) 接受方在接收该文档前,已经掌握的信息。 2 ) 可以通过与接受方无关的其它渠道公开获得的信息。 3 ) 可以从第三方,以无附加保密要求方式获得的信息。
2 开发常见问题
2.1 如何保证应用用户与 SSL 连接用户的一致性?
l 问题描述: 通过 SSL 访问应用,提交用户证书并正确进入,此时在 IE 不关闭的情况下 更换用户证书,进行访问时会提示重新输入证书密码并验证,使用新的证书建立 连接访问后,发现应用中的用户还是先前的用户,并没有与当前证书对应。(此 种现象仅会在客户端实现较为完善,对硬件证书时刻监控的情况下才会发生,否 则 IE 还是采用原有 SSL 连接进行,并不以新证书进行连接)。 l 问题分析: 通常用户 session 有效期是与客户端进程关联的,由于 IE 没有关闭,因此用 户的 session 继续有效,虽然 SSL 连接已经发现用户发生变化,但应用还是根据 原有的用户 session 进行判断,导致应用身份与 SSL 连接身份不一致。 l 问题解决: 在这种情况下,由于 SSL 连接已经发现了身份变更,因此只要应用始终与 SSL 连接的身份保持一致就可以了。实现的方法是:应用每次收到请求时都可以 通过 cookie 方式获取用户身份,然后将此身份与用户 session 保存的身份进行对 比,若发生变化,则重新设定用户信息。
客户IP地址
17. SSL_VERIFY_CERT yes 或 no
验证证书时为 yes 在 服 务 不验证证书时为 no 为 可 选
验证时 需要
3.2 接口实例
下面提供 Asp 脚本取 cookie 的示例: <html> 用户编码=<%=Request.Cookies("KOAL_CERT_CN")%> <BR> 用户姓名=<%=Request.Cookies("KOAL_CERT_GN")%> <BR> 客户IP=<%=Request.Cookies("KOAL_CLIENT_IP")%> <BR> 职级=<%=Request.Cookies(" KOAL_CERT_T")%> <BR> EMAIL 地址=<%=Request.Cookies("KOAL_CERT_E")%>
12. KOAL_CERT_ISSUER 证书颁发者组织名 _O
4 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
13. KOAL_CERT_SERIAL 证书序列号
避免混用其他方式(HTTP,about:blank 空页面等)获取,否则会提示网页 包含不安全内容。
1 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
2.2 http 与 https 进 行 切 换 时 应 用 如 何 保 持 用 户 session?
l 问题描述: SSL 网关保护部分 Web 资源,具体方式如下,用户首先通过 http 方式登录 网站,在进行某些重要操作时候使用 https 方式通过 SSL 网关认证访问应用,此 时 Web 应用无法获取原有用户 session。 l 问题分析: 通常的用户 session 是根据用户访问的地址来匹配的,通常是域名,但以上
ii 上海格尔软件股份有限公司 上海市余姚路 288 号 A 座 4 楼 Tel: (86-021) 62327010 Fax: (86-021) 62327015 URL: http://www.koal.com
1 规范描述
SSL 安全网关能够对用户的数字证书进行验证,在浏览器与 Web 服务器之间 建立安全加密通道,可以为 Web 应用系统提供用户身份认证和数据保密的功能。 为了充分利用 SSL 安全网关的安全功能,保证系统可操作性和性能,实现系统与 安全网关的顺利结合,在 Web 应用系统的开发过程中应注意以下几点: ² 系统中的用户标志设置必须以用户数字证书中的标志为基础。 ² 用户身份的获取必须以安全网关提供为准,用户身份从 cookie 中获取,系统
证书序列号
_NUMBER
14. KOAL_NOT_BEFORE 证 书 启 用 日 期 时 间 生效期
(
格
式:yyyy-mm-dd-hh-
mm-ss)
15. KOAL_NOT_AFTER 证 书 失 效 日 期 时 间 失效期
(
格
式:yyyy-mm-dd-hh-
mm-ss)
16. KOAL_CLIENT_IP