# signature

14개의 포스트
post-thumbnail

JWT 가 뭐야??

정의 > JWT(JSON Web Token)은 웹 어플리케이션과 서버 간의 정보를 안전하게 전달하기 위한 표준 중 하나. > JWT 는 클레임(Claim)을 JSON 객체로 표현하고, JSON 객체를 Base64로 인코딩하여 문자열로 만든 형태로 토큰을 생성한다. 서버에서 여기에 서명하여 인증 정보도 포함하게 된다. JWT.IO - JSON Web Tokens Introduction 단계 JWT는 크게 3 가지 단계로 구성된다. 토큰 생성 : 유저가 인증되었을 때, 필요한 정보(클레임)를 JSON 형태로 작성한다. 이 클레임에는 유저 식별 정보나 추가적인 데이터 등을 포함할 수 있다. 이후 해당 클레임을 비밀 서명키를 사용해 서명한다. 토큰 발급 : 서명된 클레임을 JWT 형식으로 인코딩되어 유저에게 발급된다. 보통 HTTP 요청 헤더에 담아져 전달된다. 토큰 검증 :

2023년 8월 5일
·
1개의 댓글
·
post-thumbnail

DER Serialization

서명 역시 검증을 위해 전파될 필요가 있다. 즉, 직렬화가 필요하다. DER(Distinguished Encoding Rules) 서명에 대해 앞에서 공부했을 때 핵심은 $r, s$의 값이었다. 이는 private key를 공개하지 않으면서 다음의 두 정보의 입증을 위한 값들이라 할 수 있다. private key를 가지고 있다는 정보 내가 보내는 정보를 내가 보냈다라는 정보 $r, s$의 경우에는 압축할 수 있는 방법이 없다. 이전에는 타원 곡선이 가지는 대칭성을 이용했는데, 이 경우에는 한 값에서 다른 값을 유도할 수 없기 때문이다. 서명을 직렬화하는 표준은 여러가지가 있을 수 있다. 이번에는 사토시가 사용했던 DER을 알아볼 것이다. 정의 방법 주의할 점은 r, s의 값을 실제로 넣을 때 첫번째 바이트가 0x80보다 크거나 같은 경우 00을 앞에 붙인 것을 사용해야 한다는 점이다. 이렇게 될 경우 r, s

2023년 2월 13일
·
0개의 댓글
·
post-thumbnail

Signature Algorithm Implementation

서명, 검증 알고리즘을 알았으니 필요한 클래스들을 작성해보자. Signature 서명의 경우 서명하는 사람이 넣어서 주는 값이다. Verify 타원 곡선 위에 있는 점을 나타내는 S256Point에 검증 메서드를 추가한다. 페르마의 소공식을 통해 inverse를 0을 포함한 정수 지수로 변경한다. u, v를 구한다. u, v 둘다 위수인 N으로 변경해주어야 한다. 좌변을 계산한다. ($uG + vP$) 결과값과 $r$을 비교한다. PrivateKey 서명을 생성한 PrivateKey 클래스를 만들자. 비밀키를 보관하는 클래스를 하나 만들어주고, 거기서 서명을 생성하여 검증자에게 전달하자. 검증자는 Public Key에 해당하는 타원위의 점(S256Point)$P$에 있는 메서드인 verify로 그 서명을 넘겨주면 끝이다. 가변성 문제 위에서 s가 N/2보다 작은 s를 서명에 포함

2023년 2월 13일
·
0개의 댓글
·
post-thumbnail

Signature Algorithm

비트코인에서 사용하는 타원곡선은 무엇일까? 비트코인에서 사용하는 타원 곡선 지금까지는 타원곡선에 들어가는 유한체의 위수를 작은 소수를 사용했다. 하지만 실전에서는 매우 큰 소수를 사용하여 컴퓨터로 탐색이 불가능하게 만든다. 지금까지 배운 내용으로 공개키 암호를 위해 몇개의 파라미터를 정해야 하는지 알아보자. 공개키 암호를 위한 매개변수 $y^2=x^3+ax+b$에서 $a$, $b$ 유한체의 위수인 소수 $p$ 생성점 $G$의 $x$, $y$ 좌표값 G로 생성한 군의 위수 $n$ 무한대로 곱하면 무한 원점이나, 프로그래밍에서는 이를 처리할 수 없어 유한한 수로 치환해야함 비트코인에서 사용하는 타원 곡선 $a=0$, $b=7$, 즉, $y^2=x^3+7$을 사용함 $p=2^{256}-2^{32}-977$ $G_{x} = 0x79be667ef9dcbbac55a06295ce870607029bfcdb2dce28d959f28

