nts协议简析

简介: nts协议

NTS协议简析

目前互联网中ntp是仍在使用不安全的互联网协议之一。后来Cloudflare发布了NTS协议,去保证NTP的安全。

NTP传统请求过程

  1. 客户端向NTP服务器发送查询包
  2. 服务器用时钟时间进行响应
  3. 客户端计算其时钟和远程时钟之间的差值得到估计值,并试图补偿其中的网络延迟

注意:NTP 客户端会查询多个服务器并实施算法来选择最佳估计值,并拒绝明显错误的答案。

NTS连接过程

  • 协商在第二阶段使用的AEAD算法;
  • 协商第二个协议(目前,标准只定义了 NTS 如何与 NTPv4 协作);
  • 协商 NTP 服务器的 IP 地址和端口;
  • 创建第二阶段使用的 cookie;
  • 从 TLS 会话创建两个对称秘钥(C2S 和 S2C)。

支持NTS协议的服务器

目前支持NTS的公共服务器非常少,主要的提供商有Cloudflare和Netnod

如何使用NTS

ntpclient现在有两个版本,一个是python版本,一个是go版本,另外则是chrony已经有分支支持nts。fedora从33版本已经开始支持NTS了。

条件

系统仅支持Debian 9 (Stretch), Debian 10 (Buster), Ubuntu 16.04 LTS (Xenial Xerus) , Ubuntu 18.04 LTS (Bionic Beaver).

编译ntsclient

拉取库

git clone https://gitlab.com/hacklunch/ntsclient; cd ntsclient; make

假如不想ntsclient以root用户运行

sudo setcap CAP_SYS_TIME+ep ./ntsclient

执行

./ntsclient --config ntsclient.toml

编译NTPsec

拉取库,使用./buildprep安装构建需要的包

git clone https://gitlab.com/NTPsec/ntpsec.git; cd ntpsec;sudo ./buildprep

构建完成后,可以用waf构建NTPsec

./waf configure
./waf build

设置配置文件,创建ntp.conf

# Exchange time with everybody, but don't allow configuration.
# This is the right security setup for 99% of deployments.
restrict default kod limited nomodify nopeer noquery
restrict -6 default kod limited nomodify nopeer noquery

# Local users may interrogate the NTP server more closely.
restrict 127.0.0.1
restrict -6 ::1

# Minimal logging - we declare a drift file and that's it.
driftfile /var/lib/ntp/ntp.drift

 server nts.netnod.se:4460 nts iburst
 server sth1.nts.netnod.se:4460 nts iburst
 server sth2.nts.netnod.se:4460 nts iburst

开始测试,测试前需要暂停ntp,chrony,openntpd

sudo service ntp stop
sudo service chrony stop
sudo service openntpd stop

开启启动NTPsec服务器

sudo ./build/main/ntpd/ntpd -n -d -c ntp.conf

参考链接

目录
相关文章
|
边缘计算 网络协议 网络架构
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
|
存储 数据安全/隐私保护
RPMB说明与使用(Replay Protected Memory Block)
RPMB说明与使用(Replay Protected Memory Block)
3902 0
|
Linux 开发工具 Windows
中国时间服务器,国内阿里云时间服务器
中国时间服务器,国内阿里云时间服务器很多用户使用的是国外VPS使用过程中常常遇到时间与国内不同步的情况好在阿里提供了7台NTP服务器,地址如下:阿里云提供了7个NTP时间服务器也就是Internet时间同步服务器地址 ntp1.
40077 0
|
8天前
|
监控 Linux 网络安全
CentOS操作系统时间同步更新指南。
遵循以上指南将帮助您 在 CentOS 上成功 设置 和 维 技 时间 同 步 . 这不但能够提高日志记录精准 度 和计划任务执行效率,还能够提高整个网络环境 中所有设备之间 的 协作效率.
110 17
|
iOS开发 MacOS Python
完美解决 Python library not found: libpython3.10m.dylib, Python3, .Python, libpython3....
完美解决 Python library not found: libpython3.10m.dylib, Python3, .Python, libpython3....
369 0
|
测试技术 C语言
分享一个好用的C语言.ini文件的解析库
分享一个好用的C语言.ini文件的解析库
702 0
|
12月前
|
前端开发 开发者 UED
前端只是切图仔?来学学给开发人看的UI设计
该文章针对前端开发者介绍了UI设计的基本原则与实践技巧,覆盖了布局、色彩理论、字体选择等方面的知识,并提供了设计工具和资源推荐,帮助开发者提升产品的视觉与交互体验。
|
Ubuntu Shell Docker
GPU_nvidia-container-toolkit安装和配置
GPU_nvidia-container-toolkit安装和配置
3150 1
|
开发框架 监控 Kubernetes
CTF本地靶场搭建——GZ:CTF基础使用
GZ::CTF是一个基于ASP.NET Core的开源CTF竞赛平台,支持Docker或K8s容器部署,提供静态和动态题目类型,包括静态附件、动态附件、静态容器和动态容器,具备动态分值功能,如三血奖励和动态flag作弊检测。平台还具有实时通知、邮件验证、用户权限管理、Writeup收集、流量代理转发等功能。此外,它包含比赛管理、队伍管理、用户管理等多个管理模块,适合举办和参与网络安全竞赛。
|
缓存 安全
控制浏览器发送请求采用请求方式的详细介绍
本文讲述了HTTP请求的GET和POST两种主要方式。GET请求限制参数不超过4K,参数显示在地址栏并缓存资源;POST请求能携带任意数量参数,参数隐藏在请求体,不保存资源。GET常用于超链接和表单默认提交,POST适用于文件上传、登录验证和获取实时数据等场景,因安全考虑,部分网站仅接受GET请求。可通过表单的method属性设置请求方式,默认为GET。
272 0