HTTPS的重大漏洞:豆腐(TOFU)

Android WIFI 首次使用时信任 (TOFU) 对于搭载 Android 13 或更高版本的设备,Android 支持首次使用时信任 (TOFU) 身份验证方法 (),让用户能够信任企业 (EAP) 网络,方法是安装服务器使用的根 CA 并在已保存的网络中设置其域名。借助 TOFU,设备可以在用户首次连接到某个企业网络时获取未经身份验证的公钥,并保留该公钥以在后续连接时使用。 阅读详情

“豆腐”漏洞简介

之前写了一篇https的介绍,这里,文中从软件学公理一步步推导出https的实现原理,但是貌似在后面一部分出现了某种概念断层,就是在“服务器如何认证浏览器”这一点上没有安全的保证。后来仔细研究了一下,原来并不是因为我的知识盲区,而是https确实有一个漏洞。

先放出结论,TOFU漏洞如图所示:

 

首先需要理解https和ssh的区别。

HTTPS = SSH + CA

如何理解上面的公式?我们需要知道https和ssh(使用公钥加密)实现原理的区别。

首先,无论是https还是ssh都是使用不对称加密的,不对称加密是为了实现认证,进而可以安全的协商后续的对称加密。其中最关键的一部是认证,即如何安全的交换公钥。注意,这里是最关键的一部分,一旦双方公钥安全的交到对方手中,之后任何安全问题迎刃而解。所以整个公钥体系最关键的问题就是如何安全的交换公钥。

私底下交换公钥不就好了?

对啊,私下或者线下交换下不就好了?私下交换公钥确实很安全,SSH就是这样玩的,比如两人到一间咖啡馆一边聊天一边顺手互换一下自己的公钥纸条,搞定!线下交换确实是一条绝对安全的信道,不过SSH选择了另一条安全通道:https在线网页。通过安全的网页手动提交用户自己的公钥,如图所示。

像GitHub或者gitlab这种的SSH公钥交换模式虽然也是线上,需要注意的是,线上手动上传SSH key一定要保证当前页面是安全的https,才能放心的上传key。

但是这样却需要手动操作(需要花费你若干分钟的时间),没有实现自动化,正真实现自动化交换公钥的是HTTPS。HTTPS不需要你手动的和对方交换公钥,而是通过一个第三方机构的监督来实现自动交换,这个机构就是CA。

如何利用CA证书来认证的原理就不讲了,参考之前的文章。

所以说,https和SSH的本质上是一样的,只是交换公钥的时候,前者是通过CA来交换,后者是手动交换。即:HTTPS=SSH+CA。

或者说SSH是https的删减版。

IPv4时代下的豆腐:单向认证

无论是https还是ssh都只实现了SSL标准的“一半”,即单向认证:对等体中只有一方的公钥安全的交到对方手中,反之则不能保证安全。

https下面,浏览器的CA认证了服务器的证书,但是服务器无法证实浏览器的证实性;SSH下面,客户端的公钥安全的给到了GitHub,但是GitHub的公钥却没有安全给到客户端。https和ssh的认证模型如下图:

所以,无论是https还是ssh,只有单方向的公钥传递是可靠的,另一个方向默认采用TOFU(Trust on first use)的原则,即首次收到对方公钥的时候,选择信任。拿ssh举个例子:

一个用户Jim,通过ssh连接cloud.jameshfisher.com。

一旦服务器cloud.jameshfisher.com有了Jim的公钥,Jim可以像这样通过SSH连接到机器:

jim@laptop:~$ ssh -i ~/.ssh/id_ed25519 cloud.jameshfisher.com
The authenticity of host 'cloud.jameshfisher.com (35.190.176.201)' can't be established.
ECDSA key fingerprint is SHA256:vm5X6LZPUv7ZTy2oliLO9qKJy5svHvBHElL1YfouKWc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'cloud.jameshfisher.com,35.190.176.201' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.13.0-1011-gcp x86_64)

当Jim第一次连接cloud.jameshfisher.com,他的本地SSH询问Jim服务器密钥(带有一些ECDSA密钥指纹)是否真正属于密钥cloud.jameshfisher.com。jim说yes。每个人总是如此。然后他的本地SSH将此密钥添加到以下列表中known_hosts:

