분류 전체보기 258

21.10.03 SSL/TLS 프로토콜을 통한 디지털 인증서 발행 과정

CA가 웹 사이트의 공개키 또한 이 웹 사이트의 것이라고 인증할 수 있다! 다음은 SSL/TLS 프로토콜을 이용하여 디지털 인증서를 발행하는 과정이다. *SSL에서 TLS로 사용 추세가 바뀌었다. SSL Secure Sockets Layer TLS Transport Layer Security CA Certificate Authority 1. 웹 사이트는 자신의 정보와 공개키를 CA에 제출한다. 2. CA는 웹 사이트가 제출한 정보를 검증한 후, 올바른 웹 사이트라고 판단하면 웹 사이트의 정보가 포함된 인증서 정보를 생성한다. 3. 이후 CA는 자신의 비밀키를 사용하여 웹 사이트의 공개키가 포함된 인증서 정보에 대한 디지털 서명을 생성한다. - 인증서 정보(웹 사이트의 공개키) 해시화 - 위의 해시값을 C..

SSI 2021.10.03

21.10.02 OAuth 2.0 기반의 SSO 동작 흐름

기본 용어 정리 SSO: Single Sign On 통합 로그인 OAuth: Open Authorization 통합 로그인을 구현하기 위한 프로토콜 IdP: Identity Provider 사용자 데이터를 가지고 있으면서 RP에게 데이터 접근 권한을 주는 기관 RP: Relying Party 직접 사용자 데이터를 보관, 관리하지 않고 IdP에 권한을 받아서 로그인 과정을 진행하는 기관 User가 Google ID를 이용하여 YouTube에 로그인하는 상황을 가정한다. 1. User → YouTube Google ID로 로그인 요청 2. YouTube → User Google 로그인 화면으로 redirect 3. User → Google Google 로그인 및 Access 토큰 발급 요청 4. Google..

SSI 2021.10.02

21.10.01 MPC & SMPC [정리 중!]

블록체인 프라이버시 문제를 해결할 수 있는 암호화 기술 중 하나이다. MPC Multi-Party Computation 다자 간 계산 다수의 사용자가 각자의 비밀 값을 입력값으로 하여 함숫값을 함께 계산하는 기술 원래 정보는 알 필요 없이 도출된 비밀 값만을 몇몇 주체들이 해결해 낸 뒤, 그 결과들을 활용하면 된다. ✔여러 노드가 계산에 참여 ✔각 당사자는 이 당사자에게만 알려진 비밀인 계산에 일련의 입력 정보를 제공한다. ✔계산이 진행되는 동안 당사자 간에 보안 메시지가 전달되어 당사자가 제공한 투입물에 대한 정보가 전혀 공개되지 않는다. ✔계산이 끝나면, 단일 프로세서에 있는 모든 입력으로 그것을 계산하는 것처럼 함수의 출력이 가능하다. ✔계산은 어느 정도 내결함성이 있으며, 계산의 일부 노드/파티들..

암호학 2021.10.01

21.09.27 Fabric 트랜잭션 정렬 [정리 중!]

초기 버전의 Fabric은 PBFT 합의 알고리즘을 사용했다. PBFT는 비잔틴 장애를 허용하여 데이터를 검증하고 패브릭의 트랜잭션 순서를 정렬시키는 (정확히는 합의알고리즘은 아님.) 정렬 알고리즘이다. 지금은 PBFT 합의 알고리즘 대신 Endorser과 Message Queue를 사용하여 Enterprise 에 더 적합한 환경을 갖추었다. 1. Endorser: 체인코드를 실행하여 발생한 트랜잭션에 서명 2. Orderer: 블록 생성 전 트랜잭션을 정렬 3. Validator: 트랜잭션의 endorsing을 확인하고 commit 되어 블록 생성 Kafka는 분산 메세징 시스템으로인데 내용에 대한 검증을 하는 PBFT와는 다르게 순서만 정렬하는 CFT(Crush Fault Tolerance)이다.

