帝恩思DNS.COM,DNS综合服务提供商

HTTPDNS解析接口加密验证机制

最近更新时间:2017-10-11 15:38:56

1. 背景

为了避免 CC攻击或其他人乱用HTTPDNS查询接口,设计了HTTPDNS接口加密验证机制。


2.1 使用方案

· 为避免加密验证带来的额外接入成本,用户可暂时关闭加密授权机制

· 如果需要加密码接口功能,请可开启加密验证机制,并获得相应的加密secretkey。


2.2 加密验证开关的管理

· 关闭时,可能会引入安全隐患。

· 只有开启 加密验证机制开关 时,才能避免被攻击导致的不必要费用。


3. 签名生成和验证机制


3.1 签名生成算法及示例


HTTPDNS接口地址

· http://14.152.80.144:5353/d

考虑到服务IP防攻击之类的安全风险,为保障服务可用性,HTTPDNS同时提供多个服务IP,当某个服务IP在异常情况下不可用时,可以使用其它服务IP进行重试


签名算法

s = md5(www.dns.com@1502881493@secretkey)


签名字段说明

字段

描述

h

需要被解析的host,与URL中的host参数取同样的值

s

由服务器负责生成,查看方式:『控制台-验证配置-验证secretkey』

t

请求时间,1970年1月1日以来的秒数(整形正数,固定长度10)。

c

clientip 查询IP

 

签名示例

· 示例(HTTPDNS API接口):

· 原请求:http://14.152.80.144:5353/d?h=www.dns.com&t=1502881493&c=12.12.1.1

· 假设秘钥为:IAmASecret,当前请求为时间2018-08-15 15:00:00 (时间戳1502881493)

· sign = md5(“www.dns.com@1502881493@IAmASecret”) = 60c71e98b6d7fcbb366243e224eab457

· 鉴权请求:http://14.152.80.144:5353/d?   

  h=www.dns.com&t=1502881493&c= 12.12.1.1&s=60c71e98b6d7fcbb366243e224eab457


此方案优缺点

· 客户端时间不同

· 秘钥放在客户端丢失有风险

· 无需去服务器拉取


3.2 鉴权响应

· 鉴权成功时,HTTP响应的状态码为200,响应结果同原HTTPDNS响应

· 鉴权失败时, TIMEOUT(建议客户将client超时时间设置为2秒)