jim@laptop:~$ cat ~/.ssh/known_hosts | grep cloud.jameshfisher.com
cloud.jameshfisher.com,35.190.176.201 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJBa4c8wVzMp+ed6nLQAmUKXZ8ENXc6NpEzfTY2sjMqYJlWYktAeihlLOf5QnatkYsXnsP7Pu+yd2xF9M8dY4u0=

将来,如果Jim尝试SSH cloud.jameshfisher.com,他的本地SSH客户端将要求服务器具有密钥known_hosts。Jim及其本地SSH使用的此策略称为“首次使用时信任”或“TOFU(豆腐)”。

如上,SSH至少还prompt用户是否信任服务器的指纹,https直接就让web服务器信任了,没有选择的余地,所以许多网站要求用户登录才能查看,使用一些功能,目的就是为了对客户端进行认证。

 

TOFU漏洞的危险程度:极小

TOFU有一个弱点,即每当员工第一次尝试SSH到机器时,都可能存在中间人攻击。随着更多的员工和更多的服务器,多对多关系的膨胀,中间人攻击的机会呈指数增长。尽管存在这种弱点,但默认情况下,SSH客户端使用TOFU,因此大多数组织都使用TOFU。

https同理,当服务器收到客户端加密后的公钥时,也无法保证这个公钥就是刚才的用户。

综上而述,目前人类在金融机构,企业,政府广泛使用的基于RSA加密的认证体系SSL,一直存在着这样一个根本性的漏洞,是不是听上去比“量子计算机可能破解RSA”还可怖?

然而幸运的是,TOFU漏洞的危险程度微不足道,原因如下:

  • 1. 破解成本很高。首先中间人想要利用TOFU攻击SSL,首先需要成为“中间人”,想要在互联网上找到这样一个“伏击点”是非常难的,如果是在企业网络这样的安全的内网环境下攻击的话,就是难上加难了。
  • 2. 攻击机会很少。其次,tofu唯一的攻击机会是2台机器首次建立连接的时候,这时才会交换公钥,如果这时候没抓住时机攻击,之后他们都使用缓存的公钥,就再也没机会了。
  • 3. 攻击成本很高。最后,假设上面2点你都成功了,那接下来你要做的事情会令你崩溃:比如要攻击ssh,你就要使用用户的公钥来模拟一台目标机器的操作系统,而且哪怕模仿时出现一点点瑕疵,比如少了一个文件,少了一条记录,用户都会察觉到,然后通过其他方式发现你的存在,你之前辛苦的模仿工作都白费了!

综上所说,与其利用TOFU漏洞来进行网络攻击,远不如雇人把仇家胖揍一顿来的实在。而且未来IPv6时代下,人人都有ip地址,所有的ssl连接都通过CA来认证,那时候TOFU就真的不存在了。


完。

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案 AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉 阅读详情

相关推荐

金蝶ERP元数据解析:字段属性与表结构映射实战

本文深入解析金蝶ERP元数据的核心价值与应用实践,详细介绍了字段属性与表结构映射的关键技术。通过缓存获取与工具类直连两种方案对比,结合实际案例展示元数据在数据库校验、动态表单生成等场景的应用,帮助开发者高效解决二次开发中的常见问题。

weixin_33738555的博客 435

你知道什么情况下 HTTPS 不安全么?

尽管HTTPS协议相对于HTTP协议更加安全,但仍然存在一些情况下,HTTPS不安全。本文深入探讨了这些情况,包括中间人攻击、SSL/TLS协议漏洞、HTTPS代理、证书错误和在不安全的网络中使用HTTPS。建议在使用HTTPS协议时注意以上相关的安全问题,并采取适当的措施来保护您的数据安全。

weixin_51582215的博客 1427

零基础学会制作 基于STM32/51单片机的智能血压表设计/血压表/血压计

本系统是以单片机为主控,传感器模快、显示模块、人机交互、无线传输等组成的智能血压表设计。传感器用于测量血压和脉搏,主控电路板用于处理数据和控制设备,显示屏则用于显示测量结果。通过软件设计,完成测量数据的处理,其中血压和脉搏的测量、数据的分析和处理等。

weixin_55654459的博客 2473