2023년 2월 13일
·
0개의 댓글
·
post-thumbnail

hand_signature 서명기능

flutter pub add syncfusionfluttersignaturepad flutter pub add hand_signature syncfusionfluttersignaturepad 옵션 조절할 수 있는게 펜 최소,최대 굵기밖에 없음. 펜으로 사용할 경우 최소,최대 굵기가 계속 반복되어 지글지글 나옴. hand_signature 곡선의 부드러움, 속도에 따른 두께조절을 double 값으로 조절 가능. 갤럭시에서 필기감이 네이티브앱과 비슷하지만 S펜 사용시 시작시에만 얇게 나오고 거의 대부분의 경우 최대 스트로크로 필기됨. 손으로 써보면 속도에 따라 다른 두께로 잘 나옴. <img src="https://velog.velcdn.com/images/gomu

2022년 12월 5일
·
0개의 댓글
·
post-thumbnail

Token 토큰

* 세션 기반의 인증은 요청을 받을 때마다 클라이언트가 보낸 세션 아이디와 서버(혹은 DB)의 저장소에 있는 세션 객체 안의 세션 아이디를 비교. 매번 서버의 데이터를 살펴보는 것이 불편하다면? 토큰 기반 인증 (Token-based Authentication) 클라이언트에서 인증 정보를 보관 유저 정보를 암호화하기 때문에 민감한 인증 정보도 클라이언트에 담을 수 있다. > 유저 식별 정보, 토큰 권한으로 어떤 데이터에 접근할 수 있는지(ex: 사진, 연락처에만 접근 가능) 등이 담긴 * 암호화된 토큰이 쿠키 등에 담겨* 클라이언트에 전달돼서 저장됨.... JWT JSON Web Token 가장 대표적인 토큰 기반 인증 JWT이 이용하는 토큰 1. 엑세스 토큰 (Access Token) : 인증 증명에 사용 보호된 정보들(유저의 이메일, 연락처, 사진 등)에 접근할 수 있는 권한 부

2022년 11월 13일
·
0개의 댓글
·
post-thumbnail

React, Typescript Express로 JWT 구현 - (1) JWT 및 메커니즘 이해

JWT? 당사자 간에 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 자체 포함된 방법을 정의하는 개방형 표준 즉, 유저를 인증하고 식별하기 위한 토큰 기반 인증 토큰 자체에 사용자의 권한 정보나 서비스를 사용한 정보가 포함된다는 것이 특징 JWT 사용 하는 경우 Authorization Information Exchange JWT 구조 header(xxxxx) payload(yyyyy) signature(zzzzz) header 일반적으로 JWT

2022년 8월 29일
·
0개의 댓글
·
post-thumbnail

TypeScript - 함수 (1) Call Signature

Call Signature 정의 Call Signiture는 함수를 부를 때의 모습을 말한다. 예를 들어보면, 본 형태의 add 함수는 두 개의 number 변수를 받고, 하나의 number 변수를 리턴한다. 따라서 이 함수의 기본 구조는 다음과 같다. > 이때, 이를 우리는 Call Signature라고 한다. Call Signature의 간단화 하지만, TS에서는 Call Signature에서 같은 변수 타입을 가지고 리턴하더라도 따로따로 타입을 적어줘야 한다. 이러한 번거로움을 해결하기 위해서, Call Signature를 간단하게 만들 수 있는 방식이 존재 한다. 이와 같이, 우선 type을 지정해주면 그 후에 같은 자료입력 타입과 출력 타입을 가지는 함수들은 모두 같은 type을 선언해주면 되는 것이다. _*본 내용은 노마드코더 "Typescript로 블록체인 만들기"에

2022년 7월 5일
·
0개의 댓글
·
post-thumbnail

JWT?? 뭔데??

