首页 > 代码库 > chrome安全浏览器之实现

chrome安全浏览器之实现

浏览保护
安全浏览设置为可用时,所有的URL地址的内容在被加载前都需要先进行核查。URL地址将通过恶意网址和钓鱼网址两个列表进行核查。最终根据URL核对的那个列表,我们将在间隙页面显示对应的警告信息。


资源处理
不管什么时候资源被请求,资源分发宿主将创建一个链式资源处理器。这样可以控制资源加载过程的所有事件,每个处理器可以选择取消、暂停、继续这个请求。安全浏览资源处理器防止在链式处理器的开始,因此其最先决定是否允许加载这个资源。如果安全浏览被禁止了,那么安全浏览资源处理器将直接不被加到链式处理器中,也就没有安全浏览相关的动作发生。


安全浏览间隙页
当资源被标记为非安全资源时,请求江北暂停,间隙页将显示出来。这时候,用户可以选择不顾一切继续下载,或者取消这次下载,返回前页。恶意软件细节搜集
如果间隙页和恶意软件是相关的,然后页面时http而不是https,然后tab不是一个匿名窗口,将会有一个选择加入的选项,来决定是否发送关于危险资源的细节,供以后分析。
当使用关闭间隙页时,如果复合框被勾上,各个额外的细节将在浏览器端异步搜集。首先,浏览器历史痕迹服务将重定向所有相关的URL,然后请求缓存获取这些URLS的相关请求的头部,最后将报告发送出去。


下载保护
URL核查

下载核查将方式和浏览类似,虽然在由于下载特性上会引起一些变化。资源请求头被接收到后,才能知晓资源,因此搜友下载都将经历浏览核查。重定向链表保存在URL请求对象中,一旦下载开始,同步核查所有URLS。既然下载比页面加载要少一些潜伏敏感,我们也将为之分派内存数据库和hash结果缓存。最后,核查将和下载同步进行,只是文件名称是零时的,直到下载和校对完成后。
如果下载完成后,其被标记为恶意,下载bar将被一个警告和放弃按钮代替。如果用户选择放弃,请求将被取消,否则将被重命名为真正的名字。


hash核查
在文件下载同时,我们计算文件hash值。一旦文件下载完毕,这个hash值将在下载校对列表中进行对比。到目前,我们只是在进行hash核查用处的评估,所以乜嘢UT展示。


客户端钓鱼检测
客户端钓鱼检测,即如果我们当前访问页面没有在安全浏览列表中,则在当前页面中运行一个检测模块。在浏览器启动时候,客户端检测服务会事后定期,获取更新模型。这个模型通过进程通信方式发送给每个渲染进程,然后委派给和渲染视图相关钓鱼分类代理。这也就允许了分类在渲染进程中进行处理。






资源请求流程
下面是一个资源下载请求的流程。有些细节被被删减,以保持该图尺寸的恰当。绿色线条表示加载非恶意软件页面的通常情况,其仅仅需要一个同步内存安全浏览数据库检测。虚线表示异步调用。洋红色点表示一个发起到Google安全浏览服务的请求。
注释:下图有些小部分过期,尤其是下载相关微小细节。chromium下载代码目前在重写当中。






度量
安全浏览直方图使用 "SB2."前缀。而老的版本使用 “SB.”.也有一些安全浏览用户度量在过滤“SB”


安全浏览数据库
安全浏览服务有责任更新每个被安全浏览使用的数据库。
TODO(亚光):提供更多细节关于数据库格式和更新过程。

chrome安全浏览器之实现