心脏滴血漏洞https也不安全

感觉现在都会使用ssl然后利用证书制作https网站也确实很多能进入http的方法到https就没用了但是https也并非绝对安全这段时间在网上找到了这个名叫心脏滴血的漏洞记录一下这个漏洞主要用于信息窃取设置好目标后可以将目标在443端口访问的东西监听到用search heartbleed搜索漏洞利用模块 使用模块use auxiliary/scanner/ssl/openssl_heartbleed使用show options看一下参数 这里我们需要设置一下rhost和rport,这里的rport我们需要

qq_55992895的博客 811

Python爬虫实战:使用最新技术抓取采购网招标公告信息

本文将详细介绍如何使用Python最新爬虫技术构建一个高效的采购网招标公告信息抓取系统。我们将从爬虫基础概念讲起,逐步深入到高级技巧,包括异步处理、反爬虫对策、数据解析与存储等,并提供完整的代码实现。本文旨在为读者提供一套完整的网络数据采集解决方案,适用于各类政府采购平台和商业招标网站。网络爬虫(Web Crawler)是一种自动抓取互联网信息的程序或脚本,它们按照一定的规则,自动地浏览万维网并提取所需数据。在现代商业环境中,爬虫技术广泛应用于价格监控、竞争情报收集、市场研究等领域。

2201_76125261的博客 1623

如何在 Windows 中实时打开字幕

在 Windows 操作系统中,你可以使用编程来实现实时字幕功能,以便在屏幕上显示即时的文字内容。下面是一个示例代码,展示了如何使用Python编程语言在Windows上实现实时字幕功能。这样,字幕窗口将会不断地显示系统当前时间作为字幕。你可以根据自己的需求修改主循环中的内容,以显示你想要的实时字幕。希望以上代码和说明能够帮助你在Windows中实现实时字幕功能。函数创建了一个顶级窗口,并设置窗口的样式、位置和大小。方法,用于在字幕窗口中显示指定的字幕内容。上述代码中,我们使用了Python的。

DevWizard的博客 3272

HTTPS中间人劫持漏洞浅析

1. Android HTTPS中间人劫持漏洞描述在密码学和计算机安全领域中,中间人攻击 ( Man-in-the-middle attack,通常缩写为MITM )是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容[1]。Andro...

a442828032的博客 3118

Python爬虫-爬取汽车之家各品牌周销量榜数据,进行数据分析

本文是该专栏的第57篇,后面会持续分享python爬虫干货知识。本文中,笔者已经整理20篇汽车平台相关的爬虫项目案例。对此感兴趣的同学,可以直接翻阅查看。同样,笔者在本文中将继续以汽车之家平台为例子。基于Python爬虫,实现批量爬取“各品牌周销量榜单”的数据。废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 366

HTTPS总结:相关概念证书生成及查看HTTPS漏洞现状及安全开发建议

该篇文章为搜罗整理后的,具体资料见文末的参考部分,主要从:HTTPS相关概念、产生背景、自有数字证书的生成、查看服务器证书信息、HTTPS漏洞及现状、安全开发建议等进行汇总整理,方便对HTTPS快速理解。 1. 相关概念 HTTPS:是一种网络安全传输协议(HTTP over SSL/TLS),利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护交换数据的隐私与完整性。

大星星的专栏 5719

树根互联Java开发面试题及参考答案

说一下 Java 集合类。 Java 集合类是用于存储和操作一组对象的容器。它提供了多种数据结构,方便程序员对数据进行高效的管理和处理。 Java 集合框架主要包括两大接口:Collection 和 Map。 Collection 接口是一组对象的集合,它有三个主要的子接口:List、Set 和 Queue。 List 接口代表有序的集合,可以包含重复的元素。例如 ArrayList,它是基于数组实现的动态数组。它的优点是随机访问效率高,通过索引访问元素的时间复杂度为 O (1)。当

大模型大数据攻城狮的专栏 856

把 ABAP 经验装进 GitHub Copilot 的按需大脑,Agent Skills 如何改变 ABAP 开发

