RSA算法之我见

2018年9月19日 没有评论

一、缘起

8月份的时候,现网使用的某应用使用的RSA算法进行加解密(管理端使用公钥加密,被管理端使用私钥解密),而后被我通过一些技术手段取得了公钥信息,进而写出了一个可以对接的crack小程序,在告诉相应的开发人员以后,其让为RSA是不可能被破解的,其实其忽略了RSA算法的基础。本篇就总结下我所了解的RSA加密。

二、RSA的历史

RSA-history

RSA的算法历史我将其分为三个块:

  • 理论基础块:最早源于1636年的费马小定理,几十年后的欧拉在验证费马小定理的基础上,提出了欧拉定理。而RSA算法就是在欧拉定理的基础上的应[......]

Read more

分类: 安全/漏洞 标签: ,

RSA算法基础详解

2018年9月18日 没有评论

RSA算法是最重要算法之一,它是计算机通信安全的基石,安全可靠只要有计算机网络的地方就有RSA算法,在它诞生之前---即1976年以前,加解密信息使用同一种规则:

甲方选择某一种加密规则,对信息进行加密;
乙方使用同一种规则,对信息进行解密

虽然理论上,只要加解密“规则”(即“密钥”)足够复杂,这种方式也可安全的传递信息。但这种方法最大的弱点就是,密钥在传递的过程中易被泄露,这种加密和解密使用同样规则的方法,被称为“对称加密算法”。

一、RSA算法

倘若在加解密信息的过程中,能让加密密钥(公钥)与解密密钥(私钥)不同,即:

[......]

Read more

分类: Linux/unix/mac 标签: ,

Java中Socket Read阻塞问题

2018年9月3日 没有评论

本人来说并不熟悉JAVA语言,只是近期在分析某个简单的java agent程序时,根据对应的代码写了一个对接的程序,两者之间是典型的C/S socket编程。客户端在向服务端发送相应的指令后,服务端(装agent的主机)执行后会返回执行的数据给客户端。在直接一行行收取数据时是正常的,但通过while循环时会卡住。

一、java读取数据的两种方式

从Socket上读取对端发过来的数据一般有两种方法:一种是按字节,一种是按字符。

1、按照字节流读取

BufferedInputStream in = new BufferedInputSt[......]

Read more

ssh安全限制二三事

2018年8月31日 没有评论

openssh

一、从需求说起

现网所有的服务器连接都要通过一台堡垒机进行用户名密码认证,根据安全合规要求,默认不允许root直接登陆。而某业务模板要实现容灾自动切换功能,其又需要配置某两台切换平台管理机和该业务平台主机的ssh互信(root免密码登陆)。这里就涉及到一个安全需求和业务需求的一个冲突。哪有没有一种配置方法可以只针对个别主机开启root直接登陆或秘钥登陆,而对其他主机还是之前的安全配置策略?答案肯定是有的,而且不止一种。先梳理下能想到的和ssh安全需求相关的信息(本文只涉及Linux系统自带工具,不涉及动态码,二次验证等):

# ssh参数部[......]

Read more

分类: Linux/unix/mac 标签:

反编译java class文件

2018年8月30日 没有评论

java module解压及java常见打包格式

2018年8月29日 没有评论

golang json数据的处理

2018年8月21日 没有评论

golang执行系统command

2018年8月19日 没有评论

leetcode02两数相加

2018年8月17日 2 条评论

leetcode01两数之和

2018年8月16日 没有评论