agentleFS
vSkyfallvSkyfall/sky/skills/sky-crypto/SKILL.md

sky-crypto

Skill8 starsChanged 6 days agoMITView on GitHub

Uygulamalı kriptografi (geliştirici için, savunma amaçlı): parola saklama (argon2id/bcrypt), rastgelelik (kriptografik güvenli rastgele), hash ve HMAC (bütünlük, webhook imzası), simetrik şifreleme (AES-GCM, alan şifreleme), açık anahtar temelleri, JWT/PASETO doğru kullanımı, sabit zamanlı karşılaştırma, anahtar türetme ve yönetimi, TLS'e güven, yaygın hatalar ve "kendi kripton yok" kuralı. Parola, token, şifreleme, imza veya hash gerektiğinde kullan.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Doğrulamada sabit zamanlı karşılaştırma: crypto.timingSafeEqual / crypto.subtle — normal === zamanlama sızdırır.

    line 35

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Sky · Uygulamalı Kriptografi

Birinci kural: kendi kripton yok

Hazır, denetlenmiş kütüphaneleri doğru kullan; algoritma veya protokol tasarlama. Platformun yerleşik API'si (Web Crypto, Node crypto) + olgun kütüphaneler yeter.

Parola saklama

import argon2 from "argon2";
const hash = await argon2.hash(password, { type: argon2.argon2id });   // tuz ve parametreler hash içinde
const ok = await argon2.verify(hash, password);

argon2id (tercih) veya bcrypt (cost ≥ 12) veya scrypt. Asla düz SHA-256/MD5 (hızlı = kırılabilir). Tuz otomatik. Uzunluk üst sınırı (bcrypt 72 byte) ve sızmış parola kontrolü (bkz. sky-auth).

Rastgelelik

Token, oturum ID'si, davet kodu → kriptografik rastgele: crypto.randomUUID(), crypto.getRandomValues(new Uint8Array(32)), Node crypto.randomBytes(32). Math.random() asla güvenlik için (tahmin edilebilir).

Hash ve HMAC

  • İçerik bütünlüğü/parmak izi: SHA-256.
  • Mesaj doğrulama / webhook imzası: HMAC-SHA256 (paylaşılan gizli anahtarla) — "bu isteği gerçekten biz mi ürettik" (bkz. sky-payments, sky-webhooks-out).
  • Doğrulamada sabit zamanlı karşılaştırma: crypto.timingSafeEqual / crypto.subtle — normal === zamanlama sızdırır.

Simetrik şifreleme (duruşta)

// AES-256-GCM: her şifrelemede yeni iv, auth tag bütünlüğü sağlar
const iv = crypto.getRandomValues(new Uint8Array(12));
const ct = await crypto.subtle.encrypt({ name: "AES-GCM", iv }, key, data);  // iv'yi ct ile sakla

Hassas alanlar (TC kimlik, sağlık notu, API anahtarı) için alan şifreleme; anahtar KMS/sır yöneticisinde (bkz. sky-secrets). IV/nonce asla aynı anahtarla tekrar kullanılmaz. Çoğu durumda DB/disk şifrelemesi (duruşta) + TLS (aktarımda) zaten yeterli — alan şifrelemeyi gerçekten gerektiğinde ekle.

JWT ve token'lar

  • İmzalı JWT yetki taşır ama iptal edilemez → kısa ömür (≤ 15 dk) + refresh; oturum için DB oturumu çoğu zaman daha iyi (bkz. sky-auth).
  • alg: none kabul etme; algoritmayı sunucuda sabitle (alg karışıklığı saldırısı); HS256 paylaşılan sır, RS256/ES256 açık/özel anahtar.
  • exp, iss, aud doğrula; hassas veri JWT payload'ında değil (base64, şifre değil).
  • Daha güvenli varsayılanlar için PASETO iyi bir alternatif.

Anahtar yönetimi

Anahtarlar sır yöneticisinde (bkz. sky-secrets), koda/Git'e gömülmez; rotasyon (çoklu aktif anahtar, kid ile); paroladan anahtar türetme gerekiyorsa argon2id/scrypt/PBKDF2 (yüksek iterasyon), düz hash değil.

TLS

Aktarım güvenliği TLS'in işi — HTTPS her yerde, modern sürüm, HSTS (bkz. sky-security, sky-http). Uygulama seviyesinde "ekstra şifreleme" genelde gereksiz ve hatalı; TLS'e güven.

Yaygın hatalar

HataDoğrusu
Parola için SHA-256/MD5argon2id/bcrypt
Math.random() tokencrypto.randomBytes/randomUUID
İmza doğrulamada ===sabit zamanlı karşılaştırma
ECB modu / sabit IVAES-GCM + benzersiz IV
Sırrı koda gömmesır yöneticisi
JWT'yi oturum gibi (iptal gerekir) kullanmakısa ömür + refresh / DB oturumu
Kendi şifreleme protokolüyerleşik, denetlenmiş kütüphane

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.