2026 年 8 月,SAP Community 上出现了一次很有代表性的 ABAP 实验。开发者把标准 Flight Model 里的复制成自己的测试类,删除原有 ABAP Unit Test,再让 GitHub Copilot Agent 为方法重新生成测试代码。真正有意思的地方并不是 Copilot 会不会写,而是开发者给 Copilot 准备了两个专门的 Agent Skills,一个负责 ABAP Unit Test 的通用规则,一个负责 ABAP Test Double Framework。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 159

https漏洞:https可以随意修改请求的封包数据,提交还能有效?为什么https使用监听的原数据 重新发送会无效?

HTTPS(超文本传输安全协议)是一种用于在互联网上安全传输数据的协议。它在传统的HTTP上增加了SSL/TLS协议层,以加密客户端和服务器之间的通信。当你提到“监听原数据并重新发送会无效”的情况,实际上是在描述一种网络攻击场景,即重放攻击。:在HTTPS中,所有传输的数据都是加密的。攻击者即使能够监听到这些数据,也无法轻易地解密它们以理解其内容或以有效的方式重新发送。:HTTPS使用基于会话的密钥,这意味着即使攻击者有能力解密一个会话中的数据,这些密钥在每个会话中都是唯一的,并且会定期更换。

chenhao0568的专栏 1494

Open3D (C++)球旋转算法(BPA)三维建模

球旋转算法用于点云三维建模的C++代码实现。

点云侠的博客 1771

【计算机网络学习笔记(十三)】之HTTPS,HTTP认证机制,安全漏洞

文章目录本文章由公号【开发小鸽】发布!欢迎关注!!!一. HTTPS(一) HTTP的缺点1. 通信使用明文2. 没有身份验证机制3. 无法验证报文的完整性(二) HTTPS介绍1. 概述2. 加密技术(1) 共享密钥加密(2) 公共密钥加密3. HTTPS的加密机制4. 证书机制5. HTTPS通信步骤6. 客户端证书二. HTTP的认证机制(一) 认证机制分类(二) Basic认证(三) Digest认证(四) SSL客户端认证(五) 表单认证三. 安全漏洞(一) 点击劫持(二) Dos攻击(三) 后门

开发小鸽 1033

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

HTTPS为何仍有安全漏洞?解析加密协议下的攻击面

更严重的是,攻击者利用Let's Encrypt等免费CA的自动化签发机制,批量获取合法证书实施中间人攻击,此类事件在金融行业同比激增380%。答:TLS 1.3移除了32个不安全特性,但仍存在实现层面的风险。医疗行业普遍存在的误区是认为启用HSTS即完成安全加固,却忽略HPKP弃用后的证书固定替代方案,某医疗影像系统因此遭受SSL剥离攻击,导致50万患者数据泄露。答:主要包括:未禁用SSLv3(占比61%)、使用SHA-1签名(37%)、未启用OCSP装订(82%)、未设置证书透明度日志(95%)。

2501_91486804的博客 1854

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

HTTPS 存在哪些安全问题,有什么应对方案

在日常使用中,我们可以根据遇到的实际问题,采取适当的应对方案去处理,这样可以提高 HTTPS 的安全性,确保数据在传输过程中的安全性。应对方案:建议在网站配置中正确使用和配置,确保所有 HTTPS 配置都是正确的,这包括在 HTTP 响应中设置正确的安全头,并确保它们具有正确的值以防止各种类型的攻击。应对方案:为了解决 HTTPS 协议存在的弱点问题,我们可以持续关注最新的加密算法和协议的安全性,确保使用最新的、经过广泛审查和认可的加密算法和协议,如 TLS 1.3。

dexunyun的博客 2382

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

常见安全漏洞说明

一、HTTPS漏洞: HTTPS的安全基础是SSL协议,但并不是说只要是HTTPS就是安全的。SSLv3有多个漏洞,如果HTTPS中启用SSLv3,会导致使用HTTPS的应用存在安全风险。目前SSLv3的相关漏洞没有对应的漏洞补丁,因此建议HTTPS禁用SSLv3版本; 二、重定向到任意URL: 对于要重定向到的目标网址如果不做任何检查就进行重定向的话,有可能被黑...

鹤啸九天 954

彻底弄懂 https 原理本质(三)加密漏洞

“没用挖补了的墙角,只有不努力的小三” 。有志气的人都不轻言放弃,下面看老王🐶如何进行反攻。

