Есть ли опыт работы с сертификатами, ключами, электронной подписью и криптографией
Что проверяют
Работали ли вы с криптографией руками или только слышали термины. Интервьюер ждёт конкретики: какие классы, какие форматы, где хранились ключи. Следом обычно спрашивают разницу между keystore и truststore или просят объяснить, как проверяется подпись.
Как отвечать
Опирайтесь на свой проект и называйте инструменты. Каркас для Java:
- JCA и JCE:
KeyPairGeneratorдля пары ключей,Signatureдля подписи и проверки (SHA256withRSA,SHA256withECDSA, с Java 15Ed25519),Cipherдля шифрования, для симметричного лучшеAES/GCM/NoPadding; - хранилища:
KeyStoreиkeytool. С Java 9 тип по умолчанию PKCS12, JKS считается устаревшим. Keystore держит ваш закрытый ключ и сертификат, truststore держит сертификаты, которым вы доверяете; - сертификаты: X.509 через
CertificateFactory, проверка цепочки черезCertPathValidator, срок действия, отзыв по CRL или OCSP; - TLS:
SSLContext, взаимная аутентификация mTLS, в Spring Boot через SSL bundles; - форматы подписи: Bouncy Castle для CMS/PKCS#7, присоединённая и отсоединённая подпись, метка времени от TSA, PAdES для PDF, XAdES для XML.
В российском проекте назовите ГОСТ Р 34.10-2012 и 34.11-2012, КриптоПро JCP и квалифицированную подпись по 63-ФЗ: частая тема в банках и госсекторе. Скажите, где жили ключи: HSM, Vault, облачный KMS, но не репозиторий.
Если опыта нет, скажите честно и покажите понимание: закрытым ключом подписывают, открытым проверяют, сертификат связывает открытый ключ с владельцем через подпись УЦ. Даже настроенный у себя mTLS между двумя сервисами превращает ответ из теории в практику.
Где спотыкаются
Отключают проверку сертификатов «на время» через TrustManager, который доверяет всем. Рассказ о таком решении без оговорок сразу идёт в минус.
Путают keystore и truststore или объясняют подпись как «шифрование хэша закрытым ключом». Для RSA это похоже на правду, для ECDSA и EdDSA уже неверно.
Рассказывают без деталей: «реализовал подпись на Bouncy Castle». Интервьюер спросит формат, алгоритм и проверку цепочки, и ответ рассыпется.