블록체인 2021.09.27

21.09.25 npm install 안될 때

프로젝트 폴더를 clone 받고 npm package.json모듈대로 다시 설치하고 싶을 때 npm install 만 입력하면 package.json의 모듈을 다운받을 수 있다. 하지만 다음과 같이 에러가 발생할 경우 원인은 두가지로 분석할 수 있다. 1. npm -v 로 버전 확인하기 npm 버전이 권장보다 많이 하위 버전이면 npm i -g npm 명령어를 통해 npm 버전 업그레이드시킨다. 2. npm permission 확인하기 sudo chown -R $(whoami) /usr/local/lib/node_modules workspace 전체에 대해 Permission access 허가 sudo chown -R sudo chown -R je . https://keyhyuk-kim.medium.co..

카테고리 없음 2021.09.26

21.09.19 [프로그래머스] 주식 시세 차익

문제 설명 1일부터 N일까지, 날짜별 주가가 순서대로 들어있는 배열이 있습니다. 이때, 주식을 구매한 후 차익을 얻기까지 날짜별로 최소 며칠씩 기다려야 하는지 알고 싶습니다. 예를 들어 N = 5일 때 1일부터 5일까지 각 날짜의 주가가 [4, 1, 4, 7, 6]인 경우, 1일에 주식을 4원에 산 후, 2일 혹은 3일에 주식을 판매하면 차익이 없으며, 4일에 주식을 판매하면 차익 3원을 얻습니다. 따라서 1일에 주식을 산 후, 차익을 얻기까지 최소 3일이 지나야 합니다. 마찬가지로 2일에 주식을 1원에 산 경우 하루가 지나면 차익을 얻으며, 3일에 주식을 4원에 산 경우에도 하루 뒤에 차익을 얻습니다. 그러나 4일, 5일에 각각 7원, 6원에 주식을 산 경우에는 차익을 얻을 수 있는 날이 없습니다. 1..

알고리즘 공부 2021.09.22

21.09.21 [indy] demo 실습 (Alice의 성적증명서 발급 과정)

port 3000번에 연결하게 되면 Alice의 DID 관리 Agent의 relationship을 볼 수 있다. relationship에서는 relation으로 연결된 다른 DID가 endpoint로 표시되며 또 다른 relationship을 생성할 수 있다. credentials 탭에서는 alice 인적 사항이 담긴 credential을 확인할 수 있다. proof request 탭에서는 related 관계에 한해서 agent들과의 relationship이 표시가 되고 자격 증명을 요청할 수 있다. 아직은 생성된 relationship이 없기 때문에 proof request를 할 수 없다. 그렇기 때문에 alice의 relationship 탭에서 send new connection request를 클릭..

SSI 2021.09.21

21.09.19 [프로그래머스] 출석 이벤트

코딩테스트 문제를 풀었는데 정확도 점수는 만점인데 효율성 점수는 0점이다... 답을 도출하는 것 뿐만 아니라 코드 효율성도 생각해야겠다. 문제 설명 게임에 접속한 모든 유저에게 아이템을 지급하는 출석 이벤트를 k일 동안 진행하려 합니다. 날짜별 추정 접속자 수가 주어질 때, k일 동안 추정 접속자 수의 합이 최대가 되도록 이벤트 기간을 정하려 합니다. 날짜별 추정 접속자 수가 순서대로 담긴 배열 estimates와 출석 이벤트를 진행하는 기간 k가 매개변수로 주어집니다. k일 동안 추정 접속자 수의 합이 최대가 되도록 이벤트 기간을 정했을 때, 그 때의 추정 접속자 수 합을 return 하도록 solution 함수를 완성해주세요. 제한 조건 estimates는 길이가 1 이상 200,000 이하인 배열입..

알고리즘 공부 2021.09.20