Skip to content

Commit

Permalink
Make authentication process more reliable
Browse files Browse the repository at this point in the history
  • Loading branch information
NI committed Jul 10, 2021
1 parent a9f7457 commit f99310c
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 16 deletions.
4 changes: 3 additions & 1 deletion application/controller/socket.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,11 +216,13 @@ func (s socket) mixerKey(r *http.Request) []byte {
r.UserAgent(), s.commonCfg.SharedKey+"+"+s.commonCfg.HostName)
}

const keyTimeTruncater = 100

func (s socket) buildCipherKey(r *http.Request) [16]byte {
key := [16]byte{}

copy(key[:], hashCombineSocketKeys(
strconv.FormatInt(time.Now().Unix()/100, 10),
strconv.FormatInt(time.Now().Unix()/keyTimeTruncater, 10),
string(s.mixerKey(r))+"+"+s.commonCfg.SharedKey,
))

Expand Down
19 changes: 4 additions & 15 deletions ui/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,17 @@ const mainTemplate = `

const socksInterface = "/sshwifty/socket";
const socksVerificationInterface = socksInterface + "/verify";
const socksKeyTimeTruncater = 100 * 1000;

function startApp(rootEl) {
const pageTitle = document.title;

let uiControlColor = new ControlColor();

function getCurrentKeyMixer() {
return Number(Math.trunc(new Date().getTime() / 100000)).toString();
return Number(
Math.trunc(new Date().getTime() / socksKeyTimeTruncater)
).toString();
}

async function buildSocketKey(privateKey) {
Expand Down Expand Up @@ -299,14 +302,7 @@ function startApp(rootEl) {
switch (result.result) {
case 200:
this.executeHomeApp(result, {
data: await buildSocketKey(atob(result.key) + "+"),
async fetch() {
if (this.data) {
let dKey = this.data;
this.data = null;
return dKey;
}

let result = await self.doAuth("");

if (result.result !== 200) {
Expand Down Expand Up @@ -349,14 +345,7 @@ function startApp(rootEl) {
switch (result.result) {
case 200:
this.executeHomeApp(result, {
data: await buildSocketKey(atob(result.key) + "+" + passphrase),
async fetch() {
if (this.data) {
let dKey = this.data;
this.data = null;
return dKey;
}

let result = await self.doAuth(passphrase);

if (result.result !== 200) {
Expand Down
16 changes: 16 additions & 0 deletions ui/widgets/screen_console_keys.js
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,22 @@ export const consoleScreenKeys = [
which: 81,
},
],
[
"Ctrl+X",
{
altKey: false,
charCode: 0,
code: "KeyX",
ctrlKey: true,
key: "x",
keyCode: 88,
location: 0,
metaKey: false,
repeat: false,
shiftKey: false,
which: 88,
},
],
],
},
];

0 comments on commit f99310c

Please sign in to comment.