csdn_aiyang的博客 684

【安全攻防与漏洞​】​​HTTPS中的常见攻击与防御​​

HTTPS 通信中常见的攻击包括中间人攻击(MITM)、SSL剥离和重放攻击等,这些攻击手段威胁着数据传输的安全性。中间人攻击通过伪造证书或劫持网络流量,伪装成合法服务器与客户端通信;SSL剥离则是将HTTPS连接降级为HTTP,窃听明文传输的敏感数据;重放攻击则是截获合法请求并重复发送,冒充用户执行操作。针对这些攻击,防御策略包括强制HTTPS(HSTS)、证书绑定、证书固定、定期更新证书、强制HTTPS跳转、启用HSTS、禁用旧版协议、使用随机数(Nonce)、时间戳、序列号等机制。此外,还需优化协议与

DZ Space 1274

HTTP协议相关漏洞

一、HTTP协议 HTTP是一个基于请求与响应模式的、无状态的应用层协议。 请求响应   客户端要向web服务器发送一个请求以后,等待服务器回送http响应消息。 无状态   http协议整个过程当中的各种信息不会被服务器所记录下来。 常基于TCP的连接方式 ,即http是将数据打包成TCP数据包来进行传送的,绝大多数Web应用,都是构建在HTTP协议之上,即目前使用浏览器访问web网站都是以http协议为标准的。 1、HTTP协议的方法 GET :请求获取Request-URI所标识的资源 POST :

qq_48904485的博客 1万+

小漏洞,大风险:你的HTTPS网站真的安全吗?小心“混合表单”漏洞!

您的HTTPS网站可能并不像看起来那么安全!本文深入浅出地解析常见的“混合表单提交”漏洞,揭示其危害、成因,并为您提供清晰的排查与修复指南,助您筑牢网站安全防线。

weixin_43172311的博客 2043

Tofu: 一款易用的iOS双因素认证应用

Tofu 是一款专为 iOS 设计的开源双因素认证应用。该项目主要使用 Swift 编程语言开发,Swift 是一种现代、快速且安全的编程语言,非常适合用于开发 iOS 应用。 ## 项目核心功能 Tofu 的核心功能是为用户提供一个简单易用的双因素认证解决方案。它通过生成一次性密码(OTP)来帮助用户保护其在线账户。这些密码通常与用户的常规密码一起使用,以增强账户的安全性。Tofu 支持 H

gitblog_00890的博客 502

Nginx漏洞总结

Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx1.0.4发布。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。...

m0_67391518的博客 7655

Tofu 开源项目教程

Tofu 是一个开源项目,旨在提供一个轻量级的、易于扩展的框架,用于构建现代化的 Web 应用程序。该项目由 doufen-org 组织维护,源代码托管在 GitHub 上,地址为:[https://github.com/doufen-org/tofu.git](https://github.com/doufen-org/tofu.git)。 Tofu 项目的主要特点包括: - **轻量级**:

gitblog_00311的博客 757

黑帽大会:HTTPS和SSL协议存在安全漏洞

HTTPS(安全HTTP)和SSL/TLS(安全套接层/传输层安全)协议是Web安全和可信电子商务的核心,但Web应用安全专家Robert "RSnake" Hansen和Josh Sokol在昨天的黑帽大会上宣布,Web浏览器的基础架构中存在24个危险程度不同的安全漏洞。这些漏洞基本上使HTTPS和SSL能够提供的浏览器保护荡然无存。 HTTPS对HTTP协议进行了加密,以保护用户的页面请求...

weixin_34137799的博客 654

HTTPS:原理、使用方法及安全威胁

本文介绍了HTTPS协议的实现方式和启用步骤,以及其相比HTTP的安全优势。同时,也探讨了HTTPS可能面临的安全威胁,并强调了定期进行安全检查和提高网络安全意识的重要性。

陆业聪 4418
上一篇: JavaScript冷知识:shim 和 polyfill
下一篇: 深刻理解Vue中的组件 (为了生存不得不学Vue)
xosg
xosg 领域专家: 网络协议与安全技术领域 领域专家: 网络协议与安全技术领域
博客等级 码龄9年 1986粉丝 864原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xosg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值