1. JWT? >* JWT(Json Weeb Token)은 하나의 인터넷 표준 인증 방식이다. 말 그대로 인증에 필요한 정보들을 Token에 담아 암호화 시켜 사용하는 토큰이다. 인증을 진행하는 구조는 Cookie와 크게 다르지 않다. 하지만, JWT는 서명된 토큰이다. 공개/개인 키를 쌍으로 사용하여 토큰에 서명할 경우 서명된 토큰은 개인 키를 보유한 서버가 이 서명된 토큰이 정상적인 토큰인지 인증할 수 있다. 이런 구조 때문에 인증 정보를 담아 안전하게 인증을 시도하게끔 전달할 수 있다. 2. JWT구조 >* Header Payload Signature 위 구성요소로 되어 있으며, "."로 구분된다. ![](https://velog.velcdn.com/cloudflare/ko1586/994bdd3d-70f4-4cdd-9262-63c443d29eeb/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%

2022년 4월 7일
·
0개의 댓글
·
post-thumbnail

[CS] Token Day-84

Why use Token authentication? Session authentication is cost by the server, while token authentication is cost by the client. What is Token? It is easy to think of tokens used as money. Tokens used in the arcade Tokens used to enter the Concert hall Proof of permission to use the facility. Token authentication was invented as a way to pay for the client. If the client has the token, Client can use the service that matches the token's authority. Isn't it risky to store tokens

2022년 3월 21일
·
0개의 댓글
·

Digital Signature 기능 구현 - React Native

https://www.notion.so/dyphi/React-Native-Signature-Library-b45842600ed74e958cf5df2d260f663d

2021년 8월 5일
·
0개의 댓글
·
post-thumbnail

JWT(2. 구조)

지난 JWT편에 이어서 이번 글에서는 JWT의 구조와 구성 요소들을 알아보고 이것들이 어떻게 사용되는지 알아보자! 사실 JWT 구조에 관한 글은 Velopert님의 글 이상의 깊이를 쓸 자신은 없고 나는 내 이해를 바탕으로 최대한 쉽게 그리고 추가적 내용을 설명해보고자 한다. (시간이 없으신 분은 이 글을 강력 추천! - https://velopert.com/2389) 먼저 JWT의 구조를 간략하게 구분하자면 > 해당 JWT의 형식에 대한 정보를 담고 있는 Header 해당 JW

2021년 6월 6일
·
0개의 댓글
·
post-thumbnail

TypeScript Function

함수의 선언 > 매개변수와 인수, 인자 a 와 b 는 매개변수이고 add 함수를 호출할 때 전달되는 1 과 2는 인수 void type 값을 반환하지 않는 함수 함수 시그니처(function signature) 변수에 타입이 잇듯이 함수 또한 타입이 있는데 함수의 타입을 함수 시그니처라고 합니다. type 키워드로 타입 별칭 만들기 type 키워는 기존에 존재하는 타입을 단순히 이름만 바꿔서 사용할 수 있게 해줍니다. type 새로운타입 = 기존타입 함수의 타입, 즉 함수 시그니처를 명시하면 다음화면에서 보는것 처럼 매개변수의 개수나 타입, 반환 타입이 다른 함수를 선언하는 잘못을 미연에 방지할 수 있습니다. undefined 관련 주의 사항 undefined 타입은 타입스크립트의 타입 계층도에서 모든 타입중 최하위 타입입니다. undefined 타입을 고려하지 않은 예 getName 은 Nameable 타입의 매개변수를 요구하

2021년 3월 20일
·
0개의 댓글
·

[코드스쿼드 코코아 과정_자바] 시그니쳐 Signature

자바 컴파일러는 메소드를 구분할 때, 메소드의 이름과 파라미터를 통해서 구분한다. 이 때, 메소드의 이름과 파라미터를 시그니쳐라고 한다 리턴 타입은 시그니쳐에 포함되지 않는다 컴파일러는 메소드를 구분 할때, 메소드의 이름과 파라미터를 통해서 구분하기 때문에 다음과 같이 이름은 같더라도 파라미터가 다를 때, 컴파일러는 전부 다른 메소드로 구분한다. 리턴 타입은 시그니쳐에 포함되지 않는다. 만약에 시그니쳐가 같은 상태에서 리턴타입을 달리해도 다른 메소드로 구분하지 않기 때문에 아래와 같이 선언되어질 수 없다.

2020년 11월 30일
·
0개의 댓글
·